PetDiamondComposeItem = PetDiamondComposeItem or BaseClass(BaseItem)
|
|
local PetDiamondComposeItem = PetDiamondComposeItem
|
|
|
|
function PetDiamondComposeItem:__init()
|
|
self.base_file = "pet"
|
|
self.layout_file = "PetDiamondComposeItem"
|
|
self.model = PetModel:getInstance()
|
|
|
|
|
|
self:Load()
|
|
end
|
|
|
|
function PetDiamondComposeItem:Load_callback()
|
|
self.nodes = {
|
|
"bg:obj", "select:obj",
|
|
"awardCon",
|
|
"name:tmp", "haveNum:tmp", "canComposeNum:tmp", "redDot:obj",
|
|
}
|
|
self:GetChildren(self.nodes)
|
|
|
|
self.award_item = UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem, self.awardCon)
|
|
self.award_item:SetItemSize(78,78)
|
|
self.award_item:SetAnchoredPosition(0,0)
|
|
|
|
self:AddEvents()
|
|
if self.need_refreshData then
|
|
self:UpdateView()
|
|
end
|
|
if self.need_reselect then
|
|
self:SetSelect(self.select_id, self.need_do_click_fun)
|
|
end
|
|
end
|
|
|
|
function PetDiamondComposeItem:AddEvents( )
|
|
local on_click = function ( click_obj )
|
|
if self.bg_obj == click_obj then
|
|
self.select_call_back(self.index,self.data)
|
|
end
|
|
end
|
|
AddClickEvent(self.bg_obj, on_click)
|
|
|
|
--刷新宝石数量时
|
|
local update_feed_goods_num = function(goods_sub_type)
|
|
if not self.is_loaded then return end
|
|
if goods_sub_type == 3 then
|
|
self:UpdateNum()
|
|
end
|
|
end
|
|
self:BindEvent(self.model, PetConst.UPDATE_PET_GOODS_NUM, update_feed_goods_num)
|
|
|
|
local function onRefreshRed(red_type)
|
|
if not self.is_loaded then return end
|
|
if red_type == PetConst.RED_DOT_TYPE.DiamondCompose then
|
|
self:UpdateRed()
|
|
end
|
|
end
|
|
self:BindEvent(self.model, PetConst.ANS_UPDATE_RED_DOT, onRefreshRed)
|
|
end
|
|
|
|
function PetDiamondComposeItem:UpdateView( )
|
|
self.award_item:SetData(self.data.stone_id)
|
|
|
|
self:UpdateNum()
|
|
|
|
self:UpdateRed()
|
|
|
|
end
|
|
|
|
function PetDiamondComposeItem:UpdateRed( )
|
|
local red_list = self.model:GetPetDiamnondComposeRedList()
|
|
if red_list[self.data.stone_id] then
|
|
self.redDot_obj:SetActive(true)
|
|
else
|
|
self.redDot_obj:SetActive(false)
|
|
end
|
|
end
|
|
|
|
function PetDiamondComposeItem:UpdateNum( )
|
|
local diamond_num = GoodsModel:getInstance():GetPetDiamondNumByTypeID(self.data.stone_id)
|
|
self.haveNum_tmp.text = "拥有 "..diamond_num
|
|
|
|
local goods_name = GoodsModel:getInstance():getGoodsName(self.data.stone_id,true)
|
|
self.name_tmp.text = goods_name
|
|
|
|
local material_stone_id = stringtotable(self.data.compound_list)[1][1]
|
|
local material_nums = GoodsModel:getInstance():GetPetDiamondNumByTypeID(material_stone_id)
|
|
local can_compose_num = math.floor(material_nums/3)
|
|
local num_color = can_compose_num > 0 and ColorUtil.GREEN_TIPS or ColorUtil.RED_DARK
|
|
self.canComposeNum_tmp.text = string.format("可合成数量:<%s>%s</color>",num_color,can_compose_num)
|
|
end
|
|
|
|
function PetDiamondComposeItem:SetData( data ,index,select_call_back)
|
|
self.data = data
|
|
self.index = index
|
|
self.select_call_back = select_call_back
|
|
if self.is_loaded then
|
|
self.need_refreshData = false
|
|
self:UpdateView()
|
|
else
|
|
self.need_refreshData = true
|
|
end
|
|
end
|
|
|
|
|
|
function PetDiamondComposeItem:SetSelect(index, need_do_click_fun)
|
|
self.select_id = index or 1
|
|
self.need_do_click_fun = need_do_click_fun
|
|
if self.is_loaded then
|
|
self.need_reselect = false
|
|
self.select_obj:SetActive(self.select_id == self.index)
|
|
if self.select_id == self.index and need_do_click_fun then
|
|
self.select_call_back(self.index,self.data)
|
|
self.need_do_click_fun = nil
|
|
end
|
|
else
|
|
self.need_reselect = true
|
|
end
|
|
end
|
|
|
|
function PetDiamondComposeItem:__delete( )
|
|
if self.award_item then
|
|
UIObjPool:getInstance():PushItem(UIObjPool.UIType.AwardItem,self.award_item)
|
|
self.award_item = nil
|
|
end
|
|
end
|