源战役客户端
25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

98 lines
3.7 KiB

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