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