using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using BepInEx; using BepInEx.Configuration; using BepInEx.Logging; 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("ToggleEnemies")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("ToggleEnemies")] [assembly: AssemblyCopyright("Copyright © 2024")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("fc359b6f-0904-41c8-ac4f-7db934547a95")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")] [assembly: AssemblyVersion("1.0.0.0")] namespace ToggleEnemies { [BepInPlugin("SpiralMods.ToggleEnemies", "ToggleEnemies", "1.0.9")] public class ToggleEnemiesBase : BaseUnityPlugin { private const string ModGuid = "SpiralMods.ToggleEnemies"; private const string ModName = "ToggleEnemies"; private const string ModVersion = "1.0.9"; private readonly Harmony _harmony = new Harmony("SpiralMods.ToggleEnemies"); private static ToggleEnemiesBase _instance; public static ManualLogSource logger = Logger.CreateLogSource("SpiralMods.ToggleEnemies"); public static ConfigEntry RemoveSnareFlea; public static ConfigEntry RemoveBunkerSpider; public static ConfigEntry RemoveLootBug; public static ConfigEntry RemoveBracken; public static ConfigEntry RemoveThumper; public static ConfigEntry RemoveSlime; public static ConfigEntry RemoveDressGirl; public static ConfigEntry RemovePuffer; public static ConfigEntry RemoveNutcracker; public static ConfigEntry RemoveCoilHead; public static ConfigEntry RemoveJester; public static ConfigEntry RemoveMasked; public static ConfigEntry RemoveMouthDog; public static ConfigEntry RemoveGiant; public static ConfigEntry RemoveWorm; public static ConfigEntry RemoveBaboonHawk; public static ConfigEntry RemoveOldBird; public static ConfigEntry RemoveButler; public static ConfigEntry RemoveFlowerSnake; public static ConfigEntry RemoveBarber; public static ConfigEntry RemoveFox; public static ConfigEntry RemoveLasso; public static ConfigEntry RemoveCadaver; public static ConfigEntry RemovePuma; public static ConfigEntry RemoveGiantKiwi; public static ConfigEntry RemoveStingray; private void Awake() { if ((Object)(object)_instance == (Object)null) { _instance = this; } logger = Logger.CreateLogSource("SpiralMods.ToggleEnemies"); logger.LogInfo((object)"ToggleEnemies has loaded (ModVersion: 1.0.9, ModGUID: SpiralMods.ToggleEnemies)!"); SetBindings(); _harmony.PatchAll(Assembly.GetExecutingAssembly()); } private void SetBindings() { RemoveSnareFlea = ((BaseUnityPlugin)this).Config.Bind("Settings (Restart Required)", "Disable Snare Fleas", false, "If true, snare fleas won't ever spawn!"); RemoveBunkerSpider = ((BaseUnityPlugin)this).Config.Bind("Settings (Restart Required)", "Disable Bunker Spiders", false, "If true, bunker spiders won't ever spawn!"); RemoveLootBug = ((BaseUnityPlugin)this).Config.Bind("Settings (Restart Required)", "Disable Loot Bugs", false, "If true, loot bugs won't ever spawn!"); RemoveBracken = ((BaseUnityPlugin)this).Config.Bind("Settings (Restart Required)", "Disable Brackens", false, "If true, brackens won't ever spawn!"); RemoveThumper = ((BaseUnityPlugin)this).Config.Bind("Settings (Restart Required)", "Disable Thumpers", false, "If true, thumpers won't ever spawn!"); RemoveSlime = ((BaseUnityPlugin)this).Config.Bind("Settings (Restart Required)", "Disable Slimes", false, "If true, slimes won't ever spawn!"); RemoveDressGirl = ((BaseUnityPlugin)this).Config.Bind("Settings (Restart Required)", "Disable Ghost Girls", false, "If true, the ghost girl won't ever spawn!"); RemovePuffer = ((BaseUnityPlugin)this).Config.Bind("Settings (Restart Required)", "Disable Spore Lizards", false, "If true, spore lizards won't ever spawn!"); RemoveNutcracker = ((BaseUnityPlugin)this).Config.Bind("Settings (Restart Required)", "Disable Nutcrackers", false, "If true, nutcrackers won't ever spawn!"); RemoveCoilHead = ((BaseUnityPlugin)this).Config.Bind("Settings (Restart Required)", "Disable Coil Heads", false, "If true, coil heads won't ever spawn!"); RemoveJester = ((BaseUnityPlugin)this).Config.Bind("Settings (Restart Required)", "Disable Jesters", false, "If true, jesters won't ever spawn!"); RemoveMasked = ((BaseUnityPlugin)this).Config.Bind("Settings (Restart Required)", "Disable Masked Players", false, "If true, masked players won't ever spawn!"); RemoveMouthDog = ((BaseUnityPlugin)this).Config.Bind("Settings (Restart Required)", "Disable Eyeless Dogs", false, "If true, eyeless dogs won't ever spawn!"); RemoveGiant = ((BaseUnityPlugin)this).Config.Bind("Settings (Restart Required)", "Disable Giants", false, "If true, giants won't ever spawn!"); RemoveWorm = ((BaseUnityPlugin)this).Config.Bind("Settings (Restart Required)", "Disable Worms", false, "If true, worms won't ever spawn!"); RemoveBaboonHawk = ((BaseUnityPlugin)this).Config.Bind("Settings (Restart Required)", "Disable Baboon Hawks", false, "If true, baboon hawks won't ever spawn!"); RemoveButler = ((BaseUnityPlugin)this).Config.Bind("Settings (Restart Required)", "Disable Butlers", false, "If true, butlers won't ever spawn!"); RemoveOldBird = ((BaseUnityPlugin)this).Config.Bind("Settings (Restart Required)", "Disable Old Birds", false, "If true, old birds won't ever spawn!"); RemoveFlowerSnake = ((BaseUnityPlugin)this).Config.Bind("Settings (Restart Required)", "Disable Flower Snakes", false, "If true, flower snakes won't ever spawn!"); RemoveBarber = ((BaseUnityPlugin)this).Config.Bind("Settings (Restart Required)", "Disable Barbers", false, "If true, barbers won't ever spawn!"); RemoveFox = ((BaseUnityPlugin)this).Config.Bind("Settings (Restart Required)", "Disable Kidnapper Foxes", false, "If true, foxes won't ever spawn!"); RemoveLasso = ((BaseUnityPlugin)this).Config.Bind("Settings (Restart Required)", "Disable Lasso Man", false, "If true, lasso Man won't spawn during modded!"); RemoveCadaver = ((BaseUnityPlugin)this).Config.Bind("Settings (Restart Required)", "Disable Cadaver", false, "If true, cadavers won't ever spawn!"); RemoveGiantKiwi = ((BaseUnityPlugin)this).Config.Bind("Settings (Restart Required)", "Disable Giant Kiwi", false, "If true, Giant Kiwi won't ever spawn!"); RemovePuma = ((BaseUnityPlugin)this).Config.Bind("Settings (Restart Required)", "Disable Feiopar", false, "If true, Feiopar won't ever spawn!"); RemoveStingray = ((BaseUnityPlugin)this).Config.Bind("Settings (Restart Required)", "Disable Backwater Gunkfish", false, "If true, Backwater Gunkfish won't ever spawn!"); } } } namespace ToggleEnemies.Patches { [HarmonyPatch(typeof(PumaAI))] internal class PumaPatch { [HarmonyPatch("Update")] [HarmonyPostfix] private static void PatchUpdate() { //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) if (ToggleEnemiesBase.RemovePuma.Value && GameNetworkManager.Instance.isHostingGame) { PumaAI val = Object.FindObjectOfType(); ((EnemyAI)val).serverPosition = new Vector3(0f, -1000f, 0f); ((EnemyAI)val).SyncPositionToClients(); ((EnemyAI)val).enemyType.canDie = true; ((EnemyAI)val).KillEnemyClientRpc(true); ((EnemyAI)val).KillEnemyOnOwnerClient(true); ToggleEnemiesBase.logger.LogInfo((object)"A Feiopar has been deleted."); Object.DestroyImmediate((Object)(object)val); Object.DestroyImmediate((Object)(object)val); } } } [HarmonyPatch(typeof(GiantKiwiAI))] internal class GiantKiwiPatch { [HarmonyPatch("Update")] [HarmonyPostfix] private static void PatchUpdate() { //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) if (ToggleEnemiesBase.RemoveGiantKiwi.Value && GameNetworkManager.Instance.isHostingGame) { GiantKiwiAI val = Object.FindObjectOfType(); ((EnemyAI)val).serverPosition = new Vector3(0f, -1000f, 0f); ((EnemyAI)val).SyncPositionToClients(); ((EnemyAI)val).enemyType.canDie = true; ((EnemyAI)val).KillEnemyClientRpc(true); ((EnemyAI)val).KillEnemyOnOwnerClient(true); ToggleEnemiesBase.logger.LogInfo((object)"A Giant Sapsucker has been deleted."); Object.DestroyImmediate((Object)(object)val); Object.DestroyImmediate((Object)(object)val); } } } [HarmonyPatch(typeof(StingrayAI))] internal class StingrayPatch { [HarmonyPatch("Update")] [HarmonyPostfix] private static void PatchUpdate() { //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) if (ToggleEnemiesBase.RemoveStingray.Value && GameNetworkManager.Instance.isHostingGame) { StingrayAI val = Object.FindObjectOfType(); ((EnemyAI)val).serverPosition = new Vector3(0f, -1000f, 0f); ((EnemyAI)val).SyncPositionToClients(); ((EnemyAI)val).enemyType.canDie = true; ((EnemyAI)val).KillEnemyClientRpc(true); ((EnemyAI)val).KillEnemyOnOwnerClient(true); ToggleEnemiesBase.logger.LogInfo((object)"A backwater gunkfish has been deleted."); Object.DestroyImmediate((Object)(object)val); Object.DestroyImmediate((Object)(object)val); } } } [HarmonyPatch(typeof(ClaySurgeonAI))] internal class BarberPatch { [HarmonyPatch("Update")] [HarmonyPostfix] private static void PatchUpdate() { //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) if (ToggleEnemiesBase.RemoveBarber.Value && GameNetworkManager.Instance.isHostingGame) { ClaySurgeonAI val = Object.FindObjectOfType(); ((EnemyAI)val).serverPosition = new Vector3(0f, -1000f, 0f); ((EnemyAI)val).SyncPositionToClients(); ((EnemyAI)val).enemyType.canDie = true; ((EnemyAI)val).KillEnemyClientRpc(true); ((EnemyAI)val).KillEnemyOnOwnerClient(true); ToggleEnemiesBase.logger.LogInfo((object)"A barber has been deleted."); Object.DestroyImmediate((Object)(object)val); Object.DestroyImmediate((Object)(object)val); } } } [HarmonyPatch(typeof(ButlerBeesEnemyAI))] internal class ButlerBeesPatch { [HarmonyPatch("Start")] [HarmonyPostfix] private static void PatchStart() { //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) if (ToggleEnemiesBase.RemoveButler.Value && GameNetworkManager.Instance.isHostingGame) { ButlerBeesEnemyAI val = Object.FindObjectOfType(); ((EnemyAI)val).serverPosition = new Vector3(0f, -1000f, 0f); ((EnemyAI)val).SyncPositionToClients(); ((EnemyAI)val).enemyType.canDie = true; ((EnemyAI)val).KillEnemyClientRpc(true); ((EnemyAI)val).KillEnemyOnOwnerClient(true); ToggleEnemiesBase.logger.LogInfo((object)"A swarm of butler bees has been deleted."); Object.DestroyImmediate((Object)(object)val); Object.DestroyImmediate((Object)(object)val); } } } [HarmonyPatch(typeof(BushWolfEnemy))] internal class BushWolfPatch { [HarmonyPatch("Update")] [HarmonyPostfix] private static void PatchUpdate() { //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) if (ToggleEnemiesBase.RemoveFox.Value && GameNetworkManager.Instance.isHostingGame) { BushWolfEnemy val = Object.FindObjectOfType(); ((EnemyAI)val).serverPosition = new Vector3(0f, -1000f, 0f); ((EnemyAI)val).SyncPositionToClients(); ((EnemyAI)val).enemyType.canDie = true; ((EnemyAI)val).KillEnemyClientRpc(true); ((EnemyAI)val).KillEnemyOnOwnerClient(true); ToggleEnemiesBase.logger.LogInfo((object)"A bush wolf has been deleted."); Object.DestroyImmediate((Object)(object)val); Object.DestroyImmediate((Object)(object)val); } } } [HarmonyPatch(typeof(CadaverGrowthAI))] internal class CadaverGrowthPatch { [HarmonyPatch("Update")] [HarmonyPostfix] private static void PatchUpdate() { //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) if (ToggleEnemiesBase.RemoveCadaver.Value && GameNetworkManager.Instance.isHostingGame) { CadaverGrowthAI val = Object.FindObjectOfType(); ((EnemyAI)val).serverPosition = new Vector3(0f, -1000f, 0f); ((EnemyAI)val).SyncPositionToClients(); ((EnemyAI)val).enemyType.canDie = true; ((EnemyAI)val).KillEnemyClientRpc(true); ((EnemyAI)val).KillEnemyOnOwnerClient(true); ToggleEnemiesBase.logger.LogInfo((object)"A cadaver growth has been deleted."); Object.DestroyImmediate((Object)(object)val); Object.DestroyImmediate((Object)(object)val); } } } [HarmonyPatch(typeof(LassoManAI))] internal class LassoManPatch { [HarmonyPatch("Update")] [HarmonyPostfix] private static void PatchUpdate() { //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) if (ToggleEnemiesBase.RemoveLasso.Value && GameNetworkManager.Instance.isHostingGame) { LassoManAI val = Object.FindObjectOfType(); ((EnemyAI)val).serverPosition = new Vector3(0f, -1000f, 0f); ((EnemyAI)val).SyncPositionToClients(); ((EnemyAI)val).enemyType.canDie = true; ((EnemyAI)val).KillEnemyClientRpc(true); ((EnemyAI)val).KillEnemyOnOwnerClient(true); ToggleEnemiesBase.logger.LogInfo((object)"A lasso man has been deleted."); Object.DestroyImmediate((Object)(object)val); Object.DestroyImmediate((Object)(object)val); } } } [HarmonyPatch(typeof(CadaverBloomAI))] internal class CadaverBloomPatch { [HarmonyPatch("Update")] [HarmonyPostfix] private static void PatchUpdate() { //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) if (ToggleEnemiesBase.RemoveCadaver.Value && GameNetworkManager.Instance.isHostingGame) { CadaverBloomAI val = Object.FindObjectOfType(); ((EnemyAI)val).serverPosition = new Vector3(0f, -1000f, 0f); ((EnemyAI)val).SyncPositionToClients(); ((EnemyAI)val).enemyType.canDie = true; ((EnemyAI)val).KillEnemyClientRpc(true); ((EnemyAI)val).KillEnemyOnOwnerClient(true); ToggleEnemiesBase.logger.LogInfo((object)"A cadaver bloom has been deleted."); Object.DestroyImmediate((Object)(object)val); Object.DestroyImmediate((Object)(object)val); } } } [HarmonyPatch(typeof(RadMechAI))] internal class OldBirdPatch { [HarmonyPatch("Update")] [HarmonyPostfix] private static void PatchUpdate() { //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) if (ToggleEnemiesBase.RemoveOldBird.Value && GameNetworkManager.Instance.isHostingGame) { RadMechAI val = Object.FindObjectOfType(); ((EnemyAI)val).serverPosition = new Vector3(0f, -1000f, 0f); ((EnemyAI)val).SyncPositionToClients(); ((EnemyAI)val).enemyType.canDie = true; ((EnemyAI)val).KillEnemyClientRpc(true); ((EnemyAI)val).KillEnemyOnOwnerClient(true); ToggleEnemiesBase.logger.LogInfo((object)"An old bird has been deleted."); Object.DestroyImmediate((Object)(object)val); Object.DestroyImmediate((Object)(object)val); } } } [HarmonyPatch(typeof(ButlerEnemyAI))] internal class ButlerPatch { [HarmonyPatch("Update")] [HarmonyPostfix] private static void PatchUpdate() { //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) if (ToggleEnemiesBase.RemoveButler.Value && GameNetworkManager.Instance.isHostingGame) { ButlerEnemyAI val = Object.FindObjectOfType(); ((EnemyAI)val).serverPosition = new Vector3(0f, -1000f, 0f); ((EnemyAI)val).SyncPositionToClients(); ((EnemyAI)val).enemyType.canDie = true; ((EnemyAI)val).KillEnemyClientRpc(true); ((EnemyAI)val).KillEnemyOnOwnerClient(true); ToggleEnemiesBase.logger.LogInfo((object)"A butler has been deleted."); Object.DestroyImmediate((Object)(object)val); Object.DestroyImmediate((Object)(object)val); } } } [HarmonyPatch(typeof(CentipedeAI))] internal class CentipedePatch { [HarmonyPatch("Update")] [HarmonyPostfix] private static void PatchUpdate() { //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) if (ToggleEnemiesBase.RemoveSnareFlea.Value && GameNetworkManager.Instance.isHostingGame) { CentipedeAI val = Object.FindObjectOfType(); ((EnemyAI)val).serverPosition = new Vector3(0f, -1000f, 0f); ((EnemyAI)val).SyncPositionToClients(); ((EnemyAI)val).enemyType.canDie = true; ((EnemyAI)val).KillEnemyClientRpc(true); ((EnemyAI)val).KillEnemyOnOwnerClient(true); ToggleEnemiesBase.logger.LogInfo((object)"A snare flea has been deleted."); Object.DestroyImmediate((Object)(object)val); Object.DestroyImmediate((Object)(object)val); } } } [HarmonyPatch(typeof(CrawlerAI))] internal class CrawlerPatch { [HarmonyPatch("Update")] [HarmonyPostfix] private static void PatchUpdate() { //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) if (ToggleEnemiesBase.RemoveThumper.Value && GameNetworkManager.Instance.isHostingGame) { CrawlerAI val = Object.FindObjectOfType(); ((EnemyAI)val).serverPosition = new Vector3(0f, -1000f, 0f); ((EnemyAI)val).SyncPositionToClients(); ((EnemyAI)val).enemyType.canDie = true; ((EnemyAI)val).KillEnemyClientRpc(true); ((EnemyAI)val).KillEnemyOnOwnerClient(true); ToggleEnemiesBase.logger.LogInfo((object)"A thumper has been deleted."); Object.DestroyImmediate((Object)(object)val); Object.DestroyImmediate((Object)(object)val); } } } [HarmonyPatch(typeof(BlobAI))] internal class BlobPatch { [HarmonyPatch("Update")] [HarmonyPostfix] private static void PatchUpdate() { //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) if (ToggleEnemiesBase.RemoveSlime.Value && GameNetworkManager.Instance.isHostingGame) { BlobAI val = Object.FindObjectOfType(); ((EnemyAI)val).serverPosition = new Vector3(0f, -1000f, 0f); ((EnemyAI)val).SyncPositionToClients(); ((EnemyAI)val).enemyType.canDie = true; ((EnemyAI)val).KillEnemyClientRpc(true); ((EnemyAI)val).KillEnemyOnOwnerClient(true); ToggleEnemiesBase.logger.LogInfo((object)"A blob has been deleted."); Object.DestroyImmediate((Object)(object)val); Object.DestroyImmediate((Object)(object)val); } } } [HarmonyPatch(typeof(DressGirlAI))] internal class DressGirlPatch { [HarmonyPatch("Update")] [HarmonyPostfix] private static void PatchUpdate() { //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) if (ToggleEnemiesBase.RemoveDressGirl.Value && GameNetworkManager.Instance.isHostingGame) { DressGirlAI val = Object.FindObjectOfType(); ((EnemyAI)val).serverPosition = new Vector3(0f, -1000f, 0f); ((EnemyAI)val).SyncPositionToClients(); ((EnemyAI)val).enemyType.canDie = true; ((EnemyAI)val).KillEnemyClientRpc(true); ((EnemyAI)val).KillEnemyOnOwnerClient(true); ToggleEnemiesBase.logger.LogInfo((object)"A ghost girl has been deleted."); Object.DestroyImmediate((Object)(object)val); Object.DestroyImmediate((Object)(object)val); } } } [HarmonyPatch(typeof(MaskedPlayerEnemy))] internal class MaskedPlayerEnemyPatch { [HarmonyPatch("Update")] [HarmonyPostfix] private static void PatchUpdate() { //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) if (ToggleEnemiesBase.RemoveMasked.Value && GameNetworkManager.Instance.isHostingGame) { MaskedPlayerEnemy val = Object.FindObjectOfType(); ((EnemyAI)val).serverPosition = new Vector3(0f, -1000f, 0f); ((EnemyAI)val).SyncPositionToClients(); ((EnemyAI)val).enemyType.canDie = true; ((EnemyAI)val).KillEnemyClientRpc(true); ((EnemyAI)val).KillEnemyOnOwnerClient(true); ToggleEnemiesBase.logger.LogInfo((object)"A masked player has been deleted."); Object.DestroyImmediate((Object)(object)val); Object.DestroyImmediate((Object)(object)val); } } } [HarmonyPatch(typeof(PufferAI))] internal class PufferPatch { [HarmonyPatch("Update")] [HarmonyPostfix] private static void PatchUpdate() { //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) if (ToggleEnemiesBase.RemovePuffer.Value && GameNetworkManager.Instance.isHostingGame) { PufferAI val = Object.FindObjectOfType(); ((EnemyAI)val).serverPosition = new Vector3(0f, -1000f, 0f); ((EnemyAI)val).SyncPositionToClients(); ((EnemyAI)val).enemyType.canDie = true; ((EnemyAI)val).KillEnemyClientRpc(true); ((EnemyAI)val).KillEnemyOnOwnerClient(true); ToggleEnemiesBase.logger.LogInfo((object)"A spore lizard has been deleted."); Object.DestroyImmediate((Object)(object)val); Object.DestroyImmediate((Object)(object)val); } } } [HarmonyPatch(typeof(NutcrackerEnemyAI))] internal class NutcrackerEnemyPatch { [HarmonyPatch("Update")] [HarmonyPostfix] private static void PatchUpdate() { //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) if (ToggleEnemiesBase.RemoveNutcracker.Value && GameNetworkManager.Instance.isHostingGame) { NutcrackerEnemyAI val = Object.FindObjectOfType(); ((EnemyAI)val).serverPosition = new Vector3(0f, -1000f, 0f); ((EnemyAI)val).SyncPositionToClients(); ((EnemyAI)val).enemyType.canDie = true; ((EnemyAI)val).KillEnemyClientRpc(true); ((EnemyAI)val).KillEnemyOnOwnerClient(true); ToggleEnemiesBase.logger.LogInfo((object)"A nutcracker has been deleted."); Object.DestroyImmediate((Object)(object)val); Object.DestroyImmediate((Object)(object)val); } } } [HarmonyPatch(typeof(JesterAI))] internal class JesterPatch { [HarmonyPatch("Update")] [HarmonyPostfix] private static void PatchUpdate() { //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) if (ToggleEnemiesBase.RemoveJester.Value && GameNetworkManager.Instance.isHostingGame) { JesterAI val = Object.FindObjectOfType(); ((EnemyAI)val).serverPosition = new Vector3(0f, -1000f, 0f); ((EnemyAI)val).SyncPositionToClients(); ((EnemyAI)val).enemyType.canDie = true; ((EnemyAI)val).KillEnemyClientRpc(true); ((EnemyAI)val).KillEnemyOnOwnerClient(true); ToggleEnemiesBase.logger.LogInfo((object)"A jester has been deleted."); Object.DestroyImmediate((Object)(object)val); Object.DestroyImmediate((Object)(object)val); } } } [HarmonyPatch(typeof(MouthDogAI))] internal class MouthDogPatch { [HarmonyPatch("Update")] [HarmonyPostfix] private static void PatchUpdate() { //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) if (ToggleEnemiesBase.RemoveMouthDog.Value && GameNetworkManager.Instance.isHostingGame) { MouthDogAI val = Object.FindObjectOfType(); ((EnemyAI)val).serverPosition = new Vector3(0f, -1000f, 0f); ((EnemyAI)val).SyncPositionToClients(); ((EnemyAI)val).enemyType.canDie = true; ((EnemyAI)val).KillEnemyClientRpc(true); ((EnemyAI)val).KillEnemyOnOwnerClient(true); ToggleEnemiesBase.logger.LogInfo((object)"An eyeless dog has been deleted."); Object.DestroyImmediate((Object)(object)val); Object.DestroyImmediate((Object)(object)val); } } } [HarmonyPatch(typeof(ForestGiantAI))] internal class ForestGiantPatch { [HarmonyPatch("Update")] [HarmonyPostfix] private static void PatchUpdate() { //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) if (ToggleEnemiesBase.RemoveGiant.Value && GameNetworkManager.Instance.isHostingGame) { ForestGiantAI val = Object.FindObjectOfType(); ((EnemyAI)val).serverPosition = new Vector3(0f, -1000f, 0f); ((EnemyAI)val).SyncPositionToClients(); ((EnemyAI)val).enemyType.canDie = true; ((EnemyAI)val).KillEnemyClientRpc(true); ((EnemyAI)val).KillEnemyOnOwnerClient(true); ToggleEnemiesBase.logger.LogInfo((object)"A forest giant has been deleted."); Object.DestroyImmediate((Object)(object)val); Object.DestroyImmediate((Object)(object)val); } } } [HarmonyPatch(typeof(SandWormAI))] internal class SandWormPatch { [HarmonyPatch("Update")] [HarmonyPostfix] private static void PatchUpdate() { //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) if (ToggleEnemiesBase.RemoveWorm.Value && GameNetworkManager.Instance.isHostingGame) { SandWormAI val = Object.FindObjectOfType(); ((EnemyAI)val).serverPosition = new Vector3(0f, -1000f, 0f); ((EnemyAI)val).SyncPositionToClients(); ((EnemyAI)val).enemyType.canDie = true; ((EnemyAI)val).KillEnemyClientRpc(true); ((EnemyAI)val).KillEnemyOnOwnerClient(true); ToggleEnemiesBase.logger.LogInfo((object)"A sand worm has been deleted."); Object.DestroyImmediate((Object)(object)val); Object.DestroyImmediate((Object)(object)val); } } } [HarmonyPatch(typeof(BaboonBirdAI))] internal class BaboonBirdPatch { [HarmonyPatch("Update")] [HarmonyPostfix] private static void PatchUpdate() { //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) if (ToggleEnemiesBase.RemoveBaboonHawk.Value && GameNetworkManager.Instance.isHostingGame) { BaboonBirdAI val = Object.FindObjectOfType(); ((EnemyAI)val).serverPosition = new Vector3(0f, -1000f, 0f); ((EnemyAI)val).SyncPositionToClients(); ((EnemyAI)val).enemyType.canDie = true; ((EnemyAI)val).KillEnemyClientRpc(true); ((EnemyAI)val).KillEnemyOnOwnerClient(true); ToggleEnemiesBase.logger.LogInfo((object)"A baboon hawk has been deleted."); Object.DestroyImmediate((Object)(object)val); Object.DestroyImmediate((Object)(object)val); } } } [HarmonyPatch(typeof(FlowerSnakeEnemy))] internal class FlowerSnakePatch { [HarmonyPatch("Update")] [HarmonyPostfix] private static void PatchUpdate() { //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) if (ToggleEnemiesBase.RemoveFlowerSnake.Value && GameNetworkManager.Instance.isHostingGame) { FlowerSnakeEnemy val = Object.FindObjectOfType(); ((EnemyAI)val).serverPosition = new Vector3(0f, -1000f, 0f); ((EnemyAI)val).SyncPositionToClients(); ((EnemyAI)val).enemyType.canDie = true; ((EnemyAI)val).KillEnemyClientRpc(true); ((EnemyAI)val).KillEnemyOnOwnerClient(true); ToggleEnemiesBase.logger.LogInfo((object)"A flower snake has been deleted."); Object.DestroyImmediate((Object)(object)val); Object.DestroyImmediate((Object)(object)val); } } } [HarmonyPatch(typeof(SpringManAI))] internal class SpringManPatch { [HarmonyPatch("Update")] [HarmonyPostfix] private static void PatchUpdate() { //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) if (ToggleEnemiesBase.RemoveCoilHead.Value && GameNetworkManager.Instance.isHostingGame) { SpringManAI val = Object.FindObjectOfType(); ((EnemyAI)val).serverPosition = new Vector3(0f, -1000f, 0f); ((EnemyAI)val).SyncPositionToClients(); ((EnemyAI)val).enemyType.canDie = true; ((EnemyAI)val).KillEnemyClientRpc(true); ((EnemyAI)val).KillEnemyOnOwnerClient(true); ToggleEnemiesBase.logger.LogInfo((object)"A coil-head has been deleted."); Object.DestroyImmediate((Object)(object)val); Object.DestroyImmediate((Object)(object)val); } } } [HarmonyPatch(typeof(SandSpiderAI))] internal class SandSpiderPatch { [HarmonyPatch("Update")] [HarmonyPostfix] private static void PatchUpdate() { //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) if (ToggleEnemiesBase.RemoveBunkerSpider.Value && GameNetworkManager.Instance.isHostingGame) { SandSpiderAI val = Object.FindObjectOfType(); ((EnemyAI)val).serverPosition = new Vector3(0f, -1000f, 0f); ((EnemyAI)val).SyncPositionToClients(); ((EnemyAI)val).enemyType.canDie = true; ((EnemyAI)val).KillEnemyClientRpc(true); ((EnemyAI)val).KillEnemyOnOwnerClient(true); ToggleEnemiesBase.logger.LogInfo((object)"A bunker spider has been deleted."); Object.DestroyImmediate((Object)(object)val); Object.DestroyImmediate((Object)(object)val); } } } [HarmonyPatch(typeof(HoarderBugAI))] internal class HoarderBugPatch { [HarmonyPatch("Update")] [HarmonyPostfix] private static void PatchUpdate() { //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) if (ToggleEnemiesBase.RemoveLootBug.Value && GameNetworkManager.Instance.isHostingGame) { HoarderBugAI val = Object.FindObjectOfType(); ((EnemyAI)val).serverPosition = new Vector3(0f, -1000f, 0f); ((EnemyAI)val).SyncPositionToClients(); ((EnemyAI)val).enemyType.canDie = true; ((EnemyAI)val).KillEnemyClientRpc(true); ((EnemyAI)val).KillEnemyOnOwnerClient(true); ToggleEnemiesBase.logger.LogInfo((object)"A hoarding bug has been deleted."); Object.DestroyImmediate((Object)(object)val); Object.DestroyImmediate((Object)(object)val); } } } [HarmonyPatch(typeof(FlowermanAI))] internal class FlowermanPatch { [HarmonyPatch("Update")] [HarmonyPostfix] private static void PatchUpdate() { //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) if (ToggleEnemiesBase.RemoveBracken.Value && GameNetworkManager.Instance.isHostingGame) { FlowermanAI val = Object.FindObjectOfType(); ((EnemyAI)val).serverPosition = new Vector3(0f, -1000f, 0f); ((EnemyAI)val).SyncPositionToClients(); ((EnemyAI)val).enemyType.canDie = true; ((EnemyAI)val).KillEnemyClientRpc(true); ((EnemyAI)val).KillEnemyOnOwnerClient(true); ToggleEnemiesBase.logger.LogInfo((object)"A bracken has been deleted."); Object.DestroyImmediate((Object)(object)val); Object.DestroyImmediate((Object)(object)val); } } } }