源战役客户端
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 
 
 

104 行
3.3 KiB

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