1
0
forked from akanyan/mu3-mods
Files
mu3-mods/Extras/MoreProfileOptions/MU3/patch_UIResultBattlePoint.cs

59 lines
2.0 KiB
C#

using MonoMod;
using MU3.CustomUI;
using MU3.Game;
using MU3.Mod;
using MU3.Sequence;
using MU3.User;
using UnityEngine;
namespace MU3;
class patch_UIResultBattlePoint: UIResultBattlePoint {
private Animator animator_;
private patch_MU3UICounter counterScore_;
private MU3UIImageChanger imageHeader_;
private MU3UICounter counterScorePlus_;
private MU3UICounter counterScoreMinus_;
private GameObject hideScore_;
[MonoModIgnore]
private extern void disable(MU3UICounter counter);
public extern void orig_initTechRating(PlayInfo playInfo);
public new void initTechRating(PlayInfo playInfo) {
if(!CustomRating.IsEnabled()) {
orig_initTechRating(playInfo);
return;
}
int prevRating = ((patch_SessionResult)playInfo.sessionResult).prevCustomRating;
int rating1 = CustomRating.Get();
hideScore_?.SetActive(false);
counterScore_.Counter = (double)UserUtil.toRatingFloat(rating1);
int ratingPatternNo = UserUtil.toRatingPatternNo(rating1);
counterScore_.SpriteIndex = ratingPatternNo;
imageHeader_.patternNumber = ratingPatternNo;
counterScore_.AddSuffix(CustomRating.GetSuffix());
int rating2 = rating1 - prevRating;
if(rating2 == 0) {
disable(counterScorePlus_);
disable(counterScoreMinus_);
animator_.SetInteger(Sys.Const.AnimatorID_State, 2);
} else if(0 < rating2) {
disable(counterScoreMinus_);
if(counterScorePlus_ != null) {
counterScorePlus_.Counter = UserUtil.toRatingFloat(rating2);
}
animator_.SetInteger(Sys.Const.AnimatorID_State, 0);
} else {
disable(counterScorePlus_);
if(counterScoreMinus_ != null) {
counterScoreMinus_.Counter = UserUtil.toRatingFloat(rating2);
}
animator_.SetInteger(Sys.Const.AnimatorID_State, 1);
}
animator_.SetTrigger(Sys.Const.AnimatorID_In);
}
}