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
|