[F] Need to press skip multiple time to exit photo edit while ExtendTimer is on

pull/40/head
Clansty 2024-05-26 10:11:29 +08:00
parent e55d17fd08
commit ef85156bae
2 changed files with 29 additions and 21 deletions

View File

@ -1,4 +1,7 @@
using HarmonyLib;
using Manager;
using Monitor;
using Process;
namespace AquaMai.UX
{
@ -10,5 +13,17 @@ namespace AquaMai.UX
{
second = 200;
}
[HarmonyPrefix]
[HarmonyPatch(typeof(PhotoEditProcess), "MainMenuUpdate")]
public static void PhotoEditProcess(PhotoEditMonitor[] ____monitors, ProcessDataContainer ___container)
{
if (InputManager.GetButtonDown(0, InputManager.ButtonSetting.Button04))
{
___container.processManager.DecrementTime(0, 200);
SoundManager.PlaySE(Mai2.Mai2Cue.Cue.SE_SYS_SKIP, 0);
____monitors[0].SetButtonPressed(InputManager.ButtonSetting.Button04);
}
}
}
}

View File

@ -6,7 +6,6 @@ using Main;
using Manager;
using MelonLoader;
using Process;
using Process.Information;
using UnityEngine;
namespace AquaMai.UX
@ -42,7 +41,7 @@ namespace AquaMai.UX
var traverse = Traverse.Create(_container.processManager);
var processList = traverse.Field("_processList").GetValue<LinkedList<ProcessManager.ProcessControle>>();
var flagGoToMusicSelect = false;
ProcessBase processToRelease = null;
foreach (ProcessManager.ProcessControle process in processList)
{
@ -53,19 +52,14 @@ namespace AquaMai.UX
case "Process.RegionalSelectProcess":
case "Process.CharacterSelectProcess":
case "Process.TicketSelect.TicketSelectProcess":
// After playing a song
case "Process.ResultProcess":
case "Process.MapResultProcess":
_container.processManager.ReleaseProcess(process.Process);
flagGoToMusicSelect = true;
processToRelease = process.Process;
break;
case "Process.MusicSelectProcess":
// Skip to save
SoundManager.PreviewEnd();
SoundManager.PlayBGM(Cue.BGM_COLLECTION, 2);
_container.processManager.ReleaseProcess(process.Process);
_container.processManager.AddProcess(new UnlockMusicProcess(_container));
_container.processManager.AddProcess(new FadeProcess(_container, process.Process, new UnlockMusicProcess(_container)));
break;
case "Process.GameProcess":
@ -75,12 +69,11 @@ namespace AquaMai.UX
}
}
if (flagGoToMusicSelect)
if (processToRelease != null)
{
GameManager.SetMaxTrack();
_container.processManager.AddProcess(new MusicSelectProcess(_container));
_container.processManager.AddProcess(new FadeProcess(_container, processToRelease, new MusicSelectProcess(_container)));
}
}
}
}