Files
Endfield-Data/LuaScripts/Phase/GachaLauncher/PhaseGachaLauncher.lua
2026-01-31 21:42:01 +07:00

139 lines
2.6 KiB
Lua

local phaseBase = require_ex('Phase/Core/PhaseBase')
local PHASE_ID = PhaseId.GachaLauncher
PhaseGachaLauncher = HL.Class('PhaseGachaLauncher', phaseBase.PhaseBase)
PhaseGachaLauncher.s_messages = HL.StaticField(HL.Table) << {
}
PhaseGachaLauncher.m_launcherObjItem = HL.Field(HL.Forward('PhaseGameObjectItem'))
PhaseGachaLauncher.m_launcherDirector = HL.Field(CS.UnityEngine.Playables.PlayableDirector)
PhaseGachaLauncher.m_cutsceneData = HL.Field(HL.Any)
PhaseGachaLauncher._OnInit = HL.Override() << function(self)
PhaseGachaLauncher.Super._OnInit(self)
end
PhaseGachaLauncher.PrepareTransition = HL.Override(HL.Number, HL.Boolean, HL.Opt(HL.Number)) << function(self, transitionType, fastMode, anotherPhaseId)
end
PhaseGachaLauncher._DoPhaseTransitionIn = HL.Override(HL.Boolean, HL.Opt(HL.Table)) << function(self, fastMode, args)
local maxRarity = 0
for _, v in ipairs(self.arg.chars) do
if v.rarity > maxRarity then
maxRarity = v.rarity
end
end
local hasSurprise = GameInstance.player.gacha.hasSuperSurprise
if maxRarity == 6 and hasSurprise then
GameInstance.player.gacha.curPlayingTimelineMaxRarity = 5
else
GameInstance.player.gacha.curPlayingTimelineMaxRarity = maxRarity
end
self.m_launcherObjItem = self:CreatePhaseGOItem("GachaLauncher", nil, nil, "Gacha")
self.m_launcherDirector = self.m_launcherObjItem.view.director
self.m_launcherObjItem.go:SetLayerRecursive(UIConst.GACHA_LAYER)
self.m_launcherObjItem.go.transform.position = Vector3(0, 0, 0)
local panel = self:CreatePhasePanelItem(PanelId.GachaLauncher, self.arg)
panel.uiCtrl:Start()
LuaSystemManager.gachaSystem:UpdateGachaSettingState()
end
PhaseGachaLauncher._DoPhaseTransitionOut = HL.Override(HL.Boolean, HL.Opt(HL.Table)) << function(self, fastMode, args)
GameInstance.player.gacha.curPlayingTimelineMaxRarity = 0
end
PhaseGachaLauncher._DoPhaseTransitionBehind = HL.Override(HL.Boolean, HL.Opt(HL.Table)) << function(self, fastMode, args)
end
PhaseGachaLauncher._DoPhaseTransitionBackToTop = HL.Override(HL.Boolean, HL.Opt(HL.Table)) << function(self, fastMode, args)
end
PhaseGachaLauncher._OnActivated = HL.Override() << function(self)
LuaSystemManager.gachaSystem:UpdateGachaSettingState()
end
PhaseGachaLauncher._OnDeActivated = HL.Override() << function(self)
LuaSystemManager.gachaSystem:UpdateGachaSettingState()
end
PhaseGachaLauncher._OnDestroy = HL.Override() << function(self)
PhaseGachaLauncher.Super._OnDestroy(self)
end
HL.Commit(PhaseGachaLauncher)