Decompiled source of AccurateEnemies v1.1.0
AccurateEnemies.dll
Decompiled 6 months 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