|
|
- 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
|