static void Postfix(ResultsViewController __instance) { UnityEngine.Transform fs = UI.XP.XPScreenStarter.xpFloatingScreen.transform; fs.Move(fs.position.x, 2.55f, fs.position.z, 0.1f); Type type = __instance.GetType(); BindingFlags bindingFlags = BindingFlags.Instance | BindingFlags.NonPublic; FieldInfo rank = type.GetField("_rankText", bindingFlags); FieldInfo pb = type.GetField("_newHighScore", bindingFlags); FieldInfo comp = type.GetField("_levelCompletionResults", bindingFlags); TextMeshProUGUI tmp = (TextMeshProUGUI)rank.GetValue(__instance); LevelCompletionResults compres = (LevelCompletionResults)comp.GetValue(__instance); bool personalBest = (bool)pb.GetValue(__instance); int _xpIncrease = (int)Math.Round((decimal)compres.modifiedScore / 10); var bonuses = new List <AfterLevelBonus>(); if (compres.levelEndStateType == LevelCompletionResults.LevelEndStateType.Failed) { bonuses.Add(new AfterLevelBonus(bonus.YT)); } if (__instance.practice) { _xpIncrease = (int)Math.Round((decimal)compres.modifiedScore / 40); } if (personalBest && !__instance.practice) { bonuses.Add(new AfterLevelBonus(bonus.PB)); } if (compres.rank.Equals(RankModel.Rank.S) && !__instance.practice) { bonuses.Add(new AfterLevelBonus(bonus.S)); } if (compres.fullCombo && !__instance.practice) { bonuses.Add(new AfterLevelBonus(bonus.FC)); } if (compres.rank.Equals(RankModel.Rank.SS) && !__instance.practice) { bonuses.Add(new AfterLevelBonus(bonus.SS)); } if (compres.rank.Equals(RankModel.Rank.SSS) && !__instance.practice) { bonuses.Add(new AfterLevelBonus(bonus.SSS)); } UI.XP.XPScreen.FuckWithScoreAndLevel(_xpIncrease, bonuses.BonusScore()); UI.XP.XPScreen.Instance.AddBonuses(bonuses); }
static void Prefix(ResultsViewController __instance) { UnityEngine.Transform fs = UI.XP.XPScreenStarter.xpFloatingScreen.transform; fs.Move(fs.position.x, 3.25f, fs.position.z, 0.75f, EasingFunction.Ease.EaseInOutQuad); UI.XP.XPScreen.Instance.ClearBonuses(); }