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); } }