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