forked from akanyan/mu3-mods
fix(MPO): don't tap into toRatingFloat
Cleaner, safer, and should fix collab play
This commit is contained in:
@ -1,20 +1,22 @@
|
|||||||
using MU3.Mod;
|
using MU3.Mod;
|
||||||
|
using MU3.User;
|
||||||
|
|
||||||
namespace MU3.CustomUI;
|
namespace MU3.CustomUI;
|
||||||
|
|
||||||
class patch_MU3UICounter: MU3UICounter {
|
class patch_MU3UICounter: MU3UICounter {
|
||||||
|
public bool isRatingDisplay { get; set; }
|
||||||
|
|
||||||
protected extern void orig_calcNumFiguresFloat(double value);
|
protected extern void orig_calcNumFiguresFloat(double value);
|
||||||
protected new void calcNumFiguresFloat(double value) {
|
protected new void calcNumFiguresFloat(double value) {
|
||||||
orig_calcNumFiguresFloat(value);
|
orig_calcNumFiguresFloat(value);
|
||||||
|
|
||||||
if(isDispSuffix) {
|
if(isRatingDisplay) {
|
||||||
var b = CustomRating.GetSuffix();
|
var b = CustomRating.GetSuffix();
|
||||||
if(b != 0) {
|
if(b != 0) {
|
||||||
pushFigureFront(b);
|
pushFigureFront(b);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public bool isDispSuffix { get; set; }
|
|
||||||
protected void pushFigureFront(byte c) {
|
protected void pushFigureFront(byte c) {
|
||||||
for(int i = numFigures_; i > 0; --i) {
|
for(int i = numFigures_; i > 0; --i) {
|
||||||
figures_[i] = figures_[i - 1];
|
figures_[i] = figures_[i - 1];
|
||||||
@ -22,4 +24,13 @@ class patch_MU3UICounter: MU3UICounter {
|
|||||||
figures_[0] = c;
|
figures_[0] = c;
|
||||||
numFigures_ += 1;
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,9 +7,8 @@ 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() {
|
||||||
rating.isDispSuffix = true;
|
rating.isRatingDisplay = true;
|
||||||
orig_setUserDetail();
|
orig_setUserDetail();
|
||||||
rating.setForceDirty();
|
rating.setForceDirty();
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -21,15 +21,17 @@ class patch_UIResultBattlePoint: UIResultBattlePoint {
|
|||||||
|
|
||||||
public extern void orig_initTechRating(PlayInfo playInfo);
|
public extern void orig_initTechRating(PlayInfo playInfo);
|
||||||
public new void initTechRating(PlayInfo playInfo) {
|
public new void initTechRating(PlayInfo playInfo) {
|
||||||
|
counterScore_.isRatingDisplay = true;
|
||||||
|
|
||||||
if(!CustomRating.IsEnabled()) {
|
if(!CustomRating.IsEnabled()) {
|
||||||
orig_initTechRating(playInfo);
|
orig_initTechRating(playInfo);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
int prevRating = ((patch_SessionResult)playInfo.sessionResult).prevCustomRating;
|
int prevRating = ((patch_SessionResult)playInfo.sessionResult).prevCustomRating;
|
||||||
int rating1 = CustomRating.Get();
|
int rating1 = CustomRating.Get();
|
||||||
|
|
||||||
hideScore_?.SetActive(false);
|
hideScore_?.SetActive(false);
|
||||||
counterScore_.isDispSuffix = true;
|
|
||||||
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;
|
||||||
@ -42,15 +44,15 @@ class patch_UIResultBattlePoint: UIResultBattlePoint {
|
|||||||
} else if(0 < rating2) {
|
} else if(0 < rating2) {
|
||||||
disable(counterScoreMinus_);
|
disable(counterScoreMinus_);
|
||||||
if(counterScorePlus_ != null) {
|
if(counterScorePlus_ != null) {
|
||||||
counterScorePlus_.Counter = rating2 * 0.01f + 1E-05f;
|
counterScorePlus_.Counter = UserUtil.toRatingFloat(rating2);
|
||||||
}
|
}
|
||||||
animator_.SetInteger(Sys.Const.AnimatorID_State, 0);
|
animator_.SetInteger(Sys.Const.AnimatorID_State, 0);
|
||||||
} else {
|
} else {
|
||||||
disable(counterScorePlus_);
|
disable(counterScorePlus_);
|
||||||
if(counterScoreMinus_ != null) {
|
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);
|
animator_.SetTrigger(Sys.Const.AnimatorID_In);
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>net35</TargetFramework>
|
<TargetFramework>net35</TargetFramework>
|
||||||
<Company>7EVENDAYS⇔HOLIDAYS</Company>
|
<Company>7EVENDAYS⇔HOLIDAYS</Company>
|
||||||
<Version>3.0.0</Version>
|
<Version>3.0.0.1</Version>
|
||||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||||
<LangVersion>latest</LangVersion>
|
<LangVersion>latest</LangVersion>
|
||||||
<Platforms>x64</Platforms>
|
<Platforms>x64</Platforms>
|
||||||
|
Reference in New Issue
Block a user