1
0
forked from akanyan/mu3-mods

fix(MPO): don't tap into toRatingFloat

Cleaner, safer, and should fix collab play
This commit is contained in:
2024-12-28 21:10:31 +00:00
parent c84898cb78
commit 566d17c230
5 changed files with 21 additions and 25 deletions

View File

@ -1,20 +1,22 @@
using MU3.Mod;
using MU3.User;
namespace MU3.CustomUI;
class patch_MU3UICounter: MU3UICounter {
public bool isRatingDisplay { get; set; }
protected extern void orig_calcNumFiguresFloat(double value);
protected new void calcNumFiguresFloat(double value) {
orig_calcNumFiguresFloat(value);
if(isDispSuffix) {
if(isRatingDisplay) {
var b = CustomRating.GetSuffix();
if(b != 0) {
pushFigureFront(b);
}
}
}
public bool isDispSuffix { get; set; }
protected void pushFigureFront(byte c) {
for(int i = numFigures_; i > 0; --i) {
figures_[i] = figures_[i - 1];
@ -22,4 +24,13 @@ class patch_MU3UICounter: MU3UICounter {
figures_[0] = c;
numFigures_ += 1;
}
public extern void orig_set_Counter(double value);
public void set_Counter(double value) {
if(isRatingDisplay && CustomRating.IsEnabled()) {
orig_set_Counter(UserUtil.toRatingFloat(CustomRating.Get()));
} else {
orig_set_Counter(value);
}
}
}

View File

@ -7,9 +7,8 @@ class patch_ANM_CMN_UserDeta_01: ANM_CMN_UserDeta_01 {
public extern void orig_setUserDetail();
public new void setUserDetail() {
rating.isDispSuffix = true;
rating.isRatingDisplay = true;
orig_setUserDetail();
rating.setForceDirty();
}
}

View File

@ -1,16 +0,0 @@
using MonoMod;
using MU3.Mod;
namespace MU3.User;
[MonoModPatch("global::MU3.User.UserUtil")]
public static class patch_UserUtil {
public extern static float orig_toRatingFloat(int rating);
public static float toRatingFloat(int rating) {
if(CustomRating.IsEnabled()) {
return orig_toRatingFloat(CustomRating.Get());
} else {
return orig_toRatingFloat(rating);
}
}
}

View File

@ -21,15 +21,17 @@ class patch_UIResultBattlePoint: UIResultBattlePoint {
public extern void orig_initTechRating(PlayInfo playInfo);
public new void initTechRating(PlayInfo playInfo) {
counterScore_.isRatingDisplay = true;
if(!CustomRating.IsEnabled()) {
orig_initTechRating(playInfo);
return;
}
int prevRating = ((patch_SessionResult)playInfo.sessionResult).prevCustomRating;
int rating1 = CustomRating.Get();
hideScore_?.SetActive(false);
counterScore_.isDispSuffix = true;
counterScore_.Counter = (double)UserUtil.toRatingFloat(rating1);
int ratingPatternNo = UserUtil.toRatingPatternNo(rating1);
counterScore_.SpriteIndex = ratingPatternNo;
@ -42,15 +44,15 @@ class patch_UIResultBattlePoint: UIResultBattlePoint {
} else if(0 < rating2) {
disable(counterScoreMinus_);
if(counterScorePlus_ != null) {
counterScorePlus_.Counter = rating2 * 0.01f + 1E-05f;
counterScorePlus_.Counter = UserUtil.toRatingFloat(rating2);
}
animator_.SetInteger(Sys.Const.AnimatorID_State, 0);
} else {
disable(counterScorePlus_);
if(counterScoreMinus_ != null) {
counterScoreMinus_.Counter = rating2 * 0.01f + 1E-05f;
counterScoreMinus_.Counter = UserUtil.toRatingFloat(rating2);
}
animator_.SetInteger(MU3.Sys.Const.AnimatorID_State, 1);
animator_.SetInteger(Sys.Const.AnimatorID_State, 1);
}
animator_.SetTrigger(Sys.Const.AnimatorID_In);
}

View File

@ -2,7 +2,7 @@
<PropertyGroup>
<TargetFramework>net35</TargetFramework>
<Company>7EVENDAYS⇔HOLIDAYS</Company>
<Version>3.0.0</Version>
<Version>3.0.0.1</Version>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<LangVersion>latest</LangVersion>
<Platforms>x64</Platforms>