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