|
|
- -- <*
- -- @Author: Saber
- -- @Description: 藏宝图遗宝馈赠item节点(月度次数奖励节点)
- -- *>
- TreasureMapFeedbackItem = TreasureMapFeedbackItem or BaseClass(BaseItem)
- local TreasureMapFeedbackItem = TreasureMapFeedbackItem
-
- function TreasureMapFeedbackItem:__init(parent_wnd,prefab_asset,layer_name)
- self.base_file = "treasureMap"
- self.layout_file = "TreasureMapFeedbackItem"
- self.parent_wnd = parent_wnd
- self.layer_name = layer_name
-
- self.model = TreasureMapModel:getInstance()
- self:Load()
- end
-
- function TreasureMapFeedbackItem:Load_callback()
- local nodes = {
- "item_con",
- "receive_red:obj",
- "received:obj",
- "pro_icon:img",
- "need_time:tmp",
- "click_bg:obj",
- }
- self:GetChildren(nodes)
-
- self.awardItem = UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem, self.item_con)
- self.awardItem:SetItemSize(78, 78)
- self.awardItem:SetAnchoredPosition(0, 0)
- self.awardItem:SetVisible(true)
-
- self:AddEvents()
- if self.need_refreshData then
- self:UpdateView()
- end
- end
-
- function TreasureMapFeedbackItem:AddEvents( )
- local function click_event(target)
- if target == self.click_bg_obj then
- self:OnClickBgClicked(target)
- end
- end
- AddClickEvent(self.click_bg_obj, click_event)
- local function updateMonthRewardReceiveStatus()
- self:UpdateReceivedStatus()
- end
- self:BindEvent(self.model, TreasureMapConst.UPDATE_MONTH_TIMES_DATA, updateMonthRewardReceiveStatus)
- end
-
- function TreasureMapFeedbackItem:SetData( data )
- self.data = data
- if self.is_loaded then
- self.need_refreshData = false
- self:UpdateView()
- else
- self.need_refreshData = true
- end
- end
-
- function TreasureMapFeedbackItem:UpdateView( )
- self:UpdateBasicData()
- self:UpdateReceivedStatus()
- end
-
- function TreasureMapFeedbackItem:UpdateBasicData( )
- if self.data then
- self.need_time_tmp.text = string.format("%s次", self.data[1])
- self.awardItem:SetData(self.data[2], self.data[3])
- end
- end
-
- function TreasureMapFeedbackItem:UpdateReceivedStatus( )
- if self.data then
- local month_data = self.model:GetAdvTreasureMapMonthTimesData()
- local cur_time = month_data.times
- local receive_flag = month_data.receive_list[self.data[1]] or false
- -- 缓存可领取标志
- self.can_receive = cur_time >= self.data[1] and not receive_flag and true or false
- lua_resM:setImageSprite(self, self.pro_icon_img, "treasureMap_asset", self.can_receive and "tm_feedback_pro2" or "tm_feedback_pro1", true)
- self.receive_red_obj:SetActive(self.can_receive)
- -- ui表现
- self.awardItem:SetGray(receive_flag)
- SetImageGray(self.pro_icon_img, not receive_flag and not self.can_receive)
- self.received_obj:SetActive(receive_flag)
- end
- end
-
- function TreasureMapFeedbackItem:OnClickBgClicked(target, x, y)
- if self.can_receive then -- 领取奖励
- self.model:Fire(TreasureMapConst.REQUEST_CCMD_EVENT, 42406, self.data[1])
- else -- 打开物品tips
- self.awardItem:ClickCallFun(target, x, y)
- end
- end
-
- function TreasureMapFeedbackItem:__delete( )
- if self.awardItem then
- UIObjPool:getInstance():PushItem(UIObjPool.UIType.AwardItem, self.awardItem)
- self.awardItem = nil
- end
- end
|