Decompiled source of RecoveredAndReformed v1.1.4
RecoveredAndReformed.dll
Decompiled 2 months ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Collections.Generic; using System.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 AccurateEnemies; using AncientWisp; using ArchaicWisp; using BepInEx; using BepInEx.Bootstrap; using BepInEx.Configuration; using BepInEx.Logging; using ClayMen; using DireseekerMod.Modules; using DireseekerMod.States.Missions.DireseekerEncounter; using EntityStates; using EntityStates.AcidLarva; using EntityStates.ArtifactShell; using EntityStates.Assassin2; using EntityStates.EngiTurret.EngiTurretWeapon; using EntityStates.MajorConstruct; using EntityStates.MajorConstruct.Stance; using EntityStates.MajorConstruct.Weapon; using EntityStates.RoboBallBoss.Weapon; using FRCSharp; using GOTCE.Enemies; using GOTCE.Enemies.Bosses; using GOTCE.Enemies.Minibosses; using GOTCE.Enemies.Standard; using GrooveSaladSpikestripContent; using GrooveSaladSpikestripContent.Content; using HG; using HarmonyLib; using IL.EntityStates; using IL.EntityStates.Assassin2; using IL.RoR2; using LunarConstruct.Enemies; using Microsoft.CodeAnalysis; using Mono.Cecil.Cil; using MonoMod.Cil; using MysticsRisky2Utils.BaseAssetTypes; using On.EntityStates; using On.EntityStates.AcidLarva; using On.EntityStates.ArtifactShell; using On.EntityStates.Assassin2; using On.EntityStates.MajorConstruct.Stance; using On.EntityStates.MajorConstruct.Weapon; using On.RoR2; using PlasmaCoreSpikestripContent.Content.Monsters; using R2API; using RoR2; using RoR2.CharacterAI; using RoR2.ExpansionManagement; using UnityEngine; using UnityEngine.AddressableAssets; using UnityEngine.Networking; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("RecoveredAndReformed")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0+9469f1a301f628f11f14a091e9d2b5715ccb1719")] [assembly: AssemblyProduct("RecoveredAndReformed")] [assembly: AssemblyTitle("RecoveredAndReformed")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)] internal sealed class RefSafetyRulesAttribute : Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } namespace RecoveredAndReformed { [BepInPlugin("prodzpod.RecoveredAndReformed", "RecoveredAndReformed", "1.1.4")] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] public class Main : BaseUnityPlugin { [Serializable] [CompilerGenerated] private sealed class <>c { public static readonly <>c <>9 = new <>c(); public static hook_OnEnter <>9__120_0; public static Action <>9__120_1; public static Func<EliteTierDef, bool> <>9__120_27; public static Converter<EliteTierDef, EliteDef[]> <>9__120_28; public static hook_OnEnter <>9__120_2; public static Func<Instruction, bool> <>9__120_29; public static Func<Instruction, bool> <>9__120_30; public static Func<ConditionalPoolEntry, bool> <>9__120_33; public static Action<ClassicStageInfo> <>9__120_19; public static Action <>9__120_20; public static hook_RebuildCards <>9__120_26; public static Func<Category, bool> <>9__124_0; public static Converter<string, string> <>9__128_0; public static Converter<string, string> <>9__129_0; internal void <Awake>b__120_0(orig_OnEnter orig, LarvaLeap self) { orig.Invoke(self); self.detonateSelfDamageFraction = LarvaDetonateSelfDamage.Value; } internal void <Awake>b__120_1() { CharacterBody component = BodyCatalog.FindBodyPrefab("MajorConstructBody").GetComponent<CharacterBody>(); CharacterBody component2 = BodyCatalog.FindBodyPrefab("Assassin2Body").GetComponent<CharacterBody>(); CharacterBody component3 = BodyCatalog.FindBodyPrefab("MagmaWormBody").GetComponent<CharacterBody>(); CharacterBody component4 = BodyCatalog.FindBodyPrefab("ElectricWormBody").GetComponent<CharacterBody>(); CharacterBody component5 = BodyCatalog.FindBodyPrefab("AcidLarvaBody").GetComponent<CharacterBody>(); CharacterBody component6 = BodyCatalog.FindBodyPrefab("SuperRoboBallBossBody").GetComponent<CharacterBody>(); CharacterBody component7 = BodyCatalog.FindBodyPrefab("TitanGoldBody").GetComponent<CharacterBody>(); CharacterBody component8 = BodyCatalog.FindBodyPrefab("ArtifactShellBody").GetComponent<CharacterBody>(); GameObject obj = BodyCatalog.FindBodyPrefab("DireseekerBossBody"); CharacterBody val = ((obj != null) ? obj.GetComponent<CharacterBody>() : null); component.baseMaxHealth = MajorConstructHealth.Value; component.levelMaxHealth = MajorConstructHealthStack.Value; component.baseDamage = MajorConstructDamage.Value; component.levelDamage = MajorConstructDamageStack.Value; component.baseAttackSpeed = MajorConstructAttackSpeed.Value; component.baseArmor = MajorConstructArmor.Value; component.isChampion = true; if (!string.IsNullOrWhiteSpace(MajorConstructSpawn.Value)) { ((Component)component).GetComponent<DeathRewards>().bossDropTable = (PickupDropTable)(object)vanilla<ExplicitPickupDropTable>("DLC1/MajorAndMinorConstruct/dtBossMegaConstruct"); ((Component)component).GetComponent<DeathRewards>().logUnlockableDef = LegacyResourcesAPI.Load<UnlockableDef>("UnlockableDefs/Logs.MajorConstructBody"); } component2.baseMaxHealth = Assassin2Health.Value; component2.levelMaxHealth = Assassin2HealthStack.Value; component2.baseDamage = Assassin2Damage.Value; component2.levelDamage = Assassin2DamageStack.Value; component2.baseAttackSpeed = Assassin2AttackSpeed.Value; component2.baseMoveSpeed = Assassin2Speed.Value; component2.baseArmor = Assassin2Armor.Value; if (!string.IsNullOrWhiteSpace(Assassin2Spawn.Value)) { ((Component)component2).gameObject.AddComponent<DeathRewards>().logUnlockableDef = vanilla<UnlockableDef>("DLC1/Assassin2/Logs.Assassin2Body"); } component3.baseMaxHealth = MagmaWormHealth.Value; component3.levelMaxHealth = MagmaWormHealthStack.Value; component3.baseDamage = MagmaWormDamage.Value; component3.levelDamage = MagmaWormDamageStack.Value; component3.baseAttackSpeed = MagmaWormAttackSpeed.Value; component3.baseMoveSpeed = MagmaWormSpeed.Value; component3.baseArmor = MagmaWormArmor.Value; component4.baseMaxHealth = OverloadingWormHealth.Value; component4.levelMaxHealth = OverloadingWormHealthStack.Value; component4.baseDamage = OverloadingWormDamage.Value; component4.levelDamage = OverloadingWormDamageStack.Value; component4.baseAttackSpeed = OverloadingWormAttackSpeed.Value; component4.baseMoveSpeed = OverloadingWormSpeed.Value; component4.baseArmor = OverloadingWormArmor.Value; component5.baseMaxHealth = AcidLarvaHealth.Value; component5.levelMaxHealth = AcidLarvaHealthStack.Value; component5.baseDamage = AcidLarvaDamage.Value; component5.levelDamage = AcidLarvaDamageStack.Value; component5.baseAttackSpeed = AcidLarvaAttackSpeed.Value; component5.baseMoveSpeed = AcidLarvaSpeed.Value; component5.baseArmor = AcidLarvaArmor.Value; component6.baseMaxHealth = AWUHealth.Value; component6.levelMaxHealth = AWUHealthStack.Value; component6.baseDamage = AWUDamage.Value; component6.levelDamage = AWUDamageStack.Value; component6.baseAttackSpeed = AWUAttackSpeed.Value; component6.baseMoveSpeed = AWUSpeed.Value; component6.baseArmor = AWUArmor.Value; component7.baseMaxHealth = AurellioniteHealth.Value; component7.levelMaxHealth = AurellioniteHealthStack.Value; component7.baseDamage = AurellioniteDamage.Value; component7.levelDamage = AurellioniteDamageStack.Value; component7.baseAttackSpeed = AurellioniteAttackSpeed.Value; component7.baseMoveSpeed = AurellioniteSpeed.Value; component7.baseArmor = AurellioniteArmor.Value; component8.baseMaxHealth = ArtifactShellHealth.Value; component8.levelMaxHealth = ArtifactShellHealthStack.Value; component8.baseDamage = ArtifactShellDamage.Value; component8.levelDamage = ArtifactShellDamageStack.Value; component8.baseAttackSpeed = ArtifactShellAttackSpeed.Value; component8.baseArmor = ArtifactShellArmor.Value; if ((Object)(object)val != (Object)null) { val.baseMaxHealth = DireseekerHealth.Value; val.levelMaxHealth = DireseekerHealthStack.Value; val.baseDamage = DireseekerDamage.Value; val.levelDamage = DireseekerDamageStack.Value; val.baseAttackSpeed = DireseekerAttackSpeed.Value; val.baseMoveSpeed = DireseekerSpeed.Value; val.baseArmor = DireseekerArmor.Value; } } internal void <Awake>b__120_2(orig_OnEnter orig, WaitForIntro self) { orig.Invoke(self); if (((EntityState)self).characterBody.eliteBuffCount != 0) { return; } List<EliteDef> list = new List<EliteDef>(); foreach (EliteDef[] item in CombatDirector.eliteTiers.Where((EliteTierDef x) => RunArtifactManager.instance.IsArtifactEnabled(Artifacts.EliteOnly) || (x.CanSelect((EliteRules)0) && x.costMultiplier < (float)(Run.instance.loopClearCount * 10))).ToList().ConvertAll((EliteTierDef x) => x.eliteTypes)) { EliteDef[] array = item; foreach (EliteDef val in array) { if ((Object)(object)val != (Object)null && val.IsAvailable()) { list.Add(val); } } } EliteDef val2 = Run.instance.spawnRng.NextElementUniform<EliteDef>(list); ((EntityState)self).characterBody.AddBuff(val2.eliteEquipmentDef.passiveBuffDef); } internal bool <Awake>b__120_27(EliteTierDef x) { return RunArtifactManager.instance.IsArtifactEnabled(Artifacts.EliteOnly) || (x.CanSelect((EliteRules)0) && x.costMultiplier < (float)(Run.instance.loopClearCount * 10)); } internal EliteDef[] <Awake>b__120_28(EliteTierDef x) { return x.eliteTypes; } internal bool <Awake>b__120_29(Instruction x) { return ILPatternMatchingExt.MatchLdloc(x, 7); } internal bool <Awake>b__120_30(Instruction x) { ILLabel val = default(ILLabel); return ILPatternMatchingExt.MatchBrfalse(x, ref val); } internal void <Awake>b__120_19(ClassicStageInfo self) { if (self.monsterDccsPool.poolCategories.Length >= 2) { self.monsterDccsPool.poolCategories[1].includedIfConditionsMet = self.monsterDccsPool.poolCategories[1].includedIfConditionsMet.Where((ConditionalPoolEntry x) => ((Object)((PoolEntry)x).dccs).name != "dccsAcidLarvaFamily").ToArray(); } } internal bool <Awake>b__120_33(ConditionalPoolEntry x) { return ((Object)((PoolEntry)x).dccs).name != "dccsAcidLarvaFamily"; } internal void <Awake>b__120_20() { FireSuperDelayKnockup.shieldDuration = AWUShieldTime.Value; } internal void <Awake>b__120_26(orig_RebuildCards orig, ClassicStageInfo self, DirectorCardCategorySelection a, DirectorCardCategorySelection b) { if (Main.onRebuildCards != null) { Main.onRebuildCards(self); } orig.Invoke(self, a, b); } internal bool <AddFamilyEvent>b__124_0(Category x) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) return x.cards.Length != 0; } internal string <listify>b__128_0(string x) { return x.Trim(); } internal string <pairify>b__129_0(string x) { return x.Trim(); } } public const string PluginGUID = "prodzpod.RecoveredAndReformed"; public const string PluginAuthor = "prodzpod"; public const string PluginName = "RecoveredAndReformed"; public const string PluginVersion = "1.1.4"; public static ManualLogSource Log; public static PluginInfo pluginInfo; public static Harmony Harmony; public static ConfigFile Config; public static ConfigEntry<string> MajorConstructSpawn; public static ConfigEntry<string> Assassin2Spawn; public static ConfigEntry<int> MajorConstructMinStage; public static ConfigEntry<int> Assassin2MinStage; public static ConfigEntry<bool> EliteMagmaWorm; public static ConfigEntry<bool> EliteOverloadingWorm; public static ConfigEntry<bool> EliteAWU; public static ConfigEntry<bool> EliteAurellionite; private ConfigEntry<bool> EliteArtifactShell; public static ConfigEntry<bool> EliteDireseeker; public static ConfigEntry<float> MajorConstructHealth; public static ConfigEntry<float> MajorConstructHealthStack; public static ConfigEntry<float> MajorConstructDamage; public static ConfigEntry<float> MajorConstructDamageStack; public static ConfigEntry<float> MajorConstructAttackSpeed; public static ConfigEntry<float> MajorConstructArmor; public static ConfigEntry<int> MajorConstructCost; public static ConfigEntry<float> Assassin2Health; public static ConfigEntry<float> Assassin2HealthStack; public static ConfigEntry<float> Assassin2Damage; public static ConfigEntry<float> Assassin2DamageStack; public static ConfigEntry<float> Assassin2AttackSpeed; public static ConfigEntry<float> Assassin2Speed; public static ConfigEntry<float> Assassin2Armor; public static ConfigEntry<int> Assassin2Cost; public static ConfigEntry<float> MagmaWormHealth; public static ConfigEntry<float> MagmaWormHealthStack; public static ConfigEntry<float> MagmaWormDamage; public static ConfigEntry<float> MagmaWormDamageStack; public static ConfigEntry<float> MagmaWormAttackSpeed; public static ConfigEntry<float> MagmaWormSpeed; public static ConfigEntry<float> MagmaWormArmor; public static ConfigEntry<int> MagmaWormCost; public static ConfigEntry<float> OverloadingWormHealth; public static ConfigEntry<float> OverloadingWormHealthStack; public static ConfigEntry<float> OverloadingWormDamage; public static ConfigEntry<float> OverloadingWormDamageStack; public static ConfigEntry<float> OverloadingWormAttackSpeed; public static ConfigEntry<float> OverloadingWormSpeed; public static ConfigEntry<float> OverloadingWormArmor; public static ConfigEntry<int> OverloadingWormCost; public static ConfigEntry<float> AcidLarvaHealth; public static ConfigEntry<float> AcidLarvaHealthStack; public static ConfigEntry<float> AcidLarvaDamage; public static ConfigEntry<float> AcidLarvaDamageStack; public static ConfigEntry<float> AcidLarvaAttackSpeed; public static ConfigEntry<float> AcidLarvaSpeed; public static ConfigEntry<float> AcidLarvaArmor; public static ConfigEntry<int> AcidLarvaCost; public static ConfigEntry<float> AWUHealth; public static ConfigEntry<float> AWUHealthStack; public static ConfigEntry<float> AWUDamage; public static ConfigEntry<float> AWUDamageStack; public static ConfigEntry<float> AWUAttackSpeed; public static ConfigEntry<float> AWUSpeed; public static ConfigEntry<float> AWUArmor; public static ConfigEntry<float> AurellioniteHealth; public static ConfigEntry<float> AurellioniteHealthStack; public static ConfigEntry<float> AurellioniteDamage; public static ConfigEntry<float> AurellioniteDamageStack; public static ConfigEntry<float> AurellioniteAttackSpeed; public static ConfigEntry<float> AurellioniteSpeed; public static ConfigEntry<float> AurellioniteArmor; public static ConfigEntry<float> ArtifactShellHealth; public static ConfigEntry<float> ArtifactShellHealthStack; public static ConfigEntry<float> ArtifactShellDamage; public static ConfigEntry<float> ArtifactShellDamageStack; public static ConfigEntry<float> ArtifactShellAttackSpeed; public static ConfigEntry<float> ArtifactShellArmor; public static ConfigEntry<float> DireseekerHealth; public static ConfigEntry<float> DireseekerHealthStack; public static ConfigEntry<float> DireseekerDamage; public static ConfigEntry<float> DireseekerDamageStack; public static ConfigEntry<float> DireseekerAttackSpeed; public static ConfigEntry<float> DireseekerSpeed; public static ConfigEntry<float> DireseekerArmor; public static ConfigEntry<float> MajorConstructDeathTimer; public static ConfigEntry<int> MajorConstructSpawnAmount; public static ConfigEntry<bool> MajorConstructSpawnSigmaInstead; public static ConfigEntry<float> MajorConstructBeamDistance; public static ConfigEntry<float> MajorConstructAimSpeed; public static ConfigEntry<float> Assassin2InvisDuration; public static ConfigEntry<float> Assassin2InvisEndlag; public static ConfigEntry<float> Assassin2DashDuration; public static ConfigEntry<float> Assassin2DashSpeed; public static ConfigEntry<float> Assassin2SlashDuration; public static ConfigEntry<float> Assassin2SlashDamage; public static ConfigEntry<float> Assassin2SlashKnockback; public static ConfigEntry<float> Assassin2SlashReach; public static ConfigEntry<bool> Assassin2Slash1; public static ConfigEntry<bool> Assassin2Slash2; public static ConfigEntry<float> Assassin2SlashExpose; public static ConfigEntry<float> Assassin2SlashSize; public static ConfigEntry<bool> Assassin2SlashMultihit; public static ConfigEntry<float> Assassin2ShurikenSize; public static ConfigEntry<bool> Assassin2Accurate; public static ConfigEntry<bool> Assassin2AccurateLoop; public static ConfigEntry<bool> EnableFamilyChange; public static ConfigEntry<string> TarFamily; public static ConfigEntry<string> AltWispFamily; public static ConfigEntry<string> BallsFamily; public static ConfigEntry<string> VoidlingFamily; public static ConfigEntry<string> OneEyeFamily; public static ConfigEntry<string> BlindFamily; public static ConfigEntry<string> BellFamily; public static ConfigEntry<bool> RemoveLarvaFamily; public static ConfigEntry<float> LarvaDetonateSelfDamage; public static ConfigEntry<float> AWUShieldTime; public static ConfigEntry<bool> DireseekerDropAtPlace; public static ConfigEntry<float> FamilyEventChance; public static ExpansionDef DLC1 = null; public static List<DirectorCardCategorySelection> customFamilies = new List<DirectorCardCategorySelection>(); public static event Action<ClassicStageInfo> onRebuildCards; public void Awake() { //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Expected O, but got Unknown //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0046: Expected O, but got Unknown //IL_0f17: Unknown result type (might be due to invalid IL or missing references) //IL_0f1c: Unknown result type (might be due to invalid IL or missing references) //IL_0f22: Expected O, but got Unknown //IL_1009: Unknown result type (might be due to invalid IL or missing references) //IL_100e: Unknown result type (might be due to invalid IL or missing references) //IL_1015: Unknown result type (might be due to invalid IL or missing references) //IL_101c: Unknown result type (might be due to invalid IL or missing references) //IL_101e: Unknown result type (might be due to invalid IL or missing references) //IL_1023: Unknown result type (might be due to invalid IL or missing references) //IL_1035: Unknown result type (might be due to invalid IL or missing references) //IL_103e: Expected O, but got Unknown //IL_103e: Unknown result type (might be due to invalid IL or missing references) //IL_1043: Unknown result type (might be due to invalid IL or missing references) //IL_104a: Unknown result type (might be due to invalid IL or missing references) //IL_1051: Unknown result type (might be due to invalid IL or missing references) //IL_1053: Unknown result type (might be due to invalid IL or missing references) //IL_1058: Unknown result type (might be due to invalid IL or missing references) //IL_106a: Unknown result type (might be due to invalid IL or missing references) //IL_1073: Expected O, but got Unknown //IL_1107: Unknown result type (might be due to invalid IL or missing references) //IL_110c: Unknown result type (might be due to invalid IL or missing references) //IL_1112: Expected O, but got Unknown //IL_114a: Unknown result type (might be due to invalid IL or missing references) //IL_114f: Unknown result type (might be due to invalid IL or missing references) //IL_1157: Unknown result type (might be due to invalid IL or missing references) //IL_1159: Unknown result type (might be due to invalid IL or missing references) //IL_1163: Expected O, but got Unknown //IL_1164: Unknown result type (might be due to invalid IL or missing references) //IL_1169: Unknown result type (might be due to invalid IL or missing references) //IL_1171: Unknown result type (might be due to invalid IL or missing references) //IL_1173: Unknown result type (might be due to invalid IL or missing references) //IL_117d: Expected O, but got Unknown //IL_12e5: Unknown result type (might be due to invalid IL or missing references) //IL_12ef: Expected O, but got Unknown //IL_16fe: Unknown result type (might be due to invalid IL or missing references) //IL_1703: Unknown result type (might be due to invalid IL or missing references) //IL_1718: Unknown result type (might be due to invalid IL or missing references) //IL_171a: Unknown result type (might be due to invalid IL or missing references) //IL_1724: Expected O, but got Unknown //IL_1726: Unknown result type (might be due to invalid IL or missing references) //IL_172b: Unknown result type (might be due to invalid IL or missing references) //IL_1740: Unknown result type (might be due to invalid IL or missing references) //IL_1742: Unknown result type (might be due to invalid IL or missing references) //IL_174c: Expected O, but got Unknown //IL_174e: Unknown result type (might be due to invalid IL or missing references) //IL_1753: Unknown result type (might be due to invalid IL or missing references) //IL_1768: Unknown result type (might be due to invalid IL or missing references) //IL_176a: Unknown result type (might be due to invalid IL or missing references) //IL_1774: Expected O, but got Unknown //IL_17bd: Unknown result type (might be due to invalid IL or missing references) //IL_17c2: Unknown result type (might be due to invalid IL or missing references) //IL_17d7: Unknown result type (might be due to invalid IL or missing references) //IL_17d9: Unknown result type (might be due to invalid IL or missing references) //IL_17e3: Expected O, but got Unknown //IL_182f: Unknown result type (might be due to invalid IL or missing references) //IL_1834: Unknown result type (might be due to invalid IL or missing references) //IL_1849: Unknown result type (might be due to invalid IL or missing references) //IL_184b: Unknown result type (might be due to invalid IL or missing references) //IL_1855: Expected O, but got Unknown //IL_1857: Unknown result type (might be due to invalid IL or missing references) //IL_185c: Unknown result type (might be due to invalid IL or missing references) //IL_1871: Unknown result type (might be due to invalid IL or missing references) //IL_1873: Unknown result type (might be due to invalid IL or missing references) //IL_187d: Expected O, but got Unknown //IL_187f: Unknown result type (might be due to invalid IL or missing references) //IL_1884: Unknown result type (might be due to invalid IL or missing references) //IL_1899: Unknown result type (might be due to invalid IL or missing references) //IL_189b: Unknown result type (might be due to invalid IL or missing references) //IL_18a5: Expected O, but got Unknown //IL_18a7: Unknown result type (might be due to invalid IL or missing references) //IL_18ac: Unknown result type (might be due to invalid IL or missing references) //IL_18c1: Unknown result type (might be due to invalid IL or missing references) //IL_18c3: Unknown result type (might be due to invalid IL or missing references) //IL_18cd: Expected O, but got Unknown //IL_18cf: Unknown result type (might be due to invalid IL or missing references) //IL_18d4: Unknown result type (might be due to invalid IL or missing references) //IL_18e9: Unknown result type (might be due to invalid IL or missing references) //IL_18eb: Unknown result type (might be due to invalid IL or missing references) //IL_18f5: Expected O, but got Unknown //IL_18f7: Unknown result type (might be due to invalid IL or missing references) //IL_18fc: Unknown result type (might be due to invalid IL or missing references) //IL_1911: Unknown result type (might be due to invalid IL or missing references) //IL_1913: Unknown result type (might be due to invalid IL or missing references) //IL_191d: Expected O, but got Unknown //IL_191f: Unknown result type (might be due to invalid IL or missing references) //IL_1924: Unknown result type (might be due to invalid IL or missing references) //IL_1939: Unknown result type (might be due to invalid IL or missing references) //IL_193b: Unknown result type (might be due to invalid IL or missing references) //IL_1945: Expected O, but got Unknown //IL_1947: Unknown result type (might be due to invalid IL or missing references) //IL_194c: Unknown result type (might be due to invalid IL or missing references) //IL_1961: Unknown result type (might be due to invalid IL or missing references) //IL_1963: Unknown result type (might be due to invalid IL or missing references) //IL_196d: Expected O, but got Unknown //IL_196f: Unknown result type (might be due to invalid IL or missing references) //IL_1974: Unknown result type (might be due to invalid IL or missing references) //IL_1989: Unknown result type (might be due to invalid IL or missing references) //IL_198b: Unknown result type (might be due to invalid IL or missing references) //IL_1995: Expected O, but got Unknown //IL_19eb: Unknown result type (might be due to invalid IL or missing references) //IL_19f3: Unknown result type (might be due to invalid IL or missing references) //IL_1a03: Unknown result type (might be due to invalid IL or missing references) //IL_1a08: Unknown result type (might be due to invalid IL or missing references) //IL_1a1d: Unknown result type (might be due to invalid IL or missing references) //IL_1a1f: Unknown result type (might be due to invalid IL or missing references) //IL_1a29: Expected O, but got Unknown //IL_1a2b: Unknown result type (might be due to invalid IL or missing references) //IL_1a30: Unknown result type (might be due to invalid IL or missing references) //IL_1a45: Unknown result type (might be due to invalid IL or missing references) //IL_1a47: Unknown result type (might be due to invalid IL or missing references) //IL_1a51: Expected O, but got Unknown //IL_1a53: Unknown result type (might be due to invalid IL or missing references) //IL_1a58: Unknown result type (might be due to invalid IL or missing references) //IL_1a6d: Unknown result type (might be due to invalid IL or missing references) //IL_1a6f: Unknown result type (might be due to invalid IL or missing references) //IL_1a79: Expected O, but got Unknown //IL_1a7b: Unknown result type (might be due to invalid IL or missing references) //IL_1a80: Unknown result type (might be due to invalid IL or missing references) //IL_1a95: Unknown result type (might be due to invalid IL or missing references) //IL_1a97: Unknown result type (might be due to invalid IL or missing references) //IL_1aa1: Expected O, but got Unknown //IL_1aa3: Unknown result type (might be due to invalid IL or missing references) //IL_1aa8: Unknown result type (might be due to invalid IL or missing references) //IL_1ab0: Unknown result type (might be due to invalid IL or missing references) //IL_1ab2: Unknown result type (might be due to invalid IL or missing references) //IL_1abc: Expected O, but got Unknown //IL_1abe: Unknown result type (might be due to invalid IL or missing references) //IL_1ac3: Unknown result type (might be due to invalid IL or missing references) //IL_1acb: Unknown result type (might be due to invalid IL or missing references) //IL_1acd: Unknown result type (might be due to invalid IL or missing references) //IL_1ad7: Expected O, but got Unknown //IL_1b12: Unknown result type (might be due to invalid IL or missing references) //IL_1b17: Unknown result type (might be due to invalid IL or missing references) //IL_1b1d: Expected O, but got Unknown //IL_1683: Unknown result type (might be due to invalid IL or missing references) //IL_1688: Unknown result type (might be due to invalid IL or missing references) //IL_169d: Unknown result type (might be due to invalid IL or missing references) //IL_169f: Unknown result type (might be due to invalid IL or missing references) //IL_16a9: Expected O, but got Unknown //IL_16b0: Unknown result type (might be due to invalid IL or missing references) //IL_16b5: Unknown result type (might be due to invalid IL or missing references) //IL_16ca: Unknown result type (might be due to invalid IL or missing references) //IL_16cc: Unknown result type (might be due to invalid IL or missing references) //IL_16d6: Expected O, but got Unknown pluginInfo = ((BaseUnityPlugin)this).Info; Log = ((BaseUnityPlugin)this).Logger; Harmony = new Harmony("prodzpod.RecoveredAndReformed"); Config = new ConfigFile(Path.Combine(Paths.ConfigPath, "prodzpod.RecoveredAndReformed.cfg"), true); MajorConstructSpawn = Config.Bind<string>("Spawns", "Iota Construct Spawn Scenes", "skymeadow, itskymeadow, sulfurpools, itgolemplains, golemplains, golemplains2, forgottenhaven, FBLScene", "List of scene names, separated by comma. By default, where Xi Construct spawns."); Assassin2Spawn = Config.Bind<string>("Spawns", "Assassin Spawn Scenes", "blackbeach, blackbeach2, rootjungle, arena, shipgraveyard, wispgraveyard, itancientloft, ancientloft", "List of scene names, separated by comma."); MajorConstructMinStage = Config.Bind<int>("Spawns", "Iota Construct Minimum Stage", 4, "Starting stage."); Assassin2MinStage = Config.Bind<int>("Spawns", "Assassin Minimum Stage", 3, "Starting stage."); EliteMagmaWorm = Config.Bind<bool>("Spawns", "Enable Elite Magma Worms", false, "If true, allows spawning of elite magma worms."); EliteOverloadingWorm = Config.Bind<bool>("Spawns", "Enable Elite Overloading Worms", false, "If true, allows spawning of elite overloading worms."); EliteAWU = Config.Bind<bool>("Spawns", "Enable Elite Alloy Worship Unit", false, "If true, allows spawning of elite AWUs."); EliteAurellionite = Config.Bind<bool>("Spawns", "Enable Elite Aurellionite", false, "If true, allows spawning of elite aurellionites."); EliteArtifactShell = Config.Bind<bool>("Spawns", "Enable Elite Artifact Reliquary", false, "If true, allows spawning of elite artifact reliquaries."); EliteDireseeker = Config.Bind<bool>("Spawns", "Enable Elite Direseeker", false, "If true, allows spawning of elite direseekers."); MajorConstructHealth = Config.Bind<float>("Basic Stats", "Iota Construct Base Health", 2100f, ""); MajorConstructHealthStack = Config.Bind<float>("Basic Stats", "Iota Construct Health Increase Per Level", 630f, ""); MajorConstructDamage = Config.Bind<float>("Basic Stats", "Iota Construct Base Damage", 25f, ""); MajorConstructDamageStack = Config.Bind<float>("Basic Stats", "Iota Construct Damage Increase Per Level", 5f, ""); MajorConstructAttackSpeed = Config.Bind<float>("Basic Stats", "Iota Construct Attack Speed", 1f, ""); MajorConstructArmor = Config.Bind<float>("Basic Stats", "Iota Construct Armor", 15f, ""); MajorConstructCost = Config.Bind<int>("Basic Stats", "Iota Construct Director Cost", 800, ""); Assassin2Health = Config.Bind<float>("Basic Stats", "Assassin Base Health", 120f, ""); Assassin2HealthStack = Config.Bind<float>("Basic Stats", "Assassin Health Increase Per Level", 36f, ""); Assassin2Damage = Config.Bind<float>("Basic Stats", "Assassin Base Damage", 10f, ""); Assassin2DamageStack = Config.Bind<float>("Basic Stats", "Assassin Damage Increase Per Level", 2f, ""); Assassin2AttackSpeed = Config.Bind<float>("Basic Stats", "Assassin Attack Speed", 1.2f, ""); Assassin2Speed = Config.Bind<float>("Basic Stats", "Assassin Speed", 12f, ""); Assassin2Armor = Config.Bind<float>("Basic Stats", "Assassin Armor", 0f, ""); Assassin2Cost = Config.Bind<int>("Basic Stats", "Assassin Director Cost", 28, "Default: 10."); MagmaWormHealth = Config.Bind<float>("Basic Stats", "Magma Worm Base Health", 2400f, ""); MagmaWormHealthStack = Config.Bind<float>("Basic Stats", "Magma Worm Health Increase Per Level", 720f, ""); MagmaWormDamage = Config.Bind<float>("Basic Stats", "Magma Worm Base Damage", 10f, ""); MagmaWormDamageStack = Config.Bind<float>("Basic Stats", "Magma Worm Damage Increase Per Level", 2f, ""); MagmaWormAttackSpeed = Config.Bind<float>("Basic Stats", "Magma Worm Attack Speed", 1f, ""); MagmaWormSpeed = Config.Bind<float>("Basic Stats", "Magma Worm Speed", 20f, ""); MagmaWormArmor = Config.Bind<float>("Basic Stats", "Magma Worm Armor", 15f, ""); MagmaWormCost = Config.Bind<int>("Basic Stats", "Magma Worm Director Cost", 800, ""); OverloadingWormHealth = Config.Bind<float>("Basic Stats", "Overloading Worm Base Health", 12000f, ""); OverloadingWormHealthStack = Config.Bind<float>("Basic Stats", "Overloading Worm Health Increase Per Level", 3600f, ""); OverloadingWormDamage = Config.Bind<float>("Basic Stats", "Overloading Worm Base Damage", 50f, ""); OverloadingWormDamageStack = Config.Bind<float>("Basic Stats", "Overloading Worm Damage Increase Per Level", 10f, ""); OverloadingWormAttackSpeed = Config.Bind<float>("Basic Stats", "Overloading Worm Attack Speed", 1f, ""); OverloadingWormSpeed = Config.Bind<float>("Basic Stats", "Overloading Worm Speed", 20f, ""); OverloadingWormArmor = Config.Bind<float>("Basic Stats", "Overloading Worm Armor", 15f, ""); OverloadingWormCost = Config.Bind<int>("Basic Stats", "Overloading Worm Director Cost", 4000, ""); AcidLarvaHealth = Config.Bind<float>("Basic Stats", "Acid Larva Base Health", 45f, ""); AcidLarvaHealthStack = Config.Bind<float>("Basic Stats", "Acid Larva Health Increase Per Level", 14f, ""); AcidLarvaDamage = Config.Bind<float>("Basic Stats", "Acid Larva Base Damage", 22f, "Default: 11."); AcidLarvaDamageStack = Config.Bind<float>("Basic Stats", "Acid Larva Damage Increase Per Level", 4.4f, "Default: 2.2."); AcidLarvaAttackSpeed = Config.Bind<float>("Basic Stats", "Acid Larva Attack Speed", 1f, ""); AcidLarvaSpeed = Config.Bind<float>("Basic Stats", "Acid Larva Speed", 1f, ""); AcidLarvaArmor = Config.Bind<float>("Basic Stats", "Acid Larva Armor", 0f, ""); AcidLarvaCost = Config.Bind<int>("Basic Stats", "Acid Larva Director Cost", 25, ""); AWUHealth = Config.Bind<float>("Basic Stats", "Alloy Worship Unit Base Health", 2500f, ""); AWUHealthStack = Config.Bind<float>("Basic Stats", "Alloy Worship Unit Health Increase Per Level", 750f, ""); AWUDamage = Config.Bind<float>("Basic Stats", "Alloy Worship Unit Base Damage", 15f, ""); AWUDamageStack = Config.Bind<float>("Basic Stats", "Alloy Worship Unit Damage Increase Per Level", 3f, ""); AWUAttackSpeed = Config.Bind<float>("Basic Stats", "Alloy Worship Unit Attack Speed", 1f, ""); AWUSpeed = Config.Bind<float>("Basic Stats", "Alloy Worship Unit Speed", 7f, ""); AWUArmor = Config.Bind<float>("Basic Stats", "Alloy Worship Unit Armor", 30f, ""); AurellioniteHealth = Config.Bind<float>("Basic Stats", "Aurellionite Base Health", 2100f, ""); AurellioniteHealthStack = Config.Bind<float>("Basic Stats", "Aurellionite Health Increase Per Level", 630f, ""); AurellioniteDamage = Config.Bind<float>("Basic Stats", "Aurellionite Base Damage", 40f, ""); AurellioniteDamageStack = Config.Bind<float>("Basic Stats", "Aurellionite Damage Increase Per Level", 8f, ""); AurellioniteAttackSpeed = Config.Bind<float>("Basic Stats", "Aurellionite Attack Speed", 1f, ""); AurellioniteSpeed = Config.Bind<float>("Basic Stats", "Aurellionite Speed", 5f, ""); AurellioniteArmor = Config.Bind<float>("Basic Stats", "Aurellionite Armor", 20f, ""); ArtifactShellHealth = Config.Bind<float>("Basic Stats", "Artifact Reliquary Base Health", 100000f, ""); ArtifactShellHealthStack = Config.Bind<float>("Basic Stats", "Artifact Reliquary Health Increase Per Level", 30000f, ""); ArtifactShellDamage = Config.Bind<float>("Basic Stats", "Artifact Reliquary Base Damage", 30f, "Default: 10."); ArtifactShellDamageStack = Config.Bind<float>("Basic Stats", "Artifact Reliquary Damage Increase Per Level", 6f, "Default: 2."); ArtifactShellAttackSpeed = Config.Bind<float>("Basic Stats", "Artifact Reliquary Attack Speed", 1f, ""); ArtifactShellArmor = Config.Bind<float>("Basic Stats", "Artifact Reliquary Armor", 100000f, ""); DireseekerHealth = Config.Bind<float>("Basic Stats", "Direseeker Base Health", 2800f, ""); DireseekerHealthStack = Config.Bind<float>("Basic Stats", "Direseeker Health Increase Per Level", 840f, ""); DireseekerDamage = Config.Bind<float>("Basic Stats", "Direseeker Base Damage", 20f, ""); DireseekerDamageStack = Config.Bind<float>("Basic Stats", "Direseeker Damage Increase Per Level", 4f, ""); DireseekerAttackSpeed = Config.Bind<float>("Basic Stats", "Direseeker Attack Speed", 1f, ""); DireseekerSpeed = Config.Bind<float>("Basic Stats", "Direseeker Speed", 11f, ""); DireseekerArmor = Config.Bind<float>("Basic Stats", "Direseeker Armor", 0f, ""); MajorConstructDeathTimer = Config.Bind<float>("Iota Construct", "Death Timer", 5f, "Amount of seconds to show death animation for"); MajorConstructSpawnAmount = Config.Bind<int>("Iota Construct", "Spawn Amount", 3, "Amount of enemies to spawn in pillar raise phase"); MajorConstructSpawnSigmaInstead = Config.Bind<bool>("Iota Construct", "Spawn Sigma Constructs", true, "Spikestrip Compat"); MajorConstructBeamDistance = Config.Bind<float>("Iota Construct", "Beam Distance", 150f, "Used to be 999"); MajorConstructAimSpeed = Config.Bind<float>("Iota Construct", "Aim Speed", 10f, "Strafe around!"); Assassin2InvisDuration = Config.Bind<float>("Assassin", "Invisible Duration", 2f, "Default: 5"); Assassin2InvisEndlag = Config.Bind<float>("Assassin", "Invisible End Lag", 3f, "Default: 10"); Assassin2DashDuration = Config.Bind<float>("Assassin", "Dash Duration", 2.5f, "Default: 2.5"); Assassin2DashSpeed = Config.Bind<float>("Assassin", "Dash Speed", 3f, "Default: 4"); Assassin2SlashDuration = Config.Bind<float>("Assassin", "Slash Duration", 1.5f, "Default: 1.667"); Assassin2SlashDamage = Config.Bind<float>("Assassin", "Slash Damage", 1f, "Default: 4"); Assassin2SlashKnockback = Config.Bind<float>("Assassin", "Slash Knockback", 16f, "Default: 16"); Assassin2SlashReach = Config.Bind<float>("Assassin", "Slash Reach", 25f, "Default: 20"); Assassin2Slash1 = Config.Bind<bool>("Assassin", "Enable Slash 1", true, "Enable the first slash hit."); Assassin2Slash2 = Config.Bind<bool>("Assassin", "Enable Slash 2", true, "Enable the second slash hit."); Assassin2SlashExpose = Config.Bind<float>("Assassin", "Enable Slash Expose", 4f, "In seconds. Enable the slash hit to `expose` you."); Assassin2SlashSize = Config.Bind<float>("Assassin", "Slash Hitbox Size Multiplier", 2f, "stop whiffing wtf"); Assassin2SlashMultihit = Config.Bind<bool>("Assassin", "Slash Multihit", false, "This is the shuriken 5 hit"); Assassin2ShurikenSize = Config.Bind<float>("Assassin", "Shuriken Hitbox Size Multiplier", 2f, "stop whiffing wtf"); Assassin2Accurate = Config.Bind<bool>("Assassin", "Shuriken Accurate Enemies Compat", true, "oh they mess you up good"); Assassin2AccurateLoop = Config.Bind<bool>("Assassin", "Shuriken Accurate Enemies Compat (loop only)", false, "oh they mess you up good"); FamilyEventChance = Config.Bind<float>("Family Event", "Family Event Chance", 0.02f, ""); EnableFamilyChange = Config.Bind<bool>("Family Event", "Enable Family Compats", true, "Enable all family event related compats."); TarFamily = Config.Bind<string>("Family Event", "Enable Tar Family", "ancientloft, itancientloft, wispgraveyard, sulfurpools, goolake, itgoolake, drybasin", "Custom family event. List of scenes, separated by comma. blank to disable."); AltWispFamily = Config.Bind<string>("Family Event", "Enable Alt Wisp Family", "ancientloft, itancientloft, frozenwall, snowyforest, forgottenhaven, FBLScene", "Custom family event. List of scenes, separated by comma. blank to disable. otherwise wisp enemies will be added to normal wisp group."); BallsFamily = Config.Bind<string>("Family Event", "Enable Balls Family", "FBLScene, ancientloft, blackbeach, blackbeach2, dampcavesimple, drybasin, foggyswamp, forgottenhaven, frozenwall, goldshores, golemplains, golemplains2, goolake, itancientloft, itdampcave, itfrozenwall, itgolemplains, itgoolake, itmoon, itskymeadow, moon, moon2, rootjungle, shipgraveyard, skymeadow, slumberingsatellite, snowyforest, sulfurpools, wispgraveyard", "(GOTCE ONLY) Custom family event. List of scenes, separated by comma. blank to disable."); VoidlingFamily = Config.Bind<string>("Family Event", "Enable Voidling Family", "snowyforest, sulfurpools, rootjungle, ancientloft, itancientloft, slumberingsatellite, FBLScene, forgottenhaven, drybasin", "(GOTCE ONLY) Custom family event. List of scenes, separated by comma. blank to disable."); OneEyeFamily = Config.Bind<string>("Family Event", "Enable One Eye Family", "snowyforest, foggyswamp, ancientloft, sulfurpools, dampcavesimple, drybasin, slumberingsatellite, skymeadow, itskymeadow, itancientloft, itdampcave", "Custom family event. List of scenes, separated by comma. blank to disable."); BlindFamily = Config.Bind<string>("Family Event", "Enable Blind Family", "ancientloft, itancientloft, itfrozenwall, frozenwall, snowyforest, FBLScene", "Custom family event. List of scenes, separated by comma. blank to disable."); BellFamily = Config.Bind<string>("Family Event", "Enable Bell Family", "itdampcave, dampcavesimple, shipgraveyard, itskymeadow, skymeadow, foggyswamp, FBLScene", "Custom family event. List of scenes, separated by comma. blank to disable. disables if BT is not loaded."); RemoveLarvaFamily = Config.Bind<bool>("Family Event", "Remove Larva Family Event", true, "jesus lol"); LarvaDetonateSelfDamage = Config.Bind<float>("Sneaky Rebalance", "Acid Larva Detonation Self Damage Fraction", 1f, "What if larvas died on first leap (no way), Default: 0.25"); AWUShieldTime = Config.Bind<float>("Sneaky Rebalance", "Alloy Worship Unit Shield Uptime", 2.5f, "Default: 6."); DireseekerDropAtPlace = Config.Bind<bool>("Sneaky Rebalance", "Direseeker Drops Item In Place", true, "Literally where did it drop what"); object obj = <>c.<>9__120_0; if (obj == null) { hook_OnEnter val = delegate(orig_OnEnter orig, LarvaLeap self) { orig.Invoke(self); self.detonateSelfDamageFraction = LarvaDetonateSelfDamage.Value; }; <>c.<>9__120_0 = val; obj = (object)val; } LarvaLeap.OnEnter += (hook_OnEnter)obj; Reworks.IotaConstruct(); Reworks.Assassin2(); DLC1 = vanilla<ExpansionDef>("DLC1/Common/DLC1"); ((ResourceAvailability)(ref BodyCatalog.availability)).CallWhenAvailable((Action)delegate { CharacterBody component = BodyCatalog.FindBodyPrefab("MajorConstructBody").GetComponent<CharacterBody>(); CharacterBody component2 = BodyCatalog.FindBodyPrefab("Assassin2Body").GetComponent<CharacterBody>(); CharacterBody component3 = BodyCatalog.FindBodyPrefab("MagmaWormBody").GetComponent<CharacterBody>(); CharacterBody component4 = BodyCatalog.FindBodyPrefab("ElectricWormBody").GetComponent<CharacterBody>(); CharacterBody component5 = BodyCatalog.FindBodyPrefab("AcidLarvaBody").GetComponent<CharacterBody>(); CharacterBody component6 = BodyCatalog.FindBodyPrefab("SuperRoboBallBossBody").GetComponent<CharacterBody>(); CharacterBody component7 = BodyCatalog.FindBodyPrefab("TitanGoldBody").GetComponent<CharacterBody>(); CharacterBody component8 = BodyCatalog.FindBodyPrefab("ArtifactShellBody").GetComponent<CharacterBody>(); GameObject obj4 = BodyCatalog.FindBodyPrefab("DireseekerBossBody"); CharacterBody val13 = ((obj4 != null) ? obj4.GetComponent<CharacterBody>() : null); component.baseMaxHealth = MajorConstructHealth.Value; component.levelMaxHealth = MajorConstructHealthStack.Value; component.baseDamage = MajorConstructDamage.Value; component.levelDamage = MajorConstructDamageStack.Value; component.baseAttackSpeed = MajorConstructAttackSpeed.Value; component.baseArmor = MajorConstructArmor.Value; component.isChampion = true; if (!string.IsNullOrWhiteSpace(MajorConstructSpawn.Value)) { ((Component)component).GetComponent<DeathRewards>().bossDropTable = (PickupDropTable)(object)vanilla<ExplicitPickupDropTable>("DLC1/MajorAndMinorConstruct/dtBossMegaConstruct"); ((Component)component).GetComponent<DeathRewards>().logUnlockableDef = LegacyResourcesAPI.Load<UnlockableDef>("UnlockableDefs/Logs.MajorConstructBody"); } component2.baseMaxHealth = Assassin2Health.Value; component2.levelMaxHealth = Assassin2HealthStack.Value; component2.baseDamage = Assassin2Damage.Value; component2.levelDamage = Assassin2DamageStack.Value; component2.baseAttackSpeed = Assassin2AttackSpeed.Value; component2.baseMoveSpeed = Assassin2Speed.Value; component2.baseArmor = Assassin2Armor.Value; if (!string.IsNullOrWhiteSpace(Assassin2Spawn.Value)) { ((Component)component2).gameObject.AddComponent<DeathRewards>().logUnlockableDef = vanilla<UnlockableDef>("DLC1/Assassin2/Logs.Assassin2Body"); } component3.baseMaxHealth = MagmaWormHealth.Value; component3.levelMaxHealth = MagmaWormHealthStack.Value; component3.baseDamage = MagmaWormDamage.Value; component3.levelDamage = MagmaWormDamageStack.Value; component3.baseAttackSpeed = MagmaWormAttackSpeed.Value; component3.baseMoveSpeed = MagmaWormSpeed.Value; component3.baseArmor = MagmaWormArmor.Value; component4.baseMaxHealth = OverloadingWormHealth.Value; component4.levelMaxHealth = OverloadingWormHealthStack.Value; component4.baseDamage = OverloadingWormDamage.Value; component4.levelDamage = OverloadingWormDamageStack.Value; component4.baseAttackSpeed = OverloadingWormAttackSpeed.Value; component4.baseMoveSpeed = OverloadingWormSpeed.Value; component4.baseArmor = OverloadingWormArmor.Value; component5.baseMaxHealth = AcidLarvaHealth.Value; component5.levelMaxHealth = AcidLarvaHealthStack.Value; component5.baseDamage = AcidLarvaDamage.Value; component5.levelDamage = AcidLarvaDamageStack.Value; component5.baseAttackSpeed = AcidLarvaAttackSpeed.Value; component5.baseMoveSpeed = AcidLarvaSpeed.Value; component5.baseArmor = AcidLarvaArmor.Value; component6.baseMaxHealth = AWUHealth.Value; component6.levelMaxHealth = AWUHealthStack.Value; component6.baseDamage = AWUDamage.Value; component6.levelDamage = AWUDamageStack.Value; component6.baseAttackSpeed = AWUAttackSpeed.Value; component6.baseMoveSpeed = AWUSpeed.Value; component6.baseArmor = AWUArmor.Value; component7.baseMaxHealth = AurellioniteHealth.Value; component7.levelMaxHealth = AurellioniteHealthStack.Value; component7.baseDamage = AurellioniteDamage.Value; component7.levelDamage = AurellioniteDamageStack.Value; component7.baseAttackSpeed = AurellioniteAttackSpeed.Value; component7.baseMoveSpeed = AurellioniteSpeed.Value; component7.baseArmor = AurellioniteArmor.Value; component8.baseMaxHealth = ArtifactShellHealth.Value; component8.levelMaxHealth = ArtifactShellHealthStack.Value; component8.baseDamage = ArtifactShellDamage.Value; component8.levelDamage = ArtifactShellDamageStack.Value; component8.baseAttackSpeed = ArtifactShellAttackSpeed.Value; component8.baseArmor = ArtifactShellArmor.Value; if ((Object)(object)val13 != (Object)null) { val13.baseMaxHealth = DireseekerHealth.Value; val13.levelMaxHealth = DireseekerHealthStack.Value; val13.baseDamage = DireseekerDamage.Value; val13.levelDamage = DireseekerDamageStack.Value; val13.baseAttackSpeed = DireseekerAttackSpeed.Value; val13.baseMoveSpeed = DireseekerSpeed.Value; val13.baseArmor = DireseekerArmor.Value; } }); CharacterSpawnCard val2 = vanilla<CharacterSpawnCard>("DLC1/MajorAndMinorConstruct/cscMajorConstruct"); Object.Destroy((Object)(object)((SpawnCard)val2).prefab.GetComponent<SetDontDestroyOnLoad>()); CharacterSpawnCard val3 = vanilla<CharacterSpawnCard>("DLC1/Assassin2/cscAssassin2"); CharacterSpawnCard val4 = vanilla<CharacterSpawnCard>("Base/MagmaWorm/cscMagmaWorm"); CharacterSpawnCard val5 = vanilla<CharacterSpawnCard>("Base/ElectricWorm/cscElectricWorm"); CharacterSpawnCard val6 = vanilla<CharacterSpawnCard>("DLC1/AcidLarva/cscAcidLarva"); ((SpawnCard)val2).directorCreditCost = MajorConstructCost.Value; ((SpawnCard)val3).directorCreditCost = Assassin2Cost.Value; ((SpawnCard)val4).directorCreditCost = MagmaWormCost.Value; ((SpawnCard)val5).directorCreditCost = OverloadingWormCost.Value; ((SpawnCard)val6).directorCreditCost = AcidLarvaCost.Value; DirectorCard card = new DirectorCard { spawnCard = (SpawnCard)(object)val2, selectionWeight = 1, spawnDistance = (MonsterSpawnDistance)0, minimumStageCompletions = MajorConstructMinStage.Value - 1, preventOverhead = true }; DirectorCard card2 = new DirectorCard { spawnCard = (SpawnCard)(object)val3, selectionWeight = 1, spawnDistance = (MonsterSpawnDistance)0, minimumStageCompletions = Assassin2MinStage.Value - 1, preventOverhead = true }; if (EliteMagmaWorm.Value) { enableElite(val4); } if (EliteOverloadingWorm.Value) { enableElite(val5); } if (EliteAWU.Value) { enableElite(vanilla<CharacterSpawnCard>("Base/RoboBallBoss/cscSuperRoboBallBoss")); } if (EliteAurellionite.Value) { enableElite(vanilla<CharacterSpawnCard>("Base/Titan/cscTitanGold")); } if (EliteArtifactShell.Value) { object obj2 = <>c.<>9__120_2; if (obj2 == null) { hook_OnEnter val7 = delegate(orig_OnEnter orig, WaitForIntro self) { orig.Invoke(self); if (((EntityState)self).characterBody.eliteBuffCount == 0) { List<EliteDef> list = new List<EliteDef>(); foreach (EliteDef[] item in CombatDirector.eliteTiers.Where((EliteTierDef x) => RunArtifactManager.instance.IsArtifactEnabled(Artifacts.EliteOnly) || (x.CanSelect((EliteRules)0) && x.costMultiplier < (float)(Run.instance.loopClearCount * 10))).ToList().ConvertAll((EliteTierDef x) => x.eliteTypes)) { EliteDef[] array = item; foreach (EliteDef val11 in array) { if ((Object)(object)val11 != (Object)null && val11.IsAvailable()) { list.Add(val11); } } } EliteDef val12 = Run.instance.spawnRng.NextElementUniform<EliteDef>(list); ((EntityState)self).characterBody.AddBuff(val12.eliteEquipmentDef.passiveBuffDef); } }; <>c.<>9__120_2 = val7; obj2 = (object)val7; } WaitForIntro.OnEnter += (hook_OnEnter)obj2; } if (EliteDireseeker.Value && Mods("com.rob.Direseeker")) { enableDireseeker(); } DirectorCardHolder majorConstructDCH = new DirectorCardHolder { Card = card, MonsterCategory = (MonsterCategory)4 }; DirectorCardHolder assassin2DCH = new DirectorCardHolder { Card = card2, MonsterCategory = (MonsterCategory)2 }; string[] iotalist = listify(MajorConstructSpawn.Value).ToArray(); string[] assassinlist = listify(Assassin2Spawn.Value).ToArray(); Dictionary<string, List<DirectorCardHolder>> manualDCCSAdd = new Dictionary<string, List<DirectorCardHolder>>(); if (!string.IsNullOrWhiteSpace(MajorConstructSpawn.Value)) { Helpers.AddNewMonsterToStagesWhere(majorConstructDCH, false, (Predicate<StageInfo>)((StageInfo info) => iotalist.Contains(info.CustomStageName) || iotalist.Contains(((StageInfo)(ref info)).ToInternalStageName()))); RoR2Application.onLoad = (Action)Delegate.Combine(RoR2Application.onLoad, (Action)delegate { DirectorAPI.AddCard(RoR2Content.mixEnemyMonsterCards, majorConstructDCH); }); addManual("dccsConstructFamily", majorConstructDCH); addManual("dccsOneEyeFamily", majorConstructDCH); } if (!string.IsNullOrWhiteSpace(Assassin2Spawn.Value)) { Helpers.AddNewMonsterToStagesWhere(assassin2DCH, false, (Predicate<StageInfo>)((StageInfo info) => assassinlist.Contains(info.CustomStageName) || assassinlist.Contains(((StageInfo)(ref info)).ToInternalStageName()))); RoR2Application.onLoad = (Action)Delegate.Combine(RoR2Application.onLoad, (Action)delegate { DirectorAPI.AddCard(RoR2Content.mixEnemyMonsterCards, assassin2DCH); }); } if (Mods("PlasmaCore.ForgottenRelics")) { fixBT(); } if (Mods("PlasmaCore.ForgottenRelics", "JaceDaDorito.FBLStage")) { addBTtoFBL(); } ClassicStageInfo.monsterFamilyChance = FamilyEventChance.Value; ClassicStageInfo.RebuildCards += (Manipulator)delegate(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_005b: Unknown result type (might be due to invalid IL or missing references) ILCursor val9 = new ILCursor(il); ILLabel val10 = default(ILLabel); val9.GotoNext((MoveType)1, new Func<Instruction, bool>[2] { (Instruction x) => ILPatternMatchingExt.MatchLdloc(x, 7), (Instruction x) => ILPatternMatchingExt.MatchBrfalse(x, ref val10) }); val9.Emit(OpCodes.Ldarg_0); val9.EmitDelegate<Action<ClassicStageInfo>>((Action<ClassicStageInfo>)delegate(ClassicStageInfo self) { HandleDccs(self.modifiableMonsterCategories); }); }; string wispFamily = (string.IsNullOrWhiteSpace(AltWispFamily.Value) ? "dccsWispFamily" : "dccsAltWispFamily"); if (EnableFamilyChange.Value) { if (Mods("HIFU.LunarConstruct")) { addLunarConstruct(); } if (Mods("com.plasmacore.PlasmaCoreSpikestripContent")) { addSigma(); } if (Mods("com.groovesalad.GrooveSaladSpikestripContent") && !string.IsNullOrWhiteSpace(TarFamily.Value)) { addPot(); } if (Mods("PlasmaCore.ForgottenRelics")) { addFR(); } LanguageAPI.Add("FAMILY_BELL", "<style=cWorldEvent>[WARNING] The clock is ticking...</style>"); if (Mods("com.TheBestAssociatedLargelyLudicrousSillyheadGroup.GOTCE")) { addGOTCE(); } LanguageAPI.Add("FAMILY_BALLS", "<style=cWorldEvent>[WARNING] These nuts... gottem</style>"); LanguageAPI.Add("FAMILY_VOIDLING", "<style=cWorldEvent>[WARNING] Survivors of the Void is worth 45 Dollars...</style>"); if (RemoveLarvaFamily.Value) { onRebuildCards += delegate(ClassicStageInfo self) { if (self.monsterDccsPool.poolCategories.Length >= 2) { self.monsterDccsPool.poolCategories[1].includedIfConditionsMet = self.monsterDccsPool.poolCategories[1].includedIfConditionsMet.Where((ConditionalPoolEntry x) => ((Object)((PoolEntry)x).dccs).name != "dccsAcidLarvaFamily").ToArray(); } }; } RoR2Application.onLoad = (Action)Delegate.Combine(RoR2Application.onLoad, (Action)delegate { FireSuperDelayKnockup.shieldDuration = AWUShieldTime.Value; }); if (DireseekerDropAtPlace.Value && Mods("com.rob.Direseeker")) { Harmony.PatchAll(typeof(PatchDireseeker)); } if (Mods("com.Moffein.ClayMen") && !string.IsNullOrWhiteSpace(TarFamily.Value)) { addClaymen(); } if (Mods("com.Moffein.AncientWisp")) { addAncientWisp(); } if (Mods("com.Moffein.ArchaicWisp")) { addArchaicWisp(); } AddFamilyToStages(vanilla<FamilyDirectorCardCategorySelection>("Base/Common/dccsParentFamily"), new List<string> { "itskymeadow", "skymeadow", "forgottenhaven", "slumberingsatellite", "artifactworld" }); RoR2Application.onLoad = (Action)Delegate.Combine(RoR2Application.onLoad, (Action)delegate { if (Mods("com.themysticsword.risingtides")) { addMushroomFamily(); } }); AddFamilyToStages(vanilla<FamilyDirectorCardCategorySelection>("DLC1/Common/dccsConstructFamily"), new List<string> { "itskymeadow", "skymeadow", "FBLScene", "forgottenhaven", "golemplains", "golemplains2" }); AddFamilyToStages(vanilla<FamilyDirectorCardCategorySelection>("Base/Common/dccsLemurianFamily"), new List<string> { "drybasin", "goldshores" }); AddFamilyToStages(vanilla<FamilyDirectorCardCategorySelection>("Base/Common/dccsGolemFamily"), new List<string> { "forgottenhaven" }); AddFamilyToStages(vanilla<FamilyDirectorCardCategorySelection>("Base/Common/dccsGolemFamilyNature"), new List<string> { "goldshores", "FBLScene" }); addManual("dccsGupFamily", new DirectorCardHolder { Card = GetDirectorCard(vanilla<CharacterSpawnCard>("DLC1/Gup/cscGeepBody")), MonsterCategory = (MonsterCategory)3 }); addManual("dccsGupFamily", new DirectorCardHolder { Card = GetDirectorCard(vanilla<CharacterSpawnCard>("DLC1/Gup/cscGipBody")), MonsterCategory = (MonsterCategory)2 }); } if (!string.IsNullOrWhiteSpace(TarFamily.Value)) { AddFamilyEvent("Tar", new List<DirectorCardHolder> { new DirectorCardHolder { Card = GetDirectorCard(vanilla<CharacterSpawnCard>("Base/ClayBoss/cscClayBoss")), MonsterCategory = (MonsterCategory)4 }, new DirectorCardHolder { Card = GetDirectorCard(vanilla<CharacterSpawnCard>("Base/ClayBruiser/cscClayBruiser")), MonsterCategory = (MonsterCategory)3 }, new DirectorCardHolder { Card = GetDirectorCard(vanilla<CharacterSpawnCard>("DLC1/ClayGrenadier/cscClayGrenadier")), MonsterCategory = (MonsterCategory)3 } }, listify(TarFamily.Value)); } LanguageAPI.Add("FAMILY_TAR", "<style=cWorldEvent>[WARNING] The ground oozes with tar...</style>"); if (!string.IsNullOrWhiteSpace(AltWispFamily.Value)) { AddFamilyEvent("AltWisp", new List<DirectorCardHolder> { new DirectorCardHolder { Card = GetDirectorCard(vanilla<CharacterSpawnCard>("Base/Wisp/cscLesserWisp")), MonsterCategory = (MonsterCategory)2 } }, listify(AltWispFamily.Value)); } LanguageAPI.Add("FAMILY_ALTWISP", "<style=cWorldEvent>[WARNING] The air begins to burn,</style> <style=cDeath>but...</style>"); if (!string.IsNullOrWhiteSpace(OneEyeFamily.Value)) { AddFamilyEvent("OneEye", new List<DirectorCardHolder> { new DirectorCardHolder { Card = GetDirectorCard(vanilla<CharacterSpawnCard>("DLC1/MajorAndMinorConstruct/cscMinorConstruct")), MonsterCategory = (MonsterCategory)2 }, new DirectorCardHolder { Card = GetDirectorCard(vanilla<CharacterSpawnCard>("Base/Imp/cscImp")), MonsterCategory = (MonsterCategory)2 }, new DirectorCardHolder { Card = GetDirectorCard(vanilla<CharacterSpawnCard>("Base/RoboBallBoss/cscRoboBallMini")), MonsterCategory = (MonsterCategory)2 }, new DirectorCardHolder { Card = GetDirectorCard(vanilla<CharacterSpawnCard>("Base/Golem/cscGolem")), MonsterCategory = (MonsterCategory)3 }, new DirectorCardHolder { Card = GetDirectorCard(vanilla<CharacterSpawnCard>("Base/Parent/cscParent")), MonsterCategory = (MonsterCategory)3 }, new DirectorCardHolder { Card = GetDirectorCard(vanilla<CharacterSpawnCard>("Base/Titan/cscTitanGolemPlains")), MonsterCategory = (MonsterCategory)4 }, new DirectorCardHolder { Card = GetDirectorCard(vanilla<CharacterSpawnCard>("Base/RoboBallBoss/cscRoboBallBoss")), MonsterCategory = (MonsterCategory)4 }, new DirectorCardHolder { Card = GetDirectorCard(vanilla<CharacterSpawnCard>("DLC1/MajorAndMinorConstruct/cscMegaConstruct")), MonsterCategory = (MonsterCategory)4 }, new DirectorCardHolder { Card = GetDirectorCard(vanilla<CharacterSpawnCard>("DLC1/VoidMegaCrab/cscVoidMegaCrab")), MonsterCategory = (MonsterCategory)4 } }, listify(OneEyeFamily.Value)); } LanguageAPI.Add("FAMILY_ONEEYE", "<style=cWorldEvent>[WARNING] Hungering gaze focuses around you...</style>"); if (!string.IsNullOrWhiteSpace(BlindFamily.Value)) { DirectorCard directorCard = GetDirectorCard(val4); DirectorCard directorCard2 = GetDirectorCard(val5); directorCard.spawnDistance = (MonsterSpawnDistance)2; directorCard2.spawnDistance = (MonsterSpawnDistance)2; AddFamilyEvent("Blind", new List<DirectorCardHolder> { new DirectorCardHolder { Card = GetDirectorCard(vanilla<CharacterSpawnCard>("DLC1/Vermin/cscVermin")), MonsterCategory = (MonsterCategory)2 }, new DirectorCardHolder { Card = GetDirectorCard(vanilla<CharacterSpawnCard>("Base/HermitCrab/cscHermitCrab")), MonsterCategory = (MonsterCategory)2 }, new DirectorCardHolder { Card = GetDirectorCard(vanilla<CharacterSpawnCard>("DLC1/FlyingVermin/cscFlyingVermin")), MonsterCategory = (MonsterCategory)2 }, new DirectorCardHolder { Card = GetDirectorCard(vanilla<CharacterSpawnCard>("Base/Bison/cscBison")), MonsterCategory = (MonsterCategory)3 }, new DirectorCardHolder { Card = directorCard, MonsterCategory = (MonsterCategory)4 }, new DirectorCardHolder { Card = directorCard2, MonsterCategory = (MonsterCategory)4 } }, listify(BlindFamily.Value)); } LanguageAPI.Add("FAMILY_BLIND", "<style=cWorldEvent>[WARNING] The sightless erupts from the ground...</style>"); object obj3 = <>c.<>9__120_26; if (obj3 == null) { hook_RebuildCards val8 = delegate(orig_RebuildCards orig, ClassicStageInfo self, DirectorCardCategorySelection a, DirectorCardCategorySelection b) { if (Main.onRebuildCards != null) { Main.onRebuildCards(self); } orig.Invoke(self, a, b); }; <>c.<>9__120_26 = val8; obj3 = (object)val8; } ClassicStageInfo.RebuildCards += (hook_RebuildCards)obj3; void HandleDccs(DirectorCardCategorySelection dccs) { //IL_00bb: Unknown result type (might be due to invalid IL or missing references) foreach (string key in manualDCCSAdd.Keys) { if (((Object)dccs).name.Contains(key)) { foreach (DirectorCardHolder v2 in manualDCCSAdd[key]) { Log.LogDebug((object)("Adding " + ((Object)v2.Card.spawnCard).name + " to " + key)); if (!dccs.categories.Any((Category x) => x.name == Helpers.GetVanillaMonsterCategoryName(v2.MonsterCategory))) { dccs.AddCategory(Helpers.GetVanillaMonsterCategoryName(v2.MonsterCategory), 1f); } DirectorAPI.AddCard(dccs, v2); } } } } void addAncientWisp() { addManual(wispFamily, AWContent.AncientWispCard); } void addArchaicWisp() { addManual(wispFamily, ArchaicWispContent.ArchaicWispCard); } static void addBTtoFBL() { //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Expected O, but got Unknown if (!VF2ConfigManager.disableBrassMonolith.Value) { Helpers.AddNewMonsterToStage(new DirectorCardHolder { Card = GetDirectorCard(VF2ContentPackProvider.cscBrassMonolith), MonsterCategory = (MonsterCategory)4 }, false, (Stage)1, "FBLScene"); } } void addClaymen() { addManual("dccsTarFamily", ClayMenContent.ClayManCard); } void addFR() { //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Expected O, but got Unknown //IL_005a: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0073: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Expected O, but got Unknown //IL_0084: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_0092: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Expected O, but got Unknown //IL_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: 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_00b1: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Expected O, but got Unknown //IL_0107: Unknown result type (might be due to invalid IL or missing references) //IL_010c: Unknown result type (might be due to invalid IL or missing references) //IL_0114: Unknown result type (might be due to invalid IL or missing references) //IL_0116: Unknown result type (might be due to invalid IL or missing references) //IL_0120: Expected O, but got Unknown //IL_0122: Unknown result type (might be due to invalid IL or missing references) //IL_0127: Unknown result type (might be due to invalid IL or missing references) //IL_0137: Unknown result type (might be due to invalid IL or missing references) //IL_0139: Unknown result type (might be due to invalid IL or missing references) //IL_0143: Expected O, but got Unknown if (!VF2ConfigManager.disableFrostWisp.Value) { addManual(wispFamily, new DirectorCardHolder { Card = GetDirectorCard(VF2ContentPackProvider.cscFrostWisp), MonsterCategory = (MonsterCategory)3 }); } if (!VF2ConfigManager.disableCoilGolem.Value) { DirectorCard directorCard3 = GetDirectorCard(VF2ContentPackProvider.cscCoilGolem); directorCard3.spawnDistance = (MonsterSpawnDistance)2; addManual("dccsGolemFamily", new DirectorCardHolder { Card = directorCard3, MonsterCategory = (MonsterCategory)3 }); addManual("dccsBlindFamily", new DirectorCardHolder { Card = directorCard3, MonsterCategory = (MonsterCategory)3 }); addManual("fdccsGolemSandy", new DirectorCardHolder { Card = directorCard3, MonsterCategory = (MonsterCategory)3 }); } if (!VF2ConfigManager.disableBrassMonolith.Value && !string.IsNullOrWhiteSpace(BellFamily.Value)) { DirectorCard directorCard4 = GetDirectorCard(vanilla<CharacterSpawnCard>("Base/Bell/cscBell")); directorCard4.preventOverhead = true; AddFamilyEvent("Bell", new List<DirectorCardHolder> { new DirectorCardHolder { Card = directorCard4, MonsterCategory = (MonsterCategory)3 }, new DirectorCardHolder { Card = GetDirectorCard(VF2ContentPackProvider.cscBrassMonolith), MonsterCategory = (MonsterCategory)3 } }, listify(BellFamily.Value)); } } void addGOTCE() { //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Expected O, but got Unknown //IL_004d: Unknown result type (might be due to invalid IL or missing references) //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Unknown result type (might be due to invalid IL or missing references) //IL_0073: Expected O, but got Unknown //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Unknown result type (might be due to invalid IL or missing references) //IL_009b: Expected O, but got Unknown //IL_009d: 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_00b7: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Expected O, but got Unknown //IL_00c5: Unknown result type (might be due to invalid IL or missing references) //IL_00ca: Unknown result type (might be due to invalid IL or missing references) //IL_00da: 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_00e6: Expected O, but got Unknown //IL_00e8: Unknown result type (might be due to invalid IL or missing references) //IL_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_00fd: Unknown result type (might be due to invalid IL or missing references) //IL_00ff: Unknown result type (might be due to invalid IL or missing references) //IL_0109: Expected O, but got Unknown //IL_01ee: Unknown result type (might be due to invalid IL or missing references) //IL_01f3: 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_0205: Unknown result type (might be due to invalid IL or missing references) //IL_020f: Expected O, but got Unknown //IL_0216: Unknown result type (might be due to invalid IL or missing references) //IL_021b: Unknown result type (might be due to invalid IL or missing references) //IL_022b: Unknown result type (might be due to invalid IL or missing references) //IL_022d: Unknown result type (might be due to invalid IL or missing references) //IL_0237: Expected O, but got Unknown //IL_023e: Unknown result type (might be due to invalid IL or missing references) //IL_0243: Unknown result type (might be due to invalid IL or missing references) //IL_0253: Unknown result type (might be due to invalid IL or missing references) //IL_0255: Unknown result type (might be due to invalid IL or missing references) //IL_025f: Expected O, but got Unknown //IL_0266: Unknown result type (might be due to invalid IL or missing references) //IL_026b: Unknown result type (might be due to invalid IL or missing references) //IL_027b: Unknown result type (might be due to invalid IL or missing references) //IL_027d: Unknown result type (might be due to invalid IL or missing references) //IL_0287: Expected O, but got Unknown //IL_028e: Unknown result type (might be due to invalid IL or missing references) //IL_0293: Unknown result type (might be due to invalid IL or missing references) //IL_02a3: Unknown result type (might be due to invalid IL or missing references) //IL_02a5: Unknown result type (might be due to invalid IL or missing references) //IL_02af: Expected O, but got Unknown //IL_02b6: Unknown result type (might be due to invalid IL or missing references) //IL_02bb: Unknown result type (might be due to invalid IL or missing references) //IL_02d0: Unknown result type (might be due to invalid IL or missing references) //IL_02d2: Unknown result type (might be due to invalid IL or missing references) //IL_02dc: Expected O, but got Unknown //IL_02e3: Unknown result type (might be due to invalid IL or missing references) //IL_02e8: Unknown result type (might be due to invalid IL or missing references) //IL_02f8: Unknown result type (might be due to invalid IL or missing references) //IL_02fa: Unknown result type (might be due to invalid IL or missing references) //IL_0304: Expected O, but got Unknown //IL_0143: Unknown result type (might be due to invalid IL or missing references) //IL_0148: Unknown result type (might be due to invalid IL or missing references) //IL_0158: Unknown result type (might be due to invalid IL or missing references) //IL_015a: Unknown result type (might be due to invalid IL or missing references) //IL_0164: Expected O, but got Unknown //IL_0166: Unknown result type (might be due to invalid IL or missing references) //IL_016b: Unknown result type (might be due to invalid IL or missing references) //IL_017b: Unknown result type (might be due to invalid IL or missing references) //IL_017d: Unknown result type (might be due to invalid IL or missing references) //IL_0187: Expected O, but got Unknown //IL_0189: Unknown result type (might be due to invalid IL or missing references) //IL_018e: Unknown result type (might be due to invalid IL or missing references) //IL_019e: Unknown result type (might be due to invalid IL or missing references) //IL_01a0: Unknown result type (might be due to invalid IL or missing references) //IL_01aa: Expected O, but got Unknown //IL_01ac: Unknown result type (might be due to invalid IL or missing references) //IL_01b1: Unknown result type (might be due to invalid IL or missing references) //IL_01c6: Unknown result type (might be due to invalid IL or missing references) //IL_01c8: Unknown result type (might be due to invalid IL or missing references) //IL_01d2: Expected O, but got Unknown if (!string.IsNullOrWhiteSpace(BallsFamily.Value)) { AddFamilyEvent("Balls", new List<DirectorCardHolder> { new DirectorCardHolder { Card = GetDirectorCard(vanilla<CharacterSpawnCard>("Base/RoboBallBoss/cscRoboBallBoss")), MonsterCategory = (MonsterCategory)4 }, new DirectorCardHolder { Card = GetDirectorCard(vanilla<CharacterSpawnCard>("Base/RoboBallBoss/cscRoboBallMini")), MonsterCategory = (MonsterCategory)2 }, new DirectorCardHolder { Card = GetDirectorCard(vanilla<CharacterSpawnCard>("Base/Jellyfish/cscJellyfish")), MonsterCategory = (MonsterCategory)2 }, new DirectorCardHolder { Card = GetDirectorCard(vanilla<CharacterSpawnCard>("Base/LunarExploder/cscLunarExploder")), MonsterCategory = (MonsterCategory)2 }, new DirectorCardHolder { Card = ((EnemyBase)EnemyBase<IonSurger>.Instance).card, MonsterCategory = (MonsterCategory)3 }, new DirectorCardHolder { Card = ((EnemyBase)EnemyBase<The>.Instance).card, MonsterCategory = (MonsterCategory)2 } }, listify(BallsFamily.Value)); } if (!string.IsNullOrWhiteSpace(VoidlingFamily.Value)) { AddFamilyEvent("Voidling", new List<DirectorCardHolder> { new DirectorCardHolder { Card = ((EnemyBase)EnemyBase<Voidlinglinglingling>.Instance).card, MonsterCategory = (MonsterCategory)2 }, new DirectorCardHolder { Card = ((EnemyBase)EnemyBase<Voidlinglingling>.Instance).card, MonsterCategory = (MonsterCategory)3 }, new DirectorCardHolder { Card = ((EnemyBase)EnemyBase<Voidlingling>.Instance).card, MonsterCategory = (MonsterCategory)4 }, new DirectorCardHolder { Card = GetDirectorCard(vanilla<CharacterSpawnCard>("DLC1/VoidRaidCrab/cscVoidRaidCrab")), MonsterCategory = (MonsterCategory)4 } }, listify(VoidlingFamily.Value)); } addManual("dccsBlindFamily", new DirectorCardHolder { Card = ((EnemyBase)EnemyBase<LivingSuppressiveFire>.Instance).card, MonsterCategory = (MonsterCategory)2 }); addManual("dccsBlindFamily", new DirectorCardHolder { Card = ((EnemyBase)EnemyBase<CrackedPest>.Instance).card, MonsterCategory = (MonsterCategory)3 }); addManual("dccsBlindFamily", new DirectorCardHolder { Card = ((EnemyBase)EnemyBase<CrackedVermin>.Instance).card, MonsterCategory = (MonsterCategory)3 }); addManual("dccsBlindFamily", new DirectorCardHolder { Card = ((EnemyBase)EnemyBase<GummyBeetleQueen>.Instance).card, MonsterCategory = (MonsterCategory)4 }); addManual("dccsOneEyeFamily", new DirectorCardHolder { Card = ((EnemyBase)EnemyBase<Provi>.Instance).card, MonsterCategory = (MonsterCategory)2 }); addManual("dccsOneEyeFamily", new DirectorCardHolder { Card = GetDirectorCard(vanilla<CharacterSpawnCard>("Base/Brother/cscBrother")), MonsterCategory = (MonsterCategory)4 }); addManual("dccsBellFamily", new DirectorCardHolder { Card = ((EnemyBase)EnemyBase<LivingSuppressiveFire>.Instance).card, MonsterCategory = (MonsterCategory)2 }); } void addLunarConstruct() { addManual("dccsLunarFamily", ((EnemyBase)EnemyBase<LunarConstruct>.Instance).cardHolder); addManual("dccsOneEyeFamily", ((EnemyBase)EnemyBase<LunarConstruct>.Instance).cardHolder); } void addManual(string k, DirectorCardHolder v) { if (!manualDCCSAdd.ContainsKey(k)) { manualDCCSAdd.Add(k, new List<DirectorCardHolder>()); } manualDCCSAdd[k].Add(v); } void addMushroomFamily() { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Expected O, but got Unknown addManual("dccsMushroomFamily", new DirectorCardHolder { Card = GetDirectorCard(BaseCharacterMaster.characterSpawnCards["RisingTides_MushSupporter"]), MonsterCategory = (MonsterCategory)3 }); AddFamilyToStages(vanilla<FamilyDirectorCardCategorySelection>("Base/Common/dccsMushroomFamily"), new List<string> { "skymeadow", "itskymeadow", "rootjungle", "drybasin", "goldshores", "FBLScene", "sulfurpools" }); } void addPot() { //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0031: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Expected O, but got Unknown if (((SpikestripContentBase)SpikestripContentBase<PotMobile>.instance).IsEnabled) { addManual("dccsTarFamily", new DirectorCardHolder { Card = ((SpikestripMonsterBase<PotMobile>)(object)SpikestripContentBase<PotMobile>.instance).DirectorCard, MonsterCategory = (MonsterCategory)2 }); } } void addSigma() { //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0031: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Expected O, but got Unknown if (((SpikestripContentBase)SpikestripContentBase<SigmaConstruct>.instance).IsEnabled) { addManual("dccsConstructFamily", new DirectorCardHolder { Card = ((SpikestripMonsterBase<SigmaConstruct>)(object)SpikestripContentBase<SigmaConstruct>.instance).DirectorCard, MonsterCategory = (MonsterCategory)3 }); } } static void enableDireseeker() { enableElite(SpawnCards.bossSpawnCard); } static void enableElite(CharacterSpawnCard csc) { //IL_000a: Unknown result type (might be due to invalid IL or missing references) csc.noElites = false; ((SpawnCard)csc).eliteRules = (EliteRules)0; } static void fixBT() { ((SpawnCard)VF2ContentPackProvider.cscBrassMonolith).prefab = VF2ContentPackProvider.masterMonsterBrassMonolith; } } public static FamilyDirectorCardCategorySelection AddFamilyEvent(string name, List<DirectorCardHolder> list, List<string> stages) { //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Unknown result type (might be due to invalid IL or missing references) //IL_006b: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_009f: Unknown result type (might be due to invalid IL or missing references) //IL_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: 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_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_00df: Unknown result type (might be due to invalid IL or missing references) //IL_010a: Unknown result type (might be due to invalid IL or missing references) //IL_010b: Unknown result type (might be due to invalid IL or missing references) FamilyDirectorCardCategorySelection val = ScriptableObject.CreateInstance<FamilyDirectorCardCategorySelection>(); ((Object)val).name = "dccs" + name + "Family"; val.selectionChatString = "FAMILY_" + name.ToUpper(); ((DirectorCardCategorySelection)val).categories = (Category[])(object)new Category[4] { new Category { name = Helpers.GetVanillaMonsterCategoryName((MonsterCategory)2), cards = Array.Empty<DirectorCard>(), selectionWeight = 4f }, new Category { name = Helpers.GetVanillaMonsterCategoryName((MonsterCategory)3), cards = Array.Empty<DirectorCard>(), selectionWeight = 2f }, new Category { name = Helpers.GetVanillaMonsterCategoryName((MonsterCategory)4), cards = (DirectorCard[])(object)new DirectorCard[0], selectionWeight = 2f }, new Category { name = Helpers.GetVanillaMonsterCategoryName((MonsterCategory)5), cards = Array.Empty<DirectorCard>(), selectionWeight = 1f } }; foreach (DirectorCardHolder item in list) { Log.LogDebug((object)("Adding " + ((Object)item.Card.spawnCard).name + " to Family " + name)); DirectorAPI.AddCard((DirectorCardCategorySelection)(object)val, item); } ((DirectorCardCategorySelection)val).categories = ((DirectorCardCategorySelection)val).categories.Where((Category x) => x.cards.Length != 0).ToArray(); AddFamilyToStages(val, stages); customFamilies.Add((DirectorCardCategorySelection)(object)val); return val; } public static void AddFamilyToStages(FamilyDirectorCardCategorySelection dccs, List<string> stages) { onRebuildCards += delegate(ClassicStageInfo self) { //IL_0094: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Expected O, but got Unknown //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Expected O, but got Unknown if (stages.Contains(SceneCatalog.mostRecentSceneDef.cachedName)) { if (self.monsterDccsPool.poolCategories.Length == 1) { ref Category[] poolCategories = ref self.monsterDccsPool.poolCategories; Category val = new Category { name = MonsterPoolCategories.Family, categoryWeight = 1f, alwaysIncluded = Array.Empty<PoolEntry>(), includedIfConditionsMet = Array.Empty<ConditionalPoolEntry>(), includedIfNoConditionsMet = Array.Empty<PoolEntry>() }; ArrayUtils.ArrayAppend<Category>(ref poolCategories, ref val); } ref ConditionalPoolEntry[] includedIfConditionsMet = ref self.monsterDccsPool.poolCategories[1].includedIfConditionsMet; ConditionalPoolEntry val2 = new ConditionalPoolEntry(); val2.requiredExpansions = (ExpansionDef[])(object)new ExpansionDef[1] { DLC1 }; ((PoolEntry)val2).dccs = (DirectorCardCategorySelection)(object)dccs; ((PoolEntry)val2).weight = 1f; ArrayUtils.ArrayAppend<ConditionalPoolEntry>(ref includedIfConditionsMet, ref val2); } }; } public static DirectorCard GetDirectorCard(CharacterSpawnCard csc) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Expected O, but got Unknown return new DirectorCard { spawnCard = (SpawnCard)(object)csc, selectionWeight = 1, preventOverhead = false, minimumStageCompletions = 0, spawnDistance = (MonsterSpawnDistance)0 }; } public static bool Mods(params string[] arr) { for (int i = 0; i < arr.Length; i++) { if (!Chainloader.PluginInfos.ContainsKey(arr[i])) { return false; } } return true; } public static List<string> listify(string list) { return list.Split(',').ToList().ConvertAll((string x) => x.Trim()); } public static Dictionary<string, string> pairify(string list) { Dictionary<string, string> dictionary = new Dictionary<string, string>(); foreach (string item in list.Split(',').ToList()) { List<string> list2 = item.Split('-').ToList().ConvertAll((string x) => x.Trim()); dictionary.Add(list2[0], list2[1]); } return dictionary; } public static T vanilla<T>(string path) { //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) return Addressables.LoadAssetAsync<T>((object)("RoR2/" + path + ".asset")).WaitForCompletion(); } } [HarmonyPatch(typeof(Listening), "FixedUpdate")] public class PatchDireseeker { public static void Postfix(Listening __instance) { //IL_004a: Unknown result type (might be due to invalid IL or missing references) if (((EntityState)__instance).gameObject.GetComponent<CombatSquad>().membersList.Count != 0) { ((EntityState)__instance).transform.Find("DropPosition").position = ((EntityState)__instance).gameObject.GetComponent<CombatSquad>().membersList[0].GetBody().corePosition; } } } public class Reworks { [Serializable] [CompilerGenerated] private sealed class <>c { public static readonly <>c <>9 = new <>c(); public static hook_FixedUpdate <>9__1_0; public static hook_OnEnter <>9__1_2; public static Action<DamageReport> <>9__1_4; public static Action <>9__2_0; public static Action<DamageReport> <>9__2_1; public static hook_HandleSlash <>9__2_2; public static Func<Instruction, bool> <>9__2_6; public static Func<Instruction, bool> <>9__2_7; public static Action<OverlapAttack> <>9__2_8; public static Func<Instruction, bool> <>9__2_9; public static Manipulator <>9__2_3; public static hook_OnEnter <>9__2_4; public static Func<Instruction, bool> <>9__2_10; public static Func<Ray, GenericProjectileBaseState, Ray> <>9__2_11; public static Manipulator <>9__2_5; internal void <IotaConstruct>b__1_0(orig_FixedUpdate orig, GenericCharacterDeath self) { orig.Invoke(self); if (Main.MajorConstructDeathTimer.Value >= 0f && self is Death && !(((EntityState)self).fixedAge <= Main.MajorConstructDeathTimer.Value) && NetworkServer.active) { self.DestroyBodyAsapServer(); } } internal void <IotaConstruct>b__1_2(orig_OnEnter orig, FireLaser self) { orig.Invoke(self); if (((Object)((EntityState)self).characterBody).name.Contains("MajorConstruct")) { ((FireBeam)self).maxDistance = Main.MajorConstructBeamDistance.Value; self.aimMaxSpeed = Main.MajorConstructAimSpeed.Value; } } internal void <IotaConstruct>b__1_4(DamageReport report) { //IL_006b: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) if (spawnedConstructs.ContainsKey(report.victimBody)) { foreach (GameObject item in spawnedConstructs[report.victimBody]) { if (item == null) { continue; } CharacterMaster component = item.GetComponent<CharacterMaster>(); if (component == null) { continue; } GameObject bodyInstanceObject = component.bodyInstanceObject; if (bodyInstanceObject != null) { HealthComponent component2 = bodyInstanceObject.GetComponent<HealthComponent>(); if (component2 != null) { component2.Suicide(((Component)report.attackerBody).gameObject, (GameObject)null, default(DamageTypeCombo)); } } } } spawnedConstructs.Remove(report.victimBody); } internal void <Assassin2>b__2_0() { //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_00c9: Unknown result type (might be due to invalid IL or missing references) ChargeDash.baseDuration = Main.Assassin2DashDuration.Value - 1f; DashStrike.slashDuration = Main.Assassin2SlashDuration.Value; DashStrike.damageCoefficient = Main.Assassin2SlashDamage.Value; DashStrike.forceMagnitude = Main.Assassin2SlashKnockback.Value; DashStrike.maxSlashDistance = Main.Assassin2SlashReach.Value; Hide.hiddenDuration = Main.Assassin2InvisDuration.Value; Hide.fullDuration = Main.Assassin2InvisDuration.Value + Main.Assassin2InvisEndlag.Value; AISkillDriver[] components = MasterCatalog.FindMasterPrefab("Assassin2Master").GetComponents<AISkillDriver>(); components[1].maxDistance = 30f; components[1].activationRequiresTargetLoS = true; components[1].activationRequiresAimTargetLoS = true; components[1].selectionRequiresAimTarget = true; components[1].activationRequiresAimConfirmation = true; components[2].aimType = (AimType)2; components[2].movementType = (MovementType)2; components[3].shouldSprint = true; } internal void <Assassin2>b__2_1(DamageReport report) { if (!(Main.Assassin2SlashExpose.Value > 0f)) { return; } bool? obj; if (report == null) { obj = null; } else { CharacterBody attackerBody = report.attackerBody; obj = ((attackerBody == null) ? null : ((Object)attackerBody).name?.Contains("Assassin2")); } bool? flag = obj; if (flag.GetValueOrDefault() && report != null) { CharacterBody victimBody = report.victimBody; if (victimBody != null) { victimBody.AddTimedBuff(Buffs.DeathMark, Main.Assassin2SlashExpose.Value); } } } internal void <Assassin2>b__2_2(orig_HandleSlash orig, DashStrike self, int hash, string a, string b) { if ((self.slashCount == 0 && Main.Assassin2Slash1.Value) || (self.slashCount == 1 && Main.Assassin2Slash2.Value)) { orig.Invoke(self, hash, a, b); } else { self.slashCount++; } } internal void <Assassin2>b__2_3(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_005a: Unknown result type (might be due to invalid IL or missing references) ILCursor val = new ILCursor(il); val.GotoNext(new Func<Instruction, bool>[2] { (Instruction x) => ILPatternMatchingExt.MatchLdnull(x), (Instruction x) => ILPatternMatchingExt.MatchCallOrCallvirt<OverlapAttack>(x, "Fire") }); val.Emit(OpCodes.Dup); val.EmitDelegate<Action<OverlapAttack>>((Action<OverlapAttack>)delegate(OverlapAttack oa) { //IL_0018: 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) for (int i = 0; i < oa.hitBoxGroup.hitBoxes.Length; i++) { Transform transform = ((Component)oa.hitBoxGroup.hitBoxes[i]).transform; transform.localScale *= Main.Assassin2SlashSize.Value; } }); if (!Main.Assassin2SlashMultihit.Value) { val.GotoNext(new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchRet(x) }); val.Remove(); } } internal bool <Assassin2>b__2_6(Instruction x) { return ILPatternMatchingExt.MatchLdnull(x); } internal bool <Assassin2>b__2_7(Instruction x) { return ILPatternMatchingExt.MatchCallOrCallvirt<OverlapAttack>(x, "Fire"); } internal void <Assassin2>b__2_8(OverlapAttack oa) { //IL_0018: 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) for (int i = 0; i < oa.hitBoxGroup.hitBoxes.Length; i++) { Transform transform = ((Component)oa.hitBoxGroup.hitBoxes[i]).transform; transform.localScale *= Main.Assassin2SlashSize.Value; } } internal bool <Assassin2>b__2_9(Instruction x) { return ILPatternMatchingExt.MatchRet(x); } internal void <Assassin2>b__2_4(orig_OnEnter orig, ThrowShuriken self) { orig.Invoke(self); ((GenericProjectileBaseState)self).projectilePrefab.GetComponent<SphereCollider>().radius = 0.2f * Main.Assassin2ShurikenSize.Value; } internal void <Assassin2>b__2_5(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_0038: Unknown result type (might be due to invalid IL or missing references) ILCursor val = new ILCursor(il); val.GotoNext(new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchStloc(x, 0) }); val.Emit(OpCodes.Ldarg_0); val.EmitDelegate<Func<Ray, GenericProjectileBaseState, Ray>>((Func<Ray, GenericProjectileBaseState, Ray>)delegate(Ray orig, GenericProjectileBaseState self) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) <>c__DisplayClass2_0 <>c__DisplayClass2_ = default(<>c__DisplayClass2_0); <>c__DisplayClass2_.orig = orig; <>c__DisplayClass2_.self = self; return (<>c__DisplayClass2_.self is ThrowShuriken && Main.Mods("com.Moffein.AccurateEnemies")) ? <Assassin2>g__handleAccurate|2_12(ref <>c__DisplayClass2_) : <>c__DisplayClass2_.orig; }); } internal bool <Assassin2>b__2_10(Instruction x) { return ILPatternMatchingExt.MatchStloc(x, 0); } internal Ray <Assassin2>b__2_11(Ray orig, GenericProjectileBaseState self) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) <>c__DisplayClass2_0 <>c__DisplayClass2_ = default(<>c__DisplayClass2_0); <>c__DisplayClass2_.orig = orig; <>c__DisplayClass2_.self = self; if (<>c__DisplayClass2_.self is ThrowShuriken && Main.Mods("com.Moffein.AccurateEnemies")) { return <Assassin2>g__handleAccurate|2_12(ref <>c__DisplayClass2_); } return <>c__DisplayClass2_.orig; } } [StructLayout(LayoutKind.Auto)] [CompilerGenerated] private struct <>c__DisplayClass2_0 { public Ray orig; public GenericProjectileBaseState self; } public static Dictionary<CharacterBody, List<GameObject>> spawnedConstructs = new Dictionary<CharacterBody, List<GameObject>>(); public static void IotaConstruct() { //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Expected O, but got Unknown //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00c2: Expected O, but got Unknown //IL_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Expected O, but got Unknown object obj = <>c.<>9__1_0; if (obj == null) { hook_FixedUpdate val = delegate(orig_FixedUpdate orig, GenericCharacterDeath self) { orig.Invoke(self); if (Main.MajorConstructDeathTimer.Value >= 0f && self is Death && !(((EntityState)self).fixedAge <= Main.MajorConstructDeathTimer.Value) && NetworkServer.active) { self.DestroyBodyAsapServer(); } }; <>c.<>9__1_0 = val; obj = (object)val; } GenericCharacterDeath.FixedUpdate += (hook_FixedUpdate)obj; string constructToSpawn = (Main.MajorConstructSpawnSigmaInstead.Value ? "SigmaConstructBody" : "MinorConstructBody"); CharacterSpawnCard card = LegacyResourcesAPI.Load<CharacterSpawnCard>("SpawnCards/CharacterSpawnCards/cscMinorConstruct"); if (Main.Mods("com.plasmacore.PlasmaCoreSpikestripContent") && Main.MajorConstructSpawnSigmaInstead.Value) { card = slasma(); } object obj2 = <>c.<>9__1_2; if (obj2 == null) { hook_OnEnter val2 = delegate(orig_OnEnter orig, FireLaser self) { orig.Invoke(self); if (((Object)((EntityState)self).characterBody).name.Contains("MajorConstruct")) { ((Fi