源战役客户端
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.
 
 
 
 
 

125 lignes
3.5 KiB

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