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> {
|
||||
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;
|
||||
|
||||
class patch_PlayMusic: PlayMusic {
|
||||
public class CutscenePatch { };
|
||||
|
||||
private GameEngine _gameEngine;
|
||||
private bool _quickStart = false;
|
||||
|
||||
@ -28,9 +26,10 @@ class patch_PlayMusic: PlayMusic {
|
||||
private void 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)) {
|
||||
Singleton<Mod.State>.instance.SkipEntry = true;
|
||||
Singleton<Mod.State>.instance.SkipMusicIntro = true;
|
||||
_gameEngine.skipStartCutscene();
|
||||
if(isPartyPlay()) {
|
||||
setNextState(EState.PartyWaitReady);
|
||||
@ -58,10 +57,11 @@ class patch_PlayMusic: PlayMusic {
|
||||
if(Singleton<UIInput>.instance.getTriggerOn(UIInput.Key.MenuLeft)) {
|
||||
if(!isPartyPlay() || state > EState.CalcResult) {
|
||||
enabled = true;
|
||||
Singleton<Mod.State>.instance.SkipMusicOutro = true;
|
||||
}
|
||||
}
|
||||
if(enabled) {
|
||||
Singleton<Mod.State>.instance.SkipItemFrame = true;
|
||||
Singleton<Mod.State>.instance.SkipItemFrame = false;
|
||||
if(state < EState.CalcResult) {
|
||||
setNextState(EState.CalcResult);
|
||||
}
|
||||
|
@ -24,7 +24,7 @@ class patch_BattleUI: BattleUI {
|
||||
}
|
||||
|
||||
public new void playReady(Action onFinish) {
|
||||
if(Singleton<Mod.State>.instance.SkipEntry) {
|
||||
if(Singleton<Mod.State>.instance.SkipMusicIntro) {
|
||||
StartCoroutine(playReadyProcSkipped(onFinish));
|
||||
} else {
|
||||
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