Decompiled source of FrankysHealthModifier v1.1.2

FrankysHealthModifier.dll

Decompiled 3 hours ago
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using BepInEx;
using BepInEx.Configuration;
using BepInExPlugin;
using HarmonyLib;
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("FrankysHealthModifier (FrankysHealthModifier)")]
[assembly: AssemblyProduct("FrankysHealthModifier")]
[assembly: AssemblyVersion("1.0.0.0")]
[HarmonyPatch(typeof(Health), "Awake")]
public static class HealthOverride
{
	private static void Prefix(Health __instance)
	{
		//IL_0055: Unknown result type (might be due to invalid IL or missing references)
		//IL_005a: Unknown result type (might be due to invalid IL or missing references)
		//IL_00e2: Unknown result type (might be due to invalid IL or missing references)
		//IL_00e4: Invalid comparison between Unknown and I4
		//IL_0122: Unknown result type (might be due to invalid IL or missing references)
		//IL_0124: Invalid comparison between Unknown and I4
		//IL_0162: Unknown result type (might be due to invalid IL or missing references)
		//IL_0164: Invalid comparison between Unknown and I4
		//IL_01a2: Unknown result type (might be due to invalid IL or missing references)
		//IL_01a4: Invalid comparison between Unknown and I4
		//IL_01e2: Unknown result type (might be due to invalid IL or missing references)
		//IL_01e4: Invalid comparison between Unknown and I4
		//IL_0222: Unknown result type (might be due to invalid IL or missing references)
		//IL_0224: Invalid comparison between Unknown and I4
		//IL_0262: Unknown result type (might be due to invalid IL or missing references)
		//IL_0265: Invalid comparison between Unknown and I4
		//IL_02a3: Unknown result type (might be due to invalid IL or missing references)
		//IL_02a6: Invalid comparison between Unknown and I4
		//IL_02e4: Unknown result type (might be due to invalid IL or missing references)
		//IL_02e7: Invalid comparison between Unknown and I4
		//IL_0325: Unknown result type (might be due to invalid IL or missing references)
		//IL_0327: Invalid comparison between Unknown and I4
		Unit val = ((Component)__instance).GetComponent<Unit>() ?? ((Component)__instance).GetComponentInParent<Unit>();
		if ((Object)(object)val == (Object)null)
		{
			return;
		}
		FieldInfo fieldInfo = AccessTools.Field(typeof(Health), "_maxHealth");
		FieldInfo fieldInfo2 = AccessTools.Field(typeof(Unit), "_unitType");
		UnitType val2 = (UnitType)fieldInfo2.GetValue(val);
		float value = Plugin.HornetValue.Value;
		float value2 = Plugin.SuperHornetValue.Value;
		float value3 = Plugin.ProwlerValue.Value;
		float value4 = Plugin.HawkeyeValue.Value;
		float value5 = Plugin.OspreyValue.Value;
		float value6 = Plugin.SeahawkValue.Value;
		float value7 = Plugin.ChinookValue.Value;
		float value8 = Plugin.HarrierValue.Value;
		float value9 = Plugin.VikingValue.Value;
		if ((object)fieldInfo == null)
		{
			Debug.LogError((object)"maxHealthField not valid yet");
			return;
		}
		if ((int)val2 == 1)
		{
			fieldInfo.SetValue(__instance, value);
			Debug.Log((object)$"{((Object)val).name} Health Modified to {Plugin.HornetValue.Value}");
		}
		if ((int)val2 == 2)
		{
			fieldInfo.SetValue(__instance, value2);
			Debug.Log((object)$"{((Object)val).name} Health Modified to {Plugin.SuperHornetValue.Value}");
		}
		if ((int)val2 == 3)
		{
			fieldInfo.SetValue(__instance, value3);
			Debug.Log((object)$"{((Object)val).name} Health Modified to {Plugin.ProwlerValue.Value}");
		}
		if ((int)val2 == 4)
		{
			fieldInfo.SetValue(__instance, value4);
			Debug.Log((object)$"{((Object)val).name} Health Modified to {Plugin.HawkeyeValue.Value}");
		}
		if ((int)val2 == 5)
		{
			fieldInfo.SetValue(__instance, value5);
			Debug.Log((object)$"{((Object)val).name} Health Modified to {Plugin.OspreyValue.Value}");
		}
		if ((int)val2 == 7)
		{
			fieldInfo.SetValue(__instance, value6);
			Debug.Log((object)$"{((Object)val).name} Health Modified to {Plugin.SeahawkValue.Value}");
		}
		if ((int)val2 == 9)
		{
			fieldInfo.SetValue(__instance, value7);
			Debug.Log((object)$"{((Object)val).name} Health Modified to {Plugin.ChinookValue.Value}");
		}
		if ((int)val2 == 10)
		{
			fieldInfo.SetValue(__instance, value8);
			Debug.Log((object)$"{((Object)val).name} Health Modified to {Plugin.HarrierValue.Value}");
		}
		if ((int)val2 == 11)
		{
			fieldInfo.SetValue(__instance, value9);
			Debug.Log((object)$"{((Object)val).name} Health Modified to {Plugin.VikingValue.Value}");
		}
		if ((int)val2 == 6)
		{
			fieldInfo.SetValue(__instance, value4);
			Debug.Log((object)$"{((Object)val).name} Health Modified to {Plugin.HawkeyeValue.Value}");
		}
	}
}
[HarmonyPatch(typeof(QuickGameModeTemplate), "SetMaxHealth")]
public static class CarrierHealthOverride
{
	private static void Prefix(QuickGameModeTemplate __instance)
	{
		FieldInfo fieldInfo = AccessTools.Field(typeof(QuickGameModeTemplate), "_overrideCarrierHealth");
		bool flag = false;
		if ((object)fieldInfo != null)
		{
			flag = true;
			fieldInfo.SetValue(__instance, true);
			Debug.Log((object)"Override Carrier Health set to True");
		}
		if (!flag)
		{
			Debug.LogError((object)"Override Carrier Health toggle not found");
		}
		FieldInfo fieldInfo2 = AccessTools.Field(typeof(QuickGameModeTemplate), "_overriddenMaxCarrierHealth");
		if ((object)fieldInfo2 == null)
		{
			Debug.LogError((object)"Carrier Health not valid yet");
			return;
		}
		int num = Mathf.RoundToInt((float)Plugin.CarrierValue.Value);
		fieldInfo2.SetValue(__instance, num);
		Debug.Log((object)$"Carrier Health modified to {num}");
	}
}
namespace BepInExPlugin;

[BepInPlugin("FrankysHealthModifier", "FrankysHealthModifier", "1.0.0")]
public class Plugin : BaseUnityPlugin
{
	public static ConfigEntry<int> CarrierValue;

	public static ConfigEntry<float> HornetValue;

	public static ConfigEntry<float> SuperHornetValue;

	public static ConfigEntry<float> ProwlerValue;

	public static ConfigEntry<float> HawkeyeValue;

	public static ConfigEntry<float> OspreyValue;

	public static ConfigEntry<float> SeahawkValue;

	public static ConfigEntry<float> ChinookValue;

	public static ConfigEntry<float> HarrierValue;

	public static ConfigEntry<float> VikingValue;

	private void Awake()
	{
		//IL_016b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0171: Expected O, but got Unknown
		CarrierValue = ((BaseUnityPlugin)this).Config.Bind<int>("Carrier", "Carrier Health", 10, "Carrier");
		HornetValue = ((BaseUnityPlugin)this).Config.Bind<float>("Aircraft", "Hornet Health", 100f, "Hornet");
		SuperHornetValue = ((BaseUnityPlugin)this).Config.Bind<float>("Aircraft", "Super Hornet Health", 100f, "Super Hornet");
		ProwlerValue = ((BaseUnityPlugin)this).Config.Bind<float>("Aircraft", "Prowler Health", 100f, "Prowler");
		HawkeyeValue = ((BaseUnityPlugin)this).Config.Bind<float>("Aircraft", "Hawkeye Health", 100f, "Hawkeye & Greyhound");
		OspreyValue = ((BaseUnityPlugin)this).Config.Bind<float>("Aircraft", "Osprey Health", 100f, "Osprey");
		SeahawkValue = ((BaseUnityPlugin)this).Config.Bind<float>("Aircraft", "Seahawk Health", 100f, "Seahawk");
		ChinookValue = ((BaseUnityPlugin)this).Config.Bind<float>("Aircraft", "Chinook Health", 100f, "Chinook");
		HarrierValue = ((BaseUnityPlugin)this).Config.Bind<float>("Aircraft", "Harrier Health", 100f, "Harrier");
		VikingValue = ((BaseUnityPlugin)this).Config.Bind<float>("Aircraft", "Viking Health", 100f, "Viking");
		Harmony val = new Harmony("FrankysHealthModifier");
		val.PatchAll();
		Debug.Log((object)"FrankysHealthModifier loaded");
	}
}
internal static class PluginInfo
{
	public const string PLUGIN_NAME = "FrankysHealthModifier";

	public const string PLUGIN_ID = "FrankysHealthModifier";

	public const string PLUGIN_VERSION = "1.0.0";
}