Example #1
0
        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);
        }
Example #2
0
 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();
 }