|
|
- --[[
- <*
- @Author: Saber
- @Description: 社团活跃玩法界面社团周奖励item
- *>
- ]]
- GuildActiveActItem = GuildActiveActItem or BaseClass(BaseItem)
- local GuildActiveActItem = GuildActiveActItem
-
- function GuildActiveActItem:__init(parent_wnd,prefab_asset,layer_name)
- self.base_file = "guild"
- self.layout_file = "GuildActiveActItem"
- self.parent_wnd = parent_wnd
- self.layer_name = layer_name
-
- self.model = GuildModel:getInstance()
- self:Load()
- end
-
- function GuildActiveActItem:Load_callback()
- self.nodes = {
- -- "botton:img", "act_require:txt:outline", "light:img",
- "item_con", "touch_con:obj", "reddot:obj", "received:obj",
- }
- self:GetChildren(self.nodes)
-
- self.award_item = UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem,self.item_con)
- self.award_item:SetItemSize(83,83)
- self.award_item:SetVisible(false)
- self.award_item:SetEnableClick(false)
- self:AddEvents()
- if self.need_refreshData then
- self:UpdateView()
- end
- end
-
- function GuildActiveActItem:AddEvents( )
- local function click_event(target)
- if target == self.touch_con_obj then
- local guild_active, guild_active_stage = self.model:GetGuildActiveData()
- if self.data and self.data.id == guild_active_stage + 1 and guild_active >= self.data.need then -- 当前阶段是已领取阶段的下一阶段,且超过了改阶段需要的活跃值
- self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40403, 1) -- 1为社团周常活跃奖励领取
- else
- self.award_item:ClickCallFun()
- end
- end
- end
- AddClickEvent(self.touch_con_obj, click_event)
- -- 刷新红点
- local function update_red(view_type)
- if not view_type or view_type == Config.ConfigGuild.TabId.Active then
- self:UpdateWeekRewardRed()
- end
- end
- self:BindEvent(self.model, GuildModel.UPDATE_RED_DOT_BY_TYPE, update_red)
- end
-
- function GuildActiveActItem:UpdateView( )
- -- 社团本周活跃度
- self.guild_active, self.guild_active_stage = self.model:GetGuildActiveData()
- -- self.act_require_txt.text = self.data.need
- -- local is_next = self.data.id - self.guild_active_stage == 1 -- 是否是下一波活跃奖励节点
- local is_received = self.data.id <= self.guild_active_stage -- 是否是已经领过的奖励节点
- -- lua_resM:setImageSprite(self, self.light_img, "guild_asset", is_next and "guild_active_img2" or "guild_active_img1", true)
- -- lua_resM:setImageSprite(self, self.botton_img, "guild_asset", is_next and "guild_active_img4" or "guild_active_img3", true)
- -- self.act_require_outline.effectColor = ColorUtil:ConvertHexToRGBColor(is_next and "ff4949" or "174994")
-
- local reward = stringtotable(self.data.awards)[1]
- local type_Id, lock = GoodsModel:getInstance():GetMappingTypeId(reward[1], reward[2])
- self.award_item:SetData(type_Id, reward[3], nil, nil, lock)
- self.award_item:SetVisible(true)
- self.award_item:SetIconGray(is_received)
- self.received_obj:SetActive(is_received)
-
- self:UpdateWeekRewardRed()
- end
-
- function GuildActiveActItem:UpdateWeekRewardRed( )
- if not self.data then return end
- self.reddot_obj:SetActive(self.model:GetGuildActiveProgressRed(self.data.id))
- end
-
- function GuildActiveActItem:SetData(data)
- self.data = data
- if self.is_loaded then
- self.need_refreshData = false
- self:UpdateView()
- else
- self.need_refreshData = true
- end
- end
-
- function GuildActiveActItem:__delete( )
- if self.award_item then
- UIObjPool:getInstance():PushItem(UIObjPool.UIType.AwardItem, self.award_item)
- self.award_item = nil
- end
- end
|