From 7deb395fd98f88c5887dbca98d00b10611b3a42c Mon Sep 17 00:00:00 2001 From: Clansty Date: Sat, 5 Oct 2024 00:20:07 +0800 Subject: [PATCH] [+] Fix level display everywhere --- AquaMai/AquaMai.csproj | 1 + AquaMai/Fix/BasicFix.cs | 19 --------- AquaMai/Fix/FixLevelDisplay.cs | 73 ++++++++++++++++++++++++++++++++++ AquaMai/Main.cs | 1 + 4 files changed, 75 insertions(+), 19 deletions(-) create mode 100644 AquaMai/Fix/FixLevelDisplay.cs diff --git a/AquaMai/AquaMai.csproj b/AquaMai/AquaMai.csproj index fabd9e6c..01849816 100644 --- a/AquaMai/AquaMai.csproj +++ b/AquaMai/AquaMai.csproj @@ -299,6 +299,7 @@ DEBUG + diff --git a/AquaMai/Fix/BasicFix.cs b/AquaMai/Fix/BasicFix.cs index 98d33336..54e3d26f 100644 --- a/AquaMai/Fix/BasicFix.cs +++ b/AquaMai/Fix/BasicFix.cs @@ -55,25 +55,6 @@ public class BasicFix return false; } - [HarmonyPostfix] - [HarmonyPatch(typeof(MusicChainCardObejct), "SetLevel")] - private static void FixLevelShift(MusicLevelID levelID, ref SpriteCounter ____digitLevel, ref SpriteCounter ____doubleDigitLevel) - { - switch (levelID) - { - case > MusicLevelID.Level9P: - ____digitLevel.gameObject.SetActive(value: false); - ____doubleDigitLevel.gameObject.SetActive(value: true); - ____doubleDigitLevel.ChangeText(levelID.GetLevelNum().PadRight(3)); - break; - case >= MusicLevelID.None: - ____digitLevel.gameObject.SetActive(value: true); - ____doubleDigitLevel.gameObject.SetActive(value: false); - ____digitLevel.ChangeText(levelID.GetLevelNum().PadRight(2)); - break; - } - } - [HarmonyPrefix] [HarmonyPatch(typeof(NetHttpClient), "CheckServerHash")] private static bool CheckServerHash(ref bool __result) diff --git a/AquaMai/Fix/FixLevelDisplay.cs b/AquaMai/Fix/FixLevelDisplay.cs new file mode 100644 index 00000000..e04ac69f --- /dev/null +++ b/AquaMai/Fix/FixLevelDisplay.cs @@ -0,0 +1,73 @@ +using HarmonyLib; +using MAI2.Util; +using Manager; +using Monitor; +using Monitor.MusicSelect.ChainList; +using UnityEngine; + +namespace AquaMai.Fix; + +public class FixLevelDisplay +{ + [HarmonyPostfix] + [HarmonyPatch(typeof(MusicChainCardObejct), "SetLevel")] + private static void FixLevelShiftMusicChainCardObejct(MusicLevelID levelID, SpriteCounter ____digitLevel, SpriteCounter ____doubleDigitLevel, bool utage, GameObject ____difficultyUtageQuesionMarkSingleDigit, GameObject ____difficultyUtageQuesionMarkDoubleDigit) + { + switch (levelID) + { + case > MusicLevelID.Level9P: + ____digitLevel.gameObject.SetActive(value: false); + ____doubleDigitLevel.gameObject.SetActive(value: true); + ____doubleDigitLevel.ChangeText(levelID.GetLevelNum().PadRight(3)); + break; + case >= MusicLevelID.None: + ____digitLevel.gameObject.SetActive(value: true); + ____doubleDigitLevel.gameObject.SetActive(value: false); + ____digitLevel.ChangeText(levelID.GetLevelNum().PadRight(2)); + break; + } + + if (!utage) return; + switch (levelID) + { + case > MusicLevelID.Level9P: + ____difficultyUtageQuesionMarkSingleDigit.SetActive(value: false); + ____difficultyUtageQuesionMarkDoubleDigit.SetActive(value: true); + break; + case >= MusicLevelID.None: + ____difficultyUtageQuesionMarkSingleDigit.SetActive(value: true); + ____difficultyUtageQuesionMarkDoubleDigit.SetActive(value: false); + break; + } + } + + [HarmonyPostfix] + [HarmonyPatch(typeof(SingleResultCardController), "SetLevel")] + private static void FixLevelShiftSingleResultCardController(MusicLevelID levelID, bool isUtage, ref SpriteCounter ____difficultySingle, ref SpriteCounter ____difficultyDouble, GameObject ____utageQuestionMarkSingleDigit, GameObject ____utageQuestionMarkDoubleDigit) + { + FixLevelShiftMusicChainCardObejct(levelID, ____difficultySingle, ____difficultyDouble, isUtage, ____utageQuestionMarkSingleDigit, ____utageQuestionMarkDoubleDigit); + } + + [HarmonyPostfix] + [HarmonyPatch(typeof(TotalResultPlayer), "SetLevel")] + private static void FixLevelShiftTotalResultPlayer(MusicLevelID levelID, bool isUtage, ref SpriteCounter ____difficultySingle, ref SpriteCounter ____difficultyDouble, GameObject ____utageQuestionMarkSingleDigit, GameObject ____utageQuestionMarkDoubleDigit) + { + FixLevelShiftMusicChainCardObejct(levelID, ____difficultySingle, ____difficultyDouble, isUtage, ____utageQuestionMarkSingleDigit, ____utageQuestionMarkDoubleDigit); + } + + [HarmonyPostfix] + [HarmonyPatch(typeof(ResultMonitor), "SetLevel")] + private static void FixLevelShiftTotalResultPlayer(MusicLevelID levelID, ref SpriteCounter ____difficultySingle, ref SpriteCounter ____difficultyDouble) + { + FixLevelShiftMusicChainCardObejct(levelID, ____difficultySingle, ____difficultyDouble, false, null, null); + } + + [HarmonyPostfix] + [HarmonyPatch(typeof(TrackStartMonitor), "SetTrackStart")] + private static void FixLevelShiftTrackStartMonitor(int ___monitorIndex, ref SpriteCounter ____difficultySingle, ref SpriteCounter ____difficultyDouble, GameObject ____utageQuestionSingleDigit, GameObject ____utageQuestionDoubleDigit) + { + var music = Singleton.Instance.GetMusic(GameManager.SelectMusicID[___monitorIndex]); + var levelID = (MusicLevelID)music.notesData[GameManager.SelectDifficultyID[___monitorIndex]].musicLevelID; + FixLevelShiftMusicChainCardObejct(levelID, ____difficultySingle, ____difficultyDouble, music.name.id >= 100000, ____utageQuestionSingleDigit, ____utageQuestionDoubleDigit); + } +} diff --git a/AquaMai/Main.cs b/AquaMai/Main.cs index a94cab76..49cc1033 100644 --- a/AquaMai/Main.cs +++ b/AquaMai/Main.cs @@ -160,6 +160,7 @@ namespace AquaMai Patch(typeof(DebugFeature)); Patch(typeof(FixConnSlide)); Patch(typeof(SlideAutoPlayTweak)); + Patch(typeof(FixLevelDisplay)); // UX Patch(typeof(CustomVersionString)); Patch(typeof(CustomPlaceName));