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