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));