源战役客户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

110 lines
3.1 KiB

GodActivityRewardItem = GodActivityRewardItem or BaseClass(BaseItem)
local GodActivityRewardItem = GodActivityRewardItem
GodActivityRewardItem.Width = 84
GodActivityRewardItem.Height = 108
function GodActivityRewardItem:__init(parent_wnd,prefab_asset,layer_name,other_prefab)
self.base_file = "godActivity"
self.other_prefab = other_prefab
self.layout_file = other_prefab or"GodActivityRewardItem"
self.layer_name = layer_name
self.model = GodModel:getInstance()
self:Load()
end
function GodActivityRewardItem:Load_callback()
self.nodes = {
"lb_num:tmp", "con", "red_dot:obj"
}
self:GetChildren(self.nodes)
self:AddEvents()
self.award_item = self.award_item or UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem,self.con)
if self.other_prefab then
self.award_item:SetItemSize(62,62)
else
self.award_item:SetItemSize(62,62)
end
if self.need_refreshData then
self:UpdateView()
end
end
function GodActivityRewardItem:AddEvents( )
end
function GodActivityRewardItem:UpdateView( )
if not self.is_loaded then return end
if not self.data then return end
self:UpdateInfo()
end
function GodActivityRewardItem:UpdateInfo( )
local conf_data = self.data
local base_data = false
if self.type_str == "limit" then
base_data = self.model:GetActivityLimitInfo()
else
base_data = self.model:GetActivityCommonInfo()
end
if not base_data then return end
local status = GodConst.ActivityRewardStatus.Doing
for k,v in pairs(base_data.bless_award) do
if v.stage == conf_data[1] then
status = v.state
break
end
end
self.lb_num_tmp.text = conf_data[2] .. ""
if status == GodConst.ActivityRewardStatus.Doing then
self.award_item:SetGray(false,true)
self.red_dot_obj:SetActive(false)
self.award_item:SetNumLimitVisible(false)
elseif status == GodConst.ActivityRewardStatus.CanGet then
self.award_item:SetGray(false,true)
self.red_dot_obj:SetActive(true)
self.award_item:SetNumLimitVisible(false)
elseif status == GodConst.ActivityRewardStatus.HaveGet then
self.award_item:SetGray(true,true)
self.red_dot_obj:SetActive(false)
self.award_item:SetNumLimitVisible(true,9)
end
if self.status_callback then
self.status_callback(self.index, status ~= GodConst.ActivityRewardStatus.Doing)
end
self.award_item:SetDataWithMapId(conf_data[3][1][2], conf_data[3][1][3], conf_data[3][1][1])
local function call_back( )
if self.type_str == "limit" then
self.model:Fire(GodConst.REQ_ACTIVITY_GET_NUM_AWARD, tonumber(conf_data[1]))
else
-- self.model:Fire(GodConst.REQ_ACTIVITY_GET_NUM_AWARD, GodConst.ActivityType.Common, tonumber(conf_data[1]))
end
end
self.award_item:SetCallBack(call_back)
end
function GodActivityRewardItem:SetData( type_str,data, status_callback, index )
self.type_str = type_str
self.data = data
self.status_callback = status_callback
self.index = index
if self.is_loaded then
self.need_refreshData = false
self:UpdateView()
else
self.need_refreshData = true
end
end
function GodActivityRewardItem:__delete( )
if self.award_item then
UIObjPool:getInstance():PushItem(UIObjPool.UIType.AwardItem, self.award_item)
self.award_item = nil
end
end