PGRData/Script/matrix/xui/xuiarena/XUiArenaContributeTips.lua

103 lines
3.2 KiB
Lua
Raw Normal View History

local XUiArenaContributeTips = XLuaUiManager.Register(XLuaUi, "UiArenaContributeTips")
local XUiArenaContributeTipsGrid = require("XUi/XUiArena/XUiArenaContributeTipsGrid")
local CsXTextManagerGetText = CS.XTextManager.GetText
local TAB_TYPE = {
EXPLAIN = 1, --说明
OBTAIN = 2, --列表
}
function XUiArenaContributeTips:OnAwake()
self:AutoAddListener()
end
--[[
--@isNow:
true:
false:
--@tabIndex
TAB_TYPE
]]
function XUiArenaContributeTips:OnStart(isNow, tabIndex)
self.IsNow = isNow
if self.IsNow then
self.ChallengeCfg = XDataCenter.ArenaManager.GetCurChallengeCfg()
self.ArenaLevel = XDataCenter.ArenaManager.GetCurArenaLevel()
else
self.ChallengeCfg = XDataCenter.ArenaManager.GetLastChallengeCfg()
self.ArenaLevel = XDataCenter.ArenaManager.GetLastArenaLevel()
end
self:InitDynamicTable()
self:InitTabGroup(tabIndex)
end
--@region 点击事件
function XUiArenaContributeTips:AutoAddListener()
self:RegisterClickEvent(self.BtnTanchuangClose, self.OnBtnTangchuangCloseClick)
end
function XUiArenaContributeTips:OnBtnTangchuangCloseClick()
self:Close()
end
function XUiArenaContributeTips:OnTabClick(index)
self.SelectTabType = index
self:Refresh()
end
--@endregion
function XUiArenaContributeTips:InitTabGroup(tabIndex)
self.PanelTab:Init({
self.BtnTab1,
self.BtnTab2,
}, function(index)
self:OnTabClick(index)
end)
if tabIndex then
self.PanelTab:SelectIndex(tabIndex)
else
self.PanelTab:SelectIndex(TAB_TYPE.EXPLAIN)
end
end
function XUiArenaContributeTips:InitDynamicTable()
self.DynamicTable = XDynamicTableNormal.New(self.SViewContribute)
self.DynamicTable:SetProxy(XUiArenaContributeTipsGrid)
self.DynamicTable:SetDelegate(self)
end
function XUiArenaContributeTips:Refresh()
if self.SelectTabType == TAB_TYPE.EXPLAIN then
self.PanelExplain.gameObject:SetActiveEx(true)
self.PanelObtain.gameObject:SetActiveEx(false)
self:RefreshPanelExplain()
elseif self.SelectTabType == TAB_TYPE.OBTAIN then
self.PanelExplain.gameObject:SetActiveEx(false)
self.PanelObtain.gameObject:SetActiveEx(true)
self:RefreshPanelObtain()
end
end
function XUiArenaContributeTips:RefreshPanelExplain()
self.TxtContentNotice.text = string.gsub(CsXTextManagerGetText("ContributeScoreDesc"), "\\n", "\n")
end
function XUiArenaContributeTips:RefreshPanelObtain()
local arenaLevelCfg = XArenaConfigs.GetArenaLevelCfgByLevel(self.ArenaLevel)
self.List = self.ChallengeCfg.ContributeScore
self.DynamicTable:SetDataSource(self.List)
self.DynamicTable:ReloadDataSync()
self.TxtPeople.text = #self.List
self.TxtArena.text = self.ChallengeCfg.Name
self.RImgIconArena:SetRawImage(arenaLevelCfg.Icon)
end
function XUiArenaContributeTips:OnDynamicTableEvent(event, index, grid)
if event == DYNAMIC_DELEGATE_EVENT.DYNAMIC_GRID_INIT then
grid:Init(self)
elseif event == DYNAMIC_DELEGATE_EVENT.DYNAMIC_GRID_ATINDEX then
grid:Refresh(index, self.List[index])
end
end