Decompiled source of PRank Eligibility v1.1.1
BepInEx/plugins/P-Rank Eligible.dll
Decompiled 2 months agousing System; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using BepInEx; using HarmonyLib; using TMPro; using UnityEngine; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: AssemblyTitle("prank eligible")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("prank eligible")] [assembly: AssemblyCopyright("Copyright © 2026")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("ce686b6d-3b66-40bc-82e1-2c2a92a0d664")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")] [assembly: AssemblyVersion("1.0.0.0")] namespace P_RankEligible; [BepInPlugin("com.ultrakill.prankeligible.temporary", "P-Rank Eligible", "1.0.0")] public class Plugin : BaseUnityPlugin { public static Plugin plugin; public static void Log(string msg) { ((BaseUnityPlugin)plugin).Logger.LogMessage((object)msg); } public void Awake() { //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Expected O, but got Unknown plugin = this; ((BaseUnityPlugin)this).Logger.LogMessage((object)"P-Rank Eligible loaded!"); Harmony val = new Harmony("com.ultrakill.prankeligible.temporary"); val.PatchAll(); } public void OnGUI() { GUILayout.Label(string.Format("FPS: {1}", 1f / Time.deltaTime), Array.Empty<GUILayoutOption>()); } } public static class PluginInfo { public const string PluginGUID = "com.ultrakill.prankeligible.temporary"; public const string PluginName = "P-Rank Eligible"; public const string PluginVersion = "1.0.0"; } [HarmonyPatch(typeof(LevelStats), "CheckStats")] public class LevelStats_CheckStats_Patch { private struct RankEligibility { public bool obtained; public bool lost; public bool permaLose; public bool died; } private static bool wasTimeP = true; private static void Postfix(LevelStats __instance) { //IL_006b: Unknown result type (might be due to invalid IL or missing references) //IL_0072: Expected O, but got Unknown FieldInfo field = typeof(LevelStats).GetField("majorAssists", BindingFlags.Instance | BindingFlags.Public); object? value = field.GetValue(__instance); TMP_Text val = (TMP_Text)((value is TMP_Text) ? value : null); if ((Object)(object)val == (Object)null) { return; } Transform parent = val.transform.parent.parent; if ((Object)(object)parent != (Object)null) { foreach (Transform item in parent) { Transform val2 = item; TMP_Text component = ((Component)val2).GetComponent<TMP_Text>(); if ((Object)(object)component != (Object)null && (Object)(object)component != (Object)(object)val && component.text.ToUpper().Contains("MAJOR")) { component.text = "P-RANKABLE"; break; } } } RankEligibility rankEligibility = IsPRankEligible(); if (rankEligibility.obtained) { val.text = "<color=#FFAF00>YES</color>"; } else if (rankEligibility.permaLose) { val.text = "<color=#FF6A00>RIP</color>"; } else if (rankEligibility.lost) { val.text = "<color=#636363>LOST</color>"; } else if (rankEligibility.died) { val.text = "<color=#FF6A00>DEAD</color>"; } else { val.text = "NO"; } } private static RankEligibility IsPRankEligible() { StatsManager instance = MonoSingleton<StatsManager>.Instance; AssistController instance2 = MonoSingleton<AssistController>.Instance; if ((Object)(object)instance == (Object)null || (Object)(object)instance2 == (Object)null) { return default(RankEligibility); } RankEligibility result; if (instance2.cheatsEnabled || instance.majorUsed) { result = default(RankEligibility); result.obtained = false; result.lost = false; result.permaLose = false; return result; } if (instance.seconds < 1f) { wasTimeP = true; } bool flag = CalcRankScore(instance.timeRanks, instance.seconds, reverse: true) == 4; bool flag2 = CalcRankScore(instance.killRanks, instance.kills, reverse: false) == 4; bool flag3 = CalcRankScore(instance.styleRanks, instance.stylePoints, reverse: false) == 4; if (!flag && wasTimeP) { wasTimeP = false; } int num = 0; num += CalcRankScore(instance.timeRanks, instance.seconds, reverse: true); num += CalcRankScore(instance.killRanks, instance.kills, reverse: false); num += CalcRankScore(instance.styleRanks, instance.stylePoints, reverse: false); if (num < 0) { num = 0; } bool permaLose = !flag && flag2 && flag3; result = default(RankEligibility); result.obtained = num == 12; result.lost = !flag && !wasTimeP; result.permaLose = permaLose; result.died = instance.restarts > 0; return result; } private static int CalcRankScore(int[] ranksToCheck, float value, bool reverse) { int num = 0; while (true) { if (num >= ranksToCheck.Length) { return 4; } if ((!reverse || !(value <= (float)ranksToCheck[num])) && (reverse || !(value >= (float)ranksToCheck[num]))) { break; } num++; } return num; } }
plugins/P-Rank Eligible.dll
Decompiled 2 months agousing System; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using BepInEx; using HarmonyLib; using TMPro; using UnityEngine; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: AssemblyTitle("prank eligible")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("prank eligible")] [assembly: AssemblyCopyright("Copyright © 2026")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("ce686b6d-3b66-40bc-82e1-2c2a92a0d664")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")] [assembly: AssemblyVersion("1.0.0.0")] namespace P_RankEligible; [BepInPlugin("com.ultrakill.prankeligible.temporary", "P-Rank Eligible", "1.0.0")] public class Plugin : BaseUnityPlugin { public static Plugin plugin; public static void Log(string msg) { ((BaseUnityPlugin)plugin).Logger.LogMessage((object)msg); } public void Awake() { //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Expected O, but got Unknown plugin = this; ((BaseUnityPlugin)this).Logger.LogMessage((object)"P-Rank Eligible loaded!"); Harmony val = new Harmony("com.ultrakill.prankeligible.temporary"); val.PatchAll(); } public void OnGUI() { GUILayout.Label(string.Format("FPS: {1}", 1f / Time.deltaTime), Array.Empty<GUILayoutOption>()); } } public static class PluginInfo { public const string PluginGUID = "com.ultrakill.prankeligible.temporary"; public const string PluginName = "P-Rank Eligible"; public const string PluginVersion = "1.0.0"; } [HarmonyPatch(typeof(LevelStats), "CheckStats")] public class LevelStats_CheckStats_Patch { private struct RankEligibility { public bool obtained; public bool lost; public bool permaLose; public bool died; } private static bool wasTimeP = true; private static void Postfix(LevelStats __instance) { //IL_006b: Unknown result type (might be due to invalid IL or missing references) //IL_0072: Expected O, but got Unknown FieldInfo field = typeof(LevelStats).GetField("majorAssists", BindingFlags.Instance | BindingFlags.Public); object? value = field.GetValue(__instance); TMP_Text val = (TMP_Text)((value is TMP_Text) ? value : null); if ((Object)(object)val == (Object)null) { return; } Transform parent = val.transform.parent.parent; if ((Object)(object)parent != (Object)null) { foreach (Transform item in parent) { Transform val2 = item; TMP_Text component = ((Component)val2).GetComponent<TMP_Text>(); if ((Object)(object)component != (Object)null && (Object)(object)component != (Object)(object)val && component.text.ToUpper().Contains("MAJOR")) { component.text = "P-RANKABLE"; break; } } } RankEligibility rankEligibility = IsPRankEligible(); if (rankEligibility.obtained) { val.text = "<color=#FFAF00>YES</color>"; } else if (rankEligibility.permaLose) { val.text = "<color=#FF6A00>RIP</color>"; } else if (rankEligibility.lost) { val.text = "<color=#636363>LOST</color>"; } else if (rankEligibility.died) { val.text = "<color=#FF6A00>DEAD</color>"; } else { val.text = "NO"; } } private static RankEligibility IsPRankEligible() { StatsManager instance = MonoSingleton<StatsManager>.Instance; AssistController instance2 = MonoSingleton<AssistController>.Instance; if ((Object)(object)instance == (Object)null || (Object)(object)instance2 == (Object)null) { return default(RankEligibility); } RankEligibility result; if (instance2.cheatsEnabled || instance.majorUsed) { result = default(RankEligibility); result.obtained = false; result.lost = false; result.permaLose = false; return result; } if (instance.seconds < 1f) { wasTimeP = true; } bool flag = CalcRankScore(instance.timeRanks, instance.seconds, reverse: true) == 4; bool flag2 = CalcRankScore(instance.killRanks, instance.kills, reverse: false) == 4; bool flag3 = CalcRankScore(instance.styleRanks, instance.stylePoints, reverse: false) == 4; if (!flag && wasTimeP) { wasTimeP = false; } int num = 0; num += CalcRankScore(instance.timeRanks, instance.seconds, reverse: true); num += CalcRankScore(instance.killRanks, instance.kills, reverse: false); num += CalcRankScore(instance.styleRanks, instance.stylePoints, reverse: false); if (num < 0) { num = 0; } bool permaLose = !flag && flag2 && flag3; result = default(RankEligibility); result.obtained = num == 12; result.lost = !flag && !wasTimeP; result.permaLose = permaLose; result.died = instance.restarts > 0; return result; } private static int CalcRankScore(int[] ranksToCheck, float value, bool reverse) { int num = 0; while (true) { if (num >= ranksToCheck.Length) { return 4; } if ((!reverse || !(value <= (float)ranksToCheck[num])) && (reverse || !(value >= (float)ranksToCheck[num]))) { break; } num++; } return num; } }