Decompiled source of BuffsConfig v0.1.1

AntiAssists.dll

Decompiled a month ago
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<float, float>(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 += "- <color=#44FF45>CHEATS USED</color>\n";
			}
			if (majorUsed)
			{
				TMP_Text extraInfo2 = __instance.extraInfo;
				extraInfo2.text += "- <color=#4C99E6>MAJOR ASSISTS USED</color>\n";
			}
			if (restarts == 0)
			{
				TMP_Text extraInfo3 = __instance.extraInfo;
				extraInfo3.text += "+ NO RESTARTS\n";
				if (num < 3)
				{
					TMP_Text extraInfo4 = __instance.extraInfo;
					extraInfo4.text += "  (+500<color=orange>P</color>)\n";
				}
			}
			else
			{
				TMP_Text extraInfo5 = __instance.extraInfo;
				extraInfo5.text += $"- <color=red>{restarts}</color> RESTARTS\n";
			}
			if (!damage)
			{
				TMP_Text extraInfo6 = __instance.extraInfo;
				extraInfo6.text += "+ <color=orange>NO DAMAGE</color>\n";
				if (num < 3)
				{
					TMP_Text extraInfo7 = __instance.extraInfo;
					extraInfo7.text += "  (+5,000<color=orange>P</color>)\n";
				}
			}
			if (radianceEnabled)
			{
				TMP_Text extraInfo8 = __instance.extraInfo;
				extraInfo8.text += $"+ <color=#7de8f2>RADIANCE (TIER {(int)radianceTier})</color>\n";
				if (num < 3)
				{
					TMP_Text extraInfo9 = __instance.extraInfo;
					extraInfo9.text += $"  (+{1500 * (int)radianceTier:#,##}<color=orange>P</color>)\n";
				}
			}
			if (forceSand)
			{
				TMP_Text extraInfo10 = __instance.extraInfo;
				extraInfo10.text += "+ <color=#f9dd75>SANDED</color>\n";
				if (num < 3)
				{
					TMP_Text extraInfo11 = __instance.extraInfo;
					extraInfo11.text += "  (+1,000<color=orange>P</color>)\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);
			}
		}
	}
}