Decompiled source of FathomlessVoidling v1.0.4
plugins/FathomlessVoidling/FathomlessVoidling.dll
Decompiled a week ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Diagnostics; using System.IO; 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.Bootstrap; using BepInEx.Configuration; using BepInEx.Logging; using EntityStates; using EntityStates.VoidBarnacle.Weapon; using EntityStates.VoidRaidCrab; using EntityStates.VoidRaidCrab.Joint; using EntityStates.VoidRaidCrab.Weapon; using FathomlessVoidling.Components; using FathomlessVoidling.Controllers; using FathomlessVoidling.EntityStates; using FathomlessVoidling.EntityStates.Barnacle; using FathomlessVoidling.EntityStates.Haunt; using FathomlessVoidling.EntityStates.Primary; using FathomlessVoidling.EntityStates.Secondary; using FathomlessVoidling.EntityStates.Special; using FathomlessVoidling.EntityStates.Utility; using FathomlessVoidling.Hooks; using HG.Reflection; using Microsoft.CodeAnalysis; using On.EntityStates.VoidBarnacle.Weapon; using On.EntityStates.VoidRaidCrab; using On.RoR2; using On.RoR2.Projectile; using On.RoR2.VoidRaidCrab; using R2API; using R2API.Utils; using RiskOfOptions; using RiskOfOptions.OptionConfigs; using RiskOfOptions.Options; using RoR2; using RoR2.Audio; using RoR2.CharacterAI; using RoR2.EntityLogic; using RoR2.Mecanim; using RoR2.Navigation; using RoR2.Projectile; using RoR2.Skills; using RoR2.VoidRaidCrab; using RoR2BepInExPack.GameAssetPaths.Version_1_39_0; using RoR2BepInExPack.GameAssetPathsBetter; using UnityEngine; using UnityEngine.AddressableAssets; using UnityEngine.Networking; using UnityEngine.Playables; using UnityEngine.Rendering.PostProcessing; using UnityEngine.ResourceManagement.AsyncOperations; using UnityEngine.SceneManagement; using UnityEngine.Timeline; [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: OptIn] [assembly: NetworkCompatibility(/*Could not decode attribute arguments.*/)] [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyInformationalVersion("1.0.0+976fb69a4bdac2588feee650ab28455c04604175")] [assembly: AssemblyProduct("FathomlessVoidling")] [assembly: AssemblyTitle("FathomlessVoidling")] [assembly: AssemblyCompany("FathomlessVoidling")] [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)] [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class RefSafetyRulesAttribute : Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } namespace FathomlessVoidling { internal static class Log { internal static ManualLogSource _logSource; internal static void Init(ManualLogSource logSource) { _logSource = logSource; } private static string getLogPrefix(string callerPath, string callerMemberName, int callerLineNumber) { int num = callerPath.LastIndexOf("FathomlessVoidling"); if (num >= 0) { callerPath = callerPath.Substring(num + "FathomlessVoidling".Length + 1); } return $"{callerPath}:{callerLineNumber} ({callerMemberName}) "; } internal static void Error(object data, [CallerFilePath] string callerPath = "", [CallerMemberName] string callerMemberName = "", [CallerLineNumber] int callerLineNumber = -1) { _logSource.LogError((object)(getLogPrefix(callerPath, callerMemberName, callerLineNumber) + data)); } internal static void Error_NoCallerPrefix(object data) { _logSource.LogError(data); } internal static void Fatal(object data, [CallerFilePath] string callerPath = "", [CallerMemberName] string callerMemberName = "", [CallerLineNumber] int callerLineNumber = -1) { _logSource.LogFatal((object)(getLogPrefix(callerPath, callerMemberName, callerLineNumber) + data)); } internal static void Fatal_NoCallerPrefix(object data) { _logSource.LogFatal(data); } internal static void Info(object data, [CallerFilePath] string callerPath = "", [CallerMemberName] string callerMemberName = "", [CallerLineNumber] int callerLineNumber = -1) { _logSource.LogInfo((object)(getLogPrefix(callerPath, callerMemberName, callerLineNumber) + data)); } internal static void Info_NoCallerPrefix(object data) { _logSource.LogInfo(data); } internal static void Message(object data, [CallerFilePath] string callerPath = "", [CallerMemberName] string callerMemberName = "", [CallerLineNumber] int callerLineNumber = -1) { _logSource.LogMessage((object)(getLogPrefix(callerPath, callerMemberName, callerLineNumber) + data)); } internal static void Message_NoCallerPrefix(object data) { _logSource.LogMessage(data); } internal static void Warning(object data, [CallerFilePath] string callerPath = "", [CallerMemberName] string callerMemberName = "", [CallerLineNumber] int callerLineNumber = -1) { _logSource.LogWarning((object)(getLogPrefix(callerPath, callerMemberName, callerLineNumber) + data)); } internal static void Warning_NoCallerPrefix(object data) { _logSource.LogWarning(data); } } [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInPlugin("Nuxlar.FathomlessVoidling", "FathomlessVoidling", "1.0.4")] public class Main : BaseUnityPlugin { public const string PluginGUID = "Nuxlar.FathomlessVoidling"; public const string PluginAuthor = "Nuxlar"; public const string PluginName = "FathomlessVoidling"; public const string PluginVersion = "1.0.4"; public static ModdedDamageType gravityDamageType = DamageAPI.ReserveDamageType(); public static GameObject spawnEffect; public static CharacterSpawnCard jointCard = Addressables.LoadAssetAsync<CharacterSpawnCard>((object)RoR2_DLC1_VoidRaidCrab.cscVoidRaidCrabJoint_asset).WaitForCompletion(); public static SpawnCard bigVoidlingCard = (SpawnCard)(object)Addressables.LoadAssetAsync<CharacterSpawnCard>((object)RoR2_DLC1_VoidRaidCrab.cscVoidRaidCrab_asset).WaitForCompletion(); public static TimelineAsset introTimeline = Addressables.LoadAssetAsync<TimelineAsset>((object)RoR2_DLC1_VoidRaidCrab.VoidRaidCrabIntroTimeiline_playable).WaitForCompletion(); public static GameObject chargeVoidRain; public static GameObject voidRainTracer = Addressables.LoadAssetAsync<GameObject>((object)RoR2_DLC1_VoidRaidCrab.TracerVoidRaidCrabTripleBeamSmall_prefab).WaitForCompletion(); public static GameObject voidRainExplosion = Addressables.LoadAssetAsync<GameObject>((object)RoR2_DLC1_VoidRaidCrab.VoidRaidCrabTripleBeamExplosion_prefab).WaitForCompletion(); public static GameObject voidRainWarning = Addressables.LoadAssetAsync<GameObject>((object)RoR2_DLC1_VoidRaidCrab.MultiBeamRayIndicator_prefab).WaitForCompletion(); public static GameObject voidRainPortalEffect; public static GameObject eyeMissileProjectile; public static GameObject eyeBlastChargeEffect; public static GameObject eyeBlastMuzzleFlash; public static GameObject raidTeleportEffect; public static LoopSoundDef lsdVoidMegaCrabDeathBomb = Addressables.LoadAssetAsync<LoopSoundDef>((object)RoR2_DLC1_VoidMegaCrab.lsdVoidMegaCrabDeathBomb_asset).WaitForCompletion(); public static GameObject chargeWardWipeChargeEffect = Addressables.LoadAssetAsync<GameObject>((object)RoR2_DLC1_VoidRaidCrab.VoidRaidCrabWardWipeChargeup_prefab).WaitForCompletion(); public static GameObject fireWardWipeMuzzleFlash = Addressables.LoadAssetAsync<GameObject>((object)RoR2_DLC1_VoidRaidCrab.VoidRaidCrabWardWipeMuzzleflash_prefab).WaitForCompletion(); public static BuffDef bdWardWipeFog = Addressables.LoadAssetAsync<BuffDef>((object)RoR2_DLC1_VoidRaidCrab.bdVoidRaidCrabWardWipeFog_asset).WaitForCompletion(); public static InteractableSpawnCard iscSafeWard = Addressables.LoadAssetAsync<InteractableSpawnCard>((object)RoR2_DLC1_VoidRaidCrab.iscVoidRaidSafeWard_asset).WaitForCompletion(); public static SkillDef sdWardWipe; public static SkillDef sdSingularity; private static SkillDef sdMaze; private static SkillDef sdMultiBeam; public static GameObject barnacleMuzzleFlash = Addressables.LoadAssetAsync<GameObject>((object)RoR2_DLC1_VoidBarnacle.VoidBarnacleMuzzleflash_prefab).WaitForCompletion(); public static GameObject gravityBulletChargeEffect; public static GameObject gravityBulletProjectile; public static GameObject gravityBombProjectile; public static SpawnCard voidlingHauntCard = (SpawnCard)(object)ScriptableObject.CreateInstance<CharacterSpawnCard>(); public static GameObject groundedGravityEffect; public static GameObject airborneGravityEffect; public static GameObject mazePortalEffect; public static GameObject mazeMuzzleEffect; public static GameObject mazeLaserPrefab; public static GameObject mazeWarningPrefab; public static GameObject mazeChargeUpPrefab; public static GameObject mazeImpactEffect; public static GameObject wSingularityProjectile; public static SpawnCard locusPortalCard = Addressables.LoadAssetAsync<SpawnCard>((object)RoR2_DLC1_PortalVoid.iscVoidPortal_asset).WaitForCompletion(); private static CharacterBody jointBody; private static CharacterBody bossBody; internal static Main Instance { get; private set; } public static string PluginDirectory { get; private set; } public static bool RooInstalled => Chainloader.PluginInfos.ContainsKey("com.rune580.riskofoptions"); public void Awake() { Instance = this; Log.Init(((BaseUnityPlugin)this).Logger); ModConfig.Init(); AddContent(); LoadAssets(); CreateVoidlingHaunt(); CreateNewEyeMissiles(); CreateGravityProjectiles(); CreateSingularityProjectile(); TweakBigVoidling(); TweakBigVoidlingMaster(); RoR2Application.onLoad = (Action)Delegate.Combine(RoR2Application.onLoad, new Action(TweaksAfterLoad)); new ConnectHooks(); } private void TweaksAfterLoad() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //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_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0026: 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_005b: 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_0070: Unknown result type (might be due to invalid IL or missing references) CharacterBody obj = jointBody; obj.bodyFlags = (BodyFlags)(obj.bodyFlags | 0x4810); CharacterBody obj2 = bossBody; obj2.bodyFlags = (BodyFlags)(obj2.bodyFlags | 0x4810); bossBody.baseNameToken = "[ Voidling ]"; bossBody.subtitleNameToken = "Augur of the Abyss"; jointBody = null; bossBody = null; GameObject obj3 = Addressables.LoadAssetAsync<GameObject>((object)RoR2_Base_moon.FrogInteractable_prefab).WaitForCompletion(); PurchaseInteraction component = obj3.GetComponent<PurchaseInteraction>(); component.costType = (CostTypeIndex)0; component.cost = 0; obj3.GetComponent<FrogController>().maxPets = 1; } private void AddContent() { //IL_0002: 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_0012: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_0032: 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_0042: 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_0052: 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_0062: Unknown result type (might be due to invalid IL or missing references) //IL_006a: 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_007a: Unknown result type (might be due to invalid IL or missing references) bool flag = default(bool); ContentAddition.AddEntityState<BetterSpawnState>(ref flag); ContentAddition.AddEntityState<JointSpawnState>(ref flag); ContentAddition.AddEntityState<ChargeVoidRain>(ref flag); ContentAddition.AddEntityState<FireVoidRain>(ref flag); ContentAddition.AddEntityState<ChargeEyeBlast>(ref flag); ContentAddition.AddEntityState<FireEyeBlast>(ref flag); ContentAddition.AddEntityState<BaseMazeAttackState>(ref flag); ContentAddition.AddEntityState<EnterMaze>(ref flag); ContentAddition.AddEntityState<ExitMaze>(ref flag); ContentAddition.AddEntityState<MazeAttack>(ref flag); ContentAddition.AddEntityState<WanderingSingularity>(ref flag); ContentAddition.AddEntityState<VoidlingHauntManager>(ref flag); ContentAddition.AddEntityState<ChargeGravityBullet>(ref flag); ContentAddition.AddEntityState<FireGravityBullet>(ref flag); ContentAddition.AddEntityState<ChargeWardWipeNux>(ref flag); ContentAddition.AddEntityState<FireWardWipeNux>(ref flag); } public static List<CharacterBody> GetPlayerBodies() { List<CharacterBody> list = new List<CharacterBody>(); foreach (PlayerCharacterMasterController instance in PlayerCharacterMasterController.instances) { if (Object.op_Implicit((Object)(object)instance) && Object.op_Implicit((Object)(object)instance.master)) { CharacterBody body = instance.master.GetBody(); if (Object.op_Implicit((Object)(object)body)) { list.Add(body); } } } return list; } private static void CreateNewEyeMissiles() { //IL_0005: 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_0019: 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_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_00bc: 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: Unknown result type (might be due to invalid IL or missing references) //IL_0138: Unknown result type (might be due to invalid IL or missing references) //IL_013d: 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_0180: Unknown result type (might be due to invalid IL or missing references) //IL_0181: Unknown result type (might be due to invalid IL or missing references) //IL_018b: Unknown result type (might be due to invalid IL or missing references) //IL_01cb: Unknown result type (might be due to invalid IL or missing references) //IL_01d0: Unknown result type (might be due to invalid IL or missing references) //IL_01d1: Unknown result type (might be due to invalid IL or missing references) //IL_01db: Unknown result type (might be due to invalid IL or missing references) GameObject val = Addressables.LoadAssetAsync<GameObject>((object)RoR2_DLC1_VoidRaidCrab.VoidRaidCrabImpact1_prefab).WaitForCompletion(); GameObject val2 = Addressables.LoadAssetAsync<GameObject>((object)RoR2_DLC1_VoidRaidCrab.VoidRaidCrabMissileGhost_prefab).WaitForCompletion(); GameObject val3 = Addressables.LoadAssetAsync<GameObject>((object)RoR2_DLC1_VoidRaidCrab.VoidRaidCrabMissileProjectile_prefab).WaitForCompletion(); val3 = PrefabAPI.InstantiateClone(val3, "FathomlessEyeProjectile", true); val2 = PrefabAPI.InstantiateClone(val2, "FathomlessEyeProjectileGhost", false); val = PrefabAPI.InstantiateClone(val, "FathomlessEyeProjectileImpact", false); val3.GetComponent<ProjectileController>().ghostPrefab = val2; val3.AddComponent<StasisMissileComponent>(); val3.GetComponent<ProjectileSimple>().desiredForwardSpeed = 125f; ProjectileImpactExplosion obj = val3.AddComponent<ProjectileImpactExplosion>(); ((ProjectileExplosion)obj).blastRadius = 6f; obj.impactEffect = val; obj.destroyOnWorld = true; obj.lifetime = 5f; ((ProjectileExplosion)obj).blastDamageCoefficient = 1f; ((ProjectileExplosion)obj).falloffModel = (FalloffModel)2; Object.Destroy((Object)(object)val3.GetComponent<ProjectileSingleTargetImpact>()); ProjectileSteerTowardTarget component = val3.GetComponent<ProjectileSteerTowardTarget>(); component.rotationSpeed = 10f; ((Behaviour)component).enabled = false; ProjectileDirectionalTargetFinder component2 = val3.GetComponent<ProjectileDirectionalTargetFinder>(); component2.lookCone = 360f; component2.lookRange = 100f; Transform transform = val3.transform; transform.localScale *= 4f; Transform val4 = val2.transform.Find("FlashRing"); if (Object.op_Implicit((Object)(object)val4)) { MainModule main = ((Component)val4).GetComponent<ParticleSystem>().main; ((MainModule)(ref main)).duration = ((MainModule)(ref main)).duration * 3f; ((MainModule)(ref main)).startLifetimeMultiplier = ((MainModule)(ref main)).startLifetimeMultiplier * 3f; } foreach (Transform item in val2.transform) { item.localScale *= 4f; } foreach (Transform item2 in val.transform) { item2.localScale *= 4f; } ContentAddition.AddEffect(val); ContentAddition.AddProjectile(val3); eyeMissileProjectile = val3; } private static void TweakBigVoidlingMaster() { //IL_0005: 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_022c: Unknown result type (might be due to invalid IL or missing references) //IL_023e: Unknown result type (might be due to invalid IL or missing references) //IL_01b5: Unknown result type (might be due to invalid IL or missing references) //IL_01ca: Unknown result type (might be due to invalid IL or missing references) //IL_01e4: 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_01f2: Unknown result type (might be due to invalid IL or missing references) //IL_0219: Unknown result type (might be due to invalid IL or missing references) //IL_029f: Unknown result type (might be due to invalid IL or missing references) //IL_02c1: Unknown result type (might be due to invalid IL or missing references) //IL_0272: Unknown result type (might be due to invalid IL or missing references) GameObject obj = Addressables.LoadAssetAsync<GameObject>((object)RoR2_DLC1_VoidRaidCrab.VoidRaidCrabMaster_prefab).WaitForCompletion(); Object.Destroy((Object)(object)obj.GetComponent<VoidRaidCrabAISkillDriverController>()); foreach (AISkillDriver item in obj.GetComponents<AISkillDriver>().ToList()) { switch (item.customName) { case "Channel Gauntlet 1": case "Channel Gauntlet 2": case "GravityBump": Object.Destroy((Object)(object)item); break; case "FireMissiles": item.movementType = (MovementType)1; ((Behaviour)item).enabled = true; item.noRepeat = true; item.buttonPressType = (ButtonPressType)0; item.activationRequiresAimConfirmation = false; item.nextHighPriorityOverride = null; break; case "FireMultiBeam": item.movementType = (MovementType)1; item.aimType = (AimType)1; item.skillSlot = (SkillSlot)1; ((Behaviour)item).enabled = true; item.maxUserHealthFraction = float.PositiveInfinity; item.activationRequiresAimConfirmation = false; item.noRepeat = true; item.buttonPressType = (ButtonPressType)0; item.nextHighPriorityOverride = null; break; case "SpinBeam": item.skillSlot = (SkillSlot)2; item.maxUserHealthFraction = float.PositiveInfinity; item.buttonPressType = (ButtonPressType)0; item.driverUpdateTimerOverride = 1f; item.nextHighPriorityOverride = null; item.activationRequiresAimConfirmation = false; break; case "Vacuum Attack": ((Behaviour)item).enabled = false; item.maxUserHealthFraction = float.PositiveInfinity; item.buttonPressType = (ButtonPressType)0; item.driverUpdateTimerOverride = 1f; item.nextHighPriorityOverride = null; break; case "WardWipe": ((Behaviour)item).enabled = false; item.maxUserHealthFraction = float.PositiveInfinity; item.buttonPressType = (ButtonPressType)0; item.driverUpdateTimerOverride = 1f; item.nextHighPriorityOverride = null; item.requiredSkill = null; break; case "LookAtTarget": item.movementType = (MovementType)1; break; } } } private static void CreateGravityProjectiles() { //IL_0005: 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_0031: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_0062: 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_0085: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_009e: 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_00b2: Unknown result type (might be due to invalid IL or missing references) //IL_00c2: 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_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Unknown result type (might be due to invalid IL or missing references) //IL_00fb: Unknown result type (might be due to invalid IL or missing references) //IL_0100: Unknown result type (might be due to invalid IL or missing references) //IL_010e: Unknown result type (might be due to invalid IL or missing references) //IL_0113: Unknown result type (might be due to invalid IL or missing references) //IL_0121: Unknown result type (might be due to invalid IL or missing references) //IL_0126: 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_013b: Unknown result type (might be due to invalid IL or missing references) //IL_0194: 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_026b: Unknown result type (might be due to invalid IL or missing references) //IL_02dd: Unknown result type (might be due to invalid IL or missing references) //IL_02e2: Unknown result type (might be due to invalid IL or missing references) //IL_0362: Unknown result type (might be due to invalid IL or missing references) //IL_036c: Unknown result type (might be due to invalid IL or missing references) //IL_037e: Unknown result type (might be due to invalid IL or missing references) //IL_0388: Unknown result type (might be due to invalid IL or missing references) //IL_03c1: Unknown result type (might be due to invalid IL or missing references) //IL_03cb: Unknown result type (might be due to invalid IL or missing references) //IL_03f5: Unknown result type (might be due to invalid IL or missing references) //IL_043f: Unknown result type (might be due to invalid IL or missing references) //IL_0444: Unknown result type (might be due to invalid IL or missing references) //IL_04e8: Unknown result type (might be due to invalid IL or missing references) //IL_04f2: Unknown result type (might be due to invalid IL or missing references) //IL_0514: Unknown result type (might be due to invalid IL or missing references) //IL_0519: Unknown result type (might be due to invalid IL or missing references) groundedGravityEffect = Addressables.LoadAssetAsync<GameObject>((object)RoR2_DLC1_VoidRaidCrab.VoidRaidCrabGravityBumpExplosionGround_prefab).WaitForCompletion(); groundedGravityEffect.GetComponent<EffectComponent>().soundName = "Play_voidDevastator_death"; airborneGravityEffect = Addressables.LoadAssetAsync<GameObject>((object)RoR2_DLC1_VoidRaidCrab.VoidRaidCrabGravityBumpExplosionAir_prefab).WaitForCompletion(); airborneGravityEffect.GetComponent<EffectComponent>().soundName = "Play_voidDevastator_death"; Material val = Addressables.LoadAssetAsync<Material>((object)RoR2_DLC1_VoidRaidCrab.matVoidRaidCrabGravityBumpSphere_mat).WaitForCompletion(); Material val2 = Addressables.LoadAssetAsync<Material>((object)RoR2_DLC1_VoidRaidCrab.matVoidRaidCrabGravityBumpGem_mat).WaitForCompletion(); Material sharedMaterial = Addressables.LoadAssetAsync<Material>((object)RoR2_DLC1_VoidRaidCrab.matVoidRaidCrabParticleBlue_mat).WaitForCompletion(); Material sharedMaterial2 = Addressables.LoadAssetAsync<Material>((object)RoR2_DLC1_VoidRaidCrab.matVoidRaidCrabGravityBumpWarning_mat).WaitForCompletion(); GameObject val3 = Addressables.LoadAssetAsync<GameObject>((object)RoR2_Base_Nullifier.NullifierPreBombGhost_prefab).WaitForCompletion(); GameObject val4 = Addressables.LoadAssetAsync<GameObject>((object)RoR2_Base_Nullifier.NullifierExplosion_prefab).WaitForCompletion(); Addressables.LoadAssetAsync<GameObject>((object)RoR2_Base_Nullifier.NullifierBombProjectile_prefab).WaitForCompletion(); Material[] sharedMaterials = (Material[])(object)new Material[2] { val, val2 }; GameObject obj = Addressables.LoadAssetAsync<GameObject>((object)RoR2_DLC1_VoidBarnacle.VoidBarnacleImpactExplosion_prefab).WaitForCompletion(); GameObject obj2 = Addressables.LoadAssetAsync<GameObject>((object)RoR2_DLC1_VoidBarnacle.VoidBarnacleCharge_prefab).WaitForCompletion(); GameObject val5 = Addressables.LoadAssetAsync<GameObject>((object)RoR2_DLC1_VoidBarnacle.VoidBarnacleBullet_prefab).WaitForCompletion(); GameObject val6 = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)RoR2_DLC1_VoidBarnacle.VoidBarnacleBulletGhost_prefab).WaitForCompletion(), "GravityBulletGhostNux", false); ((Renderer)((Component)val6.transform.GetChild(3)).GetComponent<MeshRenderer>()).sharedMaterials = sharedMaterials; ((Component)val6.transform.Find("Point Light")).GetComponent<Light>().color = new Color(6f / 85f, 6f / 85f, 1f, 1f); ((Renderer)((Component)val6.transform.Find("Flames")).GetComponent<ParticleSystemRenderer>()).sharedMaterial = sharedMaterial; gravityBulletChargeEffect = PrefabAPI.InstantiateClone(obj2, "GravityBulletChargeEffectNux", false); Transform child = gravityBulletChargeEffect.transform.GetChild(0); ((Renderer)((Component)child.Find("Fire")).GetComponent<ParticleSystemRenderer>()).sharedMaterial = sharedMaterial; ((Component)child.Find("Point Light")).GetComponent<Light>().color = new Color(0.6627451f, 47f / 51f, 50f / 51f, 1f); ((Renderer)((Component)child.Find("Sphere")).GetComponent<MeshRenderer>()).sharedMaterials = sharedMaterials; GameObject val7 = PrefabAPI.InstantiateClone(obj, "GravityBulletExplosionEffectNux", false); ((Component)val7.transform.Find("Point Light")).GetComponent<Light>().color = new Color(9f / 85f, 41f / 85f, 0.972549f, 1f); ((Renderer)((Component)val7.transform.Find("ExplosionSphere, Stars (1)")).GetComponent<ParticleSystemRenderer>()).sharedMaterial = val; gravityBulletProjectile = PrefabAPI.InstantiateClone(val5, "GravityBulletNux", true); gravityBulletProjectile.GetComponent<ProjectileController>().ghostPrefab = val6; gravityBulletProjectile.GetComponent<ProjectileImpactExplosion>().impactEffect = val7; ContentAddition.AddEffect(val7); ContentAddition.AddProjectile(gravityBulletProjectile); GameObject obj3 = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)RoR2_Base_Nullifier.NullifierPreBombProjectile_prefab).WaitForCompletion(), "GravityPreBombProjectileNux", true); GameObject val8 = PrefabAPI.InstantiateClone(val3, "GravityPreBombGhostNux", false); GameObject val9 = PrefabAPI.InstantiateClone(val4, "GravityBombExplosionEffectNux", false); ProjectileController component = obj3.GetComponent<ProjectileController>(); component.ghostPrefab = val8; component.cannotBeDeleted = true; ProjectileImpactExplosion component2 = obj3.GetComponent<ProjectileImpactExplosion>(); ((ProjectileExplosion)component2).blastRadius = 10f; component2.impactEffect = val9; component2.lifetime = 2f; ((ProjectileExplosion)component2).childrenProjectilePrefab = null; gravityBombProjectile = obj3; Transform transform = gravityBombProjectile.transform; transform.localScale *= 2f; Transform transform2 = val8.transform; transform2.localScale *= 2f; ((Renderer)((Component)val8.transform.Find("Vacuum Radial")).GetComponent<ParticleSystemRenderer>()).sharedMaterial = sharedMaterial2; Transform obj4 = val8.transform.Find("Sphere"); obj4.localScale *= 2f; ObjectScaleCurve component3 = ((Component)obj4).GetComponent<ObjectScaleCurve>(); component3.timeMax = 2f; component3.baseScale = new Vector3(4f, 4f, 4f); ((Renderer)((Component)obj4).GetComponent<MeshRenderer>()).sharedMaterials = sharedMaterials; ((Renderer)((Component)val8.transform.Find("Vacuum Stars")).GetComponent<ParticleSystemRenderer>()).sharedMaterial = sharedMaterial; ParticleSystem[] componentsInChildren = ((Component)val8.transform).GetComponentsInChildren<ParticleSystem>(); for (int i = 0; i < componentsInChildren.Length; i++) { MainModule main = componentsInChildren[i].main; ((MainModule)(ref main)).startSizeMultiplier = ((MainModule)(ref main)).startSizeMultiplier * 1.5f; ((MainModule)(ref main)).duration = ((MainModule)(ref main)).duration * 2f; ((MainModule)(ref main)).startLifetimeMultiplier = ((MainModule)(ref main)).startLifetimeMultiplier * 2f; } ((Renderer)((Component)val9.transform.Find("Vacuum Stars")).GetComponent<ParticleSystemRenderer>()).sharedMaterial = sharedMaterial; ((Renderer)((Component)val9.transform.Find("Vacuum Radial")).GetComponent<ParticleSystemRenderer>()).sharedMaterial = sharedMaterial2; Transform obj5 = val9.transform.Find("Sphere"); ((Renderer)((Component)obj5).GetComponent<MeshRenderer>()).sharedMaterial = val; Transform transform3 = ((Component)obj5).transform; transform3.localScale *= 2f; componentsInChildren = ((Component)val9.transform).GetComponentsInChildren<ParticleSystem>(); for (int i = 0; i < componentsInChildren.Length; i++) { MainModule main2 = componentsInChildren[i].main; ((MainModule)(ref main2)).startSizeMultiplier = ((MainModule)(ref main2)).startSizeMultiplier * 1.2f; } ContentAddition.AddEffect(val9); ContentAddition.AddProjectile(gravityBombProjectile); } private static void CreateVoidlingHaunt() { //IL_0005: 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_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Expected O, but got Unknown //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0032: 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_0045: Unknown result type (might be due to invalid IL or missing references) //IL_006b: 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_0077: Unknown result type (might be due to invalid IL or missing references) //IL_010e: Unknown result type (might be due to invalid IL or missing references) //IL_011f: Unknown result type (might be due to invalid IL or missing references) //IL_0129: Expected O, but got Unknown //IL_0133: Unknown result type (might be due to invalid IL or missing references) //IL_0151: Unknown result type (might be due to invalid IL or missing references) //IL_0153: Unknown result type (might be due to invalid IL or missing references) //IL_01b0: Unknown result type (might be due to invalid IL or missing references) //IL_01b5: Unknown result type (might be due to invalid IL or missing references) //IL_01ca: Unknown result type (might be due to invalid IL or missing references) //IL_0267: Unknown result type (might be due to invalid IL or missing references) //IL_026c: Unknown result type (might be due to invalid IL or missing references) //IL_027b: Unknown result type (might be due to invalid IL or missing references) //IL_0280: Unknown result type (might be due to invalid IL or missing references) //IL_02c0: Unknown result type (might be due to invalid IL or missing references) //IL_02cf: Unknown result type (might be due to invalid IL or missing references) //IL_02d1: Unknown result type (might be due to invalid IL or missing references) //IL_031f: Unknown result type (might be due to invalid IL or missing references) SpawnCard spawnCard = Addressables.LoadAssetAsync<SpawnCard>((object)RoR2_DLC1_VoidBarnacle.cscVoidBarnacle_asset).WaitForCompletion(); DirectorCard val = new DirectorCard { selectionWeight = 1, spawnCard = spawnCard }; GameObject obj = Addressables.LoadAssetAsync<GameObject>((object)RoR2_Base_BrotherHaunt.BrotherHauntMaster_prefab).WaitForCompletion(); GameObject val2 = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)RoR2_Base_BrotherHaunt.BrotherHauntBody_prefab).WaitForCompletion(), "VoidlingHauntNux", true); GameObject val3 = PrefabAPI.InstantiateClone(obj, "VoidlingHauntNuxMaster", true); GameObject val4 = new GameObject("Barnacle Director"); val4.SetActive(false); val4.transform.parent = val2.transform; CombatDirector obj2 = val4.AddComponent<CombatDirector>(); DirectorCardCategorySelection val5 = ScriptableObject.CreateInstance<DirectorCardCategorySelection>(); val5.AddCategory("BarnacleMania", 4f); val5.AddCard(0, val); obj2.customName = "Barnacle Director"; obj2.expRewardCoefficient = 0.2f; obj2.minSeriesSpawnInterval = 0.1f; obj2.maxSeriesSpawnInterval = 1f; obj2.minRerollSpawnInterval = 4.333333f; obj2.maxRerollSpawnInterval = 8.333333f; obj2.creditMultiplier = 0.3f; obj2.targetPlayers = true; obj2.monsterCards = val5; obj2.teamIndex = (TeamIndex)4; obj2.monsterCredit = 150f; obj2.onSpawnedServer = new OnSpawnedServer(); obj2.moneyWaveIntervals = (RangeFloat[])(object)new RangeFloat[1] { new RangeFloat { min = 1f, max = 1f } }; val2.GetComponent<CharacterBody>().baseNameToken = "Voidling Haunt"; val3.GetComponent<CharacterMaster>().bodyPrefab = val2; SkillDef val6 = ScriptableObject.CreateInstance<SkillDef>(); val6.skillName = "Gravity Well Nux"; ((Object)val6).name = "Gravity Well Nux"; val6.skillNameToken = "Gravity Well Nux"; val6.activationState = new SerializableEntityStateType(typeof(VoidlingHauntManager)); val6.activationStateMachineName = "Weapon"; val6.interruptPriority = (InterruptPriority)9; val6.baseMaxStock = 1; val6.baseRechargeInterval = 60f; val6.rechargeStock = 1; val6.requiredStock = 1; val6.stockToConsume = 1; val6.dontAllowPastMaxStocks = true; val6.beginSkillCooldownOnSkillEnd = true; val6.canceledFromSprinting = false; val6.forceSprintDuringState = false; val6.fullRestockOnAssign = false; val6.resetCooldownTimerOnUse = false; val6.isCombatSkill = true; val6.mustKeyPress = false; val6.cancelSprintingOnActivation = false; ContentAddition.AddSkillDef(val6); Object.Destroy((Object)(object)val2.GetComponent<GenericSkill>()); EntityStateMachine component = val2.GetComponent<EntityStateMachine>(); component.initialStateType = new SerializableEntityStateType(typeof(VoidlingHauntManager)); component.mainStateType = new SerializableEntityStateType(typeof(VoidlingHauntManager)); SkillLocator component2 = val2.GetComponent<SkillLocator>(); GenericSkill val7 = val2.AddComponent<GenericSkill>(); val7.skillName = "VHauntNuxPrimary"; SkillFamily val8 = ScriptableObject.CreateInstance<SkillFamily>(); ((Object)val8).name = "VHauntNuxPrimaryFamily"; val8.variants = (Variant[])(object)new Variant[1] { new Variant { skillDef = val6 } }; val7._skillFamily = val8; ContentAddition.AddSkillFamily(val8); component2.primary = val7; ContentAddition.AddBody(val2); ContentAddition.AddMaster(val3); voidlingHauntCard.prefab = val3; voidlingHauntCard.sendOverNetwork = true; voidlingHauntCard.nodeGraphType = (GraphType)1; } private static void TweakBigVoidling() { //IL_0005: 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_0082: 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_00a1: 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_00b5: 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_00e6: Unknown result type (might be due to invalid IL or missing references) //IL_00e8: Unknown result type (might be due to invalid IL or missing references) //IL_012e: Unknown result type (might be due to invalid IL or missing references) //IL_0133: Unknown result type (might be due to invalid IL or missing references) GameObject val = Addressables.LoadAssetAsync<GameObject>((object)RoR2_DLC1_VoidRaidCrab.VoidRaidCrabBody_prefab).WaitForCompletion(); ModelLocator component = val.GetComponent<ModelLocator>(); CharacterBody component2 = val.GetComponent<CharacterBody>(); component2.baseMaxHealth = 1000f; bossBody = component2; FogDamageController component3 = val.GetComponent<FogDamageController>(); if (Object.op_Implicit((Object)(object)component3)) { component3.healthFractionPerSecond = 0.01f; component3.healthFractionRampCoefficientPerSecond = 0.1f; } SkillLocator component4 = val.GetComponent<SkillLocator>(); component4.primary.skillFamily.variants[0].skillDef.activationState = new SerializableEntityStateType(typeof(ChargeEyeBlast)); component4.secondary.skillFamily.variants = (Variant[])(object)new Variant[1] { new Variant { skillDef = sdMultiBeam } }; component4.utility.skillFamily.variants = (Variant[])(object)new Variant[1] { new Variant { skillDef = sdMaze } }; List<EntityStateMachine> list = val.GetComponents<EntityStateMachine>().ToList(); for (int i = 0; i < list.Count; i++) { EntityStateMachine val2 = list[i]; if (val2.customName == "Body") { val2.initialStateType = new SerializableEntityStateType(typeof(BetterSpawnState)); } } Animator component5 = ((Component)component.modelTransform).gameObject.GetComponent<Animator>(); component5.applyRootMotion = true; component5.avatar = AvatarBuilder.BuildGenericAvatar(((Component)component5).gameObject, "ROOT"); GameObject gameObject = ((Component)component.modelTransform).gameObject; PrintController obj = gameObject.AddComponent<PrintController>(); obj.printTime = 8.5f; obj.disableWhenFinished = true; obj.startingPrintHeight = -20f; obj.maxPrintHeight = 200f; obj.startingPrintBias = -10f; obj.maxPrintBias = 0f; obj.animateFlowmapPower = false; obj.startingFlowmapPower = 0f; obj.maxFlowmapPower = 0f; obj.printCurve = AnimationCurve.Linear(0f, 0f, 1f, 1f); ((Component)obj).gameObject.SetActive(true); gameObject.AddComponent<RandomBlinkController>(); foreach (SurfaceDefProvider item in ((Component)gameObject.transform.Find("VoidRaidCrabArmature").Find("ROOT").Find("LegBase")).GetComponentsInChildren<SurfaceDefProvider>().ToList()) { ((Component)item).gameObject.layer = (int)(ref LayerIndex.defaultLayer); } } private static void LoadAssets() { //IL_0005: 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_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_005e: 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_0067: Unknown result type (might be due to invalid IL or missing references) //IL_006c: 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_008b: 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_00aa: 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_00b5: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_00c5: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: Unknown result type (might be due to invalid IL or missing references) //IL_00e7: Unknown result type (might be due to invalid IL or missing references) //IL_00f6: Unknown result type (might be due to invalid IL or missing references) //IL_00fb: Unknown result type (might be due to invalid IL or missing references) //IL_010a: Unknown result type (might be due to invalid IL or missing references) //IL_010f: 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_0148: Unknown result type (might be due to invalid IL or missing references) //IL_0170: Unknown result type (might be due to invalid IL or missing references) //IL_0175: Unknown result type (might be due to invalid IL or missing references) //IL_01a9: Unknown result type (might be due to invalid IL or missing references) //IL_01ae: Unknown result type (might be due to invalid IL or missing references) //IL_01e1: Unknown result type (might be due to invalid IL or missing references) //IL_01e6: Unknown result type (might be due to invalid IL or missing references) //IL_01f6: Unknown result type (might be due to invalid IL or missing references) //IL_01fb: 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_0231: Unknown result type (might be due to invalid IL or missing references) //IL_0236: Unknown result type (might be due to invalid IL or missing references) //IL_026f: Unknown result type (might be due to invalid IL or missing references) //IL_0279: Unknown result type (might be due to invalid IL or missing references) //IL_0292: Unknown result type (might be due to invalid IL or missing references) //IL_0332: Unknown result type (might be due to invalid IL or missing references) //IL_0337: Unknown result type (might be due to invalid IL or missing references) //IL_0305: Unknown result type (might be due to invalid IL or missing references) //IL_030a: Unknown result type (might be due to invalid IL or missing references) //IL_03f6: Unknown result type (might be due to invalid IL or missing references) //IL_03fb: Unknown result type (might be due to invalid IL or missing references) //IL_040b: Unknown result type (might be due to invalid IL or missing references) //IL_0410: Unknown result type (might be due to invalid IL or missing references) //IL_053c: Unknown result type (might be due to invalid IL or missing references) //IL_0541: Unknown result type (might be due to invalid IL or missing references) //IL_056d: Unknown result type (might be due to invalid IL or missing references) //IL_0440: Unknown result type (might be due to invalid IL or missing references) //IL_044a: Unknown result type (might be due to invalid IL or missing references) //IL_0465: Unknown result type (might be due to invalid IL or missing references) //IL_058f: Unknown result type (might be due to invalid IL or missing references) //IL_0594: Unknown result type (might be due to invalid IL or missing references) //IL_05c3: Unknown result type (might be due to invalid IL or missing references) //IL_05c8: Unknown result type (might be due to invalid IL or missing references) //IL_0602: Unknown result type (might be due to invalid IL or missing references) //IL_0607: Unknown result type (might be due to invalid IL or missing references) //IL_0676: Unknown result type (might be due to invalid IL or missing references) //IL_067b: Unknown result type (might be due to invalid IL or missing references) //IL_06a4: Unknown result type (might be due to invalid IL or missing references) //IL_06a9: Unknown result type (might be due to invalid IL or missing references) //IL_06dd: Unknown result type (might be due to invalid IL or missing references) //IL_06e2: Unknown result type (might be due to invalid IL or missing references) //IL_070a: Unknown result type (might be due to invalid IL or missing references) //IL_070f: Unknown result type (might be due to invalid IL or missing references) //IL_07b0: Unknown result type (might be due to invalid IL or missing references) //IL_07b5: Unknown result type (might be due to invalid IL or missing references) //IL_07a1: Unknown result type (might be due to invalid IL or missing references) //IL_07e9: Unknown result type (might be due to invalid IL or missing references) //IL_07ee: Unknown result type (might be due to invalid IL or missing references) //IL_083c: Unknown result type (might be due to invalid IL or missing references) //IL_0841: Unknown result type (might be due to invalid IL or missing references) //IL_0873: Unknown result type (might be due to invalid IL or missing references) //IL_08b8: Unknown result type (might be due to invalid IL or missing references) //IL_08bd: Unknown result type (might be due to invalid IL or missing references) //IL_08f0: Unknown result type (might be due to invalid IL or missing references) //IL_08f5: Unknown result type (might be due to invalid IL or missing references) //IL_095c: Unknown result type (might be due to invalid IL or missing references) //IL_0961: Unknown result type (might be due to invalid IL or missing references) //IL_096b: Unknown result type (might be due to invalid IL or missing references) //IL_0970: Unknown result type (might be due to invalid IL or missing references) //IL_098d: Unknown result type (might be due to invalid IL or missing references) //IL_0992: Unknown result type (might be due to invalid IL or missing references) //IL_099c: Unknown result type (might be due to invalid IL or missing references) //IL_09a1: Unknown result type (might be due to invalid IL or missing references) //IL_09be: Unknown result type (might be due to invalid IL or missing references) //IL_09c3: Unknown result type (might be due to invalid IL or missing references) //IL_09ce: Unknown result type (might be due to invalid IL or missing references) //IL_09fd: Unknown result type (might be due to invalid IL or missing references) //IL_0a02: Unknown result type (might be due to invalid IL or missing references) //IL_0a1f: Unknown result type (might be due to invalid IL or missing references) //IL_0a24: Unknown result type (might be due to invalid IL or missing references) //IL_0a43: Unknown result type (might be due to invalid IL or missing references) //IL_0a4d: Unknown result type (might be due to invalid IL or missing references) //IL_0a52: Unknown result type (might be due to invalid IL or missing references) //IL_0a6f: Unknown result type (might be due to invalid IL or missing references) //IL_0a74: Unknown result type (might be due to invalid IL or missing references) Addressables.LoadAssetAsync<SceneDef>((object)RoR2_DLC1_voidraid.voidraid_asset).WaitForCompletion().blockOrbitalSkills = false; raidTeleportEffect = Addressables.LoadAssetAsync<GameObject>((object)RoR2_DLC1_gauntlets.VoidRaidCrabGauntletTeleportEffect_prefab).WaitForCompletion(); raidTeleportEffect.GetComponent<EffectComponent>().soundName = "Play_voidRaid_fog_explode"; MainModule main = ((Component)raidTeleportEffect.transform.Find("OmniSparks")).GetComponent<ParticleSystem>().main; MinMaxGradient startColor = ((MainModule)(ref main)).startColor; MainModule main2 = ((Component)raidTeleportEffect.transform.Find("Sphere, Brief")).GetComponent<ParticleSystem>().main; MainModule main3 = ((Component)raidTeleportEffect.transform.Find("Sphere, Long")).GetComponent<ParticleSystem>().main; ((MainModule)(ref main2)).startColor = startColor; ((MainModule)(ref main3)).startColor = startColor; Addressables.LoadAssetAsync<GameObject>((object)RoR2_DLC1_VoidRaidCrab.VoidRaidSafeWard_prefab).WaitForCompletion().GetComponent<VerticalTubeZone>() .radius = 16f; Addressables.LoadAssetAsync<Material>((object)RoR2_DLC1_VoidRaidCrab.matVoidRaidCrabSpinBeamSphere1_mat).WaitForCompletion(); Material sharedMaterial = Addressables.LoadAssetAsync<Material>((object)RoR2_DLC1_PortalVoid.matPortalVoidCenter_mat).WaitForCompletion(); mazeChargeUpPrefab = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)RoR2_DLC1_VoidRaidCrab.VoidRaidCrabSpinBeamChargeUp_prefab).WaitForCompletion(), "MazeChargeUpEffectNux", false); ParticleSystem[] componentsInChildren = ((Component)mazeChargeUpPrefab.transform).GetComponentsInChildren<ParticleSystem>(); for (int i = 0; i < componentsInChildren.Length; i++) { MainModule main4 = componentsInChildren[i].main; ((MainModule)(ref main4)).startSizeMultiplier = ((MainModule)(ref main4)).startSizeMultiplier * 1.5f; } mazeImpactEffect = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)RoR2_DLC1_VoidRaidCrab.LaserImpactEffect_prefab).WaitForCompletion(), "MazeImpactEffectNux", false); componentsInChildren = ((Component)mazeImpactEffect.transform).GetComponentsInChildren<ParticleSystem>(); for (int i = 0; i < componentsInChildren.Length; i++) { MainModule main5 = componentsInChildren[i].main; ((MainModule)(ref main5)).startSizeMultiplier = ((MainModule)(ref main5)).startSizeMultiplier / 2f; } ContentAddition.AddEffect(mazeImpactEffect); PostProcessProfile sharedProfile = Addressables.LoadAssetAsync<PostProcessProfile>((object)RoR2_Base_title_PostProcessing.ppLocalNullifier_asset).WaitForCompletion(); ((ParameterOverride<Color>)(object)Addressables.LoadAssetAsync<PostProcessProfile>((object)RoR2_DLC1_voidraid.ppSceneVoidRaidStageStarry_asset).WaitForCompletion().GetSetting<RampFog>() .fogColorStart).value = new Color(0.2687f, 0.2429f, 0.2429f, 0.05f); mazeLaserPrefab = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)RoR2_DLC1_VoidRaidCrab.VoidRaidCrabSpinBeamVFX_prefab).WaitForCompletion(), "MazeLaserVFXNux"); mazeLaserPrefab.AddComponent<NetworkIdentity>(); Transform obj = mazeLaserPrefab.transform.Find("Mesh, Additive"); obj.localScale *= 3f; obj.localPosition = new Vector3(0f, 0f, 50.16f); Transform child = mazeLaserPrefab.transform.Find("Point Light, End").GetChild(0); ((Component)child).gameObject.SetActive(true); ((Component)child).GetComponent<PostProcessVolume>().sharedProfile = sharedProfile; componentsInChildren = ((Component)mazeLaserPrefab.transform).GetComponentsInChildren<ParticleSystem>(); foreach (ParticleSystem val in componentsInChildren) { if (((Object)((Component)val).gameObject).name != "MuzzleRayParticles") { MainModule main6 = val.main; ((MainModule)(ref main6)).startSizeMultiplier = ((MainModule)(ref main6)).startSizeMultiplier * 3f; } } mazeWarningPrefab = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)RoR2_DLC1_VoidRaidCrab.VoidRaidCrabSpinBeamVFX_prefab).WaitForCompletion(), "MazeWarningVFXNux"); for (int num = mazeWarningPrefab.transform.childCount - 1; num >= 0; num--) { Transform child2 = mazeWarningPrefab.transform.GetChild(num); if (((Object)child2).name != "Mesh, Additive" && ((Object)child2).name != "Mesh, Transparent") { Object.Destroy((Object)(object)((Component)child2).gameObject); } } VfxKillBehavior component = mazeWarningPrefab.GetComponent<VfxKillBehavior>(); if (Object.op_Implicit((Object)(object)component)) { Object.Destroy((Object)(object)component); } DestroyOnTimer component2 = mazeWarningPrefab.GetComponent<DestroyOnTimer>(); if (Object.op_Implicit((Object)(object)component2)) { component2.duration = 2f; } Material sharedMaterial2 = Addressables.LoadAssetAsync<Material>((object)RoR2_DLC1_voidstage.matVoidBoostPath_mat).WaitForCompletion(); Material sharedMaterial3 = Addressables.LoadAssetAsync<Material>((object)RoR2_Base_Common.matVoidDeathBombAreaIndicatorFront_mat).WaitForCompletion(); Transform val2 = mazeWarningPrefab.transform.Find("Mesh, Additive"); if (Object.op_Implicit((Object)(object)val2)) { val2.localScale *= 3f; val2.localPosition = new Vector3(0f, 0f, 50.16f); MeshRenderer component3 = ((Component)val2).GetComponent<MeshRenderer>(); ((Renderer)((Component)val2.GetChild(0)).GetComponent<MeshRenderer>()).sharedMaterial = sharedMaterial3; ObjectScaleCurve obj2 = ((Component)val2).gameObject.AddComponent<ObjectScaleCurve>(); obj2.resetOnAwake = true; obj2.timeMax = 0.3f; obj2.curveX = AnimationCurve.EaseInOut(0f, 0f, 1f, 1f); obj2.curveY = AnimationCurve.EaseInOut(0f, 0f, 1f, 1f); obj2.curveZ = AnimationCurve.Linear(0f, 1f, 1f, 1f); obj2.overallCurve = AnimationCurve.EaseInOut(0f, 0f, 1f, 1f); if (Object.op_Implicit((Object)(object)component3)) { ((Renderer)component3).sharedMaterial = sharedMaterial2; } } GameObject val3 = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)RoR2_DLC1_VoidRaidCrab.VoidRaidCrabSpinBeamChargeUp_prefab).WaitForCompletion(), "MazeMuzzleEffectNux", false); val3.transform.eulerAngles = new Vector3(90f, 0f, 0f); componentsInChildren = ((Component)val3.transform).GetComponentsInChildren<ParticleSystem>(); for (int i = 0; i < componentsInChildren.Length; i++) { MainModule main7 = componentsInChildren[i].main; ((MainModule)(ref main7)).duration = ((MainModule)(ref main7)).duration * 1.25f; } mazeMuzzleEffect = val3; GameObject val4 = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)RoR2_DLC1_VoidMegaCrab.VoidMegaCrabSpawnEffect_prefab).WaitForCompletion(), "MazePortalEffectNux", false); val4.GetComponent<DestroyOnTimer>().duration = 5f; componentsInChildren = val4.GetComponentsInChildren<ParticleSystem>(); for (int i = 0; i < componentsInChildren.Length; i++) { MainModule main8 = componentsInChildren[i].main; ((MainModule)(ref main8)).startSizeMultiplier = ((MainModule)(ref main8)).startSizeMultiplier * 2f; ((MainModule)(ref main8)).startLifetimeMultiplier = ((MainModule)(ref main8)).startLifetimeMultiplier * 4f; } ((Renderer)((Component)val4.transform.Find("Ring").GetChild(0)).GetComponent<ParticleSystemRenderer>()).sharedMaterial = sharedMaterial; mazePortalEffect = val4; ContentAddition.AddEffect(mazePortalEffect); eyeBlastMuzzleFlash = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)RoR2_DLC1_VoidRaidCrab.VoidRaidCrabMuzzleflashEyeMissiles_prefab).WaitForCompletion(), "EyeBlastMuzzleFlashNux", false); ContentAddition.AddEffect(eyeBlastMuzzleFlash); eyeBlastChargeEffect = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)RoR2_DLC1_VoidRaidCrab.VoidRaidCrabChargeEyeMissiles_prefab).WaitForCompletion(), "EyeBlastChargeEffectNux", false); componentsInChildren = ((Component)eyeBlastChargeEffect.transform).GetComponentsInChildren<ParticleSystem>(); for (int i = 0; i < componentsInChildren.Length; i++) { MainModule main9 = componentsInChildren[i].main; ((MainModule)(ref main9)).startSizeMultiplier = ((MainModule)(ref main9)).startSizeMultiplier * 2f; } voidRainPortalEffect = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)RoR2_Base_Nullifier.NullifierSpawnEffect_prefab).WaitForCompletion(), "VoidRainPortalEffect", false); ((Renderer)((Component)voidRainPortalEffect.transform.Find("Ring").GetChild(0)).GetComponent<ParticleSystemRenderer>()).sharedMaterial = sharedMaterial; ContentAddition.AddEffect(voidRainPortalEffect); Transform val5 = voidRainWarning.transform.Find("HitIndicator"); if (Object.op_Implicit((Object)(object)val5)) { Transform val6 = voidRainWarning.transform.Find("FurthestHitRecipient"); if (Object.op_Implicit((Object)(object)val6)) { val5.SetParent(val6); val5.localPosition = Vector3.zero; } } chargeVoidRain = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)RoR2_DLC1_VoidRaidCrab.VoidRaidCrabTripleBeamChargeUp_prefab).WaitForCompletion(), "ChargeVoidRainNuxEffect", false); componentsInChildren = ((Component)chargeVoidRain.transform).GetComponentsInChildren<ParticleSystem>(); for (int i = 0; i < componentsInChildren.Length; i++) { MainModule main10 = componentsInChildren[i].main; ((MainModule)(ref main10)).startSizeMultiplier = ((MainModule)(ref main10)).startSizeMultiplier * 1.5f; ((MainModule)(ref main10)).duration = ((MainModule)(ref main10)).duration * 7f; ((MainModule)(ref main10)).startLifetimeMultiplier = ((MainModule)(ref main10)).startLifetimeMultiplier * 7f; } spawnEffect = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)RoR2_DLC1_VoidRaidCrab.VoidRaidCrabSpawnEffect_prefab).WaitForCompletion(), "FathomlessVoidlingSpawnEffect", false); spawnEffect.transform.localScale = new Vector3(15f, 15f, 15f); spawnEffect.GetComponent<DestroyOnTimer>().duration = 12f; componentsInChildren = ((Component)spawnEffect.transform.GetChild(0).GetChild(1)).GetComponentsInChildren<ParticleSystem>(); for (int i = 0; i < componentsInChildren.Length; i++) { MainModule main11 = componentsInChildren[i].main; ((MainModule)(ref main11)).duration = ((MainModule)(ref main11)).duration * 1.75f; } ContentAddition.AddEffect(spawnEffect); GameObject obj3 = Addressables.LoadAssetAsync<GameObject>((object)RoR2_DLC1_VoidRaidCrab.VoidRaidCrabJointBody_prefab).WaitForCompletion(); obj3.AddComponent<JointThresholdController>(); obj3.AddComponent<LegControllerNetworkHelper>(); CharacterBody component4 = obj3.GetComponent<CharacterBody>(); component4.baseMaxHealth = ModConfig.jointBaseHealth.Value; component4.levelMaxHealth = ModConfig.jointLevelHealth.Value; component4.baseRegen = 0f; component4.levelRegen = 0f; jointBody = component4; obj3.GetComponent<EntityStateMachine>().initialStateType = new SerializableEntityStateType(typeof(JointSpawnState)); sdWardWipe = Addressables.LoadAssetAsync<SkillDef>((object)RoR2_DLC1_VoidRaidCrab.RaidCrabWardWipe_asset).WaitForCompletion(); sdWardWipe.activationState = new SerializableEntityStateType(typeof(ChargeWardWipeNux)); sdSingularity = Addressables.LoadAssetAsync<SkillDef>((object)RoR2_DLC1_VoidRaidCrab.RaidCrabVacuumAttack_asset).WaitForCompletion(); sdSingularity.activationState = new SerializableEntityStateType(typeof(WanderingSingularity)); sdSingularity.interruptPriority = (InterruptPriority)2; if (ModConfig.singularityCooldown.Value > 0f) { sdSingularity.baseRechargeInterval = ModConfig.singularityCooldown.Value; } sdMaze = Addressables.LoadAssetAsync<SkillDef>((object)RoR2_DLC1_VoidRaidCrab.RaidCrabSpinBeam_asset).WaitForCompletion(); sdMaze.activationState = new SerializableEntityStateType(typeof(EnterMaze)); sdMaze.baseRechargeInterval = ModConfig.mazeCooldown.Value; sdMaze.interruptPriority = (InterruptPriority)2; sdMultiBeam = Addressables.LoadAssetAsync<SkillDef>((object)RoR2_DLC1_VoidRaidCrab.RaidCrabMultiBeam_asset).WaitForCompletion(); sdMultiBeam.activationState = new SerializableEntityStateType(typeof(ChargeVoidRain)); sdMultiBeam.baseRechargeInterval = ModConfig.multiBeamCooldown.Value; } private static void CreateSingularityProjectile() { //IL_0005: 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_0026: 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_0047: 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_0068: 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_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_00c4: Unknown result type (might be due to invalid IL or missing references) //IL_00e4: Unknown result type (might be due to invalid IL or missing references) //IL_0159: 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_0180: Unknown result type (might be due to invalid IL or missing references) //IL_0289: Unknown result type (might be due to invalid IL or missing references) GameObject val = Addressables.LoadAssetAsync<GameObject>((object)RoR2_DLC1_VoidRaidCrab.KillSphereVfxPlaceholder_prefab).WaitForCompletion(); val = PrefabAPI.InstantiateClone(val, "WSingularitySphere", false); GameObject val2 = Addressables.LoadAssetAsync<GameObject>((object)RoR2_DLC1_VoidRaidCrab.VoidRaidCrabSuckLoopFX_prefab).WaitForCompletion(); val2 = PrefabAPI.InstantiateClone(val2, "WSingularityCenter", false); GameObject val3 = Addressables.LoadAssetAsync<GameObject>((object)RoR2_DLC1_VoidRaidCrab.VoidRaidCrabMissileProjectile_prefab).WaitForCompletion(); val3 = PrefabAPI.InstantiateClone(val3, "WSingularityProjectile", true); GameObject val4 = Addressables.LoadAssetAsync<GameObject>((object)RoR2_Base_LunarWisp.LunarWispTrackingBombGhost_prefab).WaitForCompletion(); val4 = PrefabAPI.InstantiateClone(val4, "WSingularityGhost", false); LoopSoundDef flightSoundLoop = Addressables.LoadAssetAsync<LoopSoundDef>((object)RoR2_DLC1_VoidRaidCrab.lsdVoidRaidCrabVacuumAttack_asset).WaitForCompletion(); Object.Destroy((Object)(object)val.GetComponent<VFXTransformController>()); Object.Destroy((Object)(object)val2.GetComponent<VFXTransformController>()); val.transform.localScale = new Vector3(20f, 20f, 20f); foreach (Transform item in val4.transform) { Object.Destroy((Object)(object)((Component)item).gameObject); } val2.transform.parent = val4.transform; val.transform.parent = val4.transform; ((Component)val.transform.GetChild(1).GetChild(1)).gameObject.SetActive(false); val2.GetComponent<VFXAttributes>().vfxIntensity = (VFXIntensity)0; val.GetComponent<VFXAttributes>().vfxIntensity = (VFXIntensity)0; foreach (Transform item2 in val3.transform) { Object.Destroy((Object)(object)((Component)item2).gameObject); } Object.Destroy((Object)(object)val3.GetComponent<BoxCollider>()); Object.Destroy((Object)(object)val3.GetComponent<ProjectileSingleTargetImpact>()); val3.AddComponent<SingularityComponent>(); SphereCollider val5 = val3.AddComponent<SphereCollider>(); val5.radius = 19f; ((Collider)val5).isTrigger = true; val3.GetComponent<Rigidbody>().useGravity = false; ProjectileDirectionalTargetFinder component = val3.GetComponent<ProjectileDirectionalTargetFinder>(); component.allowTargetLoss = false; component.lookCone = 360f; component.lookRange = 1000f; ProjectileController component2 = val3.GetComponent<ProjectileController>(); component2.ghostPrefab = val4; component2.cannotBeDeleted = true; component2.flightSoundLoop = flightSoundLoop; component2.myColliders = (Collider[])(object)new Collider[1] { (Collider)val5 }; ProjectileSimple component3 = val3.GetComponent<ProjectileSimple>(); component3.desiredForwardSpeed = 15f; component3.lifetime = 30f; component3.enableVelocityOverLifetime = true; component3.velocityOverLifetime = AnimationCurve.Linear(0f, 1f, 1f, 0.5f); val3.transform.localScale = Vector3.one; ContentAddition.AddProjectile(val3); wSingularityProjectile = val3; } public static void CreateTube(Transform parent) { //IL_0005: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Expected O, but got Unknown //IL_001d: 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_0058: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Unknown result type (might be due to invalid IL or missing references) //IL_00e1: Unknown result type (might be due to invalid IL or missing references) //IL_00f2: Unknown result type (might be due to invalid IL or missing references) //IL_0107: Unknown result type (might be due to invalid IL or missing references) //IL_0111: Unknown result type (might be due to invalid IL or missing references) //IL_0121: Unknown result type (might be due to invalid IL or missing references) //IL_0148: Unknown result type (might be due to invalid IL or missing references) //IL_014d: Unknown result type (might be due to invalid IL or missing references) //IL_0159: Unknown result type (might be due to invalid IL or missing references) //IL_015f: Unknown result type (might be due to invalid IL or missing references) GameObject val = new GameObject("WallHolder"); val.transform.parent = parent; val.transform.position = Vector3.zero; val.transform.localPosition = new Vector3(-2.5f, 0f, 0f); GameObject val2 = GameObject.CreatePrimitive((PrimitiveType)2); ((Renderer)val2.GetComponent<MeshRenderer>()).material = Addressables.LoadAssetAsync<Material>((object)RoR2_DLC1_GameModes_InfiniteTowerRun_ITAssets.matITSafeWardAreaIndicator1_mat).WaitForCompletion(); Object.Destroy((Object)(object)val2.GetComponent<CapsuleCollider>()); MeshCollider colliderToIgnore = val2.AddComponent<MeshCollider>(); val2.transform.localScale = new Vector3(115f, 1250f, 115f); ((Object)val2).name = "Cheese Deterrent"; val2.transform.SetParent(val.transform); val2.transform.localPosition = Vector3.zero; val2.layer = LayerIndex.world.intVal; GameObject val3 = new GameObject("DisableCollisions"); val3.transform.parent = val2.transform; val3.transform.localScale = new Vector3(0.0091f, 0.0008f, 0.0091f); val3.layer = LayerIndex.entityPrecise.intVal; val3.AddComponent<DisableCollisionsIfInTrigger>().colliderToIgnore = (Collider)(object)colliderToIgnore; SphereCollider component = val3.GetComponent<SphereCollider>(); component.radius = 85f; ((Collider)component).isTrigger = true; GameObject val4 = new GameObject("MazeSpawnPointController"); val4.transform.parent = parent; val4.transform.position = Vector3.zero; val4.AddComponent<MazeSpawnPointController>(); } } public static class ModConfig { internal static ConfigFile FVConfig; public static ConfigEntry<bool> enableFog; public static ConfigEntry<float> jointBaseHealth; public static ConfigEntry<float> jointLevelHealth; public static ConfigEntry<float> mazeCooldown; public static ConfigEntry<float> multiBeamCooldown; public static ConfigEntry<float> singularityCooldown; public static ConfigEntry<float> hauntP1Cooldown; public static ConfigEntry<float> hauntP2Cooldown; public static ConfigEntry<float> gravityBombChance; public static ConfigEntry<int> eyeBlastMissileCount; [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)] public static void Init() { //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Expected O, but got Unknown if (Main.RooInstalled) { InitRoO(); } FVConfig = new ConfigFile(Paths.ConfigPath + "\\com.Nuxlar.FathomlessVoidling.cfg", true); enableFog = FVConfig.BindOption("General", "Enable Fog", defaultValue: false, "Enables void fog in Void Locus."); jointBaseHealth = FVConfig.BindOptionSteppedSlider("Stats", "Base Health", 1500f, 25f, "Base health for joints", 500f, 3000f); jointLevelHealth = FVConfig.BindOptionSteppedSlider("Stats", "Level Health", 425f, 25f, "Health gained per level for joints", 100f, 1000f); eyeBlastMissileCount = FVConfig.BindOptionSlider("Skills", "Eye Blast Missile Count", 6, "Number of missiles fired per wave during Eye Blast", 1f); mazeCooldown = FVConfig.BindOptionSteppedSlider("Skills", "Maze Cooldown", 45f, 1f, "Cooldown for Maze attack", 10f, 90f); multiBeamCooldown = FVConfig.BindOptionSteppedSlider("Skills", "Portal Beam Cooldown", 15f, 1f, "Cooldown for Portal Beam attack", 5f, 30f); singularityCooldown = FVConfig.BindOptionSteppedSlider("Skills", "Singularity Cooldown", 60f, 1f, "Cooldown for Wandering Singularity attack", 10f, 90f); hauntP1Cooldown = FVConfig.BindOptionSteppedSlider("Haunt", "P1 Cooldown", 30f, 1f, "Gravity bomb downtime in Phase 1", 5f, 120f); hauntP2Cooldown = FVConfig.BindOptionSteppedSlider("Haunt", "P2/P3 Cooldown", 20f, 1f, "Gravity bomb downtime in Phase 2/3", 5f, 120f); gravityBombChance = FVConfig.BindOptionSteppedSlider("Haunt", "Gravity Bomb Chance", 0.15f, 0.01f, "Chance per second to fire a gravity bomb during uptime (higher chance = much more bombs)", 0.01f, 1f); WipeConfig(); } private static void WipeConfig() { ((Dictionary<ConfigDefinition, string>)typeof(ConfigFile).GetProperty("OrphanedEntries", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(FVConfig)).Clear(); FVConfig.Save(); } [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)] public static void InitRoO() { //IL_0042: 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) //IL_004e: Expected O, but got Unknown //IL_0063: 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_007c: Expected O, but got Unknown try { ModSettingsManager.SetModDescription("Fathomless Voidling", "Nuxlar.FathomlessVoidling", "FathomlessVoidling"); byte[] array = File.ReadAllBytes(Path.Combine(Path.GetDirectoryName(((BaseUnityPlugin)Main.Instance).Info.Location), "icon.png")); Texture2D val = new Texture2D(256, 256); ImageConversion.LoadImage(val, array); ModSettingsManager.SetModIcon(Sprite.Create(val, new Rect(0f, 0f, 256f, 256f), new Vector2(0.5f, 0.5f)), "Nuxlar.FathomlessVoidling", "FathomlessVoidling"); } catch (Exception data) { Log.Error(data, "C:\\Users\\romym\\OneDrive\\Desktop\\RoR2Mods\\FathomlessVoidling2\\FathomlessVoidling\\ModConfig.cs", "InitRoO", 135); } } [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)] public static ConfigEntry<T> BindOption<T>(this ConfigFile myConfig, string section, string name, T defaultValue, string description = "", bool restartRequired = true) { //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Expected O, but got Unknown if ((defaultValue is int || defaultValue is float) ? true : false) { return myConfig.BindOptionSlider(section, name, defaultValue, description, 0f, 20f, restartRequired); } if (string.IsNullOrEmpty(description)) { description = name; } if (restartRequired) { description += " (restart required)"; } ConfigEntry<T> val = myConfig.Bind<T>(section, name, defaultValue, new ConfigDescription(description, (AcceptableValueBase)null, Array.Empty<object>())); if (Main.RooInstalled) { TryRegisterOption<T>(val, restartRequired); } return val; } [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)] public static ConfigEntry<T> BindOptionSlider<T>(this ConfigFile myConfig, string section, string name, T defaultValue, string description = "", float min = 0f, float max = 20f, bool restartRequired = true) { //IL_00b1: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Expected O, but got Unknown if (!(defaultValue is int) && !(defaultValue is float)) { return myConfig.BindOption(section, name, defaultValue, description, restartRequired); } if (string.IsNullOrEmpty(description)) { description = name; } string text = description; T val = defaultValue; description = text + " (Default: " + val?.ToString() + ")"; if (restartRequired) { description += " (restart required)"; } AcceptableValueBase val2 = (AcceptableValueBase)((typeof(T) == typeof(int)) ? ((object)new AcceptableValueRange<int>((int)min, (int)max)) : ((object)new AcceptableValueRange<float>(min, max))); ConfigEntry<T> val3 = myConfig.Bind<T>(section, name, defaultValue, new ConfigDescription(description, val2, Array.Empty<object>())); if (Main.RooInstalled) { TryRegisterOptionSlider<T>(val3, min, max, restartRequired); } return val3; } [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)] public static ConfigEntry<T> BindOptionSteppedSlider<T>(this ConfigFile myConfig, string section, string name, T defaultValue, float increment = 1f, string description = "", float min = 0f, float max = 20f, bool restartRequired = true) { //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Expected O, but got Unknown if (string.IsNullOrEmpty(description)) { description = name; } string text = description; T val = defaultValue; description = text + " (Default: " + val?.ToString() + ")"; if (restartRequired) { description += " (restart required)"; } ConfigEntry<T> val2 = myConfig.Bind<T>(section, name, defaultValue, new ConfigDescription(description, (AcceptableValueBase)(object)new AcceptableValueRange<float>(min, max), Array.Empty<object>())); if (Main.RooInstalled) { TryRegisterOptionSteppedSlider<T>(val2, increment, min, max, restartRequired); } return val2; } [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)] public static void TryRegisterOption<T>(ConfigEntry<T> entry, bool restartRequired) { //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Expected O, but got Unknown //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Expected O, but got Unknown //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Expected O, but got Unknown //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Expected O, but got Unknown //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Expected O, but got Unknown if (entry is ConfigEntry<string> val) { ModSettingsManager.AddOption((BaseOption)new StringInputFieldOption(val, new InputFieldConfig { submitOn = (SubmitEnum)6, restartRequired = restartRequired }), "Nuxlar.FathomlessVoidling", "FathomlessVoidling"); } else if (entry is ConfigEntry<bool> val2) { ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(val2, restartRequired), "Nuxlar.FathomlessVoidling", "FathomlessVoidling"); } else if (entry is ConfigEntry<KeyboardShortcut> val3) { ModSettingsManager.AddOption((BaseOption)new KeyBindOption(val3, restartRequired), "Nuxlar.FathomlessVoidling", "FathomlessVoidling"); } else if (typeof(T).IsEnum) { ModSettingsManager.AddOption((BaseOption)new ChoiceOption((ConfigEntryBase)(object)entry, restartRequired), "Nuxlar.FathomlessVoidling", "FathomlessVoidling"); } } [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)] public static void TryRegisterOptionSlider<T>(ConfigEntry<T> entry, float min, float max, bool restartRequired) { //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0010: 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_0020: 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_0037: Expected O, but got Unknown //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_0046: Expected O, but got Unknown //IL_0052: 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_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_007c: Expected O, but got Unknown //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Expected O, but got Unknown if (entry is ConfigEntry<int> val) { ModSettingsManager.AddOption((BaseOption)new IntSliderOption(val, new IntSliderConfig { min = (int)min, max = (int)max, formatString = "{0:0.00}", restartRequired = restartRequired }), "Nuxlar.FathomlessVoidling", "FathomlessVoidling"); } else if (entry is ConfigEntry<float> val2) { ModSettingsManager.AddOption((BaseOption)new SliderOption(val2, new SliderConfig { min = min, max = max, FormatString = "{0:0.00}", restartRequired = restartRequired }), "Nuxlar.FathomlessVoidling", "FathomlessVoidling"); } } [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)] public static void TryRegisterOptionSteppedSlider<T>(ConfigEntry<T> entry, float increment, float min, float max, bool restartRequired) { //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0010: 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_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0025: 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_003d: Expected O, but got Unknown //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Expected O, but got Unknown if (entry is ConfigEntry<float> val) { ModSettingsManager.AddOption((BaseOption)new StepSliderOption(val, new StepSliderConfig { increment = increment, min = min, max = max, FormatString = "{0:0.00}", restartRequired = restartRequired }), "Nuxlar.FathomlessVoidling", "FathomlessVoidling"); } } } } namespace FathomlessVoidling.Hooks { public class ConnectHooks { [CompilerGenerated] private static class <>O { public static hook_RequestFog <0>__PreventFog; public static Action<Stage> <1>__SpawnCauldrons; public static hook_AttemptToSpawnAllEligiblePortals <2>__SpawnVoidMoonPortal; } public ConnectHooks() { //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Expected O, but got Unknown //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Expected O, but got Unknown //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Expected O, but got Unknown //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_005b: Expected O, but got Unknown //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Expected O, but got Unknown //IL_0073: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Expected O, but got Unknown //IL_0084: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Expected O, but got Unknown //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_009f: Expected O, but got Unknown //IL_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Expected O, but got Unknown //IL_00b7: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Expected O, but got Unknown //IL_00d1: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Expected O, but got Unknown //IL_0111: Unknown result type (might be due to invalid IL or missing references) //IL_0116: Unknown result type (might be due to invalid IL or missing references) //IL_011c: Expected O, but got Unknown GlobalEventManager.onServerDamageDealt += ApplyGravityDamageType; SceneDirector.Start += new hook_Start(TweakBossDirector); HealthComponent.SendDamageDealt += new hook_SendDamageDealt(ThresholdCheck); CharacterMaster.OnBodyStart += new hook_OnBodyStart(FixPipReviveBug); LegController.RegenerateServer += new hook_RegenerateServer(PreventJointRegen); VoidRaidGauntletController.RpcActivateDonut += new hook_RpcActivateDonut(DeactivateDonutRoof); VoidRaidGauntletController.TryOpenGauntlet += new hook_TryOpenGauntlet(BlockGauntletInPhase3); ProjectileDirectionalTargetFinder.SearchForTarget += new hook_SearchForTarget(TweakSingularitySearch); ChargeFire.OnEnter += new hook_OnEnter(LazyMf); DeathState.OnEnter += new hook_OnEnter(FixDeathState); DeathState.OnExit += new hook_OnExit(KillJointsOnDeath); object obj = <>O.<0>__PreventFog; if (obj == null) { hook_RequestFog val = PreventFog; <>O.<0>__PreventFog = val; obj = (object)val; } VoidStageMissionController.RequestFog += (hook_RequestFog)obj; Stage.onServerStageBegin += SpawnCauldrons; object obj2 = <>O.<2>__SpawnVoidMoonPortal; if (obj2 == null) { hook_AttemptToSpawnAllEligiblePortals val2 = SpawnVoidMoonPortal; <>O.<2>__SpawnVoidMoonPortal = val2; obj2 = (object)val2; } TeleporterInteraction.AttemptToSpawnAllEligiblePortals += (hook_AttemptToSpawnAllEligiblePortals)obj2; } private void DeactivateDonutRoof(orig_RpcActivateDonut orig, VoidRaidGauntletController self, int donutIndex) { orig.Invoke(self, donutIndex); DonutInfo currentDonut = self.currentDonut; object obj; if (currentDonut == null) { obj = null; } else { GameObject root = currentDonut.root; obj = ((root != null) ? root.transform : null); } Transform val = (Transform)obj; if (!Object.op_Implicit((Object)(object)val)) { return; } if (((Object)val).name == "RaidDC") { Transform val2 = val.Find("HOLDER: ROOF"); if (Object.op_Implicit((Object)(object)val2) && ((Component)val2).gameObject.activeSelf) { ((Component)val2).gameObject.SetActive(false); } } Transform val3 = val.Find("HOLDER: Scripting"); if (!Object.op_Implicit((Object)(object)val3)) { return; } Transform val4 = val3.Find("CombatDirector"); if (Object.op_Implicit((Object)(object)val4)) { CombatDirector component = ((Component)val4).GetComponent<CombatDirector>(); if (Object.op_Implicit((Object)(object)component)) { ((Behaviour)component).enabled = false; } } } private bool BlockGauntletInPhase3(orig_TryOpenGauntlet orig, VoidRaidGauntletController self, Vector3 entrancePosition, NetworkInstanceId bossMasterId) { //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) FathomlessMissionController instance = FathomlessMissionController.instance; if (instance != null && instance.GetCurrentPhase() == 2) { return false; } return orig.Invoke(self, entrancePosition, bossMasterId); } private void PreventJointRegen(orig_RegenerateServer orig, LegController self) { } private void FixPipReviveBug(orig_OnBodyStart orig, CharacterMaster self, CharacterBody body) { //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) orig.Invoke(self, body); if (!body.isPlayerControlled) { return; } Scene activeScene = SceneManager.GetActiveScene(); if (((Scene)(ref activeScene)).name == "voidraid" && body.HasBuff(Buffs.Immune)) { GameObject val = GameObject.Find("VoidRaidCrabBody(Clone)"); if (Object.op_Implicit((Object)(object)val)) { val.GetComponent<VoidRaidCrabHealthBarOverlayProvider>().OnEnable(); } } } private void LazyMf(orig_OnEnter orig, ChargeFire self) { //IL_0000: 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) Scene activeScene = SceneManager.GetActiveScene(); if (((Scene)(ref activeScene)).name == "voidraid") { ((EntityState)self).outer.SetState((EntityState)(object)new ChargeGravityBullet()); } else { orig.Invoke(self); } } private void FixDeathState(orig_OnEnter orig, DeathState self) { //IL_0101: Unknown result type (might be due to invalid IL or missing references) //IL_0107: Unknown result type (might be due to invalid IL or missing references) if (((Object)((EntityState)self).characterBody).name == "VoidRaidCrabBody(Clone)") { self.animationStateName = "ChargeWipe"; self.animationPlaybackRateParam = "Wipe.playbackRate"; self.addPrintController = false; orig.Invoke(self); PrintController obj = ((Component)self.modelTransform).gameObject.AddComponent<PrintController>(); obj.printTime = self.printDuration; ((Behaviour)obj).enabled = true; obj.startingPrintHeight = 200f; obj.maxPrintHeight = 500f; obj.startingPrintBias = self.startingPrintBias; obj.maxPrintBias = self.maxPrintBias; obj.disableWhenFinished = false; obj.printCurve = AnimationCurve.EaseInOut(0f, 0f, 1f, 1f); Transform val = ((EntityState)self).characterBody.transform.Find("WallHolder"); if (Object.op_Implicit((Object)(object)val)) { Object.Destroy((Object)(object)((Component)val).gameObject); } CharacterBody val2 = FathomlessMissionController.instance?.hauntBody; if (Object.op_Implicit((Object)(object)val2)) { val2.healthComponent.Suicide((GameObject)null, (GameObject)null, default(DamageTypeCombo)); } } else { orig.Invoke(self); } } private void KillJointsOnDeath(orig_OnExit orig, DeathState self) { //IL_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Expected O, but got Unknown orig.Invoke(self); if (((Object)((EntityState)self).characterBody).name != "VoidRaidCrabBody(Clone)") { return; } if (Object.op_Implicit((Object)(object)VoidRaidGauntletController.instance)) { VoidRaidGauntletController.instance.SpawnOutroPortal(); } foreach (TeamComponent item in TeamComponent.GetTeamMembers((TeamIndex)4).ToList()) { CharacterBody component = ((Component)item).GetComponent<CharacterBody>(); if (Object.op_Implicit((Object)(object)component) && !(((Object)component).name != "VoidRaidCrabJointBody(Clone)")) { EntityStateMachine val = ((IEnumerable<EntityStateMachine>)((Component)component).GetComponents<EntityStateMachine>()).FirstOrDefault((Func<EntityStateMachine, bool>)((EntityStateMachine e) => e.customName == "Body")); if (Object.op_Implicit((Object)(object)val)) { val.SetState((EntityState)new DeathState()); } } } } private void TriggerWardWipe() { //IL_0034: 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_0044: Unknown result type (might be due to invalid IL or missing references) //IL_0046: 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_0055: Expected O, but got Unknown FathomlessMissionController instance = FathomlessMissionController.instance; if (Object.op_Implicit((Object)(object)instance) && Object.op_Implicit((Object)(object)instance.voidlingBody)) { CharacterBody voidlingBody = instance.voidlingBody; voidlingBody.RemoveBuff(Buffs.HiddenInvincibility); voidlingBody.healthComponent.TakeDamage(new DamageInfo { damage = 100000000f, position = voidlingBody.corePosition }); voidlingBody.AddBuff(Buffs.HiddenInvincibility); EntityStateMachine val = ((Component)voidlingBody).gameObject.GetComponents<EntityStateMachine>().First((EntityStateMachine esm) => esm.customName == "Body"); voidlingBody.skillLocator.special.SetSkillOverride((object)val, Main.sdWardWipe, (SkillOverridePriority)4); voidlingBody.skillLocator.special.AddOneStock(); if (Object.op_Implicit((Object)(object)instance.wardWipeDriver)) { ((Behaviour)instance.wardWipeDriver).enabled = true; } if (Object.op_Implicit((Object)(object)instance.singularityDriver)) { ((Behaviour)instance.singularityDriver).enabled = false; } if (Object.op_Implicit((Object)(object)instance.mazeDriver)) { ((Behaviour)instance.mazeDriver).enabled = false; } if (Object.op_Implicit((Object)(object)instance.fireMissileDriver)) { ((Behaviour)instance.fireMissileDriver).enabled = false; } if (Object.op_Implicit((Object)(object)instance.multibeamDriver)) { ((Behaviour)instance.multibeamDriver).enabled = false; } } } private void OnJointThreshold(HealthComponent hc, CharacterBody body, JointThresholdController jtc, float thresholdFraction, int phase) { body.AddBuff(Buffs.Immune); hc.health = hc.fullHealth * thresholdFraction; jtc.reachedThreshold = true; FathomlessMissionController instance = FathomlessMissionController.instance; if (Object.op_Implicit((Object)(object)instance)) { if (phase == 0 && Object.op_Implicit((Object)(object)instance.singularityDriver) && !((Behaviour)instance.singularityDriver).enabled) { ((Behaviour)instance.singularityDriver).enabled = true; } if (phase == 1 && Object.op_Implicit((Object)(object)instance.mazeDriver) && !((Behaviour)instance.mazeDriver).enabled) { ((Behaviour)instance.mazeDriver).enabled = true; body.skillLocator.special.AddOneStock(); } } if (JointThresholdController.AllJointsReachedThreshold()) { TriggerWardWipe(); } } private void OnJointFinalThreshold(DamageReport damageReport, HealthComponent hc, CharacterBody body, JointThresholdController jtc) { //IL_0052: 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_009e: 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) damageReport.damageDealt = 0f; hc.health = 1f; body.AddBuff(Buffs.Immune); jtc.reachedThreshold = true; if (!JointThresholdController.AllJointsReachedThreshold()) { return; } FathomlessMissionController instance = FathomlessMissionController.instance; if (instance != null) { CharacterBody voidlingBody = instance.voidlingBody; if (voidlingBody != null) { voidlingBody.healthComponent.Suicide((GameObject)null, (GameObject)null, default(DamageTypeCombo)); } } foreach (TeamComponent item in TeamComponent.GetTeamMembers((TeamIndex)4).ToList()) { CharacterBody component = ((Component)item).GetComponent<CharacterBody>(); if (Object.op_Implicit((Object)(object)component) && ((Object)component).name == "VoidRaidCrabJointBody(Clone)") { component.SetBuffCount(Buffs.Immune.buffIndex, 0); component.healthComponent.Suicide((GameObject)null, (GameObject)null, default(DamageTypeCombo)); } } } private void ThresholdCheck(orig_SendDamageDealt orig, DamageReport damageReport) { if (Object.op_Implicit((Object)(object)damageReport.victim)) { HealthComponent component = ((Component)damageReport.victim).gameObject.GetComponent<HealthComponent>(); if (Object.op_Implicit((Object)(object)component)) { CharacterBody body = component.body; if (Object.op_Implicit((Object)(object)body) && ((Object)body).name == "VoidRaidCrabJointBody(Clone)") { JointThresholdController component2 = ((Component)body).GetComponent<JointThresholdController>(); if (Object.op_Implicit((Object)(object)component2) && !component2.reachedThreshold) { int num = FathomlessMissionController.instance?.GetCurrentPhase() ?? (-1); if (component2.nextCleansePercent > 0f && component.health <= component.fullHealth * component2.nextCleansePercent) { component2.CleanseDebuffs(); component2.nextCleansePercent -= 0.05f; } if (num >= 0 && num <= 1) { float thresholdForPhase = component2.GetThresholdForPhase(num); if (thresholdForPhase > 0f && component.health <= component.fullHealth * thresholdForPhase) { OnJointThreshold(component, body, component2, thresholdForPhase, num); } } else if (num == 2 && component.health <= 0f) { OnJointFinalThreshold(damageReport, component, body, component2); } } } } } orig.Invoke(damageReport); } private void TweakBossDirector(orig_Start orig, SceneDirector self) { //IL_0000: 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) //IL_00d3: Unknown result type (might be due to invalid IL or missing references) //IL_00f0: Unknown result type (might be due to invalid IL or missing references) //IL_00fc: Unknown result type (might be due to invalid IL or missing references) //IL_0125: Unknown result type (might be due to invalid IL or missing references) //IL_0127: 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_0191: Unknown result type (might be due to invalid IL or missing references) Scene activeScene = SceneManager.GetActiveScene(); if (((Scene)(ref activeScene)).name == "voidraid") { GameObject val = GameObject.Find("EncounterPhases"); GameObject gameObject = ((Component)val.transform.GetChild(0)).gameObject; if (Object.op_Implicit((Object)(object)val) && Object.op_Implicit((Object)(object)gameObject)) { DelayedEvent component = gameObject.GetComponent<DelayedEvent>(); if (Object.op_Implicit((Object)(object)component)) { Object.Destroy((Object)(object)component); } gameObject.AddComponent<FathomlessMissionController>(); Transform val2 = val.transform.GetChild(1).Find("Music"); if (Object.op_Implicit((Object)(object)val2)) { ((Object)val2).name = "Phase2Music"; val2.SetParent(gameObject.transform); } ((Component)val.transform.GetChild(1)).gameObject.SetActive(false); ((Component)val.transform.GetChild(2)).gameObject.SetActive(false); Transform transform = new GameObject().transform; transform.position = new Vector3(0f, -15f, 0f); SpawnInfo val3 = default(SpawnInfo); val3.explicitSpawnPosition = transform; val3.spawnCard = Main.bigVoidlingCard; gameObject.GetComponent<ScriptedCombatEncounter>().spawns = (SpawnInfo[])(object)new SpawnInfo[1] { val3 }; Transform child = GameObject.Find("RaidVoid").transform.GetChild(5); ((Component)child.GetChild(1)).GetComponent<PlayableDirector>().playableAsset = (PlayableAsset)(object)Main.introTimeline; Transform child2 = child.GetChild(2); child2.position = new Vector3(-110.27766f, 15f, -300f); child2.GetChild(0).position = new Vector3(-50f, 28.9719f, -396.993f); } } orig.Invoke(self); } private static FogRequest PreventFog(orig_RequestFog orig, VoidStageMissionController self, IZone zone) { if (ModConfig.enableFog.Value) { return orig.Invoke(self, zone); } return null; } private static void SpawnVoidMoonPortal(orig_AttemptToSpawnAllEligiblePortals orig, TeleporterInteraction self) { //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_0081: 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_008e: 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_009a: Unknown result type (might be due to invalid IL or missing references) //IL_009f: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to