forked from akanyan/mu3-mods
fix(MPO): custom rating display bug
This commit is contained in:
@ -1,14 +1,13 @@
|
|||||||
using MU3.User;
|
using MonoMod;
|
||||||
|
|
||||||
namespace MU3.CustomUI;
|
namespace MU3.CustomUI;
|
||||||
|
|
||||||
class patch_MU3UICounter: MU3UICounter {
|
class patch_MU3UICounter: MU3UICounter {
|
||||||
public void SetRating(int value, byte suffix) {
|
[MonoModIgnore]
|
||||||
Counter = UserUtil.toRatingFloat(value);
|
private extern void updatePosition();
|
||||||
AddSuffix(suffix);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void AddSuffix(byte c) {
|
public void AddSuffix(byte c) {
|
||||||
|
updatePosition();
|
||||||
for(int i = numFigures_; i > 0; --i) {
|
for(int i = numFigures_; i > 0; --i) {
|
||||||
figures_[i] = figures_[i - 1];
|
figures_[i] = figures_[i - 1];
|
||||||
}
|
}
|
||||||
|
@ -12,7 +12,6 @@ class patch_ANM_CMN_UserDeta_01: ANM_CMN_UserDeta_01 {
|
|||||||
public extern void orig_setUserDetail();
|
public extern void orig_setUserDetail();
|
||||||
public new void setUserDetail() {
|
public new void setUserDetail() {
|
||||||
orig_setUserDetail();
|
orig_setUserDetail();
|
||||||
|
|
||||||
if(CustomRating.IsEnabled()) {
|
if(CustomRating.IsEnabled()) {
|
||||||
var r = CustomRating.Get();
|
var r = CustomRating.Get();
|
||||||
rating.Counter = UserUtil.toRatingFloat(r);
|
rating.Counter = UserUtil.toRatingFloat(r);
|
||||||
@ -20,6 +19,8 @@ class patch_ANM_CMN_UserDeta_01: ANM_CMN_UserDeta_01 {
|
|||||||
RatingColorID ratingColorIDFromRating = GameData.getRatingColorIDFromRating100(r);
|
RatingColorID ratingColorIDFromRating = GameData.getRatingColorIDFromRating100(r);
|
||||||
transform.Find("NUM_CMN_UserData_01/NUM_Rating").GetComponent<MU3UICounter>().SpriteIndex = (int)ratingColorIDFromRating;
|
transform.Find("NUM_CMN_UserData_01/NUM_Rating").GetComponent<MU3UICounter>().SpriteIndex = (int)ratingColorIDFromRating;
|
||||||
transform.Find("NUM_CMN_UserData_01/NUM_Rating/PAT_Header").GetComponent<MU3UIImageChanger>().patternNumber = (float)ratingColorIDFromRating;
|
transform.Find("NUM_CMN_UserData_01/NUM_Rating/PAT_Header").GetComponent<MU3UIImageChanger>().patternNumber = (float)ratingColorIDFromRating;
|
||||||
|
} else {
|
||||||
|
rating.setForceDirty();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,7 @@ using MU3.Game;
|
|||||||
using MU3.Mod;
|
using MU3.Mod;
|
||||||
using MU3.Sequence;
|
using MU3.Sequence;
|
||||||
using MU3.User;
|
using MU3.User;
|
||||||
|
using System.Collections;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
namespace MU3;
|
namespace MU3;
|
||||||
@ -33,8 +34,9 @@ class patch_UIResultBattlePoint: UIResultBattlePoint {
|
|||||||
counterScore_.Counter = (double)UserUtil.toRatingFloat(rating1);
|
counterScore_.Counter = (double)UserUtil.toRatingFloat(rating1);
|
||||||
int ratingPatternNo = UserUtil.toRatingPatternNo(rating1);
|
int ratingPatternNo = UserUtil.toRatingPatternNo(rating1);
|
||||||
counterScore_.SpriteIndex = ratingPatternNo;
|
counterScore_.SpriteIndex = ratingPatternNo;
|
||||||
|
StartCoroutine(addSuffix());
|
||||||
|
|
||||||
imageHeader_.patternNumber = ratingPatternNo;
|
imageHeader_.patternNumber = ratingPatternNo;
|
||||||
counterScore_.AddSuffix(CustomRating.GetSuffix());
|
|
||||||
int rating2 = rating1 - prevRating;
|
int rating2 = rating1 - prevRating;
|
||||||
if(rating2 == 0) {
|
if(rating2 == 0) {
|
||||||
disable(counterScorePlus_);
|
disable(counterScorePlus_);
|
||||||
@ -55,4 +57,9 @@ class patch_UIResultBattlePoint: UIResultBattlePoint {
|
|||||||
}
|
}
|
||||||
animator_.SetTrigger(Sys.Const.AnimatorID_In);
|
animator_.SetTrigger(Sys.Const.AnimatorID_In);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private IEnumerator addSuffix() {
|
||||||
|
yield return new WaitForSeconds(0.1f);
|
||||||
|
counterScore_.AddSuffix(CustomRating.GetSuffix());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user