Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of SeekerEnemiesTweaks v1.0.3
SeekerEnemiesTweaks.dll
Decompiled 2 weeks agousing 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 BepInEx; using BepInEx.Logging; using EntityStates; using EntityStates.Halcyonite; using EntityStates.Scorchling; using HG; using HG.GeneralSerializer; using IL.RoR2; using KinematicCharacterController; using Microsoft.CodeAnalysis; using Mono.Cecil.Cil; using MonoMod.Cil; using On; using On.EntityStates.Halcyonite; using On.EntityStates.Scorchling; using On.RoR2; using R2API; using RoR2; using RoR2.CharacterAI; using RoR2.ContentManagement; using RoR2.Projectile; using RoR2.Skills; using RoR2BepInExPack.GameAssetPaths.Version_1_39_0; using UnityEngine; using UnityEngine.AddressableAssets; using UnityEngine.Networking; using UnityEngine.ResourceManagement.AsyncOperations; [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.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("SeekerEnemiesTweaks")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("SeekerEnemiesTweaks")] [assembly: AssemblyTitle("SeekerEnemiesTweaks")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Embedded] [AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)] internal sealed class RefSafetyRulesAttribute : Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } namespace SeekerEnemiesTweaks { internal static class Log { private static ManualLogSource _logSource; internal static void Init(ManualLogSource logSource) { _logSource = logSource; } internal static void Debug(object data) { _logSource.LogDebug(data); } internal static void Error(object data) { _logSource.LogError(data); } internal static void Fatal(object data) { _logSource.LogFatal(data); } internal static void Info(object data) { _logSource.LogInfo(data); } internal static void Message(object data) { _logSource.LogMessage(data); } internal static void Warning(object data) { _logSource.LogWarning(data); } } [BepInPlugin("CrypticAuthor.SeekerEnemiesTweaks", "SeekerEnemiesTweaks", "1.0.3")] public class SeekerEnemiesTweaks : BaseUnityPlugin { public class LavaBombChange : BaseState { public float breachToSpitTime = 1f; public float spitToLaunchTime = 1f; public float spitToBurrowTime = 1.5f; public float burrowToEndOfTime = 1f; public float animDurationBreach; public float animDurationSpit = 1f; public float animDurationBurrow = 1f; public float animDurationPostSpit = 1f; public float percentageToFireProjectile = 0.33f; public float burrowRadius = 2f; public static int mortarCount; public static float mortarDamageCoefficient = 1f; public static float minimumDistance = 15f; public static float timeToTarget = 1.2f; public static float projectileVelocity = 50f; private bool spitStarted; private bool firedProjectile; private bool earlyExit; public string spitSoundString; public GameObject burrowEffectPrefab; private ScorchlingController sController; private CharacterBody target; public override void OnEnter() { ((BaseState)this).OnEnter(); sController = ((Component)((EntityState)this).characterBody).GetComponent<ScorchlingController>(); animDurationBreach = (sController.isBurrowed ? animDurationBreach : 0f); spitToBurrowTime += animDurationBreach + animDurationSpit; burrowToEndOfTime += spitToBurrowTime; Target currentEnemy = ((Component)((EntityState)this).characterBody.master).GetComponent<BaseAI>().currentEnemy; target = ((currentEnemy != null) ? currentEnemy.characterBody : null); if (sController.isBurrowed) { earlyExit = true; } else { ((EntityState)this).characterBody.SetAimTimer(burrowToEndOfTime); } } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); if (earlyExit) { return; } if (!spitStarted && ((EntityState)this).fixedAge > animDurationBreach) { spitStarted = true; ((EntityState)this).PlayAnimation("FullBody, Override", "Spit", "Spit.playbackRate", animDurationSpit, 0f); } if (spitStarted && !firedProjectile && ((EntityState)this).fixedAge > animDurationSpit * percentageToFireProjectile + animDurationBreach) { firedProjectile = true; Util.PlaySound(spitSoundString, ((EntityState)this).gameObject); EffectManager.SimpleMuzzleFlash(ScorchlingLavaBomb.mortarMuzzleflashEffect, ((EntityState)this).gameObject, "MuzzleFire", false); if (((EntityState)this).isAuthority) { Spit(); } } if (firedProjectile && !(((EntityState)this).fixedAge <= animDurationBreach + animDurationSpit + animDurationPostSpit)) { ((EntityState)this).outer.SetNextStateToMain(); } } public void Spit() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001d: 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_0052: 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_0065: Unknown result type (might be due to invalid IL or missing references) //IL_0072: 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_007f: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Expected O, but got Unknown //IL_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Expected O, but got Unknown //IL_00b5: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_00ba: Unknown result type (might be due to invalid IL or missing references) //IL_00bf: Unknown result type (might be due to invalid IL or missing references) //IL_00c6: Unknown result type (might be due to invalid IL or missing references) //IL_00c7: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: Unknown result type (might be due to invalid IL or missing references) //IL_00d0: Unknown result type (might be due to invalid IL or missing references) //IL_00e0: Unknown result type (might be due to invalid IL or missing references) //IL_00fd: Unknown result type (might be due to invalid IL or missing references) //IL_0105: Unknown result type (might be due to invalid IL or missing references) //IL_010f: Expected O, but got Unknown //IL_009b: Unknown result type (might be due to invalid IL or missing references) //IL_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_012a: Unknown result type (might be due to invalid IL or missing references) //IL_011d: Unknown result type (might be due to invalid IL or missing references) //IL_0122: Unknown result type (might be due to invalid IL or missing references) //IL_0140: Unknown result type (might be due to invalid IL or missing references) //IL_0142: Unknown result type (might be due to invalid IL or missing references) //IL_0146: Unknown result type (might be due to invalid IL or missing references) //IL_014b: Unknown result type (might be due to invalid IL or missing references) //IL_0212: Unknown result type (might be due to invalid IL or missing references) //IL_0214: 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_021d: Unknown result type (might be due to invalid IL or missing references) //IL_0222: Unknown result type (might be due to invalid IL or missing references) //IL_0230: Unknown result type (might be due to invalid IL or missing references) //IL_0235: Unknown result type (might be due to invalid IL or missing references) //IL_0165: Unknown result type (might be due to invalid IL or missing references) //IL_0167: Unknown result type (might be due to invalid IL or missing references) //IL_0169: Unknown result type (might be due to invalid IL or missing references) //IL_016d: Unknown result type (might be due to invalid IL or missing references) //IL_0172: Unknown result type (might be due to invalid IL or missing references) //IL_0177: Unknown result type (might be due to invalid IL or missing references) //IL_017b: Unknown result type (might be due to invalid IL or missing references) //IL_0182: Unknown result type (might be due to invalid IL or missing references) //IL_018e: Unknown result type (might be due to invalid IL or missing references) //IL_0190: Unknown result type (might be due to invalid IL or missing references) //IL_019b: Unknown result type (might be due to invalid IL or missing references) //IL_019f: Unknown result type (might be due to invalid IL or missing references) //IL_01a4: Unknown result type (might be due to invalid IL or missing references) //IL_01c5: Unknown result type (might be due to invalid IL or missing references) //IL_01df: Unknown result type (might be due to invalid IL or missing references) //IL_01eb: Unknown result type (might be due to invalid IL or missing references) //IL_01fa: Unknown result type (might be due to invalid IL or missing references) //IL_01fc: Unknown result type (might be due to invalid IL or missing references) //IL_0209: Unknown result type (might be due to invalid IL or missing references) LayerIndex val = LayerIndex.world; int num = LayerMask.op_Implicit(((LayerIndex)(ref val)).mask); val = LayerIndex.entityPrecise; int num2 = num | LayerMask.op_Implicit(((LayerIndex)(ref val)).mask); Transform val2 = ((Component)((EntityState)this).characterBody.modelLocator.modelTransform).GetComponent<ChildLocator>().FindChild("MuzzleFire"); Ray val3 = default(Ray); ((Ray)(ref val3))..ctor(val2.position, val2.forward); Ray val4 = default(Ray); ((Ray)(ref val4))..ctor(((Ray)(ref val3)).origin, Vector3.up); bool flag = false; Vector3 val5 = Vector3.zero; Ray val7; if (Object.op_Implicit((Object)target)) { val5 = target.transform.position; flag = true; } else { BullseyeSearch val6 = new BullseyeSearch(); val7 = val3; val6.searchOrigin = ((Ray)(ref val7)).origin; val7 = val3; val6.searchDirection = ((Ray)(ref val7)).direction; val6.filterByLoS = false; val6.sortMode = (SortMode)2; val6.RefreshCandidates(); HurtBox val8 = val6.GetResults().FirstOrDefault(); RaycastHit val9 = default(RaycastHit); RaycastHit val10 = default(RaycastHit); if (Object.op_Implicit((Object)val8)) { val5 = ((Component)val8).transform.position; flag = true; } else if (Physics.Raycast(val3, ref val10, 1000f, num2, (QueryTriggerInteraction)1)) { RaycastHit val11 = val9; val5 = ((RaycastHit)(ref val11)).point; flag = true; } } float magnitude = projectileVelocity; if (flag) { Vector3 val12 = val5; val7 = val4; Vector3 val13 = val12 - ((Ray)(ref val7)).origin; Vector2 val14 = default(Vector2); ((Vector2)(ref val14))..ctor(val13.x, val13.z); Vector2 val15 = val14; float magnitude2 = ((Vector2)(ref val15)).magnitude; Vector2 val16 = val14 / magnitude2; if ((double)magnitude2 < (double)minimumDistance) { magnitude2 = minimumDistance; } float num3 = Trajectory.CalculateInitialYSpeed(timeToTarget, val13.y); float num4 = magnitude2 / timeToTarget; Vector3 val17 = default(Vector3); ((Vector3)(ref val17))..ctor(val16.x * num4, num3, val16.y * num4); Vector3 val18 = val17; magnitude = ((Vector3)(ref val18)).magnitude; ((Ray)(ref val4)).direction = val17; } val7 = val4; Quaternion val19 = Util.QuaternionSafeLookRotation(((Ray)(ref val7)).direction); ProjectileManager.instance.FireProjectileWithoutDamageType(ScorchlingLavaBomb.mortarProjectilePrefab, ((Ray)(ref val4)).origin, val19, ((EntityState)this).gameObject, base.damageStat * mortarDamageCoefficient, 0f, Util.CheckRoll(base.critStat, ((EntityState)this).characterBody.master), (DamageColorIndex)0, (GameObject)null, magnitude); } public override void OnExit() { ((EntityState)this).OnExit(); } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)2; } } public class TimedBurrow : BaseState { public string burrowSoundString = "Play_scorchling_burrow"; public string burrowLoopSoundString = "Play_scorchling_burrow_loop"; public string burrowStopLoopSoundString = "Stop_scorchling_burrow_loop"; private bool waitingForBurrow; public float burrowRadius = 1f; public float animDurationBurrow = 1f; public float burrowAnimationDuration = 1f; public float teleportDelay = 2f; public float burrowDuration = 4f; public float timer = 0f; public GameObject burrowEffectPrefab; private ScorchlingController sController; public override void OnEnter() { //IL_0059: 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_0065: 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_0082: Expected O, but got Unknown //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_00e0: Unknown result type (might be due to invalid IL or missing references) ((BaseState)this).OnEnter(); sController = ((Component)((EntityState)this).characterBody).GetComponent<ScorchlingController>(); if (!sController.isBurrowed) { Util.PlaySound(burrowSoundString, ((EntityState)this).gameObject); Util.PlaySound(burrowLoopSoundString, ((EntityState)this).gameObject); EffectManager.SpawnEffect(burrowEffectPrefab, new EffectData { origin = ((EntityState)this).characterBody.footPosition, scale = burrowRadius }, true); ((EntityState)this).PlayAnimation("FullBody, Override", "Burrow", "Burrow.playbackRate", animDurationBurrow, 0f); if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor)) { ((EntityState)this).characterMotor.walkSpeedPenaltyCoefficient = 0f; } if (Object.op_Implicit((Object)(object)((EntityState)this).rigidbodyMotor)) { ((EntityState)this).rigidbodyMotor.moveVector = Vector3.zero; } if (Object.op_Implicit((Object)(object)((EntityState)this).characterBody)) { ((EntityState)this).characterBody.isSprinting = false; } waitingForBurrow = true; } } public override void FixedUpdate() { //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Expected O, but got Unknown ((EntityState)this).FixedUpdate(); HandleWaitForBurrow(); if (((EntityState)this).fixedAge > burrowDuration) { ((EntityState)this).outer.SetState((EntityState)new ScorchlingBreach()); } } public override void OnExit() { ((EntityState)this).OnExit(); HandleWaitForBurrow(); } private void HandleWaitForBurrow() { if (waitingForBurrow && !((double)((EntityState)this).fixedAge <= (double)burrowAnimationDuration)) { sController.Burrow(); waitingForBurrow = false; } } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0011: 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_0014: Unknown result type (might be due to invalid IL or missing references) if (waitingForBurrow) { return (InterruptPriority)7; } return (InterruptPriority)3; } } public class StunDuration : MonoBehaviour { private EntityStateMachine _bodyStateMachine; private EntityStateMachine _weaponStateMachine; public const float maxStunCooldown = 5f; public float stunCooldown; private bool stunned; protected virtual void Awake() { FixedUpdate(); EntityStateMachine[] components = ((Component)this).GetComponents<EntityStateMachine>(); EntityStateMachine[] array = components; foreach (EntityStateMachine val in array) { if (val.customName == "Body") { _bodyStateMachine = val; } if (val.customName == "Weapon") { _weaponStateMachine = val; } } } private void FixedUpdate() { //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00bf: Expected O, but got Unknown //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)_weaponStateMachine)) { return; } RaycastHit val = default(RaycastHit); if (!(_weaponStateMachine.state is WhirlwindWarmUp) && !(_weaponStateMachine.state is WhirlWindPersuitCycle) && !(_weaponStateMachine.nextState is WhirlwindWarmUp) && !(_weaponStateMachine.nextState is WhirlWindPersuitCycle)) { Vector3 position = ((Component)this).transform.position; Vector3 down = Vector3.down; LayerIndex world = LayerIndex.world; if (!Physics.Raycast(position, down, ref val, 50f, LayerMask.op_Implicit(((LayerIndex)(ref world)).mask), (QueryTriggerInteraction)1) && _bodyStateMachine.CanInterruptState((InterruptPriority)6)) { _weaponStateMachine.SetInterruptState((EntityState)new WhirlwindWarmUp(), (InterruptPriority)6); } } if (_bodyStateMachine.state is StunState) { stunned = true; } else { if (stunned) { stunCooldown = 5f; SetStateOnHurt val2 = null; if (((Component)this).TryGetComponent<SetStateOnHurt>(ref val2)) { val2.canBeStunned = false; } } stunned = false; } if (!(_weaponStateMachine.state is WhirlwindWarmUp) || _weaponStateMachine.state is WhirlWindPersuitCycle || _weaponStateMachine.nextState is WhirlwindWarmUp || _weaponStateMachine.nextState is WhirlWindPersuitCycle) { SetStateOnHurt val3 = null; if (stunCooldown > 0f && stunCooldown - Time.fixedDeltaTime <= 0f && ((Component)this).TryGetComponent<SetStateOnHurt>(ref val3)) { val3.canBeStunned = true; } stunCooldown -= Time.fixedDeltaTime; } } } public class ScorchlingGrounding : MonoBehaviour { public float down = 100f; public CharacterMotor body; public void FixedUpdate() { CharacterMotor component = ((Component)this).GetComponent<CharacterMotor>(); if ((Object)(object)component != (Object)null) { component.gravityScale = down; component.velocity.y -= component.gravityScale * Time.deltaTime; } } } [CompilerGenerated] private static class <>O { public static hook_RegisterTeleport <0>__DisableInvincibility; public static hook_Burrow <1>__Burrow; public static hook_OnEnter <2>__OnEnter; public static hook_OnEnter <3>__WhirlwindWarmUp_OnEnter; public static hook_OnExit <4>__WhirlwindWarmUp_OnExit; public static hook_OnEnter <5>__WhirlWindPersuitCycle_OnEnter; public static hook_OnExit <6>__WhirlWindPersuitCycle_OnExit; public static hook_UpdateLand <7>__WhirlWindPersuitCycle_UpdateLand; } public const string PluginGUID = "CrypticAuthor.SeekerEnemiesTweaks"; public const string PluginAuthor = "CrypticAuthor"; public const string PluginName = "SeekerEnemiesTweaks"; public const string PluginVersion = "1.0.3"; public GameObject scorchlingBody = Addressables.LoadAssetAsync<GameObject>((object)RoR2_DLC2_Scorchling.ScorchlingBody_prefab).WaitForCompletion(); public GameObject childBody = Addressables.LoadAssetAsync<GameObject>((object)RoR2_DLC2_Child.ChildBody_prefab).WaitForCompletion(); public GameObject halcyoniteBody = Addressables.LoadAssetAsync<GameObject>((object)RoR2_DLC2_Halcyonite.HalcyoniteBody_prefab).WaitForCompletion(); private SpawnCard childCredit = Addressables.LoadAssetAsync<SpawnCard>((object)RoR2_DLC2_Child.cscChild_asset).WaitForCompletion(); private SpawnCard scorchlingCredit = Addressables.LoadAssetAsync<SpawnCard>((object)RoR2_DLC2_Scorchling.cscScorchling_asset).WaitForCompletion(); public static bool TryModifyFieldValue<T>(EntityStateConfiguration entityStateConfiguration, string fieldName, T value) { ref SerializedField orCreateField = ref ((SerializedFieldCollection)(ref entityStateConfiguration.serializedFieldsCollection)).GetOrCreateField(fieldName); Type typeFromHandle = typeof(T); if (Object.op_Implicit(orCreateField.fieldValue.objectValue) && ((object)orCreateField.fieldValue.objectValue).GetType().IsAssignableFrom(typeFromHandle)) { ref Object objectValue = ref orCreateField.fieldValue.objectValue; object obj = value; objectValue = (Object)((obj is Object) ? obj : null); return true; } if (orCreateField.fieldValue.stringValue != null && StringSerializer.CanSerializeType(typeFromHandle)) { orCreateField.fieldValue.stringValue = StringSerializer.Serialize(typeFromHandle, (object)value); return true; } return false; } public void Awake() { //IL_0005: 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_001d: 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_0089: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Expected O, but got Unknown //IL_00a5: Unknown result type (might be due to invalid IL or missing references) //IL_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Expected O, but got Unknown //IL_00de: Unknown result type (might be due to invalid IL or missing references) //IL_00e8: Expected O, but got Unknown //IL_00c6: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: Unknown result type (might be due to invalid IL or missing references) //IL_00d1: Expected O, but got Unknown //IL_00f9: Unknown result type (might be due to invalid IL or missing references) //IL_00fe: Unknown result type (might be due to invalid IL or missing references) //IL_0104: Expected O, but got Unknown //IL_011a: Unknown result type (might be due to invalid IL or missing references) //IL_011f: Unknown result type (might be due to invalid IL or missing references) //IL_0125: Expected O, but got Unknown //IL_013b: Unknown result type (might be due to invalid IL or missing references) //IL_0140: Unknown result type (might be due to invalid IL or missing references) //IL_0146: Expected O, but got Unknown //IL_015c: Unknown result type (might be due to invalid IL or missing references) //IL_0161: Unknown result type (might be due to invalid IL or missing references) //IL_0167: Expected O, but got Unknown //IL_0195: Unknown result type (might be due to invalid IL or missing references) //IL_019f: Expected O, but got Unknown //IL_017d: Unknown result type (might be due to invalid IL or missing references) //IL_0182: Unknown result type (might be due to invalid IL or missing references) //IL_0188: Expected O, but got Unknown //IL_020e: Unknown result type (might be due to invalid IL or missing references) //IL_0213: Unknown result type (might be due to invalid IL or missing references) //IL_0222: Unknown result type (might be due to invalid IL or missing references) //IL_0227: Unknown result type (might be due to invalid IL or missing references) //IL_02ce: Unknown result type (might be due to invalid IL or missing references) //IL_02d3: Unknown result type (might be due to invalid IL or missing references) //IL_02e3: Unknown result type (might be due to invalid IL or missing references) //IL_02e8: Unknown result type (might be due to invalid IL or missing references) //IL_034a: Unknown result type (might be due to invalid IL or missing references) //IL_034f: Unknown result type (might be due to invalid IL or missing references) //IL_035f: Unknown result type (might be due to invalid IL or missing references) //IL_0364: Unknown result type (might be due to invalid IL or missing references) //IL_0374: Unknown result type (might be due to invalid IL or missing references) //IL_0379: Unknown result type (might be due to invalid IL or missing references) //IL_0389: Unknown result type (might be due to invalid IL or missing references) //IL_038e: Unknown result type (might be due to invalid IL or missing references) //IL_039e: Unknown result type (might be due to invalid IL or missing references) //IL_03a3: Unknown result type (might be due to invalid IL or missing references) //IL_0425: Unknown result type (might be due to invalid IL or missing references) //IL_042a: Unknown result type (might be due to invalid IL or missing references) //IL_0462: Unknown result type (might be due to invalid IL or missing references) //IL_0467: Unknown result type (might be due to invalid IL or missing references) bool flag = false; ContentAddition.AddEntityState<TimedBurrow>(ref flag); ContentAddition.AddEntityState<LavaBombChange>(ref flag); GameObject val = Addressables.LoadAssetAsync<GameObject>((object)RoR2_DLC2_Scorchling.ScorchlingBody_prefab).WaitForCompletion(); val.AddComponent<ScorchlingGrounding>(); LavaBombGhost(); LavaBombProj(); LavaBombSkill(); FrolicSkill(); SparkSkill(); BurrowSkill(); HalcyoniteAttacks(); ScorchlingMaster(); ChildMaster(); HalcyoniteMaster(); object obj = <>O.<0>__DisableInvincibility; if (obj == null) { hook_RegisterTeleport val2 = DisableInvincibility; <>O.<0>__DisableInvincibility = val2; obj = (object)val2; } ChildMonsterController.RegisterTeleport += (hook_RegisterTeleport)obj; object obj2 = <>O.<1>__Burrow; if (obj2 == null) { hook_Burrow val3 = Burrow; <>O.<1>__Burrow = val3; obj2 = (object)val3; } ScorchlingController.Burrow += (hook_Burrow)obj2; object obj3 = <>O.<2>__OnEnter; if (obj3 == null) { hook_OnEnter val4 = OnEnter; <>O.<2>__OnEnter = val4; obj3 = (object)val4; } ScorchlingBreach.OnEnter += (hook_OnEnter)obj3; TriLaser.FireTriLaser += new hook_FireTriLaser(TriLaserMinDistance); object obj4 = <>O.<3>__WhirlwindWarmUp_OnEnter; if (obj4 == null) { hook_OnEnter val5 = WhirlwindWarmUp_OnEnter; <>O.<3>__WhirlwindWarmUp_OnEnter = val5; obj4 = (object)val5; } WhirlwindWarmUp.OnEnter += (hook_OnEnter)obj4; object obj5 = <>O.<4>__WhirlwindWarmUp_OnExit; if (obj5 == null) { hook_OnExit val6 = WhirlwindWarmUp_OnExit; <>O.<4>__WhirlwindWarmUp_OnExit = val6; obj5 = (object)val6; } WhirlwindWarmUp.OnExit += (hook_OnExit)obj5; object obj6 = <>O.<5>__WhirlWindPersuitCycle_OnEnter; if (obj6 == null) { hook_OnEnter val7 = WhirlWindPersuitCycle_OnEnter; <>O.<5>__WhirlWindPersuitCycle_OnEnter = val7; obj6 = (object)val7; } WhirlWindPersuitCycle.OnEnter += (hook_OnEnter)obj6; object obj7 = <>O.<6>__WhirlWindPersuitCycle_OnExit; if (obj7 == null) { hook_OnExit val8 = WhirlWindPersuitCycle_OnExit; <>O.<6>__WhirlWindPersuitCycle_OnExit = val8; obj7 = (object)val8; } WhirlWindPersuitCycle.OnExit += (hook_OnExit)obj7; object obj8 = <>O.<7>__WhirlWindPersuitCycle_UpdateLand; if (obj8 == null) { hook_UpdateLand val9 = WhirlWindPersuitCycle_UpdateLand; <>O.<7>__WhirlWindPersuitCycle_UpdateLand = val9; obj8 = (object)val9; } WhirlWindPersuitCycle.UpdateLand += (hook_UpdateLand)obj8; HalcyoniteShrineInteractable.DrainConditionMet += new Manipulator(HalcyoniteShrineInteractable_DrainConditionMet); scorchlingCredit.directorCreditCost = 55; CharacterBody val10 = default(CharacterBody); if (Object.op_Implicit((Object)(object)scorchlingBody) && scorchlingBody.TryGetComponent<CharacterBody>(ref val10)) { val10.baseMoveSpeed = 35f; val10.baseMaxHealth = 400f; val10.levelMaxHealth = 100f; val10.levelDamage = 3f; val10.baseAcceleration = 180f; } EntityStateConfiguration entityStateConfiguration = Addressables.LoadAssetAsync<EntityStateConfiguration>((object)RoR2_DLC2_Scorchling.EntityStates_Scorchling_Breach_asset).WaitForCompletion(); EntityStateConfiguration entityStateConfiguration2 = Addressables.LoadAssetAsync<EntityStateConfiguration>((object)RoR2_DLC2_Scorchling.EntityStates_Scorchling_LavaBomb_asset).WaitForCompletion(); TryModifyFieldValue(entityStateConfiguration2, "mortarDamageCoefficient", 1.2f); TryModifyFieldValue(entityStateConfiguration, "blastDamageCoefficient", 2); TryModifyFieldValue(entityStateConfiguration, "blastRadius", 9f); TryModifyFieldValue(entityStateConfiguration, "blastForce", 50f); childCredit.directorCreditCost = 40; CharacterBody val11 = default(CharacterBody); if (Object.op_Implicit((Object)(object)childBody) && childBody.TryGetComponent<CharacterBody>(ref val11)) { val11.baseMoveSpeed = 13f; val11.baseMaxHealth = 210f; val11.levelMaxHealth = 52f; } EntityStateConfiguration entityStateConfiguration3 = Addressables.LoadAssetAsync<EntityStateConfiguration>((object)RoR2_DLC2_Child.EntityStates_ChildMonster_FireTrackingSparkBall_asset).WaitForCompletion(); EntityStateConfiguration entityStateConfiguration4 = Addressables.LoadAssetAsync<EntityStateConfiguration>((object)RoR2_DLC2_Child.EntityStates_ChildMonster_ChargeTrackingSparkBall_asset).WaitForCompletion(); TryModifyFieldValue(entityStateConfiguration3, "bombDamageCoefficient", 4); TryModifyFieldValue(entityStateConfiguration4, "baseDuration", 1.7f); CharacterBody val12 = default(CharacterBody); if (Object.op_Implicit((Object)(object)halcyoniteBody) && halcyoniteBody.TryGetComponent<CharacterBody>(ref val12)) { val12.acceleration = 22f; } EntityStateConfiguration entityStateConfiguration5 = Addressables.LoadAssetAsync<EntityStateConfiguration>((object)RoR2_DLC2_Halcyonite.EntityStates_HalcyoniteMonster_TriLaser_asset).WaitForCompletion(); EntityStateConfiguration entityStateConfiguration6 = Addressables.LoadAssetAsync<EntityStateConfiguration>((object)RoR2_DLC2_Halcyonite.EntityStates_HalcyoniteMonster_ChargeTriLaser_asset).WaitForCompletion(); EntityStateConfiguration entityStateConfiguration7 = Addressables.LoadAssetAsync<EntityStateConfiguration>((object)RoR2_DLC2_Halcyonite.EntityStates_HalcyoniteMonster_WhirlwindPersuitCycle_asset).WaitForCompletion(); EntityStateConfiguration entityStateConfiguration8 = Addressables.LoadAssetAsync<EntityStateConfiguration>((object)RoR2_DLC2_Halcyonite.EntityStates_HalcyoniteMonster_GoldenSwipe_asset).WaitForCompletion(); EntityStateConfiguration entityStateConfiguration9 = Addressables.LoadAssetAsync<EntityStateConfiguration>((object)RoR2_DLC2_Halcyonite.EntityStates_HalcyoniteMonster_GoldenSlash_asset).WaitForCompletion(); TryModifyFieldValue(entityStateConfiguration5, "blastRadius", 3f); TryModifyFieldValue(entityStateConfiguration6, "baseDuration", 2f); TryModifyFieldValue(entityStateConfiguration7, "dashSpeedCoefficient", 33f); TryModifyFieldValue(entityStateConfiguration7, "attackRadius", 9.4f); TryModifyFieldValue(entityStateConfiguration8, "baseDuration", 1.4f); TryModifyFieldValue(entityStateConfiguration9, "baseDuration", 1.3f); AsyncOperationHandle<GameObject> val13 = AssetAsyncReferenceManager<GameObject>.LoadAsset(new AssetReferenceT<GameObject>(RoR2_DLC2_Halcyonite.HalcyoniteBody_prefab), (AsyncReferenceHandleUnloadType)2); val13.Completed += delegate(AsyncOperationHandle<GameObject> x) { //IL_0063: 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) ModelLocator val16 = default(ModelLocator); if (x.Result.TryGetComponent<ModelLocator>(ref val16) && Object.op_Implicit((Object)(object)val16.modelTransform)) { Transform val17 = val16.modelTransform.Find("HitboxGoldenSlash"); Transform val18 = val16.modelTransform.Find("HitboxGoldenSwipe"); if (Object.op_Implicit((Object)(object)val17)) { val17.localScale = new Vector3(15f, 0.5f, 11f); } if (Object.op_Implicit((Object)(object)val18)) { val18.localScale = new Vector3(2f, 6f, 13f); } } }; AssetReferenceT<GameObject> val14 = new AssetReferenceT<GameObject>(RoR2_DLC2_Halcyonite.HalcyoniteBody_prefab); AsyncOperationHandle<GameObject> val15 = AssetAsyncReferenceManager<GameObject>.LoadAsset(val14, (AsyncReferenceHandleUnloadType)2); val15.Completed += delegate(AsyncOperationHandle<GameObject> x) { UnityObjectExtensions.EnsureComponent<StunDuration>(x.Result); }; } private static void WhirlwindWarmUp_OnEnter(orig_OnEnter orig, WhirlwindWarmUp self) { //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Expected O, but got Unknown orig.Invoke(self); SetStunnable((EntityState)self, stunnable: false); } private static void WhirlwindWarmUp_OnExit(orig_OnExit orig, WhirlwindWarmUp self) { //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Expected O, but got Unknown orig.Invoke(self); SetStunnable((EntityState)self, stunnable: true); } private static void WhirlWindPersuitCycle_OnEnter(orig_OnEnter orig, WhirlWindPersuitCycle self) { //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Expected O, but got Unknown orig.Invoke(self); SetStunnable((EntityState)self, stunnable: false); } private static void WhirlWindPersuitCycle_OnExit(orig_OnExit orig, WhirlWindPersuitCycle self) { //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Expected O, but got Unknown orig.Invoke(self); SetStunnable((EntityState)self, stunnable: true); } private static void SetStunnable(EntityState self, bool stunnable) { SetStateOnHurt val = null; StunDuration stunDuration = null; if (self.TryGetComponent<SetStateOnHurt>(ref val) && self.TryGetComponent<StunDuration>(ref stunDuration) && stunDuration.stunCooldown <= 0f) { val.canBeStunned = stunnable; } } private static void WhirlWindPersuitCycle_UpdateLand(orig_UpdateLand orig, WhirlWindPersuitCycle self) { //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0030: 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_0058: Expected O, but got Unknown orig.Invoke(self); RaycastHit val = default(RaycastHit); Vector3 position = ((EntityState)self).transform.position; Vector3 down = Vector3.down; LayerIndex world = LayerIndex.world; if (!Physics.Raycast(position, down, ref val, 50f, LayerMask.op_Implicit(((LayerIndex)(ref world)).mask), (QueryTriggerInteraction)1)) { ((EntityState)self).outer.SetNextState((EntityState)new WhirlwindWarmUp()); } } private void HalcyoniteShrineInteractable_DrainConditionMet(ILContext iL) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown ILCursor val = new ILCursor(iL); if (val.TryGotoNext((MoveType)2, new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchLdcR4(x, 100f) })) { val.Prev.Operand = 220f; } } private void TriLaserMinDistance(orig_FireTriLaser orig, TriLaser self) { //IL_0048: 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) orig.Invoke(self); BaseAI[] aiComponents = ((EntityState)self).characterBody.master.AiComponents; BaseAI[] array = aiComponents; foreach (BaseAI val in array) { if (val.hasAimTarget && Vector3.Distance(val.skillDriverEvaluation.target.characterBody.transform.position, ((EntityState)self).transform.position) < 25f) { ((EntityState)self).outer.SetNextStateToMain(); } } } private static void DisableInvincibility(orig_RegisterTeleport orig, ChildMonsterController self, bool addInvincibility) { orig.Invoke(self, false); } public static void Burrow(orig_Burrow orig, ScorchlingController self) { //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Unknown result type (might be due to invalid IL or missing references) self.isRecentlyBurrowed = true; self.isBurrowed = true; self.SetTeleportPermission(true); if (NetworkServer.active) { self.breachSkill.stock = 1; self.lavaBombSkill.stock = 0; self.ensureBurrowSkill.stock = 5; self.characterMotor.walkSpeedPenaltyCoefficient = 1f; } self.originalLayer = ((Component)self).gameObject.layer; ((Component)self).gameObject.layer = LayerIndex.GetAppropriateFakeLayerForTeam(self.characterBody.teamComponent.teamIndex).intVal; ((BaseCharacterController)self.characterMotor).Motor.RebuildCollidableLayers(); if (Object.op_Implicit((Object)(object)self.baseDirt) && Object.op_Implicit((Object)(object)self.dustTrail)) { self.baseDirt.SetActive(false); self.dustTrail.SetActive(true); self.dustTrailActive = true; self.armatureObject.SetActive(false); self.meshObject.SetActive(false); } self.enemyDetection.Enable(); } public static void OnEnter(orig_OnEnter orig, ScorchlingBreach self) { //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00d4: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: Unknown result type (might be due to invalid IL or missing references) //IL_0119: Unknown result type (might be due to invalid IL or missing references) //IL_011e: Unknown result type (might be due to invalid IL or missing references) //IL_012a: Unknown result type (might be due to invalid IL or missing references) //IL_013c: Unknown result type (might be due to invalid IL or missing references) //IL_0141: Unknown result type (might be due to invalid IL or missing references) //IL_0143: Unknown result type (might be due to invalid IL or missing references) //IL_014e: Unknown result type (might be due to invalid IL or missing references) //IL_0160: Expected O, but got Unknown self.amServer = NetworkServer.active; self.scorchlingController = ((Component)((EntityState)self).characterBody).GetComponent<ScorchlingController>(); Util.PlaySound(self.preBreachSoundString, ((EntityState)self).gameObject); if (self.amServer) { Target currentEnemy = ((Component)((EntityState)self).characterBody.master).GetComponent<BaseAI>().currentEnemy; self.enemyCBody = ((currentEnemy != null) ? currentEnemy.characterBody : null); if (self.proceedImmediatelyToLavaBomb) { self.breachToBurrow = 1f; } self.breachToBurrow += self.crackToBreachTime; self.burrowToEndOfTime += self.breachToBurrow; self.breachPosition = ((EntityState)self).characterBody.footPosition; if (!self.proceedImmediatelyToLavaBomb && Object.op_Implicit((Object)(object)self.enemyCBody)) { self.breachPosition = self.enemyCBody.footPosition; } if (Object.op_Implicit((Object)(object)((EntityState)self).characterMotor)) { ((EntityState)self).characterMotor.walkSpeedPenaltyCoefficient = 0f; } ((EntityState)self).characterBody.SetAimTimer(self.breachToBurrow); self.breachPosition = ((EntityState)self).characterBody.footPosition; TeleportHelper.TeleportBody(((EntityState)self).characterBody, self.breachPosition, false); EffectManager.SpawnEffect(self.crackEffectPrefab, new EffectData { origin = self.breachPosition, scale = self.crackRadius }, true); self.scorchlingController.SetTeleportPermission(false); } } private void LavaBombGhost() { //IL_000c: 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) AsyncOperationHandle<GameObject> val = AssetAsyncReferenceManager<GameObject>.LoadAsset(new AssetReferenceT<GameObject>(RoR2_DLC2_Scorchling.LavaBombHeatOrbGhost_prefab), (AsyncReferenceHandleUnloadType)2); val.Completed += delegate(AsyncOperationHandle<GameObject> x) { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Expected O, but got Unknown //IL_0087: Unknown result type (might be due to invalid IL or missing references) GameObject result = x.Result; AnimationCurve val2 = new AnimationCurve(); val2.AddKey(0f, 0f); val2.AddKey(0.5f, 0.5f); val2.AddKey(1f, 1f); ObjectScaleCurve val3 = ((Component)result.transform.GetChild(0)).gameObject.AddComponent<ObjectScaleCurve>(); val3.overallCurve = val2; val3.useOverallCurveOnly = true; val3.timeMax = 0.6f; ((Component)val3).transform.localScale = new Vector3(13f, 13f, 13f); }; } private void LavaBombProj() { //IL_000c: 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) AsyncOperationHandle<GameObject> val = AssetAsyncReferenceManager<GameObject>.LoadAsset(new AssetReferenceT<GameObject>(RoR2_DLC2_Scorchling.LavaBombHeatOrbProjectile_prefab), (AsyncReferenceHandleUnloadType)2); val.Completed += delegate(AsyncOperationHandle<GameObject> x) { //IL_001e: Unknown result type (might be due to invalid IL or missing references) GameObject result = x.Result; result.transform.localScale = new Vector3(1.35f, 1.35f, 1.35f); }; } private void LavaBombSkill() { //IL_000c: 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) AsyncOperationHandle<SkillDef> val = AssetAsyncReferenceManager<SkillDef>.LoadAsset(new AssetReferenceT<SkillDef>(RoR2_DLC2_Scorchling.ScorchlingLavaBomb_asset), (AsyncReferenceHandleUnloadType)2); val.Completed += delegate(AsyncOperationHandle<SkillDef> x) { //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Unknown result type (might be due to invalid IL or missing references) SkillDef result = x.Result; result.activationState = new SerializableEntityStateType(typeof(LavaBombChange)); result.baseRechargeInterval = 5f; }; } private void BurrowSkill() { //IL_000c: 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) AsyncOperationHandle<SkillDef> val = AssetAsyncReferenceManager<SkillDef>.LoadAsset(new AssetReferenceT<SkillDef>(RoR2_DLC2_Scorchling.ScorchlingEnsureBurrow_asset), (AsyncReferenceHandleUnloadType)2); val.Completed += delegate(AsyncOperationHandle<SkillDef> x) { //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Unknown result type (might be due to invalid IL or missing references) SkillDef result = x.Result; result.activationState = new SerializableEntityStateType(typeof(TimedBurrow)); }; } private void FrolicSkill() { //IL_000c: 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) AsyncOperationHandle<SkillDef> val = AssetAsyncReferenceManager<SkillDef>.LoadAsset(new AssetReferenceT<SkillDef>(RoR2_DLC2_Child.ChildBodyFrolic_asset), (AsyncReferenceHandleUnloadType)2); val.Completed += delegate(AsyncOperationHandle<SkillDef> x) { SkillDef result = x.Result; result.baseRechargeInterval = 12f; }; } private void SparkSkill() { //IL_000c: 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) AsyncOperationHandle<SkillDef> val = AssetAsyncReferenceManager<SkillDef>.LoadAsset(new AssetReferenceT<SkillDef>(RoR2_DLC2_Child.ChildBodySparkBall_asset), (AsyncReferenceHandleUnloadType)2); val.Completed += delegate(AsyncOperationHandle<SkillDef> x) { SkillDef result = x.Result; result.beginSkillCooldownOnSkillEnd = true; result.baseRechargeInterval = 3f; }; } private void HalcyoniteAttacks() { //IL_000c: 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_0044: Unknown result type (might be due to invalid IL or missing references) //IL_0049: Unknown result type (might be due to invalid IL or missing references) AsyncOperationHandle<SkillDef> val = AssetAsyncReferenceManager<SkillDef>.LoadAsset(new AssetReferenceT<SkillDef>(RoR2_DLC2_Halcyonite.HalcyoniteMonsterGoldenSlash_asset), (AsyncReferenceHandleUnloadType)2); val.Completed += delegate(AsyncOperationHandle<SkillDef> x) { SkillDef result = x.Result; result.baseRechargeInterval = 2f; }; AsyncOperationHandle<SkillDef> val2 = AssetAsyncReferenceManager<SkillDef>.LoadAsset(new AssetReferenceT<SkillDef>(RoR2_DLC2_Halcyonite.HalcyoniteMonsterGoldenSwipe_asset), (AsyncReferenceHandleUnloadType)2); val.Completed += delegate(AsyncOperationHandle<SkillDef> x) { SkillDef result = x.Result; result.baseRechargeInterval = 4f; }; } private void ScorchlingMaster() { //IL_000c: 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) AsyncOperationHandle<GameObject> val = AssetAsyncReferenceManager<GameObject>.LoadAsset(new AssetReferenceT<GameObject>(RoR2_DLC2_Scorchling.ScorchlingMaster_prefab), (AsyncReferenceHandleUnloadType)2); val.Completed += delegate(AsyncOperationHandle<GameObject> x) { AISkillDriver[] components = x.Result.GetComponents<AISkillDriver>(); BaseAI[] components2 = ((Component)components[0]).GetComponents<BaseAI>(); AISkillDriver[] array = components; foreach (AISkillDriver val2 in array) { if (val2.customName == "LavaBomb") { val2.maxDistance = 70f; val2.minDistance = 10f; val2.noRepeat = false; val2.activationRequiresTargetLoS = true; val2.selectionRequiresTargetLoS = true; } if (val2.customName == "Breach") { val2.selectionRequiresOnGround = false; val2.activationRequiresAimConfirmation = false; val2.selectionRequiresOnGround = false; } } BaseAI[] array2 = components2; foreach (BaseAI val3 in array2) { val3.xrayVision = true; } }; } private void ChildMaster() { //IL_000c: 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_0044: Unknown result type (might be due to invalid IL or missing references) //IL_0049: Unknown result type (might be due to invalid IL or missing references) AsyncOperationHandle<GameObject> val = AssetAsyncReferenceManager<GameObject>.LoadAsset(new AssetReferenceT<GameObject>(RoR2_DLC2_Child.ChildMaster_prefab), (AsyncReferenceHandleUnloadType)2); val.Completed += delegate(AsyncOperationHandle<GameObject> x) { AISkillDriver[] components = x.Result.GetComponents<AISkillDriver>(); AISkillDriver[] array = components; foreach (AISkillDriver val3 in array) { if (val3.customName == "FireSparkBall") { val3.maxDistance = 50f; } } }; AsyncOperationHandle<GameObject> val2 = AssetAsyncReferenceManager<GameObject>.LoadAsset(new AssetReferenceT<GameObject>(RoR2_DLC2_Child.ChildTrackingSparkBall_prefab), (AsyncReferenceHandleUnloadType)2); val2.Completed += delegate(AsyncOperationHandle<GameObject> x) { ProjectileSimple[] components = x.Result.GetComponents<ProjectileSimple>(); ProjectileSimple[] array = components; foreach (ProjectileSimple val3 in array) { val3.lifetime = 5f; val3.desiredForwardSpeed = 21f; } }; } private void HalcyoniteMaster() { //IL_000c: 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) AsyncOperationHandle<GameObject> val = AssetAsyncReferenceManager<GameObject>.LoadAsset(new AssetReferenceT<GameObject>(RoR2_DLC2_Halcyonite.HalcyoniteMaster_prefab), (AsyncReferenceHandleUnloadType)2); val.Completed += delegate(AsyncOperationHandle<GameObject> x) { AISkillDriver[] components = x.Result.GetComponents<AISkillDriver>(); AISkillDriver[] array = components; foreach (AISkillDriver val2 in array) { if (val2.customName == "Golden Swipe") { val2.aimVectorMaxSpeedOverride = 0f; val2.maxDistance = 25f; } if (val2.customName == "Golden Slash") { val2.maxDistance = 18f; } if (val2.customName == "WhirlwindRush") { val2.minDistance = 25f; } } }; } } }