Files
SL1900 80af235e05 Update - 1.12.0.120
EN: 1.12.0.120
CN: 1.12.0.120
JP: 1.12.0.124
KR: 1.12.0.124
2026-06-30 14:30:00 +09:00

142 lines
5.7 KiB
Lua

local StarTowerBookCtrl = class("StarTowerBookCtrl", BaseCtrl)
StarTowerBookCtrl._mapNodeConfig = {
TopBar = {
sNodeName = "TopBarPanel",
sCtrlName = "Game.UI.TopBarEx.TopBarCtrl"
},
MainRoot = {
sNodeName = "---Main---",
sCtrlName = "Game.UI.StarTowerBook.StarTowerBookMainCtrl"
},
PotentialRoot = {
sNodeName = "---Potential---",
sCtrlName = "Game.UI.StarTowerBook.Potential.StarTowerPotentialBookCtrl"
},
FateCardRoot = {
sNodeName = "---FateCard---",
sCtrlName = "Game.UI.StarTowerBook.FateCard.StarTowerFateCardBookCtrl"
},
EventRoot = {
sNodeName = "---Event---",
sCtrlName = "Game.UI.StarTowerBook.Event.StarTowerEventBookCtrl"
},
QuestRoot = {
sNodeName = "---Quest---",
sCtrlName = "Game.UI.StarTowerBook.Quest.StarTowerBookQuestCtrl"
},
AffinityRoot = {
sNodeName = "---Affinity---",
sCtrlName = "Game.UI.StarTowerBook.Affinity.StarTowerNpcAffinityCtrl"
},
goBg = {},
animBg = {sNodeName = "goBg", sComponentName = "Animator"}
}
StarTowerBookCtrl._mapEventConfig = {
ChangeStarTowerBookPanel = "OnEvent_ChangeStarTowerBookPanel",
OpenStarTowerBookQuest = "OnEvent_OpenStarTowerBookQuest",
[EventId.UIBackConfirm] = "OnEvent_Back",
[EventId.UIHomeConfirm] = "OnEvent_Home"
}
StarTowerBookCtrl._mapRedDotConfig = {}
function StarTowerBookCtrl:RefreshPanel()
self._mapNode.MainRoot.gameObject:SetActive(self._panel.nPanelType == AllEnum.StarTowerBookPanelType.Main)
self._mapNode.PotentialRoot.gameObject:SetActive(self._panel.nPanelType == AllEnum.StarTowerBookPanelType.Potential)
self._mapNode.FateCardRoot.gameObject:SetActive(self._panel.nPanelType == AllEnum.StarTowerBookPanelType.FateCard)
self._mapNode.EventRoot.gameObject:SetActive(self._panel.nPanelType == AllEnum.StarTowerBookPanelType.Event)
self._mapNode.AffinityRoot.gameObject:SetActive(self._panel.nPanelType == AllEnum.StarTowerBookPanelType.Affinity)
self._mapNode.goBg.gameObject:SetActive(true)
if self.nLastPanelType ~= nil and (self.nLastPanelType == AllEnum.StarTowerBookPanelType.Event or self.nLastPanelType == AllEnum.StarTowerBookPanelType.Affinity) or self._panel.nPanelType == AllEnum.StarTowerBookPanelType.Event or self._panel.nPanelType == AllEnum.StarTowerBookPanelType.Affinity then
self._mapNode.goBg.gameObject:SetActive(false)
return
end
if self._panel.nPanelType == AllEnum.StarTowerBookPanelType.Potential or self._panel.nPanelType == AllEnum.StarTowerBookPanelType.FateCard then
self._mapNode.animBg:Play("StarTowerBookgoBg_in", 0, 0)
else
self._mapNode.animBg:Play("StarTowerBookgoBg_out", 0, 0)
end
end
function StarTowerBookCtrl:Awake()
self.nLastPanelType = nil
if self._panel.nPanelType == 0 then
self._panel.nPanelType = AllEnum.StarTowerBookPanelType.Main
end
self._mapNode.QuestRoot.gameObject:SetActive(false)
self:RefreshPanel()
self._mapNode.goBg.gameObject:SetActive(false)
end
function StarTowerBookCtrl:FadeIn()
end
function StarTowerBookCtrl:FadeOut()
end
function StarTowerBookCtrl:OnEnable()
self._mapNode.MainRoot.gameObject:SetActive(true)
self._mapNode.MainRoot:Init()
local tbParam = self:GetPanelParam()
if tbParam[1] ~= nil then
self._panel.nPanelType = tbParam[1]
tbParam = {}
end
local wait = function()
coroutine.yield(CS.UnityEngine.WaitForEndOfFrame())
if self._panel.nPanelType ~= AllEnum.StarTowerBookPanelType.Main then
self:OnEvent_ChangeStarTowerBookPanel(self._panel.nPanelType)
end
end
cs_coroutine.start(wait)
end
function StarTowerBookCtrl:OnDisable()
end
function StarTowerBookCtrl:OnDestroy()
end
function StarTowerBookCtrl:OnRelease()
end
function StarTowerBookCtrl:OnEvent_ChangeStarTowerBookPanel(nPanelType)
self.nLastPanelType = self._panel.nPanelType
self._panel.nPanelType = nPanelType
if self._panel.nPanelType == AllEnum.StarTowerBookPanelType.Potential then
self:RefreshPanel()
self._mapNode.PotentialRoot:Init()
self._mapNode.TopBar:SetTitleTxt(ConfigTable.GetUIText("StarTower_Book_Potential_TopBar_Title"))
elseif self._panel.nPanelType == AllEnum.StarTowerBookPanelType.Event then
self:RefreshPanel()
self._mapNode.EventRoot:Init()
self._mapNode.TopBar:SetTitleTxt(ConfigTable.GetUIText("StarTower_Book_Event_TopBar_Title"))
elseif self._panel.nPanelType == AllEnum.StarTowerBookPanelType.FateCard then
self:RefreshPanel()
self._mapNode.FateCardRoot:Init()
self._mapNode.TopBar:SetTitleTxt(ConfigTable.GetUIText("StarTower_Book_FateCard_TopBar_Title"))
elseif self._panel.nPanelType == AllEnum.StarTowerBookPanelType.Affinity then
local callback = function()
self:RefreshPanel()
self._mapNode.AffinityRoot:Init()
self._mapNode.TopBar:SetTitleTxt(ConfigTable.GetUIText("StartowerBook_NPCAffinityTitle"))
end
PlayerData.StarTower:GetAffinity(callback)
elseif self._panel.nPanelType == AllEnum.StarTowerBookPanelType.Main then
self:RefreshPanel()
self._mapNode.MainRoot:BackToMain()
self._mapNode.TopBar:SetTitleTxt(ConfigTable.GetUIText("StarTower_Book_Main_TopBar_Title"))
end
end
function StarTowerBookCtrl:OnEvent_OpenStarTowerBookQuest(nParam)
self._mapNode.QuestRoot.gameObject:SetActive(true)
self._mapNode.QuestRoot:ShowWindow(nParam)
end
function StarTowerBookCtrl:OnEvent_Back()
if self._panel.nPanelType == AllEnum.StarTowerBookPanelType.Potential then
self._mapNode.PotentialRoot:Back()
elseif self._panel.nPanelType == AllEnum.StarTowerBookPanelType.Event then
self._mapNode.EventRoot:Back()
elseif self._panel.nPanelType == AllEnum.StarTowerBookPanelType.FateCard then
self._mapNode.FateCardRoot:Back()
elseif self._panel.nPanelType == AllEnum.StarTowerBookPanelType.Affinity then
self._mapNode.AffinityRoot:Back()
else
EventManager.Hit(EventId.ClosePanel, PanelId.StarTowerBook)
end
end
function StarTowerBookCtrl:OnEvent_Home()
PanelManager.Home()
end
return StarTowerBookCtrl