源战役客户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

113 lines
3.9 KiB

CapsuleEggRewardItem = CapsuleEggRewardItem or BaseClass(BaseItem)
local CapsuleEggRewardItem = CapsuleEggRewardItem
function CapsuleEggRewardItem:__init()
self.base_file = "capsuleEgg"
self.layout_file = "CapsuleEggRewardItem"
self.is_delay_callback = true
self.model = CapsuleEggModel:getInstance()
self.index = false
self.data = false
self.pool_type = false
self.item_list = {}
self:Load()
end
function CapsuleEggRewardItem:Load_callback()
local nodes = {
"reward_scroll/Viewport/reward_con",
"reward_scroll",
"text_1:tmp",
"get_img:obj",
"bg:raw",
"get_btn:obj:img",
"get_btn/get_btn_txt:tmp",
"get_btn/get_btn_red:obj",
}
self:GetChildren(nodes)
self:InitEvent()
if self.need_refreshData then
self:SetData(self.data, self.index, self.pool_type)
end
lua_resM:setOutsideRawImage(self,self.bg_raw,GameResPath.GetCapsuleEggRes("capsule_egg_reward_item_bg"))
self.need_refreshData = false
end
function CapsuleEggRewardItem:SetData(data, index,pool_type)
self.data = data
self.index = index
self.pool_type = pool_type
if self.is_loaded then
self.need_refreshData = false
self:UpdateView()
else
self.need_refreshData = true
end
end
function CapsuleEggRewardItem:__delete()
for i,v in ipairs(self.item_list) do
UIObjPool:getInstance():PushItem(UIObjPool.UIType.AwardItem, v)
end
end
function CapsuleEggRewardItem:InitEvent()
local function onBtnClickHandler(target)
if target == self.get_btn_obj then
self.model:Fire(CapsuleEggConst.REQUEST_CCMD_EVENT,17011, 2, self.pool_type, self.draw_times)
end
end
AddClickEvent(self.get_btn_obj,onBtnClickHandler)
end
function CapsuleEggRewardItem:UpdateView()
self.times = self.model:GetSumDrawTimesByPoolType(self.pool_type)
self.draw_times = self.data.draw_times
self.status = self.model:GetTimesRewardStatusByTimes(self.pool_type, self.draw_times)
if self.status then
self.get_btn_obj:SetActive(false)
self.get_img_obj:SetActive(true)
self.text_1_tmp.text = string.format("累计寻宝次数\n%s%s", HtmlColorTxt(self.times, "#2cf86f"), HtmlColorTxt("/" .. self.draw_times, "#f3fcff"))
else
self.get_btn_obj:SetActive(true)
self.get_img_obj:SetActive(false)
if self.times >= self.draw_times then --可领取
self.get_btn_red_obj:SetActive(true)
self.get_btn_txt_tmp.text = "领取"
SetImageGray(self.get_btn_img, false)
SetTMPSharedMaterial(self.get_btn_txt_tmp, ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkOrangeBtn)
self.text_1_tmp.text = string.format("累计寻宝次数\n%s%s", HtmlColorTxt(self.times, "#2cf86f"), HtmlColorTxt("/" .. self.draw_times, "#f3fcff"))
else --未达成
self.get_btn_red_obj:SetActive(false)
self.get_btn_txt_tmp.text = "未达成"
SetImageGray(self.get_btn_img, true)
SetTMPSharedMaterial(self.get_btn_txt_tmp, ShaderTools.TMPSharedMaterialType.FZZZOutlineDarkGrayBtn)
self.text_1_tmp.text = string.format("累计寻宝次数\n%s%s", HtmlColorTxt(self.times, ColorUtil.RED_DARK), HtmlColorTxt("/" .. self.draw_times, "#f3fcff"))
end
end
local reward_data = stringtotable(self.data.reward)
for i,v in ipairs(self.item_list) do
v:SetVisible(false)
end
for i,v in ipairs(reward_data) do
local item = self.item_list[i]
if not item then
item = UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem,self.reward_con)
item:SetItemSize(78, 78)
self.item_list[i] = item
item:SetAnchoredPosition((78 + 17) * (i - 1), 0 )
end
item:SetVisible(true)
local goods_Id, lock = GoodsModel:getInstance():GetMappingTypeId(v[1], v[2])
local goodVo = GoodsModel:getInstance():GetGoodsBasicByTypeId(goods_Id)
if goodVo then
item:SetData(goodVo.type_id, v[3] , goodVo.color, nil, lock)
end
end
SetSizeDelta(self.reward_con, #reward_data * (78 + 17), 86)
SetSizeDelta(self.reward_scroll, #reward_data > 3 and 3 * (78 + 17) or #reward_data * (78 + 17), 86)
end