Files
Endfield-Data/LuaScripts/Phase/WorldEnergyPointEntry/PhaseWorldEnergyPointEntry.lua
2025-12-02 20:37:18 +07:00

143 lines
2.6 KiB
Lua

local phaseBase = require_ex('Phase/Core/PhaseBase')
local PHASE_ID = PhaseId.WorldEnergyPointEntry
PhaseWorldEnergyPointEntry = HL.Class('PhaseWorldEnergyPointEntry', phaseBase.PhaseBase)
PhaseWorldEnergyPointEntry.m_gameGroupId = HL.Field(HL.String) << ""
PhaseWorldEnergyPointEntry.m_blendCamCfg = HL.Field(CS.Beyond.Gameplay.RelativeCameraBlendConfig)
PhaseWorldEnergyPointEntry.s_messages = HL.StaticField(HL.Table) << {
[MessageConst.OPEN_WORLD_ENERGY_POINT_ENTRY] = { 'OpenWorldEnergyPointEntry', false },
[MessageConst.ON_WORLD_ENERGY_POINT_START] = { 'CloseWorldEnergyPointEntry', true}
}
PhaseWorldEnergyPointEntry.OpenWorldEnergyPointEntry = HL.StaticMethod(HL.Table) << function(args)
PhaseManager:OpenPhase(PHASE_ID, args)
end
PhaseWorldEnergyPointEntry._OnInit = HL.Override() << function(self)
PhaseWorldEnergyPointEntry.Super._OnInit(self)
end
PhaseWorldEnergyPointEntry.PrepareTransition = HL.Override(HL.Number, HL.Boolean, HL.Opt(HL.Number)) << function(self, transitionType, fastMode, anotherPhaseId)
end
PhaseWorldEnergyPointEntry._DoPhaseTransitionIn = HL.Override(HL.Boolean, HL.Opt(HL.Table)) << function(self, fastMode, args)
local gameGroupId, blendCamCfg = unpack(self.arg)
if blendCamCfg then
GameAction.BlendToRelativeCamera(blendCamCfg)
end
self.m_gameGroupId = gameGroupId
self.m_blendCamCfg = blendCamCfg
end
PhaseWorldEnergyPointEntry._DoPhaseTransitionOut = HL.Override(HL.Boolean, HL.Opt(HL.Table)) << function(self, fastMode, args)
if not self.m_blendCamCfg then
return
end
local hasCameraCfg, cameraCfg = DataManager.relativeCameraConfigs:TryGetValue(self.m_blendCamCfg.configId)
local blendOutDuration = 0.5
if hasCameraCfg then
blendOutDuration = cameraCfg.tweenTime
end
CS.Beyond.Gameplay.View.CameraUtils.DoCommonTempBlendOut(blendOutDuration)
end
PhaseWorldEnergyPointEntry._DoPhaseTransitionBehind = HL.Override(HL.Boolean, HL.Opt(HL.Table)) << function(self, fastMode, args)
end
PhaseWorldEnergyPointEntry._DoPhaseTransitionBackToTop = HL.Override(HL.Boolean, HL.Opt(HL.Table)) << function(self, fastMode, args)
end
PhaseWorldEnergyPointEntry._OnActivated = HL.Override() << function(self)
end
PhaseWorldEnergyPointEntry._OnDeActivated = HL.Override() << function(self)
end
PhaseWorldEnergyPointEntry._OnDestroy = HL.Override() << function(self)
PhaseWorldEnergyPointEntry.Super._OnDestroy(self)
end
PhaseWorldEnergyPointEntry.CloseWorldEnergyPointEntry = HL.Method() << function(self)
PhaseManager:PopPhase(PHASE_ID)
end
HL.Commit(PhaseWorldEnergyPointEntry)