using System; using System.Diagnostics; using System.IO; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using AntiAssists.Patches; using BepInEx; using HarmonyLib; using Microsoft.CodeAnalysis; using PluginConfig.API; using PluginConfig.API.Fields; using TMPro; using UnityEngine; using plog; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("AntiAssists")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyDescription("Allows buffs to be configured via PluginConfigurator without cheats")] [assembly: AssemblyFileVersion("0.1.1.0")] [assembly: AssemblyInformationalVersion("0.1.1+f54916fd18f1a978f539f9a753ea3b9a1522e670")] [assembly: AssemblyProduct("AntiAssists")] [assembly: AssemblyTitle("AntiAssists")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("0.1.1.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)] internal sealed class RefSafetyRulesAttribute : Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } namespace AntiAssists { [BepInPlugin("com.whyis2plus2.AntiAssists", "BuffsConfig", "0.1.0")] [BepInDependency(/*Could not decode attribute arguments.*/)] public class Plugin : BaseUnityPlugin { public const string PLUGIN_GUID = "com.whyis2plus2.AntiAssists"; public const string PLUGIN_NAME = "BuffsConfig"; public const string PLUGIN_VERSION = "0.1.0"; public static Plugin instance; public Logger logger; private PluginConfigurator config; public Harmony harmony; public string workingDir; public bool forceSand = false; public bool radianceEnabled = false; public float radianceTier = 1f; private void Awake() { //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Expected O, but got Unknown //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0049: Expected O, but got Unknown //IL_00c6: Unknown result type (might be due to invalid IL or missing references) //IL_00cc: Expected O, but got Unknown //IL_00e7: Unknown result type (might be due to invalid IL or missing references) //IL_00ed: Expected O, but got Unknown //IL_00fe: Unknown result type (might be due to invalid IL or missing references) //IL_0108: Expected O, but got Unknown //IL_012e: Unknown result type (might be due to invalid IL or missing references) //IL_0134: Expected O, but got Unknown //IL_0172: Unknown result type (might be due to invalid IL or missing references) //IL_017c: Expected O, but got Unknown //IL_0185: Unknown result type (might be due to invalid IL or missing references) //IL_018f: Expected O, but got Unknown //IL_0198: Unknown result type (might be due to invalid IL or missing references) //IL_01a2: Expected O, but got Unknown instance = this; logger = new Logger("BuffsConfig"); workingDir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); harmony = new Harmony("com.whyis2plus2.AntiAssists"); harmony.PatchAll(typeof(FinalRankPatch)); harmony.PatchAll(typeof(BuffsFix)); config = PluginConfigurator.Create("BuffsConfig", "com.whyis2plus2.AntiAssists"); config.SetIconWithURL("file://" + workingDir + "/icon.png"); BoolField val = new BoolField(config.rootPanel, "Sanded Enemies", "sandToggle", forceSand); BoolField val2 = new BoolField(config.rootPanel, "Enable Radiance", "radianceToggle", radianceEnabled); ConfigDivision radianceDivision = new ConfigDivision(config.rootPanel, "radianceDivision"); FloatSliderField val3 = new FloatSliderField((ConfigPanel)(object)radianceDivision, "Radiance Tier", "radianceTierSlider", new Tuple(1f, 10f), radianceTier, 0); forceSand = val.value; radianceEnabled = val2.value; radianceTier = val3.value; ((ConfigField)radianceDivision).interactable = radianceEnabled; val.onValueChange += (BoolValueChangeEventDelegate)delegate(BoolValueChangeEvent e) { forceSand = e.value; }; val2.onValueChange += (BoolValueChangeEventDelegate)delegate(BoolValueChangeEvent e) { radianceEnabled = e.value; ((ConfigField)radianceDivision).interactable = e.value; }; val3.onValueChange += (OnValueChangeEventDelegate)delegate(FloatSliderValueChangeEvent e) { radianceTier = Mathf.Round(e.newValue); }; } } } namespace AntiAssists.Patches { public static class BuffsFix { private static bool forceSand => Plugin.instance.forceSand; private static bool radianceEnabled => Plugin.instance.radianceEnabled; private static float radianceTier => Plugin.instance.radianceTier; [HarmonyPostfix] [HarmonyPatch(typeof(EnemyIdentifier), "Start")] public static void EnemyIdentifier_Start_Postfix(ref EnemyIdentifier __instance) { //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0037: Invalid comparison between Unknown and I4 if (!__instance.puppet) { if (forceSand) { __instance.Sandify(false); } if (radianceEnabled && (int)__instance.enemyType != 39) { __instance.radianceTier = radianceTier; __instance.BuffAll(); } } } } public static class FinalRankPatch { private static bool forceSand => Plugin.instance.forceSand; private static bool radianceEnabled => Plugin.instance.radianceEnabled; private static float radianceTier => Plugin.instance.radianceTier; [HarmonyPostfix] [HarmonyPatch(typeof(FinalRank), "SetInfo")] public static void SetInfo_Postfix(ref FinalRank __instance, int restarts, bool damage, bool majorUsed, bool cheatsUsed) { int num = 1; if (!damage) { num++; } if (majorUsed) { num++; } if (cheatsUsed) { num++; } if (radianceEnabled) { num++; } if (forceSand) { num++; } __instance.extraInfo.text = ""; if (cheatsUsed) { TMP_Text extraInfo = __instance.extraInfo; extraInfo.text += "- CHEATS USED\n"; } if (majorUsed) { TMP_Text extraInfo2 = __instance.extraInfo; extraInfo2.text += "- MAJOR ASSISTS USED\n"; } if (restarts == 0) { TMP_Text extraInfo3 = __instance.extraInfo; extraInfo3.text += "+ NO RESTARTS\n"; if (num < 3) { TMP_Text extraInfo4 = __instance.extraInfo; extraInfo4.text += " (+500P)\n"; } } else { TMP_Text extraInfo5 = __instance.extraInfo; extraInfo5.text += $"- {restarts} RESTARTS\n"; } if (!damage) { TMP_Text extraInfo6 = __instance.extraInfo; extraInfo6.text += "+ NO DAMAGE\n"; if (num < 3) { TMP_Text extraInfo7 = __instance.extraInfo; extraInfo7.text += " (+5,000P)\n"; } } if (radianceEnabled) { TMP_Text extraInfo8 = __instance.extraInfo; extraInfo8.text += $"+ RADIANCE (TIER {(int)radianceTier})\n"; if (num < 3) { TMP_Text extraInfo9 = __instance.extraInfo; extraInfo9.text += $" (+{1500 * (int)radianceTier:#,##}P)\n"; } } if (forceSand) { TMP_Text extraInfo10 = __instance.extraInfo; extraInfo10.text += "+ SANDED\n"; if (num < 3) { TMP_Text extraInfo11 = __instance.extraInfo; extraInfo11.text += " (+1,000P)\n"; } } } [HarmonyPrefix] [HarmonyPatch(typeof(FinalRank), "PointsShow")] public static void PointsShow_Prefix(ref FinalRank __instance) { if (forceSand) { FinalRank obj = __instance; obj.totalPoints += 1000; } if (radianceEnabled) { FinalRank obj2 = __instance; obj2.totalPoints += Mathf.RoundToInt(1500f * radianceTier); } } } }