From 52a15722a8c4a04bd11199847378a7208bcd9205 Mon Sep 17 00:00:00 2001 From: akanyan Date: Sun, 26 Jan 2025 14:09:38 +0000 Subject: [PATCH] fix(MPO): custom rating display bug --- .../MU3.CustomUI/patch_MU3UICounter.cs | 9 ++++----- .../MU3.SceneObject/patch_ANM_CMN_User.cs | 3 ++- .../MoreProfileOptions/MU3/patch_UIResultBattlePoint.cs | 9 ++++++++- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/Extras/MoreProfileOptions/MU3.CustomUI/patch_MU3UICounter.cs b/Extras/MoreProfileOptions/MU3.CustomUI/patch_MU3UICounter.cs index 28780fb..f2a9390 100644 --- a/Extras/MoreProfileOptions/MU3.CustomUI/patch_MU3UICounter.cs +++ b/Extras/MoreProfileOptions/MU3.CustomUI/patch_MU3UICounter.cs @@ -1,14 +1,13 @@ -using MU3.User; +using MonoMod; namespace MU3.CustomUI; class patch_MU3UICounter: MU3UICounter { - public void SetRating(int value, byte suffix) { - Counter = UserUtil.toRatingFloat(value); - AddSuffix(suffix); - } + [MonoModIgnore] + private extern void updatePosition(); public void AddSuffix(byte c) { + updatePosition(); for(int i = numFigures_; i > 0; --i) { figures_[i] = figures_[i - 1]; } diff --git a/Extras/MoreProfileOptions/MU3.SceneObject/patch_ANM_CMN_User.cs b/Extras/MoreProfileOptions/MU3.SceneObject/patch_ANM_CMN_User.cs index 36b27f5..8bb046a 100644 --- a/Extras/MoreProfileOptions/MU3.SceneObject/patch_ANM_CMN_User.cs +++ b/Extras/MoreProfileOptions/MU3.SceneObject/patch_ANM_CMN_User.cs @@ -12,7 +12,6 @@ class patch_ANM_CMN_UserDeta_01: ANM_CMN_UserDeta_01 { public extern void orig_setUserDetail(); public new void setUserDetail() { orig_setUserDetail(); - if(CustomRating.IsEnabled()) { var r = CustomRating.Get(); rating.Counter = UserUtil.toRatingFloat(r); @@ -20,6 +19,8 @@ class patch_ANM_CMN_UserDeta_01: ANM_CMN_UserDeta_01 { RatingColorID ratingColorIDFromRating = GameData.getRatingColorIDFromRating100(r); transform.Find("NUM_CMN_UserData_01/NUM_Rating").GetComponent().SpriteIndex = (int)ratingColorIDFromRating; transform.Find("NUM_CMN_UserData_01/NUM_Rating/PAT_Header").GetComponent().patternNumber = (float)ratingColorIDFromRating; + } else { + rating.setForceDirty(); } } } diff --git a/Extras/MoreProfileOptions/MU3/patch_UIResultBattlePoint.cs b/Extras/MoreProfileOptions/MU3/patch_UIResultBattlePoint.cs index c8e0a92..23ea242 100644 --- a/Extras/MoreProfileOptions/MU3/patch_UIResultBattlePoint.cs +++ b/Extras/MoreProfileOptions/MU3/patch_UIResultBattlePoint.cs @@ -4,6 +4,7 @@ using MU3.Game; using MU3.Mod; using MU3.Sequence; using MU3.User; +using System.Collections; using UnityEngine; namespace MU3; @@ -33,8 +34,9 @@ class patch_UIResultBattlePoint: UIResultBattlePoint { counterScore_.Counter = (double)UserUtil.toRatingFloat(rating1); int ratingPatternNo = UserUtil.toRatingPatternNo(rating1); counterScore_.SpriteIndex = ratingPatternNo; + StartCoroutine(addSuffix()); + imageHeader_.patternNumber = ratingPatternNo; - counterScore_.AddSuffix(CustomRating.GetSuffix()); int rating2 = rating1 - prevRating; if(rating2 == 0) { disable(counterScorePlus_); @@ -55,4 +57,9 @@ class patch_UIResultBattlePoint: UIResultBattlePoint { } animator_.SetTrigger(Sys.Const.AnimatorID_In); } + + private IEnumerator addSuffix() { + yield return new WaitForSeconds(0.1f); + counterScore_.AddSuffix(CustomRating.GetSuffix()); + } }