PGRData/Script/matrix/xui/xuipivotcombat/XUiPivotCombatEffectArea.lua

128 lines
No EOL
4.4 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

--===========================================================================
---@desc 供能详情界面
--===========================================================================
local XUiPivotCombatEffectArea = XLuaUiManager.Register(XLuaUi, "UiPivotCombatEffectArea")
local XUiPivotCombatEnergyGrid = require("XUi/XUiPivotCombat/XUiGrid/XUiPivotCombatEnergyGrid")
local TabButtonIndex = {
Entirety = 1, --汇总效果
Secondary = 2, --次级效果起始位置
}
function XUiPivotCombatEffectArea:OnAwake()
self:InitUI()
self:InitCB()
end
function XUiPivotCombatEffectArea:OnStart(region)
self.SecondaryRegions = XDataCenter.PivotCombatManager.GetSecondaryRegions()
self.TabIndexToRegion = {}
self.RegionIdToTabIndex = {}
self.EnergyData = {}
--默认让“汇总展示”按钮放在第一个
local tabGroup = { self.BtnTab01 }
local tabGroupIndex = TabButtonIndex.Secondary --页签下标开始位置1固定为self.BtnTab01
for _, tmpRegion in ipairs(self.SecondaryRegions or {}) do
local btnSecondary = CS.UnityEngine.Object.Instantiate(self.BtnTab01)
btnSecondary.transform:SetParent(self.PanelButtonGroup.transform, false)
btnSecondary.gameObject:SetActiveEx(true)
btnSecondary:SetNameByGroup(0, tmpRegion:GetRegionName())
local regionId = tmpRegion:GetRegionId()
self["BtnTabRegion"..regionId] = btnSecondary
self.TabIndexToRegion[tabGroupIndex] = tmpRegion
self.RegionIdToTabIndex[regionId] = tabGroupIndex
table.insert(tabGroup, btnSecondary)
tabGroupIndex = tabGroupIndex + 1
end
self.TabGroup:Init(tabGroup, function(tabIndex)
self:OnClickTabGroup(tabIndex)
end)
end
function XUiPivotCombatEffectArea:OnEnable(region)
self.OriRegion = region
local selectIndex = TabButtonIndex.Entirety
--通关次级区域跳转进入
if region then
selectIndex = self.RegionIdToTabIndex[region:GetRegionId()] or TabButtonIndex.Entirety
end
self.TabGroup:SelectIndex(selectIndex)
end
function XUiPivotCombatEffectArea:OnDisable()
self.SelectIndex = nil
end
function XUiPivotCombatEffectArea:InitUI()
self.GridBuff.gameObject:SetActiveEx(false)
self.TabGroup = self.PanelButtonGroup:GetComponent("XUiButtonGroup")
self:InitDynamicTable()
end
function XUiPivotCombatEffectArea:InitCB()
self.BtnClose.CallBack = function()
self:Close()
end
self.BtnTanchuangClose.CallBack = function()
self:Close()
end
end
function XUiPivotCombatEffectArea:OnClickTabGroup(tabIndex)
if tabIndex == self.SelectIndex then return end
self.SelectIndex = tabIndex
self:PlayAnimation("QieHuan", nil, function()
self:RefreshDynamicTable()
end)
end
function XUiPivotCombatEffectArea:RefreshDynamicTable()
local curEnergyLv = 0
local maxEnergyLv = 0
local dataSource = {}
if self.SelectIndex == TabButtonIndex.Entirety then
curEnergyLv = XDataCenter.PivotCombatManager.GetSecondaryRegionTotalCurEnergy()
maxEnergyLv = XDataCenter.PivotCombatManager.GetSecondaryRegionTotalMaxEnergy()
dataSource = self.SecondaryRegions
else
local region = self.TabIndexToRegion[self.SelectIndex]
if region then
curEnergyLv = region:GetCurSupplyEnergy()
maxEnergyLv = region:GetMaxSupplyEnergy()
end
for idx = 1, maxEnergyLv do
dataSource[idx] = region
end
end
self.TextLevelMax.text = "/"..maxEnergyLv
self.TextLevelNum.text = curEnergyLv
self.CurEnergyLv = curEnergyLv
self.MaxEnergyLv = maxEnergyLv
self.EnergyData = dataSource
self.DynamicTable:SetDataSource(dataSource)
self.DynamicTable:ReloadDataSync()
end
function XUiPivotCombatEffectArea:InitDynamicTable()
self.DynamicTable = XDynamicTableNormal.New(self.PanelBufftList)
self.DynamicTable:SetProxy(XUiPivotCombatEnergyGrid)
self.DynamicTable:SetDelegate(self)
end
function XUiPivotCombatEffectArea:OnDynamicTableEvent(event, index, grid)
if event == DYNAMIC_DELEGATE_EVENT.DYNAMIC_GRID_INIT then
grid:Init(self.OriRegion)
elseif event == DYNAMIC_DELEGATE_EVENT.DYNAMIC_GRID_ATINDEX then
--是否 “汇总展示”
local isEntirety = self.SelectIndex == TabButtonIndex.Entirety
grid:Refresh(isEntirety, self.EnergyData[index], index)
end
end
return XUiPivotCombatEffectArea