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