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