static bool Prefix(ref ImmediateRankUIPanel __instance, ref RelativeScoreAndImmediateRankCounter ____relativeScoreAndImmediateRankCounter, ref RankModel.Rank ____prevImmediateRank, ref float ____prevRelativeScore, ref TextMeshProUGUI ____rankText, ref TextMeshProUGUI ____relativeScoreText) { if (!CountersController.settings.Enabled) { return(true); //Dont use Score Counters decimal precision if the plugin is disabled } if (model == null) { model = CountersController.settings.scoreConfig; } RankModel.Rank rank = ____relativeScoreAndImmediateRankCounter.immediateRank; if (rank != ____prevImmediateRank) { ____rankText.text = model.Mode != ICounterMode.BaseGame ? $"\n{RankModel.GetRankName(rank)}" : RankModel.GetRankName(rank); ____prevImmediateRank = rank; } float score = ____relativeScoreAndImmediateRankCounter.relativeScore; if (Mathf.Abs(____prevRelativeScore - score) >= 0.001f) { float roundedScore = (float)Math.Round((decimal)score * 100, model.DecimalPrecision); ____relativeScoreText.text = $"{roundedScore.ToString($"F{model.DecimalPrecision}")}%"; } return(false); }
[Inject] internal void ModifierInit(ComboUIController cuic, ImmediateRankUIPanel iruip, Config.Miscellaneous c) { Logger.Logger.Debug("LegacyPanelModifier:ModifierInit()"); ComboController = cuic; RankPanel = iruip; Config = c; transform.SetParent(iruip.transform); ModPanel(); }
static bool Prefix(ref ImmediateRankUIPanel __instance, ref RelativeScoreAndImmediateRankCounter ____relativeScoreAndImmediateRankCounter, ref RankModel.Rank ____prevImmediateRank, ref float ____prevRelativeScore, ref TextMeshProUGUI ____rankText, ref TextMeshProUGUI ____relativeScoreText) { if (!CountersController.settings.Enabled) { return(true); //Dont use Score Counters decimal precision if the plugin is disabled } if (model == null) { model = CountersController.settings.scoreConfig; } RankModel.Rank rank = ____relativeScoreAndImmediateRankCounter.immediateRank; if (rank != ____prevImmediateRank) { ____rankText.text = model.Mode != ICounterMode.BaseGame ? $"\n{RankModel.GetRankName(rank)}" : RankModel.GetRankName(rank); ____prevImmediateRank = rank; //I am moving this code down here so that it only runs if the rank changes instead of every time the game refreshes the UI. //Because of how cosmic brain Beat Games is, this code should run on game startup, because SSS != SS, so should work fine. if (model.CustomRankColors) { string color = "#FFFFFF"; //Blank white shall be used for the default color in case like some SSS shit happens switch (RankModel.GetRankName(rank)) //Using PogU switch case instead of Pepega If chain { case "SS": color = model.SSColor; break; //Even compressing this shit down to one liners, look at me! case "S": color = model.SColor; break; case "A": color = model.AColor; break; case "B": color = model.BColor; break; case "C": color = model.CColor; break; case "D": color = model.DColor; break; case "E": color = model.EColor; break; } ColorUtility.TryParseHtmlString(color, out Color RankColor); //converts config hex color to unity RGBA value ____rankText.color = RankColor; //sets color of ranktext } } float score = ____relativeScoreAndImmediateRankCounter.relativeScore; if (Mathf.Abs(____prevRelativeScore - score) >= 0.001f) { float roundedScore = (float)Math.Round((decimal)score * 100, model.DecimalPrecision); ____relativeScoreText.text = $"{roundedScore.ToString($"F{model.DecimalPrecision}")}%"; } return(false); }
static bool Prefix(ref ImmediateRankUIPanel __instance, ref TextMeshProUGUI ____rankText, ref TextMeshProUGUI ____relativeScoreText) { if (!CountersController.settings.scoreConfig.Enabled || !CountersController.settings.Enabled) { return(true); } if (__instance.gameObject.GetComponent <ScoreCounter>() == null) { return(true); } ____rankText = (TextMeshProUGUI)__instance.gameObject.GetComponent <ScoreCounter>().RankText; ____relativeScoreText = (TextMeshProUGUI)__instance.gameObject.GetComponent <ScoreCounter>().ScoreMesh; return(false); }
protected override void OnDestroy() { ComboController = null !; RankPanel = null !; Config = null !; }
static bool Prefix(ref ImmediateRankUIPanel __instance, ref RelativeScoreAndImmediateRankCounter ____relativeScoreAndImmediateRankCounter, ref RankModel.Rank ____prevImmediateRank, ref float ____prevRelativeScore, ref TextMeshProUGUI ____rankText, ref TextMeshProUGUI ____relativeScoreText) { if (!CountersController.settings.Enabled) { return(true); //Dont use Score Counters decimal precision if the plugin is disabled } if (model == null) { model = CountersController.settings.scoreConfig; } RankModel.Rank rank = ____relativeScoreAndImmediateRankCounter.immediateRank; if (rank != ____prevImmediateRank) { ____rankText.text = model.Mode != ICounterMode.BaseGame ? $"\n{RankModel.GetRankName(rank)}" : RankModel.GetRankName(rank); ____prevImmediateRank = rank; } if (model.CustomRankColors) //checks if custom rank colors is enabled { if (RankModel.GetRankName(rank) == "SS") { ColorUtility.TryParseHtmlString(model.SSColor, out Color RankColor); //converts config hex color to unity RGBA value ____rankText.color = RankColor; //sets color of ranktext } if (RankModel.GetRankName(rank) == "S") { ColorUtility.TryParseHtmlString(model.SColor, out Color RankColor); ____rankText.color = RankColor; } if (RankModel.GetRankName(rank) == "A") { ColorUtility.TryParseHtmlString(model.AColor, out Color RankColor); ____rankText.color = RankColor; } if (RankModel.GetRankName(rank) == "B") { ColorUtility.TryParseHtmlString(model.BColor, out Color RankColor); ____rankText.color = RankColor; } if (RankModel.GetRankName(rank) == "C") { ColorUtility.TryParseHtmlString(model.CColor, out Color RankColor); ____rankText.color = RankColor; } if (RankModel.GetRankName(rank) == "D") { ColorUtility.TryParseHtmlString(model.DColor, out Color RankColor); ____rankText.color = RankColor; } if (RankModel.GetRankName(rank) == "E") { ColorUtility.TryParseHtmlString(model.EColor, out Color RankColor); ____rankText.color = RankColor; } } float score = ____relativeScoreAndImmediateRankCounter.relativeScore; if (Mathf.Abs(____prevRelativeScore - score) >= 0.001f) { float roundedScore = (float)Math.Round((decimal)score * 100, model.DecimalPrecision); ____relativeScoreText.text = $"{roundedScore.ToString($"F{model.DecimalPrecision}")}%"; } return(false); }