PGRData/Script/matrix/xui/xuifubenbabeltower/XUiBabelTowerRankInfo.lua

74 lines
2.7 KiB
Lua
Raw Normal View History

local XUiBabelTowerRankInfo = XClass(nil, "XUiBabelTowerRankInfo")
local XUiBabelTowerMyRankInfos = require("XUi/XUiFubenBabelTower/XUiBabelTowerMyRankInfos")
local XUiBabelTowerRankReward = require("XUi/XUiFubenBabelTower/XUiBabelTowerRankReward")
local XUiGridRankItemInfo = require("XUi/XUiFubenBabelTower/XUiGridRankItemInfo")
function XUiBabelTowerRankInfo:Ctor(ui, uiRoot)
self.GameObject = ui.gameObject
self.Transform = ui.transform
self.UiRoot = uiRoot
XTool.InitUiObject(self)
-- 我的排名
self.MyRankInfos = XUiBabelTowerMyRankInfos.New(self.PanelMyBossRank, self.UiRoot)
-- 奖励
self.RankReward = XUiBabelTowerRankReward.New(self.PanelRankReward, self.UiRoot)
self.DynamicTable = XDynamicTableNormal.New(self.PlayerRankList.gameObject)
self.DynamicTable:SetProxy(XUiGridRankItemInfo)
self.DynamicTable:SetDelegate(self)
-- TxtCurTime
self.BtnRankReward.CallBack = function() self:OnBtnRankRewardClick() end
self.ActivtiyType = nil
end
function XUiBabelTowerRankInfo:UpdateCurTime(timeStr)
self.TxtCurTime.text = timeStr
end
function XUiBabelTowerRankInfo:OnDynamicTableEvent(event,index,grid)
if event == DYNAMIC_DELEGATE_EVENT.DYNAMIC_GRID_INIT then
grid:Init(self.UiRoot)
elseif event == DYNAMIC_DELEGATE_EVENT.DYNAMIC_GRID_ATINDEX then
local data = self.RankInfos[index]
if not data then return end
grid:Refresh(data)
end
end
function XUiBabelTowerRankInfo:SetActivityType(value)
self.ActivtiyType = value
end
-- 刷新排名
function XUiBabelTowerRankInfo:Refresh()
self.CurScore, self.CurRank, self.TotalRank = XDataCenter.FubenBabelTowerManager.GetScoreInfos()
self.RankInfos = XDataCenter.FubenBabelTowerManager.GetRankInfos()
self.DynamicTable:SetDataSource(self.RankInfos)
self.DynamicTable:ReloadDataASync()
self.PanelNoRank.gameObject:SetActiveEx(#self.RankInfos <= 0)
self.TxtIos.gameObject:SetActiveEx(false)
self.MyRankInfos:Refresh(self.ActivtiyType)
-- 更新奖励按钮
self.BtnRankReward.gameObject:SetActiveEx(false)
self.RewardText.gameObject:SetActiveEx(false)
local activityNo = XDataCenter.FubenBabelTowerManager.GetCurrentActivityNo()
if not activityNo then return end
local activityTemplate = XFubenBabelTowerConfigs.GetBabelTowerActivityTemplateById(activityNo)
if not activityTemplate then return end
self.BtnRankReward.gameObject:SetActiveEx(activityTemplate.RankType == XFubenBabelTowerConfigs.RankType.RankAndReward)
self.RewardText.gameObject:SetActiveEx(activityTemplate.RankType == XFubenBabelTowerConfigs.RankType.OnlyRank)
end
function XUiBabelTowerRankInfo:OnBtnRankRewardClick()
self.RankReward:Refresh()
end
return XUiBabelTowerRankInfo