-- <*
|
|
-- @Author: Saber
|
|
-- @Description: 跨服社团排行活动结算界面
|
|
-- *>
|
|
GuildCSGRResultView = GuildCSGRResultView or BaseClass(BaseView)
|
|
local GuildCSGRResultView = GuildCSGRResultView
|
|
|
|
function GuildCSGRResultView:__init()
|
|
self.base_file = "guildCSGR"
|
|
self.layout_file = "GuildCSGRResultView"
|
|
self.layer_name = "Top"
|
|
self.destroy_imm = true
|
|
self.use_background = true --全屏界面默认使用这个参数,非全屏界面自行设置
|
|
self.click_bg_toClose = true
|
|
self.blur_activity_bg = true
|
|
self.use_show_anim = true
|
|
self.use_hide_anim = true
|
|
self.model = GuildModel:getInstance()
|
|
self.guild_rank_reward, self.guild_rank_normal_reward = self.model:GetCSGRRankRewardCfg()
|
|
self.award_list = {}
|
|
self.auto_close_time = 10 -- n秒后自动关闭界面
|
|
self.load_callback = function ()
|
|
self:LoadSuccess()
|
|
self:AddEvent()
|
|
end
|
|
self.open_callback = function ( )
|
|
self:UpdateView()
|
|
self:StartCloseCountdown()
|
|
end
|
|
self.destroy_callback = function ( )
|
|
self:DestroySuccess()
|
|
end
|
|
end
|
|
|
|
function GuildCSGRResultView:Open(data)
|
|
self.data = data
|
|
BaseView.Open(self)
|
|
end
|
|
|
|
function GuildCSGRResultView:LoadSuccess()
|
|
local nodes = {
|
|
"bg:raw",
|
|
"title:raw",
|
|
-- 界面中部排行信息节点,需要做自动居中
|
|
"rank_con",
|
|
"rank_con/rank_img1",
|
|
"rank_con/rank_img2",
|
|
"rank_con/rank_desc:tmp",
|
|
-- 奖励容器
|
|
"reward_scroll", "reward_scroll/Viewport/reward_con",
|
|
-- 其他文本
|
|
"guild_rank:tmp", "role_rank:tmp",
|
|
"close_countdown:tmp",
|
|
}
|
|
self:GetChildren(nodes)
|
|
|
|
lua_resM:setOutsideRawImage(self, self.bg_raw, GameResPath.GetViewBigBg("com_result_bg_1124_549"), false)
|
|
lua_resM:setOutsideRawImage(self, self.title_raw, GameResPath.GetDungeonImage("dun_result_title3"), false)
|
|
end
|
|
|
|
function GuildCSGRResultView:AddEvent()
|
|
|
|
end
|
|
|
|
function GuildCSGRResultView:UpdateView()
|
|
if self.data then
|
|
self.guild_rank_tmp.text = string.format("社团排名:<color=#fef979>第%s名</color>", self.data.guild_rank)
|
|
self.role_rank_tmp.text = string.format("个人排名:<color=#fef979>第%s名</color>", self.data.role_rank)
|
|
-- 加载顶部文本
|
|
self.rank_desc_tmp.text = string.format("恭喜您! 您的社团在本次战场中排名 第%s名", self.data.guild_rank)
|
|
local offset_x = (self.rank_con.sizeDelta.x - 198 - self.rank_desc_tmp.preferredWidth - 20) / 2
|
|
SetAnchoredPositionX(self.rank_img1, offset_x)
|
|
SetAnchoredPositionX(self.rank_desc, self.rank_img1.anchoredPosition.x + self.rank_img1.sizeDelta.x + 10)
|
|
SetAnchoredPositionX(self.rank_img2, self.rank_desc.anchoredPosition.x + self.rank_desc_tmp.preferredWidth + 10)
|
|
-- 加载奖励内容
|
|
local reward_cfg
|
|
local target_list = self.data.first_arena == 1 and self.guild_rank_reward or self.guild_rank_normal_reward
|
|
for k, v in ipairs(target_list) do
|
|
if v.rank_min <= self.data.guild_rank and v.rank_max >= self.data.guild_rank then
|
|
reward_cfg = v
|
|
break
|
|
end
|
|
end
|
|
local reward_num = TableSize(reward_cfg.rewards)
|
|
local need_mid_align = reward_num <= 4
|
|
local offset_x = need_mid_align and (self.reward_con.sizeDelta.x - reward_num * 98) / 2 or 0
|
|
for k, v in ipairs(reward_cfg.rewards) do
|
|
item = self.award_list[k]
|
|
if not item then
|
|
item = UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem, self.reward_con)
|
|
self.award_list[k] = item
|
|
end
|
|
item:SetVisible(true)
|
|
item:SetItemSize(84, 84)
|
|
item:SetAnchoredPosition(98 * (k-1) + offset_x, -2)
|
|
local typeId, lock = GoodsModel:getInstance():GetMappingTypeId(v[1], v[2])
|
|
item:SetData(typeId, v[3], nil, nil, lock)
|
|
end
|
|
SetSizeDeltaX(self.reward_con, 98 * reward_num)
|
|
end
|
|
end
|
|
|
|
-- 创建自动关闭倒计时
|
|
function GuildCSGRResultView:StartCloseCountdown( )
|
|
local end_time = TimeUtil:getServerTime() + self.auto_close_time
|
|
local function auto_close_func()
|
|
local left_time = end_time - TimeUtil:getServerTime()
|
|
if left_time > 0 then
|
|
self.close_countdown_tmp.text = string.format("点击空白处关闭<color=%s>(%s秒)</color>", ColorUtil.GREEN_DARK, left_time)
|
|
else
|
|
self:Close()
|
|
end
|
|
end
|
|
if not self.auto_close_func_id then
|
|
self.auto_close_func_id = GlobalTimerQuest:AddPeriodQuest(auto_close_func, 0.5, -1)
|
|
end
|
|
end
|
|
|
|
function GuildCSGRResultView:DestroySuccess( )
|
|
for k, v in pairs(self.award_list) do
|
|
UIObjPool:getInstance():PushItem(UIObjPool.UIType.AwardItem, v)
|
|
end
|
|
self.award_list = {}
|
|
|
|
if self.auto_close_func_id then
|
|
GlobalTimerQuest:CancelQuest(self.auto_close_func_id)
|
|
self.auto_close_func_id = nil
|
|
end
|
|
-- 清空结算数据
|
|
self.model:SetGuildCSGRResultData(nil)
|
|
end
|