using MU3.Battle; using MU3.Data; using MU3.Game; using MU3.Util; namespace MU3.Sequence; class patch_PlayMusic: PlayMusic { private GameEngine _gameEngine; private SessionInfo _sessionInfo; private bool _nuclearSkip = false; public static bool ForceSkipped { get; private set; } private extern void orig_Execute_StartCutscene(); private void Execute_StartCutscene() { orig_Execute_StartCutscene(); ForceSkipped = false; if(Singleton.instance.config.isQuickStart || Singleton.instance.getTriggerOn(UIInput.Key.MenuLeft)) { ForceSkipped = true; _gameEngine.skipStartCutscene(); setNextState(EState.Countdown); } } public extern bool orig_updateState(float deltaTime); public override bool updateState(float deltaTime = -1f) { var state = getCurrentState(); if(state >= EState.PlayEnd && Singleton.instance.getTriggerOn(UIInput.Key.MenuLeft)) { _nuclearSkip = true; } if(_nuclearSkip) { if(state < EState.CalcResult) { setNextState(EState.CalcResult); } if(state > EState.CalcResult) { int selectorID = SingletonStateMachine.instance.getMemoryChapterData(_sessionInfo.chapterSelection.memoryChapterId)?.getMemoryChapterSelectorID() ?? 4; Singleton.instance.gameBGM.playBGM(236, selectorID); setNextState(EState.End); } } return orig_updateState(deltaTime); } }