Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of AccurateEnemies v1.1.0
AccurateEnemies.dll
Decompiled 2 years ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Diagnostics; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using AccurateEnemies.Hooks; using BepInEx; using BepInEx.Bootstrap; using EntityStates; using EntityStates.BeetleGuardMonster; using EntityStates.Bell.BellWeapon; using EntityStates.ClayBoss.ClayBossWeapon; using EntityStates.ClayGrenadier; using EntityStates.FlyingVermin.Weapon; using EntityStates.GravekeeperBoss; using EntityStates.GreaterWispMonster; using EntityStates.LemurianBruiserMonster; using EntityStates.LemurianMonster; using EntityStates.RoboBallBoss.Weapon; using EntityStates.ScavMonster; using EntityStates.VagrantMonster.Weapon; using EntityStates.VoidJailer.Weapon; using EntityStates.Vulture.Weapon; using IL.EntityStates; using IL.EntityStates.BeetleGuardMonster; using IL.EntityStates.Bell.BellWeapon; using IL.EntityStates.ClayBoss.ClayBossWeapon; using IL.EntityStates.GravekeeperBoss; using IL.EntityStates.GreaterWispMonster; using IL.EntityStates.LemurianBruiserMonster; using IL.EntityStates.LemurianMonster; using IL.EntityStates.RoboBallBoss.Weapon; using IL.EntityStates.ScavMonster; using IL.EntityStates.VagrantMonster.Weapon; using IL.EntityStates.Vulture.Weapon; using Inferno; using Mono.Cecil.Cil; using MonoMod.Cil; using On.EntityStates.ClayGrenadier; using On.EntityStates.VoidJailer.Weapon; using Risky_Artifacts.Artifacts; using RoR2; using RoR2.CharacterAI; using RoR2.Projectile; using UnityEngine; using UnityEngine.Networking; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: TargetFramework(".NETStandard,Version=v2.0", FrameworkDisplayName = ".NET Standard 2.0")] [assembly: AssemblyCompany("AccurateEnemies")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0+33de3bc6d5ec4bf5611673e16bdb1c3eca790851")] [assembly: AssemblyProduct("AccurateEnemies")] [assembly: AssemblyTitle("AccurateEnemies")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] namespace R2API.Utils { [AttributeUsage(AttributeTargets.Assembly)] public class ManualNetworkRegistrationAttribute : Attribute { } } namespace AccurateEnemies { [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInPlugin("com.Moffein.AccurateEnemies", "Accurate Enemies", "1.1.0")] public class AccurateEnemiesPlugin : BaseUnityPlugin { public static bool InfernoLoaded = false; public static bool RiskyArtifactsLoaded = false; public static DifficultyDef InfernoDef = null; public static float basePredictionAngle = 45f; public static bool hardmodeOnly = false; public static bool eliteOnly = false; public static bool alwaysAllowBosses = true; public void Awake() { InfernoLoaded = Chainloader.PluginInfos.ContainsKey("HIFU.Inferno"); RiskyArtifactsLoaded = Chainloader.PluginInfos.ContainsKey("com.Moffein.RiskyArtifacts"); ReadConfig(); RunHooks(); RoR2Application.onLoad = (Action)Delegate.Combine(RoR2Application.onLoad, new Action(InfernoCompat)); } private void InfernoCompat() { if (InfernoLoaded) { InfernoDef = GetInfernoDef(); } } private void ReadConfig() { hardmodeOnly = ((BaseUnityPlugin)this).Config.Bind<bool>("Gameplay", "Restrict to Hard Difficulties", false, "Changes only apply on Monsoon and above.").Value; eliteOnly = ((BaseUnityPlugin)this).Config.Bind<bool>("Gameplay", "Elite Only", true, "Only apply changes to Elite enemies.").Value; alwaysAllowBosses = ((BaseUnityPlugin)this).Config.Bind<bool>("Gameplay", "Always Allow Champions", true, "Always enable changes on champion-tier (boss) enemies.").Value; string text = "Enable projectile prediction."; string text2 = "Only use projectile prediction after looping."; BeetleGuard.enabled = ((BaseUnityPlugin)this).Config.Bind<bool>("Enemies", "Beetle Guard", true, text).Value; Bronzong.enabled = ((BaseUnityPlugin)this).Config.Bind<bool>("Enemies", "Brass Contraption", true, text).Value; ClayBoss.enabled = ((BaseUnityPlugin)this).Config.Bind<bool>("Enemies", "Clay Dunestrider", true, text).Value; ClayGrenadier.enabled = ((BaseUnityPlugin)this).Config.Bind<bool>("Enemies", "Clay Apothecary", true, text).Value; FlyingVermin.enabled = ((BaseUnityPlugin)this).Config.Bind<bool>("Enemies", "Blind Pest", true, text).Value; GreaterWisp.enabled = ((BaseUnityPlugin)this).Config.Bind<bool>("Enemies", "Greater Wisp/Archaic Wisp", true, text).Value; Grovetender.enabled = ((BaseUnityPlugin)this).Config.Bind<bool>("Enemies", "Grovetender", true, text).Value; Lemurian.enabled = ((BaseUnityPlugin)this).Config.Bind<bool>("Enemies", "Lemurian", true, text).Value; LemurianBruiser.enabled = ((BaseUnityPlugin)this).Config.Bind<bool>("Enemies", "Elder Lemurian", true, text).Value; LunarExploder.enabled = ((BaseUnityPlugin)this).Config.Bind<bool>("Enemies", "Lunar Exploder", true, text).Value; MinorConstruct.enabled = ((BaseUnityPlugin)this).Config.Bind<bool>("Enemies", "Alpha Construct", true, text).Value; RoboBallBoss.enabled = ((BaseUnityPlugin)this).Config.Bind<bool>("Enemies", "Solus Control Unit/Alloy Worship Unit", true, text).Value; Scavenger.enabled = ((BaseUnityPlugin)this).Config.Bind<bool>("Enemies", "Scavenger", true, text).Value; Vagrant.enabled = ((BaseUnityPlugin)this).Config.Bind<bool>("Enemies", "Wandering Vagrant", true, text).Value; VoidJailer.enabled = ((BaseUnityPlugin)this).Config.Bind<bool>("Enemies", "Void Jailer", true, text).Value; Vulture.enabled = ((BaseUnityPlugin)this).Config.Bind<bool>("Enemies", "Alloy Vulture", true, text).Value; BeetleGuard.loopOnly = ((BaseUnityPlugin)this).Config.Bind<bool>("Enemies", "Beetle Guard - Loop Only", false, text2).Value; Bronzong.loopOnly = ((BaseUnityPlugin)this).Config.Bind<bool>("Enemies", "Brass Contraption - Loop Only", false, text2).Value; ClayBoss.loopOnly = ((BaseUnityPlugin)this).Config.Bind<bool>("Enemies", "Clay Dunestrider - Loop Only", false, text2).Value; ClayGrenadier.loopOnly = ((BaseUnityPlugin)this).Config.Bind<bool>("Enemies", "Clay Apothecary - Loop Only", false, text2).Value; FlyingVermin.loopOnly = ((BaseUnityPlugin)this).Config.Bind<bool>("Enemies", "Blind Pest - Loop Only", false, text2).Value; GreaterWisp.loopOnly = ((BaseUnityPlugin)this).Config.Bind<bool>("Enemies", "Greater Wisp/Archaic Wisp - Loop Only", false, text2).Value; Grovetender.loopOnly = ((BaseUnityPlugin)this).Config.Bind<bool>("Enemies", "Grovetender - Loop Only", false, text2).Value; Lemurian.loopOnly = ((BaseUnityPlugin)this).Config.Bind<bool>("Enemies", "Lemurian - Loop Only", false, text2).Value; LemurianBruiser.loopOnly = ((BaseUnityPlugin)this).Config.Bind<bool>("Enemies", "Elder Lemurian - Loop Only", false, text2).Value; LunarExploder.loopOnly = ((BaseUnityPlugin)this).Config.Bind<bool>("Enemies", "Lunar Exploder - Loop Only", false, text2).Value; MinorConstruct.loopOnly = ((BaseUnityPlugin)this).Config.Bind<bool>("Enemies", "Alpha Construct - Loop Only", false, text2).Value; RoboBallBoss.loopOnly = ((BaseUnityPlugin)this).Config.Bind<bool>("Enemies", "Solus Control Unit/Alloy Worship Unit - Loop Only", false, text2).Value; Scavenger.loopOnly = ((BaseUnityPlugin)this).Config.Bind<bool>("Enemies", "Scavenger - Loop Only", false, text2).Value; Vagrant.loopOnly = ((BaseUnityPlugin)this).Config.Bind<bool>("Enemies", "Wandering Vagrant - Loop Only", false, text2).Value; VoidJailer.loopOnly = ((BaseUnityPlugin)this).Config.Bind<bool>("Enemies", "Void Jailer - Loop Only", false, text2).Value; Vulture.loopOnly = ((BaseUnityPlugin)this).Config.Bind<bool>("Enemies", "Alloy Vulture - Loop Only", false, text2).Value; } private void RunHooks() { Lemurian.Init(); Vulture.Init(); Bronzong.Init(); GreaterWisp.Init(); BeetleGuard.Init(); ClayGrenadier.Init(); LemurianBruiser.Init(); Scavenger.Init(); Vagrant.Init(); VoidJailer.Init(); ClayBoss.Init(); Grovetender.Init(); RoboBallBoss.Init(); FlyingVermin.Init(); MinorConstruct.Init(); LunarExploder.Init(); } public static float GetProjectileSimpleModifiers(float speed) { if (InfernoLoaded) { speed *= GetInfernoProjectileSpeedMult(); } if (RiskyArtifactsLoaded) { speed *= GetRiskyArtifactsWarfareProjectileSpeedMult(); } return speed; } [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)] public static float GetRiskyArtifactsWarfareProjectileSpeedMult() { if (Object.op_Implicit((Object)(object)RunArtifactManager.instance) && RunArtifactManager.instance.IsArtifactEnabled(Warfare.artifact)) { return Warfare.projSpeed; } return 1f; } [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)] public static DifficultyDef GetInfernoDef() { return Main.InfernoDiffDef; } [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)] public static float GetInfernoProjectileSpeedMult() { //IL_0012: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)Run.instance) && DifficultyCatalog.GetDifficultyDef(Run.instance.selectedDifficulty) == InfernoDef) { return Main.ProjectileSpeed.Value; } return 1f; } } public class Util { public static bool AllowPrediction(CharacterBody body, bool loopOnly) { //IL_001f: Unknown result type (might be due to invalid IL or missing references) if (AccurateEnemiesPlugin.hardmodeOnly && Object.op_Implicit((Object)(object)Run.instance)) { DifficultyDef difficultyDef = DifficultyCatalog.GetDifficultyDef(Run.instance.selectedDifficulty); if (difficultyDef != null && !difficultyDef.countsAsHardMode) { return false; } } if (AccurateEnemiesPlugin.alwaysAllowBosses && Object.op_Implicit((Object)(object)body) && body.isChampion) { return true; } if (loopOnly && Object.op_Implicit((Object)(object)Run.instance) && Run.instance.stageClearCount < 5) { return false; } if (Object.op_Implicit((Object)(object)body)) { if (body.isPlayerControlled) { return false; } if (AccurateEnemiesPlugin.eliteOnly && !body.isElite) { return false; } } return true; } public static Ray PredictAimray(Ray aimRay, TeamIndex attackerTeam, float maxTargetAngle, float projectileSpeed, HurtBox targetHurtBox) { //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0217: Unknown result type (might be due to invalid IL or missing references) //IL_0218: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_008e: 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_009b: Unknown result type (might be due to invalid IL or missing references) //IL_021c: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00be: 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) //IL_00cd: Unknown result type (might be due to invalid IL or missing references) //IL_00ff: Unknown result type (might be due to invalid IL or missing references) //IL_0103: Unknown result type (might be due to invalid IL or missing references) //IL_0108: Unknown result type (might be due to invalid IL or missing references) //IL_010d: 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) //IL_0128: Unknown result type (might be due to invalid IL or missing references) //IL_0134: Unknown result type (might be due to invalid IL or missing references) //IL_0136: Unknown result type (might be due to invalid IL or missing references) //IL_013a: Unknown result type (might be due to invalid IL or missing references) //IL_013f: Unknown result type (might be due to invalid IL or missing references) //IL_0144: Unknown result type (might be due to invalid IL or missing references) //IL_0160: Unknown result type (might be due to invalid IL or missing references) //IL_01b3: Unknown result type (might be due to invalid IL or missing references) //IL_01bd: Unknown result type (might be due to invalid IL or missing references) //IL_01ca: Unknown result type (might be due to invalid IL or missing references) //IL_01ce: Unknown result type (might be due to invalid IL or missing references) //IL_01d3: Unknown result type (might be due to invalid IL or missing references) //IL_01d8: Unknown result type (might be due to invalid IL or missing references) //IL_01dc: Unknown result type (might be due to invalid IL or missing references) //IL_01e7: Unknown result type (might be due to invalid IL or missing references) //IL_01e9: Unknown result type (might be due to invalid IL or missing references) //IL_01ed: Unknown result type (might be due to invalid IL or missing references) //IL_01f4: Unknown result type (might be due to invalid IL or missing references) //IL_0178: Unknown result type (might be due to invalid IL or missing references) //IL_017f: Unknown result type (might be due to invalid IL or missing references) //IL_0193: Unknown result type (might be due to invalid IL or missing references) //IL_020f: Unknown result type (might be due to invalid IL or missing references) //IL_0211: Unknown result type (might be due to invalid IL or missing references) bool flag = false; if ((Object)(object)targetHurtBox == (Object)null) { targetHurtBox = AcquireTarget(aimRay, attackerTeam, maxTargetAngle); } if (Object.op_Implicit((Object)(object)targetHurtBox) && Object.op_Implicit((Object)(object)targetHurtBox.healthComponent) && Object.op_Implicit((Object)(object)targetHurtBox.healthComponent.body) && Object.op_Implicit((Object)(object)targetHurtBox.healthComponent.body.characterMotor) && projectileSpeed > 0f) { CharacterBody body = targetHurtBox.healthComponent.body; Vector3 position = ((Component)targetHurtBox).transform.position; Vector3 val = body.characterMotor.velocity; if (!((NetworkBehaviour)body).hasAuthority) { val = (body.transform.position - body.previousPosition) / Time.fixedDeltaTime; } if (((Vector3)(ref val)).sqrMagnitude > 0f && (!Object.op_Implicit((Object)(object)body) || !body.hasCloakBuff)) { Vector3 val2 = position - ((Ray)(ref aimRay)).origin; float num = ((Vector3)(ref val2)).magnitude / projectileSpeed; Vector3 val3 = default(Vector3); ((Vector3)(ref val3))..ctor(val.x, 0f, val.z); Vector3 val4 = position + val3 * num; if (Object.op_Implicit((Object)(object)body.characterMotor) && !body.characterMotor.isGrounded && val.y > 0f) { float num2 = position.y + val.y * num; num2 += 0.5f * Physics.gravity.y * num * num; val4.y = num2; } Ray val5 = default(Ray); ((Ray)(ref val5)).origin = ((Ray)(ref aimRay)).origin; Vector3 val6 = val4 - ((Ray)(ref aimRay)).origin; ((Ray)(ref val5)).direction = ((Vector3)(ref val6)).normalized; Ray result = val5; float num3 = Vector3.Angle(((Ray)(ref aimRay)).direction, ((Ray)(ref result)).direction); if (num3 <= maxTargetAngle) { return result; } } } return aimRay; } public static Ray PredictAimrayPS(Ray aimRay, TeamIndex attackerTeam, float maxTargetAngle, GameObject projectilePrefab, HurtBox targetHurtBox) { //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Invalid comparison between Unknown and I4 //IL_0096: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_0093: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) float num = -1f; if (Object.op_Implicit((Object)(object)projectilePrefab)) { ProjectileSimple component = projectilePrefab.GetComponent<ProjectileSimple>(); if (Object.op_Implicit((Object)(object)component)) { num = component.desiredForwardSpeed; if ((int)attackerTeam != 1 && Object.op_Implicit((Object)(object)component.rigidbody) && !component.rigidbody.useGravity) { num = AccurateEnemiesPlugin.GetProjectileSimpleModifiers(num); } } } if (num <= 0f) { Debug.LogError((object)"AccurateEnemies: Could not get speed of ProjectileSimple."); return aimRay; } return (num > 0f) ? PredictAimray(aimRay, attackerTeam, maxTargetAngle, num, targetHurtBox) : aimRay; } public static Ray PredictAimrayPCC(Ray aimRay, TeamIndex attackerTeam, float maxTargetAngle, GameObject projectilePrefab, HurtBox targetHurtBox) { //IL_004f: Unknown result type (might be due to invalid IL or missing references) //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_005a: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) float num = -1f; if (Object.op_Implicit((Object)(object)projectilePrefab)) { ProjectileCharacterController component = projectilePrefab.GetComponent<ProjectileCharacterController>(); if (Object.op_Implicit((Object)(object)component)) { num = component.velocity; } } if (num <= 0f) { Debug.LogError((object)"AccurateEnemies: Could not get speed of ProjectileCharacterController."); return aimRay; } return PredictAimray(aimRay, attackerTeam, maxTargetAngle, num, targetHurtBox); } public static HurtBox AcquireTarget(Ray aimRay, TeamIndex attackerTeam, float maxTargetAngle) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Expected O, but got Unknown //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002e: 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_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) BullseyeSearch val = new BullseyeSearch(); val.teamMaskFilter = TeamMask.allButNeutral; ((TeamMask)(ref val.teamMaskFilter)).RemoveTeam(attackerTeam); val.filterByLoS = true; val.searchOrigin = ((Ray)(ref aimRay)).origin; val.sortMode = (SortMode)2; val.maxDistanceFilter = 200f; val.maxAngleFilter = maxTargetAngle; val.searchDirection = ((Ray)(ref aimRay)).direction; val.RefreshCandidates(); return val.GetResults().FirstOrDefault(); } public static HurtBox GetMasterAITargetHurtbox(CharacterMaster cm) { if (Object.op_Implicit((Object)(object)cm) && cm.aiComponents.Length != 0) { BaseAI[] aiComponents = cm.aiComponents; foreach (BaseAI val in aiComponents) { if (val.currentEnemy != null && (Object)(object)val.currentEnemy.bestHurtBox != (Object)null) { return val.currentEnemy.bestHurtBox; } } } return null; } } } namespace AccurateEnemies.Hooks { public class BeetleGuard { [Serializable] [CompilerGenerated] private sealed class <>c { public static readonly <>c <>9 = new <>c(); public static Func<Instruction, bool> <>9__3_2; public static Func<Ray, FireSunder, Ray> <>9__3_1; public static Manipulator <>9__3_0; internal void <Init>b__3_0(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_003d: 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>[1] { (Instruction x) => ILPatternMatchingExt.MatchCall<BaseState>(x, "GetAimRay") })) { val.Emit(OpCodes.Ldarg_0); val.EmitDelegate<Func<Ray, FireSunder, Ray>>((Func<Ray, FireSunder, Ray>)delegate(Ray aimRay, FireSunder self) { //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_0053: 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 (Util.AllowPrediction(((EntityState)self).characterBody, loopOnly)) { ((Ray)(ref aimRay)).origin = self.handRTransform.position; HurtBox masterAITargetHurtbox = Util.GetMasterAITargetHurtbox(((EntityState)self).characterBody.master); return Util.PredictAimrayPCC(aimRay, ((BaseState)self).GetTeam(), AccurateEnemiesPlugin.basePredictionAngle, FireSunder.projectilePrefab, masterAITargetHurtbox); } return aimRay; }); } else { Debug.LogError((object)"AccurateEnemies: EntityStates.BeetleGuardMonster.FireSunder.FixedUpdate IL Hook failed"); } } internal bool <Init>b__3_2(Instruction x) { return ILPatternMatchingExt.MatchCall<BaseState>(x, "GetAimRay"); } internal Ray <Init>b__3_1(Ray aimRay, FireSunder self) { //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_0053: 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 (Util.AllowPrediction(((EntityState)self).characterBody, loopOnly)) { ((Ray)(ref aimRay)).origin = self.handRTransform.position; HurtBox masterAITargetHurtbox = Util.GetMasterAITargetHurtbox(((EntityState)self).characterBody.master); return Util.PredictAimrayPCC(aimRay, ((BaseState)self).GetTeam(), AccurateEnemiesPlugin.basePredictionAngle, FireSunder.projectilePrefab, masterAITargetHurtbox); } return aimRay; } } public static bool enabled = true; public static bool loopOnly = false; private static bool initialized = false; public static void Init() { //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 if (!enabled || initialized) { return; } initialized = true; object obj = <>c.<>9__3_0; if (obj == null) { Manipulator val = delegate(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_003d: Unknown result type (might be due to invalid IL or missing references) ILCursor val2 = new ILCursor(il); if (val2.TryGotoNext((MoveType)2, new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchCall<BaseState>(x, "GetAimRay") })) { val2.Emit(OpCodes.Ldarg_0); val2.EmitDelegate<Func<Ray, FireSunder, Ray>>((Func<Ray, FireSunder, Ray>)delegate(Ray aimRay, FireSunder self) { //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_0053: 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 (Util.AllowPrediction(((EntityState)self).characterBody, loopOnly)) { ((Ray)(ref aimRay)).origin = self.handRTransform.position; HurtBox masterAITargetHurtbox = Util.GetMasterAITargetHurtbox(((EntityState)self).characterBody.master); return Util.PredictAimrayPCC(aimRay, ((BaseState)self).GetTeam(), AccurateEnemiesPlugin.basePredictionAngle, FireSunder.projectilePrefab, masterAITargetHurtbox); } return aimRay; }); } else { Debug.LogError((object)"AccurateEnemies: EntityStates.BeetleGuardMonster.FireSunder.FixedUpdate IL Hook failed"); } }; <>c.<>9__3_0 = val; obj = (object)val; } FireSunder.FixedUpdate += (Manipulator)obj; } } public class Bronzong { [Serializable] [CompilerGenerated] private sealed class <>c { public static readonly <>c <>9 = new <>c(); public static Func<Instruction, bool> <>9__3_2; public static Func<Ray, ChargeTrioBomb, Ray> <>9__3_1; public static Manipulator <>9__3_0; internal void <Init>b__3_0(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_003d: 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>[1] { (Instruction x) => ILPatternMatchingExt.MatchCall<BaseState>(x, "GetAimRay") })) { val.Emit(OpCodes.Ldarg_0); val.EmitDelegate<Func<Ray, ChargeTrioBomb, Ray>>((Func<Ray, ChargeTrioBomb, Ray>)delegate(Ray aimRay, ChargeTrioBomb self) { //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003e: 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) //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) if (Util.AllowPrediction(((EntityState)self).characterBody, loopOnly)) { HurtBox masterAITargetHurtbox = Util.GetMasterAITargetHurtbox(((EntityState)self).characterBody.master); return Util.PredictAimrayPS(aimRay, ((BaseState)self).GetTeam(), AccurateEnemiesPlugin.basePredictionAngle, ChargeTrioBomb.bombProjectilePrefab, masterAITargetHurtbox); } return aimRay; }); } else { Debug.LogError((object)"AccurateEnemies: EntityStates.Bell.BellWeapon.ChargeTrioBomb.FixedUpdate IL Hook failed"); } } internal bool <Init>b__3_2(Instruction x) { return ILPatternMatchingExt.MatchCall<BaseState>(x, "GetAimRay"); } internal Ray <Init>b__3_1(Ray aimRay, ChargeTrioBomb self) { //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003e: 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) //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) if (Util.AllowPrediction(((EntityState)self).characterBody, loopOnly)) { HurtBox masterAITargetHurtbox = Util.GetMasterAITargetHurtbox(((EntityState)self).characterBody.master); return Util.PredictAimrayPS(aimRay, ((BaseState)self).GetTeam(), AccurateEnemiesPlugin.basePredictionAngle, ChargeTrioBomb.bombProjectilePrefab, masterAITargetHurtbox); } return aimRay; } } public static bool enabled = true; public static bool loopOnly = false; private static bool initialized = false; public static void Init() { //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 if (!enabled || initialized) { return; } initialized = true; object obj = <>c.<>9__3_0; if (obj == null) { Manipulator val = delegate(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_003d: Unknown result type (might be due to invalid IL or missing references) ILCursor val2 = new ILCursor(il); if (val2.TryGotoNext((MoveType)2, new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchCall<BaseState>(x, "GetAimRay") })) { val2.Emit(OpCodes.Ldarg_0); val2.EmitDelegate<Func<Ray, ChargeTrioBomb, Ray>>((Func<Ray, ChargeTrioBomb, Ray>)delegate(Ray aimRay, ChargeTrioBomb self) { //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003e: 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) //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) if (Util.AllowPrediction(((EntityState)self).characterBody, loopOnly)) { HurtBox masterAITargetHurtbox = Util.GetMasterAITargetHurtbox(((EntityState)self).characterBody.master); return Util.PredictAimrayPS(aimRay, ((BaseState)self).GetTeam(), AccurateEnemiesPlugin.basePredictionAngle, ChargeTrioBomb.bombProjectilePrefab, masterAITargetHurtbox); } return aimRay; }); } else { Debug.LogError((object)"AccurateEnemies: EntityStates.Bell.BellWeapon.ChargeTrioBomb.FixedUpdate IL Hook failed"); } }; <>c.<>9__3_0 = val; obj = (object)val; } ChargeTrioBomb.FixedUpdate += (Manipulator)obj; } } public class ClayBoss { [Serializable] [CompilerGenerated] private sealed class <>c { public static readonly <>c <>9 = new <>c(); public static Func<Instruction, bool> <>9__3_2; public static Func<Ray, FireFireball, Ray> <>9__3_1; public static Manipulator <>9__3_0; internal void <Init>b__3_0(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_003d: 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>[1] { (Instruction x) => ILPatternMatchingExt.MatchCall<BaseState>(x, "GetAimRay") })) { val.Emit(OpCodes.Ldarg_0); val.EmitDelegate<Func<Ray, FireFireball, Ray>>((Func<Ray, FireFireball, Ray>)delegate(Ray aimRay, FireFireball self) { //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003e: 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) //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) if (Util.AllowPrediction(((EntityState)self).characterBody, loopOnly)) { HurtBox masterAITargetHurtbox = Util.GetMasterAITargetHurtbox(((EntityState)self).characterBody.master); return Util.PredictAimrayPS(aimRay, ((BaseState)self).GetTeam(), AccurateEnemiesPlugin.basePredictionAngle, FireBombardment.projectilePrefab, masterAITargetHurtbox); } return aimRay; }); } else { Debug.LogError((object)"AccurateEnemies: EntityStates.ClayBoss.ClayBossWeapon.FireBombardment.FireGrenade IL Hook failed"); } } internal bool <Init>b__3_2(Instruction x) { return ILPatternMatchingExt.MatchCall<BaseState>(x, "GetAimRay"); } internal Ray <Init>b__3_1(Ray aimRay, FireFireball self) { //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003e: 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) //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) if (Util.AllowPrediction(((EntityState)self).characterBody, loopOnly)) { HurtBox masterAITargetHurtbox = Util.GetMasterAITargetHurtbox(((EntityState)self).characterBody.master); return Util.PredictAimrayPS(aimRay, ((BaseState)self).GetTeam(), AccurateEnemiesPlugin.basePredictionAngle, FireBombardment.projectilePrefab, masterAITargetHurtbox); } return aimRay; } } public static bool enabled = true; public static bool loopOnly = false; private static bool initialized = false; public static void Init() { //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 if (!enabled || initialized) { return; } initialized = true; object obj = <>c.<>9__3_0; if (obj == null) { Manipulator val = delegate(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_003d: Unknown result type (might be due to invalid IL or missing references) ILCursor val2 = new ILCursor(il); if (val2.TryGotoNext((MoveType)2, new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchCall<BaseState>(x, "GetAimRay") })) { val2.Emit(OpCodes.Ldarg_0); val2.EmitDelegate<Func<Ray, FireFireball, Ray>>((Func<Ray, FireFireball, Ray>)delegate(Ray aimRay, FireFireball self) { //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003e: 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) //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) if (Util.AllowPrediction(((EntityState)self).characterBody, loopOnly)) { HurtBox masterAITargetHurtbox = Util.GetMasterAITargetHurtbox(((EntityState)self).characterBody.master); return Util.PredictAimrayPS(aimRay, ((BaseState)self).GetTeam(), AccurateEnemiesPlugin.basePredictionAngle, FireBombardment.projectilePrefab, masterAITargetHurtbox); } return aimRay; }); } else { Debug.LogError((object)"AccurateEnemies: EntityStates.ClayBoss.ClayBossWeapon.FireBombardment.FireGrenade IL Hook failed"); } }; <>c.<>9__3_0 = val; obj = (object)val; } FireBombardment.FireGrenade += (Manipulator)obj; } } public class ClayGrenadier { [Serializable] [CompilerGenerated] private sealed class <>c { public static readonly <>c <>9 = new <>c(); public static hook_ModifyProjectileAimRay <>9__3_0; internal Ray <Init>b__3_0(orig_ModifyProjectileAimRay orig, ThrowBarrel self, Ray aimRay) { //IL_004d: 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_0053: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_003a: 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) //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Unknown result type (might be due to invalid IL or missing references) if (Util.AllowPrediction(((EntityState)self).characterBody, loopOnly)) { HurtBox masterAITargetHurtbox = Util.GetMasterAITargetHurtbox(((EntityState)self).characterBody.master); Ray val = Util.PredictAimrayPS(aimRay, ((BaseState)self).GetTeam(), AccurateEnemiesPlugin.basePredictionAngle, ((GenericProjectileBaseState)self).projectilePrefab, masterAITargetHurtbox); return orig.Invoke(self, val); } return orig.Invoke(self, aimRay); } } public static bool enabled = true; public static bool loopOnly = false; private static bool initialized = false; public static void Init() { //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 if (!enabled || initialized) { return; } initialized = true; object obj = <>c.<>9__3_0; if (obj == null) { hook_ModifyProjectileAimRay val = delegate(orig_ModifyProjectileAimRay orig, ThrowBarrel self, Ray aimRay) { //IL_004d: 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_0053: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_003a: 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) //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Unknown result type (might be due to invalid IL or missing references) if (Util.AllowPrediction(((EntityState)self).characterBody, loopOnly)) { HurtBox masterAITargetHurtbox = Util.GetMasterAITargetHurtbox(((EntityState)self).characterBody.master); Ray val2 = Util.PredictAimrayPS(aimRay, ((BaseState)self).GetTeam(), AccurateEnemiesPlugin.basePredictionAngle, ((GenericProjectileBaseState)self).projectilePrefab, masterAITargetHurtbox); return orig.Invoke(self, val2); } return orig.Invoke(self, aimRay); }; <>c.<>9__3_0 = val; obj = (object)val; } ThrowBarrel.ModifyProjectileAimRay += (hook_ModifyProjectileAimRay)obj; } } public class FlyingVermin { [Serializable] [CompilerGenerated] private sealed class <>c { public static readonly <>c <>9 = new <>c(); public static Func<Instruction, bool> <>9__3_2; public static Func<Ray, GenericProjectileBaseState, Ray> <>9__3_1; public static Manipulator <>9__3_0; internal void <Init>b__3_0(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_003d: 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>[1] { (Instruction x) => ILPatternMatchingExt.MatchCall<BaseState>(x, "GetAimRay") })) { val.Emit(OpCodes.Ldarg_0); val.EmitDelegate<Func<Ray, GenericProjectileBaseState, Ray>>((Func<Ray, GenericProjectileBaseState, Ray>)delegate(Ray aimRay, GenericProjectileBaseState self) { //IL_0060: 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_0065: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_005a: Unknown result type (might be due to invalid IL or missing references) //IL_005b: Unknown result type (might be due to invalid IL or missing references) if (((object)self).GetType() == typeof(Spit) && Util.AllowPrediction(((EntityState)self).characterBody, loopOnly)) { HurtBox masterAITargetHurtbox = Util.GetMasterAITargetHurtbox(((EntityState)self).characterBody.master); return Util.PredictAimrayPS(aimRay, ((BaseState)self).GetTeam(), AccurateEnemiesPlugin.basePredictionAngle, self.projectilePrefab, masterAITargetHurtbox); } return aimRay; }); } else { Debug.LogError((object)"AccurateEnemies: FlyingVermin EntityStates.GenericProjectileBaseState.FireProjectile IL Hook failed"); } } internal bool <Init>b__3_2(Instruction x) { return ILPatternMatchingExt.MatchCall<BaseState>(x, "GetAimRay"); } internal Ray <Init>b__3_1(Ray aimRay, GenericProjectileBaseState self) { //IL_0060: 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_0065: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_005a: Unknown result type (might be due to invalid IL or missing references) //IL_005b: Unknown result type (might be due to invalid IL or missing references) if (((object)self).GetType() == typeof(Spit) && Util.AllowPrediction(((EntityState)self).characterBody, loopOnly)) { HurtBox masterAITargetHurtbox = Util.GetMasterAITargetHurtbox(((EntityState)self).characterBody.master); return Util.PredictAimrayPS(aimRay, ((BaseState)self).GetTeam(), AccurateEnemiesPlugin.basePredictionAngle, self.projectilePrefab, masterAITargetHurtbox); } return aimRay; } } public static bool enabled = true; public static bool loopOnly = false; private static bool initialized = false; public static void Init() { //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 if (!enabled || initialized) { return; } initialized = true; object obj = <>c.<>9__3_0; if (obj == null) { Manipulator val = delegate(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_003d: Unknown result type (might be due to invalid IL or missing references) ILCursor val2 = new ILCursor(il); if (val2.TryGotoNext((MoveType)2, new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchCall<BaseState>(x, "GetAimRay") })) { val2.Emit(OpCodes.Ldarg_0); val2.EmitDelegate<Func<Ray, GenericProjectileBaseState, Ray>>((Func<Ray, GenericProjectileBaseState, Ray>)delegate(Ray aimRay, GenericProjectileBaseState self) { //IL_0060: 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_0065: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_005a: Unknown result type (might be due to invalid IL or missing references) //IL_005b: Unknown result type (might be due to invalid IL or missing references) if (((object)self).GetType() == typeof(Spit) && Util.AllowPrediction(((EntityState)self).characterBody, loopOnly)) { HurtBox masterAITargetHurtbox = Util.GetMasterAITargetHurtbox(((EntityState)self).characterBody.master); return Util.PredictAimrayPS(aimRay, ((BaseState)self).GetTeam(), AccurateEnemiesPlugin.basePredictionAngle, self.projectilePrefab, masterAITargetHurtbox); } return aimRay; }); } else { Debug.LogError((object)"AccurateEnemies: FlyingVermin EntityStates.GenericProjectileBaseState.FireProjectile IL Hook failed"); } }; <>c.<>9__3_0 = val; obj = (object)val; } GenericProjectileBaseState.FireProjectile += (Manipulator)obj; } } public class GreaterWisp { [Serializable] [CompilerGenerated] private sealed class <>c { public static readonly <>c <>9 = new <>c(); public static Func<Instruction, bool> <>9__3_2; public static Func<Ray, FireCannons, Ray> <>9__3_1; public static Manipulator <>9__3_0; internal void <Init>b__3_0(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_003d: 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>[1] { (Instruction x) => ILPatternMatchingExt.MatchCall<BaseState>(x, "GetAimRay") })) { val.Emit(OpCodes.Ldarg_0); val.EmitDelegate<Func<Ray, FireCannons, Ray>>((Func<Ray, FireCannons, Ray>)delegate(Ray aimRay, FireCannons self) { //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_003a: 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) //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) if (Util.AllowPrediction(((EntityState)self).characterBody, loopOnly)) { HurtBox masterAITargetHurtbox = Util.GetMasterAITargetHurtbox(((EntityState)self).characterBody.master); return Util.PredictAimrayPS(aimRay, ((BaseState)self).GetTeam(), AccurateEnemiesPlugin.basePredictionAngle, self.projectilePrefab, masterAITargetHurtbox); } return aimRay; }); } else { Debug.LogError((object)"AccurateEnemies: EntityStates.GreaterWispMonster.FireCannons.OnEnter IL Hook failed"); } } internal bool <Init>b__3_2(Instruction x) { return ILPatternMatchingExt.MatchCall<BaseState>(x, "GetAimRay"); } internal Ray <Init>b__3_1(Ray aimRay, FireCannons self) { //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_003a: 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) //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) if (Util.AllowPrediction(((EntityState)self).characterBody, loopOnly)) { HurtBox masterAITargetHurtbox = Util.GetMasterAITargetHurtbox(((EntityState)self).characterBody.master); return Util.PredictAimrayPS(aimRay, ((BaseState)self).GetTeam(), AccurateEnemiesPlugin.basePredictionAngle, self.projectilePrefab, masterAITargetHurtbox); } return aimRay; } } public static bool enabled = true; public static bool loopOnly = false; private static bool initialized = false; public static void Init() { //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 if (!enabled || initialized) { return; } initialized = true; object obj = <>c.<>9__3_0; if (obj == null) { Manipulator val = delegate(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_003d: Unknown result type (might be due to invalid IL or missing references) ILCursor val2 = new ILCursor(il); if (val2.TryGotoNext((MoveType)2, new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchCall<BaseState>(x, "GetAimRay") })) { val2.Emit(OpCodes.Ldarg_0); val2.EmitDelegate<Func<Ray, FireCannons, Ray>>((Func<Ray, FireCannons, Ray>)delegate(Ray aimRay, FireCannons self) { //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_003a: 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) //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) if (Util.AllowPrediction(((EntityState)self).characterBody, loopOnly)) { HurtBox masterAITargetHurtbox = Util.GetMasterAITargetHurtbox(((EntityState)self).characterBody.master); return Util.PredictAimrayPS(aimRay, ((BaseState)self).GetTeam(), AccurateEnemiesPlugin.basePredictionAngle, self.projectilePrefab, masterAITargetHurtbox); } return aimRay; }); } else { Debug.LogError((object)"AccurateEnemies: EntityStates.GreaterWispMonster.FireCannons.OnEnter IL Hook failed"); } }; <>c.<>9__3_0 = val; obj = (object)val; } FireCannons.OnEnter += (Manipulator)obj; } } public class Grovetender { [Serializable] [CompilerGenerated] private sealed class <>c { public static readonly <>c <>9 = new <>c(); public static Func<Instruction, bool> <>9__3_2; public static Func<Ray, FireHook, Ray> <>9__3_1; public static Manipulator <>9__3_0; internal void <Init>b__3_0(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_003d: 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>[1] { (Instruction x) => ILPatternMatchingExt.MatchCall<BaseState>(x, "GetAimRay") })) { val.Emit(OpCodes.Ldarg_0); val.EmitDelegate<Func<Ray, FireHook, Ray>>((Func<Ray, FireHook, Ray>)delegate(Ray aimRay, FireHook self) { //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003e: 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) //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) if (Util.AllowPrediction(((EntityState)self).characterBody, loopOnly)) { HurtBox masterAITargetHurtbox = Util.GetMasterAITargetHurtbox(((EntityState)self).characterBody.master); return Util.PredictAimrayPS(aimRay, ((BaseState)self).GetTeam(), AccurateEnemiesPlugin.basePredictionAngle, FireHook.projectilePrefab, masterAITargetHurtbox); } return aimRay; }); } else { Debug.LogError((object)"AccurateEnemies: EntityStates.GravekeeperBoss.FireHook.OnEnter IL Hook failed"); } } internal bool <Init>b__3_2(Instruction x) { return ILPatternMatchingExt.MatchCall<BaseState>(x, "GetAimRay"); } internal Ray <Init>b__3_1(Ray aimRay, FireHook self) { //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003e: 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) //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) if (Util.AllowPrediction(((EntityState)self).characterBody, loopOnly)) { HurtBox masterAITargetHurtbox = Util.GetMasterAITargetHurtbox(((EntityState)self).characterBody.master); return Util.PredictAimrayPS(aimRay, ((BaseState)self).GetTeam(), AccurateEnemiesPlugin.basePredictionAngle, FireHook.projectilePrefab, masterAITargetHurtbox); } return aimRay; } } public static bool enabled = true; public static bool loopOnly = false; private static bool initialized = false; public static void Init() { //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 if (!enabled || initialized) { return; } initialized = true; object obj = <>c.<>9__3_0; if (obj == null) { Manipulator val = delegate(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_003d: Unknown result type (might be due to invalid IL or missing references) ILCursor val2 = new ILCursor(il); if (val2.TryGotoNext((MoveType)2, new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchCall<BaseState>(x, "GetAimRay") })) { val2.Emit(OpCodes.Ldarg_0); val2.EmitDelegate<Func<Ray, FireHook, Ray>>((Func<Ray, FireHook, Ray>)delegate(Ray aimRay, FireHook self) { //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003e: 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) //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) if (Util.AllowPrediction(((EntityState)self).characterBody, loopOnly)) { HurtBox masterAITargetHurtbox = Util.GetMasterAITargetHurtbox(((EntityState)self).characterBody.master); return Util.PredictAimrayPS(aimRay, ((BaseState)self).GetTeam(), AccurateEnemiesPlugin.basePredictionAngle, FireHook.projectilePrefab, masterAITargetHurtbox); } return aimRay; }); } else { Debug.LogError((object)"AccurateEnemies: EntityStates.GravekeeperBoss.FireHook.OnEnter IL Hook failed"); } }; <>c.<>9__3_0 = val; obj = (object)val; } FireHook.OnEnter += (Manipulator)obj; } } public class Lemurian { [Serializable] [CompilerGenerated] private sealed class <>c { public static readonly <>c <>9 = new <>c(); public static Func<Instruction, bool> <>9__3_2; public static Func<Ray, FireFireball, Ray> <>9__3_1; public static Manipulator <>9__3_0; internal void <Init>b__3_0(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_003d: 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>[1] { (Instruction x) => ILPatternMatchingExt.MatchCall<BaseState>(x, "GetAimRay") })) { val.Emit(OpCodes.Ldarg_0); val.EmitDelegate<Func<Ray, FireFireball, Ray>>((Func<Ray, FireFireball, Ray>)delegate(Ray aimRay, FireFireball self) { //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003e: 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) //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) if (Util.AllowPrediction(((EntityState)self).characterBody, loopOnly)) { HurtBox masterAITargetHurtbox = Util.GetMasterAITargetHurtbox(((EntityState)self).characterBody.master); return Util.PredictAimrayPS(aimRay, ((BaseState)self).GetTeam(), AccurateEnemiesPlugin.basePredictionAngle, FireFireball.projectilePrefab, masterAITargetHurtbox); } return aimRay; }); } else { Debug.LogError((object)"AccurateEnemies: EntityStates.LemurianMonster.FireFireball.OnEnter IL Hook failed"); } } internal bool <Init>b__3_2(Instruction x) { return ILPatternMatchingExt.MatchCall<BaseState>(x, "GetAimRay"); } internal Ray <Init>b__3_1(Ray aimRay, FireFireball self) { //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003e: 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) //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) if (Util.AllowPrediction(((EntityState)self).characterBody, loopOnly)) { HurtBox masterAITargetHurtbox = Util.GetMasterAITargetHurtbox(((EntityState)self).characterBody.master); return Util.PredictAimrayPS(aimRay, ((BaseState)self).GetTeam(), AccurateEnemiesPlugin.basePredictionAngle, FireFireball.projectilePrefab, masterAITargetHurtbox); } return aimRay; } } public static bool enabled = true; public static bool loopOnly = false; private static bool initialized = false; public static void Init() { //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 if (!enabled || initialized) { return; } initialized = true; object obj = <>c.<>9__3_0; if (obj == null) { Manipulator val = delegate(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_003d: Unknown result type (might be due to invalid IL or missing references) ILCursor val2 = new ILCursor(il); if (val2.TryGotoNext((MoveType)2, new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchCall<BaseState>(x, "GetAimRay") })) { val2.Emit(OpCodes.Ldarg_0); val2.EmitDelegate<Func<Ray, FireFireball, Ray>>((Func<Ray, FireFireball, Ray>)delegate(Ray aimRay, FireFireball self) { //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003e: 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) //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) if (Util.AllowPrediction(((EntityState)self).characterBody, loopOnly)) { HurtBox masterAITargetHurtbox = Util.GetMasterAITargetHurtbox(((EntityState)self).characterBody.master); return Util.PredictAimrayPS(aimRay, ((BaseState)self).GetTeam(), AccurateEnemiesPlugin.basePredictionAngle, FireFireball.projectilePrefab, masterAITargetHurtbox); } return aimRay; }); } else { Debug.LogError((object)"AccurateEnemies: EntityStates.LemurianMonster.FireFireball.OnEnter IL Hook failed"); } }; <>c.<>9__3_0 = val; obj = (object)val; } FireFireball.OnEnter += (Manipulator)obj; } } public class LemurianBruiser { [Serializable] [CompilerGenerated] private sealed class <>c { public static readonly <>c <>9 = new <>c(); public static Func<Instruction, bool> <>9__3_2; public static Func<Ray, FireMegaFireball, Ray> <>9__3_1; public static Manipulator <>9__3_0; internal void <Init>b__3_0(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_003d: 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>[1] { (Instruction x) => ILPatternMatchingExt.MatchCall<BaseState>(x, "GetAimRay") })) { val.Emit(OpCodes.Ldarg_0); val.EmitDelegate<Func<Ray, FireMegaFireball, Ray>>((Func<Ray, FireMegaFireball, Ray>)delegate(Ray aimRay, FireMegaFireball self) { //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Invalid comparison between Unknown and I4 //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_0087: 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_0057: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) if (Util.AllowPrediction(((EntityState)self).characterBody, loopOnly)) { HurtBox masterAITargetHurtbox = Util.GetMasterAITargetHurtbox(((EntityState)self).characterBody.master); float num = FireMegaFireball.projectileSpeed; Ray result; if (num > 0f) { if ((int)((BaseState)self).GetTeam() != 1) { num = AccurateEnemiesPlugin.GetProjectileSimpleModifiers(num); } result = Util.PredictAimray(aimRay, ((BaseState)self).GetTeam(), AccurateEnemiesPlugin.basePredictionAngle, num, masterAITargetHurtbox); } else { result = Util.PredictAimrayPS(aimRay, ((BaseState)self).GetTeam(), AccurateEnemiesPlugin.basePredictionAngle, FireMegaFireball.projectilePrefab, masterAITargetHurtbox); } return result; } return aimRay; }); } else { Debug.LogError((object)"AccurateEnemies: EntityStates.LemurianBruiserMonster.FireMegaFireball.FixedUpdate IL Hook failed"); } } internal bool <Init>b__3_2(Instruction x) { return ILPatternMatchingExt.MatchCall<BaseState>(x, "GetAimRay"); } internal Ray <Init>b__3_1(Ray aimRay, FireMegaFireball self) { //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Invalid comparison between Unknown and I4 //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_0087: 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_0057: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) if (Util.AllowPrediction(((EntityState)self).characterBody, loopOnly)) { HurtBox masterAITargetHurtbox = Util.GetMasterAITargetHurtbox(((EntityState)self).characterBody.master); float num = FireMegaFireball.projectileSpeed; Ray result; if (num > 0f) { if ((int)((BaseState)self).GetTeam() != 1) { num = AccurateEnemiesPlugin.GetProjectileSimpleModifiers(num); } result = Util.PredictAimray(aimRay, ((BaseState)self).GetTeam(), AccurateEnemiesPlugin.basePredictionAngle, num, masterAITargetHurtbox); } else { result = Util.PredictAimrayPS(aimRay, ((BaseState)self).GetTeam(), AccurateEnemiesPlugin.basePredictionAngle, FireMegaFireball.projectilePrefab, masterAITargetHurtbox); } return result; } return aimRay; } } public static bool enabled = true; public static bool loopOnly = false; private static bool initialized = false; public static void Init() { //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 if (!enabled || initialized) { return; } initialized = true; object obj = <>c.<>9__3_0; if (obj == null) { Manipulator val = delegate(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_003d: Unknown result type (might be due to invalid IL or missing references) ILCursor val2 = new ILCursor(il); if (val2.TryGotoNext((MoveType)2, new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchCall<BaseState>(x, "GetAimRay") })) { val2.Emit(OpCodes.Ldarg_0); val2.EmitDelegate<Func<Ray, FireMegaFireball, Ray>>((Func<Ray, FireMegaFireball, Ray>)delegate(Ray aimRay, FireMegaFireball self) { //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Invalid comparison between Unknown and I4 //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_0087: 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_0057: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) if (Util.AllowPrediction(((EntityState)self).characterBody, loopOnly)) { HurtBox masterAITargetHurtbox = Util.GetMasterAITargetHurtbox(((EntityState)self).characterBody.master); float num = FireMegaFireball.projectileSpeed; Ray result; if (num > 0f) { if ((int)((BaseState)self).GetTeam() != 1) { num = AccurateEnemiesPlugin.GetProjectileSimpleModifiers(num); } result = Util.PredictAimray(aimRay, ((BaseState)self).GetTeam(), AccurateEnemiesPlugin.basePredictionAngle, num, masterAITargetHurtbox); } else { result = Util.PredictAimrayPS(aimRay, ((BaseState)self).GetTeam(), AccurateEnemiesPlugin.basePredictionAngle, FireMegaFireball.projectilePrefab, masterAITargetHurtbox); } return result; } return aimRay; }); } else { Debug.LogError((object)"AccurateEnemies: EntityStates.LemurianBruiserMonster.FireMegaFireball.FixedUpdate IL Hook failed"); } }; <>c.<>9__3_0 = val; obj = (object)val; } FireMegaFireball.FixedUpdate += (Manipulator)obj; } } public class LunarExploder { [Serializable] [CompilerGenerated] private sealed class <>c { public static readonly <>c <>9 = new <>c(); public static Func<Instruction, bool> <>9__3_2; public static Func<Ray, GenericProjectileBaseState, Ray> <>9__3_1; public static Manipulator <>9__3_0; internal void <Init>b__3_0(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_003d: 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>[1] { (Instruction x) => ILPatternMatchingExt.MatchCall<BaseState>(x, "GetAimRay") })) { val.Emit(OpCodes.Ldarg_0); val.EmitDelegate<Func<Ray, GenericProjectileBaseState, Ray>>((Func<Ray, GenericProjectileBaseState, Ray>)delegate(Ray aimRay, GenericProjectileBaseState self) { //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_007e: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0076: Unknown result type (might be due to invalid IL or missing references) //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) if (Util.AllowPrediction(((EntityState)self).characterBody, loopOnly) && Object.op_Implicit((Object)(object)((EntityState)self).characterBody) && !((EntityState)self).characterBody.isPlayerControlled && (!AccurateEnemiesPlugin.eliteOnly || ((EntityState)self).characterBody.isElite)) { HurtBox masterAITargetHurtbox = Util.GetMasterAITargetHurtbox(((EntityState)self).characterBody.master); return Util.PredictAimrayPS(aimRay, ((BaseState)self).GetTeam(), AccurateEnemiesPlugin.basePredictionAngle, self.projectilePrefab, masterAITargetHurtbox); } return aimRay; }); } else { Debug.LogError((object)"AccurateEnemies: LunarExploder EntityStates.GenericProjectileBaseState.FireProjectile IL Hook failed"); } } internal bool <Init>b__3_2(Instruction x) { return ILPatternMatchingExt.MatchCall<BaseState>(x, "GetAimRay"); } internal Ray <Init>b__3_1(Ray aimRay, GenericProjectileBaseState self) { //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_007e: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0076: Unknown result type (might be due to invalid IL or missing references) //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) if (Util.AllowPrediction(((EntityState)self).characterBody, loopOnly) && Object.op_Implicit((Object)(object)((EntityState)self).characterBody) && !((EntityState)self).characterBody.isPlayerControlled && (!AccurateEnemiesPlugin.eliteOnly || ((EntityState)self).characterBody.isElite)) { HurtBox masterAITargetHurtbox = Util.GetMasterAITargetHurtbox(((EntityState)self).characterBody.master); return Util.PredictAimrayPS(aimRay, ((BaseState)self).GetTeam(), AccurateEnemiesPlugin.basePredictionAngle, self.projectilePrefab, masterAITargetHurtbox); } return aimRay; } } public static bool enabled = true; public static bool loopOnly = false; private static bool initialized = false; public static void Init() { //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 if (!enabled || initialized) { return; } initialized = true; object obj = <>c.<>9__3_0; if (obj == null) { Manipulator val = delegate(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_003d: Unknown result type (might be due to invalid IL or missing references) ILCursor val2 = new ILCursor(il); if (val2.TryGotoNext((MoveType)2, new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchCall<BaseState>(x, "GetAimRay") })) { val2.Emit(OpCodes.Ldarg_0); val2.EmitDelegate<Func<Ray, GenericProjectileBaseState, Ray>>((Func<Ray, GenericProjectileBaseState, Ray>)delegate(Ray aimRay, GenericProjectileBaseState self) { //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_007e: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0076: Unknown result type (might be due to invalid IL or missing references) //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) if (Util.AllowPrediction(((EntityState)self).characterBody, loopOnly) && Object.op_Implicit((Object)(object)((EntityState)self).characterBody) && !((EntityState)self).characterBody.isPlayerControlled && (!AccurateEnemiesPlugin.eliteOnly || ((EntityState)self).characterBody.isElite)) { HurtBox masterAITargetHurtbox = Util.GetMasterAITargetHurtbox(((EntityState)self).characterBody.master); return Util.PredictAimrayPS(aimRay, ((BaseState)self).GetTeam(), AccurateEnemiesPlugin.basePredictionAngle, self.projectilePrefab, masterAITargetHurtbox); } return aimRay; }); } else { Debug.LogError((object)"AccurateEnemies: LunarExploder EntityStates.GenericProjectileBaseState.FireProjectile IL Hook failed"); } }; <>c.<>9__3_0 = val; obj = (object)val; } GenericProjectileBaseState.FireProjectile += (Manipulator)obj; } } public class MinorConstruct { [Serializable] [CompilerGenerated] private sealed class <>c { public static readonly <>c <>9 = new <>c(); public static Func<Instruction, bool> <>9__3_2; public static Func<Ray, GenericProjectileBaseState, Ray> <>9__3_1; public static Manipulator <>9__3_0; internal void <Init>b__3_0(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_003d: 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>[1] { (Instruction x) => ILPatternMatchingExt.MatchCall<BaseState>(x, "GetAimRay") })) { val.Emit(OpCodes.Ldarg_0); val.EmitDelegate<Func<Ray, GenericProjectileBaseState, Ray>>((Func<Ray, GenericProjectileBaseState, Ray>)delegate(Ray aimRay, GenericProjectileBaseState self) { //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_007e: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0076: Unknown result type (might be due to invalid IL or missing references) //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) if (Util.AllowPrediction(((EntityState)self).characterBody, loopOnly) && Object.op_Implicit((Object)(object)((EntityState)self).characterBody) && !((EntityState)self).characterBody.isPlayerControlled && (!AccurateEnemiesPlugin.eliteOnly || ((EntityState)self).characterBody.isElite)) { HurtBox masterAITargetHurtbox = Util.GetMasterAITargetHurtbox(((EntityState)self).characterBody.master); return Util.PredictAimrayPS(aimRay, ((BaseState)self).GetTeam(), AccurateEnemiesPlugin.basePredictionAngle, self.projectilePrefab, masterAITargetHurtbox); } return aimRay; }); } else { Debug.LogError((object)"AccurateEnemies: MinorConstruct EntityStates.GenericProjectileBaseState.FireProjectile IL Hook failed"); } } internal bool <Init>b__3_2(Instruction x) { return ILPatternMatchingExt.MatchCall<BaseState>(x, "GetAimRay"); } internal Ray <Init>b__3_1(Ray aimRay, GenericProjectileBaseState self) { //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_007e: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0076: Unknown result type (might be due to invalid IL or missing references) //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) if (Util.AllowPrediction(((EntityState)self).characterBody, loopOnly) && Object.op_Implicit((Object)(object)((EntityState)self).characterBody) && !((EntityState)self).characterBody.isPlayerControlled && (!AccurateEnemiesPlugin.eliteOnly || ((EntityState)self).characterBody.isElite)) { HurtBox masterAITargetHurtbox = Util.GetMasterAITargetHurtbox(((EntityState)self).characterBody.master); return Util.PredictAimrayPS(aimRay, ((BaseState)self).GetTeam(), AccurateEnemiesPlugin.basePredictionAngle, self.projectilePrefab, masterAITargetHurtbox); } return aimRay; } } public static bool enabled = true; public static bool loopOnly = false; private static bool initialized = false; public static void Init() { //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 if (!enabled || initialized) { return; } initialized = true; object obj = <>c.<>9__3_0; if (obj == null) { Manipulator val = delegate(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_003d: Unknown result type (might be due to invalid IL or missing references) ILCursor val2 = new ILCursor(il); if (val2.TryGotoNext((MoveType)2, new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchCall<BaseState>(x, "GetAimRay") })) { val2.Emit(OpCodes.Ldarg_0); val2.EmitDelegate<Func<Ray, GenericProjectileBaseState, Ray>>((Func<Ray, GenericProjectileBaseState, Ray>)delegate(Ray aimRay, GenericProjectileBaseState self) { //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_007e: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0076: Unknown result type (might be due to invalid IL or missing references) //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) if (Util.AllowPrediction(((EntityState)self).characterBody, loopOnly) && Object.op_Implicit((Object)(object)((EntityState)self).characterBody) && !((EntityState)self).characterBody.isPlayerControlled && (!AccurateEnemiesPlugin.eliteOnly || ((EntityState)self).characterBody.isElite)) { HurtBox masterAITargetHurtbox = Util.GetMasterAITargetHurtbox(((EntityState)self).characterBody.master); return Util.PredictAimrayPS(aimRay, ((BaseState)self).GetTeam(), AccurateEnemiesPlugin.basePredictionAngle, self.projectilePrefab, masterAITargetHurtbox); } return aimRay; }); } else { Debug.LogError((object)"AccurateEnemies: MinorConstruct EntityStates.GenericProjectileBaseState.FireProjectile IL Hook failed"); } }; <>c.<>9__3_0 = val; obj = (object)val; } GenericProjectileBaseState.FireProjectile += (Manipulator)obj; } } public class RoboBallBoss { [Serializable] [CompilerGenerated] private sealed class <>c { public static readonly <>c <>9 = new <>c(); public static Func<Instruction, bool> <>9__3_2; public static Func<Ray, FireEyeBlast, Ray> <>9__3_1; public static Manipulator <>9__3_0; internal void <Init>b__3_0(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_003d: 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>[1] { (Instruction x) => ILPatternMatchingExt.MatchCall<BaseState>(x, "GetAimRay") })) { val.Emit(OpCodes.Ldarg_0); val.EmitDelegate<Func<Ray, FireEyeBlast, Ray>>((Func<Ray, FireEyeBlast, Ray>)delegate(Ray aimRay, FireEyeBlast self) { //IL_008d: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_0092: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Invalid comparison between Unknown and I4 //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Unknown result type (might be due to invalid IL or missing references) if (Util.AllowPrediction(((EntityState)self).characterBody, loopOnly)) { HurtBox masterAITargetHurtbox = Util.GetMasterAITargetHurtbox(((EntityState)self).characterBody.master); float num = self.projectileSpeed; Ray result; if (num > 0f) { if ((int)((BaseState)self).GetTeam() != 1) { num = AccurateEnemiesPlugin.GetProjectileSimpleModifiers(num); } result = Util.PredictAimray(aimRay, ((BaseState)self).GetTeam(), AccurateEnemiesPlugin.basePredictionAngle, num, masterAITargetHurtbox); } else { result = Util.PredictAimrayPS(aimRay, ((BaseState)self).GetTeam(), AccurateEnemiesPlugin.basePredictionAngle, self.projectilePrefab, masterAITargetHurtbox); } return result; } return aimRay; }); } else { Debug.LogError((object)"AccurateEnemies: EntityStates.RoboBallBoss.Weapon.FireEyeBlast.FixedUpdate IL Hook failed"); } } internal bool <Init>b__3_2(Instruction x) { return ILPatternMatchingExt.MatchCall<BaseState>(x, "GetAimRay"); } internal Ray <Init>b__3_1(Ray aimRay, FireEyeBlast self) { //IL_008d: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_0092: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Invalid comparison between Unknown and I4 //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Unknown result type (might be due to invalid IL or missing references) if (Util.AllowPrediction(((EntityState)self).characterBody, loopOnly)) { HurtBox masterAITargetHurtbox = Util.GetMasterAITargetHurtbox(((EntityState)self).characterBody.master); float num = self.projectileSpeed; Ray result; if (num > 0f) { if ((int)((BaseState)self).GetTeam() != 1) { num = AccurateEnemiesPlugin.GetProjectileSimpleModifiers(num); } result = Util.PredictAimray(aimRay, ((BaseState)self).GetTeam(), AccurateEnemiesPlugin.basePredictionAngle, num, masterAITargetHurtbox); } else { result = Util.PredictAimrayPS(aimRay, ((BaseState)self).GetTeam(), AccurateEnemiesPlugin.basePredictionAngle, self.projectilePrefab, masterAITargetHurtbox); } return result; } return aimRay; } } public static bool enabled = true; public static bool loopOnly = false; private static bool initialized = false; public static void Init() { //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 if (!enabled || initialized) { return; } initialized = true; object obj = <>c.<>9__3_0; if (obj == null) { Manipulator val = delegate(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_003d: Unknown result type (might be due to invalid IL or missing references) ILCursor val2 = new ILCursor(il); if (val2.TryGotoNext((MoveType)2, new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchCall<BaseState>(x, "GetAimRay") })) { val2.Emit(OpCodes.Ldarg_0); val2.EmitDelegate<Func<Ray, FireEyeBlast, Ray>>((Func<Ray, FireEyeBlast, Ray>)delegate(Ray aimRay, FireEyeBlast self) { //IL_008d: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_0092: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Invalid comparison between Unknown and I4 //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Unknown result type (might be due to invalid IL or missing references) if (Util.AllowPrediction(((EntityState)self).characterBody, loopOnly)) { HurtBox masterAITargetHurtbox = Util.GetMasterAITargetHurtbox(((EntityState)self).characterBody.master); float num = self.projectileSpeed; Ray result; if (num > 0f) { if ((int)((BaseState)self).GetTeam() != 1) { num = AccurateEnemiesPlugin.GetProjectileSimpleModifiers(num); } result = Util.PredictAimray(aimRay, ((BaseState)self).GetTeam(), AccurateEnemiesPlugin.basePredictionAngle, num, masterAITargetHurtbox); } else { result = Util.PredictAimrayPS(aimRay, ((BaseState)self).GetTeam(), AccurateEnemiesPlugin.basePredictionAngle, self.projectilePrefab, masterAITargetHurtbox); } return result; } return aimRay; }); } else { Debug.LogError((object)"AccurateEnemies: EntityStates.RoboBallBoss.Weapon.FireEyeBlast.FixedUpdate IL Hook failed"); } }; <>c.<>9__3_0 = val; obj = (object)val; } FireEyeBlast.FixedUpdate += (Manipulator)obj; } } public class Scavenger { [Serializable] [CompilerGenerated] private sealed class <>c { public static readonly <>c <>9 = new <>c(); public static Func<Instruction, bool> <>9__3_2; public static Func<Ray, FireEnergyCannon, Ray> <>9__3_1; public static Manipulator <>9__3_0; internal void <Init>b__3_0(ILContext il) { //IL_0002: Unknown result type (might be due to i