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