Files
StellaSora_DataLua/lua/game/ui/startower/startowerprologuepanel.lua
SL1900 5e0d58cfad Initial version - 1.2.0.60
EN: 1.2.0.60
CN: 1.2.0.61
JP: 1.2.0.63
KR: 1.2.0.67
2025-12-03 01:00:00 +09:00

129 lines
4.3 KiB
Lua

local StarTowerProloguePanel = class("StarTowerProloguePanel", BasePanel)
local GamepadUIManager = require("GameCore.Module.GamepadUIManager")
StarTowerProloguePanel.OpenMinMap = false
StarTowerProloguePanel._bAddToBackHistory = false
StarTowerProloguePanel._tbDefine = {
{
sPrefabPath = "RoguelikeItemTip/RoguelikeItemTipPanel.prefab",
sCtrlName = "Game.UI.RoguelikeItemTips.RoguelikeItemTipsCtrl"
},
{
sPrefabPath = "Battle/BattleDashboard.prefab",
sCtrlName = "Game.UI.Battle.BattleDashboardCtrl"
},
{
sPrefabPath = "Battle/AdventureMainUI/AdventureMainUI.prefab",
sCtrlName = "Game.UI.Battle.MainBattleCtrl"
},
{
sPrefabPath = "Battle/SkillHintIndicators.prefab",
sCtrlName = "Game.UI.Battle.SkillHintIndicator.HintIndicators"
},
{
sPrefabPath = "Battle/SubSkillDisplay.prefab",
sCtrlName = "Game.UI.Battle.SubSkillDisplay.SubSkillDisplayCtrl"
},
{
sPrefabPath = "StarTower/StarTowerMenu.prefab",
sCtrlName = "Game.UI.StarTower.StarTowerMenuCtrl"
},
{
sPrefabPath = "StarTower/StarTowerRoomInfo.prefab",
sCtrlName = "Game.UI.StarTower.StarTowerRoomInfo"
},
{
sPrefabPath = "StarTower/PotentialSelectPanel.prefab",
sCtrlName = "Game.UI.StarTower.Potential.PotentialSelectCtrl"
},
{
sPrefabPath = "StarTower/FateCardSelectPanel.prefab",
sCtrlName = "Game.UI.StarTower.FateCard.FateCardSelectCtrl"
},
{
sPrefabPath = "GuideProloguel/GuideProloguelPanel.prefab",
sCtrlName = "Game.UI.GuideProloguel.GuideProloguelCtrl"
},
{
sPrefabPath = "Battle/AdventureMainUI/BattlePopupTips.prefab",
sCtrlName = "Game.UI.Battle.BattlePopupTipsCtrl"
}
}
function StarTowerProloguePanel:SetTop(goCanvas)
local nTopLayer = 0
if nil ~= self.trUIRoot then
local nChildCount = self.trUIRoot.childCount
local trChild
for i = 1, nChildCount do
trChild = self.trUIRoot:GetChild(i - 1)
nTopLayer = math.max(nTopLayer, NovaAPI.GetCanvasSortingOrder(trChild:GetComponent("Canvas")))
end
end
if 0 < nTopLayer then
NovaAPI.SetCanvasSortingOrder(goCanvas, nTopLayer + 1)
end
end
function StarTowerProloguePanel:CheckMainChar(nCharId)
if self.tbTeam ~= nil then
for k, v in ipairs(self.tbTeam) do
if v == nCharId then
return k == 1
end
end
end
return false
end
function StarTowerProloguePanel:GetSkillLevel(nCharId)
local mapChar = self.mapCharData[nCharId]
local tbList = {}
tbList[GameEnum.skillSlotType.NORMAL] = mapChar and mapChar.tbSkillLvs[1] or 1
tbList[GameEnum.skillSlotType.B] = mapChar and mapChar.tbSkillLvs[2] or 1
tbList[GameEnum.skillSlotType.C] = mapChar and mapChar.tbSkillLvs[3] or 1
tbList[GameEnum.skillSlotType.D] = mapChar and mapChar.tbSkillLvs[4] or 1
return tbList
end
function StarTowerProloguePanel:Awake()
self.BattleType = GameEnum.worldLevelType.PrologueBattleLevel
self.trUIRoot = GameObject.Find("---- UI ----").transform
self.tbTeam = self._tbParam[1]
self.tbDisc = self._tbParam[2]
self.mapCharData = self._tbParam[3]
self.mapDiscData = self._tbParam[4]
self.mapPotentialAddLevel = self._tbParam[5]
self.nStarTowerId = self._tbParam[6]
self.nLastStarTowerId = self._tbParam[7]
self.tbShowNote = {}
EventManager.Add(EventId.HideProloguePanle, self, self.SetProloguePanleVisible)
GamepadUIManager.EnterAdventure()
GamepadUIManager.EnableGamepadUI("BattleMenu", {})
end
function StarTowerProloguePanel:OnEnable()
local wait = function()
coroutine.yield(CS.UnityEngine.WaitForEndOfFrame())
EventManager.Hit(EventId.OpenPanel, PanelId.Hud)
EventManager.Hit(EventId.ClosePanel, PanelId.MainlineFormation)
EventManager.Hit(EventId.ClosePanel, PanelId.MainlineFormationDisc)
EventManager.Hit(EventId.ClosePanel, PanelId.RegionBossFormation)
end
cs_coroutine.start(wait)
end
function StarTowerProloguePanel:OnAfterEnter()
EventManager.Hit(EventId.SubSkillDisplayInit, self.tbTeam)
end
function StarTowerProloguePanel:OnDisable()
EventManager.Remove(EventId.HideProloguePanle, self, self.SetProloguePanleVisible)
GamepadUIManager.DisableGamepadUI("BattleMenu")
GamepadUIManager.QuitAdventure()
end
function StarTowerProloguePanel:SetProloguePanleVisible(bVisible)
local SetVisible = function(_tb)
for k, ctrlObjInstance in pairs(_tb) do
ctrlObjInstance.gameObject:SetActive(bVisible == true)
end
end
SetVisible(self._tbObjCtrl)
SetVisible(self._tbObjChildCtrl)
SetVisible(self._tbObjDyncChildCtrl)
NovaAPI.DispatchEventWithData("BlockTouchEffect", nil, {bVisible})
end
return StarTowerProloguePanel