Decompiled source of WolfoArtifacts v2.5.2

ArtifactDissimilarity.dll

Decompiled 3 months ago
using System;
using System.CodeDom.Compiler;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.Globalization;
using System.Linq;
using System.Reflection;
using System.Resources;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using ArtifactDissimilarity.Properties;
using BepInEx;
using BepInEx.Bootstrap;
using BepInEx.Configuration;
using EntityStates;
using EntityStates.InfiniteTowerSafeWard;
using EntityStates.ScavMonster;
using HG;
using On.EntityStates.InfiniteTowerSafeWard;
using On.EntityStates.ScavMonster;
using On.RoR2;
using On.RoR2.Projectile;
using On.RoR2.UI.LogBook;
using R2API;
using R2API.ScriptableObjects;
using R2API.Utils;
using RoR2;
using RoR2.Artifacts;
using RoR2.Navigation;
using RoR2.Projectile;
using RoR2.UI;
using UnityEngine;
using UnityEngine.AddressableAssets;
using UnityEngine.Networking;
using UnityEngine.UI;

[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.0", FrameworkDisplayName = "")]
[assembly: AssemblyCompany("ArtifactDissimilarity")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("ArtifactDissimilarity")]
[assembly: AssemblyTitle("ArtifactDissimilarity")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
namespace ArtifactDissimilarity
{
	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 Brigade
	{
		private static List<EliteDef> EliteDefsTier1 = new List<EliteDef>();

		private static List<EliteDef> EliteDefsTier2 = new List<EliteDef>();

		public static List<EliteDef> ForUsageEliteDefList = new List<EliteDef>();

		private static EliteDef TempForUsageEliteDef;

		public static bool DidBrigadeHappen;

		public static EliteTierDef[] normalelitetierdefs;

		private static bool DumbEliteKinThing = false;

		private static int DumbT2EliteKinInt = 1;

		public static void SetupBrigade()
		{
			//IL_001f: Unknown result type (might be due to invalid IL or missing references)
			if (!DumbEliteKinThing)
			{
				for (int i = 0; i < EliteCatalog.eliteList.Count; i++)
				{
					EliteDef eliteDef = EliteCatalog.GetEliteDef(EliteCatalog.eliteList[i]);
					string name = ((Object)eliteDef).name;
					if (!name.EndsWith("Gold") && !name.EndsWith("Honor") && !name.EndsWith("SecretSpeed") && !name.EndsWith("Echo") && !name.Contains("Lunar"))
					{
						if ((eliteDef.healthBoostCoefficient > 10f && !EliteDefsTier2.Contains(eliteDef)) || name.EndsWith("Void"))
						{
							EliteDefsTier2.Add(eliteDef);
						}
						else if (!EliteDefsTier1.Contains(eliteDef))
						{
							EliteDefsTier1.Add(eliteDef);
						}
					}
				}
				if (Chainloader.PluginInfos.ContainsKey("com.arimah.PerfectedLoop"))
				{
					EliteDefsTier2.Add(Elites.Lunar);
				}
				DumbEliteKinThing = true;
			}
			DumbT2EliteKinInt = 1;
			ForUsageEliteDefList.Clear();
			ForUsageEliteDefList.AddRange(EliteDefsTier1);
		}

		public static string SendBrigadeMessage()
		{
			string text = "<style=cWorldEvent>All elite combatants will be ";
			string @string = Language.GetString(TempForUsageEliteDef.modifierToken);
			@string = @string.Replace("{0}", "");
			return text + @string + "</style>";
		}

		public static void EliteKinAsMethod()
		{
			//IL_0123: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a1: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a7: Expected I4, but got Unknown
			//IL_0231: Unknown result type (might be due to invalid IL or missing references)
			//IL_0238: Expected O, but got Unknown
			//IL_0285: Unknown result type (might be due to invalid IL or missing references)
			//IL_028c: Expected O, but got Unknown
			//IL_02d9: Unknown result type (might be due to invalid IL or missing references)
			//IL_02e0: Expected O, but got Unknown
			if (!NetworkServer.active)
			{
				return;
			}
			if (DumbT2EliteKinInt <= Run.instance.NetworkstageClearCount / 5)
			{
				DumbT2EliteKinInt++;
				Debug.Log((object)"Add Tier 2 to Brigade");
				ForUsageEliteDefList.AddRange(EliteDefsTier2);
				ForUsageEliteDefList.AddRange(EliteDefsTier2);
			}
			if (SceneInfo.instance.sceneDef.baseSceneName == "moon2" || SceneInfo.instance.sceneDef.baseSceneName == "limbo")
			{
				TempForUsageEliteDef = Elites.Lunar;
			}
			else if (SceneInfo.instance.sceneDef.baseSceneName == "voidstage" || SceneInfo.instance.sceneDef.baseSceneName == "voidraid")
			{
				TempForUsageEliteDef = Elites.Void;
			}
			else
			{
				TempForUsageEliteDef = ForUsageEliteDefList[Main.random.Next(ForUsageEliteDefList.Count)];
			}
			int itemCountGlobal = Util.GetItemCountGlobal(Items.RandomlyLunar.itemIndex, false, false);
			if (itemCountGlobal > 0)
			{
				itemCountGlobal++;
				if (Run.instance.spawnRng.nextNormalizedFloat < 0.05f * (float)itemCountGlobal)
				{
					TempForUsageEliteDef = Elites.Lunar;
				}
			}
			if (((Object)Run.instance).name.StartsWith("WeeklyRun"))
			{
				EquipmentIndex[] array = Array.Empty<EquipmentIndex>();
				array = array.Add((EquipmentIndex)(int)TempForUsageEliteDef.eliteEquipmentDef.equipmentIndex);
				Reflection.SetFieldValue<EquipmentIndex[]>((object)Run.instance, "bossAffixes", array);
			}
			Debug.Log((object)("Artifact of Brigade: This stages only Elite " + ((Object)TempForUsageEliteDef).name));
			if (!DidBrigadeHappen)
			{
				DidBrigadeHappen = true;
				normalelitetierdefs = CombatDirector.eliteTiers;
			}
			EliteDef tempForUsageEliteDef = TempForUsageEliteDef;
			float num = 6f;
			if (TempForUsageEliteDef.healthBoostCoefficient > 10f)
			{
				num = 36f;
			}
			EliteTierDef[] array2 = (EliteTierDef[])(object)new EliteTierDef[3];
			EliteTierDef val = new EliteTierDef();
			val.costMultiplier = 1f;
			val.eliteTypes = (EliteDef[])(object)new EliteDef[1];
			val.isAvailable = (EliteRules rules) => CombatDirector.NotEliteOnlyArtifactActive();
			val.canSelectWithoutAvailableEliteDef = true;
			array2[0] = val;
			val = new EliteTierDef();
			val.costMultiplier = num;
			val.eliteTypes = (EliteDef[])(object)new EliteDef[1] { tempForUsageEliteDef };
			val.isAvailable = (EliteRules rules) => CombatDirector.NotEliteOnlyArtifactActive();
			val.canSelectWithoutAvailableEliteDef = false;
			array2[1] = val;
			val = new EliteTierDef();
			val.costMultiplier = num * 1.25f;
			val.eliteTypes = (EliteDef[])(object)new EliteDef[1] { tempForUsageEliteDef };
			val.isAvailable = (EliteRules rules) => CombatDirector.IsEliteOnlyArtifactActive();
			val.canSelectWithoutAvailableEliteDef = false;
			array2[2] = val;
			CombatDirector.eliteTiers = array2;
		}
	}
	public class Filters
	{
		internal static void NewTrimmer1(ref DirectorCard[] cards, int requiredCount, ref ClassicStageInfo self)
		{
			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 NewTrimmer2(string categoryName, int requiredCount, ref ClassicStageInfo self)
		{
			Category[] categories = self.interactableCategories.categories;
			for (int i = 0; i < categories.Length; i++)
			{
				if (string.CompareOrdinal(categoryName, categories[i].name) == 0)
				{
					NewTrimmer1(ref categories[i].cards, requiredCount, ref self);
				}
			}
		}

		public static void MixInteractableTrimmer3(DirectorCardCategorySelection interactableCategories)
		{
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Expected O, but got Unknown
			//IL_0018: Unknown result type (might be due to invalid IL or missing references)
			//IL_001e: Expected O, but got Unknown
			ulong nextUlong = Run.instance.stageRng.nextUlong;
			Xoroshiro128Plus val = new Xoroshiro128Plus(nextUlong);
			ClassicStageInfo self = new ClassicStageInfo();
			self.interactableCategories = interactableCategories;
			self.interactableCategories.CopyFrom(Dissimilarity.TrimmedmixInteractablesCards);
			NewTrimmer2("Chests", 6, ref self);
			if (((Object)Run.instance).name.Equals("InfiniteTowerRun(Clone)"))
			{
				NewTrimmer2("Barrels", 0, ref self);
				NewTrimmer2("Shrines", 2, ref self);
				NewTrimmer2("Drones", 0, ref self);
				Dissimilarity.TrimmedmixInteractablesCards.categories[1].selectionWeight = 0f;
				Dissimilarity.TrimmedmixInteractablesCards.categories[2].selectionWeight = Dissimilarity.random.Next(1, 6);
				Dissimilarity.TrimmedmixInteractablesCards.categories[3].selectionWeight = 0f;
			}
			else
			{
				NewTrimmer2("Barrels", 2, ref self);
				NewTrimmer2("Shrines", 3, ref self);
				NewTrimmer2("Drones", 3, ref self);
			}
			NewTrimmer2("Rare", 2, ref self);
			if (RunArtifactManager.instance.IsArtifactEnabled(Main.Remodeling_Def))
			{
				interactableCategories.categories[6].selectionWeight /= 2f;
				NewTrimmer2("Duplicator", 2, ref self);
			}
			else
			{
				NewTrimmer2("Duplicator", 4, ref self);
			}
		}

		public static void SingleInteractableTrimmer3(DirectorCardCategorySelection interactableCategories)
		{
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Expected O, but got Unknown
			//IL_0018: Unknown result type (might be due to invalid IL or missing references)
			//IL_001e: Expected O, but got Unknown
			ulong nextUlong = Run.instance.stageRng.nextUlong;
			Xoroshiro128Plus val = new Xoroshiro128Plus(nextUlong);
			ClassicStageInfo self = new ClassicStageInfo();
			self.interactableCategories = interactableCategories;
			self.interactableCategories.CopyFrom(Kith.TrimmedSingleInteractableType);
			NewTrimmer2("Chests", 1, ref self);
			if (((Object)Run.instance).name.Equals("InfiniteTowerRun(Clone)"))
			{
				NewTrimmer2("Barrels", 0, ref self);
				NewTrimmer2("Drones", 0, ref self);
				NewTrimmer2("Misc", 0, ref self);
			}
			else
			{
				NewTrimmer2("Barrels", 1, ref self);
				NewTrimmer2("Drones", 1, ref self);
				NewTrimmer2("Misc", 1, ref self);
			}
			NewTrimmer2("Shrines", 1, ref self);
			NewTrimmer2("Rare", 1, ref self);
			NewTrimmer2("Duplicator", 1, ref self);
			NewTrimmer2("Void Stuff", 1, ref self);
		}

		public static bool NoMoreRadioTower(DirectorCard card)
		{
			GameObject prefab = card.spawnCard.prefab;
			if (Object.op_Implicit((Object)(object)prefab.GetComponent<RadiotowerTerminal>()) || card.selectionWeight == 0)
			{
				return false;
			}
			card.selectionWeight = 1;
			return true;
		}

		public static bool CommandArtifactTrimmer(DirectorCard card)
		{
			GameObject prefab = card.spawnCard.prefab;
			return !(Object.op_Implicit((Object)(object)prefab.GetComponent<ShopTerminalBehavior>()) | Object.op_Implicit((Object)(object)prefab.GetComponent<MultiShopController>()) | Object.op_Implicit((Object)(object)prefab.GetComponent<ScrapperController>()) | Object.op_Implicit((Object)(object)prefab.GetComponent<RouletteChestController>()));
		}

		public static bool SacrificeArtifactTrimmer(DirectorCard card)
		{
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			//IL_000d: Expected O, but got Unknown
			InteractableSpawnCard val = (InteractableSpawnCard)card.spawnCard;
			return !val.skipSpawnWhenSacrificeArtifactEnabled;
		}

		public static bool SimulacrumTrimmer(DirectorCard card)
		{
			GameObject prefab = card.spawnCard.prefab;
			return !(Object.op_Implicit((Object)(object)prefab.GetComponent<ShrineCombatBehavior>()) | Object.op_Implicit((Object)(object)prefab.GetComponent<OutsideInteractableLocker>()) | Object.op_Implicit((Object)(object)prefab.GetComponent<ShrineBossBehavior>()) | Object.op_Implicit((Object)(object)prefab.GetComponent<SeerStationController>()) | Object.op_Implicit((Object)(object)prefab.GetComponent<PortalStatueBehavior>()));
		}

		public static bool TestingPrintCardResults(DirectorCard card)
		{
			Debug.Log((object)card.spawnCard);
			return true;
		}

		public static bool RemoveMinimumStageCompletionTrimmer(DirectorCard card)
		{
			if (card.minimumStageCompletions <= 3)
			{
				card.minimumStageCompletions = 0;
			}
			else if (card.minimumStageCompletions >= 4)
			{
				card.minimumStageCompletions = 1;
			}
			return true;
		}

		public static bool KithNoRepeatPredicate(DirectorCard card)
		{
			if (((Object)Kith.KithNoRepeat).name.StartsWith("iscLunarChest"))
			{
				return !((Object)card.spawnCard).name.StartsWith("iscLunarChest");
			}
			if (((Object)Kith.KithNoRepeat).name.StartsWith("iscCategory"))
			{
				string name = ((Object)Kith.KithNoRepeat).name;
				return !((Object)card.spawnCard).name.Contains(name);
			}
			if (((Object)Kith.KithNoRepeat).name.StartsWith("iscEquipment") || ((Object)Kith.KithNoRepeat).name.EndsWith("Equipment"))
			{
				return !((Object)card.spawnCard).name.StartsWith("iscEquipment") || ((Object)card.spawnCard).name.EndsWith("Equipment");
			}
			return !(((Object)card.spawnCard).name.StartsWith("iscEquipment") | ((Object)card.spawnCard).name.EndsWith("Equipment") | ((Object)card.spawnCard).name.Contains("iscLunarChest"));
		}

		public static bool NoMoreScrapper(DirectorCard card)
		{
			GameObject prefab = card.spawnCard.prefab;
			return !Object.op_Implicit((Object)(object)prefab.GetComponent<ScrapperController>());
		}

		public static bool RemodelingPredicate(DirectorCard card)
		{
			GameObject prefab = card.spawnCard.prefab;
			return !((Object)prefab).name.Contains("Duplicator");
		}

		public static bool ArtifactWorldPredicate(DirectorCard card)
		{
			GameObject prefab = card.spawnCard.prefab;
			return !(((Object)prefab).name.Contains("DuplicatorWild") | Object.op_Implicit((Object)(object)prefab.GetComponent<OutsideInteractableLocker>()) | Object.op_Implicit((Object)(object)prefab.GetComponent<ShrineBossBehavior>()) | Object.op_Implicit((Object)(object)prefab.GetComponent<ShrineCombatBehavior>()) | Object.op_Implicit((Object)(object)prefab.GetComponent<PortalStatueBehavior>()) | Object.op_Implicit((Object)(object)prefab.GetComponent<ScrapperController>()) | Object.op_Implicit((Object)(object)prefab.GetComponent<SeerStationController>()));
		}

		public static bool VoidStagePredicate(DirectorCard card)
		{
			GameObject prefab = card.spawnCard.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 bool SimulacrumPredicate(DirectorCard card)
		{
			GameObject prefab = card.spawnCard.prefab;
			return false;
		}

		public static void ApplyCardRemovingFilters(DirectorCardCategorySelection DCCSInput)
		{
			if (RunArtifactManager.instance.IsArtifactEnabled(Artifacts.commandArtifactDef))
			{
				DCCSInput.RemoveCardsThatFailFilter((Predicate<DirectorCard>)CommandArtifactTrimmer);
			}
			else
			{
				if (RunArtifactManager.instance.IsArtifactEnabled(Main.RiskyConformity))
				{
					DCCSInput.categories[6].selectionWeight = 0f;
				}
				if (RunArtifactManager.instance.IsArtifactEnabled(Main.Remodeling_Def))
				{
					DCCSInput.RemoveCardsThatFailFilter((Predicate<DirectorCard>)RemodelingPredicate);
				}
			}
			if (RunArtifactManager.instance.IsArtifactEnabled(Artifacts.Sacrifice))
			{
				DCCSInput.RemoveCardsThatFailFilter((Predicate<DirectorCard>)SacrificeArtifactTrimmer);
			}
			if (((Object)Run.instance).name.StartsWith("InfiniteTowerRun"))
			{
				DCCSInput.RemoveCardsThatFailFilter((Predicate<DirectorCard>)SimulacrumTrimmer);
			}
			else if (SceneInfo.instance.sceneDef.baseSceneName == "artifactworld")
			{
				DCCSInput.RemoveCardsThatFailFilter((Predicate<DirectorCard>)ArtifactWorldPredicate);
			}
			else if (SceneInfo.instance.sceneDef.baseSceneName == "voidstage")
			{
				DCCSInput.RemoveCardsThatFailFilter((Predicate<DirectorCard>)VoidStagePredicate);
			}
		}

		public static void ApplySandSnow(DirectorCardCategorySelection DCCSInput)
		{
			//IL_0395: 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_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_03cd: Unknown result type (might be due to invalid IL or missing references)
			//IL_03d2: 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_03b6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0405: Unknown result type (might be due to invalid IL or missing references)
			//IL_040a: Unknown result type (might be due to invalid IL or missing references)
			//IL_03e9: Unknown result type (might be due to invalid IL or missing references)
			//IL_03ee: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b97: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b9c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b77: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b7c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bd1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bd6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bb4: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bb9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c0b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c10: Unknown result type (might be due to invalid IL or missing references)
			//IL_07b2: 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_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_07ec: Unknown result type (might be due to invalid IL or missing references)
			//IL_07f1: Unknown result type (might be due to invalid IL or missing references)
			//IL_07cf: Unknown result type (might be due to invalid IL or missing references)
			//IL_07d4: 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_082b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bee: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bf3: Unknown result type (might be due to invalid IL or missing references)
			//IL_0809: Unknown result type (might be due to invalid IL or missing references)
			//IL_080e: Unknown result type (might be due to invalid IL or missing references)
			if (SceneInfo.instance.sceneDef.baseSceneName == "snowyforest" || SceneInfo.instance.sceneDef.baseSceneName == "frozenwall" || SceneInfo.instance.sceneDef.baseSceneName == "itfrozenwall")
			{
				DirectorCard[] cards = DCCSInput.categories[2].cards;
				foreach (DirectorCard val in cards)
				{
					switch (((Object)val.spawnCard).name)
					{
					case "iscShrineBlood":
					case "iscShrineBloodSnowy":
					case "iscShrineBloodSandy":
						val.spawnCard = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/Base/ShrineBlood/iscShrineBloodSnowy.asset").WaitForCompletion();
						break;
					case "iscShrineBoss":
					case "iscShrineBossSnowy":
					case "iscShrineBossSandy":
						val.spawnCard = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/Base/ShrineBoss/iscShrineBossSnowy.asset").WaitForCompletion();
						break;
					case "iscShrineChance":
					case "iscShrineChanceSnowy":
					case "iscShrineChanceSandy":
						val.spawnCard = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/Base/ShrineChance/iscShrineChanceSnowy.asset").WaitForCompletion();
						break;
					case "iscShrineCleanse":
					case "iscShrineCleanseSnowy":
					case "iscShrineCleanseSandy":
						val.spawnCard = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/Base/ShrineCleanse/iscShrineCleanseSnowy.asset").WaitForCompletion();
						break;
					case "iscShrineCombat":
					case "iscShrineCombatSnowy":
					case "iscShrineCombatSandy":
						val.spawnCard = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/Base/ShrineCombat/iscShrineCombatSnowy.asset").WaitForCompletion();
						break;
					case "iscShrineRestack":
					case "iscShrineRestackSnowy":
					case "iscShrineRestackSandy":
						val.spawnCard = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/Base/ShrineRestack/iscShrineRestackSnowy.asset").WaitForCompletion();
						break;
					}
				}
				return;
			}
			if (SceneInfo.instance.sceneDef.baseSceneName == "goolake" || SceneInfo.instance.sceneDef.baseSceneName == "itgoolake")
			{
				DirectorCard[] cards2 = DCCSInput.categories[2].cards;
				foreach (DirectorCard val2 in cards2)
				{
					switch (((Object)val2.spawnCard).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;
					}
				}
				return;
			}
			DirectorCard[] cards3 = DCCSInput.categories[2].cards;
			foreach (DirectorCard val3 in cards3)
			{
				switch (((Object)val3.spawnCard).name)
				{
				case "iscShrineBlood":
				case "iscShrineBloodSnowy":
				case "iscShrineBloodSandy":
					val3.spawnCard = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/Base/ShrineBlood/iscShrineBlood.asset").WaitForCompletion();
					break;
				case "iscShrineBoss":
				case "iscShrineBossSnowy":
				case "iscShrineBossSandy":
					val3.spawnCard = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/Base/ShrineBoss/iscShrineBoss.asset").WaitForCompletion();
					break;
				case "iscShrineChance":
				case "iscShrineChanceSnowy":
				case "iscShrineChanceSandy":
					val3.spawnCard = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/Base/ShrineChance/iscShrineChance.asset").WaitForCompletion();
					break;
				case "iscShrineCleanse":
				case "iscShrineCleanseSnowy":
				case "iscShrineCleanseSandy":
					val3.spawnCard = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/Base/ShrineCleanse/iscShrineCleanse.asset").WaitForCompletion();
					break;
				case "iscShrineCombat":
				case "iscShrineCombatSnowy":
				case "iscShrineCombatSandy":
					val3.spawnCard = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/Base/ShrineCombat/iscShrineCombat.asset").WaitForCompletion();
					break;
				case "iscShrineRestack":
				case "iscShrineRestackSnowy":
				case "iscShrineRestackSandy":
					val3.spawnCard = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/Base/ShrineRestack/iscShrineRestack.asset").WaitForCompletion();
					break;
				}
			}
		}
	}
	public class Dissimilarity
	{
		[Serializable]
		[CompilerGenerated]
		private sealed class <>c
		{
			public static readonly <>c <>9 = new <>c();

			public static hook_OnTargetSceneChanged <>9__6_0;

			public static hook_SetRunNextStageToTarget <>9__6_1;

			internal void <DCCSmaker>b__6_0(orig_OnTargetSceneChanged orig, SeerStationController self, SceneDef sceneDef)
			{
				orig.Invoke(self, sceneDef);
				if ((Object)(object)sceneDef != (Object)null)
				{
					string @string = Language.GetString(SceneCatalog.GetSceneDef((SceneIndex)self.NetworktargetSceneDefIndex).nameToken);
					@string = @string.Replace("Hidden Realm: ", "");
					((Component)self).gameObject.GetComponent<PurchaseInteraction>().contextToken = Language.GetString("BAZAAR_SEER_CONTEXT") + " of " + @string;
					((Component)self).gameObject.GetComponent<PurchaseInteraction>().displayNameToken = Language.GetString("BAZAAR_SEER_NAME") + " (" + @string + ")";
				}
			}

			internal void <DCCSmaker>b__6_1(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
				//IL_0063: Unknown result type (might be due to invalid IL or missing references)
				//IL_006d: 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 = "<style=cWorldEvent>The Primordial Teleporter aligns with your new dream..</style>"
					});
					if (!Main.DreamPrimordialBool)
					{
						Main.DreamPrimordialBool = true;
						Language.GetString_string += new hook_GetString_string(Main.DreamPrimordial);
					}
				}
			}
		}

		public static readonly Random random = new Random();

		public static bool DissimAdded = false;

		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 ModSupport()
		{
			//IL_0264: Unknown result type (might be due to invalid IL or missing references)
			//IL_0269: Unknown result type (might be due to invalid IL or missing references)
			//IL_0279: Unknown result type (might be due to invalid IL or missing references)
			//IL_0282: Expected O, but got Unknown
			//IL_0282: Unknown result type (might be due to invalid IL or missing references)
			//IL_0287: Unknown result type (might be due to invalid IL or missing references)
			//IL_0297: Unknown result type (might be due to invalid IL or missing references)
			//IL_02a3: Expected O, but got Unknown
			//IL_0202: 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)
			//IL_0210: Unknown result type (might be due to invalid IL or missing references)
			//IL_0219: Expected O, but got Unknown
			//IL_01b3: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b8: Unknown result type (might be due to invalid IL or missing references)
			//IL_01c1: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ca: Expected O, but got Unknown
			//IL_0229: Unknown result type (might be due to invalid IL or missing references)
			//IL_022e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0237: Unknown result type (might be due to invalid IL or missing references)
			//IL_0240: Expected O, but got Unknown
			//IL_015d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0162: Unknown result type (might be due to invalid IL or missing references)
			//IL_016b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0175: Expected O, but got Unknown
			//IL_0188: Unknown result type (might be due to invalid IL or missing references)
			//IL_018d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0196: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a0: Expected O, but got Unknown
			//IL_0140: Unknown result type (might be due to invalid IL or missing references)
			//IL_0145: Unknown result type (might be due to invalid IL or missing references)
			//IL_014e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0158: Expected O, but got Unknown
			//IL_01da: Unknown result type (might be due to invalid IL or missing references)
			//IL_01df: 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_01f2: Expected O, but got Unknown
			InteractableSpawnCard[] array = Object.FindObjectsOfType(typeof(InteractableSpawnCard)) as InteractableSpawnCard[];
			for (int i = 0; i < array.Length; i++)
			{
				switch (((Object)array[i]).name)
				{
				case "MysticsItems_iscShrineLegendary":
				{
					DirectorCard val7 = new DirectorCard
					{
						spawnCard = (SpawnCard)(object)array[i],
						selectionWeight = 50
					};
					break;
				}
				case "iscTripleShopRed":
				{
					DirectorCard val6 = new DirectorCard
					{
						spawnCard = (SpawnCard)(object)array[i],
						selectionWeight = 11
					};
					mixInteractablesCards.AddCard(5, val6);
					break;
				}
				case "midcDroneTable":
				{
					DirectorCard val5 = new DirectorCard
					{
						spawnCard = (SpawnCard)(object)array[i],
						selectionWeight = 100
					};
					mixInteractablesCards.AddCard(6, val5);
					break;
				}
				case "msidcCloneDrone":
				{
					DirectorCard val4 = new DirectorCard
					{
						spawnCard = (SpawnCard)(object)array[i],
						selectionWeight = 7
					};
					mixInteractablesCards.AddCard(3, val4);
					break;
				}
				case "msidcShockDrone":
				{
					DirectorCard val3 = new DirectorCard
					{
						spawnCard = (SpawnCard)(object)array[i],
						selectionWeight = 14
					};
					mixInteractablesCards.AddCard(3, val3);
					break;
				}
				case "iscCloakedShrine":
				{
					DirectorCard val2 = new DirectorCard
					{
						spawnCard = (SpawnCard)(object)array[i],
						selectionWeight = 8
					};
					mixInteractablesCards.AddCard(5, val2);
					break;
				}
				case "iscAegisShrine":
				{
					DirectorCard val = new DirectorCard
					{
						spawnCard = (SpawnCard)(object)array[i],
						selectionWeight = 8
					};
					mixInteractablesCards.AddCard(5, val);
					break;
				}
				}
			}
			DirectorCard val8 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscScrapper"),
				selectionWeight = 120
			};
			DirectorCard val9 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscScrapper"),
				selectionWeight = 180
			};
			Kith.HelperSingleMixInteractable.CopyFrom(mixInteractablesCards);
			mixInteractablesCards.AddCard(6, val8);
			Kith.HelperSingleMixInteractable.AddCard(1, val9);
		}

		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_00c5: 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_0111: 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_011f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0134: Unknown result type (might be due to invalid IL or missing references)
			//IL_0170: Unknown result type (might be due to invalid IL or missing references)
			//IL_017a: Expected O, but got Unknown
			//IL_018f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0194: Unknown result type (might be due to invalid IL or missing references)
			//IL_019a: Expected O, but got Unknown
			//IL_01ec: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f4: Unknown result type (might be due to invalid IL or missing references)
			//IL_01fc: Unknown result type (might be due to invalid IL or missing references)
			//IL_0204: Unknown result type (might be due to invalid IL or missing references)
			//IL_021c: Unknown result type (might be due to invalid IL or missing references)
			//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_025b: Expected O, but got Unknown
			//IL_025b: 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_0270: Unknown result type (might be due to invalid IL or missing references)
			//IL_027a: Expected O, but got Unknown
			//IL_027a: Unknown result type (might be due to invalid IL or missing references)
			//IL_027f: Unknown result type (might be due to invalid IL or missing references)
			//IL_028f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0299: Expected O, but got Unknown
			//IL_0299: Unknown result type (might be due to invalid IL or missing references)
			//IL_029e: Unknown result type (might be due to invalid IL or missing references)
			//IL_02ae: Unknown result type (might be due to invalid IL or missing references)
			//IL_02b8: Expected O, but got Unknown
			//IL_02b8: Unknown result type (might be due to invalid IL or missing references)
			//IL_02bd: Unknown result type (might be due to invalid IL or missing references)
			//IL_02cd: Unknown result type (might be due to invalid IL or missing references)
			//IL_02d7: Expected O, but got Unknown
			//IL_02d7: Unknown result type (might be due to invalid IL or missing references)
			//IL_02dc: Unknown result type (might be due to invalid IL or missing references)
			//IL_02ec: Unknown result type (might be due to invalid IL or missing references)
			//IL_02f6: Expected O, but got Unknown
			//IL_02f6: Unknown result type (might be due to invalid IL or missing references)
			//IL_02fb: Unknown result type (might be due to invalid IL or missing references)
			//IL_030b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0315: Expected O, but got Unknown
			//IL_0315: Unknown result type (might be due to invalid IL or missing references)
			//IL_031a: Unknown result type (might be due to invalid IL or missing references)
			//IL_032a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0334: Expected O, but got Unknown
			//IL_0334: 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_0349: Unknown result type (might be due to invalid IL or missing references)
			//IL_0353: Expected O, but got Unknown
			//IL_0353: Unknown result type (might be due to invalid IL or missing references)
			//IL_0358: Unknown result type (might be due to invalid IL or missing references)
			//IL_0368: Unknown result type (might be due to invalid IL or missing references)
			//IL_0372: Expected O, but got Unknown
			//IL_0372: Unknown result type (might be due to invalid IL or missing references)
			//IL_0377: Unknown result type (might be due to invalid IL or missing references)
			//IL_0387: Unknown result type (might be due to invalid IL or missing references)
			//IL_0391: Expected O, but got Unknown
			//IL_0391: Unknown result type (might be due to invalid IL or missing references)
			//IL_0396: Unknown result type (might be due to invalid IL or missing references)
			//IL_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_03af: Unknown result type (might be due to invalid IL or missing references)
			//IL_03b9: Expected O, but got Unknown
			//IL_03b9: Unknown result type (might be due to invalid IL or missing references)
			//IL_03be: Unknown result type (might be due to invalid IL or missing references)
			//IL_03c4: Unknown result type (might be due to invalid IL or missing references)
			//IL_03c9: Unknown result type (might be due to invalid IL or missing references)
			//IL_03d7: Unknown result type (might be due to invalid IL or missing references)
			//IL_03e1: Expected O, but got Unknown
			//IL_03e1: Unknown result type (might be due to invalid IL or missing references)
			//IL_03e6: Unknown result type (might be due to invalid IL or missing references)
			//IL_03ec: Unknown result type (might be due to invalid IL or missing references)
			//IL_03f1: Unknown result type (might be due to invalid IL or missing references)
			//IL_03ff: Unknown result type (might be due to invalid IL or missing references)
			//IL_0409: Expected O, but got Unknown
			//IL_0409: Unknown result type (might be due to invalid IL or missing references)
			//IL_040e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0414: Unknown result type (might be due to invalid IL or missing references)
			//IL_0419: Unknown result type (might be due to invalid IL or missing references)
			//IL_0427: Unknown result type (might be due to invalid IL or missing references)
			//IL_0431: Expected O, but got Unknown
			//IL_0431: Unknown result type (might be due to invalid IL or missing references)
			//IL_0436: Unknown result type (might be due to invalid IL or missing references)
			//IL_043c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0441: Unknown result type (might be due to invalid IL or missing references)
			//IL_044f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0459: Expected O, but got Unknown
			//IL_0459: Unknown result type (might be due to invalid IL or missing references)
			//IL_045e: Unknown result type (might be due to invalid IL or missing references)
			//IL_046e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0478: Expected O, but got Unknown
			//IL_047d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0482: Unknown result type (might be due to invalid IL or missing references)
			//IL_04a7: Unknown result type (might be due to invalid IL or missing references)
			//IL_04ac: Unknown result type (might be due to invalid IL or missing references)
			//IL_04b4: Unknown result type (might be due to invalid IL or missing references)
			//IL_04be: 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_04e6: Expected O, but got Unknown
			//IL_04e6: Unknown result type (might be due to invalid IL or missing references)
			//IL_04eb: Unknown result type (might be due to invalid IL or missing references)
			//IL_04f1: Unknown result type (might be due to invalid IL or missing references)
			//IL_04f6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0504: Unknown result type (might be due to invalid IL or missing references)
			//IL_050e: Expected O, but got Unknown
			//IL_050e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0513: Unknown result type (might be due to invalid IL or missing references)
			//IL_0523: Unknown result type (might be due to invalid IL or missing references)
			//IL_052c: Expected O, but got Unknown
			//IL_052c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0531: Unknown result type (might be due to invalid IL or missing references)
			//IL_0541: Unknown result type (might be due to invalid IL or missing references)
			//IL_054e: Expected O, but got Unknown
			//IL_054e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0553: Unknown result type (might be due to invalid IL or missing references)
			//IL_0563: Unknown result type (might be due to invalid IL or missing references)
			//IL_0570: Expected O, but got Unknown
			//IL_0570: Unknown result type (might be due to invalid IL or missing references)
			//IL_0575: Unknown result type (might be due to invalid IL or missing references)
			//IL_0585: Unknown result type (might be due to invalid IL or missing references)
			//IL_0592: Expected O, but got Unknown
			//IL_0592: Unknown result type (might be due to invalid IL or missing references)
			//IL_0597: Unknown result type (might be due to invalid IL or missing references)
			//IL_05a7: Unknown result type (might be due to invalid IL or missing references)
			//IL_05b4: Expected O, but got Unknown
			//IL_05b4: Unknown result type (might be due to invalid IL or missing references)
			//IL_05b9: Unknown result type (might be due to invalid IL or missing references)
			//IL_05c9: Unknown result type (might be due to invalid IL or missing references)
			//IL_05d6: Expected O, but got Unknown
			//IL_05d6: Unknown result type (might be due to invalid IL or missing references)
			//IL_05db: Unknown result type (might be due to invalid IL or missing references)
			//IL_05eb: Unknown result type (might be due to invalid IL or missing references)
			//IL_05f5: Expected O, but got Unknown
			//IL_05f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_05fa: Unknown result type (might be due to invalid IL or missing references)
			//IL_060a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0614: Expected O, but got Unknown
			//IL_0614: Unknown result type (might be due to invalid IL or missing references)
			//IL_0619: Unknown result type (might be due to invalid IL or missing references)
			//IL_0629: Unknown result type (might be due to invalid IL or missing references)
			//IL_0633: Expected O, but got Unknown
			//IL_0633: Unknown result type (might be due to invalid IL or missing references)
			//IL_0638: Unknown result type (might be due to invalid IL or missing references)
			//IL_0648: Unknown result type (might be due to invalid IL or missing references)
			//IL_0652: Expected O, but got Unknown
			//IL_0652: Unknown result type (might be due to invalid IL or missing references)
			//IL_0657: Unknown result type (might be due to invalid IL or missing references)
			//IL_0667: Unknown result type (might be due to invalid IL or missing references)
			//IL_0671: Expected O, but got Unknown
			//IL_0671: Unknown result type (might be due to invalid IL or missing references)
			//IL_0676: Unknown result type (might be due to invalid IL or missing references)
			//IL_0686: Unknown result type (might be due to invalid IL or missing references)
			//IL_0690: Expected O, but got Unknown
			//IL_0690: Unknown result type (might be due to invalid IL or missing references)
			//IL_0695: Unknown result type (might be due to invalid IL or missing references)
			//IL_06a5: Unknown result type (might be due to invalid IL or missing references)
			//IL_06af: Expected O, but got Unknown
			//IL_06af: Unknown result type (might be due to invalid IL or missing references)
			//IL_06b4: Unknown result type (might be due to invalid IL or missing references)
			//IL_06c4: Unknown result type (might be due to invalid IL or missing references)
			//IL_06cd: Expected O, but got Unknown
			//IL_06cd: Unknown result type (might be due to invalid IL or missing references)
			//IL_06d2: Unknown result type (might be due to invalid IL or missing references)
			//IL_06e2: Unknown result type (might be due to invalid IL or missing references)
			//IL_06ec: Expected O, but got Unknown
			//IL_06ec: Unknown result type (might be due to invalid IL or missing references)
			//IL_06f1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0701: Unknown result type (might be due to invalid IL or missing references)
			//IL_070b: Expected O, but got Unknown
			//IL_070b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0710: Unknown result type (might be due to invalid IL or missing references)
			//IL_0720: Unknown result type (might be due to invalid IL or missing references)
			//IL_0729: Expected O, but got Unknown
			//IL_0729: Unknown result type (might be due to invalid IL or missing references)
			//IL_072e: Unknown result type (might be due to invalid IL or missing references)
			//IL_073e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0747: Expected O, but got Unknown
			//IL_0747: Unknown result type (might be due to invalid IL or missing references)
			//IL_074c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0754: Unknown result type (might be due to invalid IL or missing references)
			//IL_075e: Expected O, but got Unknown
			//IL_075e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0763: Unknown result type (might be due to invalid IL or missing references)
			//IL_0773: Unknown result type (might be due to invalid IL or missing references)
			//IL_077d: Expected O, but got Unknown
			//IL_077d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0782: 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_078d: Unknown result type (might be due to invalid IL or missing references)
			//IL_079b: Unknown result type (might be due to invalid IL or missing references)
			//IL_07a5: Expected O, but got Unknown
			//IL_07a5: Unknown result type (might be due to invalid IL or missing references)
			//IL_07aa: Unknown result type (might be due to invalid IL or missing references)
			//IL_07ba: Unknown result type (might be due to invalid IL or missing references)
			//IL_07c7: Expected O, but got Unknown
			//IL_07c7: Unknown result type (might be due to invalid IL or missing references)
			//IL_07cc: 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_07e6: Expected O, but got Unknown
			//IL_07e6: Unknown result type (might be due to invalid IL or missing references)
			//IL_07eb: Unknown result type (might be due to invalid IL or missing references)
			//IL_07fb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0805: Expected O, but got Unknown
			//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)
			//IL_081a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0824: Expected O, but got Unknown
			//IL_0824: Unknown result type (might be due to invalid IL or missing references)
			//IL_0829: Unknown result type (might be due to invalid IL or missing references)
			//IL_0839: Unknown result type (might be due to invalid IL or missing references)
			//IL_0843: Expected O, but got Unknown
			//IL_0843: Unknown result type (might be due to invalid IL or missing references)
			//IL_0848: Unknown result type (might be due to invalid IL or missing references)
			//IL_084f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0859: Expected O, but got Unknown
			//IL_0859: 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_0865: Unknown result type (might be due to invalid IL or missing references)
			//IL_086f: Expected O, but got Unknown
			//IL_086f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0874: Unknown result type (might be due to invalid IL or missing references)
			//IL_087b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0885: Expected O, but got Unknown
			//IL_01b4: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b9: Unknown result type (might be due to invalid IL or missing references)
			//IL_01bf: 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;
			((SpawnCard)val2).eliteRules = (EliteRules)0;
			val2.orientToFloor = true;
			val2.slightlyRandomizeOrientation = false;
			val2.skipSpawnWhenSacrificeArtifactEnabled = false;
			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;
			((SpawnCard)val3).eliteRules = (EliteRules)0;
			val3.orientToFloor = true;
			val3.slightlyRandomizeOrientation = false;
			val3.skipSpawnWhenSacrificeArtifactEnabled = false;
			GameObject val4 = LegacyResourcesAPI.Load<GameObject>("Prefabs/networkedobjects/SeerStation");
			SeerStationController component = val4.GetComponent<SeerStationController>();
			component.fallBackToFirstActiveExitController = true;
			SeerStationController.OnStartClient += new hook_OnStartClient(Wander.SeerDestinationRandomizerDissimWander);
			object obj = <>c.<>9__6_0;
			if (obj == null)
			{
				hook_OnTargetSceneChanged val5 = delegate(orig_OnTargetSceneChanged orig, SeerStationController self, SceneDef sceneDef)
				{
					orig.Invoke(self, sceneDef);
					if ((Object)(object)sceneDef != (Object)null)
					{
						string @string = Language.GetString(SceneCatalog.GetSceneDef((SceneIndex)self.NetworktargetSceneDefIndex).nameToken);
						@string = @string.Replace("Hidden Realm: ", "");
						((Component)self).gameObject.GetComponent<PurchaseInteraction>().contextToken = Language.GetString("BAZAAR_SEER_CONTEXT") + " of " + @string;
						((Component)self).gameObject.GetComponent<PurchaseInteraction>().displayNameToken = Language.GetString("BAZAAR_SEER_NAME") + " (" + @string + ")";
					}
				};
				<>c.<>9__6_0 = val5;
				obj = (object)val5;
			}
			SeerStationController.OnTargetSceneChanged += (hook_OnTargetSceneChanged)obj;
			object obj2 = <>c.<>9__6_1;
			if (obj2 == null)
			{
				hook_SetRunNextStageToTarget val6 = delegate(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
					//IL_0063: Unknown result type (might be due to invalid IL or missing references)
					//IL_006d: 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 = "<style=cWorldEvent>The Primordial Teleporter aligns with your new dream..</style>"
						});
						if (!Main.DreamPrimordialBool)
						{
							Main.DreamPrimordialBool = true;
							Language.GetString_string += new hook_GetString_string(Main.DreamPrimordial);
						}
					}
				};
				<>c.<>9__6_1 = val6;
				obj2 = (object)val6;
			}
			SeerStationController.SetRunNextStageToTarget += (hook_SetRunNextStageToTarget)obj2;
			InteractableSpawnCard val7 = ScriptableObject.CreateInstance<InteractableSpawnCard>();
			((Object)val7).name = "iscLunarSeer";
			((SpawnCard)val7).prefab = val4;
			((SpawnCard)val7).sendOverNetwork = true;
			((SpawnCard)val7).hullSize = (HullClassification)0;
			((SpawnCard)val7).nodeGraphType = (GraphType)0;
			((SpawnCard)val7).requiredFlags = (NodeFlags)0;
			((SpawnCard)val7).forbiddenFlags = (NodeFlags)8;
			((SpawnCard)val7).directorCreditCost = 1;
			((SpawnCard)val7).occupyPosition = true;
			((SpawnCard)val7).eliteRules = (EliteRules)0;
			val7.orientToFloor = true;
			val7.slightlyRandomizeOrientation = false;
			val7.skipSpawnWhenSacrificeArtifactEnabled = false;
			DirectorCard val8 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscChest1"),
				selectionWeight = 240
			};
			DirectorCard val9 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscChest2"),
				selectionWeight = 40
			};
			DirectorCard val10 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscEquipmentBarrel"),
				selectionWeight = 20
			};
			DirectorCard val11 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscTripleShop"),
				selectionWeight = 40
			};
			DirectorCard val12 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscLunarChest"),
				selectionWeight = 15
			};
			DirectorCard val13 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscCategoryChestDamage"),
				selectionWeight = 25
			};
			DirectorCard val14 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscCategoryChestHealing"),
				selectionWeight = 25
			};
			DirectorCard val15 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscCategoryChestUtility"),
				selectionWeight = 25
			};
			DirectorCard val16 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscTripleShopLarge"),
				selectionWeight = 40
			};
			DirectorCard val17 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscCasinoChest"),
				selectionWeight = 40
			};
			DirectorCard val18 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscTripleShopEquipment"),
				selectionWeight = 20
			};
			DirectorCard val19 = new DirectorCard
			{
				spawnCard = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/DLC1/CategoryChest2/iscCategoryChest2Damage.asset").WaitForCompletion(),
				selectionWeight = 20
			};
			DirectorCard val20 = new DirectorCard
			{
				spawnCard = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/DLC1/CategoryChest2/iscCategoryChest2Healing.asset").WaitForCompletion(),
				selectionWeight = 20
			};
			DirectorCard val21 = new DirectorCard
			{
				spawnCard = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/DLC1/CategoryChest2/iscCategoryChest2Utility.asset").WaitForCompletion(),
				selectionWeight = 20
			};
			DirectorCard val22 = new DirectorCard
			{
				spawnCard = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/DLC1/VoidChest/iscVoidChest.asset").WaitForCompletion(),
				selectionWeight = 40
			};
			DirectorCard val23 = new DirectorCard
			{
				spawnCard = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/DLC1/VoidTriple/iscVoidTriple.asset").WaitForCompletion(),
				selectionWeight = 20
			};
			DirectorCard val24 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscBarrel1"),
				selectionWeight = 100
			};
			InteractableSpawnCard val25 = Object.Instantiate<InteractableSpawnCard>(Addressables.LoadAssetAsync<InteractableSpawnCard>((object)"RoR2/DLC1/VoidCoinBarrel/iscVoidCoinBarrel.asset").WaitForCompletion());
			((Object)val25).name = "iscVoidCoinBarrelLowPrice";
			((SpawnCard)val25).directorCreditCost = 2;
			DirectorCard val26 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)val25,
				selectionWeight = 50
			};
			val26.spawnCard = (SpawnCard)(object)val25;
			DirectorCard val27 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscScrapper"),
				selectionWeight = 10
			};
			DirectorCard val28 = new DirectorCard
			{
				spawnCard = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/DLC1/VoidCamp/iscVoidCamp.asset").WaitForCompletion(),
				selectionWeight = 10
			};
			DirectorCard val29 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscBarrel1"),
				selectionWeight = 1
			};
			DirectorCard val30 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscShrineCombat"),
				selectionWeight = 250
			};
			DirectorCard val31 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscShrineBoss"),
				selectionWeight = 250
			};
			DirectorCard val32 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscShrineChance"),
				selectionWeight = 400
			};
			DirectorCard val33 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscShrineBlood"),
				selectionWeight = 200
			};
			DirectorCard val34 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscShrineHealing"),
				selectionWeight = 200
			};
			DirectorCard val35 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscShrineRestack"),
				selectionWeight = 50
			};
			DirectorCard val36 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscShrineCleanse"),
				selectionWeight = 100
			};
			DirectorCard val37 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscBrokenDrone1"),
				selectionWeight = 21
			};
			DirectorCard val38 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscBrokenDrone2"),
				selectionWeight = 21
			};
			DirectorCard val39 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscBrokenEmergencyDrone"),
				selectionWeight = 14
			};
			DirectorCard val40 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscBrokenEquipmentDrone"),
				selectionWeight = 14
			};
			DirectorCard val41 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscBrokenFlameDrone"),
				selectionWeight = 14
			};
			DirectorCard val42 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscBrokenMegaDrone"),
				selectionWeight = 3
			};
			DirectorCard val43 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscBrokenMissileDrone"),
				selectionWeight = 14
			};
			DirectorCard val44 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscBrokenTurret1"),
				selectionWeight = 14
			};
			DirectorCard val45 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscGoldChest"),
				selectionWeight = 5
			};
			DirectorCard val46 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscShrineGoldshoresAccess"),
				selectionWeight = 5
			};
			DirectorCard val47 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)val7,
				selectionWeight = 17
			};
			DirectorCard val48 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscChest1Stealthed"),
				selectionWeight = 13
			};
			DirectorCard val49 = new DirectorCard
			{
				spawnCard = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/DLC1/VoidSuppressor/iscVoidSuppressor.asset").WaitForCompletion(),
				selectionWeight = 20
			};
			DirectorCard val50 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscDuplicator"),
				selectionWeight = 300
			};
			DirectorCard val51 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscDuplicatorLarge"),
				selectionWeight = 80
			};
			DirectorCard val52 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscDuplicatorMilitary"),
				selectionWeight = 30
			};
			DirectorCard val53 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscDuplicatorWild"),
				selectionWeight = 30
			};
			DirectorCard val54 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscScrapper"),
				selectionWeight = 120
			};
			DirectorCard val55 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)val,
				selectionWeight = 75
			};
			DirectorCard val56 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)val2,
				selectionWeight = 45
			};
			DirectorCard val57 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)val3,
				selectionWeight = 25
			};
			mixInteractablesCards.AddCategory("Chests", 48f);
			mixInteractablesCards.AddCategory("Barrels", 10f);
			mixInteractablesCards.AddCategory("Shrines", 11f);
			mixInteractablesCards.AddCategory("Drones", 11f);
			mixInteractablesCards.AddCategory("Misc", 0f);
			mixInteractablesCards.AddCategory("Rare", 0.7f);
			mixInteractablesCards.AddCategory("Duplicator", 9f);
			mixInteractablesCards.AddCard(0, val8);
			mixInteractablesCards.AddCard(0, val9);
			mixInteractablesCards.AddCard(0, val13);
			mixInteractablesCards.AddCard(0, val14);
			mixInteractablesCards.AddCard(0, val15);
			mixInteractablesCards.AddCard(0, val10);
			mixInteractablesCards.AddCard(0, val12);
			mixInteractablesCards.AddCard(0, val11);
			mixInteractablesCards.AddCard(0, val16);
			mixInteractablesCards.AddCard(0, val18);
			mixInteractablesCards.AddCard(0, val17);
			mixInteractablesCards.AddCard(0, val19);
			mixInteractablesCards.AddCard(0, val20);
			mixInteractablesCards.AddCard(0, val21);
			mixInteractablesCards.AddCard(0, val22);
			mixInteractablesCards.AddCard(0, val23);
			mixInteractablesCards.AddCard(1, val24);
			mixInteractablesCards.AddCard(1, val26);
			mixInteractablesCards.AddCard(1, val27);
			mixInteractablesCards.AddCard(1, val28);
			mixInteractablesCards.AddCard(2, val33);
			mixInteractablesCards.AddCard(2, val31);
			mixInteractablesCards.AddCard(2, val31);
			mixInteractablesCards.AddCard(2, val32);
			mixInteractablesCards.AddCard(2, val36);
			mixInteractablesCards.AddCard(2, val30);
			mixInteractablesCards.AddCard(2, val34);
			mixInteractablesCards.AddCard(2, val35);
			mixInteractablesCards.AddCard(3, val37);
			mixInteractablesCards.AddCard(3, val38);
			mixInteractablesCards.AddCard(3, val39);
			mixInteractablesCards.AddCard(3, val40);
			mixInteractablesCards.AddCard(3, val41);
			mixInteractablesCards.AddCard(3, val42);
			mixInteractablesCards.AddCard(3, val43);
			mixInteractablesCards.AddCard(3, val44);
			mixInteractablesCards.AddCard(5, val48);
			mixInteractablesCards.AddCard(5, val45);
			mixInteractablesCards.AddCard(5, val46);
			mixInteractablesCards.AddCard(5, val49);
			mixInteractablesCards.AddCard(5, val47);
			mixInteractablesCards.AddCard(6, val54);
			mixInteractablesCards.AddCard(6, val50);
			mixInteractablesCards.AddCard(6, val51);
			mixInteractablesCards.AddCard(6, val52);
			mixInteractablesCards.AddCard(6, val53);
			mixInteractablesCards.AddCard(6, val55);
			mixInteractablesCards.AddCard(6, val56);
			mixInteractablesCards.AddCard(6, val57);
		}

		public static WeightedSelection<DirectorCard> MixInteractableApplier(orig_GenerateInteractableCardSelection orig, SceneDirector self)
		{
			if (self.interactableCredit != 0)
			{
				self.interactableCredit += 24;
			}
			WeightedSelection<DirectorCard> val = new WeightedSelection<DirectorCard>(8);
			TrimmedmixInteractablesCards.Clear();
			TrimmedmixInteractablesCards.CopyFrom(mixInteractablesCards);
			TrimmedmixInteractablesCards.categories[2].selectionWeight = random.Next(7, 13);
			TrimmedmixInteractablesCards.categories[3].selectionWeight = random.Next(3, 15);
			if (Object.op_Implicit((Object)(object)RunArtifactManager.instance) && RunArtifactManager.instance.IsArtifactEnabled(Main.Dissimilarity_Def))
			{
				Filters.ApplyCardRemovingFilters(TrimmedmixInteractablesCards);
				Filters.ApplySandSnow(TrimmedmixInteractablesCards);
				Filters.MixInteractableTrimmer3(TrimmedmixInteractablesCards);
				val = TrimmedmixInteractablesCards.GenerateDirectorCardWeightedSelection();
				Debug.Log((object)"Artifact of Dissimilarity: Generated Trimmed mixInteractables selection");
				if (WConfig.DebugPrint.Value)
				{
					Debug.Log((object)"__________________________________________________");
					Debug.Log((object)"Artifact of Dissimilarity: Trimmed Interactable List");
					Debug.Log((object)"");
					TrimmedmixInteractablesCards.RemoveCardsThatFailFilter((Predicate<DirectorCard>)Filters.TestingPrintCardResults);
					Debug.Log((object)"__________________________________________________");
				}
				return val;
			}
			Debug.LogWarning((object)"Artifact of Dissimilarity: Failed to generate normal Interactable Categories, using fallback");
			return orig.Invoke(self);
		}
	}
	public class Kith
	{
		public static readonly Random random = new Random();

		public static bool KithAdded = false;

		public static SpawnCard KithNoRepeat;

		public static DirectorCardCategorySelection TrimmedSingleInteractableType = ScriptableObject.CreateInstance<DirectorCardCategorySelection>();

		public static DirectorCardCategorySelection HelperSingleMixInteractable = ScriptableObject.CreateInstance<DirectorCardCategorySelection>();

		public static void Start()
		{
			((Object)HelperSingleMixInteractable).name = "dcccHelperSingleMixInteractable";
			((Object)TrimmedSingleInteractableType).name = "dccsSingleInteractable";
		}

		public static WeightedSelection<DirectorCard> SingleInteractableApplier(orig_GenerateInteractableCardSelection orig, SceneDirector self)
		{
			//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_02d7: Unknown result type (might be due to invalid IL or missing references)
			//IL_02e0: Expected O, but got Unknown
			if (self.interactableCredit != 0)
			{
				self.interactableCredit += 21;
			}
			WeightedSelection<DirectorCard> val = new WeightedSelection<DirectorCard>(8);
			if ((Object)(object)ClassicStageInfo.instance != (Object)null)
			{
				if (!RunArtifactManager.instance.IsArtifactEnabled(Main.Kith_Def))
				{
					Debug.LogWarning((object)"Artifact of Kith: Failed to generate normal Interactable Categories, using fallback");
					return orig.Invoke(self);
				}
				if (RunArtifactManager.instance.IsArtifactEnabled(Main.Dissimilarity_Def))
				{
					TrimmedSingleInteractableType.Clear();
					TrimmedSingleInteractableType.CopyFrom(HelperSingleMixInteractable);
					if (((Object)Run.instance).name.Equals("InfiniteTowerRun(Clone)"))
					{
						TrimmedSingleInteractableType.categories[1].selectionWeight = 0f;
						TrimmedSingleInteractableType.categories[2].selectionWeight = random.Next(1, 5);
						TrimmedSingleInteractableType.categories[3].selectionWeight = 0f;
					}
					else
					{
						TrimmedSingleInteractableType.categories[1].selectionWeight = random.Next(9, 11);
						TrimmedSingleInteractableType.categories[2].selectionWeight = random.Next(8, 13);
						TrimmedSingleInteractableType.categories[3].selectionWeight = random.Next(11, 15);
						TrimmedSingleInteractableType.categories[6].selectionWeight = random.Next(6, 10);
					}
					Filters.ApplyCardRemovingFilters(TrimmedSingleInteractableType);
					Filters.ApplySandSnow(TrimmedSingleInteractableType);
					Debug.Log((object)"Artifact of Kith: SingleInteractable using mixInteractables");
				}
				else
				{
					TrimmedSingleInteractableType.Clear();
					TrimmedSingleInteractableType.CopyFrom(ClassicStageInfo.instance.interactableCategories);
					TrimmedSingleInteractableType.RemoveCardsThatFailFilter((Predicate<DirectorCard>)Filters.NoMoreRadioTower);
					Filters.ApplyCardRemovingFilters(TrimmedSingleInteractableType);
					if (WConfig.KithNoMinimumStageCompletion.Value)
					{
						TrimmedSingleInteractableType.RemoveCardsThatFailFilter((Predicate<DirectorCard>)Filters.RemoveMinimumStageCompletionTrimmer);
					}
				}
				if ((Object)(object)KithNoRepeat == (Object)null)
				{
					KithNoRepeat = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscSquidTurret");
				}
				if (((Object)KithNoRepeat).name.StartsWith("iscEquipment") || ((Object)KithNoRepeat).name.StartsWith("iscLunarChest") || ((Object)KithNoRepeat).name.StartsWith("iscCategory") || ((Object)KithNoRepeat).name.Equals("iscSquidTurret"))
				{
					TrimmedSingleInteractableType.RemoveCardsThatFailFilter((Predicate<DirectorCard>)Filters.KithNoRepeatPredicate);
				}
				Filters.SingleInteractableTrimmer3(TrimmedSingleInteractableType);
				DirectorCard val2 = new DirectorCard
				{
					spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscBarrel1"),
					selectionWeight = 1
				};
				if (TrimmedSingleInteractableType.categories.Length > 5)
				{
					TrimmedSingleInteractableType.categories[4].selectionWeight *= 1.5f;
					TrimmedSingleInteractableType.AddCard(6, val2);
				}
				else
				{
					TrimmedSingleInteractableType.AddCard(0, val2);
				}
				val = TrimmedSingleInteractableType.GenerateDirectorCardWeightedSelection();
				Debug.Log((object)"Artifact of Kith: Generated Trimmed SingleInteractable selection");
				KithNoRepeat = val.choices[0].value.spawnCard;
				if (WConfig.DebugPrint.Value)
				{
					Debug.Log((object)"__________________________________________________");
					Debug.Log((object)"Artifact of Kith: Trimmed Interactable List");
					Debug.Log((object)"");
					TrimmedSingleInteractableType.RemoveCardsThatFailFilter((Predicate<DirectorCard>)Filters.TestingPrintCardResults);
					Debug.Log((object)"__________________________________________________");
				}
			}
			return val;
		}
	}
	public class Remodeling
	{
		public static readonly Random random = new Random();

		public static BasicPickupDropTable dtMonsterTeamTier2Item = Addressables.LoadAssetAsync<BasicPickupDropTable>((object)"RoR2/Base/MonsterTeamGainsItems/dtMonsterTeamTier2Item.asset").WaitForCompletion();

		public static List<EquipmentIndex> EliteEquipmentList = new List<EquipmentIndex>();

		private static List<EquipmentIndex> BlacklistedEquipment = new List<EquipmentIndex>();

		public static void RandomizeMain(orig_Start orig, SceneDirector self)
		{
			orig.Invoke(self);
			if (NetworkServer.active)
			{
				if (Object.op_Implicit((Object)(object)RunArtifactManager.instance) && RunArtifactManager.instance.IsArtifactEnabled(Main.Unison_Def))
				{
					Run.instance.BuildDropTable();
				}
				RandomizeItems();
				RandomizeEquipment();
				if (WConfig.RemodelRerollEquipmentDrones.Value)
				{
					RandomizeEquipmentDrone();
				}
				if (WConfig.RemodelRerollMonsterItems.Value)
				{
					RandomizeItemsMonster();
				}
			}
			GC.Collect();
		}

		public static void RandomizeEquipment()
		{
			//IL_009a: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a0: Invalid comparison between Unknown and I4
			//IL_00b8: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e2: Unknown result type (might be due to invalid IL or missing references)
			//IL_0158: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f6: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e5: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ea: Unknown result type (might be due to invalid IL or missing references)
			//IL_0171: 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_0139: Unknown result type (might be due to invalid IL or missing references)
			//IL_013e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0144: Unknown result type (might be due to invalid IL or missing references)
			//IL_022e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0233: Unknown result type (might be due to invalid IL or missing references)
			//IL_0237: Unknown result type (might be due to invalid IL or missing references)
			//IL_023c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0242: Unknown result type (might be due to invalid IL or missing references)
			//IL_01be: Unknown result type (might be due to invalid IL or missing references)
			//IL_01c3: Unknown result type (might be due to invalid IL or missing references)
			//IL_01c7: Unknown result type (might be due to invalid IL or missing references)
			//IL_01cc: 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)
			foreach (PlayerCharacterMasterController instance in PlayerCharacterMasterController.instances)
			{
				Inventory inventory = instance.master.inventory;
				if ((Object)(object)inventory == (Object)null)
				{
					break;
				}
				List<PickupIndex> list = new List<PickupIndex>();
				List<PickupIndex> list2 = new List<PickupIndex>();
				List<EquipmentIndex> list3 = new List<EquipmentIndex>();
				list.AddRange(Run.instance.availableEquipmentDropList);
				list2.AddRange(Run.instance.availableLunarEquipmentDropList);
				list3.AddRange(EliteEquipmentList);
				for (byte b = 0; b < inventory.GetEquipmentSlotCount(); b++)
				{
					instance.master.inventory.SetActiveEquipmentSlot(b);
					if ((int)inventory.GetEquipmentIndex() != -1)
					{
						int num = 0;
						if (BlacklistedEquipment.Contains(inventory.currentEquipmentIndex))
						{
							num = 1;
						}
						if (num == 0)
						{
							PickupIndex val;
							if (EliteEquipmentList.Contains(inventory.currentEquipmentIndex))
							{
								list3.Remove(inventory.currentEquipmentIndex);
								if (list3.Count == 0)
								{
									list3.AddRange(EliteEquipmentList);
								}
								int index = random.Next(0, list3.Count);
								inventory.SetEquipment(new EquipmentState(list3[index], FixedTimeStamp.negativeInfinity, (byte)0), (uint)b);
							}
							else if (EquipmentCatalog.GetEquipmentDef(inventory.currentEquipmentIndex).isLunar)
							{
								list2.Remove(PickupCatalog.FindPickupIndex(inventory.currentEquipmentIndex));
								if (list2.Count == 0)
								{
									list2.AddRange(Run.instance.availableLunarEquipmentDropList);
								}
								int index2 = random.Next(0, list2.Count);
								val = list2[index2];
								inventory.SetEquipment(new EquipmentState(((PickupIndex)(ref val)).equipmentIndex, FixedTimeStamp.negativeInfinity, (byte)0), (uint)b);
							}
							else
							{
								list.Remove(PickupCatalog.FindPickupIndex(inventory.currentEquipmentIndex));
								if (list.Count == 0)
								{
									list.AddRange(Run.instance.availableEquipmentDropList);
								}
								int index3 = random.Next(0, list.Count);
								val = list[index3];
								inventory.SetEquipment(new EquipmentState(((PickupIndex)(ref val)).equipmentIndex, FixedTimeStamp.negativeInfinity, (byte)0), (uint)b);
							}
						}
						Debug.Log((object)("Rerolled " + instance.GetDisplayName() + "'s equipment"));
					}
				}
			}
		}

		public static void RandomizeEquipmentDrone()
		{
			//IL_005a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0060: Invalid comparison between Unknown and I4
			//IL_0079: Unknown result type (might be due to invalid IL or missing references)
			//IL_009f: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b7: Unknown result type (might be due to invalid IL or missing references)
			//IL_014f: Unknown result type (might be due to invalid IL or missing references)
			//IL_01dd: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e2: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e6: Unknown result type (might be due to invalid IL or missing references)
			//IL_01eb: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f1: Unknown result type (might be due to invalid IL or missing references)
			//IL_018f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0194: Unknown result type (might be due to invalid IL or missing references)
			//IL_0198: Unknown result type (might be due to invalid IL or missing references)
			//IL_019d: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a3: Unknown result type (might be due to invalid IL or missing references)
			//IL_012f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0134: Unknown result type (might be due to invalid IL or missing references)
			//IL_013a: Unknown result type (might be due to invalid IL or missing references)
			CharacterMaster[] array = Object.FindObjectsOfType(typeof(CharacterMaster)) as CharacterMaster[];
			foreach (CharacterMaster val in array)
			{
				if (!((Object)val).name.Contains("Drone") && !((Object)val).name.Contains("Turret"))
				{
					continue;
				}
				Inventory component = ((Component)val).GetComponent<Inventory>();
				if ((int)component.GetEquipmentIndex() == -1)
				{
					continue;
				}
				int num = 0;
				if (BlacklistedEquipment.Contains(component.currentEquipmentIndex))
				{
					num = 1;
				}
				if (num != 0)
				{
					continue;
				}
				string name = ((Object)EquipmentCatalog.GetEquipmentDef(component.currentEquipmentIndex)).name;
				PickupIndex val2;
				if (EliteEquipmentList.Contains(component.currentEquipmentIndex))
				{
					if (!name.Contains("Gold") && !name.Contains("Echo") && !name.Contains("Yellow") && !name.Contains("SecretSpeed"))
					{
						int index = random.Next(0, EliteEquipmentList.Count);
						component.SetEquipment(new EquipmentState(EliteEquipmentList[index], FixedTimeStamp.negativeInfinity, (byte)0), 0u);
					}
				}
				else if (EquipmentCatalog.GetEquipmentDef(component.currentEquipmentIndex).isLunar)
				{
					int index2 = random.Next(0, Run.instance.availableLunarEquipmentDropList.Count);
					val2 = Run.instance.availableLunarEquipmentDropList[index2];
					component.SetEquipment(new EquipmentState(((PickupIndex)(ref val2)).equipmentIndex, FixedTimeStamp.negativeInfinity, (byte)0), 0u);
				}
				else
				{
					int index3 = random.Next(0, Run.instance.availableEquipmentDropList.Count);
					val2 = Run.instance.availableEquipmentDropList[index3];
					component.SetEquipment(new EquipmentState(((PickupIndex)(ref val2)).equipmentIndex, FixedTimeStamp.negativeInfinity, (byte)0), 0u);
				}
				Debug.Log((object)("Rerolled " + ((Object)val).name + "'s equipment"));
			}
		}

		public static void RandomizeItems()
		{
			//IL_00eb: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f0: Unknown result type (might be due to invalid IL or missing references)
			//IL_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_012b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0130: Unknown result type (might be due to invalid IL or missing references)
			//IL_0142: Unknown result type (might be due to invalid IL or missing references)
			//IL_0147: Unknown result type (might be due to invalid IL or missing references)
			//IL_0159: Unknown result type (might be due to invalid IL or missing references)
			//IL_015e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0170: Unknown result type (might be due to invalid IL or missing references)
			//IL_0175: Unknown result type (might be due to invalid IL or missing references)
			//IL_0187: Unknown result type (might be due to invalid IL or missing references)
			//IL_018c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0495: Unknown result type (might be due to invalid IL or missing references)
			//IL_049a: Unknown result type (might be due to invalid IL or missing references)
			//IL_049e: Unknown result type (might be due to invalid IL or missing references)
			//IL_04b8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0544: Unknown result type (might be due to invalid IL or missing references)
			//IL_0549: Unknown result type (might be due to invalid IL or missing references)
			//IL_054d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0567: 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_02b0: Unknown result type (might be due to invalid IL or missing references)
			//IL_02b2: Unknown result type (might be due to invalid IL or missing references)
			//IL_02b4: Unknown result type (might be due to invalid IL or missing references)
			//IL_02b6: Unknown result type (might be due to invalid IL or missing references)
			//IL_02e5: Expected I4, but got Unknown
			//IL_05f3: Unknown result type (might be due to invalid IL or missing references)
			//IL_05f8: Unknown result type (might be due to invalid IL or missing references)
			//IL_05fc: Unknown result type (might be due to invalid IL or missing references)
			//IL_0616: Unknown result type (might be due to invalid IL or missing references)
			//IL_06a2: Unknown result type (might be due to invalid IL or missing references)
			//IL_06a7: Unknown result type (might be due to invalid IL or missing references)
			//IL_06ab: Unknown result type (might be due to invalid IL or missing references)
			//IL_06c5: Unknown result type (might be due to invalid IL or missing references)
			//IL_0751: Unknown result type (might be due to invalid IL or missing references)
			//IL_0756: Unknown result type (might be due to invalid IL or missing references)
			//IL_075a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0774: Unknown result type (might be due to invalid IL or missing references)
			//IL_0800: 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_0809: Unknown result type (might be due to invalid IL or missing references)
			//IL_0823: Unknown result type (might be due to invalid IL or missing references)
			//IL_08af: Unknown result type (might be due to invalid IL or missing references)
			//IL_08b4: Unknown result type (might be due to invalid IL or missing references)
			//IL_08b8: Unknown result type (might be due to invalid IL or missing references)
			//IL_08d2: Unknown result type (might be due to invalid IL or missing references)
			//IL_095e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0963: Unknown result type (might be due to invalid IL or missing references)
			//IL_0967: 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_0a0d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a12: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a16: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a30: Unknown result type (might be due to invalid IL or missing references)
			foreach (PlayerCharacterMasterController instance in PlayerCharacterMasterController.instances)
			{
				Inventory inventory = instance.master.inventory;
				int[] array = new int[inventory.itemStacks.Length];
				inventory.itemStacks.CopyTo(array, 0);
				int num = 0;
				int num2 = 0;
				int num3 = 0;
				int num4 = 0;
				int num5 = 0;
				int num6 = 0;
				int num7 = 0;
				int num8 = 0;
				int num9 = 0;
				List<PickupIndex> list = new List<PickupIndex>();
				List<PickupIndex> list2 = new List<PickupIndex>();
				List<PickupIndex> list3 = new List<PickupIndex>();
				List<PickupIndex> list4 = new List<PickupIndex>();
				List<PickupIndex> list5 = new List<PickupIndex>();
				List<PickupIndex> list6 = new List<PickupIndex>();
				List<PickupIndex> list7 = new List<PickupIndex>();
				List<PickupIndex> list8 = new List<PickupIndex>();
				List<PickupIndex> list9 = new List<PickupIndex>();
				list.AddRange(Run.instance.availableTier1DropList);
				list2.AddRange(Run.instance.availableTier2DropList);
				list3.AddRange(Run.instance.availableTier3DropList);
				list4.AddRange(Run.instance.availableBossDropList);
				list4.Add(PickupCatalog.FindPickupIndex(Items.Pearl.itemIndex));
				list4.Add(PickupCatalog.FindPickupIndex(Items.ShinyPearl.itemIndex));
				list5.AddRange(Run.instance.availableLunarItemDropList);
				list5.Remove(PickupCatalog.FindPickupIndex(Items.LunarPrimaryReplacement.itemIndex));
				list5.Remove(PickupCatalog.FindPickupIndex(Items.LunarSecondaryReplacement.itemIndex));
				list5.Remove(PickupCatalog.FindPickupIndex(Items.LunarUtilityReplacement.itemIndex));
				list5.Remove(PickupCatalog.FindPickupIndex(Items.LunarSpecialReplacement.itemIndex));
				list5.Remove(PickupCatalog.FindPickupIndex(Items.LunarTrinket.itemIndex));
				list6.AddRange(Run.instance.availableVoidTier1DropList);
				list7.AddRange(Run.instance.availableVoidTier2DropList);
				list8.AddRange(Run.instance.availableVoidTier3DropList);
				list9.AddRange(Run.instance.availableVoidBossDropList);
				List<int> list10 = new List<int>();
				List<int> list11 = new List<int>();
				List<int> list12 = new List<int>();
				List<int> list13 = new List<int>();
				List<int> list14 = new List<int>();
				List<int> list15 = new List<int>();
				List<int> list16 = new List<int>();
				List<int> list17 = new List<int>();
				List<int> list18 = new List<int>();
				for (int i = 0; i < array.Length; i++)
				{
					if (array[i] <= 0)
					{
						continue;
					}
					ItemDef itemDef = ItemCatalog.GetItemDef((ItemIndex)i);
					if (!((Object)itemDef).name.Equals("LunarTrinket") && !((Object)itemDef).name.EndsWith("Replacement") && (itemDef.ContainsTag((ItemTag)10) || ((Object)itemDef).name.EndsWith("Pearl") || itemDef.DoesNotContainTag((ItemTag)9)))
					{
						ItemTier tier = itemDef.tier;
						ItemTier val = tier;
						switch ((int)val)
						{
						case 0:
							num++;
							inventory.RemoveItem((ItemIndex)i, array[i]);
							list10.Add(array[i]);
							break;
						case 1:
							num2++;
							inventory.RemoveItem((ItemIndex)i, array[i]);
							list11.Add(array[i]);
							break;
						case 2:
							num3++;
							inventory.RemoveItem((ItemIndex)i, array[i]);
							list12.Add(array[i]);
							break;
						case 4:
							num4++;
							inventory.RemoveItem((ItemIndex)i, array[i]);
							list13.Add(array[i]);
							break;
						case 3:
							num5++;
							inventory.RemoveItem((ItemIndex)i, array[i]);
							list14.Add(array[i]);
							break;
						case 6:
							num6++;
							inventory.RemoveItem((ItemIndex)i, array[i]);
							list15.Add(array[i]);
							break;
						case 7:
							num7++;
							inventory.RemoveItem((ItemIndex)i, array[i]);
							list16.Add(array[i]);
							break;
						case 8:
							num8++;
							inventory.RemoveItem((ItemIndex)i, array[i]);
							list17.Add(array[i]);
							break;
						case 9:
							num9++;
							inventory.RemoveItem((ItemIndex)i, array[i]);
							list18.Add(array[i]);
							break;
						}
					}
				}
				PickupIndex val2;
				for (int j = 0; j < num6; j++)
				{
					int index = random.Next(0, list6.Count);
					int index2 = random.Next(0, list15.Count);
					if (list6.Count == 0)
					{
						list6.AddRange(Run.instance.availableVoidTier1DropList);
					}
					val2 = list6[index];
					inventory.GiveItem(((PickupIndex)(ref val2)).itemIndex, list15[index2]);
					list6.Remove(list6[index]);
					list15.Remove(list15[index2]);
				}
				for (int k = 0; k < num7; k++)
				{
					int index3 = random.Next(0, list7.Count);
					int index4 = random.Next(0, list16.Count);
					if (list7.Count == 0)
					{
						list7.AddRange(Run.instance.availableVoidTier2DropList);
					}
					val2 = list7[index3];
					inventory.GiveItem(((PickupIndex)(ref val2)).itemIndex, list16[index4]);
					list7.Remove(list7[index3]);
					list16.Remove(list16[index4]);
				}
				for (int l = 0; l < num8; l++)
				{
					int index5 = random.Next(0, list8.Count);
					int index6 = random.Next(0, list17.Count);
					if (list8.Count == 0)
					{
						list8.AddRange(Run.instance.availableVoidTier3DropList);
					}
					val2 = list8[index5];
					inventory.GiveItem(((PickupIndex)(ref val2)).itemIndex, list17[index6]);
					list8.Remove(list8[index5]);
					list17.Remove(list17[index6]);
				}
				for (int m = 0; m < num9; m++)
				{
					int index7 = random.Next(0, list9.Count);
					int index8 = random.Next(0, list18.Count);
					if (list9.Count == 0)
					{
						list9.AddRange(Run.instance.availableVoidBossDropList);
					}
					val2 = list9[index7];
					inventory.GiveItem(((PickupIndex)(ref val2)).itemIndex, list18[index8]);
					list9.Remove(list9[index7]);
					list18.Remove(list18[index8]);
				}
				for (int n = 0; n < num; n++)
				{
					int index9 = random.Next(0, list.Count);
					int index10 = random.Next(0, list10.Count);
					if (list.Count == 0)
					{
						list.AddRange(Run.instance.availableTier1DropList);
					}
					val2 = list[index9];
					inventory.GiveItem(((PickupIndex)(ref val2)).itemIndex, list10[index10]);
					list.Remove(list[index9]);
					list10.Remove(list10[index10]);
				}
				for (int num10 = 0; num10 < num2; num10++)
				{
					int index11 = random.Next(0, list2.Count);
					int index12 = random.Next(0, list11.Count);
					if (list2.Count == 0)
					{
						list2.AddRange(Run.instance.availableTier2DropList);
					}
					val2 = list2[index11];
					inventory.GiveItem(((PickupIndex)(ref val2)).itemIndex, list11[index12]);
					list2.Remove(list2[index11]);
					list11.Remove(list11[index12]);
				}
				for (int num11 = 0; num11 < num3; num11++)
				{
					int index13 = random.Next(0, list3.Count);
					int index14 = random.Next(0, list12.Count);
					if (list3.Count == 0)
					{
						list3.AddRange(Run.instance.availableTier3DropList);
					}
					val2 = list3[index13];
					inventory.GiveItem(((PickupIndex)(ref val2)).itemIndex, list12[index14]);
					list3.Remove(list3[index13]);
					list12.Remove(list12[index14]);
				}
				for (int num12 = 0; num12 < num4; num12++)
				{
					int index15 = random.Next(0, list4.Count);
					int index16 = random.Next(0, list13.Count);
					if (list4.Count == 0)
					{
						list4.AddRange(Run.instance.availableBossDropList);
					}
					val2 = list4[index15];
					inventory.GiveItem(((PickupIndex)(ref val2)).itemIndex, list13[index16]);
					list4.Remove(list4[index15]);
					list13.Remove(list13[index16]);
				}
				for (int num13 = 0; num13 < num5; num13++)
				{
					int index17 = random.Next(0, list5.Count);
					int index18 = random.Next(0, list14.Count);
					if (list5.Count == 0)
					{
						list5.AddRange(Run.instance.availableLunarItemDropList);
					}
					val2 = list5[index17];
					inventory.GiveItem(((PickupIndex)(ref val2)).itemIndex, list14[index18]);
					list5.Remove(list5[index17]);
					list14.Remove(list14[index18]);
				}
				Debug.Log((object)("Rerolled " + instance.GetDisplayName() + "'s inventory"));
			}
		}

		public static void RandomizeItemsMonster()
		{
			//IL_007b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0082: Expected O, but got Unknown
			//IL_0106: Unknown result type (might be due to invalid IL or missing references)
			//IL_010b: Unknown result type (might be due to invalid IL or missing references)
			//IL_010f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0190: Unknown result type (might be due to invalid IL or missing references)
			//IL_0195: Unknown result type (might be due to invalid IL or missing references)
			//IL_0199: 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_07f3: Unknown result type (might be due to invalid IL or missing references)
			//IL_07f7: Unknown result type (might be due to invalid IL or missing references)
			//IL_013f: Unknown result type (might be due to invalid IL or missing references)
			//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_0223: Unknown result type (might be due to invalid IL or missing references)
			//IL_0878: 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_0881: Unknown result type (might be due to invalid IL or missing references)
			//IL_01c9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0827: Unknown result type (might be due to invalid IL or missing references)
			//IL_02a4: Unknown result type (might be due to invalid IL or missing references)
			//IL_02a9: Unknown result type (might be due to invalid IL or missing references)
			//IL_02ad: Unknown result type (might be due to invalid IL or missing references)
			//IL_0902: Unknown result type (might be due to invalid IL or missing references)
			//IL_0907: Unknown result type (might be due to invalid IL or missing references)
			//IL_090b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0253: Unknown result type (might be due to invalid IL or missing references)
			//IL_08b1: Unknown result type (might be due to invalid IL or missing references)
			//IL_098c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0991: Unknown result type (might be due to invalid IL or missing references)
			//IL_0995: Unknown result type (might be due to invalid IL or missing references)
			//IL_02dd: Unknown result type (might be due to invalid IL or missing references)
			//IL_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_03a8: Unknown result type (might be due to invalid IL or missing references)
			//IL_03aa: 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_03c3: Expected I4, but got Unknown
			//IL_093b: Unknown result type (might be due to invalid IL or missing references)
			//IL_04b6: Unknown result type (might be due to invalid IL or missing references)
			//IL_04bb: Unknown result type (might be due to invalid IL or missing references)
			//IL_04bf: Unknown result type (might be due to invalid IL or missing references)
			//IL_04d9: Unknown result type (might be due to invalid IL or missing references)
			//IL_09c5: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a8a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a8f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a91: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a93: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a95: Unknown result type (might be due to invalid IL or missing references)
			//IL_0aac: Expected I4, 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_0566: Unknown result type (might be due to invalid IL or missing reference