Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of WolfoArtifacts v3.5.4
ArtifactDissimilarity.dll
Decompiled 4 months 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+97ddb8f94662e1819d7513ab1a589d747ff3372b")] [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 = Random.RandomRangeInt(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(Defs.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}--\n"; 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); } 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 FilterOutUnavailableCards(DirectorCard card) { if (card.selectionWeight == 0) { return false; } if (!card.IsAvailable()) { return false; } 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 Kith_DoNotRepeatLunarEquipmentOnly(DirectorCard card) { return !Kith.blacklistedForRepeat.Contains(card.GetSpawnCard()); } public static bool RemoveUnavailable(DirectorCard card) { return !card.IsAvailable(); } 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.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) { DCCSInput.RemoveCardsThatFailFilter((Predicate<DirectorCard>)FilterOutUnavailableCards); 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_038b: Unknown result type (might be due to invalid IL or missing references) //IL_0390: 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_03c3: Unknown result type (might be due to invalid IL or missing references) //IL_03c8: Unknown result type (might be due to invalid IL or missing references) //IL_03a7: Unknown result type (might be due to invalid IL or missing references) //IL_03ac: Unknown result type (might be due to invalid IL or missing references) //IL_03fb: Unknown result type (might be due to invalid IL or missing references) //IL_0400: Unknown result type (might be due to invalid IL or missing references) //IL_03df: Unknown result type (might be due to invalid IL or missing references) //IL_03e4: Unknown result type (might be due to invalid IL or missing references) //IL_0b90: Unknown result type (might be due to invalid IL or missing references) //IL_0b95: Unknown result type (might be due to invalid IL or missing references) //IL_0b71: Unknown result type (might be due to invalid IL or missing references) //IL_0b76: Unknown result type (might be due to invalid IL or missing references) //IL_0bc8: Unknown result type (might be due to invalid IL or missing references) //IL_0bcd: Unknown result type (might be due to invalid IL or missing references) //IL_0bac: Unknown result type (might be due to invalid IL or missing references) //IL_0bb1: Unknown result type (might be due to invalid IL or missing references) //IL_0c00: Unknown result type (might be due to invalid IL or missing references) //IL_0c05: Unknown result type (might be due to invalid IL or missing references) //IL_07b1: Unknown result type (might be due to invalid IL or missing references) //IL_07b6: Unknown result type (might be due to invalid IL or missing references) //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_07e9: Unknown result type (might be due to invalid IL or missing references) //IL_07ee: Unknown result type (might be due to invalid IL or missing references) //IL_07cd: Unknown result type (might be due to invalid IL or missing references) //IL_07d2: Unknown result type (might be due to invalid IL or missing references) //IL_0821: Unknown result type (might be due to invalid IL or missing references) //IL_0826: Unknown result type (might be due to invalid IL or missing references) //IL_0be4: Unknown result type (might be due to invalid IL or missing references) //IL_0be9: Unknown result type (might be due to invalid IL or missing references) //IL_0805: Unknown result type (might be due to invalid IL or missing references) //IL_080a: 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(Defs.Wander_Def) || (RunArtifactManager.instance.IsArtifactEnabled(Defs.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", "Kith allow interactables earlier.", true, "Allows interactables to spawn a stage earlier than usual."); 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 static class Defs { 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 static void MakeArtifacts() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Expected O, but got Unknown //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Expected O, but got Unknown //IL_00e6: Unknown result type (might be due to invalid IL or missing references) //IL_00eb: Unknown result type (might be due to invalid IL or missing references) //IL_00f4: Unknown result type (might be due to invalid IL or missing references) //IL_00f9: Unknown result type (might be due to invalid IL or missing references) //IL_0102: Unknown result type (might be due to invalid IL or missing references) //IL_0107: Unknown result type (might be due to invalid IL or missing references) //IL_01ca: Unknown result type (might be due to invalid IL or missing references) //IL_01cf: Unknown result type (might be due to invalid IL or missing references) //IL_01d9: Unknown result type (might be due to invalid IL or missing references) //IL_01de: Unknown result type (might be due to invalid IL or missing references) //IL_01e8: Unknown result type (might be due to invalid IL or missing references) //IL_01ed: Unknown result type (might be due to invalid IL or missing references) //IL_02b3: Unknown result type (might be due to invalid IL or missing references) //IL_02b8: Unknown result type (might be due to invalid IL or missing references) //IL_02c2: Unknown result type (might be due to invalid IL or missing references) //IL_02c7: Unknown result type (might be due to invalid IL or missing references) //IL_02d1: Unknown result type (might be due to invalid IL or missing references) //IL_02d6: 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_03ab: Unknown result type (might be due to invalid IL or missing references) //IL_03b0: Unknown result type (might be due to invalid IL or missing references) //IL_03ba: Unknown result type (might be due to invalid IL or missing references) //IL_03bf: Unknown result type (might be due to invalid IL or missing references) //IL_0485: Unknown result type (might be due to invalid IL or missing references) //IL_048a: Unknown result type (might be due to invalid IL or missing references) //IL_0494: 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_04a3: Unknown result type (might be due to invalid IL or missing references) //IL_04a8: Unknown result type (might be due to invalid IL or missing references) RunArtifactManager.onArtifactEnabledGlobal += new ArtifactStateChangeDelegate(ArtifactEnabledGlobal); RunArtifactManager.onArtifactDisabledGlobal += new ArtifactStateChangeDelegate(ArtifactDisabledGlobal); 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 = "MixStageOrder"; 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 = "RandomItemsPerStage"; 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; } } public static void ArtifactEnabledGlobal(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 static void ArtifactDisabledGlobal(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(); } } } 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.3")] [NetworkCompatibility(/*Could not decode attribute arguments.*/)] public class Main : BaseUnityPlugin { [CompilerGenerated] private sealed class <DelayedRespawn>d__3 : 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__3(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 void Awake() { //IL_0096: Unknown result type (might be due to invalid IL or missing references) //IL_00a0: Expected O, but got Unknown //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00b2: Expected O, but got Unknown Assets.Init(((BaseUnityPlugin)this).Info); WConfig.InitConfig(); Defs.MakeArtifacts(); SimuWave.MakeSimuWaves(); Spiriting.Start(); Dissimilarity.Start(); DissimWander_LunarSeer.Start(); Kith.Start(); Doubles.Start(); Flamboyance.Start(); ((ResourceAvailability)(ref GameModeCatalog.availability)).CallWhenAvailable((Action)ModSupport); ChatMessageBase.chatMessageTypeToIndex.Add(typeof(Brigade.BrigadeMessage), (byte)ChatMessageBase.chatMessageIndexToType.Count); ChatMessageBase.chatMessageIndexToType.Add(typeof(Brigade.BrigadeMessage)); ArtifactTrialMissionController.Awake += new hook_Awake(SetArtifactWorldArtifactToRandom); InfiniteTowerRun.OverrideRuleChoices += new hook_OverrideRuleChoices(RemoveArtifactsFromSimu); } private void SetArtifactWorldArtifactToRandom(orig_Awake orig, ArtifactTrialMissionController self) { if (NetworkServer.active && (Object)(object)ArtifactTrialMissionController.trialArtifact == (Object)null) { ArtifactTrialMissionController.trialArtifact = ArtifactCatalog.GetArtifactDef((ArtifactIndex)Random.RandomRangeInt(0, ArtifactCatalog.artifactCount)); } orig.Invoke(self); } private void RemoveArtifactsFromSimu(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." + Defs.Wander_Def.cachedName).FindChoice("Off")); } [IteratorStateMachine(typeof(<DelayedRespawn>d__3))] public static IEnumerator DelayedRespawn(PlayerCharacterMasterController playerCharacterMasterController, float delay) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <DelayedRespawn>d__3(0) { playerCharacterMasterController = playerCharacterMasterController, delay = delay }; } 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; } } } } public class SimuWave { public static void MakeSimuWaves() { //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 = Defs.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 = Defs.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 = Defs.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 = Defs.Spiriting_Def; val6.GetComponent<InfiniteTowerWaveController>().overlayEntries[1].prefab = val7; ((Component)val7.transform.GetChild(0).GetChild(0).GetChild(0)).GetComponent<Image>().sprite = Defs.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 = Defs.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 = Defs.Transpose_Def; val10.GetComponent<InfiniteTowerWaveController>().overlayEntries[1].prefab = val11; ((Component)val11.transform.GetChild(0).GetChild(0).GetChild(0)).GetComponent<Image>().sprite = Defs.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 = Defs.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); } } } 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 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_007a: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Expected O, but got Unknown //IL_0096: 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_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00ac: Expected O, but got Unknown //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_00c9: Unknown result type (might be due to invalid IL or missing references) //IL_00d3: Expected O, but got Unknown //IL_00e3: Unknown result type (might be due to invalid IL or missing references) //IL_00e8: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: Unknown result type (might be due to invalid IL or missing references) //IL_00fa: Expected O, but got Unknown //IL_010a: Unknown result type (might be due to invalid IL or missing references) //IL_010f: Unknown result type (might be due to invalid IL or missing references) //IL_0118: Unknown result type (might be due to invalid IL or missing references) //IL_0121: 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 val5 = new DirectorCard { spawnCard = (SpawnCard)(object)array[i], selectionWeight = 50 }; 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_03da: Unknown result type (might be due to invalid IL or missing references) //IL_03df: Unknown result type (might be due to invalid IL or missing references) //IL_03ef: Unknown result type (might be due to invalid IL or missing references) //IL_03f9: Expected O, but got Unknown //IL_03fe: Unknown result type (might be due to invalid IL or missing references) //IL_0403: Unknown result type (might be due to invalid IL or missing references) //IL_0428: Unknown result type (might be due to invalid IL or missing references) //IL_042d: Unknown result type (might be due to invalid IL or missing references) //IL_0435: Unknown result type (might be due to invalid IL or missing references) //IL_043f: Expected O, but got Unknown //IL_043f: Unknown result type (might be due to invalid IL or missing references) //IL_0444: Unknown result type (might be due to invalid IL or missing references) //IL_0454: Unknown result type (might be due to invalid IL or missing references) //IL_0461: Expected O, but got Unknown //IL_0461: Unknown result type (might be due to invalid IL or missing references) //IL_0466: Unknown result type (might be due to invalid IL or missing references) //IL_0476: Unknown result type (might be due to invalid IL or missing references) //IL_0483: Expected O, but got Unknown //IL_0483: Unknown result type (might be due to invalid IL or missing references) //IL_0488: Unknown result type (might be due to invalid IL or missing references) //IL_0498: Unknown result type (might be due to invalid IL or missing references) //IL_04a5: Expected O, but got Unknown //IL_04a5: Unknown result type (might be due to invalid IL or missing references) //IL_04aa: Unknown result type (might be due to invalid IL or missing references) //IL_04ba: Unknown result type (might be due to invalid IL or missing references) //IL_04c7: Expected O, but got Unknown //IL_04c7: Unknown result type (might be due to invalid IL or missing references) //IL_04cc: Unknown result type (might be due to invalid IL or missing references) //IL_04dc: Unknown result type (might be due to invalid IL or missing references) //IL_04e9: Expected O, but got Unknown //IL_04e9: Unknown result type (might be due to invalid IL or missing references) //IL_04ee: Unknown result type (might be due to invalid IL or missing references) //IL_04fe: Unknown result type (might be due to invalid IL or missing references) //IL_0508: Expected O, but got Unknown //IL_0508: Unknown result type (might be due to invalid IL or missing references) //IL_050d: Unknown result type (might be due to invalid IL or missing references) //IL_051d: Unknown result type (might be due to invalid IL or missing references) //IL_0525: Unknown result type (might be due to invalid IL or missing references) //IL_052e: Expected O, but got Unknown //IL_052e: Unknown result type (might be due to invalid IL or missing references) //IL_0533: Unknown result type (might be due to invalid IL or missing references) //IL_0539: Unknown result type (might be due to invalid IL or missing references) //IL_053e: Unknown result type (might be due to invalid IL or missing references) //IL_054c: Unknown result type (might be due to invalid IL or missing references) //IL_0554: Unknown result type (might be due to invalid IL or missing references) //IL_055d: Expected O, but got Unknown //IL_055d: Unknown result type (might be due to invalid IL or missing references) //IL_0562: Unknown result type (might be due to invalid IL or missing references) //IL_0572: Unknown result type (might be due to invalid IL or missing references) //IL_057c: Expected O, but got Unknown //IL_057c: Unknown result type (might be due to invalid IL or missing references) //IL_0581: Unknown result type (might be due to invalid IL or missing references) //IL_0591: Unknown result type (might be due to invalid IL or missing references) //IL_059b: Expected O, but got Unknown //IL_059b: Unknown result type (might be due to invalid IL or missing references) //IL_05a0: Unknown result type (might be due to invalid IL or missing references) //IL_05b0: Unknown result type (might be due to invalid IL or missing references) //IL_05ba: Expected O, but got Unknown //IL_05ba: Unknown result type (might be due to invalid IL or missing references) //IL_05bf: Unknown result type (might be due to invalid IL or missing references) //IL_05cf: Unknown result type (might be due to invalid IL or missing references) //IL_05d9: Expected O, but got Unknown //IL_05d9: Unknown result type (might be due to invalid IL or missing references) //IL_05de: Unknown result type (might be due to invalid IL or missing references) //IL_05ee: Unknown result type (might be due to invalid IL or missing references) //IL_05f8: Expected O, but got Unknown //IL_05f8: Unknown result type (might be due to invalid IL or missing references) //IL_05fd: Unknown result type (might be due to invalid IL or missing references) //IL_060d: Unknown result type (might be due to invalid IL or missing references) //IL_0617: Expected O, but got Unknown //IL_0617: Unknown result type (might be due to invalid IL or missing references) //IL_061c: Unknown result type (might be due to invalid IL or missing references) //IL_062c: Unknown result type (might be due to invalid IL or missing references) //IL_0636: Expected O, but got Unknown //IL_0636: Unknown result type (might be due to invalid IL or missing references) //IL_063b: Unknown result type (might be due to invalid IL or missing references) //IL_064b: Unknown result type (might be due to invalid IL or missing references) //IL_0653: Unknown result type (might be due to invalid IL or missing references) //IL_065c: Expected O, but got Unknown //IL_065c: Unknown result type (might be due to invalid IL or missing references) //IL_0661: Unknown result type (might be due to invalid IL or missing references) //IL_0671: Unknown result type (might be due to invalid IL or missing references) //IL_067b: Expected O, but got Unknown //IL_067b: Unknown result type (might be due to invalid IL or missing references) //IL_0680: Unknown result type (might be due to invalid IL or missing references) //IL_0690: Unknown result type (might be due to invalid IL or missing references) //IL_069a: Expected O, but got Unknown //IL_069a: Unknown result type (might be due to invalid IL or missing references) //IL_069f: Unknown result type (might be due to invalid IL or missing references) //IL_06af: Unknown result type (might be due to invalid IL or missing references) //IL_06b9: Expected O, but got Unknown //IL_06b9: Unknown result type (might be due to invalid IL or missing references) //IL_06be: Unknown result type (might be due to invalid IL or missing references) //IL_06ce: Unknown result type (might be due to invalid IL or missing references) //IL_06d8: Expected O, but got Unknown //IL_06d8: Unknown result type (might be due to invalid IL or missing references) //IL_06dd: Unknown result type (might be due to invalid IL or missing references) //IL_06ed: Unknown result type (might be due to invalid IL or missing references) //IL_06f7: Expected O, but got Unknown //IL_06f7: Unknown result type (might be due to invalid IL or missing references) //IL_06fc: Unknown result type (might be due to invalid IL or missing references) //IL_070c: Unknown result type (might be due to invalid IL or missing references) //IL_0714: Unknown result type (might be due to invalid IL or missing references) //IL_071d: Expected O, but got Unknown //IL_071d: Unknown result type (might be due to invalid IL or missing references) //IL_0722: Unknown result type (might be due to invalid IL or missing references) //IL_0732: Unknown result type (might be due to invalid IL or missing references) //IL_073a: Unknown result type (might be due to invalid IL or missing references) //IL_0743: Expected O, but got Unknown //IL_0743: Unknown result type (might be due to invalid IL or missing references) //IL_0748: Unknown result type (might be due to invalid IL or missing references) //IL_0758: Unknown result type (might be due to invalid IL or missing references) //IL_0762: Expected O, but got Unknown //IL_0762: Unknown result type (might be due to invalid IL or missing references) //IL_0767: Unknown result type (might be due to invalid IL or missing references) //IL_076d: Unknown result type (might be due to invalid IL or missing references) //IL_0772: Unknown result type (might be due to invalid IL or missing references) //IL_0780: Unknown result type (might be due to invalid IL or missing references) //IL_0788: Unknown result type (might be due to invalid IL or missing references) //IL_0791: Expected O, but got Unknown //IL_0791: Unknown result type (might be due to invalid IL or missing references) //IL_0796: Unknown result type (might be due to invalid IL or missing references) //IL_079c: Unknown result type (might be due to invalid IL or missing references) //IL_07a1: Unknown result type (might be due to invalid IL or missing references) //IL_07af: Unknown result type (might be due to invalid IL or missing references) //IL_07b7: Unknown result type (might be due to invalid IL or missing references) //IL_07c0: Expected O, but got Unknown //IL_07c0: Unknown result type (might be due to invalid IL or missing references) //IL_07c5: 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_07dc: Unknown result type (might be due to invalid IL or missing references) //IL_07e5: Expected O, but got Unknown //IL_07e5: Unknown result type (might be due to invalid IL or missing references) //IL_07ea: Unknown result type (might be due to invalid IL or missing references) //IL_07fa: Unknown result type (might be due to invalid IL or missing references) //IL_0801: Unknown result type (might be due to invalid IL or missing references) //IL_080a: Expected O, but got Unknown //IL_080a: 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_0817: Unknown result type (might be due to invalid IL or missing references) //IL_0821: Expected O, but got Unknown //IL_0821: Unknown result type (might be due to invalid IL or missing references) //IL_0826: Unknown result type (might be due to invalid IL or missing references) //IL_0836: Unknown result type (might be due to invalid IL or missing references) //IL_0840: Expected O, but got Unknown //IL_0840: Unknown result type (might be due to invalid IL or missing references) //IL_0845: Unknown result type (might be due to invalid IL or missing references) //IL_084b: Unknown result type (might be due to invalid IL or missing references) //IL_0850: Unknown result type (might be due to invalid IL or missing references) //IL_085e: Unknown result type (might be due to invalid IL or missing references) //IL_0868: Expected O, but got Unknown //IL_0868: Unknown result type (might be due to invalid IL or missing references) //IL_086d: Unknown result type (might be due to invalid IL or missing references) //IL_087d: Unknown result type (might be due to invalid IL or missing references) //IL_088a: Expected O, but got Unknown //IL_088a: Unknown result type (might be due to invalid IL or missing references) //IL_088f: Unknown result type (might be due to invalid IL or missing references) //IL_089f: Unknown result type (might be due to invalid IL or missing references) //IL_08a9: Expected O, but got Unknown //IL_08a9: Unknown result type (might be due to invalid IL or missing references) //IL_08ae: Unknown result type (might be due to invalid IL or missing references) //IL_08be: Unknown result type (might be due to invalid IL or missing references) //IL_08c6: Unknown result type (might be due to invalid IL or missing references) //IL_08cf: Expected O, but got Unknown //IL_08cf: Unknown result type (might be due to invalid IL or missing references) //IL_08d4: Unknown result type (might be due to invalid IL or missing references) //IL_08e4: Unknown result type (might be due to invalid IL or missing references) //IL_08ec: Unknown result type (might be due to invalid IL or missing references) //IL_08f5: Expected O, but got Unknown //IL_08f5: Unknown result type (might be due to invalid IL or missing references) //IL_08fa: Unknown result type (might be due to invalid IL or missing references) //IL_090a: Unknown result type (might be due to invalid IL or missing references) //IL_0914: Expected O, but got Unknown //IL_0914: Unknown result type (might be due to invalid IL or missing references) //IL_0919: Unknown result type (might be due to invalid IL or missing references) //IL_0920: Unknown result type (might be due to invalid IL or missing references) //IL_092a: Expected O, but got Unknown //IL_092a: Unknown result type (might be due to invalid IL or missing references) //IL_092f: Unknown result type (might be due to invalid IL or missing references) //IL_0936: Unknown result type (might be due to invalid IL or missing references) //IL_093e: Unknown result type (might be due to invalid IL or missing references) //IL_0947: Expected O, but got Unknown //IL_0947: Unknown result type (might be due to invalid IL or missing references) //IL_094c: Unknown result type (might be due to invalid IL or missing references) //IL_0953: Unknown result type (might be due to invalid IL or missing references) //IL_095b: Unknown result type (might be due to invalid IL or missing references) //IL_0964: Expected O, but got Unknown //IL_0964: Unknown result type (might be due to invalid IL or missing references) //IL_0969: Unknown result type (might be due to invalid IL or missing references) //IL_0979: Unknown result type (might be due to invalid IL or missing references) //IL_0981: Unknown result type (might be due to invalid IL or missing references) //IL_098a: Expected O, but got Unknown //IL_098a: Unknown result type (might be due to invalid IL or missing references) //IL_098f: Unknown result type (might be due to invalid IL or missing references) //IL_099f: Unknown result type (might be due to invalid IL or missing references) //IL_09a9: 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 = LegacyResourcesAPI.Load<GameObject>("Prefabs/networkedobjects/LunarCauldron, RedToWhite Variant"); ((SpawnCard)val3).sendOverNetwork = true; ((SpawnCard)val3).hullSize = (HullClassification)1; ((SpawnCard)val3).nodeGraphType = (GraphType)0; ((SpawnCard)val3).requiredFlags = (NodeFlags)0; ((SpawnCard)val3).forbiddenFlags = (NodeFlags)8; ((SpawnCard)val3).directorCreditCost = 1; ((SpawnCard)val3).occupyPosition = true; val3.orientToFloor = true; GameObject val4 = LegacyResourcesAPI.Load<GameObject>("Prefabs/networkedobjects/SeerStation"); SeerStationController component = val4.GetComponent<SeerStationController>(); component.fallBackToFirstActiveExitController = true; InteractableSpawnCard val5 = ScriptableObject.CreateInstance<InteractableSpawnCard>(); ((Object)val5).name = "iscLunarSeer"; ((SpawnCard)val5).prefab = val4; ((SpawnCard)val5).sendOverNetwork = true; ((SpawnCard)val5).hullSize = (HullClassification)0; ((SpawnCard)val5).nodeGraphType = (GraphType)0; ((SpawnCard)val5).requiredFlags = (NodeFlags)0; ((SpawnCard)val5).forbiddenFlags = (NodeFlags)8; ((SpawnCard)val5).directorCreditCost = 1; ((SpawnCard)val5).occupyPosition = true; val5.orientToFloor = true; DirectorCard val6 = new DirectorCard { spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscChest1"), selectionWeight = 200 }; DirectorCard val7 = new DirectorCard { spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscChest2"), selectionWeight = 40 }; DirectorCard val8 = new DirectorCard { spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscEquipmentBarrel"), selectionWeight = 20 }; DirectorCard val9 = new DirectorCard { spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscTripleShop"), selectionWeight = 80 }; DirectorCard val10 = new DirectorCard { spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscLunarChest"), selectionWeight = 20 }; DirectorCard val11 = new DirectorCard { spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscCategoryChestDamage"), selectionWeight = 40 }; DirectorCard val12 = new DirectorCard { spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscCategoryChestHealing"), selectionWeight = 40 }; DirectorCard val13 = new DirectorCard { spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscCategoryChestUtility"), selectionWeight = 40 }; DirectorCard val14 = new DirectorCard { spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscTripleShopLarge"), selectionWeight = 35 }; DirectorCard val15 = new DirectorCard { spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscCasinoChest"), selectionWeight = 30 }; DirectorCard val16 = new Direc