Some mods may be broken due to the recent Alloyed Collective update.
Decompiled source of WolfoArtifacts v3.5.2
ArtifactDissimilarity.dll
Decompiled 5 hours ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using ArtifactDissimilarity.Aritfacts; using BepInEx; using BepInEx.Configuration; using EntityStates; using EntityStates.InfiniteTowerSafeWard; using EntityStates.Seeker; using HG; using IL.EntityStates.Seeker; using IL.RoR2.UI; using Mono.Cecil.Cil; using MonoMod.Cil; using Newtonsoft.Json.Utilities; using On; using On.EntityStates.InfiniteTowerSafeWard; using On.RoR2; using On.RoR2.Projectile; using On.RoR2.UI; using R2API; using R2API.ScriptableObjects; using R2API.Utils; using RoR2; using RoR2.Artifacts; using RoR2.CharacterAI; using RoR2.Navigation; using RoR2.Networking; using RoR2.Projectile; using RoR2.UI; using UnityEngine; using UnityEngine.AddressableAssets; using UnityEngine.Networking; using UnityEngine.UI; using WolfoLibrary; [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("ArtifactDissimilarity")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0+6bdcc38ca642ee0d8c15c2029063442d420669c7")] [assembly: AssemblyProduct("ArtifactDissimilarity")] [assembly: AssemblyTitle("ArtifactDissimilarity")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] namespace ArtifactDissimilarity { public class Filters { internal static void Trimmer_DesiredLength(ref DirectorCard[] cards, int requiredCount) { if (cards.Length > requiredCount) { DirectorCard[] array = ArrayUtils.Clone<DirectorCard>(cards); Util.ShuffleArray<DirectorCard>(array); if (array.Length > requiredCount) { Array.Resize(ref array, requiredCount); } cards = array; } } internal static void Trimmer_WithCategoryName(string categoryName, int requiredCount, ref DirectorCardCategorySelection dccs) { for (int i = 0; i < dccs.categories.Length; i++) { if (string.CompareOrdinal(categoryName, dccs.categories[i].name) == 0) { Trimmer_DesiredLength(ref dccs.categories[i].cards, requiredCount); } } } public static void MixInteractables_Trimmer_Direct(DirectorCardCategorySelection interactableCategories) { Xoroshiro128Plus stageRngGenerator = Run.instance.stageRngGenerator; Trimmer_DesiredLength(ref interactableCategories.categories[0].cards, 6); if (Run.instance is InfiniteTowerRun) { Trimmer_DesiredLength(ref interactableCategories.categories[1].cards, 0); Trimmer_DesiredLength(ref interactableCategories.categories[2].cards, stageRngGenerator.RangeInt(2, 4)); Trimmer_DesiredLength(ref interactableCategories.categories[3].cards, stageRngGenerator.RangeInt(2, 4)); Dissimilarity.TrimmedmixInteractablesCards.categories[1].selectionWeight = 0f; Dissimilarity.TrimmedmixInteractablesCards.categories[2].selectionWeight = Dissimilarity.random.Next(1, 6); Dissimilarity.TrimmedmixInteractablesCards.categories[3].selectionWeight = 0f; } else { Trimmer_DesiredLength(ref interactableCategories.categories[1].cards, 2); Trimmer_DesiredLength(ref interactableCategories.categories[2].cards, stageRngGenerator.RangeInt(2, 5)); Trimmer_DesiredLength(ref interactableCategories.categories[3].cards, stageRngGenerator.RangeInt(2, 6)); } Trimmer_DesiredLength(ref interactableCategories.categories[4].cards, 1); Trimmer_DesiredLength(ref interactableCategories.categories[5].cards, 2); if (RunArtifactManager.instance.IsArtifactEnabled(Main.Remodeling_Def)) { interactableCategories.categories[6].selectionWeight /= 2f; Trimmer_DesiredLength(ref interactableCategories.categories[6].cards, 3); } else { Trimmer_DesiredLength(ref interactableCategories.categories[6].cards, 5); } Debug.Log((object)"Artifact of Dissimilarity: Generated Trimmed mixInteractables selection"); if (!WConfig.DebugPrint.Value) { return; } string text = "-----------------\n"; text += "Artifact of Dissimilarity: Trimmed Interactable List\n\n"; for (int i = 0; i < interactableCategories.categories.Length; i++) { ref Category reference = ref interactableCategories.categories[i]; text += $"--{reference.name} wt:{reference.selectionWeight}--"; for (int num = reference.cards.Length - 1; num >= 0; num--) { text += ((Object)reference.cards[num].GetSpawnCard().prefab).name; text += "\n"; } } text += "-----------------"; Debug.Log((object)text); } public static void SingleInteractable_Trimmer(DirectorCardCategorySelection interactableCategories) { Category[] categories = interactableCategories.categories; for (int i = 0; i < categories.Length; i++) { Trimmer_DesiredLength(ref categories[i].cards, 1); } Debug.Log((object)"Artifact of Kith: Generated Trimmed SingleInteractable selection"); if (!WConfig.DebugPrint.Value) { return; } string text = "-----------------\n"; text += "Artifact of Kith: Trimmed Interactable List\n"; for (int j = 0; j < interactableCategories.categories.Length - 1; j++) { ref Category reference = ref interactableCategories.categories[j]; for (int num = reference.cards.Length - 1; num >= 0; num--) { text += ((Object)reference.cards[num].GetSpawnCard().prefab).name; text += "\n"; } } text += "-----------------"; Debug.Log((object)text); } public static bool NoMoreRadioTower(DirectorCard card) { GameObject prefab = card.GetSpawnCard().prefab; if (Object.op_Implicit((Object)(object)prefab.GetComponent<RadiotowerTerminal>()) || card.selectionWeight == 0) { return false; } card.selectionWeight = 1; return true; } public static bool SimulacrumTrimmer(DirectorCard card) { GameObject prefab = card.GetSpawnCard().prefab; return !(Object.op_Implicit((Object)(object)prefab.GetComponent<ShrineCombatBehavior>()) | Object.op_Implicit((Object)(object)prefab.GetComponent<OutsideInteractableLocker>())); } public static bool TestingPrintCardResults(DirectorCard card) { Debug.Log((object)card.GetSpawnCard()); return true; } public static bool RemoveMinimumStageCompletionTrimmer(DirectorCard card) { if (card.minimumStageCompletions <= 3) { card.minimumStageCompletions = 1; } else if (card.minimumStageCompletions >= 4) { card.minimumStageCompletions = 2; } return true; } public static bool Kith_DoNotRepeatLunarEquipmentOnly(DirectorCard card) { return !Kith.blacklistedForRepeat.Contains(card.GetSpawnCard()); } public static bool NoMoreScrapper(DirectorCard card) { GameObject prefab = card.GetSpawnCard().prefab; return !Object.op_Implicit((Object)(object)prefab.GetComponent<ScrapperController>()); } public static bool NoMorePrinters(DirectorCard card) { GameObject prefab = card.GetSpawnCard().prefab; return !((Object)prefab).name.StartsWith("Duplicator"); } public static bool ArtifactWorldPredicate(DirectorCard card) { GameObject prefab = card.GetSpawnCard().prefab; return !(((Object)prefab).name.Equals("DuplicatorWild") | Object.op_Implicit((Object)(object)prefab.GetComponent<OutsideInteractableLocker>()) | Object.op_Implicit((Object)(object)prefab.GetComponent<ShrineCombatBehavior>()) | Object.op_Implicit((Object)(object)prefab.GetComponent<ScrapperController>())); } public static bool RemoveInteractablesThatNeedTeleporter(DirectorCard card) { GameObject prefab = card.GetSpawnCard().prefab; return !(Object.op_Implicit((Object)(object)prefab.GetComponent<ShrineBossBehavior>()) | Object.op_Implicit((Object)(object)prefab.GetComponent<PortalStatueBehavior>()) | Object.op_Implicit((Object)(object)prefab.GetComponent<SeerStationController>())); } public static void Mix_ApplyCardRemovingFilters(DirectorCardCategorySelection DCCSInput) { if (Run.instance is InfiniteTowerRun) { DCCSInput.RemoveCardsThatFailFilter((Predicate<DirectorCard>)RemoveInteractablesThatNeedTeleporter); DCCSInput.RemoveCardsThatFailFilter((Predicate<DirectorCard>)SimulacrumTrimmer); } else if (Object.op_Implicit((Object)(object)SceneInfo.instance)) { if (SceneInfo.instance.sceneDef.baseSceneName.StartsWith("artifactworld")) { DCCSInput.RemoveCardsThatFailFilter((Predicate<DirectorCard>)RemoveInteractablesThatNeedTeleporter); DCCSInput.RemoveCardsThatFailFilter((Predicate<DirectorCard>)ArtifactWorldPredicate); } else if (SceneInfo.instance.sceneDef.baseSceneName == "voidstage") { DCCSInput.RemoveCardsThatFailFilter((Predicate<DirectorCard>)RemoveInteractablesThatNeedTeleporter); } } } public static void ApplySandSnow(DirectorCardCategorySelection DCCSInput) { //IL_038c: Unknown result type (might be due to invalid IL or missing references) //IL_0391: Unknown result type (might be due to invalid IL or missing references) //IL_036c: Unknown result type (might be due to invalid IL or missing references) //IL_0371: Unknown result type (might be due to invalid IL or missing references) //IL_03c6: Unknown result type (might be due to invalid IL or missing references) //IL_03cb: Unknown result type (might be due to invalid IL or missing references) //IL_03a9: Unknown result type (might be due to invalid IL or missing references) //IL_03ae: Unknown result type (might be due to invalid IL or missing references) //IL_0400: Unknown result type (might be due to invalid IL or missing references) //IL_0405: Unknown result type (might be due to invalid IL or missing references) //IL_03e3: Unknown result type (might be due to invalid IL or missing references) //IL_03e8: Unknown result type (might be due to invalid IL or missing references) //IL_0b9d: Unknown result type (might be due to invalid IL or missing references) //IL_0ba2: Unknown result type (might be due to invalid IL or missing references) //IL_0b7d: Unknown result type (might be due to invalid IL or missing references) //IL_0b82: Unknown result type (might be due to invalid IL or missing references) //IL_0bd7: Unknown result type (might be due to invalid IL or missing references) //IL_0bdc: Unknown result type (might be due to invalid IL or missing references) //IL_0bba: Unknown result type (might be due to invalid IL or missing references) //IL_0bbf: Unknown result type (might be due to invalid IL or missing references) //IL_0c11: Unknown result type (might be due to invalid IL or missing references) //IL_0c16: Unknown result type (might be due to invalid IL or missing references) //IL_07b8: Unknown result type (might be due to invalid IL or missing references) //IL_07bd: Unknown result type (might be due to invalid IL or missing references) //IL_0798: Unknown result type (might be due to invalid IL or missing references) //IL_079d: Unknown result type (might be due to invalid IL or missing references) //IL_07f2: Unknown result type (might be due to invalid IL or missing references) //IL_07f7: Unknown result type (might be due to invalid IL or missing references) //IL_07d5: Unknown result type (might be due to invalid IL or missing references) //IL_07da: Unknown result type (might be due to invalid IL or missing references) //IL_082c: Unknown result type (might be due to invalid IL or missing references) //IL_0831: Unknown result type (might be due to invalid IL or missing references) //IL_0bf4: Unknown result type (might be due to invalid IL or missing references) //IL_0bf9: Unknown result type (might be due to invalid IL or missing references) //IL_080f: Unknown result type (might be due to invalid IL or missing references) //IL_0814: Unknown result type (might be due to invalid IL or missing references) string baseSceneName = SceneInfo.instance.sceneDef.baseSceneName; switch (baseSceneName) { default: if (!(baseSceneName == "nest")) { switch (baseSceneName) { default: if (!(baseSceneName == "repurposedcrater")) { DirectorCard[] cards = DCCSInput.categories[2].cards; foreach (DirectorCard val in cards) { switch (((Object)val.GetSpawnCard()).name) { case "iscShrineBlood": case "iscShrineBloodSnowy": case "iscShrineBloodSandy": val.spawnCard = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/Base/ShrineBlood/iscShrineBlood.asset").WaitForCompletion(); break; case "iscShrineBoss": case "iscShrineBossSnowy": case "iscShrineBossSandy": val.spawnCard = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/Base/ShrineBoss/iscShrineBoss.asset").WaitForCompletion(); break; case "iscShrineChance": case "iscShrineChanceSnowy": case "iscShrineChanceSandy": val.spawnCard = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/Base/ShrineChance/iscShrineChance.asset").WaitForCompletion(); break; case "iscShrineCleanse": case "iscShrineCleanseSnowy": case "iscShrineCleanseSandy": val.spawnCard = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/Base/ShrineCleanse/iscShrineCleanse.asset").WaitForCompletion(); break; case "iscShrineCombat": case "iscShrineCombatSnowy": case "iscShrineCombatSandy": val.spawnCard = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/Base/ShrineCombat/iscShrineCombat.asset").WaitForCompletion(); break; case "iscShrineRestack": case "iscShrineRestackSnowy": case "iscShrineRestackSandy": val.spawnCard = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/Base/ShrineRestack/iscShrineRestack.asset").WaitForCompletion(); break; } } break; } goto case "goolake"; case "goolake": case "itgoolake": case "ironalluvium": case "ironalluvium2": { DirectorCard[] cards2 = DCCSInput.categories[2].cards; foreach (DirectorCard val2 in cards2) { switch (((Object)val2.GetSpawnCard()).name) { case "iscShrineBlood": case "iscShrineBloodSnowy": case "iscShrineBloodSandy": val2.spawnCard = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/Base/ShrineBlood/iscShrineBloodSandy.asset").WaitForCompletion(); break; case "iscShrineBoss": case "iscShrineBossSnowy": case "iscShrineBossSandy": val2.spawnCard = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/Base/ShrineBoss/iscShrineBossSandy.asset").WaitForCompletion(); break; case "iscShrineChance": case "iscShrineChanceSnowy": case "iscShrineChanceSandy": val2.spawnCard = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/Base/ShrineChance/iscShrineChanceSandy.asset").WaitForCompletion(); break; case "iscShrineCleanse": case "iscShrineCleanseSnowy": case "iscShrineCleanseSandy": val2.spawnCard = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/Base/ShrineCleanse/iscShrineCleanseSandy.asset").WaitForCompletion(); break; case "iscShrineCombat": case "iscShrineCombatSnowy": case "iscShrineCombatSandy": val2.spawnCard = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/Base/ShrineCombat/iscShrineCombatSandy.asset").WaitForCompletion(); break; case "iscShrineRestack": case "iscShrineRestackSnowy": case "iscShrineRestackSandy": val2.spawnCard = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/Base/ShrineRestack/iscShrineRestackSandy.asset").WaitForCompletion(); break; } } break; } } break; } goto case "snowyforest"; case "snowyforest": case "frozenwall": case "itfrozenwall": { DirectorCard[] cards3 = DCCSInput.categories[2].cards; foreach (DirectorCard val3 in cards3) { switch (((Object)val3.GetSpawnCard()).name) { case "iscShrineBlood": case "iscShrineBloodSnowy": case "iscShrineBloodSandy": val3.spawnCard = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/Base/ShrineBlood/iscShrineBloodSnowy.asset").WaitForCompletion(); break; case "iscShrineBoss": case "iscShrineBossSnowy": case "iscShrineBossSandy": val3.spawnCard = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/Base/ShrineBoss/iscShrineBossSnowy.asset").WaitForCompletion(); break; case "iscShrineChance": case "iscShrineChanceSnowy": case "iscShrineChanceSandy": val3.spawnCard = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/Base/ShrineChance/iscShrineChanceSnowy.asset").WaitForCompletion(); break; case "iscShrineCleanse": case "iscShrineCleanseSnowy": case "iscShrineCleanseSandy": val3.spawnCard = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/Base/ShrineCleanse/iscShrineCleanseSnowy.asset").WaitForCompletion(); break; case "iscShrineCombat": case "iscShrineCombatSnowy": case "iscShrineCombatSandy": val3.spawnCard = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/Base/ShrineCombat/iscShrineCombatSnowy.asset").WaitForCompletion(); break; case "iscShrineRestack": case "iscShrineRestackSnowy": case "iscShrineRestackSandy": val3.spawnCard = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/Base/ShrineRestack/iscShrineRestackSnowy.asset").WaitForCompletion(); break; } } break; } } } } public class DissimWander_LunarSeer { public static List<SceneDef> scenesSeerDestinations; public unsafe static void PopulateSeerList() { //IL_00c7: Unknown result type (might be due to invalid IL or missing references) //IL_00cc: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)Run.instance) || scenesSeerDestinations.Count > 13) { return; } for (int i = 0; i < scenesSeerDestinations.Count; i++) { if (Run.instance.CanPickStage(scenesSeerDestinations[i])) { scenesSeerDestinations.Remove(scenesSeerDestinations[i]); } } for (int j = 0; j < SceneCatalog.allStageSceneDefs.Length; j++) { if (ValidStageForSeer((SceneDef)Unsafe.Read<object>((void*)SceneCatalog.allStageSceneDefs[j]))) { scenesSeerDestinations.Add((SceneDef)Unsafe.Read<object>((void*)SceneCatalog.allStageSceneDefs[j])); } } } public static bool ValidStageForSeer(SceneDef sceneDef) { if (!Run.instance.CanPickStage(sceneDef)) { return false; } return sceneDef.hasAnyDestinations && sceneDef.validForRandomSelection; } public static void Start() { //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Expected O, but got Unknown //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Expected O, but got Unknown MakeSeerMaterials(); SeerStationController.OnStartClient += new hook_OnStartClient(SeerDestinationRandomizerDissimWander); SeerStationController.SetRunNextStageToTarget += new hook_SetRunNextStageToTarget(SeerStationController_SetRunNextStageToTarget); } private static void SeerStationController_SetRunNextStageToTarget(orig_SetRunNextStageToTarget orig, SeerStationController self) { //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Expected O, but got Unknown orig.Invoke(self); if (Object.op_Implicit((Object)(object)self.explicitTargetSceneExitController) && ((Object)self.explicitTargetSceneExitController).name.StartsWith("LunarTeleporter")) { Chat.SendBroadcastChat((ChatMessageBase)new SimpleChatMessage { baseToken = "LUNAR_TELEPORTER_ALIGN_DREAM" }); } } public static void MakeSeerMaterials() { //IL_0092: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Unknown result type (might be due to invalid IL or missing references) //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_00bc: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_00d1: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_00e6: Unknown result type (might be due to invalid IL or missing references) //IL_00eb: Unknown result type (might be due to invalid IL or missing references) //IL_00fb: Unknown result type (might be due to invalid IL or missing references) //IL_0100: Unknown result type (might be due to invalid IL or missing references) //IL_0110: Unknown result type (might be due to invalid IL or missing references) //IL_0115: Unknown result type (might be due to invalid IL or missing references) //IL_0207: Unknown result type (might be due to invalid IL or missing references) SceneDef val = LegacyResourcesAPI.Load<SceneDef>("scenedefs/golemplains"); SceneDef val2 = LegacyResourcesAPI.Load<SceneDef>("scenedefs/goolake"); SceneDef val3 = LegacyResourcesAPI.Load<SceneDef>("scenedefs/frozenwall"); SceneDef val4 = LegacyResourcesAPI.Load<SceneDef>("scenedefs/dampcavesimple"); SceneDef val5 = LegacyResourcesAPI.Load<SceneDef>("scenedefs/skymeadow"); SceneDef val6 = LegacyResourcesAPI.Load<SceneDef>("scenedefs/moon2"); SceneDef item = LegacyResourcesAPI.Load<SceneDef>("scenedefs/goldshores"); SceneDef val7 = LegacyResourcesAPI.Load<SceneDef>("scenedefs/arena"); SceneDef val8 = LegacyResourcesAPI.Load<SceneDef>("scenedefs/artifactworld"); SceneDef val9 = LegacyResourcesAPI.Load<SceneDef>("scenedefs/bazaar"); SceneDef val10 = LegacyResourcesAPI.Load<SceneDef>("scenedefs/limbo"); SceneDef val11 = LegacyResourcesAPI.Load<SceneDef>("scenedefs/mysteryspace"); SceneDef val12 = Addressables.LoadAssetAsync<SceneDef>((object)"RoR2/DLC1/ancientloft/ancientloft.asset").WaitForCompletion(); SceneDef item2 = Addressables.LoadAssetAsync<SceneDef>((object)"RoR2/DLC1/voidstage/voidstage.asset").WaitForCompletion(); SceneDef val13 = Addressables.LoadAssetAsync<SceneDef>((object)"RoR2/DLC1/voidraid/voidraid.asset").WaitForCompletion(); SceneDef val14 = Addressables.LoadAssetAsync<SceneDef>((object)"RoR2/DLC2/meridian/meridian.asset").WaitForCompletion(); SceneDef val15 = Addressables.LoadAssetAsync<SceneDef>((object)"RoR2/DLC2/artifactworld01/artifactworld01.asset").WaitForCompletion(); SceneDef val16 = Addressables.LoadAssetAsync<SceneDef>((object)"RoR2/DLC2/artifactworld02/artifactworld02.asset").WaitForCompletion(); SceneDef val17 = Addressables.LoadAssetAsync<SceneDef>((object)"RoR2/DLC2/artifactworld03/artifactworld03.asset").WaitForCompletion(); scenesSeerDestinations = new List<SceneDef> { val15, val16, val17, val6, item, val7, val11, val8, item2, val14 }; Material val18 = Object.Instantiate<Material>(val.portalMaterial); Material val19 = Object.Instantiate<Material>(val.portalMaterial); Material val20 = Object.Instantiate<Material>(val.portalMaterial); Material val21 = Object.Instantiate<Material>(val.portalMaterial); Material val22 = Object.Instantiate<Material>(val.portalMaterial); Material val23 = Object.Instantiate<Material>(val.portalMaterial); Material val24 = Object.Instantiate<Material>(val.portalMaterial); val6.portalMaterial.SetFloat("_Boost", 1f); val6.portalMaterial.mainTextureScale = new Vector2(1f, 0.5f); val14.portalMaterial.SetFloat("_Boost", 1f); val18.mainTexture = val7.previewTexture; val7.portalMaterial = val18; val7.portalSelectionMessageString = "BAZAAR_SEER_ARENA"; val19.mainTexture = val8.previewTexture; val8.portalMaterial = val19; val15.portalSelectionMessageString = "BAZAAR_SEER_ARTIFACTWORLD"; val16.portalSelectionMessageString = "BAZAAR_SEER_ARTIFACTWORLD"; val17.portalSelectionMessageString = "BAZAAR_SEER_ARTIFACTWORLD"; val20.mainTexture = val9.previewTexture; val9.portalMaterial = val20; val9.portalSelectionMessageString = "BAZAAR_SEER_SHOP"; val21.mainTexture = val10.previewTexture; val10.portalMaterial = val21; val10.portalSelectionMessageString = "BAZAAR_SEER_LIMBO"; val22.mainTexture = val11.previewTexture; val11.portalMaterial = val22; val11.portalSelectionMessageString = "BAZAAR_SEER_MS"; val24.mainTexture = val13.previewTexture; val13.portalMaterial = val24; val13.portalSelectionMessageString = "BAZAAR_SEER_VOIDLING"; } public static void SeerDestinationRandomizerDissimWander(orig_OnStartClient orig, SeerStationController self) { orig.Invoke(self); if (NetworkServer.active && (RunArtifactManager.instance.IsArtifactEnabled(Main.Wander_Def) || (RunArtifactManager.instance.IsArtifactEnabled(Main.Dissimilarity_Def) && (Object)(object)BazaarController.instance == (Object)null))) { if (Object.op_Implicit((Object)(object)TeleporterInteraction.instance)) { self.explicitTargetSceneExitController = TeleporterInteraction.instance.sceneExitController; } int index = Run.instance.nextStageRng.RangeInt(0, scenesSeerDestinations.Count); self.SetTargetScene(scenesSeerDestinations[index]); if (WConfig.DebugPrint.Value) { Debug.Log((object)("Lunar Seer going to " + ((object)scenesSeerDestinations[index])?.ToString() + " spawned")); } ((Component)self).gameObject.GetComponent<PurchaseInteraction>().SetAvailable(true); } } public static void WanderNoRepeatStages(orig_PickNextStageScene orig, Run self, WeightedSelection<SceneDef> choices) { orig.Invoke(self, choices); Debug.Log((object)"Wander : Pick next Stage"); if (Object.op_Implicit((Object)(object)Stage.instance) && (Object)(object)self.nextStageScene == (Object)(object)Stage.instance.sceneDef) { Debug.Log((object)"Wander : Preventing same stage twice in a row"); do { orig.Invoke(self, choices); } while ((Object)(object)self.nextStageScene == (Object)(object)Stage.instance.sceneDef); } if (Object.op_Implicit((Object)(object)self.nextStageScene.requiredExpansion) && !self.IsExpansionEnabled(self.nextStageScene.requiredExpansion)) { Debug.Log((object)"Wander : Preventing dlc stage without required dlc"); do { orig.Invoke(self, choices); } while (self.IsExpansionEnabled(self.nextStageScene.requiredExpansion)); } } } internal static class Assets { public static AssetBundle Bundle; public static PluginInfo PluginInfo; public static string Folder = "Artifacts\\"; internal static string assemblyDir => Path.GetDirectoryName(PluginInfo.Location); internal static void Init(PluginInfo info) { //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Expected O, but got Unknown PluginInfo = info; if (!Directory.Exists(GetPathToFile(Folder))) { Folder = ""; } if (Directory.Exists(GetPathToFile(Folder + "Languages"))) { Language.SetFolders += new hook_SetFolders(SetFolders); } else { Debug.LogWarning((object)"COULD NOT FIND LANGUAGES FOLDER"); } if (Directory.Exists(GetPathToFile(Folder + "AssetBundles"))) { Bundle = AssetBundle.LoadFromFile(GetPathToFile(Folder + "AssetBundles", "artifacts_new")); } else { Debug.LogWarning((object)"COULD NOT FIND ASSETBUNDLES FOLDER"); } } private static void SetFolders(orig_SetFolders orig, Language self, IEnumerable<string> newFolders) { IEnumerable<string> second = Directory.EnumerateDirectories(Path.Combine(GetPathToFile(Folder + "Languages")), self.name); orig.Invoke(self, newFolders.Union(second)); } internal static string GetPathToFile(string folderName) { return Path.Combine(assemblyDir, folderName); } internal static string GetPathToFile(string folderName, string fileName) { return Path.Combine(assemblyDir, folderName, fileName); } } public class WConfig { public static ConfigEntry<bool> EnableDissim; public static ConfigEntry<bool> EnableKith; public static ConfigEntry<bool> EnableWanderArtifact; public static ConfigEntry<bool> EnableRemodelArtifact; public static ConfigEntry<bool> EnableSpiritualArtifact; public static ConfigEntry<bool> EnableBrigadeArtifact; public static ConfigEntry<bool> EnableTransposeArtifact; public static ConfigEntry<bool> EnableUnisonArtifact; public static ConfigEntry<bool> Enable_Flamboyance_Artifact; public static ConfigEntry<bool> Enable_Doubles_Artifact; public static ConfigEntry<bool> DebugPrint; public static ConfigEntry<bool> KithNoMinimumStageCompletion; public static ConfigEntry<bool> RemodelRerollOutOfScrap; public static ConfigEntry<bool> RemodelRerollMonsterItems; public static ConfigEntry<bool> RemodelRerollEquipmentDrones; public static ConfigEntry<bool> RemodelRerollDevotion; public static ConfigEntry<bool> TransposeRerollHeresy; public static ConfigEntry<bool> UnisonDisablePrinters; internal static void InitConfig() { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Expected O, but got Unknown ConfigFile val = new ConfigFile(Paths.ConfigPath + "\\Wolfo.Wolfo_Artifacts.cfg", true); EnableDissim = val.Bind<bool>(": Main :", "Enable Artifact of Dissimilarity", true, "Artifact of Dissonance for Interactables"); EnableKith = val.Bind<bool>(": Main :", "Enable Artifact of Kith", true, "Artifact of Kin for Interactables. One per interactable category"); EnableWanderArtifact = val.Bind<bool>(": Main :", "Enable Artifact of Wander", true, "Stages progress in a random order."); EnableRemodelArtifact = val.Bind<bool>(": Main :", "Enable Artifact of Remodelling", true, "Reroll all items and equipment on stage change"); EnableSpiritualArtifact = val.Bind<bool>(": Main :", "Enable Artifact of Spiriting", true, "RoR1 Spirit inspired, affects more stats"); EnableBrigadeArtifact = val.Bind<bool>(": Main :", "Enable Artifact of Brigade", true, "Artifact of Kin but for Elite Types"); EnableTransposeArtifact = val.Bind<bool>(": Main :", "Enable Artifact of Transpose", true, "Get a random skill loadout every stage"); EnableUnisonArtifact = val.Bind<bool>(": Main :", "Enable Artifact of Unison", true, "One item per tier"); Enable_Flamboyance_Artifact = val.Bind<bool>(": Main :", "Enable Artifact of Flamboyance", true, "Items may be rerolled into a random one of any tier"); Enable_Doubles_Artifact = val.Bind<bool>(": Main :", "Enable Artifact of Doubles", true, "Players control 2 survivors or sometimes more."); KithNoMinimumStageCompletion = val.Bind<bool>("Kith", "Remove the minimum stage completion of vanilla interactables", true, "Normally certain interactables can only spawn after a certain stage, this doesn't prevent them from being chosen with Kith. Making it so they can always spawn might make the early game more varied."); TransposeRerollHeresy = val.Bind<bool>("Transpose", "Reroll Heresy items", false, "Should Transpose reroll Heresy items into other heresy items"); RemodelRerollOutOfScrap = val.Bind<bool>("Remodeling", "Reroll out of Scrap", true, "If enabled, Scrap will be rerolled into a regular items\nThis allows you to quickly get a high stack of something (ie Scrap all Reds if you want 1 high stack instead of multiple small stacks).\nBut makes it so you can't take Scrap to Bazaar/Moon Cauldrons."); RemodelRerollMonsterItems = val.Bind<bool>("Remodeling", "Reroll Monster Teams Inventory", true, "Reroll the items that Artifact of Evolution gives."); RemodelRerollEquipmentDrones = val.Bind<bool>("Remodeling", "Reroll Equipment Drone Equipments", true, "Whether or not their Equipment should also be rerolled"); RemodelRerollDevotion = val.Bind<bool>("Remodeling", "Reroll Devotion Items", true, "Should Devotion inventory be rerolled."); DebugPrint = val.Bind<bool>(": Main :", "Print Debug Info in console", false, "Full list of interactables possible on current stage Dissim/Kith"); } } public class Defs { } public static class ArrayUtil { public static T[] Add<T>(this T[] array, params T[] items) { return (array ?? Enumerable.Empty<T>()).Concat(items).ToArray(); } public static T[] Remove<T>(this T[] array, params T[] items) { return (array ?? Enumerable.Empty<T>()).Except(items).ToArray(); } } public class Blank { public static void OnArtifactEnable() { } public static void OnArtifactDisable() { } } [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInPlugin("com.Wolfo.WolfoArtifacts", "WolfoArtifacts", "3.5.0")] [NetworkCompatibility(/*Could not decode attribute arguments.*/)] public class Main : BaseUnityPlugin { [CompilerGenerated] private sealed class <DelayedRespawn>d__15 : IEnumerator<object>, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public PlayerCharacterMasterController playerCharacterMasterController; public float delay; private CharacterBody <temp>5__1; private Vector3 <vector>5__2; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <DelayedRespawn>d__15(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <temp>5__1 = null; <>1__state = -2; } private bool MoveNext() { //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_0031: Expected O, but got Unknown //IL_006e: 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_0084: 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) switch (<>1__state) { default: return false; case 0: <>1__state = -1; <>2__current = (object)new WaitForSeconds(delay); <>1__state = 1; return true; case 1: <>1__state = -1; <temp>5__1 = playerCharacterMasterController.master.GetBody(); if (Object.op_Implicit((Object)(object)<temp>5__1)) { <vector>5__2 = <temp>5__1.footPosition; playerCharacterMasterController.master.Respawn(<vector>5__2, Quaternion.Euler(0f, Random.Range(0f, 360f), 0f), false); } return false; } } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } public static readonly Random random = new Random(); public static ArtifactDef Dissimilarity_Def = ScriptableObject.CreateInstance<ArtifactDef>(); public static ArtifactDef Kith_Def = ScriptableObject.CreateInstance<ArtifactDef>(); public static ArtifactDef Wander_Def = ScriptableObject.CreateInstance<ArtifactDef>(); public static ArtifactDef Remodeling_Def = ScriptableObject.CreateInstance<ArtifactDef>(); public static ArtifactDef Spiriting_Def = ScriptableObject.CreateInstance<ArtifactDef>(); public static ArtifactDef Brigade_Def = ScriptableObject.CreateInstance<ArtifactDef>(); public static ArtifactDef Transpose_Def = ScriptableObject.CreateInstance<ArtifactDef>(); public static ArtifactDef Unison_Def = ScriptableObject.CreateInstance<ArtifactDef>(); public static ArtifactDef Obscurity_Def = ScriptableObject.CreateInstance<ArtifactDef>(); public static ArtifactDef Flamboyance_Def = ScriptableObject.CreateInstance<ArtifactDef>(); public static ArtifactDef Doubles_Def = ScriptableObject.CreateInstance<ArtifactDef>(); public void Awake() { //IL_005b: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Expected O, but got Unknown //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0077: Expected O, but got Unknown //IL_010e: Unknown result type (might be due to invalid IL or missing references) //IL_0118: Expected O, but got Unknown //IL_0120: Unknown result type (might be due to invalid IL or missing references) //IL_012a: Expected O, but got Unknown //IL_0132: Unknown result type (might be due to invalid IL or missing references) //IL_013c: Expected O, but got Unknown //IL_0144: Unknown result type (might be due to invalid IL or missing references) //IL_014e: Expected O, but got Unknown Assets.Init(((BaseUnityPlugin)this).Info); WConfig.InitConfig(); ArtifactAdded(); Spiriting.Start(); Dissimilarity.Start(); DissimWander_LunarSeer.Start(); Kith.Start(); Doubles.Start(); Flamboyance.Start(); ((ResourceAvailability)(ref GameModeCatalog.availability)).CallWhenAvailable((Action)ModSupport); RunArtifactManager.onArtifactEnabledGlobal += new ArtifactStateChangeDelegate(RunArtifactManager_onEnabledArtifactGlobal); RunArtifactManager.onArtifactDisabledGlobal += new ArtifactStateChangeDelegate(RunArtifactManager_onDisableArtifactGlobal); ChatMessageBase.chatMessageTypeToIndex.Add(typeof(Brigade.BrigadeMessage), (byte)ChatMessageBase.chatMessageIndexToType.Count); ChatMessageBase.chatMessageIndexToType.Add(typeof(Brigade.BrigadeMessage)); LegacyResourcesAPI.Load<GameObject>("Prefabs/networkedobjects/LunarCauldron, WhiteToGreen").GetComponent<ShopTerminalBehavior>().dropTable = (PickupDropTable)(object)LegacyResourcesAPI.Load<BasicPickupDropTable>("DropTables/dtDuplicatorTier2"); LegacyResourcesAPI.Load<GameObject>("Prefabs/networkedobjects/LunarCauldron, GreenToRed Variant").GetComponent<ShopTerminalBehavior>().dropTable = (PickupDropTable)(object)LegacyResourcesAPI.Load<BasicPickupDropTable>("DropTables/dtDuplicatorTier3"); LegacyResourcesAPI.Load<GameObject>("Prefabs/networkedobjects/LunarCauldron, RedToWhite Variant").GetComponent<ShopTerminalBehavior>().dropTable = (PickupDropTable)(object)LegacyResourcesAPI.Load<BasicPickupDropTable>("DropTables/dtDuplicatorTier1"); Stage.Start += new hook_Start(StageStartMethod); Run.Start += new hook_Start(RunStartHook); Run.OnDisable += new hook_OnDisable(WanderEnder); InfiniteTowerRun.OverrideRuleChoices += new hook_OverrideRuleChoices(InfiniteTowerRun_OverrideRuleChoices); } private void InfiniteTowerRun_OverrideRuleChoices(orig_OverrideRuleChoices orig, InfiniteTowerRun self, RuleChoiceMask mustInclude, RuleChoiceMask mustExclude, ulong runSeed) { orig.Invoke(self, mustInclude, mustExclude, runSeed); ((Run)self).ForceChoice(mustInclude, mustExclude, RuleCatalog.FindRuleDef("Artifacts." + Wander_Def.cachedName).FindChoice("Off")); } public static void RunStartHook(orig_Start orig, Run self) { if (NetworkServer.active && Object.op_Implicit((Object)(object)RunArtifactManager.instance) && RunArtifactManager.instance.IsArtifactEnabled(Wander_Def)) { Wander.WanderSetup(isEnable: true); } orig.Invoke(self); } [IteratorStateMachine(typeof(<DelayedRespawn>d__15))] public static IEnumerator DelayedRespawn(PlayerCharacterMasterController playerCharacterMasterController, float delay) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <DelayedRespawn>d__15(0) { playerCharacterMasterController = playerCharacterMasterController, delay = delay }; } public static void WanderEnder(orig_OnDisable orig, Run self) { if (Object.op_Implicit((Object)(object)RunArtifactManager.instance) && RunArtifactManager.instance.IsArtifactEnabled(Wander_Def)) { Wander.WanderSetup(isEnable: false); } orig.Invoke(self); } public static IEnumerator StageStartMethod(orig_Start orig, Stage self) { if (NetworkServer.active) { ArtifactTrialMissionController.trialArtifact = ArtifactCatalog.GetArtifactDef((ArtifactIndex)random.Next(ArtifactCatalog.artifactCount)); } return orig.Invoke(self); } public static void ArtifactAdded() { //IL_00c4: 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) //IL_00d2: Unknown result type (might be due to invalid IL or missing references) //IL_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00e0: Unknown result type (might be due to invalid IL or missing references) //IL_00e5: Unknown result type (might be due to invalid IL or missing references) //IL_01a8: Unknown result type (might be due to invalid IL or missing references) //IL_01ad: Unknown result type (might be due to invalid IL or missing references) //IL_01b7: Unknown result type (might be due to invalid IL or missing references) //IL_01bc: Unknown result type (might be due to invalid IL or missing references) //IL_01c6: Unknown result type (might be due to invalid IL or missing references) //IL_01cb: Unknown result type (might be due to invalid IL or missing references) //IL_0293: Unknown result type (might be due to invalid IL or missing references) //IL_0298: Unknown result type (might be due to invalid IL or missing references) //IL_02a2: Unknown result type (might be due to invalid IL or missing references) //IL_02a7: Unknown result type (might be due to invalid IL or missing references) //IL_02b1: Unknown result type (might be due to invalid IL or missing references) //IL_02b6: Unknown result type (might be due to invalid IL or missing references) //IL_037e: Unknown result type (might be due to invalid IL or missing references) //IL_0383: Unknown result type (might be due to invalid IL or missing references) //IL_038d: Unknown result type (might be due to invalid IL or missing references) //IL_0392: Unknown result type (might be due to invalid IL or missing references) //IL_039c: Unknown result type (might be due to invalid IL or missing references) //IL_03a1: Unknown result type (might be due to invalid IL or missing references) //IL_0469: Unknown result type (might be due to invalid IL or missing references) //IL_046e: Unknown result type (might be due to invalid IL or missing references) //IL_0478: Unknown result type (might be due to invalid IL or missing references) //IL_047d: Unknown result type (might be due to invalid IL or missing references) //IL_0487: Unknown result type (might be due to invalid IL or missing references) //IL_048c: Unknown result type (might be due to invalid IL or missing references) UnlockableDef val = ScriptableObject.CreateInstance<UnlockableDef>(); val.cachedName = "NoMoreArtifact"; Dissimilarity_Def.cachedName = "MixInteractable"; Dissimilarity_Def.nameToken = "ARTIFACT_MIX_INTERACTABLE_NAME"; Dissimilarity_Def.descriptionToken = "ARTIFACT_MIX_INTERACTABLE_DESC"; Dissimilarity_Def.smallIconSelectedSprite = Assets.Bundle.LoadAsset<Sprite>("Assets/Artifacts/Dissimilarity_On.png"); Dissimilarity_Def.smallIconDeselectedSprite = Assets.Bundle.LoadAsset<Sprite>("Assets/Artifacts/Dissimilarity_Off.png"); Dissimilarity_Def.pickupModelReference = LegacyResourcesAPI.Load<ArtifactDef>("artifactdefs/MixEnemy").pickupModelReference; ContentAddition.AddArtifactDef(Dissimilarity_Def); if (!WConfig.EnableDissim.Value) { Dissimilarity_Def.unlockableDef = val; } else { ArtifactCode val2 = ScriptableObject.CreateInstance<ArtifactCode>(); val2.topRow = new Vector3Int(1, 1, 5); val2.topRow = new Vector3Int(1, 1, 1); val2.topRow = new Vector3Int(5, 1, 1); ArtifactCodeAPI.AddCode(Dissimilarity_Def, val2); } Kith_Def.cachedName = "SingleInteractablePerCategory"; Kith_Def.nameToken = "ARTIFACT_SINGLE_INTERACTABLE_NAME"; Kith_Def.descriptionToken = "ARTIFACT_SINGLE_INTERACTABLE_DESC"; Kith_Def.smallIconSelectedSprite = Assets.Bundle.LoadAsset<Sprite>("Assets/Artifacts/Kith_On.png"); Kith_Def.smallIconDeselectedSprite = Assets.Bundle.LoadAsset<Sprite>("Assets/Artifacts/Kith_Off.png"); Kith_Def.pickupModelReference = LegacyResourcesAPI.Load<ArtifactDef>("artifactdefs/SingleMonsterType").pickupModelReference; ContentAddition.AddArtifactDef(Kith_Def); if (!WConfig.EnableKith.Value) { Kith_Def.unlockableDef = val; } else { ArtifactCode val3 = ScriptableObject.CreateInstance<ArtifactCode>(); val3.topRow = new Vector3Int(3, 5, 3); val3.topRow = new Vector3Int(3, 5, 3); val3.topRow = new Vector3Int(1, 1, 1); ArtifactCodeAPI.AddCode(Kith_Def, val3); } Wander_Def.cachedName = "MeanderStageOrder"; Wander_Def.nameToken = "ARTIFACT_RANDOM_STAGEORDER_NAME"; Wander_Def.descriptionToken = "ARTIFACT_RANDOM_STAGEORDER_DESC"; Wander_Def.smallIconSelectedSprite = Assets.Bundle.LoadAsset<Sprite>("Assets/Artifacts/Wander_On.png"); Wander_Def.smallIconDeselectedSprite = Assets.Bundle.LoadAsset<Sprite>("Assets/Artifacts/Wander_Off.png"); Wander_Def.pickupModelReference = LegacyResourcesAPI.Load<ArtifactDef>("artifactdefs/Enigma").pickupModelReference; ContentAddition.AddArtifactDef(Wander_Def); if (!WConfig.EnableWanderArtifact.Value) { Wander_Def.unlockableDef = val; } else { ArtifactCode val4 = ScriptableObject.CreateInstance<ArtifactCode>(); val4.topRow = new Vector3Int(3, 7, 3); val4.topRow = new Vector3Int(7, 7, 7); val4.topRow = new Vector3Int(3, 7, 3); ArtifactCodeAPI.AddCode(Wander_Def, val4); } Remodeling_Def.cachedName = "RerollItemsAndEquipments"; Remodeling_Def.nameToken = "ARTIFACT_REROLL_ITEMS_NAME"; Remodeling_Def.descriptionToken = "ARTIFACT_REROLL_ITEMS_DESC"; Remodeling_Def.smallIconSelectedSprite = Assets.Bundle.LoadAsset<Sprite>("Assets/Artifacts/Remodeling_On.png"); Remodeling_Def.smallIconDeselectedSprite = Assets.Bundle.LoadAsset<Sprite>("Assets/Artifacts/Remodeling_Off.png"); Remodeling_Def.pickupModelReference = LegacyResourcesAPI.Load<ArtifactDef>("artifactdefs/RandomSurvivorOnRespawn").pickupModelReference; ContentAddition.AddArtifactDef(Remodeling_Def); if (!WConfig.EnableRemodelArtifact.Value) { Remodeling_Def.unlockableDef = val; } else { ArtifactCode val5 = ScriptableObject.CreateInstance<ArtifactCode>(); val5.topRow = new Vector3Int(1, 7, 1); val5.topRow = new Vector3Int(1, 5, 1); val5.topRow = new Vector3Int(1, 7, 1); ArtifactCodeAPI.AddCode(Remodeling_Def, val5); } Spiriting_Def.cachedName = "StatsOnLowHealth"; Spiriting_Def.nameToken = "ARTIFACT_SPEED_ONLOWHEALTH_NAME"; Spiriting_Def.descriptionToken = "ARTIFACT_SPEED_ONLOWHEALTH_DESC"; Spiriting_Def.smallIconSelectedSprite = Assets.Bundle.LoadAsset<Sprite>("Assets/Artifacts/Spiriting_On.png"); Spiriting_Def.smallIconDeselectedSprite = Assets.Bundle.LoadAsset<Sprite>("Assets/Artifacts/Spiriting_Off.png"); Spiriting_Def.pickupModelReference = LegacyResourcesAPI.Load<ArtifactDef>("artifactdefs/TeamDeath").pickupModelReference; ContentAddition.AddArtifactDef(Spiriting_Def); if (!WConfig.EnableSpiritualArtifact.Value) { Spiriting_Def.unlockableDef = val; } else { ArtifactCode val6 = ScriptableObject.CreateInstance<ArtifactCode>(); val6.topRow = new Vector3Int(5, 3, 5); val6.topRow = new Vector3Int(1, 3, 1); val6.topRow = new Vector3Int(5, 3, 5); ArtifactCodeAPI.AddCode(Spiriting_Def, val6); } Brigade_Def.cachedName = "SingleEliteType"; Brigade_Def.nameToken = "ARTIFACT_SINGLE_ELITE_NAME"; Brigade_Def.descriptionToken = "ARTIFACT_SINGLE_ELITE_DESC"; Brigade_Def.smallIconSelectedSprite = Assets.Bundle.LoadAsset<Sprite>("Assets/Artifacts/Briaged_On.png"); Brigade_Def.smallIconDeselectedSprite = Assets.Bundle.LoadAsset<Sprite>("Assets/Artifacts/Briaged_Off.png"); Brigade_Def.pickupModelReference = LegacyResourcesAPI.Load<ArtifactDef>("artifactdefs/MonsterTeamGainsItems").pickupModelReference; ContentAddition.AddArtifactDef(Brigade_Def); if (!WConfig.EnableBrigadeArtifact.Value) { Brigade_Def.unlockableDef = val; } Transpose_Def.cachedName = "RandomLoadoutOnRespawn"; Transpose_Def.nameToken = "ARTIFACT_REROLL_SKILLS_NAME"; Transpose_Def.descriptionToken = "ARTIFACT_REROLL_SKILLS_DESC"; Transpose_Def.smallIconSelectedSprite = Assets.Bundle.LoadAsset<Sprite>("Assets/Artifacts/Transpose_On.png"); Transpose_Def.smallIconDeselectedSprite = Assets.Bundle.LoadAsset<Sprite>("Assets/Artifacts/Transpose_Off.png"); Transpose_Def.pickupModelReference = LegacyResourcesAPI.Load<ArtifactDef>("artifactdefs/RandomSurvivorOnRespawn").pickupModelReference; ContentAddition.AddArtifactDef(Transpose_Def); if (!WConfig.EnableTransposeArtifact.Value) { Transpose_Def.unlockableDef = val; } Unison_Def.cachedName = "SingleItemPerTier"; Unison_Def.nameToken = "ARTIFACT_SINGLE_ITEM_NAME"; Unison_Def.descriptionToken = "ARTIFACT_SINGLE_ITEM_DESC"; Unison_Def.smallIconSelectedSprite = Assets.Bundle.LoadAsset<Sprite>("Assets/Artifacts/Unison_On.png"); Unison_Def.smallIconDeselectedSprite = Assets.Bundle.LoadAsset<Sprite>("Assets/Artifacts/Unison_Off.png"); Unison_Def.pickupModelReference = LegacyResourcesAPI.Load<ArtifactDef>("artifactdefs/SingleMonsterType").pickupModelReference; ContentAddition.AddArtifactDef(Unison_Def); if (!WConfig.EnableUnisonArtifact.Value) { Unison_Def.unlockableDef = val; } Obscurity_Def.cachedName = "ItemsBlind"; Obscurity_Def.nameToken = "ARTIFACT_BLIND_ITEMS_NAME"; Obscurity_Def.descriptionToken = "ARTIFACT_BLIND_ITEMS_DESC"; Obscurity_Def.smallIconSelectedSprite = Assets.Bundle.LoadAsset<Sprite>("Assets/Artifacts/Obscurity_On.png"); Obscurity_Def.smallIconDeselectedSprite = Assets.Bundle.LoadAsset<Sprite>("Assets/Artifacts/Obscurity_Off.png"); Obscurity_Def.pickupModelReference = LegacyResourcesAPI.Load<ArtifactDef>("artifactdefs/FriendlyFire").pickupModelReference; ContentAddition.AddArtifactDef(Obscurity_Def); Obscurity_Def.unlockableDef = val; Flamboyance_Def.cachedName = "RandomlyRainbow"; Flamboyance_Def.nameToken = "ARTIFACT_RANDOMLYANYTIER_NAME"; Flamboyance_Def.descriptionToken = "ARTIFACT_RANDOMLYANYTIER_DESC"; Flamboyance_Def.smallIconSelectedSprite = Assets.Bundle.LoadAsset<Sprite>("Assets/Artifacts/Flamboyance_On.png"); Flamboyance_Def.smallIconDeselectedSprite = Assets.Bundle.LoadAsset<Sprite>("Assets/Artifacts/Flamboyance_Off.png"); Flamboyance_Def.pickupModelReference = LegacyResourcesAPI.Load<ArtifactDef>("artifactdefs/Enigma").pickupModelReference; ContentAddition.AddArtifactDef(Flamboyance_Def); if (!WConfig.Enable_Flamboyance_Artifact.Value) { Flamboyance_Def.unlockableDef = val; } Doubles_Def.cachedName = "SwarmsPlayer"; Doubles_Def.nameToken = "ARTIFACT_DOUBLEPLAYER_NAME"; Doubles_Def.descriptionToken = "ARTIFACT_DOUBLEPLAYER_DESC"; Doubles_Def.smallIconSelectedSprite = Assets.Bundle.LoadAsset<Sprite>("Assets/Artifacts/Double_On.png"); Doubles_Def.smallIconDeselectedSprite = Assets.Bundle.LoadAsset<Sprite>("Assets/Artifacts/Double_Off.png"); Doubles_Def.pickupModelReference = LegacyResourcesAPI.Load<ArtifactDef>("Artifactdefs/Swarms").pickupModelReference; ContentAddition.AddArtifactDef(Doubles_Def); if (!WConfig.Enable_Doubles_Artifact.Value) { Doubles_Def.unlockableDef = val; } MakeSimuWave(); } public static void MakeSimuWave() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_0111: Unknown result type (might be due to invalid IL or missing references) //IL_0133: Unknown result type (might be due to invalid IL or missing references) //IL_0135: Unknown result type (might be due to invalid IL or missing references) //IL_013b: Unknown result type (might be due to invalid IL or missing references) //IL_0140: Unknown result type (might be due to invalid IL or missing references) //IL_015b: Unknown result type (might be due to invalid IL or missing references) //IL_0160: Unknown result type (might be due to invalid IL or missing references) //IL_0241: Unknown result type (might be due to invalid IL or missing references) //IL_0265: Unknown result type (might be due to invalid IL or missing references) //IL_0267: Unknown result type (might be due to invalid IL or missing references) //IL_026e: Unknown result type (might be due to invalid IL or missing references) //IL_0273: Unknown result type (might be due to invalid IL or missing references) //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_0374: Unknown result type (might be due to invalid IL or missing references) //IL_0398: Unknown result type (might be due to invalid IL or missing references) //IL_039a: Unknown result type (might be due to invalid IL or missing references) //IL_03a1: Unknown result type (might be due to invalid IL or missing references) //IL_03a6: Unknown result type (might be due to invalid IL or missing references) //IL_03c2: Unknown result type (might be due to invalid IL or missing references) //IL_03c3: Unknown result type (might be due to invalid IL or missing references) //IL_03ca: Unknown result type (might be due to invalid IL or missing references) //IL_03cc: Unknown result type (might be due to invalid IL or missing references) //IL_03d3: Unknown result type (might be due to invalid IL or missing references) //IL_03d5: Unknown result type (might be due to invalid IL or missing references) GameObject val = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC1/GameModes/InfiniteTowerRun/ITAssets/InfiniteTowerWaveArtifactBomb.prefab").WaitForCompletion(), "InfiniteTowerWaveArtifactSingleEliteType", true); GameObject val2 = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC1/GameModes/InfiniteTowerRun/ITAssets/InfiniteTowerCurrentArtifactBombWaveUI.prefab").WaitForCompletion(), "InfiniteTowerCurrentArtifactSingleEliteTypeWaveUI", false); InfiniteTowerWaveArtifactPrerequisites val3 = ScriptableObject.CreateInstance<InfiniteTowerWaveArtifactPrerequisites>(); val.GetComponent<ArtifactEnabler>().artifactDef = Brigade_Def; val.GetComponent<InfiniteTowerWaveController>().overlayEntries[1].prefab = val2; val.GetComponent<CombatDirector>().eliteBias = 0.25f; ((Component)val2.transform.GetChild(0).GetChild(0).GetChild(0)).GetComponent<Image>().sprite = Brigade_Def.smallIconSelectedSprite; ((Component)val2.transform.GetChild(0).GetChild(1).GetChild(0)).GetComponent<InfiniteTowerWaveCounter>().token = "ITWAVE_ARTIFACT_SINGLE_ELITE_NAME"; ((Component)val2.transform.GetChild(0).GetChild(1).GetChild(1)).GetComponent<LanguageTextMeshController>().token = "ITWAVE_ARTIFACT_SINGLE_ELITE_DESC"; val3.bannedArtifact = Brigade_Def; ((Object)val3).name = "ArtifacSingleEliteTypeDisabledPrerequisite"; WeightedWave val4 = default(WeightedWave); val4.wavePrefab = val; val4.weight = 2f; val4.prerequisites = (InfiniteTowerWavePrerequisites)(object)val3; WeightedWave val5 = val4; GameObject val6 = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC1/GameModes/InfiniteTowerRun/ITAssets/InfiniteTowerWaveArtifactBomb.prefab").WaitForCompletion(), "InfiniteTowerWaveArtifactStatsOnLowHealth", true); GameObject val7 = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC1/GameModes/InfiniteTowerRun/ITAssets/InfiniteTowerCurrentArtifactBombWaveUI.prefab").WaitForCompletion(), "InfiniteTowerCurrentArtifactStatsOnLowHealthWaveUI", false); InfiniteTowerWaveArtifactPrerequisites val8 = ScriptableObject.CreateInstance<InfiniteTowerWaveArtifactPrerequisites>(); val6.GetComponent<ArtifactEnabler>().artifactDef = Spiriting_Def; val6.GetComponent<InfiniteTowerWaveController>().overlayEntries[1].prefab = val7; ((Component)val7.transform.GetChild(0).GetChild(0).GetChild(0)).GetComponent<Image>().sprite = Spiriting_Def.smallIconSelectedSprite; ((Component)val7.transform.GetChild(0).GetChild(1).GetChild(0)).GetComponent<InfiniteTowerWaveCounter>().token = "ITWAVE_ARTIFACT_SPEED_ONLOWHEALTH_NAME"; ((Component)val7.transform.GetChild(0).GetChild(1).GetChild(1)).GetComponent<LanguageTextMeshController>().token = "ITWAVE_ARTIFACT_SPEED_ONLOWHEALTH_DESC"; val8.bannedArtifact = Spiriting_Def; ((Object)val8).name = "ArtifacStatsOnLowHealthDisabledPrerequisite"; val4 = default(WeightedWave); val4.wavePrefab = val6; val4.weight = 1f; val4.prerequisites = (InfiniteTowerWavePrerequisites)(object)val8; WeightedWave val9 = val4; GameObject val10 = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC1/GameModes/InfiniteTowerRun/ITAssets/InfiniteTowerWaveArtifactBomb.prefab").WaitForCompletion(), "InfiniteTowerWaveArtifactRandomLoadout", true); GameObject val11 = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC1/GameModes/InfiniteTowerRun/ITAssets/InfiniteTowerCurrentArtifactBombWaveUI.prefab").WaitForCompletion(), "InfiniteTowerCurrentArtifactRandomLoadoutWaveUI", false); InfiniteTowerWaveArtifactPrerequisites val12 = ScriptableObject.CreateInstance<InfiniteTowerWaveArtifactPrerequisites>(); val10.GetComponent<ArtifactEnabler>().artifactDef = Transpose_Def; val10.GetComponent<InfiniteTowerWaveController>().overlayEntries[1].prefab = val11; ((Component)val11.transform.GetChild(0).GetChild(0).GetChild(0)).GetComponent<Image>().sprite = Transpose_Def.smallIconSelectedSprite; ((Component)val11.transform.GetChild(0).GetChild(1).GetChild(0)).GetComponent<InfiniteTowerWaveCounter>().token = "ITWAVE_ARTIFACT_REROLL_SKILLS_NAME"; ((Component)val11.transform.GetChild(0).GetChild(1).GetChild(1)).GetComponent<LanguageTextMeshController>().token = "ITWAVE_ARTIFACT_REROLL_SKILLS_DESC"; val12.bannedArtifact = Transpose_Def; ((Object)val12).name = "ArtifacRandomLoadoutDisabledPrerequisite"; val4 = default(WeightedWave); val4.wavePrefab = val10; val4.weight = 1f; val4.prerequisites = (InfiniteTowerWavePrerequisites)(object)val12; WeightedWave val13 = val4; InfiniteTowerWaveCategory val14 = Addressables.LoadAssetAsync<InfiniteTowerWaveCategory>((object)"4e63333e89a09f64680d3475ba1b5903").WaitForCompletion(); val14.wavePrefabs = val14.wavePrefabs.Add(val5, val13, val9); } public void RunArtifactManager_onEnabledArtifactGlobal(RunArtifactManager runArtifactManager, ArtifactDef artifactDef) { if ((Object)(object)artifactDef == (Object)(object)Spiriting_Def) { Spiriting.OnArtifactEnable(); } else if ((Object)(object)artifactDef == (Object)(object)Brigade_Def) { Brigade.OnArtifactEnable(); } else if ((Object)(object)artifactDef == (Object)(object)Wander_Def) { Wander.OnArtifactEnable(); } else if ((Object)(object)artifactDef == (Object)(object)Transpose_Def) { Transpose.OnArtifactEnable(); } else if ((Object)(object)artifactDef == (Object)(object)Remodeling_Def) { Remodeling.OnArtifactEnable(); } else if ((Object)(object)artifactDef == (Object)(object)Dissimilarity_Def) { Dissimilarity.OnArtifactEnable(); } else if ((Object)(object)artifactDef == (Object)(object)Kith_Def) { Kith.OnArtifactEnable(); } else if ((Object)(object)artifactDef == (Object)(object)Unison_Def) { Unison.OnArtifactEnable(); } else if ((Object)(object)artifactDef == (Object)(object)Obscurity_Def) { Obscurity.OnArtifactEnable(); } else if ((Object)(object)artifactDef == (Object)(object)Flamboyance_Def) { Flamboyance.On_Artifact_Enable(); } else if ((Object)(object)artifactDef == (Object)(object)Doubles_Def) { Doubles.On_Artifact_Enable(); } } public void RunArtifactManager_onDisableArtifactGlobal(RunArtifactManager runArtifactManager, ArtifactDef artifactDef) { if ((Object)(object)artifactDef == (Object)(object)Spiriting_Def) { Spiriting.OnArtifactDisable(); } else if ((Object)(object)artifactDef == (Object)(object)Brigade_Def) { Brigade.OnArtifactDisable(); } else if ((Object)(object)artifactDef == (Object)(object)Wander_Def) { Wander.OnArtifactDisable(); } else if ((Object)(object)artifactDef == (Object)(object)Transpose_Def) { Transpose.OnArtifactDisable(); } else if ((Object)(object)artifactDef == (Object)(object)Remodeling_Def) { Remodeling.OnArtifactDisable(); } else if ((Object)(object)artifactDef == (Object)(object)Dissimilarity_Def) { Dissimilarity.OnArtifactDisable(); } else if ((Object)(object)artifactDef == (Object)(object)Kith_Def) { Kith.OnArtifactDisable(); } else if ((Object)(object)artifactDef == (Object)(object)Unison_Def) { Unison.OnArtifactDisable(); } else if ((Object)(object)artifactDef == (Object)(object)Unison_Def) { Obscurity.OnArtifactDisable(); } else if ((Object)(object)artifactDef == (Object)(object)Flamboyance_Def) { Flamboyance.On_Artifact_Disable(); } else if ((Object)(object)artifactDef == (Object)(object)Doubles_Def) { Doubles.On_Artifact_Disable(); } } internal static void ModSupport() { Dissimilarity.ModSupport(); for (int i = 0; i < ArtifactCatalog.artifactCount; i++) { ArtifactDef artifactDef = ArtifactCatalog.GetArtifactDef((ArtifactIndex)i); if (Object.op_Implicit((Object)(object)artifactDef.pickupModelPrefab) && artifactDef.pickupModelReference == null) { artifactDef.pickupModelReference = Artifacts.EliteOnly.pickupModelReference; } } } } } namespace ArtifactDissimilarity.Aritfacts { public class Brigade { public class BrigadeMessage : ChatMessageBase { public string eliteNameToken; public override string ConstructChatString() { string @string = Language.GetString("ANNOUNCE_BRIGADE_ELITE"); string arg = string.Format(Language.GetString(eliteNameToken), ""); return string.Format(@string, arg); } public override void Serialize(NetworkWriter writer) { ((ChatMessageBase)this).Serialize(writer); writer.Write(eliteNameToken); } public override void Deserialize(NetworkReader reader) { ((ChatMessageBase)this).Deserialize(reader); eliteNameToken = reader.ReadString(); } } [CompilerGenerated] private sealed class <DelayedBrigadeMessage>d__12 : IEnumerator<object>, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public string elite; public float delay; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <DelayedBrigadeMessage>d__12(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_0031: Expected O, but got Unknown switch (<>1__state) { default: return false; case 0: <>1__state = -1; <>2__current = (object)new WaitForSeconds(delay); <>1__state = 1; return true; case 1: <>1__state = -1; Chat.SendBroadcastChat((ChatMessageBase)(object)new BrigadeMessage { eliteNameToken = elite }); return false; } } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } private static List<EliteDef> Tier1EliteDefs = new List<EliteDef>(); private static List<EliteDef> Tier2EliteDefs = new List<EliteDef>(); public static List<EliteDef> forRandomization = new List<EliteDef>(); public static EliteDef chosenEliteDef; public static EliteTierDef[] backupNormalEliteTiers; private static int howManyTimesAddedTier2 = 1; public static void OnArtifactEnable() { SetupBrigade(); backupNormalEliteTiers = CombatDirector.eliteTiers; if (forRandomization.Count > 0 && Object.op_Implicit((Object)(object)SceneInfo.instance) && Object.op_Implicit((Object)(object)Run.instance)) { EliteKinAsMethod(); } Debug.Log((object)"Added Brigade"); SceneDirector.onPrePopulateSceneServer += SceneDirector_onPrePopulateSceneServer; } public static void OnArtifactDisable() { CombatDirector.eliteTiers = backupNormalEliteTiers; SceneDirector.onPrePopulateSceneServer -= SceneDirector_onPrePopulateSceneServer; Debug.Log((object)"UnBrigading"); Tier1EliteDefs.Clear(); Tier2EliteDefs.Clear(); forRandomization.Clear(); } private static void SceneDirector_onPrePopulateSceneServer(SceneDirector obj) { EliteKinAsMethod(); } public static void SetupBrigade() { Tier1EliteDefs = new List<EliteDef>(); Tier2EliteDefs = new List<EliteDef>(); forRandomization = new List<EliteDef>(); Debug.Log((object)("EliteTiers : " + CombatDirector.eliteTiers.Length)); for (int i = 0; i < CombatDirector.eliteTiers.Length; i++) { EliteTierDef val = CombatDirector.eliteTiers[i]; if (val.eliteTypes.Length == 0 || (Object)(object)val.eliteTypes[0] == (Object)null || ((Object)val.eliteTypes[0]).name.EndsWith("Honor")) { continue; } EliteDef[] eliteTypes = val.eliteTypes; foreach (EliteDef val2 in eliteTypes) { if (!val2.IsAvailable()) { continue; } if (val2.healthBoostCoefficient > 8f) { if (!Tier2EliteDefs.Contains(val2)) { Tier2EliteDefs.Add(val2); } } else if (!Tier1EliteDefs.Contains(val2)) { Tier1EliteDefs.Add(val2); } } } Tier1EliteDefs.Remove(Elites.Lunar); if (Elites.Void.IsAvailable()) { } howManyTimesAddedTier2 = 1; forRandomization.AddRange(Tier1EliteDefs); } public static void EliteKinAsMethod() { //IL_01e8: Unknown result type (might be due to invalid IL or missing references) //IL_0260: Unknown result type (might be due to invalid IL or missing references) //IL_0266: Expected I4, but got Unknown //IL_02b4: Unknown result type (might be due to invalid IL or missing references) //IL_02bb: Expected O, but got Unknown //IL_0307: Unknown result type (might be due to invalid IL or missing references) //IL_030e: Expected O, but got Unknown //IL_0364: Unknown result type (might be due to invalid IL or missing references) //IL_036b: Expected O, but got Unknown Debug.Log((object)("COMBATDIRECTORS:" + CombatDirector.instancesList.Count)); if (!NetworkServer.active) { return; } chosenEliteDef = null; if (howManyTimesAddedTier2 <= Run.instance.NetworkstageClearCount / 5) { howManyTimesAddedTier2++; Debug.Log((object)"Add Tier 2 to Brigade"); forRandomization.AddRange(Tier2EliteDefs); forRandomization.AddRange(Tier2EliteDefs); } switch (SceneInfo.instance.sceneDef.baseSceneName) { case "moon": case "moon2": chosenEliteDef = Elites.Lunar; break; case "itmoon": if (Run.instance.treasureRng.RangeInt(0, 5) == 0) { chosenEliteDef = Elites.Lunar; } break; case "voidraid": if (Run.instance.treasureRng.RangeInt(0, 4) == 0) { chosenEliteDef = Elites.Void; } break; case "conduitcanyon": chosenEliteDef = Elites.CollectiveWeak; break; default: if (Run.instance.treasureRng.RangeInt(0, 200) == 0 && Elites.Void.IsAvailable()) { chosenEliteDef = Elites.Void; } else { chosenEliteDef = forRandomization[Run.instance.treasureRng.RangeInt(0, forRandomization.Count)]; } break; } if ((Object)(object)chosenEliteDef == (Object)null) { Debug.LogError((object)"NO ELITE DEF FOUND"); } int itemCountGlobal = Util.GetItemCountGlobal(Items.RandomlyLunar.itemIndex, false, false); if (itemCountGlobal > 0) { itemCountGlobal++; if (Run.instance.spawnRng.nextNormalizedFloat < 0.05f * (float)itemCountGlobal) { chosenEliteDef = Elites.Lunar; } } if (Run.instance is WeeklyRun) { Run instance = Run.instance; ((WeeklyRun)((instance is WeeklyRun) ? instance : null)).bossAffixes = (EquipmentIndex[])(object)new EquipmentIndex[1] { (EquipmentIndex)(int)chosenEliteDef.eliteEquipmentDef.equipmentIndex }; } Debug.Log((object)("Artifact of Brigade: This stages only Elite " + ((Object)chosenEliteDef).name)); float num = 6f; if (chosenEliteDef.healthBoostCoefficient > 8f) { num = 30f; } EliteTierDef[] array = (EliteTierDef[])(object)new EliteTierDef[3]; EliteTierDef val = new EliteTierDef(); val.costMultiplier = 1f; val.eliteTypes = (EliteDef[])(object)new EliteDef[1]; val.canSelectWithoutAvailableEliteDef = true; val.isAvailable = (EliteRules rules) => !CombatDirector.IsEliteOnlyArtifactActive(); array[0] = val; val = new EliteTierDef(); val.costMultiplier = num * 0.8f; val.eliteTypes = (EliteDef[])(object)new EliteDef[1] { chosenEliteDef }; val.isAvailable = (EliteRules rules) => !CombatDirector.IsEliteOnlyArtifactActive(); val.canSelectWithoutAvailableEliteDef = false; array[1] = val; val = new EliteTierDef(); val.costMultiplier = num; val.eliteTypes = (EliteDef[])(object)new EliteDef[1] { chosenEliteDef }; val.isAvailable = (EliteRules rules) => CombatDirector.IsEliteOnlyArtifactActive(); val.canSelectWithoutAvailableEliteDef = false; array[2] = val; CombatDirector.eliteTiers = array; if (Object.op_Implicit((Object)(object)SceneInfo.instance) && Object.op_Implicit((Object)(object)ClassicStageInfo.instance)) { ((MonoBehaviour)SceneInfo.instance).StartCoroutine(DelayedBrigadeMessage(chosenEliteDef.modifierToken, 1.2f)); return; } Chat.SendBroadcastChat((ChatMessageBase)(object)new BrigadeMessage { eliteNameToken = chosenEliteDef.modifierToken }); } [IteratorStateMachine(typeof(<DelayedBrigadeMessage>d__12))] public static IEnumerator DelayedBrigadeMessage(string elite, float delay) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <DelayedBrigadeMessage>d__12(0) { elite = elite, delay = delay }; } } public class Dissimilarity { public static readonly Random random = new Random(); public static DirectorCardCategorySelection mixInteractablesCards = ScriptableObject.CreateInstance<DirectorCardCategorySelection>(); public static DirectorCardCategorySelection TrimmedmixInteractablesCards = ScriptableObject.CreateInstance<DirectorCardCategorySelection>(); public static void Start() { ((Object)mixInteractablesCards).name = "dccsMixInteractableMaster"; ((Object)TrimmedmixInteractablesCards).name = "dccsMixInteractableTrimmed"; DCCSmaker(); } public static void OnArtifactDisable() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Expected O, but got Unknown ClassicStageInfo.RebuildCards -= new hook_RebuildCards(ForceMixInteractables_ClassicStageInfo_RebuildCards); SceneDirector.onPrePopulateSceneServer -= LunarTeleporterEvery5Stages; } public static void OnArtifactEnable() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Expected O, but got Unknown ClassicStageInfo.RebuildCards += new hook_RebuildCards(ForceMixInteractables_ClassicStageInfo_RebuildCards); SceneDirector.onPrePopulateSceneServer += LunarTeleporterEvery5Stages; DissimWander_LunarSeer.PopulateSeerList(); } private static void LunarTeleporterEvery5Stages(SceneDirector obj) { if (Run.instance.NetworkstageClearCount % 5 == 4) { obj.teleporterSpawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscLunarTeleporter"); } } private static void ForceMixInteractables_ClassicStageInfo_RebuildCards(orig_RebuildCards orig, ClassicStageInfo self, DirectorCardCategorySelection forcedMonsterCategory, DirectorCardCategorySelection forcedInteractableCategory) { MakeTrimmerMixInteractablesDCCS(); orig.Invoke(self, forcedInteractableCategory, TrimmedmixInteractablesCards); } public static void ModSupport() { //IL_01ff: Unknown result type (might be due to invalid IL or missing references) //IL_0204: Unknown result type (might be due to invalid IL or missing references) //IL_020d: Unknown result type (might be due to invalid IL or missing references) //IL_0216: Expected O, but got Unknown //IL_01b0: Unknown result type (might be due to invalid IL or missing references) //IL_01b5: Unknown result type (might be due to invalid IL or missing references) //IL_01be: Unknown result type (might be due to invalid IL or missing references) //IL_01c7: Expected O, but got Unknown //IL_0226: 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_0234: Unknown result type (might be due to invalid IL or missing references) //IL_023d: Expected O, but got Unknown //IL_015c: Unknown result type (might be due to invalid IL or missing references) //IL_0161: Unknown result type (might be due to invalid IL or missing references) //IL_016a: Unknown result type (might be due to invalid IL or missing references) //IL_0173: Expected O, but got Unknown //IL_0185: Unknown result type (might be due to invalid IL or missing references) //IL_018a: Unknown result type (might be due to invalid IL or missing references) //IL_0193: Unknown result type (might be due to invalid IL or missing references) //IL_019d: Expected O, but got Unknown //IL_0140: Unknown result type (might be due to invalid IL or missing references) //IL_0145: Unknown result type (might be due to invalid IL or missing references) //IL_014e: Unknown result type (might be due to invalid IL or missing references) //IL_0157: Expected O, but got Unknown //IL_01d7: Unknown result type (might be due to invalid IL or missing references) //IL_01dc: Unknown result type (might be due to invalid IL or missing references) //IL_01e5: Unknown result type (might be due to invalid IL or missing references) //IL_01ef: Expected O, but got Unknown InteractableSpawnCard[] array = Object.FindObjectsOfType(typeof(InteractableSpawnCard)) as InteractableSpawnCard[]; for (int i = 0; i < array.Length; i++) { switch (((Object)array[i]).name) { case "MysticsItems_iscShrineLegendary": { DirectorCard val7 = new DirectorCard { spawnCard = (SpawnCard)(object)array[i], selectionWeight = 50 }; break; } case "iscTripleShopRed": { DirectorCard val6 = new DirectorCard { spawnCard = (SpawnCard)(object)array[i], selectionWeight = 11 }; mixInteractablesCards.AddCard(5, val6); break; } case "midcDroneTable": { DirectorCard val5 = new DirectorCard { spawnCard = (SpawnCard)(object)array[i], selectionWeight = 100 }; mixInteractablesCards.AddCard(6, val5); break; } case "msidcCloneDrone": { DirectorCard val4 = new DirectorCard { spawnCard = (SpawnCard)(object)array[i], selectionWeight = 7 }; mixInteractablesCards.AddCard(3, val4); break; } case "msidcShockDrone": { DirectorCard val3 = new DirectorCard { spawnCard = (SpawnCard)(object)array[i], selectionWeight = 14 }; mixInteractablesCards.AddCard(3, val3); break; } case "iscCloakedShrine": { DirectorCard val2 = new DirectorCard { spawnCard = (SpawnCard)(object)array[i], selectionWeight = 8 }; mixInteractablesCards.AddCard(5, val2); break; } case "iscAegisShrine": { DirectorCard val = new DirectorCard { spawnCard = (SpawnCard)(object)array[i], selectionWeight = 8 }; mixInteractablesCards.AddCard(5, val); break; } } } } public static void DCCSmaker() { //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0033: 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_0041: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_009b: 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_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00f5: Unknown result type (might be due to invalid IL or missing references) //IL_00fc: Unknown result type (might be due to invalid IL or missing references) //IL_0103: 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_0166: Unknown result type (might be due to invalid IL or missing references) //IL_016e: Unknown result type (might be due to invalid IL or missing references) //IL_0176: Unknown result type (might be due to invalid IL or missing references) //IL_017e: Unknown result type (might be due to invalid IL or missing references) //IL_019b: 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_01b0: Unknown result type (might be due to invalid IL or missing references) //IL_01bd: Expected O, but got Unknown //IL_01bd: Unknown result type (might be due to invalid IL or missing references) //IL_01c2: Unknown result type (might be due to invalid IL or missing references) //IL_01d2: Unknown result type (might be due to invalid IL or missing references) //IL_01dc: Expected O, but got Unknown //IL_01dc: Unknown result type (might be due to invalid IL or missing references) //IL_01e1: Unknown result type (might be due to invalid IL or missing references) //IL_01f1: Unknown result type (might be due to invalid IL or missing references) //IL_01fb: Expected O, but got Unknown //IL_01fb: Unknown result type (might be due to invalid IL or missing references) //IL_0200: Unknown result type (might be due to invalid IL or missing references) //IL_0210: Unknown result type (might be due to invalid IL or missing references) //IL_021a: Expected O, but got Unknown //IL_021a: Unknown result type (might be due to invalid IL or missing references) //IL_021f: Unknown result type (might be due to invalid IL or missing references) //IL_022f: Unknown result type (might be due to invalid IL or missing references) //IL_0239: Expected O, but got Unknown //IL_0239: Unknown result type (might be due to invalid IL or missing references) //IL_023e: Unknown result type (might be due to invalid IL or missing references) //IL_024e: Unknown result type (might be due to invalid IL or missing references) //IL_0258: Expected O, but got Unknown //IL_0258: Unknown result type (might be due to invalid IL or missing references) //IL_025d: Unknown result type (might be due to invalid IL or missing references) //IL_026d: Unknown result type (might be due to invalid IL or missing references) //IL_0277: Expected O, but got Unknown //IL_0277: Unknown result type (might be due to invalid IL or missing references) //IL_027c: Unknown result type (might be due to invalid IL or missing references) //IL_028c: Unknown result type (might be due to invalid IL or missing references) //IL_0296: Expected O, but got Unknown //IL_0296: Unknown result type (might be due to invalid IL or missing references) //IL_029b: Unknown result type (might be due to invalid IL or missing references) //IL_02ab: Unknown result type (might be due to invalid IL or missing references) //IL_02b5: Expected O, but got Unknown //IL_02b5: Unknown result type (might be due to invalid IL or missing references) //IL_02ba: Unknown result type (might be due to invalid IL or missing references) //IL_02ca: Unknown result type (might be due to invalid IL or missing references) //IL_02d4: Expected O, but got Unknown //IL_02d4: Unknown result type (might be due to invalid IL or missing references) //IL_02d9: Unknown result type (might be due to invalid IL or missing references) //IL_02e9: Unknown result type (might be due to invalid IL or missing references) //IL_02f3: Expected O, but got Unknown //IL_02f3: 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_02fe: Unknown result type (might be due to invalid IL or missing references) //IL_0303: Unknown result type (might be due to invalid IL or missing references) //IL_0311: Unknown result type (might be due to invalid IL or missing references) //IL_031b: Expected O, but got Unknown //IL_031b: Unknown result type (might be due to invalid IL or missing references) //IL_0320: Unknown result type (might be due to invalid IL or missing references) //IL_0326: Unknown result type (might be due to invalid IL or missing references) //IL_032b: Unknown result type (might be due to invalid IL or missing references) //IL_0339: Unknown result type (might be due to invalid IL or missing references) //IL_0343: Expected O, but got Unknown //IL_0343: Unknown result type (might be due to invalid IL or missing references) //IL_0348: Unknown result type (might be due to invalid IL or missing references) //IL_034e: Unknown result type (might be due to invalid IL or missing references) //IL_0353: Unknown result type (might be due to invalid IL or missing references) //IL_0361: Unknown result type (might be due to invalid IL or missing references) //IL_036b: Expected O, but got Unknown //IL_036b: Unknown result type (might be due to invalid IL or missing references) //IL_0370: Unknown result type (might be due to invalid IL or missing references) //IL_0376: Unknown result type (might be due to invalid IL or missing references) //IL_037b: Unknown result type (might be due to invalid IL or missing references) //IL_0389: Unknown result type (might be due to invalid IL or missing references) //IL_0393: Expected O, but got Unknown //IL_0393: Unknown result type (might be due to invalid IL or missing references) //IL_0398: Unknown result type (might be due to invalid IL or missing references) //IL_039e: Unknown result type (might be due to invalid IL or missing references) //IL_03a3: Unknown result type (might be due to invalid IL or missing references) //IL_03b1: Unknown result type (might be due to invalid IL or missing references) //IL_03bb: Expected O, but got Unknown //IL_03bb: Unknown result type (might be due to invalid IL or missing references) //IL_03c0: Unknown result type (might be due to invalid IL or missing references) //IL_03d0: Unknown result type (might be due to invalid IL or missing references) //IL_03da: Expected O, but got Unknown //IL_03db: Unknown result type (might be due to invalid IL or missing references) //IL_03e0: Unknown result type (might be due to invalid IL or missing references) //IL_03f0: Unknown result type (might be due to invalid IL or missing references) //IL_03fa: Expected O, but got Unknown //IL_03ff: Unknown result type (might be due to invalid IL or missing references) //IL_0404: Unknown result type (might be due to invalid IL or missing references) //IL_0429: Unknown result type (might be due to invalid IL or missing references) //IL_042e: Unknown result type (might be due to invalid IL or missing references) //IL_0436: Unknown result type (might be due to invalid IL or missing references) //IL_0440: Expected O, but got Unknown //IL_0440: Unknown result type (might be due to invalid IL or missing references) //IL_0445: Unknown result type (might be due to invalid IL or missing references) //IL_0455: Unknown result type (might be due to invalid IL or missing references) //IL_0462: Expected O, but got Unknown //IL_0462: Unknown result type (might be due to invalid IL or missing references) //IL_0467: Unknown result type (might be due to invalid IL or missing references) //IL_0477: Unknown result type (might be due to invalid IL or missing references) //IL_0484: Expected O, but got Unknown //IL_0484: Unknown result type (might be due to invalid IL or missing references) //IL_0489: Unknown result type (might be due to invalid IL or missing references) //IL_0499: Unknown result type (might be due to invalid IL or missing references) //IL_04a6: Expected O, but got Unknown //IL_04a6: Unknown result type (might be due to invalid IL or missing references) //IL_04ab: Unknown result type (might be due to invalid IL or missing references) //IL_04bb: Unknown result type (might be due to invalid IL or missing references) //IL_04c8: Expected O, but got Unknown //IL_04c8: Unknown result type (might be due to invalid IL or missing references) //IL_04cd: Unknown result type (might be due to invalid IL or missing references) //IL_04dd: Unknown result type (might be due to invalid IL or missing references) //IL_04ea: Expected O, but got Unknown //IL_04ea: Unknown result type (might be due to invalid IL or missing references) //IL_04ef: Unknown result type (might be due to invalid IL or missing references) //IL_04ff: Unknown result type (might be due to invalid IL or missing references) //IL_0509: Expected O, but got Unknown //IL_0509: Unknown result type (might be due to invalid IL or missing references) //IL_050e: Unknown result type (might be due to invalid IL or missing references) //IL_051e: Unknown result type (might be due to invalid IL or missing references) //IL_0526: Unknown result type (might be due to invalid IL or missing references) //IL_052f: Expected O, but got Unknown //IL_052f: Unknown result type (might be due to invalid IL or missing references) //IL_0534: Unknown result type (might be due to invalid IL or missing references) //IL_053a: Unknown result type (might be due to invalid IL or missing references) //IL_053f: Unknown result type (might be due to invalid IL or missing references) //IL_054d: Unknown result type (might be due to invalid IL or missing references) //IL_0555: Unknown result type (might be due to invalid IL or missing references) //IL_055e: Expected O, but got Unknown //IL_055e: Unknown result type (might be due to invalid IL or missing references) //IL_0563: Unknown result type (might be due to invalid IL or missing references) //IL_0573: Unknown result type (might be due to invalid IL or missing references) //IL_057d: Expected O, but got Unknown //IL_057d: Unknown result type (might be due to invalid IL or missing references) //IL_0582: Unknown result type (might be due to invalid IL or missing references) //IL_0592: Unknown result type (might be due to invalid IL or missing references) //IL_059c: Expected O, but got Unknown //IL_059c: Unknown result type (might be due to invalid IL or missing references) //IL_05a1: Unknown result type (might be due to invalid IL or missing references) //IL_05b1: Unknown result type (might be due to invalid IL or missing references) //IL_05bb: Expected O, but got Unknown //IL_05bb: Unknown result type (might be due to invalid IL or missing references) //IL_05c0: Unknown result type (might be due to invalid IL or missing references) //IL_05d0: Unknown result type (might be due to invalid IL or missing references) //IL_05da: Expected O, but got Unknown //IL_05da: Unknown result type (might be due to invalid IL or missing references) //IL_05df: Unknown result type (might be due to invalid IL or missing references) //IL_05ef: Unknown result type (might be due to invalid IL or missing references) //IL_05f9: Expected O, but got Unknown //IL_05f9: Unknown result type (might be due to invalid IL or missing references) //IL_05fe: Unknown result type (might be due to invalid IL or missing references) //IL_060e: Unknown result type (might be due to invalid IL or missing references) //IL_0618: Expected O, but got Unknown //IL_0618: Unknown result type (might be due to invalid IL or missing references) //IL_061d: Unknown result type (might be due to invalid IL or missing references) //IL_062d: Unknown result type (might be due to invalid IL or missing references) //IL_0637: Expected O, but got Unknown //IL_0637: Unknown result type (might be due to invalid IL or missing references) //IL_063c: Unknown result type (might be due to invalid IL or missing references) //IL_064c: Unknown result type (might be due to invalid IL or missing references) //IL_0654: Unknown result type (might be due to invalid IL or missing references) //IL_065d: Expected O, but got Unknown //IL_065d: Unknown result type (might be due to invalid IL or missing references) //IL_0662: Unknown result type (might be due to invalid IL or missing references) //IL_0672: Unknown result type (might be due to invalid IL or missing references) //IL_067c: Expected O, but got Unknown //IL_067c: Unknown result type (might be due to invalid IL or missing references) //IL_0681: Unknown result type (might be due to invalid IL or missing references) //IL_0691: Unknown result type (might be due to invalid IL or missing references) //IL_069b: Expected O, but got Unknown //IL_069b: Unknown result type (might be due to invalid IL or missing references) //IL_06a0: Unknown result type (might be due to invalid IL or missing references) //IL_06b0: Unknown result type (might be due to invalid IL or missing references) //IL_06ba: Expected O, but got Unknown //IL_06ba: Unknown result type (might be due to invalid IL or missing references) //IL_06bf: Unknown result type (might be due to invalid IL or missing references) //IL_06cf: Unknown result type (might be due to invalid IL or missing references) //IL_06d9: Expected O, but got Unknown //IL_06d9: Unknown result type (might be due to invalid IL or missing references) //IL_06de: Unknown result type (might be due to invalid IL or missing references) //IL_06ee: Unknown result type (might be due to invalid IL or missing references) //IL_06f8: Expected O, but got Unknown //IL_06f8: Unknown result type (might be due to invalid IL or missing references) //IL_06fd: Unknown result type (might be due to invalid IL or missing references) //IL_070d: Unknown result type (might be due to invalid IL or missing references) //IL_0715: Unknown result type (might be due to invalid IL or missing references) //IL_071e: Expected O, but got Unknown //IL_071e: Unknown result type (might be due to invalid IL or missing references) //IL_0723: Unknown result type (might be due to invalid IL or missing references) //IL_0733: Unknown result type (might be due to invalid IL or missing references) //IL_073b: Unknown result type (might be due to invalid IL or missing references) //IL_0744: Expected O, but got Unknown //IL_0744: Unknown result type (might be due to invalid IL or missing references) //IL_0749: Unknown result type (might be due to invalid IL or missing references) //IL_0759: Unknown result type (might be due to invalid IL or missing references) //IL_0763: Expected O, but got Unknown //IL_0763: Unknown result type (might be due to invalid IL or missing references) //IL_0768: Unknown result type (might be due to invalid IL or missing references) //IL_076e: Unknown result type (might be due to invalid IL or missing references) //IL_0773: Unknown result type (might be due to invalid IL or missing references) //IL_0781: Unknown result type (might be due to invalid IL or missing references) //IL_0789: Unknown result type (might be due to invalid IL or missing references) //IL_0792: Expected O, but got Unknown //IL_0792: Unknown result type (might be due to invalid IL or missing references) //IL_0797: Unknown result type (might be due to invalid IL or missing references) //IL_079d: Unknown result type (might be due to invalid IL or missing references) //IL_07a2: Unknown result type (might be due to invalid IL or missing references) //IL_07b0: Unknown result type (might be due to invalid IL or missing references) //IL_07b8: Unknown result type (might be due to invalid IL or missing references) //IL_07c1: Expected O, but got Unknown //IL_07c1: Unknown result type (might be due to invalid IL or missing references) //IL_07c6: Unknown result type (might be due to invalid IL or missing references) //IL_07d6: Unknown result type (might be due to invalid IL or missing references) //IL_07dd: Unknown result type (might be due to invalid IL or missing references) //IL_07e6: Expected O, but got Unknown //IL_07e6: Unknown result type (might be due to invalid IL or missing references) //IL_07eb: Unknown result type (might be due to invalid IL or missing references) //IL_07fb: Unknown result type (might be due to invalid IL or missing references) //IL_0802: Unknown result type (might be due to invalid IL or missing references) //IL_080b: Expected O, but got Unknown //IL_080b: Unknown result type (might be due to invalid IL or missing references) //IL_0810: Unknown result type (might be due to invalid IL or missing references) //IL_0818: Unknown result type (might be due to invalid IL or missing references) //IL_0822: Expected O, but got Unknown //IL_0822: Unknown result type (might be due to invalid IL or missing references) //IL_0827: Unknown result type (might be due to invalid IL or missing references) //IL_0837: Unknown result type (might be due to invalid IL or missing references) //IL_0841: Expected O, but got Unknown //IL_0841: Unknown result type (might be due to invalid IL or missing references) //IL_0846: Unknown result type (might be due to invalid IL or missing references) //IL_084c: Unknown result type (might be due to invalid IL or missing references) //IL_0851: Unknown result type (might be due to invalid IL or missing references) //IL_085f: Unknown result type (might be due to invalid IL or missing references) //IL_0869: Expected O, but got Unknown //IL_0869: Unknown result type (might be due to invalid IL or missing references) //IL_086e: Unknown result type (might be due to invalid IL or missing references) //IL_087e: Unknown result type (might be due to invalid IL or missing references) //IL_088b: Expected O, but got Unknown //IL_088b: Unknown result type (might be due to invalid IL or missing references) //IL_0890: Unknown result type (might be due to invalid IL or missing references) //IL_08a0: Unknown result type (might be due to invalid IL or missing references) //IL_08aa: Expected O, but got Unknown //IL_08aa: Unknown result type (might be due to invalid IL or missing references) //IL_08af: Unknown result type (might be due to invalid IL or missing references) //IL_08bf: Unknown result type (might be due to invalid IL or missing references) //IL_08c7: Unknown result type (might be due to invalid IL or missing references) //IL_08d0: Expected O, but got Unknown //IL_08d0: Unknown result type (might be due to invalid IL or missing references) //IL_08d5: Unknown result type (might be due to invalid IL or missing references) //IL_08e5: Unknown result type (might be due to invalid IL or missing references) //IL_08ed: Unknown result type (might be due to invalid IL or missing references) //IL_08f6: Expected O, but got Unknown //IL_08f6: Unknown result type (might be due to invalid IL or missing references) //IL_08fb: Unknown result type (might be due to invalid IL or missing references) //IL_090b: Unknown result type (might be due to invalid IL or missing references) //IL_0915: Expected O, but got Unknown //IL_0915: Unknown result type (might be due to invalid IL or missing references) //IL_091a: Unknown result type (might be due to invalid IL or missing references) //IL_0921: Unknown result type (might be due to invalid IL or missing references) //IL_092b: Expected O, but got Unknown //IL_092b: Unknown result type (might be due to invalid IL or missing references) //IL_0930: Unknown result type (might be due to invalid IL or missing references) //IL_0937: Unknown result type (might be due to invalid IL or missing references) //IL_093f: Unknown result type (might be due to invalid IL or missing references) //IL_0948: Expected O, but got Unknown //IL_0948: Unknown result type (might be due to invalid IL or missing references) //IL_094d: Unknown result type (might be due to invalid IL or missing references) //IL_0954: Unknown result type (might be due to invalid IL or missing references) //IL_095c: Unknown result type (might be due to invalid IL or missing references) //IL_0965: Expected O, but got Unknown //IL_0965: Unknown result type (might be due to invalid IL or missing references) //IL_096a: Unknown result type (might be due to invalid IL or missing references) //IL_097a: Unknown result type (might be due to invalid IL or missing references) //IL_0982: Unknown result type (might be due to invalid IL or missing references) //IL_098b: Expected O, but got Unknown //IL_098b: Unknown result type (might be due to invalid IL or missing references) //IL_0990: Unknown result type (might be due to invalid IL or missing references) //IL_09a0: Unknown result type (might be due to invalid IL or missing references) //IL_09aa: Expected O, but got Unknown InteractableSpawnCard val = ScriptableObject.CreateInstance<InteractableSpawnCard>(); ((Object)val).name = "iscSoupWhiteGreen"; ((SpawnCard)val).prefab = LegacyResourcesAPI.Load<GameObject>("Prefabs/networkedobjects/LunarCauldron, WhiteToGreen"); ((SpawnCard)val).sendOverNetwork = true; ((SpawnCard)val).hullSize = (HullClassification)1; ((SpawnCard)val).nodeGraphType = (GraphType)0; ((SpawnCard)val).requiredFlags = (NodeFlags)0; ((SpawnCard)val).forbiddenFlags = (NodeFlags)8; ((SpawnCard)val).directorCreditCost = 3; ((SpawnCard)val).occupyPosition = true; ((SpawnCard)val).eliteRules = (EliteRules)0; val.orientToFloor = true; val.slightlyRandomizeOrientation = false; val.skipSpawnWhenSacrificeArtifactEnabled = false; InteractableSpawnCard val2 = ScriptableObject.CreateInstance<InteractableSpawnCard>(); ((Object)val2).name = "iscSoupGreenRed"; ((SpawnCard)val2).prefab = LegacyResourcesAPI.Load<GameObject>("Prefabs/networkedobjects/LunarCauldron, GreenToRed Variant"); ((SpawnCard)val2).sendOverNetwork = true; ((SpawnCard)val2).hullSize = (HullClassification)1; ((SpawnCard)val2).nodeGraphType = (GraphType)0; ((SpawnCard)val2).requiredFlags = (NodeFlags)0; ((SpawnCard)val2).forbiddenFlags = (NodeFlags)8; ((SpawnCard)val2).directorCreditCost = 2; ((SpawnCard)val2).occupyPosition = true; val2.orientToFloor = true; InteractableSpawnCard val3 = ScriptableObject.CreateInstance<InteractableSpawnCard>(); ((Object)val3).name = "iscSoupRedWhite"; ((SpawnCard)val3).prefab = LegacyR