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