forked from akanyan/mu3-mods
feat(SkipCutscenes): full postgame skip
This commit is contained in:
@ -4,5 +4,6 @@ namespace MU3.Mod;
|
|||||||
|
|
||||||
class State: Singleton<State> {
|
class State: Singleton<State> {
|
||||||
public bool SkipItemFrame { get; set; }
|
public bool SkipItemFrame { get; set; }
|
||||||
public bool SkipEntry { get; set; }
|
public bool SkipMusicIntro { get; set; }
|
||||||
|
public bool SkipMusicOutro { get; set; }
|
||||||
}
|
}
|
||||||
|
@ -8,8 +8,6 @@ using UnityEngine;
|
|||||||
namespace MU3.Sequence;
|
namespace MU3.Sequence;
|
||||||
|
|
||||||
class patch_PlayMusic: PlayMusic {
|
class patch_PlayMusic: PlayMusic {
|
||||||
public class CutscenePatch { };
|
|
||||||
|
|
||||||
private GameEngine _gameEngine;
|
private GameEngine _gameEngine;
|
||||||
private bool _quickStart = false;
|
private bool _quickStart = false;
|
||||||
|
|
||||||
@ -28,9 +26,10 @@ class patch_PlayMusic: PlayMusic {
|
|||||||
private void Execute_StartCutscene() {
|
private void Execute_StartCutscene() {
|
||||||
orig_Execute_StartCutscene();
|
orig_Execute_StartCutscene();
|
||||||
|
|
||||||
Singleton<Mod.State>.instance.SkipEntry = false;
|
Singleton<Mod.State>.instance.SkipMusicIntro = false;
|
||||||
|
Singleton<Mod.State>.instance.SkipMusicOutro = false;
|
||||||
if(_quickStart || Singleton<UIInput>.instance.getTriggerOn(UIInput.Key.MenuLeft)) {
|
if(_quickStart || Singleton<UIInput>.instance.getTriggerOn(UIInput.Key.MenuLeft)) {
|
||||||
Singleton<Mod.State>.instance.SkipEntry = true;
|
Singleton<Mod.State>.instance.SkipMusicIntro = true;
|
||||||
_gameEngine.skipStartCutscene();
|
_gameEngine.skipStartCutscene();
|
||||||
if(isPartyPlay()) {
|
if(isPartyPlay()) {
|
||||||
setNextState(EState.PartyWaitReady);
|
setNextState(EState.PartyWaitReady);
|
||||||
@ -58,10 +57,11 @@ class patch_PlayMusic: PlayMusic {
|
|||||||
if(Singleton<UIInput>.instance.getTriggerOn(UIInput.Key.MenuLeft)) {
|
if(Singleton<UIInput>.instance.getTriggerOn(UIInput.Key.MenuLeft)) {
|
||||||
if(!isPartyPlay() || state > EState.CalcResult) {
|
if(!isPartyPlay() || state > EState.CalcResult) {
|
||||||
enabled = true;
|
enabled = true;
|
||||||
|
Singleton<Mod.State>.instance.SkipMusicOutro = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(enabled) {
|
if(enabled) {
|
||||||
Singleton<Mod.State>.instance.SkipItemFrame = true;
|
Singleton<Mod.State>.instance.SkipItemFrame = false;
|
||||||
if(state < EState.CalcResult) {
|
if(state < EState.CalcResult) {
|
||||||
setNextState(EState.CalcResult);
|
setNextState(EState.CalcResult);
|
||||||
}
|
}
|
||||||
|
@ -24,7 +24,7 @@ class patch_BattleUI: BattleUI {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public new void playReady(Action onFinish) {
|
public new void playReady(Action onFinish) {
|
||||||
if(Singleton<Mod.State>.instance.SkipEntry) {
|
if(Singleton<Mod.State>.instance.SkipMusicIntro) {
|
||||||
StartCoroutine(playReadyProcSkipped(onFinish));
|
StartCoroutine(playReadyProcSkipped(onFinish));
|
||||||
} else {
|
} else {
|
||||||
StartCoroutine(playReadyProc(onFinish));
|
StartCoroutine(playReadyProc(onFinish));
|
||||||
|
23
Extras/SkipCutscenes/MU3/patch_Scene_37_Result.cs
Normal file
23
Extras/SkipCutscenes/MU3/patch_Scene_37_Result.cs
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
using MonoMod;
|
||||||
|
using MU3.Util;
|
||||||
|
|
||||||
|
namespace MU3;
|
||||||
|
|
||||||
|
class patch_Scene_37_Result: Scene_37_Result {
|
||||||
|
[MonoModIgnore]
|
||||||
|
private enum State { End = 11 };
|
||||||
|
|
||||||
|
private Mode<Scene_37_Result, State> mode_;
|
||||||
|
|
||||||
|
private extern void orig_Assignment_Init();
|
||||||
|
private void Assignment_Init() {
|
||||||
|
if(Singleton<Mod.State>.instance.SkipMusicOutro) {
|
||||||
|
SystemUI instance = SingletonMonoBehaviour<SystemUI>.instance;
|
||||||
|
instance.removeCanvas(Graphics.Const.SortOrder.Dialog);
|
||||||
|
Singleton<Mod.State>.instance.SkipMusicOutro = false;
|
||||||
|
mode_.set(State.End);
|
||||||
|
} else {
|
||||||
|
orig_Assignment_Init();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user