Decompiled source of DamageSourceForEnemies v1.0.0

plugins/DamageSourceForEnemies.dll

Decompiled 4 hours ago
using System;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Logging;
using EntityStates;
using EntityStates.BeetleGuardMonster;
using EntityStates.BeetleMonster;
using EntityStates.Bison;
using EntityStates.BrotherMonster;
using EntityStates.ClayGrenadier;
using EntityStates.FalseSonBoss;
using EntityStates.GolemMonster;
using EntityStates.Gup;
using EntityStates.Halcyonite;
using EntityStates.ImpBossMonster;
using EntityStates.ImpMonster;
using EntityStates.JellyfishMonster;
using EntityStates.LemurianBruiserMonster;
using EntityStates.LemurianMonster;
using EntityStates.LunarExploderMonster.Weapon;
using EntityStates.MinorConstruct.Weapon;
using EntityStates.ParentMonster;
using EntityStates.TitanMonster;
using EntityStates.Vermin.Weapon;
using EntityStates.VoidBarnacle.Weapon;
using EntityStates.VoidInfestor;
using EntityStates.VoidJailer.Weapon;
using IL.EntityStates;
using IL.EntityStates.AcidLarva;
using IL.EntityStates.ArtifactShell;
using IL.EntityStates.BeetleGuardMonster;
using IL.EntityStates.BeetleMonster;
using IL.EntityStates.BeetleQueenMonster;
using IL.EntityStates.Bell.BellWeapon;
using IL.EntityStates.Bison;
using IL.EntityStates.BrotherHaunt;
using IL.EntityStates.BrotherMonster;
using IL.EntityStates.BrotherMonster.Weapon;
using IL.EntityStates.ChildMonster;
using IL.EntityStates.ClayBoss;
using IL.EntityStates.ClayBoss.ClayBossWeapon;
using IL.EntityStates.ClayBruiser.Weapon;
using IL.EntityStates.ClayGrenadier;
using IL.EntityStates.Drone.DroneWeapon;
using IL.EntityStates.FalseSonBoss;
using IL.EntityStates.FlyingVermin.Weapon;
using IL.EntityStates.GolemMonster;
using IL.EntityStates.GrandParentBoss;
using IL.EntityStates.GravekeeperBoss;
using IL.EntityStates.GravekeeperMonster.Weapon;
using IL.EntityStates.GreaterWispMonster;
using IL.EntityStates.Halcyonite;
using IL.EntityStates.HermitCrab;
using IL.EntityStates.ImpBossMonster;
using IL.EntityStates.ImpMonster;
using IL.EntityStates.JellyfishMonster;
using IL.EntityStates.LemurianBruiserMonster;
using IL.EntityStates.LemurianMonster;
using IL.EntityStates.LunarGolem;
using IL.EntityStates.LunarWisp;
using IL.EntityStates.MajorConstruct.Weapon;
using IL.EntityStates.MiniMushroom;
using IL.EntityStates.NullifierMonster;
using IL.EntityStates.ParentMonster;
using IL.EntityStates.RoboBallBoss.Weapon;
using IL.EntityStates.RoboBallMini.Weapon;
using IL.EntityStates.ScavMonster;
using IL.EntityStates.Scorchling;
using IL.EntityStates.Squid.SquidWeapon;
using IL.EntityStates.TitanMonster;
using IL.EntityStates.UrchinTurret.Weapon;
using IL.EntityStates.VagrantMonster;
using IL.EntityStates.VagrantMonster.Weapon;
using IL.EntityStates.VoidInfestor;
using IL.EntityStates.VoidJailer.Weapon;
using IL.EntityStates.VoidMegaCrab.BackWeapon;
using IL.EntityStates.VoidMegaCrab.Weapon;
using IL.EntityStates.VoidRaidCrab;
using IL.EntityStates.VoidRaidCrab.Weapon;
using IL.EntityStates.Vulture.Weapon;
using IL.EntityStates.Wisp1Monster;
using IL.RoR2;
using Microsoft.CodeAnalysis;
using Mono.Cecil;
using Mono.Cecil.Cil;
using MonoMod.Cil;
using R2API.Utils;
using RoR2;
using RoR2.Orbs;
using RoR2.Projectile;
using UnityEngine;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: AssemblyCompany("DamageSourceForEnemies")]
[assembly: AssemblyConfiguration("Release")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0+e47eb4e7e607acd042b5d5bfb298f5aa99ae0ea8")]
[assembly: AssemblyProduct("DamageSourceForEnemies")]
[assembly: AssemblyTitle("DamageSourceForEnemies")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.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 DamageSourceForEnemies
{
	internal static class ILHooks
	{
		private static class Util
		{
			internal static void LogILSuccess(string methodName, ILContext il, ILCursor c)
			{
			}

			internal static void LogILError(string methodName, ILContext il, ILCursor c)
			{
				Log.Error("COULD NOT IL HOOK " + methodName + "!");
				Log.Error($"cursor is {c}");
				Log.Error($"il is {il}");
			}
		}

		private static class ILEdits
		{
			internal enum BulletAttackMatchType
			{
				OwnerIsGameObject,
				ExistingDamageType
			}

			internal enum OverlapAttackMatchType
			{
				BasicDamageCalculation,
				ExistingDamageType
			}

			internal enum BlastAttackMatchType
			{
				AttackerIsGameObject,
				BeforeFalloffModel,
				ExistingDamageType
			}

			internal static void ReplaceNullDamageTypeComboInFireProjectile(DamageTypeCombo newGenericDamageTypeCombo, string hookedMethodName, int localILVariableInt, ILContext il, ILCursor c)
			{
				//IL_000e: Unknown result type (might be due to invalid IL or missing references)
				//IL_000f: Unknown result type (might be due to invalid IL or missing references)
				TypeReference val = default(TypeReference);
				if (!c.TryGotoNext((MoveType)2, new Func<Instruction, bool>[3]
				{
					(Instruction x) => ILPatternMatchingExt.MatchLdloca(x, localILVariableInt),
					(Instruction x) => ILPatternMatchingExt.MatchInitobj(x, ref val),
					(Instruction x) => ILPatternMatchingExt.MatchLdloc(x, localILVariableInt)
				}))
				{
					Util.LogILError(hookedMethodName, il, c);
					return;
				}
				c.EmitDelegate<Func<DamageTypeCombo, DamageTypeCombo?>>((Func<DamageTypeCombo, DamageTypeCombo?>)((DamageTypeCombo oldNullValue) => newGenericDamageTypeCombo));
			}

			internal static void AddDamageTypeComboToFireProjectileInfo(DamageTypeCombo damageTypeCombo, string methodName, int localILVariableInt, ILContext il, ILCursor c)
			{
				//IL_000e: Unknown result type (might be due to invalid IL or missing references)
				//IL_000f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0061: Unknown result type (might be due to invalid IL or missing references)
				//IL_0088: Unknown result type (might be due to invalid IL or missing references)
				if (!c.TryGotoNext((MoveType)0, new Func<Instruction, bool>[2]
				{
					(Instruction x) => ILPatternMatchingExt.MatchLdloc(x, localILVariableInt),
					(Instruction x) => ILPatternMatchingExt.MatchCallvirt<ProjectileManager>(x, "FireProjectile")
				}))
				{
					Util.LogILError(methodName, il, c);
					return;
				}
				c.Emit(OpCodes.Ldloc, localILVariableInt);
				c.EmitDelegate<Func<FireProjectileInfo, FireProjectileInfo>>((Func<FireProjectileInfo, FireProjectileInfo>)delegate(FireProjectileInfo fireProjectileInfo)
				{
					//IL_0003: Unknown result type (might be due to invalid IL or missing references)
					//IL_0012: Unknown result type (might be due to invalid IL or missing references)
					fireProjectileInfo.damageTypeOverride = damageTypeCombo;
					return fireProjectileInfo;
				});
				c.Emit(OpCodes.Stloc, localILVariableInt);
			}

			internal static void SetupForBulletAttackDelegate(bool isAttackInEntityState, BulletAttackMatchType bulletAttackMatchType, string methodName, ILContext il, ILCursor c)
			{
				//IL_0120: Unknown result type (might be due to invalid IL or missing references)
				//IL_0112: Unknown result type (might be due to invalid IL or missing references)
				bool flag = false;
				switch (bulletAttackMatchType)
				{
				case BulletAttackMatchType.OwnerIsGameObject:
					if (!c.TryGotoNext((MoveType)2, new Func<Instruction, bool>[3]
					{
						(Instruction x) => ILPatternMatchingExt.MatchLdarg(x, 0),
						(Instruction x) => ILPatternMatchingExt.MatchCall<EntityState>(x, "get_gameObject"),
						(Instruction x) => ILPatternMatchingExt.MatchStfld<BulletAttack>(x, "owner")
					}))
					{
						flag = true;
					}
					break;
				case BulletAttackMatchType.ExistingDamageType:
				{
					int num = default(int);
					if (!c.TryGotoNext((MoveType)2, new Func<Instruction, bool>[3]
					{
						(Instruction x) => ILPatternMatchingExt.MatchLdcI4(x, ref num),
						(Instruction x) => ILPatternMatchingExt.MatchCall<DamageTypeCombo>(x, "op_Implicit"),
						(Instruction x) => ILPatternMatchingExt.MatchStfld<BulletAttack>(x, "damageType")
					}))
					{
						flag = true;
					}
					break;
				}
				}
				if (flag)
				{
					Util.LogILError(methodName, il, c);
				}
				else if (isAttackInEntityState)
				{
					c.Emit(OpCodes.Ldarg_0);
				}
				else
				{
					c.Emit(OpCodes.Dup);
				}
			}

			internal static void SetupForOverlapAttackDelegate(bool isAttackInEntityState, OverlapAttackMatchType overlapAttackMatchType, string methodName, ILContext il, ILCursor c)
			{
				//IL_0120: Unknown result type (might be due to invalid IL or missing references)
				//IL_0112: Unknown result type (might be due to invalid IL or missing references)
				bool flag = false;
				switch (overlapAttackMatchType)
				{
				case OverlapAttackMatchType.BasicDamageCalculation:
					if (!c.TryGotoNext((MoveType)2, new Func<Instruction, bool>[3]
					{
						(Instruction x) => ILPatternMatchingExt.MatchLdfld<BaseState>(x, "damageStat"),
						(Instruction x) => ILPatternMatchingExt.MatchMul(x),
						(Instruction x) => ILPatternMatchingExt.MatchStfld<OverlapAttack>(x, "damage")
					}))
					{
						flag = true;
					}
					break;
				case OverlapAttackMatchType.ExistingDamageType:
				{
					int num = default(int);
					if (!c.TryGotoNext((MoveType)2, new Func<Instruction, bool>[3]
					{
						(Instruction x) => ILPatternMatchingExt.MatchLdcI4(x, ref num),
						(Instruction x) => ILPatternMatchingExt.MatchCall<DamageTypeCombo>(x, "op_Implicit"),
						(Instruction x) => ILPatternMatchingExt.MatchStfld<OverlapAttack>(x, "damageType")
					}))
					{
						flag = true;
					}
					break;
				}
				}
				if (flag)
				{
					Util.LogILError(methodName, il, c);
				}
				else if (isAttackInEntityState)
				{
					c.Emit(OpCodes.Ldarg_0);
				}
				else
				{
					c.Emit(OpCodes.Dup);
				}
			}

			private static bool MatchBasedOnBlastAttackMatchType(BlastAttackMatchType blastAttackMatchType, ILCursor c)
			{
				switch (blastAttackMatchType)
				{
				case BlastAttackMatchType.AttackerIsGameObject:
					if (c.TryGotoNext((MoveType)2, new Func<Instruction, bool>[3]
					{
						(Instruction x) => ILPatternMatchingExt.MatchLdarg(x, 0),
						(Instruction x) => ILPatternMatchingExt.MatchCall<EntityState>(x, "get_gameObject"),
						(Instruction x) => ILPatternMatchingExt.MatchStfld<BlastAttack>(x, "attacker")
					}))
					{
						return true;
					}
					break;
				case BlastAttackMatchType.BeforeFalloffModel:
					if (c.TryGotoNext((MoveType)0, new Func<Instruction, bool>[3]
					{
						(Instruction x) => ILPatternMatchingExt.MatchDup(x),
						(Instruction x) => ILPatternMatchingExt.MatchLdcI4(x, 0),
						(Instruction x) => ILPatternMatchingExt.MatchStfld<BlastAttack>(x, "falloffModel")
					}))
					{
						return true;
					}
					break;
				case BlastAttackMatchType.ExistingDamageType:
				{
					int num = default(int);
					if (c.TryGotoNext((MoveType)2, new Func<Instruction, bool>[3]
					{
						(Instruction x) => ILPatternMatchingExt.MatchLdcI4(x, ref num),
						(Instruction x) => ILPatternMatchingExt.MatchCall<DamageTypeCombo>(x, "op_Implicit"),
						(Instruction x) => ILPatternMatchingExt.MatchStfld<BlastAttack>(x, "damageType")
					}))
					{
						return true;
					}
					break;
				}
				}
				return false;
			}

			internal static void SetDamageSourceForBlastAttack(DamageSource damageSource, BlastAttackMatchType blastAttackMatchType, string methodName, ILContext il, ILCursor c)
			{
				//IL_0007: Unknown result type (might be due to invalid IL or missing references)
				//IL_0008: Unknown result type (might be due to invalid IL or missing references)
				//IL_0023: Unknown result type (might be due to invalid IL or missing references)
				if (!MatchBasedOnBlastAttackMatchType(blastAttackMatchType, c))
				{
					Util.LogILError(methodName, il, c);
					return;
				}
				c.Emit(OpCodes.Dup);
				c.EmitDelegate<Action<BlastAttack>>((Action<BlastAttack>)delegate(BlastAttack blastAttack)
				{
					//IL_000a: Unknown result type (might be due to invalid IL or missing references)
					//IL_000f: Unknown result type (might be due to invalid IL or missing references)
					if (blastAttack != null)
					{
						blastAttack.damageType.damageSource = damageSource;
					}
				});
			}

			internal static void SetupForBlastAttackDelegate(BlastAttackMatchType blastAttackMatchType, string methodName, ILContext il, ILCursor c)
			{
				//IL_0013: Unknown result type (might be due to invalid IL or missing references)
				if (!MatchBasedOnBlastAttackMatchType(blastAttackMatchType, c))
				{
					Util.LogILError(methodName, il, c);
				}
				else
				{
					c.Emit(OpCodes.Ldarg_0);
				}
			}
		}

		[CompilerGenerated]
		private static class <>O
		{
			public static Manipulator <0>__BasicMeleeAttack_OnEnter;

			public static Manipulator <1>__GenericProjectileBaseState_FireProjectile;

			public static Manipulator <2>__ArtifactShell_FireSolarFlares_FixedUpdate;

			public static Manipulator <3>__AcidLarva_LarvaLeap_DetonateAuthority;

			public static Manipulator <4>__BeetleGuardMonster_GroundSlam_OnEnter;

			public static Manipulator <5>__BeetleGuardMonster_FireSunder_FixedUpdate;

			public static Manipulator <6>__BeetleMonster_HeadbuttState_OnEnter;

			public static Manipulator <7>__BeetleQueenMonster_FireSpit_FireBlob;

			public static Manipulator <8>__Bell_BellWeapon_ChargeTrioBomb_FixedUpdate;

			public static Manipulator <9>__Bison_Headbutt_OnEnter;

			public static Manipulator <10>__Bison_Charge_ResetOverlapAttack;

			public static Manipulator <11>__BrotherHaunt_FireRandomProjectiles_FireProjectile;

			public static Manipulator <12>__BrotherMonster_ExitSkyLeap_FireRingAuthority;

			public static Manipulator <13>__BrotherMonster_FistSlam_FixedUpdate;

			public static Manipulator <14>__BrotherMonster_WeaponSlam_OnEnter;

			public static Manipulator <15>__BrotherMonster_WeaponSlam_FixedUpdate;

			public static Manipulator <16>__BrotherMonster_UltChannelState_FireWave;

			public static Manipulator <17>__BrotherMonster_Weapon_FireLunarShards_OnEnter;

			public static Manipulator <18>__ChildMonster_SparkBallFire_FireBomb;

			public static Manipulator <19>__ClayBoss_FireTarball_FireSingleTarball;

			public static Manipulator <20>__TarTetherController_DoDamageTick;

			public static Manipulator <21>__ClayBoss_ClayBossWeapon_FireBombardment_FireGrenade;

			public static Manipulator <22>__ClayBruiser_Weapon_MinigunFire_OnFireAuthority;

			public static Manipulator <23>__ClayGrenadier_FaceSlam_FixedUpdate;

			public static Manipulator <24>__Drone_DroneWeapon_FireGatling_OnEnter;

			public static Manipulator <25>__Drone_DroneWeapon_FireMegaTurret_FireBullet;

			public static Manipulator <26>__Drone_DroneWeapon_FireMissileBarrage_FireMissile;

			public static Manipulator <27>__Drone_DroneWeapon_FireTurret_OnEnter;

			public static Manipulator <28>__Drone_DroneWeapon_FireTwinRocket_FireProjectile;

			public static Manipulator <29>__FalseSonBoss_CorruptedPaths_DetonateAuthority;

			public static Manipulator <30>__FalseSonBoss_CorruptedPathsDash_FixedUpdate;

			public static Manipulator <31>__FalseSonBoss_FissureSlam_FixedUpdate;

			public static Manipulator <32>__FalseSonBoss_FissureSlam_DetonateAuthority;

			public static Manipulator <33>__FalseSonBoss_LunarGazeFire_FireBullet;

			public static Manipulator <34>__FalseSonBoss_LunarRain_DetonateAuthority;

			public static Manipulator <35>__FalseSonBoss_PrimeDevastator_DetonateAuthority;

			public static Manipulator <36>__FalseSonBoss_SwatAwayPlayersSlam_OnEnter;

			public static Manipulator <37>__FalseSonBoss_TaintedOffering_FireProjectile;

			public static Manipulator <38>__FlyingVermin_Weapon_Spit_FireProjectile;

			public static Manipulator <39>__GolemMonster_ClapState_FixedUpdate;

			public static Manipulator <40>__GolemMonster_FireLaser_OnEnter;

			public static Manipulator <41>__GrandParentBoss_GroundSwipe_FixedUpdate;

			public static Manipulator <42>__GravekeeperBoss_FireHook_FireSingleHook;

			public static Manipulator <43>__GravekeeperMonster_Weapon_GravekeeperBarrage_FireBlob;

			public static Manipulator <44>__GreaterWispMonster_FireCannons_OnEnter;

			public static Manipulator <45>__Halcyonite_TriLaser_FireTriLaser;

			public static Manipulator <46>__Halcyonite_WhirlwindRush_FixedUpdate;

			public static Manipulator <47>__HermitCrab_FireMortar_Fire;

			public static Manipulator <48>__ImpBossMonster_FireVoidspikes_FireSpikeAuthority;

			public static Manipulator <49>__ImpBossMonster_FireVoidspikes_OnEnter;

			public static Manipulator <50>__ImpBossMonster_GroundPound_OnEnter;

			public static Manipulator <51>__ImpMonster_DoubleSlash_OnEnter;

			public static Manipulator <52>__JellyfishMonster_JellyNova_Detonate;

			public static Manipulator <53>__LemurianBruiserMonster_FireMegaFireball_FixedUpdate;

			public static Manipulator <54>__LemurianBruiserMonster_Flamebreath_FireFlame;

			public static Manipulator <55>__LemurianMonster_Bite_OnEnter;

			public static Manipulator <56>__LemurianMonster_FireFireball_OnEnter;

			public static Manipulator <57>__LunarGolem_FireTwinShots_FireSingle;

			public static Manipulator <58>__LunarWisp_FireLunarGuns_OnFireAuthority;

			public static Manipulator <59>__LunarWisp_SeekingBomb_FireBomb;

			public static Manipulator <60>__MajorConstruct_Weapon_FireLaser_ModifyBullet;

			public static Manipulator <61>__MiniMushroom_SporeGrenade_FireGrenade;

			public static Manipulator <62>__NullifierMonster_FirePortalBomb_FireBomb;

			public static Manipulator <63>__ParentMonster_GroundSlam_FixedUpdate;

			public static Manipulator <64>__RoboBallBoss_Weapon_FireDelayKnockup_OnEnter;

			public static Manipulator <65>__RoboBallBoss_Weapon_FireEyeBlast_FixedUpdate;

			public static Manipulator <66>__RoboBallMini_Weapon_FireEyeBeam_ModifyBullet;

			public static Manipulator <67>__ScavMonster_FireEnergyCannon_OnEnter;

			public static Manipulator <68>__ScavMonster_ThrowSack_Fire;

			public static Manipulator <69>__Scorchling_ScorchlingLavaBomb_Spit;

			public static Manipulator <70>__Squid_SquidWeapon_FireSpine_FireOrbArrow;

			public static Manipulator <71>__TitanMonster_FireFist_PlaceSingleDelayBlast;

			public static Manipulator <72>__TitanMonster_FireGoldMegaLaser_FixedUpdate;

			public static Manipulator <73>__TitanMonster_FireMegaLaser_FireBullet;

			public static Manipulator <74>__TitanRockController_Fire;

			public static Manipulator <75>__UrchinTurret_Weapon_MinigunFire_OnFireAuthority;

			public static Manipulator <76>__VagrantMonster_FireMegaNova_Detonate;

			public static Manipulator <77>__VagrantMonster_FireTrackingBomb_FireBomb;

			public static Manipulator <78>__VagrantMonster_Weapon_JellyBarrage_FireBlob;

			public static Manipulator <79>__VoidInfestor_Infest_OnEnter;

			public static Manipulator <80>__VoidJailer_Weapon_Capture2_OnEnter;

			public static Manipulator <81>__VoidMegaCrab_BackWeapon_FireVoidMissiles_FireMissile;

			public static Manipulator <82>__VoidMegaCrab_Weapon_FireCrabCannonBase_FireProjectile;

			public static Manipulator <83>__VoidRaidCrab_SpinBeamAttack_FireBeamBulletAuthority;

			public static Manipulator <84>__VoidRaidCrab_Weapon_FireMissiles_FixedUpdate;

			public static Manipulator <85>__VoidRaidCrab_Weapon_BaseFireMultiBeam_OnEnter;

			public static Manipulator <86>__Vulture_Weapon_FireWindblade_OnEnter;

			public static Manipulator <87>__Wisp1Monster_FireEmbers_OnEnter;
		}

		internal static void SetupILHooks()
		{
			//IL_0010: Unknown result type (might be due to invalid IL or missing references)
			//IL_0015: Unknown result type (might be due to invalid IL or missing references)
			//IL_001b: Expected O, but got Unknown
			//IL_0030: Unknown result type (might be due to invalid IL or missing references)
			//IL_0035: Unknown result type (might be due to invalid IL or missing references)
			//IL_003b: Expected O, but got Unknown
			//IL_0050: Unknown result type (might be due to invalid IL or missing references)
			//IL_0055: Unknown result type (might be due to invalid IL or missing references)
			//IL_005b: Expected O, but got Unknown
			//IL_0070: Unknown result type (might be due to invalid IL or missing references)
			//IL_0075: Unknown result type (might be due to invalid IL or missing references)
			//IL_007b: Expected O, but got Unknown
			//IL_0090: Unknown result type (might be due to invalid IL or missing references)
			//IL_0095: Unknown result type (might be due to invalid IL or missing references)
			//IL_009b: Expected O, but got Unknown
			//IL_00b0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00bb: Expected O, but got Unknown
			//IL_00d0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00db: Expected O, but got Unknown
			//IL_00f0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fb: Expected O, but got Unknown
			//IL_0110: Unknown result type (might be due to invalid IL or missing references)
			//IL_0115: Unknown result type (might be due to invalid IL or missing references)
			//IL_011b: Expected O, but got Unknown
			//IL_0130: Unknown result type (might be due to invalid IL or missing references)
			//IL_0135: Unknown result type (might be due to invalid IL or missing references)
			//IL_013b: Expected O, but got Unknown
			//IL_0150: Unknown result type (might be due to invalid IL or missing references)
			//IL_0155: Unknown result type (might be due to invalid IL or missing references)
			//IL_015b: Expected O, but got Unknown
			//IL_0170: Unknown result type (might be due to invalid IL or missing references)
			//IL_0175: Unknown result type (might be due to invalid IL or missing references)
			//IL_017b: Expected O, but got Unknown
			//IL_0190: Unknown result type (might be due to invalid IL or missing references)
			//IL_0195: Unknown result type (might be due to invalid IL or missing references)
			//IL_019b: Expected O, but got Unknown
			//IL_01b0: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b5: Unknown result type (might be due to invalid IL or missing references)
			//IL_01bb: Expected O, but got Unknown
			//IL_01d0: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d5: Unknown result type (might be due to invalid IL or missing references)
			//IL_01db: Expected O, but got Unknown
			//IL_01f0: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_01fb: Expected O, but got Unknown
			//IL_0210: Unknown result type (might be due to invalid IL or missing references)
			//IL_0215: Unknown result type (might be due to invalid IL or missing references)
			//IL_021b: Expected O, but got Unknown
			//IL_0230: Unknown result type (might be due to invalid IL or missing references)
			//IL_0235: Unknown result type (might be due to invalid IL or missing references)
			//IL_023b: Expected O, but got Unknown
			//IL_0250: Unknown result type (might be due to invalid IL or missing references)
			//IL_0255: Unknown result type (might be due to invalid IL or missing references)
			//IL_025b: Expected O, but got Unknown
			//IL_0270: Unknown result type (might be due to invalid IL or missing references)
			//IL_0275: Unknown result type (might be due to invalid IL or missing references)
			//IL_027b: Expected O, but got Unknown
			//IL_0290: Unknown result type (might be due to invalid IL or missing references)
			//IL_0295: Unknown result type (might be due to invalid IL or missing references)
			//IL_029b: Expected O, but got Unknown
			//IL_02b0: Unknown result type (might be due to invalid IL or missing references)
			//IL_02b5: Unknown result type (might be due to invalid IL or missing references)
			//IL_02bb: Expected O, but got Unknown
			//IL_02d0: Unknown result type (might be due to invalid IL or missing references)
			//IL_02d5: Unknown result type (might be due to invalid IL or missing references)
			//IL_02db: Expected O, but got Unknown
			//IL_02f0: Unknown result type (might be due to invalid IL or missing references)
			//IL_02f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_02fb: Expected O, but got Unknown
			//IL_0310: Unknown result type (might be due to invalid IL or missing references)
			//IL_0315: Unknown result type (might be due to invalid IL or missing references)
			//IL_031b: Expected O, but got Unknown
			//IL_0330: Unknown result type (might be due to invalid IL or missing references)
			//IL_0335: Unknown result type (might be due to invalid IL or missing references)
			//IL_033b: Expected O, but got Unknown
			//IL_0350: Unknown result type (might be due to invalid IL or missing references)
			//IL_0355: Unknown result type (might be due to invalid IL or missing references)
			//IL_035b: Expected O, but got Unknown
			//IL_0370: Unknown result type (might be due to invalid IL or missing references)
			//IL_0375: Unknown result type (might be due to invalid IL or missing references)
			//IL_037b: Expected O, but got Unknown
			//IL_0390: Unknown result type (might be due to invalid IL or missing references)
			//IL_0395: Unknown result type (might be due to invalid IL or missing references)
			//IL_039b: Expected O, but got Unknown
			//IL_03b0: Unknown result type (might be due to invalid IL or missing references)
			//IL_03b5: Unknown result type (might be due to invalid IL or missing references)
			//IL_03bb: Expected O, but got Unknown
			//IL_03d0: Unknown result type (might be due to invalid IL or missing references)
			//IL_03d5: Unknown result type (might be due to invalid IL or missing references)
			//IL_03db: Expected O, but got Unknown
			//IL_03f0: Unknown result type (might be due to invalid IL or missing references)
			//IL_03f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_03fb: Expected O, but got Unknown
			//IL_0410: Unknown result type (might be due to invalid IL or missing references)
			//IL_0415: Unknown result type (might be due to invalid IL or missing references)
			//IL_041b: Expected O, but got Unknown
			//IL_0430: Unknown result type (might be due to invalid IL or missing references)
			//IL_0435: Unknown result type (might be due to invalid IL or missing references)
			//IL_043b: Expected O, but got Unknown
			//IL_0450: Unknown result type (might be due to invalid IL or missing references)
			//IL_0455: Unknown result type (might be due to invalid IL or missing references)
			//IL_045b: Expected O, but got Unknown
			//IL_0470: Unknown result type (might be due to invalid IL or missing references)
			//IL_0475: Unknown result type (might be due to invalid IL or missing references)
			//IL_047b: Expected O, but got Unknown
			//IL_0490: Unknown result type (might be due to invalid IL or missing references)
			//IL_0495: Unknown result type (might be due to invalid IL or missing references)
			//IL_049b: Expected O, but got Unknown
			//IL_04b0: Unknown result type (might be due to invalid IL or missing references)
			//IL_04b5: Unknown result type (might be due to invalid IL or missing references)
			//IL_04bb: Expected O, but got Unknown
			//IL_04d0: Unknown result type (might be due to invalid IL or missing references)
			//IL_04d5: Unknown result type (might be due to invalid IL or missing references)
			//IL_04db: Expected O, but got Unknown
			//IL_04f0: Unknown result type (might be due to invalid IL or missing references)
			//IL_04f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_04fb: Expected O, but got Unknown
			//IL_0510: Unknown result type (might be due to invalid IL or missing references)
			//IL_0515: Unknown result type (might be due to invalid IL or missing references)
			//IL_051b: Expected O, but got Unknown
			//IL_0530: Unknown result type (might be due to invalid IL or missing references)
			//IL_0535: Unknown result type (might be due to invalid IL or missing references)
			//IL_053b: Expected O, but got Unknown
			//IL_0550: Unknown result type (might be due to invalid IL or missing references)
			//IL_0555: Unknown result type (might be due to invalid IL or missing references)
			//IL_055b: Expected O, but got Unknown
			//IL_0570: Unknown result type (might be due to invalid IL or missing references)
			//IL_0575: Unknown result type (might be due to invalid IL or missing references)
			//IL_057b: Expected O, but got Unknown
			//IL_0590: Unknown result type (might be due to invalid IL or missing references)
			//IL_0595: Unknown result type (might be due to invalid IL or missing references)
			//IL_059b: Expected O, but got Unknown
			//IL_05b0: Unknown result type (might be due to invalid IL or missing references)
			//IL_05b5: Unknown result type (might be due to invalid IL or missing references)
			//IL_05bb: Expected O, but got Unknown
			//IL_05d0: Unknown result type (might be due to invalid IL or missing references)
			//IL_05d5: Unknown result type (might be due to invalid IL or missing references)
			//IL_05db: Expected O, but got Unknown
			//IL_05f0: Unknown result type (might be due to invalid IL or missing references)
			//IL_05f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_05fb: Expected O, but got Unknown
			//IL_0610: Unknown result type (might be due to invalid IL or missing references)
			//IL_0615: Unknown result type (might be due to invalid IL or missing references)
			//IL_061b: Expected O, but got Unknown
			//IL_0630: Unknown result type (might be due to invalid IL or missing references)
			//IL_0635: Unknown result type (might be due to invalid IL or missing references)
			//IL_063b: Expected O, but got Unknown
			//IL_0650: Unknown result type (might be due to invalid IL or missing references)
			//IL_0655: Unknown result type (might be due to invalid IL or missing references)
			//IL_065b: Expected O, but got Unknown
			//IL_0670: Unknown result type (might be due to invalid IL or missing references)
			//IL_0675: Unknown result type (might be due to invalid IL or missing references)
			//IL_067b: Expected O, but got Unknown
			//IL_0690: Unknown result type (might be due to invalid IL or missing references)
			//IL_0695: Unknown result type (might be due to invalid IL or missing references)
			//IL_069b: Expected O, but got Unknown
			//IL_06b0: Unknown result type (might be due to invalid IL or missing references)
			//IL_06b5: Unknown result type (might be due to invalid IL or missing references)
			//IL_06bb: Expected O, but got Unknown
			//IL_06d0: Unknown result type (might be due to invalid IL or missing references)
			//IL_06d5: Unknown result type (might be due to invalid IL or missing references)
			//IL_06db: Expected O, but got Unknown
			//IL_06f0: Unknown result type (might be due to invalid IL or missing references)
			//IL_06f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_06fb: Expected O, but got Unknown
			//IL_0710: Unknown result type (might be due to invalid IL or missing references)
			//IL_0715: Unknown result type (might be due to invalid IL or missing references)
			//IL_071b: Expected O, but got Unknown
			//IL_0730: Unknown result type (might be due to invalid IL or missing references)
			//IL_0735: Unknown result type (might be due to invalid IL or missing references)
			//IL_073b: Expected O, but got Unknown
			//IL_0750: Unknown result type (might be due to invalid IL or missing references)
			//IL_0755: Unknown result type (might be due to invalid IL or missing references)
			//IL_075b: Expected O, but got Unknown
			//IL_0770: Unknown result type (might be due to invalid IL or missing references)
			//IL_0775: Unknown result type (might be due to invalid IL or missing references)
			//IL_077b: Expected O, but got Unknown
			//IL_0790: Unknown result type (might be due to invalid IL or missing references)
			//IL_0795: Unknown result type (might be due to invalid IL or missing references)
			//IL_079b: Expected O, but got Unknown
			//IL_07b0: Unknown result type (might be due to invalid IL or missing references)
			//IL_07b5: Unknown result type (might be due to invalid IL or missing references)
			//IL_07bb: Expected O, but got Unknown
			//IL_07d0: Unknown result type (might be due to invalid IL or missing references)
			//IL_07d5: Unknown result type (might be due to invalid IL or missing references)
			//IL_07db: Expected O, but got Unknown
			//IL_07f0: Unknown result type (might be due to invalid IL or missing references)
			//IL_07f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_07fb: Expected O, but got Unknown
			//IL_0810: Unknown result type (might be due to invalid IL or missing references)
			//IL_0815: Unknown result type (might be due to invalid IL or missing references)
			//IL_081b: Expected O, but got Unknown
			//IL_0830: Unknown result type (might be due to invalid IL or missing references)
			//IL_0835: Unknown result type (might be due to invalid IL or missing references)
			//IL_083b: Expected O, but got Unknown
			//IL_0850: Unknown result type (might be due to invalid IL or missing references)
			//IL_0855: Unknown result type (might be due to invalid IL or missing references)
			//IL_085b: Expected O, but got Unknown
			//IL_0870: Unknown result type (might be due to invalid IL or missing references)
			//IL_0875: Unknown result type (might be due to invalid IL or missing references)
			//IL_087b: Expected O, but got Unknown
			//IL_0890: Unknown result type (might be due to invalid IL or missing references)
			//IL_0895: Unknown result type (might be due to invalid IL or missing references)
			//IL_089b: Expected O, but got Unknown
			//IL_08b0: Unknown result type (might be due to invalid IL or missing references)
			//IL_08b5: Unknown result type (might be due to invalid IL or missing references)
			//IL_08bb: Expected O, but got Unknown
			//IL_08d0: Unknown result type (might be due to invalid IL or missing references)
			//IL_08d5: Unknown result type (might be due to invalid IL or missing references)
			//IL_08db: Expected O, but got Unknown
			//IL_08f0: Unknown result type (might be due to invalid IL or missing references)
			//IL_08f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_08fb: Expected O, but got Unknown
			//IL_0910: Unknown result type (might be due to invalid IL or missing references)
			//IL_0915: Unknown result type (might be due to invalid IL or missing references)
			//IL_091b: Expected O, but got Unknown
			//IL_0930: Unknown result type (might be due to invalid IL or missing references)
			//IL_0935: Unknown result type (might be due to invalid IL or missing references)
			//IL_093b: Expected O, but got Unknown
			//IL_0950: Unknown result type (might be due to invalid IL or missing references)
			//IL_0955: Unknown result type (might be due to invalid IL or missing references)
			//IL_095b: Expected O, but got Unknown
			//IL_0970: Unknown result type (might be due to invalid IL or missing references)
			//IL_0975: Unknown result type (might be due to invalid IL or missing references)
			//IL_097b: Expected O, but got Unknown
			//IL_0990: Unknown result type (might be due to invalid IL or missing references)
			//IL_0995: Unknown result type (might be due to invalid IL or missing references)
			//IL_099b: Expected O, but got Unknown
			//IL_09b0: Unknown result type (might be due to invalid IL or missing references)
			//IL_09b5: Unknown result type (might be due to invalid IL or missing references)
			//IL_09bb: Expected O, but got Unknown
			//IL_09d0: Unknown result type (might be due to invalid IL or missing references)
			//IL_09d5: Unknown result type (might be due to invalid IL or missing references)
			//IL_09db: Expected O, but got Unknown
			//IL_09f0: Unknown result type (might be due to invalid IL or missing references)
			//IL_09f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_09fb: Expected O, but got Unknown
			//IL_0a10: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a15: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a1b: Expected O, but got Unknown
			//IL_0a30: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a35: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a3b: Expected O, but got Unknown
			//IL_0a50: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a55: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a5b: Expected O, but got Unknown
			//IL_0a70: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a75: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a7b: Expected O, but got Unknown
			//IL_0a90: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a95: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a9b: Expected O, but got Unknown
			//IL_0ab0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ab5: Unknown result type (might be due to invalid IL or missing references)
			//IL_0abb: Expected O, but got Unknown
			//IL_0ad0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ad5: Unknown result type (might be due to invalid IL or missing references)
			//IL_0adb: Expected O, but got Unknown
			//IL_0af0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0af5: Unknown result type (might be due to invalid IL or missing references)
			//IL_0afb: Expected O, but got Unknown
			object obj = <>O.<0>__BasicMeleeAttack_OnEnter;
			if (obj == null)
			{
				Manipulator val = BasicMeleeAttack_OnEnter;
				<>O.<0>__BasicMeleeAttack_OnEnter = val;
				obj = (object)val;
			}
			BasicMeleeAttack.OnEnter += (Manipulator)obj;
			object obj2 = <>O.<1>__GenericProjectileBaseState_FireProjectile;
			if (obj2 == null)
			{
				Manipulator val2 = GenericProjectileBaseState_FireProjectile;
				<>O.<1>__GenericProjectileBaseState_FireProjectile = val2;
				obj2 = (object)val2;
			}
			GenericProjectileBaseState.FireProjectile += (Manipulator)obj2;
			object obj3 = <>O.<2>__ArtifactShell_FireSolarFlares_FixedUpdate;
			if (obj3 == null)
			{
				Manipulator val3 = ArtifactShell_FireSolarFlares_FixedUpdate;
				<>O.<2>__ArtifactShell_FireSolarFlares_FixedUpdate = val3;
				obj3 = (object)val3;
			}
			FireSolarFlares.FixedUpdate += (Manipulator)obj3;
			object obj4 = <>O.<3>__AcidLarva_LarvaLeap_DetonateAuthority;
			if (obj4 == null)
			{
				Manipulator val4 = AcidLarva_LarvaLeap_DetonateAuthority;
				<>O.<3>__AcidLarva_LarvaLeap_DetonateAuthority = val4;
				obj4 = (object)val4;
			}
			LarvaLeap.DetonateAuthority += (Manipulator)obj4;
			object obj5 = <>O.<4>__BeetleGuardMonster_GroundSlam_OnEnter;
			if (obj5 == null)
			{
				Manipulator val5 = BeetleGuardMonster_GroundSlam_OnEnter;
				<>O.<4>__BeetleGuardMonster_GroundSlam_OnEnter = val5;
				obj5 = (object)val5;
			}
			GroundSlam.OnEnter += (Manipulator)obj5;
			object obj6 = <>O.<5>__BeetleGuardMonster_FireSunder_FixedUpdate;
			if (obj6 == null)
			{
				Manipulator val6 = BeetleGuardMonster_FireSunder_FixedUpdate;
				<>O.<5>__BeetleGuardMonster_FireSunder_FixedUpdate = val6;
				obj6 = (object)val6;
			}
			FireSunder.FixedUpdate += (Manipulator)obj6;
			object obj7 = <>O.<6>__BeetleMonster_HeadbuttState_OnEnter;
			if (obj7 == null)
			{
				Manipulator val7 = BeetleMonster_HeadbuttState_OnEnter;
				<>O.<6>__BeetleMonster_HeadbuttState_OnEnter = val7;
				obj7 = (object)val7;
			}
			HeadbuttState.OnEnter += (Manipulator)obj7;
			object obj8 = <>O.<7>__BeetleQueenMonster_FireSpit_FireBlob;
			if (obj8 == null)
			{
				Manipulator val8 = BeetleQueenMonster_FireSpit_FireBlob;
				<>O.<7>__BeetleQueenMonster_FireSpit_FireBlob = val8;
				obj8 = (object)val8;
			}
			FireSpit.FireBlob += (Manipulator)obj8;
			object obj9 = <>O.<8>__Bell_BellWeapon_ChargeTrioBomb_FixedUpdate;
			if (obj9 == null)
			{
				Manipulator val9 = Bell_BellWeapon_ChargeTrioBomb_FixedUpdate;
				<>O.<8>__Bell_BellWeapon_ChargeTrioBomb_FixedUpdate = val9;
				obj9 = (object)val9;
			}
			ChargeTrioBomb.FixedUpdate += (Manipulator)obj9;
			object obj10 = <>O.<9>__Bison_Headbutt_OnEnter;
			if (obj10 == null)
			{
				Manipulator val10 = Bison_Headbutt_OnEnter;
				<>O.<9>__Bison_Headbutt_OnEnter = val10;
				obj10 = (object)val10;
			}
			Headbutt.OnEnter += (Manipulator)obj10;
			object obj11 = <>O.<10>__Bison_Charge_ResetOverlapAttack;
			if (obj11 == null)
			{
				Manipulator val11 = Bison_Charge_ResetOverlapAttack;
				<>O.<10>__Bison_Charge_ResetOverlapAttack = val11;
				obj11 = (object)val11;
			}
			Charge.ResetOverlapAttack += (Manipulator)obj11;
			object obj12 = <>O.<11>__BrotherHaunt_FireRandomProjectiles_FireProjectile;
			if (obj12 == null)
			{
				Manipulator val12 = BrotherHaunt_FireRandomProjectiles_FireProjectile;
				<>O.<11>__BrotherHaunt_FireRandomProjectiles_FireProjectile = val12;
				obj12 = (object)val12;
			}
			FireRandomProjectiles.FireProjectile += (Manipulator)obj12;
			object obj13 = <>O.<12>__BrotherMonster_ExitSkyLeap_FireRingAuthority;
			if (obj13 == null)
			{
				Manipulator val13 = BrotherMonster_ExitSkyLeap_FireRingAuthority;
				<>O.<12>__BrotherMonster_ExitSkyLeap_FireRingAuthority = val13;
				obj13 = (object)val13;
			}
			ExitSkyLeap.FireRingAuthority += (Manipulator)obj13;
			object obj14 = <>O.<13>__BrotherMonster_FistSlam_FixedUpdate;
			if (obj14 == null)
			{
				Manipulator val14 = BrotherMonster_FistSlam_FixedUpdate;
				<>O.<13>__BrotherMonster_FistSlam_FixedUpdate = val14;
				obj14 = (object)val14;
			}
			FistSlam.FixedUpdate += (Manipulator)obj14;
			object obj15 = <>O.<14>__BrotherMonster_WeaponSlam_OnEnter;
			if (obj15 == null)
			{
				Manipulator val15 = BrotherMonster_WeaponSlam_OnEnter;
				<>O.<14>__BrotherMonster_WeaponSlam_OnEnter = val15;
				obj15 = (object)val15;
			}
			WeaponSlam.OnEnter += (Manipulator)obj15;
			object obj16 = <>O.<15>__BrotherMonster_WeaponSlam_FixedUpdate;
			if (obj16 == null)
			{
				Manipulator val16 = BrotherMonster_WeaponSlam_FixedUpdate;
				<>O.<15>__BrotherMonster_WeaponSlam_FixedUpdate = val16;
				obj16 = (object)val16;
			}
			WeaponSlam.FixedUpdate += (Manipulator)obj16;
			object obj17 = <>O.<16>__BrotherMonster_UltChannelState_FireWave;
			if (obj17 == null)
			{
				Manipulator val17 = BrotherMonster_UltChannelState_FireWave;
				<>O.<16>__BrotherMonster_UltChannelState_FireWave = val17;
				obj17 = (object)val17;
			}
			UltChannelState.FireWave += (Manipulator)obj17;
			object obj18 = <>O.<17>__BrotherMonster_Weapon_FireLunarShards_OnEnter;
			if (obj18 == null)
			{
				Manipulator val18 = BrotherMonster_Weapon_FireLunarShards_OnEnter;
				<>O.<17>__BrotherMonster_Weapon_FireLunarShards_OnEnter = val18;
				obj18 = (object)val18;
			}
			FireLunarShards.OnEnter += (Manipulator)obj18;
			object obj19 = <>O.<18>__ChildMonster_SparkBallFire_FireBomb;
			if (obj19 == null)
			{
				Manipulator val19 = ChildMonster_SparkBallFire_FireBomb;
				<>O.<18>__ChildMonster_SparkBallFire_FireBomb = val19;
				obj19 = (object)val19;
			}
			SparkBallFire.FireBomb += (Manipulator)obj19;
			object obj20 = <>O.<19>__ClayBoss_FireTarball_FireSingleTarball;
			if (obj20 == null)
			{
				Manipulator val20 = ClayBoss_FireTarball_FireSingleTarball;
				<>O.<19>__ClayBoss_FireTarball_FireSingleTarball = val20;
				obj20 = (object)val20;
			}
			FireTarball.FireSingleTarball += (Manipulator)obj20;
			object obj21 = <>O.<20>__TarTetherController_DoDamageTick;
			if (obj21 == null)
			{
				Manipulator val21 = TarTetherController_DoDamageTick;
				<>O.<20>__TarTetherController_DoDamageTick = val21;
				obj21 = (object)val21;
			}
			TarTetherController.DoDamageTick += (Manipulator)obj21;
			object obj22 = <>O.<21>__ClayBoss_ClayBossWeapon_FireBombardment_FireGrenade;
			if (obj22 == null)
			{
				Manipulator val22 = ClayBoss_ClayBossWeapon_FireBombardment_FireGrenade;
				<>O.<21>__ClayBoss_ClayBossWeapon_FireBombardment_FireGrenade = val22;
				obj22 = (object)val22;
			}
			FireBombardment.FireGrenade += (Manipulator)obj22;
			object obj23 = <>O.<22>__ClayBruiser_Weapon_MinigunFire_OnFireAuthority;
			if (obj23 == null)
			{
				Manipulator val23 = ClayBruiser_Weapon_MinigunFire_OnFireAuthority;
				<>O.<22>__ClayBruiser_Weapon_MinigunFire_OnFireAuthority = val23;
				obj23 = (object)val23;
			}
			MinigunFire.OnFireAuthority += (Manipulator)obj23;
			object obj24 = <>O.<23>__ClayGrenadier_FaceSlam_FixedUpdate;
			if (obj24 == null)
			{
				Manipulator val24 = ClayGrenadier_FaceSlam_FixedUpdate;
				<>O.<23>__ClayGrenadier_FaceSlam_FixedUpdate = val24;
				obj24 = (object)val24;
			}
			FaceSlam.FixedUpdate += (Manipulator)obj24;
			object obj25 = <>O.<24>__Drone_DroneWeapon_FireGatling_OnEnter;
			if (obj25 == null)
			{
				Manipulator val25 = Drone_DroneWeapon_FireGatling_OnEnter;
				<>O.<24>__Drone_DroneWeapon_FireGatling_OnEnter = val25;
				obj25 = (object)val25;
			}
			FireGatling.OnEnter += (Manipulator)obj25;
			object obj26 = <>O.<25>__Drone_DroneWeapon_FireMegaTurret_FireBullet;
			if (obj26 == null)
			{
				Manipulator val26 = Drone_DroneWeapon_FireMegaTurret_FireBullet;
				<>O.<25>__Drone_DroneWeapon_FireMegaTurret_FireBullet = val26;
				obj26 = (object)val26;
			}
			FireMegaTurret.FireBullet += (Manipulator)obj26;
			object obj27 = <>O.<26>__Drone_DroneWeapon_FireMissileBarrage_FireMissile;
			if (obj27 == null)
			{
				Manipulator val27 = Drone_DroneWeapon_FireMissileBarrage_FireMissile;
				<>O.<26>__Drone_DroneWeapon_FireMissileBarrage_FireMissile = val27;
				obj27 = (object)val27;
			}
			FireMissileBarrage.FireMissile += (Manipulator)obj27;
			object obj28 = <>O.<27>__Drone_DroneWeapon_FireTurret_OnEnter;
			if (obj28 == null)
			{
				Manipulator val28 = Drone_DroneWeapon_FireTurret_OnEnter;
				<>O.<27>__Drone_DroneWeapon_FireTurret_OnEnter = val28;
				obj28 = (object)val28;
			}
			FireTurret.OnEnter += (Manipulator)obj28;
			object obj29 = <>O.<28>__Drone_DroneWeapon_FireTwinRocket_FireProjectile;
			if (obj29 == null)
			{
				Manipulator val29 = Drone_DroneWeapon_FireTwinRocket_FireProjectile;
				<>O.<28>__Drone_DroneWeapon_FireTwinRocket_FireProjectile = val29;
				obj29 = (object)val29;
			}
			FireTwinRocket.FireProjectile += (Manipulator)obj29;
			object obj30 = <>O.<29>__FalseSonBoss_CorruptedPaths_DetonateAuthority;
			if (obj30 == null)
			{
				Manipulator val30 = FalseSonBoss_CorruptedPaths_DetonateAuthority;
				<>O.<29>__FalseSonBoss_CorruptedPaths_DetonateAuthority = val30;
				obj30 = (object)val30;
			}
			CorruptedPaths.DetonateAuthority += (Manipulator)obj30;
			object obj31 = <>O.<30>__FalseSonBoss_CorruptedPathsDash_FixedUpdate;
			if (obj31 == null)
			{
				Manipulator val31 = FalseSonBoss_CorruptedPathsDash_FixedUpdate;
				<>O.<30>__FalseSonBoss_CorruptedPathsDash_FixedUpdate = val31;
				obj31 = (object)val31;
			}
			CorruptedPathsDash.FixedUpdate += (Manipulator)obj31;
			object obj32 = <>O.<31>__FalseSonBoss_FissureSlam_FixedUpdate;
			if (obj32 == null)
			{
				Manipulator val32 = FalseSonBoss_FissureSlam_FixedUpdate;
				<>O.<31>__FalseSonBoss_FissureSlam_FixedUpdate = val32;
				obj32 = (object)val32;
			}
			FissureSlam.FixedUpdate += (Manipulator)obj32;
			object obj33 = <>O.<32>__FalseSonBoss_FissureSlam_DetonateAuthority;
			if (obj33 == null)
			{
				Manipulator val33 = FalseSonBoss_FissureSlam_DetonateAuthority;
				<>O.<32>__FalseSonBoss_FissureSlam_DetonateAuthority = val33;
				obj33 = (object)val33;
			}
			FissureSlam.DetonateAuthority += (Manipulator)obj33;
			object obj34 = <>O.<33>__FalseSonBoss_LunarGazeFire_FireBullet;
			if (obj34 == null)
			{
				Manipulator val34 = FalseSonBoss_LunarGazeFire_FireBullet;
				<>O.<33>__FalseSonBoss_LunarGazeFire_FireBullet = val34;
				obj34 = (object)val34;
			}
			LunarGazeFire.FireBullet += (Manipulator)obj34;
			object obj35 = <>O.<34>__FalseSonBoss_LunarRain_DetonateAuthority;
			if (obj35 == null)
			{
				Manipulator val35 = FalseSonBoss_LunarRain_DetonateAuthority;
				<>O.<34>__FalseSonBoss_LunarRain_DetonateAuthority = val35;
				obj35 = (object)val35;
			}
			LunarRain.DetonateAuthority += (Manipulator)obj35;
			object obj36 = <>O.<35>__FalseSonBoss_PrimeDevastator_DetonateAuthority;
			if (obj36 == null)
			{
				Manipulator val36 = FalseSonBoss_PrimeDevastator_DetonateAuthority;
				<>O.<35>__FalseSonBoss_PrimeDevastator_DetonateAuthority = val36;
				obj36 = (object)val36;
			}
			PrimeDevastator.DetonateAuthority += (Manipulator)obj36;
			object obj37 = <>O.<36>__FalseSonBoss_SwatAwayPlayersSlam_OnEnter;
			if (obj37 == null)
			{
				Manipulator val37 = FalseSonBoss_SwatAwayPlayersSlam_OnEnter;
				<>O.<36>__FalseSonBoss_SwatAwayPlayersSlam_OnEnter = val37;
				obj37 = (object)val37;
			}
			SwatAwayPlayersSlam.OnEnter += (Manipulator)obj37;
			object obj38 = <>O.<37>__FalseSonBoss_TaintedOffering_FireProjectile;
			if (obj38 == null)
			{
				Manipulator val38 = FalseSonBoss_TaintedOffering_FireProjectile;
				<>O.<37>__FalseSonBoss_TaintedOffering_FireProjectile = val38;
				obj38 = (object)val38;
			}
			TaintedOffering.FireProjectile += (Manipulator)obj38;
			object obj39 = <>O.<38>__FlyingVermin_Weapon_Spit_FireProjectile;
			if (obj39 == null)
			{
				Manipulator val39 = FlyingVermin_Weapon_Spit_FireProjectile;
				<>O.<38>__FlyingVermin_Weapon_Spit_FireProjectile = val39;
				obj39 = (object)val39;
			}
			Spit.FireProjectile += (Manipulator)obj39;
			object obj40 = <>O.<39>__GolemMonster_ClapState_FixedUpdate;
			if (obj40 == null)
			{
				Manipulator val40 = GolemMonster_ClapState_FixedUpdate;
				<>O.<39>__GolemMonster_ClapState_FixedUpdate = val40;
				obj40 = (object)val40;
			}
			ClapState.FixedUpdate += (Manipulator)obj40;
			object obj41 = <>O.<40>__GolemMonster_FireLaser_OnEnter;
			if (obj41 == null)
			{
				Manipulator val41 = GolemMonster_FireLaser_OnEnter;
				<>O.<40>__GolemMonster_FireLaser_OnEnter = val41;
				obj41 = (object)val41;
			}
			FireLaser.OnEnter += (Manipulator)obj41;
			object obj42 = <>O.<41>__GrandParentBoss_GroundSwipe_FixedUpdate;
			if (obj42 == null)
			{
				Manipulator val42 = GrandParentBoss_GroundSwipe_FixedUpdate;
				<>O.<41>__GrandParentBoss_GroundSwipe_FixedUpdate = val42;
				obj42 = (object)val42;
			}
			GroundSwipe.FixedUpdate += (Manipulator)obj42;
			object obj43 = <>O.<42>__GravekeeperBoss_FireHook_FireSingleHook;
			if (obj43 == null)
			{
				Manipulator val43 = GravekeeperBoss_FireHook_FireSingleHook;
				<>O.<42>__GravekeeperBoss_FireHook_FireSingleHook = val43;
				obj43 = (object)val43;
			}
			FireHook.FireSingleHook += (Manipulator)obj43;
			object obj44 = <>O.<43>__GravekeeperMonster_Weapon_GravekeeperBarrage_FireBlob;
			if (obj44 == null)
			{
				Manipulator val44 = GravekeeperMonster_Weapon_GravekeeperBarrage_FireBlob;
				<>O.<43>__GravekeeperMonster_Weapon_GravekeeperBarrage_FireBlob = val44;
				obj44 = (object)val44;
			}
			GravekeeperBarrage.FireBlob += (Manipulator)obj44;
			object obj45 = <>O.<44>__GreaterWispMonster_FireCannons_OnEnter;
			if (obj45 == null)
			{
				Manipulator val45 = GreaterWispMonster_FireCannons_OnEnter;
				<>O.<44>__GreaterWispMonster_FireCannons_OnEnter = val45;
				obj45 = (object)val45;
			}
			FireCannons.OnEnter += (Manipulator)obj45;
			object obj46 = <>O.<45>__Halcyonite_TriLaser_FireTriLaser;
			if (obj46 == null)
			{
				Manipulator val46 = Halcyonite_TriLaser_FireTriLaser;
				<>O.<45>__Halcyonite_TriLaser_FireTriLaser = val46;
				obj46 = (object)val46;
			}
			TriLaser.FireTriLaser += (Manipulator)obj46;
			object obj47 = <>O.<46>__Halcyonite_WhirlwindRush_FixedUpdate;
			if (obj47 == null)
			{
				Manipulator val47 = Halcyonite_WhirlwindRush_FixedUpdate;
				<>O.<46>__Halcyonite_WhirlwindRush_FixedUpdate = val47;
				obj47 = (object)val47;
			}
			WhirlwindRush.FixedUpdate += (Manipulator)obj47;
			object obj48 = <>O.<47>__HermitCrab_FireMortar_Fire;
			if (obj48 == null)
			{
				Manipulator val48 = HermitCrab_FireMortar_Fire;
				<>O.<47>__HermitCrab_FireMortar_Fire = val48;
				obj48 = (object)val48;
			}
			FireMortar.Fire += (Manipulator)obj48;
			object obj49 = <>O.<48>__ImpBossMonster_FireVoidspikes_FireSpikeAuthority;
			if (obj49 == null)
			{
				Manipulator val49 = ImpBossMonster_FireVoidspikes_FireSpikeAuthority;
				<>O.<48>__ImpBossMonster_FireVoidspikes_FireSpikeAuthority = val49;
				obj49 = (object)val49;
			}
			FireVoidspikes.FireSpikeAuthority += (Manipulator)obj49;
			object obj50 = <>O.<49>__ImpBossMonster_FireVoidspikes_OnEnter;
			if (obj50 == null)
			{
				Manipulator val50 = ImpBossMonster_FireVoidspikes_OnEnter;
				<>O.<49>__ImpBossMonster_FireVoidspikes_OnEnter = val50;
				obj50 = (object)val50;
			}
			FireVoidspikes.OnEnter += (Manipulator)obj50;
			object obj51 = <>O.<50>__ImpBossMonster_GroundPound_OnEnter;
			if (obj51 == null)
			{
				Manipulator val51 = ImpBossMonster_GroundPound_OnEnter;
				<>O.<50>__ImpBossMonster_GroundPound_OnEnter = val51;
				obj51 = (object)val51;
			}
			GroundPound.OnEnter += (Manipulator)obj51;
			object obj52 = <>O.<51>__ImpMonster_DoubleSlash_OnEnter;
			if (obj52 == null)
			{
				Manipulator val52 = ImpMonster_DoubleSlash_OnEnter;
				<>O.<51>__ImpMonster_DoubleSlash_OnEnter = val52;
				obj52 = (object)val52;
			}
			DoubleSlash.OnEnter += (Manipulator)obj52;
			object obj53 = <>O.<52>__JellyfishMonster_JellyNova_Detonate;
			if (obj53 == null)
			{
				Manipulator val53 = JellyfishMonster_JellyNova_Detonate;
				<>O.<52>__JellyfishMonster_JellyNova_Detonate = val53;
				obj53 = (object)val53;
			}
			JellyNova.Detonate += (Manipulator)obj53;
			object obj54 = <>O.<53>__LemurianBruiserMonster_FireMegaFireball_FixedUpdate;
			if (obj54 == null)
			{
				Manipulator val54 = LemurianBruiserMonster_FireMegaFireball_FixedUpdate;
				<>O.<53>__LemurianBruiserMonster_FireMegaFireball_FixedUpdate = val54;
				obj54 = (object)val54;
			}
			FireMegaFireball.FixedUpdate += (Manipulator)obj54;
			object obj55 = <>O.<54>__LemurianBruiserMonster_Flamebreath_FireFlame;
			if (obj55 == null)
			{
				Manipulator val55 = LemurianBruiserMonster_Flamebreath_FireFlame;
				<>O.<54>__LemurianBruiserMonster_Flamebreath_FireFlame = val55;
				obj55 = (object)val55;
			}
			Flamebreath.FireFlame += (Manipulator)obj55;
			object obj56 = <>O.<55>__LemurianMonster_Bite_OnEnter;
			if (obj56 == null)
			{
				Manipulator val56 = LemurianMonster_Bite_OnEnter;
				<>O.<55>__LemurianMonster_Bite_OnEnter = val56;
				obj56 = (object)val56;
			}
			Bite.OnEnter += (Manipulator)obj56;
			object obj57 = <>O.<56>__LemurianMonster_FireFireball_OnEnter;
			if (obj57 == null)
			{
				Manipulator val57 = LemurianMonster_FireFireball_OnEnter;
				<>O.<56>__LemurianMonster_FireFireball_OnEnter = val57;
				obj57 = (object)val57;
			}
			FireFireball.OnEnter += (Manipulator)obj57;
			object obj58 = <>O.<57>__LunarGolem_FireTwinShots_FireSingle;
			if (obj58 == null)
			{
				Manipulator val58 = LunarGolem_FireTwinShots_FireSingle;
				<>O.<57>__LunarGolem_FireTwinShots_FireSingle = val58;
				obj58 = (object)val58;
			}
			FireTwinShots.FireSingle += (Manipulator)obj58;
			object obj59 = <>O.<58>__LunarWisp_FireLunarGuns_OnFireAuthority;
			if (obj59 == null)
			{
				Manipulator val59 = LunarWisp_FireLunarGuns_OnFireAuthority;
				<>O.<58>__LunarWisp_FireLunarGuns_OnFireAuthority = val59;
				obj59 = (object)val59;
			}
			FireLunarGuns.OnFireAuthority += (Manipulator)obj59;
			object obj60 = <>O.<59>__LunarWisp_SeekingBomb_FireBomb;
			if (obj60 == null)
			{
				Manipulator val60 = LunarWisp_SeekingBomb_FireBomb;
				<>O.<59>__LunarWisp_SeekingBomb_FireBomb = val60;
				obj60 = (object)val60;
			}
			SeekingBomb.FireBomb += (Manipulator)obj60;
			object obj61 = <>O.<60>__MajorConstruct_Weapon_FireLaser_ModifyBullet;
			if (obj61 == null)
			{
				Manipulator val61 = MajorConstruct_Weapon_FireLaser_ModifyBullet;
				<>O.<60>__MajorConstruct_Weapon_FireLaser_ModifyBullet = val61;
				obj61 = (object)val61;
			}
			FireLaser.ModifyBullet += (Manipulator)obj61;
			object obj62 = <>O.<61>__MiniMushroom_SporeGrenade_FireGrenade;
			if (obj62 == null)
			{
				Manipulator val62 = MiniMushroom_SporeGrenade_FireGrenade;
				<>O.<61>__MiniMushroom_SporeGrenade_FireGrenade = val62;
				obj62 = (object)val62;
			}
			SporeGrenade.FireGrenade += (Manipulator)obj62;
			object obj63 = <>O.<62>__NullifierMonster_FirePortalBomb_FireBomb;
			if (obj63 == null)
			{
				Manipulator val63 = NullifierMonster_FirePortalBomb_FireBomb;
				<>O.<62>__NullifierMonster_FirePortalBomb_FireBomb = val63;
				obj63 = (object)val63;
			}
			FirePortalBomb.FireBomb += (Manipulator)obj63;
			object obj64 = <>O.<63>__ParentMonster_GroundSlam_FixedUpdate;
			if (obj64 == null)
			{
				Manipulator val64 = ParentMonster_GroundSlam_FixedUpdate;
				<>O.<63>__ParentMonster_GroundSlam_FixedUpdate = val64;
				obj64 = (object)val64;
			}
			GroundSlam.FixedUpdate += (Manipulator)obj64;
			object obj65 = <>O.<64>__RoboBallBoss_Weapon_FireDelayKnockup_OnEnter;
			if (obj65 == null)
			{
				Manipulator val65 = RoboBallBoss_Weapon_FireDelayKnockup_OnEnter;
				<>O.<64>__RoboBallBoss_Weapon_FireDelayKnockup_OnEnter = val65;
				obj65 = (object)val65;
			}
			FireDelayKnockup.OnEnter += (Manipulator)obj65;
			object obj66 = <>O.<65>__RoboBallBoss_Weapon_FireEyeBlast_FixedUpdate;
			if (obj66 == null)
			{
				Manipulator val66 = RoboBallBoss_Weapon_FireEyeBlast_FixedUpdate;
				<>O.<65>__RoboBallBoss_Weapon_FireEyeBlast_FixedUpdate = val66;
				obj66 = (object)val66;
			}
			FireEyeBlast.FixedUpdate += (Manipulator)obj66;
			object obj67 = <>O.<66>__RoboBallMini_Weapon_FireEyeBeam_ModifyBullet;
			if (obj67 == null)
			{
				Manipulator val67 = RoboBallMini_Weapon_FireEyeBeam_ModifyBullet;
				<>O.<66>__RoboBallMini_Weapon_FireEyeBeam_ModifyBullet = val67;
				obj67 = (object)val67;
			}
			FireEyeBeam.ModifyBullet += (Manipulator)obj67;
			object obj68 = <>O.<67>__ScavMonster_FireEnergyCannon_OnEnter;
			if (obj68 == null)
			{
				Manipulator val68 = ScavMonster_FireEnergyCannon_OnEnter;
				<>O.<67>__ScavMonster_FireEnergyCannon_OnEnter = val68;
				obj68 = (object)val68;
			}
			FireEnergyCannon.OnEnter += (Manipulator)obj68;
			object obj69 = <>O.<68>__ScavMonster_ThrowSack_Fire;
			if (obj69 == null)
			{
				Manipulator val69 = ScavMonster_ThrowSack_Fire;
				<>O.<68>__ScavMonster_ThrowSack_Fire = val69;
				obj69 = (object)val69;
			}
			ThrowSack.Fire += (Manipulator)obj69;
			object obj70 = <>O.<69>__Scorchling_ScorchlingLavaBomb_Spit;
			if (obj70 == null)
			{
				Manipulator val70 = Scorchling_ScorchlingLavaBomb_Spit;
				<>O.<69>__Scorchling_ScorchlingLavaBomb_Spit = val70;
				obj70 = (object)val70;
			}
			ScorchlingLavaBomb.Spit += (Manipulator)obj70;
			object obj71 = <>O.<70>__Squid_SquidWeapon_FireSpine_FireOrbArrow;
			if (obj71 == null)
			{
				Manipulator val71 = Squid_SquidWeapon_FireSpine_FireOrbArrow;
				<>O.<70>__Squid_SquidWeapon_FireSpine_FireOrbArrow = val71;
				obj71 = (object)val71;
			}
			FireSpine.FireOrbArrow += (Manipulator)obj71;
			object obj72 = <>O.<71>__TitanMonster_FireFist_PlaceSingleDelayBlast;
			if (obj72 == null)
			{
				Manipulator val72 = TitanMonster_FireFist_PlaceSingleDelayBlast;
				<>O.<71>__TitanMonster_FireFist_PlaceSingleDelayBlast = val72;
				obj72 = (object)val72;
			}
			FireFist.PlaceSingleDelayBlast += (Manipulator)obj72;
			object obj73 = <>O.<72>__TitanMonster_FireGoldMegaLaser_FixedUpdate;
			if (obj73 == null)
			{
				Manipulator val73 = TitanMonster_FireGoldMegaLaser_FixedUpdate;
				<>O.<72>__TitanMonster_FireGoldMegaLaser_FixedUpdate = val73;
				obj73 = (object)val73;
			}
			FireGoldMegaLaser.FixedUpdate += (Manipulator)obj73;
			object obj74 = <>O.<73>__TitanMonster_FireMegaLaser_FireBullet;
			if (obj74 == null)
			{
				Manipulator val74 = TitanMonster_FireMegaLaser_FireBullet;
				<>O.<73>__TitanMonster_FireMegaLaser_FireBullet = val74;
				obj74 = (object)val74;
			}
			FireMegaLaser.FireBullet += (Manipulator)obj74;
			object obj75 = <>O.<74>__TitanRockController_Fire;
			if (obj75 == null)
			{
				Manipulator val75 = TitanRockController_Fire;
				<>O.<74>__TitanRockController_Fire = val75;
				obj75 = (object)val75;
			}
			TitanRockController.Fire += (Manipulator)obj75;
			object obj76 = <>O.<75>__UrchinTurret_Weapon_MinigunFire_OnFireAuthority;
			if (obj76 == null)
			{
				Manipulator val76 = UrchinTurret_Weapon_MinigunFire_OnFireAuthority;
				<>O.<75>__UrchinTurret_Weapon_MinigunFire_OnFireAuthority = val76;
				obj76 = (object)val76;
			}
			MinigunFire.OnFireAuthority += (Manipulator)obj76;
			object obj77 = <>O.<76>__VagrantMonster_FireMegaNova_Detonate;
			if (obj77 == null)
			{
				Manipulator val77 = VagrantMonster_FireMegaNova_Detonate;
				<>O.<76>__VagrantMonster_FireMegaNova_Detonate = val77;
				obj77 = (object)val77;
			}
			FireMegaNova.Detonate += (Manipulator)obj77;
			object obj78 = <>O.<77>__VagrantMonster_FireTrackingBomb_FireBomb;
			if (obj78 == null)
			{
				Manipulator val78 = VagrantMonster_FireTrackingBomb_FireBomb;
				<>O.<77>__VagrantMonster_FireTrackingBomb_FireBomb = val78;
				obj78 = (object)val78;
			}
			FireTrackingBomb.FireBomb += (Manipulator)obj78;
			object obj79 = <>O.<78>__VagrantMonster_Weapon_JellyBarrage_FireBlob;
			if (obj79 == null)
			{
				Manipulator val79 = VagrantMonster_Weapon_JellyBarrage_FireBlob;
				<>O.<78>__VagrantMonster_Weapon_JellyBarrage_FireBlob = val79;
				obj79 = (object)val79;
			}
			JellyBarrage.FireBlob += (Manipulator)obj79;
			object obj80 = <>O.<79>__VoidInfestor_Infest_OnEnter;
			if (obj80 == null)
			{
				Manipulator val80 = VoidInfestor_Infest_OnEnter;
				<>O.<79>__VoidInfestor_Infest_OnEnter = val80;
				obj80 = (object)val80;
			}
			Infest.OnEnter += (Manipulator)obj80;
			object obj81 = <>O.<80>__VoidJailer_Weapon_Capture2_OnEnter;
			if (obj81 == null)
			{
				Manipulator val81 = VoidJailer_Weapon_Capture2_OnEnter;
				<>O.<80>__VoidJailer_Weapon_Capture2_OnEnter = val81;
				obj81 = (object)val81;
			}
			Capture2.OnEnter += (Manipulator)obj81;
			object obj82 = <>O.<81>__VoidMegaCrab_BackWeapon_FireVoidMissiles_FireMissile;
			if (obj82 == null)
			{
				Manipulator val82 = VoidMegaCrab_BackWeapon_FireVoidMissiles_FireMissile;
				<>O.<81>__VoidMegaCrab_BackWeapon_FireVoidMissiles_FireMissile = val82;
				obj82 = (object)val82;
			}
			FireVoidMissiles.FireMissile += (Manipulator)obj82;
			object obj83 = <>O.<82>__VoidMegaCrab_Weapon_FireCrabCannonBase_FireProjectile;
			if (obj83 == null)
			{
				Manipulator val83 = VoidMegaCrab_Weapon_FireCrabCannonBase_FireProjectile;
				<>O.<82>__VoidMegaCrab_Weapon_FireCrabCannonBase_FireProjectile = val83;
				obj83 = (object)val83;
			}
			FireCrabCannonBase.FireProjectile += (Manipulator)obj83;
			object obj84 = <>O.<83>__VoidRaidCrab_SpinBeamAttack_FireBeamBulletAuthority;
			if (obj84 == null)
			{
				Manipulator val84 = VoidRaidCrab_SpinBeamAttack_FireBeamBulletAuthority;
				<>O.<83>__VoidRaidCrab_SpinBeamAttack_FireBeamBulletAuthority = val84;
				obj84 = (object)val84;
			}
			SpinBeamAttack.FireBeamBulletAuthority += (Manipulator)obj84;
			object obj85 = <>O.<84>__VoidRaidCrab_Weapon_FireMissiles_FixedUpdate;
			if (obj85 == null)
			{
				Manipulator val85 = VoidRaidCrab_Weapon_FireMissiles_FixedUpdate;
				<>O.<84>__VoidRaidCrab_Weapon_FireMissiles_FixedUpdate = val85;
				obj85 = (object)val85;
			}
			FireMissiles.FixedUpdate += (Manipulator)obj85;
			object obj86 = <>O.<85>__VoidRaidCrab_Weapon_BaseFireMultiBeam_OnEnter;
			if (obj86 == null)
			{
				Manipulator val86 = VoidRaidCrab_Weapon_BaseFireMultiBeam_OnEnter;
				<>O.<85>__VoidRaidCrab_Weapon_BaseFireMultiBeam_OnEnter = val86;
				obj86 = (object)val86;
			}
			BaseFireMultiBeam.OnEnter += (Manipulator)obj86;
			object obj87 = <>O.<86>__Vulture_Weapon_FireWindblade_OnEnter;
			if (obj87 == null)
			{
				Manipulator val87 = Vulture_Weapon_FireWindblade_OnEnter;
				<>O.<86>__Vulture_Weapon_FireWindblade_OnEnter = val87;
				obj87 = (object)val87;
			}
			FireWindblade.OnEnter += (Manipulator)obj87;
			object obj88 = <>O.<87>__Wisp1Monster_FireEmbers_OnEnter;
			if (obj88 == null)
			{
				Manipulator val88 = Wisp1Monster_FireEmbers_OnEnter;
				<>O.<87>__Wisp1Monster_FireEmbers_OnEnter = val88;
				obj88 = (object)val88;
			}
			FireEmbers.OnEnter += (Manipulator)obj88;
		}

		private static void BasicMeleeAttack_OnEnter(ILContext il)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			//IL_008a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0096: Unknown result type (might be due to invalid IL or missing references)
			ILCursor val = new ILCursor(il);
			if (!val.TryGotoNext((MoveType)2, new Func<Instruction, bool>[3]
			{
				(Instruction x) => ILPatternMatchingExt.MatchLdcI4(x, 0),
				(Instruction x) => ILPatternMatchingExt.MatchCall<DamageTypeCombo>(x, "op_Implicit"),
				(Instruction x) => ILPatternMatchingExt.MatchStfld<OverlapAttack>(x, "damageType")
			}))
			{
				Util.LogILError("GenericProjectileBaseState.FireProjectile", il, val);
				return;
			}
			val.Emit(OpCodes.Dup);
			val.Emit(OpCodes.Ldarg_0);
			val.EmitDelegate<Action<OverlapAttack, BasicMeleeAttack>>((Action<OverlapAttack, BasicMeleeAttack>)delegate(OverlapAttack overlapAttack, BasicMeleeAttack entityState)
			{
				//IL_0040: Unknown result type (might be due to invalid IL or missing references)
				//IL_004d: 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)
				if (!(entityState is HeroRelicSwing) && !(entityState is HeroRelicSwingLeft) && !(entityState is GupSpikesState) && !(entityState is GoldenSwipe) && !(entityState is TongueLash))
				{
					if (!(entityState is SprintBash))
					{
						if (entityState is GoldenSlash)
						{
							overlapAttack.damageType.damageSource = (DamageSource)8;
						}
					}
					else
					{
						overlapAttack.damageType.damageSource = (DamageSource)2;
					}
				}
				else
				{
					overlapAttack.damageType.damageSource = (DamageSource)1;
				}
			});
		}

		private static void GenericProjectileBaseState_FireProjectile(ILContext il)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			//IL_008a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0096: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c8: Unknown result type (might be due to invalid IL or missing references)
			ILCursor val = new ILCursor(il);
			if (!val.TryGotoNext((MoveType)2, new Func<Instruction, bool>[3]
			{
				(Instruction x) => ILPatternMatchingExt.MatchStfld<FireProjectileInfo>(x, "crit"),
				(Instruction x) => ILPatternMatchingExt.MatchLdloc(x, 2),
				(Instruction x) => ILPatternMatchingExt.MatchStloc(x, 1)
			}))
			{
				Util.LogILError("GenericProjectileBaseState.FireProjectile", il, val);
				return;
			}
			val.Emit(OpCodes.Ldloc_1);
			val.Emit(OpCodes.Ldarg_0);
			val.EmitDelegate<Func<FireProjectileInfo, GenericProjectileBaseState, FireProjectileInfo>>((Func<FireProjectileInfo, GenericProjectileBaseState, FireProjectileInfo>)delegate(FireProjectileInfo fireProjectileInfo, GenericProjectileBaseState entityState)
			{
				//IL_002c: Unknown result type (might be due to invalid IL or missing references)
				//IL_004e: Unknown result type (might be due to invalid IL or missing references)
				//IL_003f: Unknown result type (might be due to invalid IL or missing references)
				if (!(entityState is FireConstructBeam) && !(entityState is Fire) && !(entityState is FireExploderShards) && !(entityState is Fire))
				{
					if (entityState is ThrowBarrel)
					{
						fireProjectileInfo.damageTypeOverride = DamageTypeCombo.GenericSecondary;
					}
				}
				else
				{
					fireProjectileInfo.damageTypeOverride = DamageTypeCombo.GenericPrimary;
				}
				return fireProjectileInfo;
			});
			val.Emit(OpCodes.Stloc_1);
		}

		private static void ArtifactShell_FireSolarFlares_FixedUpdate(ILContext il)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			ILCursor c = new ILCursor(il);
			ILEdits.AddDamageTypeComboToFireProjectileInfo(DamageTypeCombo.GenericPrimary, "ArtifactShell.FireSolarFlares.FixedUpdate", 1, il, c);
		}

		private static void AcidLarva_LarvaLeap_DetonateAuthority(ILContext il)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			ILCursor c = new ILCursor(il);
			ILEdits.SetDamageSourceForBlastAttack((DamageSource)1, ILEdits.BlastAttackMatchType.BeforeFalloffModel, "AcidLarva.LarvaLeap.DetonateAuthority", il, c);
		}

		private static void BeetleGuardMonster_GroundSlam_OnEnter(ILContext il)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			ILCursor val = new ILCursor(il);
			ILEdits.SetupForOverlapAttackDelegate(isAttackInEntityState: true, ILEdits.OverlapAttackMatchType.BasicDamageCalculation, "BeetleGuardMonster.GroundSlam.OnEnter", il, val);
			val.EmitDelegate<Action<GroundSlam>>((Action<GroundSlam>)delegate(GroundSlam bgGroundSlam)
			{
				//IL_0017: Unknown result type (might be due to invalid IL or missing references)
				if (bgGroundSlam != null && bgGroundSlam.attack != null)
				{
					bgGroundSlam.attack.damageType.damageSource = (DamageSource)1;
				}
			});
		}

		private static void BeetleGuardMonster_FireSunder_FixedUpdate(ILContext il)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			ILCursor c = new ILCursor(il);
			ILEdits.ReplaceNullDamageTypeComboInFireProjectile(DamageTypeCombo.GenericSecondary, "BeetleGuardMonster.FireSunder.FixedUpdate", 1, il, c);
		}

		private static void BeetleMonster_HeadbuttState_OnEnter(ILContext il)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			ILCursor val = new ILCursor(il);
			ILEdits.SetupForOverlapAttackDelegate(isAttackInEntityState: true, ILEdits.OverlapAttackMatchType.BasicDamageCalculation, "BeetleMonster.HeadbuttState.OnEnter", il, val);
			val.EmitDelegate<Action<HeadbuttState>>((Action<HeadbuttState>)delegate(HeadbuttState beetleHeadbutt)
			{
				//IL_0017: Unknown result type (might be due to invalid IL or missing references)
				if (beetleHeadbutt != null && beetleHeadbutt.attack != null)
				{
					beetleHeadbutt.attack.damageType.damageSource = (DamageSource)1;
				}
			});
		}

		private static void BeetleQueenMonster_FireSpit_FireBlob(ILContext il)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			ILCursor c = new ILCursor(il);
			ILEdits.ReplaceNullDamageTypeComboInFireProjectile(DamageTypeCombo.GenericPrimary, "BeetleQueenMonster.FireSpit.FireBlob", 1, il, c);
		}

		private static void Bell_BellWeapon_ChargeTrioBomb_FixedUpdate(ILContext il)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			ILCursor c = new ILCursor(il);
			ILEdits.ReplaceNullDamageTypeComboInFireProjectile(DamageTypeCombo.GenericPrimary, "Bell.BellWeapon.ChargeTrioBomb.FixedUpdate", 7, il, c);
		}

		private static void Bison_Headbutt_OnEnter(ILContext il)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			ILCursor val = new ILCursor(il);
			ILEdits.SetupForOverlapAttackDelegate(isAttackInEntityState: true, ILEdits.OverlapAttackMatchType.BasicDamageCalculation, "Bison.Headbutt.OnEnter", il, val);
			val.EmitDelegate<Action<Headbutt>>((Action<Headbutt>)delegate(Headbutt bisonHeadbutt)
			{
				//IL_0017: Unknown result type (might be due to invalid IL or missing references)
				if (bisonHeadbutt != null && bisonHeadbutt.attack != null)
				{
					bisonHeadbutt.attack.damageType.damageSource = (DamageSource)1;
				}
			});
		}

		private static void Bison_Charge_ResetOverlapAttack(ILContext il)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			ILCursor val = new ILCursor(il);
			ILEdits.SetupForOverlapAttackDelegate(isAttackInEntityState: true, ILEdits.OverlapAttackMatchType.BasicDamageCalculation, "Bison.Charge.ResetOverlapAttack", il, val);
			val.EmitDelegate<Action<Charge>>((Action<Charge>)delegate(Charge bisonChargeAttack)
			{
				//IL_0017: Unknown result type (might be due to invalid IL or missing references)
				if (bisonChargeAttack != null && bisonChargeAttack.attack != null)
				{
					bisonChargeAttack.attack.damageType.damageSource = (DamageSource)4;
				}
			});
		}

		private static void BrotherHaunt_FireRandomProjectiles_FireProjectile(ILContext il)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			ILCursor c = new ILCursor(il);
			ILEdits.AddDamageTypeComboToFireProjectileInfo(DamageTypeCombo.GenericPrimary, "BrotherHaunt.FireRandomProjectiles.FireProjectile", 4, il, c);
		}

		private static void BrotherMonster_FistSlam_FixedUpdate(ILContext il)
		{
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			//IL_000d: Expected O, but got Unknown
			//IL_0043: Unknown result type (might be due to invalid IL or missing references)
			string text = "BrotherMonster.FistSlam.FixedUpdate";
			ILCursor val = new ILCursor(il);
			ILEdits.SetupForBlastAttackDelegate(ILEdits.BlastAttackMatchType.AttackerIsGameObject, text, il, val);
			val.EmitDelegate<Action<FistSlam>>((Action<FistSlam>)delegate(FistSlam fistSlamAttack)
			{
				//IL_000c: Unknown result type (might be due to invalid IL or missing references)
				fistSlamAttack.attack.damageType.damageSource = (DamageSource)2;
			});
			val.Index = 0;
			ILEdits.ReplaceNullDamageTypeComboInFireProjectile(DamageTypeCombo.GenericSecondary, text, 7, il, val);
		}

		private static void BrotherMonster_ExitSkyLeap_FireRingAuthority(ILContext il)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			ILCursor c = new ILCursor(il);
			ILEdits.ReplaceNullDamageTypeComboInFireProjectile(DamageTypeCombo.GenericSpecial, "BrotherMonster.ExitSkyLeap.FireRingAuthority", 5, il, c);
		}

		private static void BrotherMonster_WeaponSlam_OnEnter(ILContext il)
		{
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			//IL_000d: Expected O, but got Unknown
			//IL_00ae: Unknown result type (might be due to invalid IL or missing references)
			string methodName = "BrotherMonster.WeaponSlam.OnEnter";
			ILCursor val = new ILCursor(il);
			MethodReference val2 = default(MethodReference);
			if (!val.TryGotoNext((MoveType)2, new Func<Instruction, bool>[4]
			{
				(Instruction x) => ILPatternMatchingExt.MatchDup(x),
				(Instruction x) => ILPatternMatchingExt.MatchLdcI4(x, 0),
				(Instruction x) => ILPatternMatchingExt.MatchCall(x, ref val2),
				(Instruction x) => ILPatternMatchingExt.MatchStfld<OverlapAttack>(x, "damageType")
			}))
			{
				Util.LogILError(methodName, il, val);
				return;
			}
			val.Emit(OpCodes.Dup);
			val.EmitDelegate<Action<OverlapAttack>>((Action<OverlapAttack>)delegate(OverlapAttack mithrixWeaponSlamOverlapAttack)
			{
				//IL_000a: Unknown result type (might be due to invalid IL or missing references)
				if (mithrixWeaponSlamOverlapAttack != null)
				{
					mithrixWeaponSlamOverlapAttack.damageType.damageSource = (DamageSource)1;
				}
			});
		}

		private static void BrotherMonster_WeaponSlam_FixedUpdate(ILContext il)
		{
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			//IL_000d: Expected O, but got Unknown
			//IL_009e: Unknown result type (might be due to invalid IL or missing references)
			//IL_010e: Unknown result type (might be due to invalid IL or missing references)
			string text = "BrotherMonster.WeaponSlam.FixedUpdate";
			ILCursor val = new ILCursor(il);
			ILEdits.SetupForBlastAttackDelegate(ILEdits.BlastAttackMatchType.AttackerIsGameObject, text, il, val);
			val.EmitDelegate<Action<WeaponSlam>>((Action<WeaponSlam>)delegate(WeaponSlam weaponSlamAttack)
			{
				//IL_000c: Unknown result type (might be due to invalid IL or missing references)
				weaponSlamAttack.blastAttack.damageType.damageSource = (DamageSource)1;
			});
			val.Index = 0;
			if (!val.TryGotoNext((MoveType)2, new Func<Instruction, bool>[2]
			{
				(Instruction x) => ILPatternMatchingExt.MatchCall<ProjectileManager>(x, "get_instance"),
				(Instruction x) => ILPatternMatchingExt.MatchLdsfld<WeaponSlam>(x, "waveProjectilePrefab")
			}))
			{
				Util.LogILError(text, il, val);
			}
			ILEdits.ReplaceNullDamageTypeComboInFireProjectile(DamageTypeCombo.GenericPrimary, text, 7, il, val);
			val.Index = 0;
			if (!val.TryGotoNext((MoveType)2, new Func<Instruction, bool>[2]
			{
				(Instruction x) => ILPatternMatchingExt.MatchCall<ProjectileManager>(x, "get_instance"),
				(Instruction x) => ILPatternMatchingExt.MatchLdsfld<WeaponSlam>(x, "pillarProjectilePrefab")
			}))
			{
				Util.LogILError(text, il, val);
			}
			ILEdits.ReplaceNullDamageTypeComboInFireProjectile(DamageTypeCombo.GenericPrimary, text, 7, il, val);
		}

		private static void BrotherMonster_UltChannelState_FireWave(ILContext il)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			ILCursor c = new ILCursor(il);
			ILEdits.ReplaceNullDamageTypeComboInFireProjectile(DamageTypeCombo.GenericSpecial, "BrotherMonster.UltChannelState.FireWave", 7, il, c);
		}

		private static void BrotherMonster_Weapon_FireLunarShards_OnEnter(ILContext il)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			ILCursor c = new ILCursor(il);
			ILEdits.AddDamageTypeComboToFireProjectileInfo(DamageTypeCombo.GenericPrimary, "BrotherMonster.Weapon.FireLunarShards.OnEnter", 2, il, c);
		}

		private static void ChildMonster_SparkBallFire_FireBomb(ILContext il)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			ILCursor c = new ILCursor(il);
			ILEdits.ReplaceNullDamageTypeComboInFireProjectile(DamageTypeCombo.GenericPrimary, "ChildMonster.SparkBallFire.FireBomb", 3, il, c);
		}

		private static void ClayBoss_FireTarball_FireSingleTarball(ILContext il)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			ILCursor c = new ILCursor(il);
			ILEdits.ReplaceNullDamageTypeComboInFireProjectile(DamageTypeCombo.GenericSecondary, "ClayBoss.FireTarball.FireSingleTarball", 3, il, c);
		}

		private static void TarTetherController_DoDamageTick(ILContext il)
		{
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			//IL_000d: Expected O, but got Unknown
			//IL_008c: Unknown result type (might be due to invalid IL or missing references)
			string methodName = "TarTetherController.DoDamageTick";
			ILCursor val = new ILCursor(il);
			if (!val.TryGotoNext((MoveType)2, new Func<Instruction, bool>[3]
			{
				(Instruction x) => ILPatternMatchingExt.MatchLdcI4(x, 0),
				(Instruction x) => ILPatternMatchingExt.MatchCall<DamageTypeCombo>(x, "op_Implicit"),
				(Instruction x) => ILPatternMatchingExt.MatchStfld<DamageInfo>(x, "damageType")
			}))
			{
				Util.LogILError(methodName, il, val);
				return;
			}
			val.Emit(OpCodes.Dup);
			val.EmitDelegate<Action<DamageInfo>>((Action<DamageInfo>)delegate(DamageInfo damageInfo)
			{
				//IL_0007: Unknown result type (might be due to invalid IL or missing references)
				damageInfo.damageType.damageSource = (DamageSource)8;
			});
		}

		private static void ClayBoss_ClayBossWeapon_FireBombardment_FireGrenade(ILContext il)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			ILCursor c = new ILCursor(il);
			ILEdits.ReplaceNullDamageTypeComboInFireProjectile(DamageTypeCombo.GenericPrimary, "ClayBoss.ClayBossWeapon.FireBombardment.FireGrenade", 20, il, c);
		}

		private static void ClayBruiser_Weapon_MinigunFire_OnFireAuthority(ILContext il)
		{
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			//IL_000d: Expected O, but got Unknown
			//IL_008c: Unknown result type (might be due to invalid IL or missing references)
			string methodName = "ClayBruiser.Weapon.MinigunFire.OnFireAuthority";
			ILCursor val = new ILCursor(il);
			if (!val.TryGotoNext((MoveType)2, new Func<Instruction, bool>[3]
			{
				(Instruction x) => ILPatternMatchingExt.MatchLdcI4(x, 0),
				(Instruction x) => ILPatternMatchingExt.MatchCall<DamageTypeCombo>(x, "op_Implicit"),
				(Instruction x) => ILPatternMatchingExt.MatchStfld<BulletAttack>(x, "damageType")
			}))
			{
				Util.LogILError(methodName, il, val);
				return;
			}
			val.Emit(OpCodes.Dup);
			val.EmitDelegate<Action<BulletAttack>>((Action<BulletAttack>)delegate(BulletAttack bulletAttack)
			{
				//IL_0007: Unknown result type (might be due to invalid IL or missing references)
				bulletAttack.damageType.damageSource = (DamageSource)1;
			});
		}

		private static void ClayGrenadier_FaceSlam_FixedUpdate(ILContext il)
		{
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			//IL_000d: Expected O, but got Unknown
			//IL_0043: Unknown result type (might be due to invalid IL or missing references)
			string text = "ClayGrenadier.FaceSlam.FixedUpdate";
			ILCursor val = new ILCursor(il);
			ILEdits.SetupForBlastAttackDelegate(ILEdits.BlastAttackMatchType.ExistingDamageType, text, il, val);
			val.EmitDelegate<Action<FaceSlam>>((Action<FaceSlam>)delegate(FaceSlam faceSlamAttack)
			{
				//IL_000c: Unknown result type (might be due to invalid IL or missing references)
				faceSlamAttack.attack.damageType.damageSource = (DamageSource)1;
			});
			val.Index = 0;
			ILEdits.ReplaceNullDamageTypeComboInFireProjectile(DamageTypeCombo.GenericPrimary, text, 7, il, val);
		}

		private static void Drone_DroneWeapon_FireGatling_OnEnter(ILContext il)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			ILCursor val = new ILCursor(il);
			ILEdits.SetupForBulletAttackDelegate(isAttackInEntityState: false, ILEdits.BulletAttackMatchType.OwnerIsGameObject, "Drone.DroneWeapon.FireGatling.OnEnter", il, val);
			val.EmitDelegate<Action<BulletAttack>>((Action<BulletAttack>)delegate(BulletAttack bulletAttack)
			{
				//IL_0007: Unknown result type (might be due to invalid IL or missing references)
				bulletAttack.damageType.damageSource = (DamageSource)1;
			});
		}

		private static void Drone_DroneWeapon_FireMegaTurret_FireBullet(ILContext il)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			ILCursor val = new ILCursor(il);
			ILEdits.SetupForBulletAttackDelegate(isAttackInEntityState: false, ILEdits.BulletAttackMatchType.OwnerIsGameObject, "Drone.DroneWeapon.FireMegaTurret.OnEnter", il, val);
			val.EmitDelegate<Action<BulletAttack>>((Action<BulletAttack>)delegate(BulletAttack bulletAttack)
			{
				//IL_0007: Unknown result type (might be due to invalid IL or missing references)
				bulletAttack.damageType.damageSource = (DamageSource)1;
			});
		}

		private static void Drone_DroneWeapon_FireMissileBarrage_FireMissile(ILContext il)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			ILCursor c = new ILCursor(il);
			ILEdits.ReplaceNullDamageTypeComboInFireProjectile(DamageTypeCombo.GenericPrimary, "Drone.DroneWeapon.FireMissileBarrage.FireMissile", 11, il, c);
		}

		private static void Drone_DroneWeapon_FireTurret_OnEnter(ILContext il)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			ILCursor val = new ILCursor(il);
			ILEdits.SetupForBulletAttackDelegate(isAttackInEntityState: false, ILEdits.BulletAttackMatchType.OwnerIsGameObject, "Drone.DroneWeapon.FireTurret.OnEnter", il, val);
			val.EmitDelegate<Action<BulletAttack>>((Action<BulletAttack>)delegate(BulletAttack bulletAttack)
			{
				//IL_0007: Unknown result type (might be due to invalid IL or missing references)
				bulletAttack.damageType.damageSource = (DamageSource)1;
			});
		}

		private static void Drone_DroneWeapon_FireTwinRocket_FireProjectile(ILContext il)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			ILCursor c = new ILCursor(il);
			ILEdits.ReplaceNullDamageTypeComboInFireProjectile(DamageTypeCombo.GenericSecondary, "Drone.DroneWeapon.FireTwinRocket.FireProjectile", 7, il, c);
		}

		private static void FalseSonBoss_CorruptedPaths_DetonateAuthority(ILContext il)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			ILCursor c = new ILCursor(il);
			ILEdits.SetDamageSourceForBlastAttack((DamageSource)4, ILEdits.BlastAttackMatchType.AttackerIsGameObject, "FalseSonBoss.CorruptedPaths.DetonateAuthority", il, c);
		}

		private static void FalseSonBoss_CorruptedPathsDash_FixedUpdate(ILContext il)
		{
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			//IL_000d: Expected O, but got Unknown
			//IL_008c: Unknown result type (might be due to invalid IL or missing references)
			string methodName = "FalseSonBoss.CorruptedPathsDash.FixedUpdate";
			ILCursor val = new ILCursor(il);
			if (!val.TryGotoNext((MoveType)2, new Func<Instruction, bool>[3]
			{
				(Instruction x) => ILPatternMatchingExt.MatchLdarg(x, 0),
				(Instruction x) => ILPatternMatchingExt.MatchCall<EntityState>(x, "get_gameObject"),
				(Instruction x) => ILPatternMatchingExt.MatchStfld<BlastAttack>(x, "attacker")
			}))
			{
				Util.LogILError(methodName, il, val);
				return;
			}
			val.Emit(OpCodes.Ldarg_0);
			val.EmitDelegate<Action<CorruptedPathsDash>>((Action<CorruptedPathsDash>)delegate(CorruptedPathsDash dashAttack)
			{
				//IL_000c: Unknown result type (might be due to invalid IL or missing references)
				dashAttack.explosionAttack.damageType.damageSource = (DamageSource)1;
			});
		}

		private static void FalseSonBoss_FissureSlam_FixedUpdate(ILContext il)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			ILCursor c = new ILCursor(il);
			ILEdits.ReplaceNullDamageTypeComboInFireProjectile(DamageTypeCombo.GenericPrimary, "FalseSonBoss.FissureSlam.FixedUpdate", 4, il, c);
		}

		private static void FalseSonBoss_FissureSlam_DetonateAuthority(ILContext il)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			ILCursor c = new ILCursor(il);
			ILEdits.SetDamageSourceForBlastAttack((DamageSource)1, ILEdits.BlastAttackMatchType.AttackerIsGameObject, "FalseSonBoss.FissureSlam.DetonateAuthority", il, c);
		}

		private static void FalseSonBoss_LunarGazeFire_FireBullet(ILContext il)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			//IL_008a: Unknown result type (might be due to invalid IL or missing references)
			ILCursor val = new ILCursor(il);
			if (!val.TryGotoNext((MoveType)2, new Func<Instruction, bool>[3]
			{
				(Instruction x) => ILPatternMatchingExt.MatchDup(x),
				(Instruction x) => ILPatternMatchingExt.MatchLdarg(x, 4),
				(Instruction x) => ILPatternMatchingExt.MatchCallvirt<BulletAttack>(x, "set_maxDistance")
			}))
			{
				Util.LogILError("FalseSonBoss.LunarGazeFire.FireBullet", il, val);
				return;
			}
			val.Emit(OpCodes.Dup);
			val.EmitDelegate<Action<BulletAttack>>((Action<BulletAttack>)delegate(BulletAttack bulletAttack)
			{
				//IL_0007: Unknown result type (might be due to invalid IL or missing references)
				bulletAttack.damageType.damageSource = (DamageSource)4;
			});
		}

		private static void FalseSonBoss_LunarRain_DetonateAuthority(ILContext il)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			ILCursor c = new ILCursor(il);
			ILEdits.SetDamageSourceForBlastAttack((DamageSource)2, ILEdits.BlastAttackMatchType.AttackerIsGameObject, "FalseSonBoss.LunarRain.DetonateAuthority", il, c);
		}

		private static void FalseSonBoss_SwatAwayPlayersSlam_OnEnter(ILContext il)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			ILCursor val = new ILCursor(il);
			ILEdits.SetupForOverlapAttackDelegate(isAttackInEntityState: false, ILEdits.OverlapAttackMatchType.ExistingDamageType, "FalseSonBoss.SwatAwayPlayersSlam.OnEnter", il, val);
			val.EmitDelegate<Action<OverlapAttack>>((Action<OverlapAttack>)delegate(OverlapAttack overlapAttack)
			{
				//IL_000a: Unknown result type (might be due to invalid IL or missing references)
				if (overlapAttack != null)
				{
					overlapAttack.damageType.damageSource = (DamageSource)1;
				}
			});
		}

		private static void FalseSonBoss_TaintedOffering_FireProjectile(ILContext il)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			ILCursor c = new ILCursor(il);
			ILEdits.ReplaceNullDamageTypeComboInFireProjectile(DamageTypeCombo.GenericSpecial, "FalseSonBoss.TaintedOffering.FireProjectile", 1, il, c);
		}

		private static void FalseSonBoss_PrimeDevastator_DetonateAuthority(ILContext il)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			ILCursor c = new ILCursor(il);
			ILEdits.SetDamageSourceForBlastAttack((DamageSource)8, ILEdits.BlastAttackMatchType.AttackerIsGameObject, "FalseSonBoss.PrimeDevastator.DetonateAuthority", il, c);
		}

		private static void FlyingVermin_Weapon_Spit_FireProjectile(ILContext il)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			ILCursor c = new ILCursor(il);
			ILEdits.ReplaceNullDamageTypeComboInFireProjectile(DamageTypeCombo.GenericPrimary, "FlyingVermin.Weapon.Spit.FireProjectile", 3, il, c);
		}

		private static void GolemMonster_ClapState_FixedUpdate(ILContext il)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			ILCursor val = new ILCursor(il);
			ILEdits.SetupForBlastAttackDelegate(ILEdits.BlastAttackMatchType.AttackerIsGameObject, "GolemMonster.ClapState.FixedUpdate", il, val);
			val.EmitDelegate<Action<ClapState>>((Action<ClapState>)delegate(ClapState clappingCheeks)
			{
				//IL_000c: Unknown result type (might be due to invalid IL or missing references)
				clappingCheeks.attack.damageType.damageSource = (DamageSource)1;
			});
		}

		private static void GolemMonster_FireLaser_OnEnter(ILContext il)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			ILCursor c = new ILCursor(il);
			ILEdits.SetDamageSourceForBlastAttack((DamageSource)2, ILEdits.BlastAttackMatchType.AttackerIsGameObject, "GolemMonster.FireLaser.OnEnter", il, c);
		}

		private static void GrandParentBoss_GroundSwipe_FixedUpdate(ILContext il)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			ILCursor c = new ILCursor(il);
			ILEdits.AddDamageTypeComboToFireProjectileInfo(DamageTypeCombo.GenericPrimary, "GrandParentBoss.GroundSwipe.FixedUpdate", 8, il, c);
		}

		private static void GravekeeperBoss_FireHook_FireSingleHook(ILContext il)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			ILCursor c = new ILCursor(il);
			ILEdits.ReplaceNullDamageTypeComboInFireProjectile(DamageTypeCombo.GenericSecondary, "GravekeeperBoss.FireHook.FireSingleHook", 1, il, c);
		}

		private static void GravekeeperMonster_Weapon_GravekeeperBarrage_FireBlob(ILContext il)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			ILCursor c = new ILCursor(il);
			ILEdits.ReplaceNullDamageTypeComboInFireProjectile(DamageTypeCombo.GenericPrimary, "GravekeeperMonster.Weapon.GravekeeperBarrage.FireBlob", 0, il, c);
		}

		private static void GreaterWispMonster_FireCannons_OnEnter(ILContext il)
		{
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			//IL_000d: Expected O, but got Unknown
			//IL_008a: Unknown result type (might be due to invalid IL or missing references)
			//IL_011c: Unknown result type (might be due to invalid IL or missing references)
			string text = "GreaterWispMonster.FireCannons.OnEnter";
			ILCursor val = new ILCursor(il);
			ILLabel val3 = default(ILLabel);
			if (!val.TryGotoNext((MoveType)2, new Func<Instruction, bool>[3]
			{
				(Instruction x) => ILPatternMatchingExt.MatchLdloc(x, 6),
				(Instruction x) => ILPatternMatchingExt.MatchCall<Object>(x, "op_Implicit"),
				(Instruction x) => ILPatternMatchingExt.MatchBrfalse(x, ref val3)
			}))
			{
				Util.LogILError(text, il, val);
			}
			ILEdits.ReplaceNullDamageTypeComboInFireProjectile(DamageTypeCombo.GenericPrimary, text, 8, il, val);
			val.Index = 0;
			ILLabel val2 = default(ILLabel);
			if (!val.TryGotoNext((MoveType)2, new Func<Instruction, bool>[3]
			{
				(Instruction x) => ILPatternMatchingExt.MatchLdloc(x, 7),
				(Instruction x) => ILPatternMatchingExt.MatchCall<Object>(x, "op_Implicit"),
				(Instruction x) => ILPatternMatchingExt.MatchBrfalse(x, ref val2)
			}))
			{
				Util.LogILError(text, il, val);
			}
			ILEdits.ReplaceNullDamageTypeComboInFireProjectile(DamageTypeCombo.GenericPrimary, text, 8, il, val);
		}

		private static void Halcyonite_TriLaser_FireTriLaser(ILContext il)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			ILCursor c = new ILCursor(il);
			ILEdits.SetDamageSourceForBlastAttack((DamageSource)2, ILEdits.BlastAttackMatchType.AttackerIsGameObject, "Halcyonite.TriLaser.FireTriLaser", il, c);
		}

		private static void Halcyonite_WhirlwindRush_FixedUpdate(ILContext il)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			ILCursor c = new ILCursor(il);
			ILEdits.ReplaceNullDamageTypeComboInFireProjectile(DamageTypeCombo.GenericUtility, "Halcyonite.WhirlwindRush.FixedUpdate", 1, il, c);
		}

		private static void HermitCrab_FireMortar_Fire(ILContext il)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			ILCursor c = new ILCursor(il);
			ILEdits.ReplaceNullDamageTypeComboInFireProjectile(DamageTypeCombo.GenericPrimary, "HermitCrab.FireMortar.Fire", 18, il, c);
		}

		private static void ImpBossMonster_FireVoidspikes_FireSpikeAuthority(ILContext il)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			ILCursor c = new ILCursor(il);
			ILEdits.ReplaceNullDamageTypeComboInFireProjectile(DamageTypeCombo.GenericPrimary, "ImpBossMonster.FireVoidspikes.FireSpikeAuthority", 1, il, c);
		}

		private static void ImpBossMonster_FireVoidspikes_OnEnter(ILContext il)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			ILCursor val = new ILCursor(il);
			ILEdits.SetupForOverlapAttackDelegate(isAttackInEntityState: true, ILEdits.OverlapAttackMatchType.ExistingDamageType, "ImpBossMonster.FireVoidspikes.OnEnter", il, val);
			val.EmitDelegate<Action<FireVoidspikes>>((Action<FireVoidspikes>)delegate(FireVoidspikes overlordRangedAttack)
			{
				//IL_0017: Unknown result type (might be due to invalid IL or missing references)
				if (overlordRangedAttack != null && overlordRangedAttack.attack != null)
				{
					overlordRangedAttack.attack.damageType.damageSource = (DamageSource)1;
				}
			});
		}

		private static void ImpBossMonster_GroundPound_OnEnter(ILContext il)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			ILCursor val = new ILCursor(il);
			ILEdits.SetupForBlastAttackDelegate(ILEdits.BlastAttackMatchType.AttackerIsGameObject, "ImpBossMonster.GroundPound.OnEnter", il, val);
			val.EmitDelegate<Action<GroundPound>>((Action<GroundPound>)delegate(GroundPound groundPound)
			{
				//IL_000c: Unknown result type (might be due to invalid IL or missing references)
				groundPound.attack.damageType.damageSource = (DamageSource)2;
			});
		}

		private static void ImpMonster_DoubleSlash_OnEnter(ILContext il)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			ILCursor val = new ILCursor(il);
			ILEdits.SetupForOverlapAttackDelegate(isAttackInEntityState: true, ILEdits.OverlapAttackMatchType.ExistingDamageType, "ImpMonster.DoubleSlash.OnEnter", il, val);
			val.EmitDelegate<Action<DoubleSlash>>((Action<DoubleSlash>)delegate(DoubleSlash doubleSlash)
			{
				//IL_0017: Unknown result type (might be due to invalid IL or missing references)
				if (doubleSlash != null && doubleSlash.attack != null)
				{
					doubleSlash.attack.damageType.damageSource = (DamageSource)1;
				}
			});
		}

		private static void JellyfishMonster_JellyNova_Detonate(ILContext il)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			ILCursor val = new ILCursor(il);
			ILEdits.SetupForBlastAttackDelegate(ILEdits.BlastAttackMatchType.AttackerIsGameObject, "JellyfishMonster.JellyNova.Detonate", il, val);
			val.EmitDelega