Decompiled source of EnemiesReturns v0.4.12
plugins/Risky_Sleeps-EnemiesReturns/EnemiesReturns.dll
Decompiled a day ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using AdvancedPrediction.Prediction; using BepInEx; using BepInEx.Bootstrap; using BepInEx.Configuration; using BepInEx.Logging; using EnemiesReturns.Behaviors; using EnemiesReturns.Components; using EnemiesReturns.Components.BodyComponents; using EnemiesReturns.Components.BodyComponents.CharacterMotor; using EnemiesReturns.Components.BodyComponents.NetworkedEntityStateMachine; using EnemiesReturns.Components.BodyComponents.Skills; using EnemiesReturns.Components.GeneralComponents; using EnemiesReturns.Components.MasterComponents; using EnemiesReturns.Components.ModelComponents; using EnemiesReturns.Components.ModelComponents.Hitboxes; using EnemiesReturns.Components.ModelComponents.Hurtboxes; using EnemiesReturns.Components.ModelComponents.Skins; using EnemiesReturns.Configuration; using EnemiesReturns.Configuration.LynxTribe; using EnemiesReturns.EditorHelpers; using EnemiesReturns.Enemies.Colossus; using EnemiesReturns.Enemies.Ifrit; using EnemiesReturns.Enemies.Ifrit.Pillar; using EnemiesReturns.Enemies.LynxTribe; using EnemiesReturns.Enemies.LynxTribe.Archer; using EnemiesReturns.Enemies.LynxTribe.Hunter; using EnemiesReturns.Enemies.LynxTribe.Scout; using EnemiesReturns.Enemies.LynxTribe.Shaman; using EnemiesReturns.Enemies.LynxTribe.Storm; using EnemiesReturns.Enemies.LynxTribe.Totem; using EnemiesReturns.Enemies.MechanicalSpider; using EnemiesReturns.Enemies.Spitter; using EnemiesReturns.Items.ColossalKnurl; using EnemiesReturns.Items.LynxFetish; using EnemiesReturns.Items.SpawnPillarOnChampionKill; using EnemiesReturns.Junk.ModdedEntityStates.Colossus.HeadLaser; using EnemiesReturns.Junk.ModdedEntityStates.Ifrit; using EnemiesReturns.Junk.ModdedEntityStates.LynxTribe.Hunter; using EnemiesReturns.Junk.ModdedEntityStates.LynxTribe.Shaman; using EnemiesReturns.Junk.ModdedEntityStates.LynxTribe.Shaman.Teleport; using EnemiesReturns.Junk.ModdedEntityStates.LynxTribe.Totem; using EnemiesReturns.Junk.ModdedEntityStates.Spitter; using EnemiesReturns.ModCompats; using EnemiesReturns.ModdedEntityStates; using EnemiesReturns.ModdedEntityStates.Colossus; using EnemiesReturns.ModdedEntityStates.Colossus.Death; using EnemiesReturns.ModdedEntityStates.Colossus.HeadLaserBarrage; using EnemiesReturns.ModdedEntityStates.Colossus.RockClap; using EnemiesReturns.ModdedEntityStates.Colossus.Stomp; using EnemiesReturns.ModdedEntityStates.Ifrit; using EnemiesReturns.ModdedEntityStates.Ifrit.FlameCharge; using EnemiesReturns.ModdedEntityStates.Ifrit.Hellzone; using EnemiesReturns.ModdedEntityStates.Ifrit.Pillar; using EnemiesReturns.ModdedEntityStates.Ifrit.Pillar.Enemy; using EnemiesReturns.ModdedEntityStates.Ifrit.Pillar.Player; using EnemiesReturns.ModdedEntityStates.LynxTribe; using EnemiesReturns.ModdedEntityStates.LynxTribe.Archer; using EnemiesReturns.ModdedEntityStates.LynxTribe.Hunter; using EnemiesReturns.ModdedEntityStates.LynxTribe.Hunter.Lunge; using EnemiesReturns.ModdedEntityStates.LynxTribe.Scout; using EnemiesReturns.ModdedEntityStates.LynxTribe.Shaman; using EnemiesReturns.ModdedEntityStates.LynxTribe.Storm; using EnemiesReturns.ModdedEntityStates.LynxTribe.Totem; using EnemiesReturns.ModdedEntityStates.LynxTribe.Totem.Burrow; using EnemiesReturns.ModdedEntityStates.MechanicalSpider; using EnemiesReturns.ModdedEntityStates.MechanicalSpider.Dash; using EnemiesReturns.ModdedEntityStates.MechanicalSpider.Death; using EnemiesReturns.ModdedEntityStates.MechanicalSpider.DoubleShot; using EnemiesReturns.ModdedEntityStates.Spitter; using EnemiesReturns.PrefabSetupComponents.BodyComponents; using EnemiesReturns.PrefabSetupComponents.MasterComponents; using EnemiesReturns.PrefabSetupComponents.ModelComponents; using EnemiesReturns.Projectiles; using EntityStates; using EntityStates.AI.Walker; using EntityStates.MeridianEvent; using EntityStates.Missions.BrotherEncounter; using Grumpy; using HG; using HG.Reflection; using IL.RoR2; using JetBrains.Annotations; using KinematicCharacterController; using Microsoft.CodeAnalysis; using Mono.Cecil.Cil; using MonoMod.Cil; using On.EntityStates.MeridianEvent; using On.EntityStates.Missions.BrotherEncounter; using On.RoR2; using R2API; using R2API.Networking; using Rewired.Utils; using Rewired.Utils.Classes.Utility; using Risky_Artifacts.Artifacts; using RoR2; using RoR2.Audio; using RoR2.CharacterAI; using RoR2.ContentManagement; using RoR2.EntityLogic; using RoR2.ExpansionManagement; using RoR2.Hologram; using RoR2.Mecanim; using RoR2.Navigation; using RoR2.Networking; using RoR2.Orbs; using RoR2.Projectile; using RoR2.Skills; using RoR2.UI; using TMPro; using ThreeEyedGames; using UnityEngine; using UnityEngine.AddressableAssets; using UnityEngine.Events; using UnityEngine.Networking; using UnityEngine.Rendering; using UnityEngine.Rendering.PostProcessing; using UnityEngine.UI; [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: OptIn] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("EnemiesReturns")] [assembly: AssemblyTitle("EnemiesReturns")] [assembly: AssemblyCompany("EnemiesReturns")] [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [Microsoft.CodeAnalysis.Embedded] [CompilerGenerated] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)] internal sealed class NullableAttribute : Attribute { public readonly byte[] NullableFlags; public NullableAttribute(byte P_0) { NullableFlags = new byte[1] { P_0 }; } public NullableAttribute(byte[] P_0) { NullableFlags = P_0; } } [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)] internal sealed class NullableContextAttribute : Attribute { public readonly byte Flag; public NullableContextAttribute(byte P_0) { Flag = P_0; } } } namespace EnemiesReturns { public class ContentProvider : IContentPackProvider { [StructLayout(LayoutKind.Sequential, Size = 1)] public struct MonsterCategories { public const string Champions = "Champions"; public const string Minibosses = "Minibosses"; public const string BasicMonsters = "Basic Monsters"; public const string Special = "Special"; } [Serializable] [CompilerGenerated] private sealed class <>c { public static readonly <>c <>9 = new <>c(); public static Action<Material[]> <>9__26_1; public static Func<Texture2D, bool> <>9__26_6; public static Func<Texture2D, bool> <>9__26_7; public static Func<Texture2D, string> <>9__26_8; public static Func<Texture2D, Texture2D> <>9__26_9; public static Func<Sprite, string> <>9__26_10; public static Func<Sprite, Sprite> <>9__26_11; public static Func<AnimationCurveDef, string> <>9__26_12; public static Func<GameObject, bool> <>9__27_0; public static Func<GameObject, bool> <>9__27_1; public static Func<GameObject, bool> <>9__27_2; public static Func<GameObject, bool> <>9__27_3; public static Func<GameObject, bool> <>9__27_4; public static Func<GameObject, bool> <>9__27_5; public static Func<GameObject, bool> <>9__27_6; public static Func<GameObject, bool> <>9__28_0; public static Func<GameObject, bool> <>9__29_0; public static Func<GameObject, bool> <>9__29_1; public static Func<GameObject, bool> <>9__30_0; public static Func<GameObject, bool> <>9__30_1; public static Func<GameObject, bool> <>9__31_0; public static Func<GameObject, bool> <>9__31_1; public static Func<GameObject, bool> <>9__31_2; public static Func<GameObject, bool> <>9__32_0; public static Func<GameObject, bool> <>9__32_1; public static Func<GameObject, bool> <>9__34_0; public static Func<GameObject, bool> <>9__34_1; public static Func<GameObject, bool> <>9__34_2; public static Func<GameObject, bool> <>9__35_0; public static Func<GameObject, bool> <>9__35_1; public static Func<GameObject, bool> <>9__37_0; public static Func<GameObject, bool> <>9__38_0; public static Func<GameObject, bool> <>9__38_1; public static Func<GameObject, bool> <>9__38_2; public static Func<GameObject, bool> <>9__38_3; public static Func<GameObject, bool> <>9__40_0; public static Func<GameObject, bool> <>9__40_1; public static Func<GameObject, bool> <>9__40_2; public static Func<GameObject, bool> <>9__40_3; public static Func<GameObject, bool> <>9__40_4; public static Func<GameObject, bool> <>9__40_5; public static Func<GameObject, bool> <>9__40_6; public static Func<GameObject, bool> <>9__41_0; public static Func<GameObject, bool> <>9__41_1; public static Func<GameObject, bool> <>9__41_2; public static Func<GameObject, bool> <>9__41_3; public static Func<GameObject, bool> <>9__41_4; public static Func<GameObject, bool> <>9__41_5; public static Func<GameObject, bool> <>9__42_0; public static Func<GameObject, bool> <>9__42_1; public static Func<GameObject, bool> <>9__42_2; public static Func<GameObject, bool> <>9__42_3; public static Func<GameObject, bool> <>9__42_4; public static Func<GameObject, bool> <>9__42_5; public static Func<GameObject, bool> <>9__43_0; public static Func<GameObject, bool> <>9__43_1; public static Func<GameObject, bool> <>9__43_2; public static Func<GameObject, bool> <>9__43_3; public static Func<GameObject, bool> <>9__43_4; public static Func<GameObject, bool> <>9__43_5; public static Func<GameObject, bool> <>9__43_6; public static Func<GameObject, bool> <>9__43_7; public static Func<GameObject, bool> <>9__43_8; public static Func<GameObject, bool> <>9__43_9; public static Func<GameObject, bool> <>9__43_10; public static Func<GameObject, bool> <>9__43_11; public static Func<GameObject, bool> <>9__44_0; public static Func<GameObject, bool> <>9__45_0; public static Func<GameObject, bool> <>9__45_1; public static Func<GameObject, bool> <>9__45_2; public static Func<GameObject, bool> <>9__45_3; public static Func<GameObject, bool> <>9__45_4; public static Func<GameObject, bool> <>9__45_5; public static EffectCondition <>9__45_6; public static Func<GameObject, bool> <>9__45_7; public static Func<GameObject, bool> <>9__45_8; public static Func<GameObject, bool> <>9__45_9; public static Func<GameObject, bool> <>9__45_10; public static Func<GameObject, bool> <>9__45_11; public static Func<GameObject, bool> <>9__45_12; public static Func<GameObject, bool> <>9__46_0; public static Func<GameObject, bool> <>9__46_1; internal void <LoadStaticContentAsync>b__26_1(Material[] assets) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Expected O, but got Unknown //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) Stopwatch val = new Stopwatch(); ((StopwatchBase)val).Start(); if (assets != null) { Material[] array = assets; foreach (Material val2 in array) { Shader val3 = Addressables.LoadAssetAsync<Shader>((object)ShaderLookup[((Object)val2.shader).name.ToLower()]).WaitForCompletion(); if (Object.op_Implicit((Object)(object)val3)) { val2.shader = val3; } else { Log.Info("Couldn't find replacement shader for " + ((Object)val2.shader).name.ToLower()); } MaterialCache.Add(((Object)val2).name, val2); } } ((StopwatchBase)val).Stop(); Log.Info("Materials swapped in " + ((StopwatchBase)val).elapsedSeconds); } internal bool <LoadStaticContentAsync>b__26_6(Texture2D texture) { return ((Object)texture).name == "texLavaCrackRound"; } internal bool <LoadStaticContentAsync>b__26_7(Texture2D texture) { return ((Object)texture).name.StartsWith("texRamp"); } internal string <LoadStaticContentAsync>b__26_8(Texture2D texture) { return ((Object)texture).name; } internal Texture2D <LoadStaticContentAsync>b__26_9(Texture2D texture) { return texture; } internal string <LoadStaticContentAsync>b__26_10(Sprite item) { return ((Object)item).name; } internal Sprite <LoadStaticContentAsync>b__26_11(Sprite item) { return item; } internal string <LoadStaticContentAsync>b__26_12(AnimationCurveDef item) { return ((Object)item).name; } internal bool <CreateIfrit>b__27_0(GameObject effect) { return ((Object)effect).name == "IfritSpawnPortal"; } internal bool <CreateIfrit>b__27_1(GameObject projectile) { return ((Object)projectile).name == "IfritHellzonePillarProjectile"; } internal bool <CreateIfrit>b__27_2(GameObject projectile) { return ((Object)projectile).name == "IfritHellzonePillarProjectileGhost"; } internal bool <CreateIfrit>b__27_3(GameObject projectile) { return ((Object)projectile).name == "IfritHellzoneVolcanoEffect"; } internal bool <CreateIfrit>b__27_4(GameObject body) { return ((Object)body).name == "IfritBody"; } internal bool <CreateIfrit>b__27_5(GameObject mane) { return ((Object)mane).name == "IfritManeFireParticle"; } internal bool <CreateIfrit>b__27_6(GameObject master) { return ((Object)master).name == "IfritMaster"; } internal bool <CreateIfritItem>b__28_0(GameObject item) { return ((Object)item).name == "IfritItem"; } internal bool <CreateIfritPillar>b__29_0(GameObject body) { return ((Object)body).name == "IfritPylonBody"; } internal bool <CreateIfritPillar>b__29_1(GameObject master) { return ((Object)master).name == "IfritPylonMaster"; } internal bool <CreateColossus>b__30_0(GameObject body) { return ((Object)body).name == "ColossusBody"; } internal bool <CreateColossus>b__30_1(GameObject master) { return ((Object)master).name == "ColossusMaster"; } internal bool <CreateColossusItem>b__31_0(GameObject item) { return ((Object)item).name == "PickupColossalCurl"; } internal bool <CreateColossusItem>b__31_1(GameObject item) { return ((Object)item).name == "ColossalKnurlFistProjectileGhost"; } internal bool <CreateColossusItem>b__31_2(GameObject item) { return ((Object)item).name == "ColossalKnurlFistProjectile"; } internal bool <CreateSpitter>b__32_0(GameObject body) { return ((Object)body).name == "SpitterBody"; } internal bool <CreateSpitter>b__32_1(GameObject master) { return ((Object)master).name == "SpitterMaster"; } internal bool <CreateMechanichalSpiderDrone>b__34_0(GameObject body) { return ((Object)body).name == "MechanicalSpiderDroneBody"; } internal bool <CreateMechanichalSpiderDrone>b__34_1(GameObject master) { return ((Object)master).name == "MechanicalSpiderDroneMaster"; } internal bool <CreateMechanichalSpiderDrone>b__34_2(GameObject interactable) { return ((Object)interactable).name == "MechanicalSpiderBroken"; } internal bool <CreateMechanicalSpiderEnemy>b__35_0(GameObject body) { return ((Object)body).name == "MechanicalSpiderBody"; } internal bool <CreateMechanicalSpiderEnemy>b__35_1(GameObject master) { return ((Object)master).name == "MechanicalSpiderMaster"; } internal bool <CreateLynxTrap>b__37_0(GameObject prefab) { return ((Object)prefab).name == "LynxTrapPrefab"; } internal bool <CreateLynxShrine>b__38_0(GameObject prefab) { return ((Object)prefab).name == "LynxTribeRetreatEffect"; } internal bool <CreateLynxShrine>b__38_1(GameObject prefab) { return ((Object)prefab).name == "LynxShrinePrefab"; } internal bool <CreateLynxShrine>b__38_2(GameObject prefab) { return ((Object)prefab).name == "LynxShrinePrefab2"; } internal bool <CreateLynxShrine>b__38_3(GameObject prefab) { return ((Object)prefab).name == "LynxShrinePrefab3"; } internal bool <CreateLynxArcher>b__40_0(GameObject prefab) { return ((Object)prefab).name == "ArrowProjectile"; } internal bool <CreateLynxArcher>b__40_1(GameObject prefab) { return ((Object)prefab).name == "ArrowProjectileGhost"; } internal bool <CreateLynxArcher>b__40_2(GameObject prefab) { return ((Object)prefab).name == "ArrowProjectileGhost"; } internal bool <CreateLynxArcher>b__40_3(GameObject prefab) { return ((Object)prefab).name == "LynxArcherBody"; } internal bool <CreateLynxArcher>b__40_4(GameObject prefab) { return ((Object)prefab).name == "LynxArcherMaster"; } internal bool <CreateLynxArcher>b__40_5(GameObject prefab) { return ((Object)prefab).name == "LynxArcherAllyBody"; } internal bool <CreateLynxArcher>b__40_6(GameObject prefab) { return ((Object)prefab).name == "LynxArcherAllyMaster"; } internal bool <CreateLynxHunter>b__41_0(GameObject prefab) { return ((Object)prefab).name == "LynxHunterAttackEffect"; } internal bool <CreateLynxHunter>b__41_1(GameObject prefab) { return ((Object)prefab).name == "LynxHunterSpearTipEffect"; } internal bool <CreateLynxHunter>b__41_2(GameObject prefab) { return ((Object)prefab).name == "LynxHunterBody"; } internal bool <CreateLynxHunter>b__41_3(GameObject prefab) { return ((Object)prefab).name == "LynxHunterMaster"; } internal bool <CreateLynxHunter>b__41_4(GameObject prefab) { return ((Object)prefab).name == "LynxHunterAllyBody"; } internal bool <CreateLynxHunter>b__41_5(GameObject prefab) { return ((Object)prefab).name == "LynxHunterAllyMaster"; } internal bool <CreateLynxScout>b__42_0(GameObject prefab) { return ((Object)prefab).name == "LynxScoutClawEffectLeft"; } internal bool <CreateLynxScout>b__42_1(GameObject prefab) { return ((Object)prefab).name == "LynxScoutClawEffectRight"; } internal bool <CreateLynxScout>b__42_2(GameObject prefab) { return ((Object)prefab).name == "LynxScoutBody"; } internal bool <CreateLynxScout>b__42_3(GameObject prefab) { return ((Object)prefab).name == "LynxScoutMaster"; } internal bool <CreateLynxScout>b__42_4(GameObject prefab) { return ((Object)prefab).name == "LynxScoutAllyBody"; } internal bool <CreateLynxScout>b__42_5(GameObject prefab) { return ((Object)prefab).name == "LynxScoutAllyMaster"; } internal bool <CreateLynxTotem>b__43_0(GameObject prefab) { return ((Object)prefab).name == "LynxSpawnParticles"; } internal bool <CreateLynxTotem>b__43_1(GameObject prefab) { return ((Object)prefab).name == "LynxSpawnParticles"; } internal bool <CreateLynxTotem>b__43_2(GameObject prefab) { return ((Object)prefab).name == "LynxTotemFireWallProjectile"; } internal bool <CreateLynxTotem>b__43_3(GameObject prefab) { return ((Object)prefab).name == "TotemShakeParticles"; } internal bool <CreateLynxTotem>b__43_4(GameObject prefab) { return ((Object)prefab).name == "TotemSingleStoneParticle"; } internal bool <CreateLynxTotem>b__43_5(GameObject prefab) { return ((Object)prefab).name == "TotemEyeGlowSummonTribe"; } internal bool <CreateLynxTotem>b__43_6(GameObject prefab) { return ((Object)prefab).name == "TotemEyeGlowSummonStorm"; } internal bool <CreateLynxTotem>b__43_7(GameObject prefab) { return ((Object)prefab).name == "TotemEyeGlowGroundpound"; } internal bool <CreateLynxTotem>b__43_8(GameObject prefab) { return ((Object)prefab).name == "LynxTotemGroundpoundProjectile"; } internal bool <CreateLynxTotem>b__43_9(GameObject prefab) { return ((Object)prefab).name == "TotemSummonStormOrb"; } internal bool <CreateLynxTotem>b__43_10(GameObject prefab) { return ((Object)prefab).name == "LynxTotemBody"; } internal bool <CreateLynxTotem>b__43_11(GameObject prefab) { return ((Object)prefab).name == "LynxTotemMaster"; } internal bool <CreateLynxTotemItem>b__44_0(GameObject item) { return ((Object)item).name == "PickupLynxFetish"; } internal bool <CreateLynxShaman>b__45_0(GameObject prefab) { return ((Object)prefab).name == "LynxSpawnParticles"; } internal bool <CreateLynxShaman>b__45_1(GameObject prefab) { return ((Object)prefab).name == "ShamanSummonStormParticle"; } internal bool <CreateLynxShaman>b__45_2(GameObject prefab) { return ((Object)prefab).name == "ShamanMask"; } internal bool <CreateLynxShaman>b__45_3(GameObject prefab) { return ((Object)prefab).name == "ShamanTeleportEffectOut"; } internal bool <CreateLynxShaman>b__45_4(GameObject prefab) { return ((Object)prefab).name == "LynxShamanPushBackSummon"; } internal bool <CreateLynxShaman>b__45_5(GameObject prefab) { return ((Object)prefab).name == "LynxShamanPushBackExplosion"; } internal bool <CreateLynxShaman>b__45_6(CharacterBody body) { return body.HasBuff(ShamanStuff.ReduceHealing); } internal bool <CreateLynxShaman>b__45_7(GameObject prefab) { return ((Object)prefab).name == "LynxShamanProjectileImpactEffect"; } internal bool <CreateLynxShaman>b__45_8(GameObject prefab) { return ((Object)prefab).name == "ShamanTrackingProjectile"; } internal bool <CreateLynxShaman>b__45_9(GameObject body) { return ((Object)body).name == "LynxShamanBody"; } internal bool <CreateLynxShaman>b__45_10(GameObject master) { return ((Object)master).name == "LynxShamanMaster"; } internal bool <CreateLynxShaman>b__45_11(GameObject prefab) { return ((Object)prefab).name == "LynxShamanAllyBody"; } internal bool <CreateLynxShaman>b__45_12(GameObject prefab) { return ((Object)prefab).name == "LynxShamanAllyMaster"; } internal bool <CreateLynxStorm>b__46_0(GameObject body) { return ((Object)body).name == "StormBody"; } internal bool <CreateLynxStorm>b__46_1(GameObject master) { return ((Object)master).name == "StormMaster"; } } private readonly ContentPack _contentPack = new ContentPack(); public const string AssetBundleName = "EnemiesReturns"; public const string AssetBundleFolder = "AssetBundles"; public const string SoundbankFolder = "Soundbanks"; public const string SoundsSoundBankFileName = "EnemiesReturnsSounds"; private readonly List<GameObject> bodyList = new List<GameObject>(); private readonly List<GameObject> masterList = new List<GameObject>(); private readonly List<Type> stateList = new List<Type>(); private readonly List<SkillFamily> sfList = new List<SkillFamily>(); private readonly List<SkillDef> sdList = new List<SkillDef>(); private readonly List<EffectDef> effectsList = new List<EffectDef>(); private readonly List<GameObject> projectilesList = new List<GameObject>(); private readonly List<UnlockableDef> unlockablesList = new List<UnlockableDef>(); private readonly List<ItemDef> itemList = new List<ItemDef>(); private readonly List<NetworkSoundEventDef> nseList = new List<NetworkSoundEventDef>(); private readonly List<GameObject> nopList = new List<GameObject>(); private readonly List<BuffDef> bdList = new List<BuffDef>(); public static readonly Dictionary<string, string> ShaderLookup = new Dictionary<string, string> { { "stubbedror2/base/shaders/hgstandard", "RoR2/Base/Shaders/HGStandard.shader" }, { "stubbedror2/base/shaders/hgsnowtopped", "RoR2/Base/Shaders/HGSnowTopped.shader" }, { "stubbedror2/base/shaders/hgtriplanarterrainblend", "RoR2/Base/Shaders/HGTriplanarTerrainBlend.shader" }, { "stubbedror2/base/shaders/hgintersectioncloudremap", "RoR2/Base/Shaders/HGIntersectionCloudRemap.shader" }, { "stubbedror2/base/shaders/hgcloudremap", "RoR2/Base/Shaders/HGCloudRemap.shader" }, { "stubbedror2/base/shaders/hgopaquecloudremap", "RoR2/Base/Shaders/HGOpaqueCloudRemap.shader" }, { "stubbedror2/base/shaders/hgdistortion", "RoR2/Base/Shaders/HGDistortion.shader" }, { "stubbedcalm water/calmwater - dx11 - doublesided", "Calm Water/CalmWater - DX11 - DoubleSided.shader" }, { "stubbedcalm water/calmwater - dx11", "Calm Water/CalmWater - DX11.shader" }, { "stubbednature/speedtree", "RoR2/Base/Shaders/SpeedTreeCustom.shader" }, { "stubbeddecalicious/decaliciousdeferreddecal", "Decalicious/DecaliciousDeferredDecal.shader" } }; public static Dictionary<string, Material> MaterialCache = new Dictionary<string, Material>(); public static ItemRelationshipProvider ModdedContagiousItemProvider; public static ItemDef VoidMegaCrabItem = Addressables.LoadAssetAsync<ItemDef>((object)"RoR2/DLC1/VoidMegaCrabItem.asset").WaitForCompletion(); public string identifier => "com.Viliger.EnemiesReturns.ContentProvider"; public IEnumerator FinalizeAsync(FinalizeAsyncArgs args) { args.ReportProgress(1f); yield break; } public IEnumerator GenerateContentPackAsync(GetContentPackAsyncArgs args) { ContentPack.Copy(_contentPack, args.output); args.ReportProgress(1f); yield break; } public IEnumerator LoadStaticContentAsync(LoadStaticContentAsyncArgs args) { Stopwatch totalStopwatch = new Stopwatch(); ((StopwatchBase)totalStopwatch).Start(); _contentPack.identifier = identifier; ModdedContagiousItemProvider = ScriptableObject.CreateInstance<ItemRelationshipProvider>(); ((Object)ModdedContagiousItemProvider).name = "EnemiesReturnsContagiousItemProvider"; ModdedContagiousItemProvider.relationshipType = Addressables.LoadAssetAsync<ItemRelationshipType>((object)"RoR2/DLC1/Common/ContagiousItem.asset").WaitForCompletion(); ModdedContagiousItemProvider.relationships = Array.Empty<Pair>(); Stopwatch val = new Stopwatch(); ((StopwatchBase)val).Start(); string soundbanksFolderPath = Path.Combine(Path.GetDirectoryName(typeof(ContentProvider).Assembly.Location), "Soundbanks"); LoadSoundBanks(soundbanksFolderPath); ((StopwatchBase)val).Stop(); Log.Info("Soundbanks loaded in " + ((StopwatchBase)val).elapsedSeconds); string path = Path.Combine(Path.GetDirectoryName(typeof(ContentProvider).Assembly.Location), "AssetBundles"); AssetBundle assetbundle = null; yield return LoadAssetBundle(Path.Combine(path, "EnemiesReturns"), args.progressReceiver, delegate(AssetBundle resultAssetBundle) { assetbundle = resultAssetBundle; }); yield return LoadAllAssetsAsync<Material>(assetbundle, args.progressReceiver, (Action<Material[]>)delegate(Material[] assets) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Expected O, but got Unknown //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) Stopwatch val4 = new Stopwatch(); ((StopwatchBase)val4).Start(); if (assets != null) { Material[] array = assets; foreach (Material val5 in array) { Shader val6 = Addressables.LoadAssetAsync<Shader>((object)ShaderLookup[((Object)val5.shader).name.ToLower()]).WaitForCompletion(); if (Object.op_Implicit((Object)(object)val6)) { val5.shader = val6; } else { Log.Info("Couldn't find replacement shader for " + ((Object)val5.shader).name.ToLower()); } MaterialCache.Add(((Object)val5).name, val5); } } ((StopwatchBase)val4).Stop(); Log.Info("Materials swapped in " + ((StopwatchBase)val4).elapsedSeconds); }); Dictionary<string, Sprite> iconLookup = new Dictionary<string, Sprite>(); Dictionary<string, Texture2D> rampLookups = new Dictionary<string, Texture2D>(); Texture2D texLavaCrackRound = null; yield return LoadAllAssetsAsync<Texture2D>(assetbundle, args.progressReceiver, (Action<Texture2D[]>)delegate(Texture2D[] textures) { texLavaCrackRound = textures.First((Texture2D texture) => ((Object)texture).name == "texLavaCrackRound"); rampLookups = textures.Where((Texture2D texture) => ((Object)texture).name.StartsWith("texRamp")).ToDictionary((Texture2D texture) => ((Object)texture).name, (Texture2D texture) => texture); }); yield return LoadAllAssetsAsync<Sprite>(assetbundle, args.progressReceiver, (Action<Sprite[]>)delegate(Sprite[] assets) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Expected O, but got Unknown Stopwatch val3 = new Stopwatch(); ((StopwatchBase)val3).Start(); iconLookup = assets.ToDictionary((Sprite item) => ((Object)item).name, (Sprite item) => item); ((StopwatchBase)val3).Stop(); Log.Info("Icons loaded in " + ((StopwatchBase)val3).elapsedSeconds); }); Dictionary<string, AnimationCurveDef> acdLookup = new Dictionary<string, AnimationCurveDef>(); yield return LoadAllAssetsAsync<AnimationCurveDef>(assetbundle, args.progressReceiver, (Action<AnimationCurveDef[]>)delegate(AnimationCurveDef[] assets) { acdLookup = assets.ToDictionary((AnimationCurveDef item) => ((Object)item).name); }); yield return LoadAllAssetsAsync<GameObject>(assetbundle, args.progressReceiver, (Action<GameObject[]>)delegate(GameObject[] assets) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Expected O, but got Unknown Stopwatch val2 = new Stopwatch(); ((StopwatchBase)val2).Start(); stateList.Add(typeof(BasePlayerEmoteState)); CreateSpitter(assets, iconLookup); CreateColossus(assets, iconLookup, acdLookup); CreateIfrit(assets, iconLookup, texLavaCrackRound, acdLookup); CreateMechanicalSpider(assets, iconLookup, acdLookup); CreateLynxTribe(assets, iconLookup, acdLookup, rampLookups); ((StopwatchBase)val2).Stop(); Log.Info("Characters created in " + ((StopwatchBase)val2).elapsedSeconds); }); _contentPack.bodyPrefabs.Add(bodyList.ToArray()); _contentPack.masterPrefabs.Add(masterList.ToArray()); _contentPack.skillDefs.Add(sdList.ToArray()); _contentPack.skillFamilies.Add(sfList.ToArray()); _contentPack.entityStateTypes.Add(stateList.ToArray()); _contentPack.effectDefs.Add(effectsList.ToArray()); _contentPack.projectilePrefabs.Add(projectilesList.ToArray()); _contentPack.unlockableDefs.Add(unlockablesList.ToArray()); _contentPack.itemDefs.Add(itemList.ToArray()); _contentPack.networkSoundEventDefs.Add(nseList.ToArray()); _contentPack.networkedObjectPrefabs.Add(nopList.ToArray()); _contentPack.itemRelationshipProviders.Add((ItemRelationshipProvider[])(object)new ItemRelationshipProvider[1] { ModdedContagiousItemProvider }); _contentPack.buffDefs.Add(bdList.ToArray()); ((StopwatchBase)totalStopwatch).Stop(); Log.Info("Total loading time: " + ((StopwatchBase)totalStopwatch).elapsedSeconds); } private void CreateIfrit(GameObject[] assets, Dictionary<string, Sprite> iconLookup, Texture2D texLavaCrackRound, Dictionary<string, AnimationCurveDef> acdLookup) { //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Expected O, but got Unknown //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Expected O, but got Unknown //IL_00c7: Unknown result type (might be due to invalid IL or missing references) //IL_00d1: Expected O, but got Unknown //IL_0384: Unknown result type (might be due to invalid IL or missing references) //IL_0389: Unknown result type (might be due to invalid IL or missing references) //IL_0394: Unknown result type (might be due to invalid IL or missing references) //IL_03a4: Unknown result type (might be due to invalid IL or missing references) //IL_03a6: Unknown result type (might be due to invalid IL or missing references) //IL_03ab: Unknown result type (might be due to invalid IL or missing references) //IL_03b2: Unknown result type (might be due to invalid IL or missing references) //IL_03c4: Expected O, but got Unknown //IL_03c4: Unknown result type (might be due to invalid IL or missing references) //IL_03c9: Unknown result type (might be due to invalid IL or missing references) //IL_03d1: Unknown result type (might be due to invalid IL or missing references) //IL_03d3: Unknown result type (might be due to invalid IL or missing references) //IL_03da: Expected O, but got Unknown CreateIfritPillar(assets, iconLookup, acdLookup); ExplicitPickupDropTable droptable = CreateIfritItem(assets, iconLookup); if (Ifrit.Enabled.Value) { IfritStuff ifritStuff = new IfritStuff(); EnemiesReturns.ModdedEntityStates.Ifrit.DeathState.deathEffect = ifritStuff.CreateDeathEffect(); effectsList.Add(new EffectDef(EnemiesReturns.ModdedEntityStates.Ifrit.DeathState.deathEffect)); SummonPylon.screamPrefab = ifritStuff.CreateBreathParticle(); effectsList.Add(new EffectDef(SummonPylon.screamPrefab)); NetworkSoundEventDef val = Utils.CreateNetworkSoundDef("ER_Ifrit_Hellzone_Rock_Play"); nseList.Add(val); GameObject gameObject = assets.First((GameObject effect) => ((Object)effect).name == "IfritSpawnPortal"); EnemiesReturns.ModdedEntityStates.Ifrit.SpawnState.spawnEffect = ifritStuff.CreateSpawnEffect(gameObject, acdLookup["acdPortalPP"]); effectsList.Add(new EffectDef(EnemiesReturns.ModdedEntityStates.Ifrit.SpawnState.spawnEffect)); GameObject gameObject2 = assets.First((GameObject projectile) => ((Object)projectile).name == "IfritHellzonePillarProjectile"); GameObject ghostPrefab = assets.First((GameObject projectile) => ((Object)projectile).name == "IfritHellzonePillarProjectileGhost"); GameObject volcanoEffectPrefab = assets.First((GameObject projectile) => ((Object)projectile).name == "IfritHellzoneVolcanoEffect"); GameObject val2 = ifritStuff.CreateHellzonePillarProjectile(gameObject2, ghostPrefab); GameObject val3 = ifritStuff.CreateHellfireDotZoneProjectile(val2, volcanoEffectPrefab, texLavaCrackRound, val); GameObject val4 = ifritStuff.CreateHellzoneProjectile(); GameObject val5 = ifritStuff.CreateHellzonePredictionProjectile(val3, texLavaCrackRound); projectilesList.Add(val3); projectilesList.Add(val4); projectilesList.Add(val2); projectilesList.Add(val5); FlameCharge.flamethrowerEffectPrefab = ifritStuff.CreateFlameBreath(); FireHellzoneFire.projectilePrefab = val4; FireHellzoneFire.dotZoneProjectile = val5; IfritBody ifritBody = new IfritBody(); IfritBody.Skills.Hellzone = ifritBody.CreateHellzoneSkill(); IfritBody.SkillFamilies.Secondary = Utils.CreateSkillFamily("IfritSecondaryFamily", IfritBody.Skills.Hellzone); IfritBody.Skills.SummonPylon = ifritBody.CreateSummonPylonSkill(); IfritBody.SkillFamilies.Special = Utils.CreateSkillFamily("IfritSpecialFamily", IfritBody.Skills.SummonPylon); IfritBody.Skills.FlameCharge = ifritBody.CreateFlameChargeSkill(); IfritBody.SkillFamilies.Utility = Utils.CreateSkillFamily("IfritUtilityFamily", IfritBody.Skills.FlameCharge); IfritBody.Skills.Smash = ifritBody.CreateSmashSkill(); IfritBody.SkillFamilies.Primary = Utils.CreateSkillFamily("IfritPrimaryFamily", IfritBody.Skills.Smash); UnlockableDef val6 = Utils.CreateUnlockableDef("Logs.IfritBody.0", "ENEMIES_RETURNS_UNLOCKABLE_LOG_IFRIT"); unlockablesList.Add(val6); IfritBody.BodyPrefab = ifritBody.AddBodyComponents(assets.First((GameObject body) => ((Object)body).name == "IfritBody"), iconLookup["texIconIfritBody"], val6, droptable); bodyList.Add(IfritBody.BodyPrefab); assets.First((GameObject mane) => ((Object)mane).name == "IfritManeFireParticle").GetComponent<Renderer>().material = GetOrCreateMaterial("matIfritManeFire", ifritBody.CreateManeFiresMaterial); IfritMaster.MasterPrefab = new IfritMaster().AddMasterComponents(assets.First((GameObject master) => ((Object)master).name == "IfritMaster"), IfritBody.BodyPrefab); masterList.Add(IfritMaster.MasterPrefab); IfritBody.SpawnCards.cscIfritDefault = ifritBody.CreateCard("cscIfritDefault", IfritMaster.MasterPrefab, IfritBody.SkinDefs.Default, IfritBody.BodyPrefab); DirectorCard card = new DirectorCard { spawnCard = (SpawnCard)(object)IfritBody.SpawnCards.cscIfritDefault, selectionWeight = Ifrit.SelectionWeight.Value, spawnDistance = (MonsterSpawnDistance)0, preventOverhead = true, minimumStageCompletions = Ifrit.MinimumStageCompletion.Value }; DirectorCardHolder directorCard = new DirectorCardHolder { Card = card, MonsterCategory = (MonsterCategory)4 }; Utils.AddMonsterToStage(Ifrit.DefaultStageList.Value, directorCard); stateList.Add(typeof(EnemiesReturns.ModdedEntityStates.Ifrit.SpawnState)); stateList.Add(typeof(EnemiesReturns.ModdedEntityStates.Ifrit.DeathState)); stateList.Add(typeof(SummonPylon)); stateList.Add(typeof(FireHellzoneStart)); stateList.Add(typeof(FireHellzoneFire)); stateList.Add(typeof(FireHellzoneEnd)); stateList.Add(typeof(FlameChargeBegin)); stateList.Add(typeof(FlameCharge)); stateList.Add(typeof(FlameChargeEnd)); stateList.Add(typeof(Smash)); if (Ifrit.AddToArtifactOfOrigin.Value && RiskyArtifafactsCompat.enabled) { RiskyArtifafactsCompat.AddMonsterToArtifactOfOrigin((SpawnCard)(object)IfritBody.SpawnCards.cscIfritDefault, 2); } } } private ExplicitPickupDropTable CreateIfritItem(GameObject[] assets, Dictionary<string, Sprite> iconLookup) { //IL_0083: 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_00a2: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Unknown result type (might be due to invalid IL or missing references) ExplicitPickupDropTable val = null; if (Ifrit.ItemEnabled.Value) { SpawnPillarOnChampionKillFactory.ItemDef = new SpawnPillarOnChampionKillFactory().CreateItem(assets.First((GameObject item) => ((Object)item).name == "IfritItem"), iconLookup["texIconIfritItem"]); itemList.Add(SpawnPillarOnChampionKillFactory.ItemDef); val = ScriptableObject.CreateInstance<ExplicitPickupDropTable>(); ((Object)val).name = "epdtIfrit"; ((PickupDropTable)val).canDropBeReplaced = true; val.pickupEntries = (PickupDefEntry[])(object)new PickupDefEntry[1] { new PickupDefEntry { pickupWeight = 1f, pickupDef = (Object)(object)SpawnPillarOnChampionKillFactory.ItemDef } }; ref Pair[] relationships = ref ModdedContagiousItemProvider.relationships; Pair val2 = new Pair { itemDef1 = SpawnPillarOnChampionKillFactory.ItemDef, itemDef2 = VoidMegaCrabItem }; ArrayUtils.ArrayAppend<Pair>(ref relationships, ref val2); } return val; } private void CreateIfritPillar(GameObject[] assets, Dictionary<string, Sprite> iconLookup, Dictionary<string, AnimationCurveDef> acdLookup) { //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Expected O, but got Unknown //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Expected O, but got Unknown //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Expected O, but got Unknown //IL_00e6: Unknown result type (might be due to invalid IL or missing references) //IL_00eb: Unknown result type (might be due to invalid IL or missing references) if (Ifrit.ItemEnabled.Value || Ifrit.Enabled.Value) { PillarStuff pillarStuff = new PillarStuff(); EnemiesReturns.ModdedEntityStates.Ifrit.Pillar.SpawnState.burrowPrefab = pillarStuff.CreateSpawnEffect(); effectsList.Add(new EffectDef(EnemiesReturns.ModdedEntityStates.Ifrit.Pillar.SpawnState.burrowPrefab)); BaseDeathState.fallEffect = pillarStuff.CreateDeathFallEffect(); effectsList.Add(new EffectDef(BaseDeathState.fallEffect)); KilledDeathState.explosionPrefab = (BaseFireExplosion.explosionPrefab = pillarStuff.CreateExlosionEffectAlt()); effectsList.Add(new EffectDef(BaseFireExplosion.explosionPrefab)); GameObject val = assets.First((GameObject body) => ((Object)body).name == "IfritPylonBody"); GameObject val2 = assets.First((GameObject master) => ((Object)master).name == "IfritPylonMaster"); KilledDeathState.fireballYCurve = acdLookup["acdFireballFallCurve"].curve; PillarStuff.PillarExplosion = ProcTypeAPI.ReserveProcType(); PillarMaster pillarMaster = new PillarMaster(); if (Ifrit.Enabled.Value) { PillarEnemyBody pillarEnemyBody = new PillarEnemyBody(); PillarEnemyBody.BodyPrefab = pillarEnemyBody.AddBodyComponents(PrefabAPI.InstantiateClone(val, "IfritPylonEnemyBody", false), iconLookup["texIconPillarEnemy"], acdLookup); bodyList.Add(PillarEnemyBody.BodyPrefab); PillarMaster.EnemyMasterPrefab = pillarMaster.AddMasterComponents(PrefabAPI.InstantiateClone(val2, "IfritPylonEnemyMaster", false), PillarEnemyBody.BodyPrefab); masterList.Add(PillarMaster.EnemyMasterPrefab); PillarEnemyBody.SpawnCard = pillarEnemyBody.CreateCard("cscIfritEnemyPillar", PillarMaster.EnemyMasterPrefab); stateList.Add(typeof(EnemiesReturns.ModdedEntityStates.Ifrit.Pillar.Enemy.ChargingExplosion)); stateList.Add(typeof(EnemiesReturns.ModdedEntityStates.Ifrit.Pillar.Enemy.FireExplosion)); stateList.Add(typeof(KilledDeathState)); } if (Ifrit.ItemEnabled.Value) { PillarAllyBody pillarAllyBody = new PillarAllyBody(); PillarAllyBody.BodyPrefab = pillarAllyBody.AddBodyComponents(PrefabAPI.InstantiateClone(val, "IfritPylonPlayerBody", false), iconLookup["texIconPillarAlly"], acdLookup); bodyList.Add(PillarAllyBody.BodyPrefab); PillarMaster.AllyMasterPrefab = pillarMaster.AddMasterComponents(PrefabAPI.InstantiateClone(val2, "IfritPylonPlayerMaster", false), PillarAllyBody.BodyPrefab); masterList.Add(PillarMaster.AllyMasterPrefab); PillarAllyBody.SpawnCard = pillarAllyBody.CreateCard("cscIfritPlayerPillar", PillarMaster.AllyMasterPrefab); stateList.Add(typeof(EnemiesReturns.ModdedEntityStates.Ifrit.Pillar.Player.ChargingExplosion)); stateList.Add(typeof(EnemiesReturns.ModdedEntityStates.Ifrit.Pillar.Player.FireExplosion)); } stateList.Add(typeof(SuicideDeathState)); stateList.Add(typeof(EnemiesReturns.ModdedEntityStates.Ifrit.Pillar.SpawnState)); } } private void CreateColossus(GameObject[] assets, Dictionary<string, Sprite> iconLookup, Dictionary<string, AnimationCurveDef> acdLookup) { //IL_0031: Unknown result type (might be due to invalid IL or missing references) //IL_003b: 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_0082: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Expected O, but got Unknown //IL_00fe: Unknown result type (might be due to invalid IL or missing references) //IL_0108: Expected O, but got Unknown //IL_04e1: Unknown result type (might be due to invalid IL or missing references) //IL_04e6: Unknown result type (might be due to invalid IL or missing references) //IL_04f1: Unknown result type (might be due to invalid IL or missing references) //IL_0501: Unknown result type (might be due to invalid IL or missing references) //IL_0503: Unknown result type (might be due to invalid IL or missing references) //IL_0508: Unknown result type (might be due to invalid IL or missing references) //IL_050f: Unknown result type (might be due to invalid IL or missing references) //IL_0521: Expected O, but got Unknown //IL_0521: Unknown result type (might be due to invalid IL or missing references) //IL_0526: Unknown result type (might be due to invalid IL or missing references) //IL_052e: Unknown result type (might be due to invalid IL or missing references) //IL_0530: Unknown result type (might be due to invalid IL or missing references) //IL_0537: Expected O, but got Unknown //IL_0543: Unknown result type (might be due to invalid IL or missing references) //IL_0548: Unknown result type (might be due to invalid IL or missing references) //IL_0587: Unknown result type (might be due to invalid IL or missing references) //IL_058c: Unknown result type (might be due to invalid IL or missing references) //IL_0597: Unknown result type (might be due to invalid IL or missing references) //IL_05a7: Unknown result type (might be due to invalid IL or missing references) //IL_05a9: Unknown result type (might be due to invalid IL or missing references) //IL_05ae: Unknown result type (might be due to invalid IL or missing references) //IL_05b5: Unknown result type (might be due to invalid IL or missing references) //IL_05c7: Expected O, but got Unknown //IL_05c7: Unknown result type (might be due to invalid IL or missing references) //IL_05cc: Unknown result type (might be due to invalid IL or missing references) //IL_05d4: Unknown result type (might be due to invalid IL or missing references) //IL_05d6: Unknown result type (might be due to invalid IL or missing references) //IL_05dd: Expected O, but got Unknown //IL_060e: Unknown result type (might be due to invalid IL or missing references) //IL_0613: Unknown result type (might be due to invalid IL or missing references) //IL_061e: Unknown result type (might be due to invalid IL or missing references) //IL_062e: Unknown result type (might be due to invalid IL or missing references) //IL_0630: Unknown result type (might be due to invalid IL or missing references) //IL_0635: Unknown result type (might be due to invalid IL or missing references) //IL_063c: Unknown result type (might be due to invalid IL or missing references) //IL_064e: Expected O, but got Unknown //IL_064e: Unknown result type (might be due to invalid IL or missing references) //IL_0653: Unknown result type (might be due to invalid IL or missing references) //IL_065b: Unknown result type (might be due to invalid IL or missing references) //IL_065d: Unknown result type (might be due to invalid IL or missing references) //IL_0664: Expected O, but got Unknown //IL_0670: Unknown result type (might be due to invalid IL or missing references) //IL_0675: Unknown result type (might be due to invalid IL or missing references) //IL_06b4: Unknown result type (might be due to invalid IL or missing references) //IL_06b9: Unknown result type (might be due to invalid IL or missing references) //IL_06c4: Unknown result type (might be due to invalid IL or missing references) //IL_06d4: Unknown result type (might be due to invalid IL or missing references) //IL_06d6: Unknown result type (might be due to invalid IL or missing references) //IL_06db: 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_06f4: Expected O, but got Unknown //IL_06f4: Unknown result type (might be due to invalid IL or missing references) //IL_06f9: Unknown result type (might be due to invalid IL or missing references) //IL_0701: Unknown result type (might be due to invalid IL or missing references) //IL_0703: Unknown result type (might be due to invalid IL or missing references) //IL_070a: Expected O, but got Unknown //IL_073b: Unknown result type (might be due to invalid IL or missing references) //IL_0740: Unknown result type (might be due to invalid IL or missing references) //IL_074b: Unknown result type (might be due to invalid IL or missing references) //IL_075b: Unknown result type (might be due to invalid IL or missing references) //IL_075d: Unknown result type (might be due to invalid IL or missing references) //IL_0762: Unknown result type (might be due to invalid IL or missing references) //IL_0769: Unknown result type (might be due to invalid IL or missing references) //IL_077b: Expected O, but got Unknown //IL_077b: Unknown result type (might be due to invalid IL or missing references) //IL_0780: Unknown result type (might be due to invalid IL or missing references) //IL_0788: Unknown result type (might be due to invalid IL or missing references) //IL_078a: Unknown result type (might be due to invalid IL or missing references) //IL_0791: Expected O, but got Unknown //IL_079d: Unknown result type (might be due to invalid IL or missing references) //IL_07a2: Unknown result type (might be due to invalid IL or missing references) //IL_07e1: Unknown result type (might be due to invalid IL or missing references) //IL_07e6: Unknown result type (might be due to invalid IL or missing references) //IL_07f1: Unknown result type (might be due to invalid IL or missing references) //IL_0801: Unknown result type (might be due to invalid IL or missing references) //IL_0803: Unknown result type (might be due to invalid IL or missing references) //IL_0808: Unknown result type (might be due to invalid IL or missing references) //IL_080f: Unknown result type (might be due to invalid IL or missing references) //IL_0821: Expected O, but got Unknown //IL_0821: Unknown result type (might be due to invalid IL or missing references) //IL_0826: Unknown result type (might be due to invalid IL or missing references) //IL_082e: Unknown result type (might be due to invalid IL or missing references) //IL_0830: Unknown result type (might be due to invalid IL or missing references) //IL_0837: Expected O, but got Unknown //IL_0843: Unknown result type (might be due to invalid IL or missing references) //IL_0848: Unknown result type (might be due to invalid IL or missing references) ExplicitPickupDropTable droptable = CreateColossusItem(assets, iconLookup); if (Colossus.Enabled.Value) { ColossusStuff colossusStuff = new ColossusStuff(); GameObject val = (StompBase.stompEffectPrefab = colossusStuff.CreateStompEffect()); effectsList.Add(new EffectDef(val)); GameObject item = (StompBase.projectilePrefab = colossusStuff.CreateStompProjectile()); projectilesList.Add(item); GameObject val2 = colossusStuff.CreateDeathFallEffect(); effectsList.Add(new EffectDef(val2)); BaseDeath.fallEffect = val2; GameObject val3 = colossusStuff.CreateDeath2Effect(); effectsList.Add(new EffectDef(val3)); Death2.deathEffect = val3; RockClapEnd.clapEffect = colossusStuff.CreateClapEffect(); GameObject item2 = (RockClapEnd.projectilePrefab = colossusStuff.CreateFlyingRockProjectile(FloatingRocksController.flyingRockPrefab = colossusStuff.CreateFlyingRocksGhost())); projectilesList.Add(item2); GameObject item3 = (HeadLaserBarrageAttack.projectilePrefab = colossusStuff.CreateLaserBarrageProjectile()); projectilesList.Add(item3); GameObject val4 = (EnemiesReturns.ModdedEntityStates.Colossus.SpawnState.burrowPrefab = colossusStuff.CreateSpawnEffect()); effectsList.Add(new EffectDef(val4)); HeadLaserBarrageAttack.intencityGraph = acdLookup["LaserBarrageLightIntencity"].curve; UnlockableDef val5 = Utils.CreateUnlockableDef("Logs.ColossusBody.0", "ENEMIES_RETURNS_UNLOCKABLE_LOG_COLOSSUS"); unlockablesList.Add(val5); HeadLaserAttack.beamPrefab = colossusStuff.CreateLaserEffect(); ColossusBody colossusBody = new ColossusBody(); ColossusBody.Skills.Stomp = colossusBody.CreateStompSkill(); ColossusBody.Skills.StoneClap = colossusBody.CreateStoneClapSkill(); ColossusBody.Skills.LaserBarrage = colossusBody.CreateLaserBarrageSkill(); ColossusBody.Skills.HeadLaser = colossusBody.CreateHeadLaserSkill(); sdList.Add(ColossusBody.Skills.Stomp); sdList.Add(ColossusBody.Skills.StoneClap); sdList.Add(ColossusBody.Skills.LaserBarrage); sdList.Add(ColossusBody.Skills.HeadLaser); ColossusBody.SkillFamilies.Primary = Utils.CreateSkillFamily("ColossusPrimaryFamily", ColossusBody.Skills.Stomp); ColossusBody.SkillFamilies.Secondary = Utils.CreateSkillFamily("ColossusSecondaryFamily", ColossusBody.Skills.StoneClap); ColossusBody.SkillFamilies.Utility = Utils.CreateSkillFamily("ColossusUtilityFamily", ColossusBody.Skills.LaserBarrage); ColossusBody.SkillFamilies.Special = Utils.CreateSkillFamily("ColossusSpecialFamily", ColossusBody.Skills.HeadLaser); sfList.Add(ColossusBody.SkillFamilies.Primary); sfList.Add(ColossusBody.SkillFamilies.Secondary); sfList.Add(ColossusBody.SkillFamilies.Utility); sfList.Add(ColossusBody.SkillFamilies.Special); ColossusBody.BodyPrefab = colossusBody.AddBodyComponents(assets.First((GameObject body) => ((Object)body).name == "ColossusBody"), iconLookup["texColossusIcon"], val5, droptable); bodyList.Add(ColossusBody.BodyPrefab); ColossusMaster.MasterPrefab = new ColossusMaster().AddMasterComponents(assets.First((GameObject master) => ((Object)master).name == "ColossusMaster"), ColossusBody.BodyPrefab); masterList.Add(ColossusMaster.MasterPrefab); stateList.Add(typeof(ColossusMain)); stateList.Add(typeof(EnemiesReturns.ModdedEntityStates.Colossus.SpawnState)); stateList.Add(typeof(DancePlayer)); stateList.Add(typeof(EnemiesReturns.ModdedEntityStates.Colossus.Death.InitialDeathState)); stateList.Add(typeof(BaseDeath)); stateList.Add(typeof(DeathFallBase)); stateList.Add(typeof(Death1)); stateList.Add(typeof(Death2)); stateList.Add(typeof(DeathBoner)); stateList.Add(typeof(RockClapEnd)); stateList.Add(typeof(RockClapStart)); stateList.Add(typeof(StompEnter)); stateList.Add(typeof(StompBase)); stateList.Add(typeof(StompL)); stateList.Add(typeof(StompR)); stateList.Add(typeof(HeadLaserBarrageStart)); stateList.Add(typeof(HeadLaserBarrageAttack)); stateList.Add(typeof(HeadLaserBarrageEnd)); stateList.Add(typeof(HeadLaserStart)); stateList.Add(typeof(HeadLaserAttack)); stateList.Add(typeof(HeadLaserEnd)); ColossusBody.SpawnCards.cscColossusDefault = colossusBody.CreateCard("cscColossusDefault", ColossusMaster.MasterPrefab, ColossusBody.SkinDefs.Default, ColossusBody.BodyPrefab); DirectorCard card = new DirectorCard { spawnCard = (SpawnCard)(object)ColossusBody.SpawnCards.cscColossusDefault, selectionWeight = Colossus.SelectionWeight.Value, spawnDistance = (MonsterSpawnDistance)0, preventOverhead = true, minimumStageCompletions = Colossus.MinimumStageCompletion.Value }; DirectorCardHolder directorCard = new DirectorCardHolder { Card = card, MonsterCategory = (MonsterCategory)4 }; Utils.AddMonsterToCardCategory(card, "Champions", (DirectorCardCategorySelection)(object)Addressables.LoadAssetAsync<FamilyDirectorCardCategorySelection>((object)"RoR2/Base/Common/dccsGolemFamily.asset").WaitForCompletion()); Utils.AddMonsterToStage(Colossus.DefaultStageList.Value, directorCard); ColossusBody.SpawnCards.cscColossusSkyMeadow = colossusBody.CreateCard("cscColossusSkyMeadow", ColossusMaster.MasterPrefab, ColossusBody.SkinDefs.SkyMeadow, ColossusBody.BodyPrefab); DirectorCard card2 = new DirectorCard { spawnCard = (SpawnCard)(object)ColossusBody.SpawnCards.cscColossusSkyMeadow, selectionWeight = Colossus.SelectionWeight.Value, spawnDistance = (MonsterSpawnDistance)0, preventOverhead = true, minimumStageCompletions = Colossus.MinimumStageCompletion.Value }; DirectorCardHolder directorCard2 = new DirectorCardHolder { Card = card2, MonsterCategory = (MonsterCategory)4 }; Utils.AddMonsterToStage(Colossus.SkyMeadowStageList.Value, directorCard2); ColossusBody.SpawnCards.cscColossusGrassy = colossusBody.CreateCard("cscColossusGrassy", ColossusMaster.MasterPrefab, ColossusBody.SkinDefs.Grassy, ColossusBody.BodyPrefab); DirectorCard card3 = new DirectorCard { spawnCard = (SpawnCard)(object)ColossusBody.SpawnCards.cscColossusGrassy, selectionWeight = Colossus.SelectionWeight.Value, spawnDistance = (MonsterSpawnDistance)0, preventOverhead = true, minimumStageCompletions = Colossus.MinimumStageCompletion.Value }; DirectorCardHolder directorCard3 = new DirectorCardHolder { Card = card3, MonsterCategory = (MonsterCategory)4 }; Utils.AddMonsterToCardCategory(card3, "Champions", (DirectorCardCategorySelection)(object)Addressables.LoadAssetAsync<FamilyDirectorCardCategorySelection>((object)"RoR2/Base/Common/dccsGolemFamilyNature").WaitForCompletion()); Utils.AddMonsterToStage(Colossus.GrassyStageList.Value, directorCard3); ColossusBody.SpawnCards.cscColossusCastle = colossusBody.CreateCard("cscColossusCastle", ColossusMaster.MasterPrefab, ColossusBody.SkinDefs.Castle, ColossusBody.BodyPrefab); DirectorCard card4 = new DirectorCard { spawnCard = (SpawnCard)(object)ColossusBody.SpawnCards.cscColossusCastle, selectionWeight = Colossus.SelectionWeight.Value, spawnDistance = (MonsterSpawnDistance)0, preventOverhead = true, minimumStageCompletions = Colossus.MinimumStageCompletion.Value }; DirectorCardHolder directorCard4 = new DirectorCardHolder { Card = card4, MonsterCategory = (MonsterCategory)4 }; Utils.AddMonsterToStage(Colossus.CastleStageList.Value, directorCard4); ColossusBody.SpawnCards.cscColossusSandy = colossusBody.CreateCard("cscColossusSandy", ColossusMaster.MasterPrefab, ColossusBody.SkinDefs.Sandy, ColossusBody.BodyPrefab); DirectorCard card5 = new DirectorCard { spawnCard = (SpawnCard)(object)ColossusBody.SpawnCards.cscColossusSandy, selectionWeight = Colossus.SelectionWeight.Value, spawnDistance = (MonsterSpawnDistance)0, preventOverhead = true, minimumStageCompletions = Colossus.MinimumStageCompletion.Value }; DirectorCardHolder directorCard5 = new DirectorCardHolder { Card = card5, MonsterCategory = (MonsterCategory)4 }; Utils.AddMonsterToCardCategory(card5, "Champions", (DirectorCardCategorySelection)(object)Addressables.LoadAssetAsync<FamilyDirectorCardCategorySelection>((object)"RoR2/Base/Common/dccsGolemFamilySandy.asset").WaitForCompletion()); Utils.AddMonsterToStage(Colossus.SandyStageList.Value, directorCard5); ColossusBody.SpawnCards.cscColossusSnowy = colossusBody.CreateCard("cscColossusSnowy", ColossusMaster.MasterPrefab, ColossusBody.SkinDefs.Snowy, ColossusBody.BodyPrefab); DirectorCard card6 = new DirectorCard { spawnCard = (SpawnCard)(object)ColossusBody.SpawnCards.cscColossusSnowy, selectionWeight = Colossus.SelectionWeight.Value, spawnDistance = (MonsterSpawnDistance)0, preventOverhead = true, minimumStageCompletions = Colossus.MinimumStageCompletion.Value }; DirectorCardHolder directorCard6 = new DirectorCardHolder { Card = card6, MonsterCategory = (MonsterCategory)4 }; Utils.AddMonsterToCardCategory(card6, "Champions", (DirectorCardCategorySelection)(object)Addressables.LoadAssetAsync<FamilyDirectorCardCategorySelection>((object)"RoR2/Base/Common/dccsGolemFamilySnowy.asset").WaitForCompletion()); Utils.AddMonsterToStage(Colossus.SnowyStageList.Value, directorCard6); if (Colossus.AddToArtifactOfOrigin.Value && RiskyArtifafactsCompat.enabled) { RiskyArtifafactsCompat.AddMonsterToArtifactOfOrigin((SpawnCard)(object)ColossusBody.SpawnCards.cscColossusGrassy, 3); } } } private ExplicitPickupDropTable CreateColossusItem(GameObject[] assets, Dictionary<string, Sprite> iconLookup) { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_008f: 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_00af: 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) ExplicitPickupDropTable val = null; if (Colossus.ItemEnabled.Value) { ColossalKnurlFactory.ColossalFist = ProcTypeAPI.ReserveProcType(); ColossalKnurlFactory colossalKnurlFactory = new ColossalKnurlFactory(); ColossalKnurlFactory.ItemDef = colossalKnurlFactory.CreateItem(assets.First((GameObject item) => ((Object)item).name == "PickupColossalCurl"), iconLookup["texColossalKnurlIcon"]); itemList.Add(ColossalKnurlFactory.ItemDef); val = ScriptableObject.CreateInstance<ExplicitPickupDropTable>(); ((Object)val).name = "epdtColossus"; ((PickupDropTable)val).canDropBeReplaced = true; val.pickupEntries = (PickupDefEntry[])(object)new PickupDefEntry[1] { new PickupDefEntry { pickupWeight = 1f, pickupDef = (Object)(object)ColossalKnurlFactory.ItemDef } }; GameObject prefab = assets.First((GameObject item) => ((Object)item).name == "ColossalKnurlFistProjectileGhost"); prefab = colossalKnurlFactory.CreateFistGhostPrefab(prefab); GameObject fistPrefab = assets.First((GameObject item) => ((Object)item).name == "ColossalKnurlFistProjectile"); ColossalKnurlFactory.projectilePrefab = colossalKnurlFactory.CreateFistProjectile(fistPrefab, prefab); projectilesList.Add(ColossalKnurlFactory.projectilePrefab); ref Pair[] relationships = ref ModdedContagiousItemProvider.relationships; Pair val2 = new Pair { itemDef1 = ColossalKnurlFactory.ItemDef, itemDef2 = VoidMegaCrabItem }; ArrayUtils.ArrayAppend<Pair>(ref relationships, ref val2); } return val; } private void CreateSpitter(GameObject[] assets, Dictionary<string, Sprite> iconLookup) { //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Expected O, but got Unknown //IL_025a: Unknown result type (might be due to invalid IL or missing references) //IL_025f: Unknown result type (might be due to invalid IL or missing references) //IL_026a: Unknown result type (might be due to invalid IL or missing references) //IL_027a: Unknown result type (might be due to invalid IL or missing references) //IL_027c: Unknown result type (might be due to invalid IL or missing references) //IL_0281: Unknown result type (might be due to invalid IL or missing references) //IL_0288: Unknown result type (might be due to invalid IL or missing references) //IL_029a: Expected O, but got Unknown //IL_029a: 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_02a7: Unknown result type (might be due to invalid IL or missing references) //IL_02a9: Unknown result type (might be due to invalid IL or missing references) //IL_02b0: Expected O, but got Unknown //IL_02e1: Unknown result type (might be due to invalid IL or missing references) //IL_02e6: Unknown result type (might be due to invalid IL or missing references) //IL_02f1: Unknown result type (might be due to invalid IL or missing references) //IL_0301: Unknown result type (might be due to invalid IL or missing references) //IL_0303: Unknown result type (might be due to invalid IL or missing references) //IL_0308: Unknown result type (might be due to invalid IL or missing references) //IL_030f: Unknown result type (might be due to invalid IL or missing references) //IL_0321: Expected O, but got Unknown //IL_0321: Unknown result type (might be due to invalid IL or missing references) //IL_0326: Unknown result type (might be due to invalid IL or missing references) //IL_032e: Unknown result type (might be due to invalid IL or missing references) //IL_0330: Unknown result type (might be due to invalid IL or missing references) //IL_0337: Expected O, but got Unknown //IL_0368: Unknown result type (might be due to invalid IL or missing references) //IL_036d: Unknown result type (might be due to invalid IL or missing references) //IL_0378: 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_038a: Unknown result type (might be due to invalid IL or missing references) //IL_038f: Unknown result type (might be due to invalid IL or missing references) //IL_0396: Unknown result type (might be due to invalid IL or missing references) //IL_03a8: Expected O, but got Unknown //IL_03a8: Unknown result type (might be due to invalid IL or missing references) //IL_03ad: Unknown result type (might be due to invalid IL or missing references) //IL_03b5: Unknown result type (might be due to invalid IL or missing references) //IL_03b7: Unknown result type (might be due to invalid IL or missing references) //IL_03be: Expected O, but got Unknown //IL_03ef: Unknown result type (might be due to invalid IL or missing references) //IL_03f4: Unknown result type (might be due to invalid IL or missing references) //IL_03ff: Unknown result type (might be due to invalid IL or missing references) //IL_040f: Unknown result type (might be due to invalid IL or missing references) //IL_0411: Unknown result type (might be due to invalid IL or missing references) //IL_0416: Unknown result type (might be due to invalid IL or missing references) //IL_041d: Unknown result type (might be due to invalid IL or missing references) //IL_042f: Expected O, but got Unknown //IL_042f: Unknown result type (might be due to invalid IL or missing references) //IL_0434: Unknown result type (might be due to invalid IL or missing references) //IL_043c: Unknown result type (might be due to invalid IL or missing references) //IL_043e: Unknown result type (might be due to invalid IL or missing references) //IL_0445: Expected O, but got Unknown if (Spitter.Enabled.Value) { SpitterStuff spitterStuff = new SpitterStuff(); Bite.biteEffectPrefab = spitterStuff.CreateBiteEffect(); effectsList.Add(new EffectDef(Bite.biteEffectPrefab)); GameObject val = spitterStuff.CreatedChargedSpitSmallDoTZone(); GameObject val2 = spitterStuff.CreateChargedSpitDoTZone(); GameObject val3 = spitterStuff.CreateChargedSpitSplitProjectile(val); GameObject item = (FireChargedSpit.projectilePrefab = spitterStuff.CreateChargedSpitProjectile(val2, val3)); projectilesList.Add(item); projectilesList.Add(val); projectilesList.Add(val2); projectilesList.Add(val3); NormalSpit.normalSpitProjectile = spitterStuff.CreateNormalSpitProjectile(); projectilesList.Add(NormalSpit.normalSpitProjectile); UnlockableDef val4 = Utils.CreateUnlockableDef("Logs.SpitterBody.0", "ENEMIES_RETURNS_UNLOCKABLE_LOG_SPITTER"); unlockablesList.Add(val4); SpitterBody spitterBody = new SpitterBody(); SpitterBody.Skills.NormalSpit = spitterBody.CreateNormalSpitSkill(); SpitterBody.Skills.ChargedSpit = spitterBody.CreateChargedSpitSkill(); SpitterBody.Skills.Bite = spitterBody.CreateBiteSkill(); sdList.Add(SpitterBody.Skills.NormalSpit); sdList.Add(SpitterBody.Skills.Bite); sdList.Add(SpitterBody.Skills.ChargedSpit); SpitterBody.SkillFamilies.Primary = Utils.CreateSkillFamily("SpitterPrimaryFamily", SpitterBody.Skills.NormalSpit); SpitterBody.SkillFamilies.Secondary = Utils.CreateSkillFamily("SpitterSecondaryFamily", SpitterBody.Skills.Bite); SpitterBody.SkillFamilies.Special = Utils.CreateSkillFamily("SpitterSpecialFamily", SpitterBody.Skills.ChargedSpit); sfList.Add(SpitterBody.SkillFamilies.Primary); sfList.Add(SpitterBody.SkillFamilies.Secondary); sfList.Add(SpitterBody.SkillFamilies.Special); SpitterBody.BodyPrefab = spitterBody.AddBodyComponents(assets.First((GameObject body) => ((Object)body).name == "SpitterBody"), iconLookup["texSpitterIcon"], val4); bodyList.Add(SpitterBody.BodyPrefab); SpitterMaster.MasterPrefab = new SpitterMaster().AddMasterComponents(assets.First((GameObject master) => ((Object)master).name == "SpitterMaster"), SpitterBody.BodyPrefab); masterList.Add(SpitterMaster.MasterPrefab); SpitterBody.SpawnCards.cscSpitterDefault = spitterBody.CreateCard("cscSpitterDefault", SpitterMaster.MasterPrefab, SpitterBody.SkinDefs.Default, SpitterBody.BodyPrefab); DirectorCard card = new DirectorCard { spawnCard = (SpawnCard)(object)SpitterBody.SpawnCards.cscSpitterDefault, selectionWeight = Spitter.SelectionWeight.Value, spawnDistance = (MonsterSpawnDistance)0, preventOverhead = true, minimumStageCompletions = Spitter.MinimumStageCompletion.Value }; DirectorCardHolder directorCard = new DirectorCardHolder { Card = card, MonsterCategory = (MonsterCategory)3 }; Utils.AddMonsterToStage(Spitter.DefaultStageList.Value, directorCard); SpitterBody.SpawnCards.cscSpitterLakes = spitterBody.CreateCard("cscSpitterLakes", SpitterMaster.MasterPrefab, SpitterBody.SkinDefs.Lakes, SpitterBody.BodyPrefab); DirectorCard card2 = new DirectorCard { spawnCard = (SpawnCard)(object)SpitterBody.SpawnCards.cscSpitterLakes, selectionWeight = Spitter.SelectionWeight.Value, spawnDistance = (MonsterSpawnDistance)0, preventOverhead = true, minimumStageCompletions = Spitter.MinimumStageCompletion.Value }; DirectorCardHolder directorCard2 = new DirectorCardHolder { Card = card2, MonsterCategory = (MonsterCategory)3 }; Utils.AddMonsterToStage(Spitter.LakesStageList.Value, directorCard2); SpitterBody.SpawnCards.cscSpitterSulfur = spitterBody.CreateCard("cscSpitterSulfur", SpitterMaster.MasterPrefab, SpitterBody.SkinDefs.Sulfur, SpitterBody.BodyPrefab); DirectorCard card3 = new DirectorCard { spawnCard = (SpawnCard)(object)SpitterBody.SpawnCards.cscSpitterSulfur, selectionWeight = Spitter.SelectionWeight.Value, spawnDistance = (MonsterSpawnDistance)0, preventOverhead = true, minimumStageCompletions = Spitter.MinimumStageCompletion.Value }; DirectorCardHolder directorCard3 = new DirectorCardHolder { Card = card3, MonsterCategory = (MonsterCategory)3 }; Utils.AddMonsterToStage(Spitter.SulfurStageList.Value, directorCard3); SpitterBody.SpawnCards.cscSpitterDepths = spitterBody.CreateCard("cscSpitterDepths", SpitterMaster.MasterPrefab, SpitterBody.SkinDefs.Depths, SpitterBody.BodyPrefab); DirectorCard card4 = new DirectorCard { spawnCard = (SpawnCard)(object)SpitterBody.SpawnCards.cscSpitterDepths, selectionWeight = Spitter.SelectionWeight.Value, spawnDistance = (MonsterSpawnDistance)0, preventOverhead = true, minimumStageCompletions = Spitter.MinimumStageCompletion.Value }; DirectorCardHolder directorCard4 = new DirectorCardHolder { Card = card4, MonsterCategory = (MonsterCategory)3 }; Utils.AddMonsterToStage(Spitter.DepthStageList.Value, directorCard4); if (Spitter.HelminthroostReplaceMushrum.Value) { Helpers.RemoveExistingMonsterFromStage(MonsterNames.MiniMushrum, (Stage)1099511627776L, ""); } stateList.Add(typeof(Bite)); stateList.Add(typeof(EnemiesReturns.ModdedEntityStates.Spitter.SpawnState)); stateList.Add(typeof(NormalSpit)); stateList.Add(typeof(ChargeChargedSpit)); stateList.Add(typeof(FireChargedSpit)); stateList.Add(typeof(DeathDance)); stateList.Add(typeof(SpitterMain)); stateList.Add(typeof(DeathDancePlayer)); } } private void CreateMechanicalSpider(GameObject[] assets, Dictionary<string, Sprite> iconLookup, Dictionary<string, AnimationCurveDef> acdLookup) { //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0049: Expected O, but got Unknown if (MechanicalSpider.Enabled.Value) { UnlockableDef val = Utils.CreateUnlockableDef("Logs.MechanicalSpiderBody.0", "ENEMIES_RETURNS_UNLOCKABLE_LOG_MECHANICAL_SPIDER"); unlockablesList.Add(val); MechanicalSpiderStuff mechanicalSpiderStuff = new MechanicalSpiderStuff(); GameObject val2 = mechanicalSpiderStuff.CreateDoubleShotImpactEffect(); effectsList.Add(new EffectDef(val2)); Fire.projectilePrefab = mechanicalSpiderStuff.CreateDoubleShotProjectilePrefab(val2); projectilesList.Add(Fire.projectilePrefab); ChargeFire.effectPrefab = mechanicalSpiderStuff.CreateDoubleShotChargeEffect(); MechanicalSpiderEnemyBody mechanicalSpiderEnemyBody = new MechanicalSpiderEnemyBody(); MechanicalSpiderBodyBase.Skills.DoubleShot = mechanicalSpiderEnemyBody.CreateDoubleShotSkill(); MechanicalSpiderBodyBase.Skills.Dash = mechanicalSpiderEnemyBody.CreateDashSkill(); Dash.forwardSpeedCoefficientCurve = acdLookup["acdSpiderDash"].curve; sdList.Add(MechanicalSpiderBodyBase.Skills.DoubleShot); sdList.Add(MechanicalSpiderBodyBase.Skills.Dash); MechanicalSpiderBodyBase.SkillFamilies.Primary = Utils.CreateSkillFamily("MechanicalSpiderPrimaryFamily", MechanicalSpiderBodyBase.Skills.DoubleShot); MechanicalSpiderBodyBase.SkillFamilies.Utility = Utils.CreateSkillFamily("MechanicalSpiderUtilityFamily", MechanicalSpiderBodyBase.Skills.Dash); sfList.Add(MechanicalSpiderBodyBase.SkillFamilies.Primary); sfList.Add(MechanicalSpiderBodyBase.SkillFamilies.Utility); CreateMechanicalSpiderEnemy(assets, iconLookup, val, mechanicalSpiderEnemyBody); CreateMechanichalSpiderDrone(assets, iconLookup, mechanicalSpiderStuff); stateList.Add(typeof(EnemiesReturns.ModdedEntityStates.MechanicalSpider.MainState)); stateList.Add(typeof(EnemiesReturns.ModdedEntityStates.MechanicalSpider.SpawnState)); stateList.Add(typeof(SpawnStateDrone)); stateList.Add(typeof(VictoryDance)); stateList.Add(typeof(VictoryDancePlayer)); stateList.Add(typeof(OpenHatch)); stateList.Add(typeof(ChargeFire)); stateList.Add(typeof(Fire)); stateList.Add(typeof(CloseHatch)); stateList.Add(typeof(DashStart)); stateList.Add(typeof(Dash)); stateList.Add(typeof(DashStop)); stateList.Add(typeof(DeathInitial)); stateList.Add(typeof(DeathDrone)); stateList.Add(typeof(DeathNormal)); } } private void CreateMechanichalSpiderDrone(GameObject[] assets, Dictionary<string, Sprite> iconLookup, MechanicalSpiderStuff spiderStuff) { MechanicalSpiderDroneBody.BodyPrefab = new MechanicalSpiderDroneBody().AddBodyComponents(assets.First((GameObject body) => ((Object)body).name == "MechanicalSpiderDroneBody"), iconLookup["texMechanicalSpiderAllyIcon"]); bodyList.Add(MechanicalSpiderDroneBody.BodyPrefab); MechanicalSpiderDroneMaster.MasterPrefab = new MechanicalSpiderDroneMaster().AddMasterComponents(assets.First((GameObject master) => ((Object)master).name == "MechanicalSpiderDroneMaster"), MechanicalSpiderDroneBody.BodyPrefab); masterList.Add(MechanicalSpiderDroneMaster.MasterPrefab); MechanicalSpiderStuff.InteractablePrefab = spiderStuff.CreateInteractable(assets.First((GameObject interactable) => ((Object)interactable).name == "MechanicalSpiderBroken"), MechanicalSpiderDroneMaster.MasterPrefab); nopList.Add(MechanicalSpiderStuff.InteractablePrefab); MechanicalSpiderStuff.SpawnCards.iscMechanicalSpiderBroken = spiderStuff.CreateInteractableSpawnCard("iscMechanicalSpiderBroken", MechanicalSpiderStuff.InteractablePrefab); } private void CreateMechanicalSpiderEnemy(GameObject[] assets, Dictionary<string, Sprite> iconLookup, UnlockableDef spiderLog, MechanicalSpiderEnemyBody spiderEnemyBody) { //IL_00ae: 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_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_00d0: Unknown result type (might be due to invalid IL or missing references) //IL_00d5: 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_00ed: Expected O, but got Unknown //IL_00ed: 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_00f9: 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_0101: Expected O, but got Unknown //IL_0131: 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_0141: 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_0158: 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) //IL_0170: Expected O, but got Unknown //IL_0170: Unknown result type (might be due to invalid IL or missing references) //IL_0175: Unknown result type (might be due to invalid IL or missing references) //IL_017c: Unknown result type (might be due to invalid IL or missing references) //IL_017e: Unknown result type (might be due to invalid IL or missing references) //IL_0184: Expected O, but got Unknown //IL_01b4: Unknown result type (might be due to invalid IL or missing references) //IL_01b9: Unknown result type (might be due to invalid IL or missing references) //IL_01c4: Unknown result type (might be due to invalid IL or missing references) //IL_01d4: Unknown result type (might be due to invalid IL or missing references) //IL_01d6: 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) //IL_01e2: Unknown result type (might be due to invalid IL or missing references) //IL_01f4: Expected O, but got Unknown //IL_01f4: Unknown result type (might be due to invalid IL or missing references) //IL_01f9: Unknown result type (might be due to invalid IL or missing references) //IL_0201: Unknown result type (might be due to invalid IL or missing references) //IL_0203: Unknown result type (might be due to invalid IL or missing references) //IL_020a: Expected O, but got Unknown MechanicalSpiderEnemyBody.BodyPrefab = spiderEnemyBody.AddBodyComponents(assets.First((GameObject body) => ((Object)body).name == "MechanicalSpiderBody"), iconLookup["texMechanicalSpiderEnemyIcon"], spiderLog); bodyList.Add(MechanicalSpiderEnemyBody.BodyPrefab); MechanicalSpiderEnemyMaster.MasterPrefab = new MechanicalSpiderEnemyMaster().AddMasterComponents(assets.First((GameObject master) => ((Object)master).name == "MechanicalSpiderMaster"), MechanicalSpiderEnemyBody.BodyPrefab); masterList.Add(MechanicalSpiderEnemyMaster.MasterPrefab); MechanicalSpiderEnemyBody.SpawnCards.cscMechanicalSpiderDefault = spiderEnemyBody.CreateCard("cscMechanicalSpeiderDefault", MechanicalSpiderEnemyMaster.MasterPrefab); DirectorCard card = new DirectorCard { spawnCard = (SpawnCard)(object)MechanicalSpiderEnemyBody.SpawnCards.cscMechanicalSpiderDefault, selectionWeight = MechanicalSpider.SelectionWeight.Value, spawnDistance = (MonsterSpawnDistance)0, preventOverhead = true, minimumStageCompletions = MechanicalSpider.MinimumStageCompletion.Value }; DirectorCardHolder directorCard = new DirectorCardHolder { Card = card, MonsterCategory = (MonsterCategory)2 }; Utils.AddMonsterToStage(MechanicalSpider.DefaultStageList.Value, directorCard); MechanicalSpiderEnemyBody.SpawnCards.cscMechanicalSpiderGrassy = spiderEnemyBody.CreateCard("cscMechanicalSpiderGrassy", MechanicalSpiderEnemyMaster.MasterPrefab, MechanicalSpiderEnemyBody.SkinDefs.Grassy, MechanicalSpiderEnemyMaster.MasterPrefab); DirectorCard card2 = new DirectorCard { spawnCard = (SpawnCard)(object)MechanicalSpiderEnemyBody.SpawnCards.cscMechanicalSpiderGrassy, selectionWeight = MechanicalSpider.SelectionWeight.Value, spawnDistance = (MonsterSpawnDistance)0, preventOverhead = true, minimumStageCompletions = MechanicalSpider.MinimumStageCompletion.Value }; DirectorCardHolder directorCard2 = new DirectorCardHolder { Card = card2, MonsterCategory = (MonsterCategory)2 }; Utils.AddMonsterToStage(MechanicalSpider.GrassyStageList.Value, directorCard2); MechanicalSpiderEnemyBody.SpawnCards.cscMechanicalSpiderSnowy = spiderEnemyBody.CreateCard("cscMechanicalSpiderSnowy", MechanicalSpiderEnemyMaster.MasterPrefab, MechanicalSpiderEnemyBody.SkinDefs.Snowy, MechanicalSpiderEnemyMaster.MasterPrefab); DirectorCard card3 = new DirectorCard { spawnCard = (SpawnCard)(object)MechanicalSpiderEnemyBody.SpawnCards.cscMechanicalSpiderSnowy, selectionWeight = MechanicalSpider.SelectionWeight.Value, spawnDistance = (MonsterSpawnDistance)0, preventOverhead = true, minimumStageCompletions = MechanicalSpider.MinimumStageCompletion.Value }; DirectorCardHolder directorCard3 = new DirectorCardHolder { Card = card3, MonsterCategory = (MonsterCategory)2 }; Utils.AddMonsterToStage(MechanicalSpider.SnowyStageList.Value, directorCard3); } private void CreateLynxTribe(GameObject[] assets, Dictionary<string, Sprite> iconLookup, Dictionary<string, AnimationCurveDef> acdLookup, Dictionary<string, Texture2D> rampLookups) { if (LynxTotem.Enabled.Value || LynxShaman.Enabled.Value) { CreateLynxStorm(assets, acdLookup); } if (LynxShaman.Enabled.Value) { CreateLynxShaman(assets, iconLookup, acdLookup, rampLookups); } if (LynxTotem.Enabled.Value) { ExplicitPickupDropTable dtLynxTotem = CreateLynxTotemItem(assets, iconLookup); CreateLynxScout(assets, iconLookup); CreateLynxHunter(assets, iconLookup); CreateLynxArcher(assets, iconLookup, rampLookups); CreateLynxTotem(assets, iconLookup, acdLookup, dtLynxTotem); Utils.AddMonsterFamilyToStage(LynxTotem.DefaultStageList.Value, new LynxTribeStuff().CreateLynxTribeFamily()); if (LynxStuff.LynxShrineEnabled.Value) { CreateLynxShrine(assets); } if (LynxStuff.LynxTrapEnabled.Value) { CreateLynxTrap(assets); } } } public void CreateLynxTrap(GameObject[] assets) { //IL_0022: 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_031d: Unknown result type (might be due to invalid IL or missing references) //IL_0322: Unknown result type (might be due to invalid IL or missing references) //IL_032a: Unknown result type (might be due to invalid IL or missing references) //IL_033a: Unknown result type (might be due to invalid IL or missing references) //IL_033c: Unknown result type (might be due to invalid IL or missing references) //IL_0341: Unknown result type (might be due to invalid IL or missing references) //IL_034a: Expected O, but got Unknown //IL_034a: Unknown result type (might be due to invalid IL or missing references) //IL_034f: Unknown result type (might be due to invalid IL or missing references) //IL_0357: Unknown result type (might be due to invalid IL or missing references) //IL_035d: 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_0369: Unknown result type (might be due to invalid IL or missing references) //IL_0375: Expected O, but got Unknown LynxTribeStuff lynxTribeStuff = new LynxTribeStuff(); NetworkSoundEventDef item = Utils.CreateNetworkSoundDef("ER_LynxTrap_SnapTwig_Play"); nseList.Add(item); GameObject val = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC2/lemuriantemple/Assets/LTFallenLeaf.spm").WaitForCompletion(); Material material = ((Renderer)((Component)val.transform.Find("LTFallenLeaf_LOD0")).GetComponent<MeshRenderer>()).material; GameObject val2 = assets.First((GameObject prefab) => ((Object)prefab).name == "LynxTrapPrefab"); string[] array = LynxTotem.DefaultStageList.Value.Split(","); foreach (string text in array) { string text2 = string.Join("", text.Split((string[]?)null, StringSplitOptions.RemoveEmptyEntries)); GameObject trapPrefab = PrefabAPI.InstantiateClone(val2, ((Object)val2).name + text2, false); switch (text2) { case "blackbeach": trapPrefab = lynxTribeStuff.CreateTrapPrefab(trapPrefab, val, GetOrCreateMaterial("SkyMeadowLeaves_LOD0", lynxTribeStuff.CreateBlackBeachLeavesMaterialLOD0, material)); break; case "skymeadow": case "itskymeadow": trapPrefab = lynxTribeStuff.CreateTrapPrefab(trapPrefab, val, GetOrCreateMaterial("SkyMeadowLeaves_LOD0", lynxTribeStuff.CreateSkyMeadowLeavesMaterialLOD0, material)); break; case "village": case "villagenight": trapPrefab = lynxTribeStuff.CreateTrapPrefab(trapPrefab, val, GetOrCreateMaterial("ShatteredAbodesLeaves_LOD0", lynxTribeStuff.CreateShatteredAbodesLeavesMaterialLOD0, material)); break; case "golemplains": case "itgolemplains": trapPrefab = lynxTribeStuff.CreateTrapPrefab(trapPrefab, val, GetOrCreateMaterial("TitanicPlainsLeaves_LOD0", lynxTribeStuff.CreateTitanicPlanesLeavesMaterialLOD0, material)); break; case "foggyswamp": trapPrefab = lynxTribeStuff.CreateTrapPrefab(trapPrefab, val, GetOrCreateMaterial("WetlandsLeaves_LOD0", lynxTribeStuff.CreateWetlandsLeavesMaterialLOD0, material)); break; case "habitatfall": trapPrefab = lynxTribeStuff.CreateTrapPrefab(trapPrefab, val, GetOrCreateMaterial("GoldenDiebackLeaves_LOD0", lynxTribeStuff.CreateGoldemDiebackLeavesMaterialLOD0, material)); break; default: trapPrefab = lynxTribeStuff.CreateTrapPrefab(trapPrefab, val, material); break; } InteractableSpawnCard spawnCard = lynxTribeStuff.CreateLynxTrapSpawnCard(trapPrefab, text2); DirectorCard card = new DirectorCard { spawnCard = (SpawnCard)(object)spawnCard, selectionWeight = LynxStuff.LynxTrapSelectionWeight.Value, spawnDistance = (MonsterSpawnDistance)0, preventOverhead = false }; Helpers.AddNewInteractableToStage(new DirectorCardHolder { Card = card, InteractableCategory = LynxStuff.LynxTrapSpawnCategory.Value }, DirectorAPI.ParseInternalStageName(text2), text2); nopList.Add(trapPrefab); } } public void CreateLynxShrine(GameObject[] assets) { //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Expected O, but got Unknown //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Expected O, but got Unknown //IL_02d2: Unknown result type (might be due to invalid IL or missing references) LynxTribeStuff lynxTribeStuff = new LynxTribeStuff(); Retreat.retreatEffectPrefab = lynxTribeStuff.CreateRetreatEffect(assets.First((GameObject prefab) => ((Object)prefab).name == "LynxTribeRetreatEffect")); effectsList.Add(new EffectDef(Retreat.retreatEffectPrefab)); LynxTribeStuff.CustomHologramContent = lynxTribeStuff.CustomCostHologramContentPrefab(); GameObject val = lynxTribeStuff.CreateShrineUseEffect(); effectsList.Add(new EffectDef(val)); NetworkSoundEventDef val2 = Utils.CreateNetworkSoundDef("ER_Lynx_Shrine_Failure_Play"); nseList.Add(val2); NetworkSoundEventDef val3 = Utils.CreateNetworkSoundDef("ER_Lynx_Shrine_Success_Play"); nseList.Add(val3); GameObject val4 = lynxTribeStuff.CreateShrinePrefab(assets.First((GameObject prefab) => ((Object)prefab).name == "LynxShrinePrefab"), val, val2, val3); GameObject val5 = lynxTribeStuff.CreateShrinePrefab(assets.First((GameObject prefab) => ((Object)prefab).name == "LynxShrinePrefab2"), val, val2, val3); GameObject val6 = lynxTribeStuff.CreateShrinePrefab(assets.First((GameObject prefab) => ((Object)prefab).name == "LynxShrinePrefab3"), val, val2, val3); DirectorCardHolder val7 = CreateCardHolderLynxShrine(val4, "1"); DirectorCardHolder val8 = CreateCardHolderLynxShrine(val5, "2"); DirectorCardHolder val9 = CreateCardHolderLynxShrine(val6, "3"); string[] array = LynxTotem.DefaultStageList.Value.Split(","); foreach (string text in array) { string text2 = string.Join("", text.Split((string[]?)null, StringSplitOptions.RemoveEmptyEntries)); DirectorCardHolder val10; switch (text2) { case "blackbeach": case "skymeadow": case "itskymeadow": val10 = val7; break; case "village": case "villagenight": case "golemplains": case "itgolemplains": val10 = val8; break; default: val10 = val9; break; } Helpers.AddNewInteractableToStage(val10, DirectorAPI.ParseInternalStageName(text2), text2); } stateList.Add(typeof(Retreat)); nopList.Add(val4); nopList.Add(val5); nopList.Add(val6); } private DirectorCardHolder CreateCardHolderLynxShrine(GameObject lynxShrine1, string suffix) { //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003d: 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_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_0073: Unknown result type (might be due to invalid IL or missing references) //IL_0083: 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_0092: Expected O, but got Unknown //IL_0092: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Unknown result type (might be due to invalid IL or missing references) //IL_009e: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00af: Expected O, but got Unknown InteractableSpawnCard val = ScriptableObject.CreateInstance<InteractableSpawnCard>(); ((Object)val).name = "iscLynxShrine" + suffix; ((SpawnCard)val).prefab = lynxShrine1; ((SpawnCard)val).sendOverNetwork = true; ((SpawnCard)val).hullSize = (HullClassification)1; ((SpawnCard)val).nodeGraphType = (GraphType)0; ((SpawnCard)val).requiredFlags = (NodeFlags)0; ((SpawnCard)val).forbiddenFlags = (NodeFlags)20; ((SpawnCard)val).directorCreditCost = LynxStuff.LynxShrineDirectorCost.Value; ((SpawnCard)val).occupyPosition = true; ((SpawnCard)val).eliteRules = (EliteRules)0; val.orientToFloor = false; DirectorCard card = new DirectorCard { spawnCard = (SpawnCard)(object)val, selectionWeight = LynxStuff.LynxShrineSelectionWeight.Value, spawnDistance = (MonsterSpawnDistance)0, preventOverhead = false }; return new DirectorCardHolder { Card = card, InteractableCategory = LynxStuff.LynxShrineSpawnCategory.Value }; } public void CreateLynxArcher(GameObject[] assets, Dictionary<string, Sprite> iconLookup, Dictionary<string, Texture2D> rampLookups) { //IL_01bc: Unknown result type (might be due to invalid IL or missing references) //IL_01c1: Unknown result type (might be due to invalid IL or missing references) //IL_01cc: Unknown result type (might be due to invalid IL or missing references) //IL_01dc: Unknown result type (might be due to invalid IL or missing references) //IL_01de: Unknown result type (might be due to invalid IL or missing references) //IL_01e3: Unknown result type (might be due to invalid IL or missing references) //IL_01ea: Unknown result type (might be due to invalid IL or missing references) //IL_01f2: Expected O, but got Unknown //IL_01f2: Unknown result type (might be due to invalid IL or missing references) //IL_01f7: Unknown result type (might be due to invalid IL or missing references) //IL_01fe: Unknown result type (might be due to invalid IL or missing references) //IL_0200: Unknown result type (might be due to invalid IL or missing references) //IL_0207: Expected O, but got Unknown ArcherStuff archerStuff = new ArcherStuff(); Material orCreateMaterial = GetOrCreateMaterial("matLynxArcherArrow", archerStuff.CreateArcherArrowMaterial); FireArrow.projectilePrefab = archerStuff.CreateArrowProjectile(assets.First((GameObject prefab) => ((Object)prefab).name == "ArrowProjectile"), archerStuff.CreateArrowProjectileGhost(assets.First((GameObject prefab) => ((Object)prefab).name == "ArrowProjectileGhost"), orCreateMaterial), archerStuff.CreateArrowImpalePrefab(assets.First((GameObject prefab) => ((Object)prefab).name == "ArrowProjectileGhost"), orCreateMaterial), archerStuff.CreateArrowLoopSoundDef()); projectilesList.Add(FireArrow.projectilePrefab); ArcherBody archerBody = new ArcherBody(); ArcherBody.Skills.Shot = archerBody.CreateShotSkill(); sdList.Add(ArcherBody.Skills.Shot); ArcherBody.SkillFamilies.Primary = Utils.CreateSkillFamily("LynxArcherPrimarySkillFamily", ArcherBody.Skills.Shot); sfList.Add(ArcherBody.SkillFamilies.Primary); ArcherBody.BodyPrefab = archerBody.AddBodyComponents(assets.First((GameObject prefab) => ((Object)prefab).name == "LynxArcherBody"), iconLookup["texLynxArcherIcon"]); bodyList.Add(ArcherBody.BodyPrefab); ArcherMaster.MasterPrefab = new ArcherMaster().AddMasterComponents(assets.First((GameObject prefab) => ((Object)prefab).name == "LynxArcherMaster"), ArcherBody.BodyPrefab); masterList.Add(ArcherMaster.MasterPrefab); ArcherBody.SpawnCards.cscLynxArcherDefault = archerBody.CreateCard("cscLynxArcherDefault", ArcherMaster.MasterPrefab, ArcherBody.SkinDefs.Default, ArcherBody.BodyPrefab); DirectorCard card = new DirectorCard { spawnCard = (SpawnCard)(object)ArcherBody.SpawnCards.cscLynxArcherDefault, selectionWeight = LynxArcher.SelectionWeight.Value, spawnDistance = (MonsterSpawnDistance)0, preventOverhead = true, minimumStageCompletions = 0 }; DirectorCardHolder directorCard = new DirectorCardHolder { Card = card, MonsterCategory = (MonsterCategory)2 }; Utils.AddMonsterToStage(DirectorAPI.ToInternalStageName((Stage)4096), directorCard); SpawnCard cscLynxArcherDefault = (SpawnCard)(object)ArcherBody.SpawnCards.cscLynxArcherDefault; ArrayUtils.ArrayAppend<SpawnCard>(ref SummonTribe.spawnCards, ref cscLynxArcherDefault); ArcherBodyAlly archerBodyAlly = new ArcherBodyAlly(); ArcherBodyAlly.LynxArcherDamage = archerBodyAlly.CreateDamageBuffDef(iconLookup["texLynxArcherBuff"]); bdList.Add(ArcherBodyAlly.LynxArcherDamage); ArcherBodyAlly.BodyPrefab = archerBodyAlly.AddBodyComponents(assets.First((GameObject prefab) => ((Object)prefab).name == "LynxArcherAllyBody"), iconLookup["texArcherAllyIcon"]); bodyList.Add(ArcherBodyAlly.BodyPrefab); ArcherMasterAlly.MasterPrefab = new ArcherMasterAlly().AddMasterComponents(assets.First((GameObject prefab) => ((Object)prefab).name == "LynxArcherAllyMaster"), ArcherBodyAlly.BodyPrefab); masterList.Add(ArcherMasterAlly.MasterPrefab); ArcherBodyAlly.SpawnCards.cscLynxArcherAlly = archerBodyAlly.CreateCard("cscLynxArcherAlly", ArcherMasterAlly.MasterPrefab, ArcherBodyAlly.SkinDefs.Ally, ArcherBodyAlly.BodyPrefab); stateList.Add(typeof(EnemiesReturns.ModdedEntityStates.LynxTribe.Archer.SpawnState)); stateList.Add(typeof(EnemiesReturns.ModdedEntityStates.LynxTribe.Archer.MainState)); stateList.Add(typeof(FireArrow)); stateList.Add(typeof(EnemiesReturns.ModdedEntityStates.LynxTribe.Archer.DeathState)); stateList.Add(typeof(GuitarEmotePlayer)); } public void CreateLynxHunter(GameObject[] assets, Dictionary<string, Sprite> iconLookup) { //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Expected O, but got Unknown //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Expected O, but got Unknown //IL_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: Expected O, but got Unknown //IL_01b7: Unknown result type (might be due to invalid IL or missing references) //IL_01bc: Unknown result type (might be due to invalid IL or missing references) //IL_01c7: Unknown result type (might be due to invalid IL or missing references) //IL_01d7: Unknown result type (might be due to invalid IL or missing references) //IL_01d9: Unknown result type (might be due to invalid IL or missing references) //IL_01de: Unknown result type (might be due to invalid IL or missing references) //IL_01e5: Unknown result type (might be due to invalid IL or missing references) //IL_01ed: Expected O, but got Unknown //IL_01ed: 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_01f9: 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_0202: Expected O, but got Unknown HunterStuff hunterStuff = new HunterStuff(); GameObject val = (FireLunge.wooshEffect = (Stab.wooshEffect = hunterStuff.CreateHunterAttackEffect(assets.First((GameObject prefab) => ((Object)prefab).name == "LynxHunterAttackEffect")))); effectsList.Add(new EffectDef(val)); FireLunge.slideEffectPrefab = hunterStuff.CreateLungeSlideEffect(); effectsList.Add(new EffectDef(FireLunge.slideEffectPrefab)); GameObject val2 = (FireLunge.coneEffect = (Stab.coneEffect = hunterStuff.CreateHunterAttackSpearTipEffect(assets.First((GameObject prefab) => ((Object)prefab).name == "LynxHunterSpearTipEffect")))); effectsList.Add(new EffectDef(val2)); HunterBody hunterBody = new HunterBody(); HunterBody.Skills.Stab = hunterBody.CreateStabSkill(); sdList.Add(HunterBody.Skills.Stab); HunterBody.SkillFamilies.Primary = Utils.CreateSkillFamily("LynxHunterPrimarySkillFamily", HunterBody.Skills.Stab); sfList.Add(HunterBody.SkillFamilies.Primary); HunterBody.BodyPrefab = hunterBody.AddBodyComponents(assets.First((GameObject prefab) => ((Object)prefab).name == "LynxHunterBody"), iconLookup["texLynxHunterIcon"]); bodyList.Add(HunterBody.BodyPrefab); HunterMaster.MasterPrefab = new HunterMaster().AddMasterComponents(assets.First((GameObject prefab) => ((Object)prefab).name == "LynxHunterMaster"), HunterBody.BodyPrefab); masterList.Add(HunterMaster.MasterPrefab); HunterBody.SpawnCards.cscLynxHunterDefault = hunterBody.CreateCard("cscLynxHunterDefault", HunterMaster.MasterPrefab, HunterBody.SkinDefs.Default, HunterBody.BodyPrefab); DirectorCard card = new DirectorCard { spawnCard = (SpawnCard)(object)HunterBody.SpawnCards.cscLynxHunterDefault, selectionWeight = LynxHunter.SelectionWeight.Value, spawnDistance = (MonsterSpawnDistance)0, preventOverhead = true, minimumStageCompletions = 0 }; DirectorCardHolder directorCard = new DirectorCardHolder { Card = card, MonsterCategory = (MonsterCategory)2 }; Utils.AddMonsterToStage(DirectorAPI.ToInternalStageName((Stage)4096), directorCard); SpawnCard cscLynxHunterDefault = (SpawnCard)(object)HunterBody.SpawnCards.cscLynxHunterDefault; ArrayUtils.ArrayAppend<SpawnCard>(ref SummonTribe.spawnCards, ref cscLynxHunterDefault); HunterBodyAlly hunterBodyAlly = new HunterBodyAlly(); HunterBodyAlly.LynxHunterArmor = hunterBodyAlly.CreateArmorBuffDef(iconLookup["texLynxHunterBuff"]); bdList.Add(HunterBodyAlly.LynxHunterArmor); HunterBodyAlly.BodyPrefab = hunterBodyAlly.AddBodyComponents(assets.First((GameObject prefab) => ((Object)prefab).name == "