Decompiled source of LittleGameplayFeatures v3.5.3

LittleGameplayFeatures.dll

Decompiled 2 weeks 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.IO;
using System.Linq;
using System.Reflection;
using System.Resources;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Configuration;
using HG;
using LittleGameplayFeatures.Properties;
using On.RoR2;
using On.RoR2.UI;
using R2API;
using R2API.Utils;
using Rewired;
using RiskOfOptions;
using RiskOfOptions.OptionConfigs;
using RiskOfOptions.Options;
using RoR2;
using RoR2.CharacterAI;
using RoR2.EntitlementManagement;
using RoR2.ExpansionManagement;
using RoR2.Navigation;
using RoR2.UI;
using UnityEngine;
using UnityEngine.AddressableAssets;
using UnityEngine.Networking;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: AssemblyCompany("LittleGameplayFeatures")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0+cd4b4260ca97f1c12754ded4357fdad600567f60")]
[assembly: AssemblyProduct("LittleGameplayFeatures")]
[assembly: AssemblyTitle("LittleGameplayFeatures")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
namespace MiscContent
{
	public class InteractableFamilyEvents
	{
		public static FamilyDirectorCardCategorySelection dccsDamageInteractablesFamily = ScriptableObject.CreateInstance<FamilyDirectorCardCategorySelection>();

		public static FamilyDirectorCardCategorySelection dccsHealingInteractablesFamily;

		public static FamilyDirectorCardCategorySelection dccsUtilityInteractablesFamily;

		public static void Start()
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_0016: Unknown result type (might be due to invalid IL or missing references)
			//IL_001f: Expected O, but got Unknown
			//IL_001f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0024: Unknown result type (might be due to invalid IL or missing references)
			//IL_0034: Unknown result type (might be due to invalid IL or missing references)
			//IL_003d: Expected O, but got Unknown
			//IL_003d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Unknown result type (might be due to invalid IL or missing references)
			//IL_005b: Expected O, but got Unknown
			//IL_005b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0060: Unknown result type (might be due to invalid IL or missing references)
			//IL_0070: Unknown result type (might be due to invalid IL or missing references)
			//IL_0079: Expected O, but got Unknown
			//IL_0079: Unknown result type (might be due to invalid IL or missing references)
			//IL_007e: Unknown result type (might be due to invalid IL or missing references)
			//IL_008e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0098: Expected O, but got Unknown
			//IL_0098: Unknown result type (might be due to invalid IL or missing references)
			//IL_009d: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ad: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b7: Expected O, but got Unknown
			//IL_00b7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00bc: Unknown result type (might be due to invalid IL or missing references)
			//IL_00cc: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d6: Expected O, but got Unknown
			//IL_00d6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00db: Unknown result type (might be due to invalid IL or missing references)
			//IL_00eb: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f5: Expected O, but got Unknown
			//IL_00f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fa: 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_0117: Expected O, but got Unknown
			//IL_0117: Unknown result type (might be due to invalid IL or missing references)
			//IL_011c: Unknown result type (might be due to invalid IL or missing references)
			//IL_012c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0139: Expected O, but got Unknown
			//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_014e: Unknown result type (might be due to invalid IL or missing references)
			//IL_015b: Expected O, but got Unknown
			//IL_015b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0160: Unknown result type (might be due to invalid IL or missing references)
			//IL_0166: Unknown result type (might be due to invalid IL or missing references)
			//IL_016b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0179: Unknown result type (might be due to invalid IL or missing references)
			//IL_0183: Expected O, but got Unknown
			//IL_0183: Unknown result type (might be due to invalid IL or missing references)
			//IL_0188: Unknown result type (might be due to invalid IL or missing references)
			//IL_018e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0193: 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_01ab: Expected O, but got Unknown
			//IL_01ab: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b0: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b6: Unknown result type (might be due to invalid IL or missing references)
			//IL_01bb: 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_01d3: Expected O, but got Unknown
			//IL_01d3: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d8: 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
			//IL_01f2: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f7: Unknown result type (might be due to invalid IL or missing references)
			//IL_0207: Unknown result type (might be due to invalid IL or missing references)
			//IL_0211: Expected O, but got Unknown
			//IL_0211: Unknown result type (might be due to invalid IL or missing references)
			//IL_0216: Unknown result type (might be due to invalid IL or missing references)
			//IL_0226: Unknown result type (might be due to invalid IL or missing references)
			//IL_0230: Expected O, but got Unknown
			//IL_0230: Unknown result type (might be due to invalid IL or missing references)
			//IL_0235: Unknown result type (might be due to invalid IL or missing references)
			//IL_0245: Unknown result type (might be due to invalid IL or missing references)
			//IL_024f: Expected O, but got Unknown
			//IL_024f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0254: Unknown result type (might be due to invalid IL or missing references)
			//IL_0264: Unknown result type (might be due to invalid IL or missing references)
			//IL_026e: Expected O, but got Unknown
			//IL_026e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0273: Unknown result type (might be due to invalid IL or missing references)
			//IL_0283: Unknown result type (might be due to invalid IL or missing references)
			//IL_028d: Expected O, but got Unknown
			//IL_028d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0292: Unknown result type (might be due to invalid IL or missing references)
			//IL_02a2: Unknown result type (might be due to invalid IL or missing references)
			//IL_02ac: Expected O, but got Unknown
			//IL_02ac: Unknown result type (might be due to invalid IL or missing references)
			//IL_02b1: Unknown result type (might be due to invalid IL or missing references)
			//IL_02c1: Unknown result type (might be due to invalid IL or missing references)
			//IL_02cb: Expected O, but got Unknown
			//IL_02cb: Unknown result type (might be due to invalid IL or missing references)
			//IL_02d0: Unknown result type (might be due to invalid IL or missing references)
			//IL_02e0: Unknown result type (might be due to invalid IL or missing references)
			//IL_02ea: Expected O, but got Unknown
			//IL_02ea: Unknown result type (might be due to invalid IL or missing references)
			//IL_02ef: Unknown result type (might be due to invalid IL or missing references)
			//IL_02ff: Unknown result type (might be due to invalid IL or missing references)
			//IL_0309: Expected O, but got Unknown
			//IL_0309: Unknown result type (might be due to invalid IL or missing references)
			//IL_030e: Unknown result type (might be due to invalid IL or missing references)
			//IL_031e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0328: Expected O, but got Unknown
			//IL_0328: Unknown result type (might be due to invalid IL or missing references)
			//IL_032d: Unknown result type (might be due to invalid IL or missing references)
			//IL_033d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0347: Expected O, but got Unknown
			//IL_0347: Unknown result type (might be due to invalid IL or missing references)
			//IL_034c: Unknown result type (might be due to invalid IL or missing references)
			//IL_035c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0366: Expected O, but got Unknown
			//IL_0366: Unknown result type (might be due to invalid IL or missing references)
			//IL_036b: 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_0382: Unknown result type (might be due to invalid IL or missing references)
			//IL_038b: Expected O, but got Unknown
			//IL_038b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0390: Unknown result type (might be due to invalid IL or missing references)
			//IL_03a0: Unknown result type (might be due to invalid IL or missing references)
			//IL_03aa: Expected O, but got Unknown
			//IL_03aa: 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_03bf: Unknown result type (might be due to invalid IL or missing references)
			//IL_03c9: Expected O, but got Unknown
			//IL_03c9: Unknown result type (might be due to invalid IL or missing references)
			//IL_03ce: Unknown result type (might be due to invalid IL or missing references)
			//IL_03de: Unknown result type (might be due to invalid IL or missing references)
			//IL_03e5: Unknown result type (might be due to invalid IL or missing references)
			//IL_03ee: Expected O, but got Unknown
			//IL_03ee: Unknown result type (might be due to invalid IL or missing references)
			//IL_03f3: Unknown result type (might be due to invalid IL or missing references)
			//IL_0403: Unknown result type (might be due to invalid IL or missing references)
			//IL_040a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0413: Expected O, but got Unknown
			//IL_0413: Unknown result type (might be due to invalid IL or missing references)
			//IL_0418: Unknown result type (might be due to invalid IL or missing references)
			//IL_0428: Unknown result type (might be due to invalid IL or missing references)
			//IL_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_0464: Unknown result type (might be due to invalid IL or missing references)
			//IL_0469: Unknown result type (might be due to invalid IL or missing references)
			//IL_0477: Unknown result type (might be due to invalid IL or missing references)
			//IL_047e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0487: Expected O, but got Unknown
			//IL_0487: Unknown result type (might be due to invalid IL or missing references)
			//IL_048c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0492: Unknown result type (might be due to invalid IL or missing references)
			//IL_0497: Unknown result type (might be due to invalid IL or missing references)
			//IL_04a5: 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_04b5: Expected O, but got Unknown
			//IL_04b5: Unknown result type (might be due to invalid IL or missing references)
			//IL_04ba: Unknown result type (might be due to invalid IL or missing references)
			//IL_04c0: Unknown result type (might be due to invalid IL or missing references)
			//IL_04c5: Unknown result type (might be due to invalid IL or missing references)
			//IL_04d3: Unknown result type (might be due to invalid IL or missing references)
			//IL_04da: Unknown result type (might be due to invalid IL or missing references)
			//IL_04e3: Expected O, but got Unknown
			//IL_04e3: Unknown result type (might be due to invalid IL or missing references)
			//IL_04e8: Unknown result type (might be due to invalid IL or missing references)
			//IL_04f8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0502: Expected O, but got Unknown
			//IL_0502: Unknown result type (might be due to invalid IL or missing references)
			//IL_0507: Unknown result type (might be due to invalid IL or missing references)
			//IL_0517: Unknown result type (might be due to invalid IL or missing references)
			//IL_051e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0527: Expected O, but got Unknown
			//IL_0527: Unknown result type (might be due to invalid IL or missing references)
			//IL_052c: Unknown result type (might be due to invalid IL or missing references)
			//IL_053c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0543: Unknown result type (might be due to invalid IL or missing references)
			//IL_054c: Expected O, but got Unknown
			//IL_054c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0551: Unknown result type (might be due to invalid IL or missing references)
			//IL_0561: Unknown result type (might be due to invalid IL or missing references)
			//IL_0568: Unknown result type (might be due to invalid IL or missing references)
			//IL_0571: Expected O, but got Unknown
			//IL_0571: Unknown result type (might be due to invalid IL or missing references)
			//IL_0576: Unknown result type (might be due to invalid IL or missing references)
			//IL_0586: Unknown result type (might be due to invalid IL or missing references)
			//IL_0590: Expected O, but got Unknown
			DirectorCard val = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscChest1"),
				selectionWeight = 120
			};
			DirectorCard val2 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscChest2"),
				selectionWeight = 20
			};
			DirectorCard val3 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscEquipmentBarrel"),
				selectionWeight = 20
			};
			DirectorCard val4 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscTripleShop"),
				selectionWeight = 20
			};
			DirectorCard val5 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscLunarChest"),
				selectionWeight = 10
			};
			DirectorCard val6 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscTripleShopLarge"),
				selectionWeight = 40
			};
			DirectorCard val7 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscCasinoChest"),
				selectionWeight = 40
			};
			DirectorCard val8 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscTripleShopEquipment"),
				selectionWeight = 20
			};
			DirectorCard val9 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscCategoryChestDamage"),
				selectionWeight = 240
			};
			DirectorCard val10 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscCategoryChestHealing"),
				selectionWeight = 240
			};
			DirectorCard val11 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscCategoryChestUtility"),
				selectionWeight = 240
			};
			DirectorCard val12 = new DirectorCard
			{
				spawnCard = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/DLC1/CategoryChest2/iscCategoryChest2Damage.asset").WaitForCompletion(),
				selectionWeight = 40
			};
			DirectorCard val13 = new DirectorCard
			{
				spawnCard = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/DLC1/CategoryChest2/iscCategoryChest2Healing.asset").WaitForCompletion(),
				selectionWeight = 40
			};
			DirectorCard val14 = new DirectorCard
			{
				spawnCard = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/DLC1/CategoryChest2/iscCategoryChest2Utility.asset").WaitForCompletion(),
				selectionWeight = 40
			};
			DirectorCard val15 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscBarrel1"),
				selectionWeight = 10
			};
			DirectorCard val16 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscShrineCombat"),
				selectionWeight = 30
			};
			DirectorCard val17 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscShrineBoss"),
				selectionWeight = 20
			};
			DirectorCard val18 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscShrineBlood"),
				selectionWeight = 30
			};
			DirectorCard val19 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscShrineHealing"),
				selectionWeight = 20
			};
			DirectorCard val20 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscShrineCleanse"),
				selectionWeight = 10
			};
			DirectorCard val21 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscShrineChance"),
				selectionWeight = 40
			};
			DirectorCard val22 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscShrineRestack"),
				selectionWeight = 10
			};
			DirectorCard val23 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscBrokenDrone1"),
				selectionWeight = 21
			};
			DirectorCard val24 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscBrokenDrone2"),
				selectionWeight = 21
			};
			DirectorCard val25 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscBrokenEmergencyDrone"),
				selectionWeight = 14
			};
			DirectorCard val26 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscBrokenEquipmentDrone"),
				selectionWeight = 14
			};
			DirectorCard val27 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscBrokenFlameDrone"),
				selectionWeight = 14
			};
			DirectorCard val28 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscBrokenMegaDrone"),
				selectionWeight = 3,
				minimumStageCompletions = 2
			};
			DirectorCard val29 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscBrokenMissileDrone"),
				selectionWeight = 14
			};
			DirectorCard val30 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscBrokenTurret1"),
				selectionWeight = 14
			};
			DirectorCard val31 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscGoldChest"),
				selectionWeight = 3,
				minimumStageCompletions = 4
			};
			DirectorCard val32 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscShrineGoldshoresAccess"),
				selectionWeight = 2,
				minimumStageCompletions = 2
			};
			DirectorCard val33 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscChest1Stealthed"),
				selectionWeight = 6
			};
			DirectorCard val34 = new DirectorCard
			{
				spawnCard = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/DLC1/VoidChest/iscVoidChest.asset").WaitForCompletion(),
				selectionWeight = 15
			};
			DirectorCard val35 = new DirectorCard
			{
				spawnCard = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/DLC1/VoidCamp/iscVoidCamp.asset").WaitForCompletion(),
				selectionWeight = 7,
				minimumStageCompletions = 1
			};
			DirectorCard val36 = new DirectorCard
			{
				spawnCard = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/DLC2/iscShrineHalcyonite.asset").WaitForCompletion(),
				selectionWeight = 2,
				minimumStageCompletions = 1
			};
			DirectorCard val37 = new DirectorCard
			{
				spawnCard = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/DLC2/iscShrineColossusAccess.asset").WaitForCompletion(),
				selectionWeight = 2,
				minimumStageCompletions = 3
			};
			DirectorCard val38 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscDuplicator"),
				selectionWeight = 30
			};
			DirectorCard val39 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscDuplicatorLarge"),
				selectionWeight = 7,
				minimumStageCompletions = 1
			};
			DirectorCard val40 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscDuplicatorMilitary"),
				selectionWeight = 2,
				minimumStageCompletions = 3
			};
			DirectorCard val41 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscDuplicatorWild"),
				selectionWeight = 2,
				minimumStageCompletions = 2
			};
			DirectorCard val42 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<InteractableSpawnCard>("spawncards/interactablespawncard/iscScrapper"),
				selectionWeight = 12
			};
			((Object)dccsDamageInteractablesFamily).name = "dccsDamageInteractablesFamily";
			((DirectorCardCategorySelection)dccsDamageInteractablesFamily).AddCategory("Chests", 45f);
			((DirectorCardCategorySelection)dccsDamageInteractablesFamily).AddCategory("Barrels", 10f);
			((DirectorCardCategorySelection)dccsDamageInteractablesFamily).AddCategory("Shrines", 15f);
			((DirectorCardCategorySelection)dccsDamageInteractablesFamily).AddCategory("Drones", 21f);
			((DirectorCardCategorySelection)dccsDamageInteractablesFamily).AddCategory("Misc", 0f);
			((DirectorCardCategorySelection)dccsDamageInteractablesFamily).AddCategory("Rare", 0.4f);
			((DirectorCardCategorySelection)dccsDamageInteractablesFamily).AddCategory("Duplicator", 8f);
			((DirectorCardCategorySelection)dccsDamageInteractablesFamily).AddCategory("Void Stuff", 1f);
			((DirectorCardCategorySelection)dccsDamageInteractablesFamily).AddCategory("Storm Stuff", 1f);
			((DirectorCardCategorySelection)dccsDamageInteractablesFamily).AddCard(0, val);
			((DirectorCardCategorySelection)dccsDamageInteractablesFamily).AddCard(0, val2);
			((DirectorCardCategorySelection)dccsDamageInteractablesFamily).AddCard(0, val4);
			((DirectorCardCategorySelection)dccsDamageInteractablesFamily).AddCard(0, val3);
			((DirectorCardCategorySelection)dccsDamageInteractablesFamily).AddCard(3, val15);
			((DirectorCardCategorySelection)dccsDamageInteractablesFamily).AddCard(5, val33);
			((DirectorCardCategorySelection)dccsDamageInteractablesFamily).AddCard(5, val31);
			((DirectorCardCategorySelection)dccsDamageInteractablesFamily).AddCard(5, val32);
			((DirectorCardCategorySelection)dccsDamageInteractablesFamily).AddCard(6, val38);
			((DirectorCardCategorySelection)dccsDamageInteractablesFamily).AddCard(6, val39);
			((DirectorCardCategorySelection)dccsDamageInteractablesFamily).AddCard(6, val40);
			((DirectorCardCategorySelection)dccsDamageInteractablesFamily).AddCard(6, val41);
			((DirectorCardCategorySelection)dccsDamageInteractablesFamily).AddCard(6, val42);
			((DirectorCardCategorySelection)dccsDamageInteractablesFamily).AddCard(7, val34);
			((DirectorCardCategorySelection)dccsDamageInteractablesFamily).AddCard(7, val35);
			((DirectorCardCategorySelection)dccsDamageInteractablesFamily).AddCard(8, val37);
			((DirectorCardCategorySelection)dccsDamageInteractablesFamily).AddCard(8, val36);
			dccsHealingInteractablesFamily = Object.Instantiate<FamilyDirectorCardCategorySelection>(dccsDamageInteractablesFamily);
			dccsUtilityInteractablesFamily = Object.Instantiate<FamilyDirectorCardCategorySelection>(dccsDamageInteractablesFamily);
			((Object)dccsHealingInteractablesFamily).name = "dccsHealingInteractablesFamily";
			((Object)dccsUtilityInteractablesFamily).name = "dccsUtilityInteractablesFamily";
			((DirectorCardCategorySelection)dccsDamageInteractablesFamily).AddCard(0, val9);
			((DirectorCardCategorySelection)dccsDamageInteractablesFamily).AddCard(0, val12);
			((DirectorCardCategorySelection)dccsHealingInteractablesFamily).AddCard(0, val10);
			((DirectorCardCategorySelection)dccsHealingInteractablesFamily).AddCard(0, val13);
			((DirectorCardCategorySelection)dccsHealingInteractablesFamily).AddCard(0, val6);
			((DirectorCardCategorySelection)dccsHealingInteractablesFamily).AddCard(0, val5);
			((DirectorCardCategorySelection)dccsUtilityInteractablesFamily).AddCard(0, val11);
			((DirectorCardCategorySelection)dccsUtilityInteractablesFamily).AddCard(0, val14);
			((DirectorCardCategorySelection)dccsUtilityInteractablesFamily).AddCard(0, val8);
			((DirectorCardCategorySelection)dccsUtilityInteractablesFamily).AddCard(0, val7);
			((DirectorCardCategorySelection)dccsDamageInteractablesFamily).AddCard(2, val17);
			((DirectorCardCategorySelection)dccsDamageInteractablesFamily).AddCard(2, val16);
			((DirectorCardCategorySelection)dccsHealingInteractablesFamily).AddCard(2, val18);
			((DirectorCardCategorySelection)dccsHealingInteractablesFamily).AddCard(2, val19);
			((DirectorCardCategorySelection)dccsHealingInteractablesFamily).AddCard(2, val20);
			((DirectorCardCategorySelection)dccsUtilityInteractablesFamily).AddCard(2, val21);
			((DirectorCardCategorySelection)dccsUtilityInteractablesFamily).AddCard(2, val22);
			((DirectorCardCategorySelection)dccsDamageInteractablesFamily).AddCard(3, val23);
			((DirectorCardCategorySelection)dccsDamageInteractablesFamily).AddCard(3, val29);
			((DirectorCardCategorySelection)dccsDamageInteractablesFamily).AddCard(3, val27);
			((DirectorCardCategorySelection)dccsDamageInteractablesFamily).AddCard(3, val28);
			((DirectorCardCategorySelection)dccsHealingInteractablesFamily).AddCard(3, val24);
			((DirectorCardCategorySelection)dccsHealingInteractablesFamily).AddCard(3, val25);
			((DirectorCardCategorySelection)dccsUtilityInteractablesFamily).AddCard(3, val26);
			((DirectorCardCategorySelection)dccsUtilityInteractablesFamily).AddCard(3, val30);
			Add();
		}

		public static WeightedSelection<DirectorCardCategorySelection> DccsPool_GenerateWeightedSelection(orig_GenerateWeightedSelection orig, DccsPool self)
		{
			WeightedSelection<DirectorCardCategorySelection> val = orig.Invoke(self);
			for (int i = 0; i < val.choices.Length; i++)
			{
				Debug.Log((object)(((object)val.choices[i].value)?.ToString() + " : " + val.choices[i].weight));
			}
			return val;
		}

		public static void Add()
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_000b: Unknown result type (might be due to invalid IL or missing references)
			//IL_001a: Unknown result type (might be due to invalid IL or missing references)
			//IL_001f: Unknown result type (might be due to invalid IL or missing references)
			//IL_002e: 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_0042: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: 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_005b: Unknown result type (might be due to invalid IL or missing references)
			//IL_006b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0070: Unknown result type (might be due to invalid IL or missing references)
			//IL_0080: Unknown result type (might be due to invalid IL or missing references)
			//IL_0085: Unknown result type (might be due to invalid IL or missing references)
			//IL_0095: Unknown result type (might be due to invalid IL or missing references)
			//IL_009a: Unknown result type (might be due to invalid IL or missing references)
			//IL_00aa: Unknown result type (might be due to invalid IL or missing references)
			//IL_00af: Unknown result type (might be due to invalid IL or missing references)
			//IL_00bf: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ee: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fe: Unknown result type (might be due to invalid IL or missing references)
			//IL_0103: Unknown result type (might be due to invalid IL or missing references)
			//IL_0113: 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_0128: Unknown result type (might be due to invalid IL or missing references)
			//IL_012d: Unknown result type (might be due to invalid IL or missing references)
			//IL_013d: 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_0152: Unknown result type (might be due to invalid IL or missing references)
			//IL_0157: Unknown result type (might be due to invalid IL or missing references)
			//IL_0167: Unknown result type (might be due to invalid IL or missing references)
			//IL_016c: Unknown result type (might be due to invalid IL or missing references)
			//IL_017c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0181: Unknown result type (might be due to invalid IL or missing references)
			//IL_0191: 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_01a1: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a8: Expected O, but got Unknown
			//IL_01ca: Unknown result type (might be due to invalid IL or missing references)
			//IL_01cf: Unknown result type (might be due to invalid IL or missing references)
			//IL_01da: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e5: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ed: Expected O, but got Unknown
			//IL_01ef: 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_01ff: Unknown result type (might be due to invalid IL or missing references)
			//IL_020a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0212: Expected O, but got Unknown
			//IL_0214: Unknown result type (might be due to invalid IL or missing references)
			//IL_0219: Unknown result type (might be due to invalid IL or missing references)
			//IL_0224: Unknown result type (might be due to invalid IL or missing references)
			//IL_022f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0237: Expected O, but got Unknown
			DccsPool val = Addressables.LoadAssetAsync<DccsPool>((object)"RoR2/Base/golemplains/dpGolemplainsInteractables.asset").WaitForCompletion();
			DccsPool val2 = Addressables.LoadAssetAsync<DccsPool>((object)"RoR2/Base/blackbeach/dpBlackBeachInteractables.asset").WaitForCompletion();
			DccsPool val3 = Addressables.LoadAssetAsync<DccsPool>((object)"RoR2/DLC1/snowyforest/dpSnowyForestInteractables.asset").WaitForCompletion();
			DccsPool val4 = Addressables.LoadAssetAsync<DccsPool>((object)"RoR2/DLC2/lakes/dpLakesInteractables.asset").WaitForCompletion();
			DccsPool val5 = Addressables.LoadAssetAsync<DccsPool>((object)"RoR2/DLC2/lakesnight/dpLakesnightInteractables.asset").WaitForCompletion();
			DccsPool val6 = Addressables.LoadAssetAsync<DccsPool>((object)"RoR2/DLC2/village/dpVillageInteractables.asset").WaitForCompletion();
			DccsPool val7 = Addressables.LoadAssetAsync<DccsPool>((object)"RoR2/Base/goolake/dpGooLakeInteractables.asset").WaitForCompletion();
			DccsPool val8 = Addressables.LoadAssetAsync<DccsPool>((object)"RoR2/Base/foggyswamp/dpFoggySwampInteractables.asset").WaitForCompletion();
			DccsPool val9 = Addressables.LoadAssetAsync<DccsPool>((object)"RoR2/DLC1/ancientloft/dpAncientLoftInteractables.asset").WaitForCompletion();
			DccsPool val10 = Addressables.LoadAssetAsync<DccsPool>((object)"RoR2/DLC2/lemuriantemple/dpLemurianTempleInteractables.asset").WaitForCompletion();
			DccsPool val11 = Addressables.LoadAssetAsync<DccsPool>((object)"RoR2/Base/frozenwall/dpFrozenWallInteractables.asset").WaitForCompletion();
			DccsPool val12 = Addressables.LoadAssetAsync<DccsPool>((object)"RoR2/Base/wispgraveyard/dpWispGraveyardInteractables.asset").WaitForCompletion();
			DccsPool val13 = Addressables.LoadAssetAsync<DccsPool>((object)"RoR2/DLC1/sulfurpools/dpSulfurPoolsInteractables.asset").WaitForCompletion();
			DccsPool val14 = Addressables.LoadAssetAsync<DccsPool>((object)"RoR2/DLC2/habitat/dpHabitatInteractables.asset").WaitForCompletion();
			DccsPool val15 = Addressables.LoadAssetAsync<DccsPool>((object)"RoR2/DLC2/habitatfall/dpHabitatfallInteractables.asset").WaitForCompletion();
			DccsPool val16 = Addressables.LoadAssetAsync<DccsPool>((object)"RoR2/Base/dampcave/dpDampCaveInteractables.asset").WaitForCompletion();
			DccsPool val17 = Addressables.LoadAssetAsync<DccsPool>((object)"RoR2/Base/shipgraveyard/dpShipgraveyardInteractables.asset").WaitForCompletion();
			DccsPool val18 = Addressables.LoadAssetAsync<DccsPool>((object)"RoR2/Base/rootjungle/dpRootJungleInteractables.asset").WaitForCompletion();
			DccsPool val19 = Addressables.LoadAssetAsync<DccsPool>((object)"RoR2/Base/skymeadow/dpSkyMeadowInteractables.asset").WaitForCompletion();
			DccsPool val20 = Addressables.LoadAssetAsync<DccsPool>((object)"RoR2/DLC2/helminthroost/dpHelminthRoostInteractables.asset").WaitForCompletion();
			Category val21 = new Category();
			val21.categoryWeight = 0.005f;
			val21.name = "Family";
			val21.alwaysIncluded = (PoolEntry[])(object)new PoolEntry[3]
			{
				(PoolEntry)new ConditionalPoolEntry
				{
					weight = 1f,
					dccs = (DirectorCardCategorySelection)(object)dccsDamageInteractablesFamily,
					requiredExpansions = null
				},
				(PoolEntry)new ConditionalPoolEntry
				{
					weight = 1f,
					dccs = (DirectorCardCategorySelection)(object)dccsHealingInteractablesFamily,
					requiredExpansions = null
				},
				(PoolEntry)new ConditionalPoolEntry
				{
					weight = 1f,
					dccs = (DirectorCardCategorySelection)(object)dccsUtilityInteractablesFamily,
					requiredExpansions = null
				}
			};
			val21.includedIfNoConditionsMet = (PoolEntry[])(object)new PoolEntry[0];
			val21.includedIfConditionsMet = (ConditionalPoolEntry[])(object)new ConditionalPoolEntry[0];
			Category val22 = val21;
			ArrayUtils.ArrayAppend<Category>(ref val.poolCategories, ref val22);
			ArrayUtils.ArrayAppend<Category>(ref val2.poolCategories, ref val22);
			ArrayUtils.ArrayAppend<Category>(ref val3.poolCategories, ref val22);
			ArrayUtils.ArrayAppend<Category>(ref val4.poolCategories, ref val22);
			ArrayUtils.ArrayAppend<Category>(ref val5.poolCategories, ref val22);
			ArrayUtils.ArrayAppend<Category>(ref val6.poolCategories, ref val22);
			ArrayUtils.ArrayAppend<Category>(ref val7.poolCategories, ref val22);
			ArrayUtils.ArrayAppend<Category>(ref val8.poolCategories, ref val22);
			ArrayUtils.ArrayAppend<Category>(ref val9.poolCategories, ref val22);
			ArrayUtils.ArrayAppend<Category>(ref val10.poolCategories, ref val22);
			ArrayUtils.ArrayAppend<Category>(ref val11.poolCategories, ref val22);
			ArrayUtils.ArrayAppend<Category>(ref val12.poolCategories, ref val22);
			ArrayUtils.ArrayAppend<Category>(ref val13.poolCategories, ref val22);
			ArrayUtils.ArrayAppend<Category>(ref val14.poolCategories, ref val22);
			ArrayUtils.ArrayAppend<Category>(ref val15.poolCategories, ref val22);
			ArrayUtils.ArrayAppend<Category>(ref val16.poolCategories, ref val22);
			ArrayUtils.ArrayAppend<Category>(ref val17.poolCategories, ref val22);
			ArrayUtils.ArrayAppend<Category>(ref val18.poolCategories, ref val22);
			ArrayUtils.ArrayAppend<Category>(ref val19.poolCategories, ref val22);
			ArrayUtils.ArrayAppend<Category>(ref val20.poolCategories, ref val22);
		}
	}
	public class LunarCamp
	{
		public static InteractableSpawnCard iscLunarCamp = Object.Instantiate<InteractableSpawnCard>(Addressables.LoadAssetAsync<InteractableSpawnCard>((object)"RoR2/DLC1/VoidCamp/iscVoidCamp.asset").WaitForCompletion());

		public static void Start()
		{
			//IL_0013: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Unknown result type (might be due to invalid IL or missing references)
			//IL_0028: Unknown result type (might be due to invalid IL or missing references)
			//IL_002f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0036: Unknown result type (might be due to invalid IL or missing references)
			//IL_003e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0040: Unknown result type (might be due to invalid IL or missing references)
			//IL_0046: Expected O, but got Unknown
			//IL_0046: Unknown result type (might be due to invalid IL or missing references)
			//IL_004b: Unknown result type (might be due to invalid IL or missing references)
			//IL_005b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0062: Unknown result type (might be due to invalid IL or missing references)
			//IL_0069: Unknown result type (might be due to invalid IL or missing references)
			//IL_0070: Unknown result type (might be due to invalid IL or missing references)
			//IL_0072: Unknown result type (might be due to invalid IL or missing references)
			//IL_0079: Expected O, but got Unknown
			//IL_0079: Unknown result type (might be due to invalid IL or missing references)
			//IL_007e: Unknown result type (might be due to invalid IL or missing references)
			//IL_008e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0095: Unknown result type (might be due to invalid IL or missing references)
			//IL_009c: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a3: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ac: Expected O, but got Unknown
			DirectorCardCategorySelection val = ScriptableObject.CreateInstance<DirectorCardCategorySelection>();
			DirectorCardCategorySelection val2 = ScriptableObject.CreateInstance<DirectorCardCategorySelection>();
			DirectorCardCategorySelection val3 = ScriptableObject.CreateInstance<DirectorCardCategorySelection>();
			DirectorCard val4 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<CharacterSpawnCard>("SpawnCards/CharacterSpawnCards/cscLunarExploder"),
				selectionWeight = 1,
				preventOverhead = false,
				minimumStageCompletions = 10,
				spawnDistance = (MonsterSpawnDistance)0
			};
			DirectorCard val5 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<CharacterSpawnCard>("SpawnCards/CharacterSpawnCards/cscLunarGolem"),
				selectionWeight = 1,
				preventOverhead = false,
				minimumStageCompletions = 0,
				spawnDistance = (MonsterSpawnDistance)0
			};
			DirectorCard val6 = new DirectorCard
			{
				spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<CharacterSpawnCard>("SpawnCards/CharacterSpawnCards/cscLunarWisp"),
				selectionWeight = 1,
				preventOverhead = true,
				minimumStageCompletions = 0,
				spawnDistance = (MonsterSpawnDistance)0
			};
			((Object)iscLunarCamp).name = "iscLunarCamp";
			((Object)val).name = "dccsLunarCampMonsters";
			val.AddCategory("Minibosses", 6f);
			val.AddCard(0, val4);
			val.AddCard(0, val5);
			val.AddCard(0, val6);
			((Object)val2).name = "dccsLunarCampInteractables";
			val2.AddCategory("Chests", 6f);
			((Object)val3).name = "dccsLunarCampFlavorProps";
		}
	}
}
namespace LittleGameplayFeatures
{
	internal static class Assets
	{
		public static AssetBundle Bundle;

		public static PluginInfo PluginInfo;

		public static string Folder = "GameplayTweaks\\";

		internal static string assemblyDir => Path.GetDirectoryName(PluginInfo.Location);

		internal static void Init(PluginInfo info)
		{
			//IL_0058: Unknown result type (might be due to invalid IL or missing references)
			//IL_0062: Expected O, but got Unknown
			PluginInfo = info;
			if (!Directory.Exists(GetPathToFile(Folder)))
			{
				Folder = "plugins\\" + Folder;
			}
			if (Directory.Exists(GetPathToFile(Folder + "Languages")))
			{
				Language.SetFolders += new hook_SetFolders(SetFolders);
			}
			else
			{
				Debug.LogWarning((object)"COULD NOT FIND LANGUAGES FOLDER");
			}
		}

		public static void SetFolders(orig_SetFolders orig, Language self, IEnumerable<string> newFolders)
		{
			IEnumerable<string> second = Directory.EnumerateDirectories(Path.Combine(GetPathToFile(Folder + "Languages")), self.name);
			orig.Invoke(self, newFolders.Union(second));
		}

		internal static string GetPathToFile(string folderName)
		{
			return Path.Combine(assemblyDir, folderName);
		}

		internal static string GetPathToFile(string folderName, string fileName)
		{
			return Path.Combine(assemblyDir, folderName, fileName);
		}
	}
	public class WConfig
	{
		public static ConfigFile ConfigFileLTG = new ConfigFile(Paths.ConfigPath + "\\Wolfo.LittleGameplayFeatures.cfg", true);

		public static ConfigEntry<bool> cfgScavNewTwisted;

		public static ConfigEntry<bool> cfgRedMultiShop;

		public static ConfigEntry<bool> cfgNewFamilies;

		public static ConfigEntry<bool> cfgPrismRun;

		public static ConfigEntry<bool> cfgPrismTimerAlwaysRun;

		public static void InitConfig()
		{
			cfgPrismTimerAlwaysRun = ConfigFileLTG.Bind<bool>("Prismatic", "Prismatic | Always run timer", true, "Should the timer always run, like during Prismatic Trials,\nor stop during certain stages.");
			cfgPrismRun = ConfigFileLTG.Bind<bool>("Content", "Prismatic Run Gamemode", true, "Prismatic Trial but as a whole run.");
			cfgPrismRun.SettingChanged += CfgPrismRun_SettingChanged;
			cfgScavNewTwisted = ConfigFileLTG.Bind<bool>("Content", "New Twisted Scavengers", true, "Adds new Twisted Scavengers with DLC items");
			cfgRedMultiShop = ConfigFileLTG.Bind<bool>("Content", "Legendary Multi Shop", true, "Very rare interactable");
			cfgNewFamilies = ConfigFileLTG.Bind<bool>("Content", "New Family Events", true, "Adds family events for multiple groups lacking it.\nClay, Solus, Worms, Vermin");
		}

		private static void CfgPrismRun_SettingChanged(object sender, EventArgs e)
		{
			((Run)PrismaticRunMaker.runObject.GetComponent<PrismRun>()).userPickable = cfgPrismRun.Value;
		}

		public static void RiskConfig()
		{
			//IL_0019: Unknown result type (might be due to invalid IL or missing references)
			//IL_001e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0027: Expected O, but got Unknown
			//IL_0049: Unknown result type (might be due to invalid IL or missing references)
			//IL_0058: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_006d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0078: Unknown result type (might be due to invalid IL or missing references)
			//IL_0080: Expected O, but got Unknown
			//IL_0080: Unknown result type (might be due to invalid IL or missing references)
			//IL_0085: Unknown result type (might be due to invalid IL or missing references)
			//IL_0090: Unknown result type (might be due to invalid IL or missing references)
			//IL_0098: Expected O, but got Unknown
			//IL_009e: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a8: Expected O, but got Unknown
			//IL_00af: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b9: Expected O, but got Unknown
			//IL_00c0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ca: Expected O, but got Unknown
			//IL_00d1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00db: Expected O, but got Unknown
			//IL_00e2: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ec: Expected O, but got Unknown
			ModSettingsManager.SetModDescription("Prismatic Run and other junk");
			Texture2D val = new Texture2D(128, 128, (TextureFormat)10, false)
			{
				filterMode = (FilterMode)1
			};
			ImageConversion.LoadImage(val, Resources.texPrismRuleOn, false);
			ModSettingsManager.SetModIcon(Sprite.Create(val, new Rect(0f, 0f, 128f, 128f), new Vector2(0.5f, 0.5f)));
			CheckBoxConfig val2 = new CheckBoxConfig
			{
				category = "Config",
				restartRequired = false
			};
			CheckBoxConfig val3 = new CheckBoxConfig
			{
				category = "Config",
				restartRequired = true
			};
			ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(cfgPrismTimerAlwaysRun, val2));
			ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(cfgPrismRun, val2));
			ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(cfgRedMultiShop, val3));
			ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(cfgScavNewTwisted, val3));
			ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(cfgNewFamilies, val3));
		}
	}
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInPlugin("Wolfo.LittleGameplayTweaksFeatures", "LittleGameplayFeatures", "3.5.0")]
	[NetworkCompatibility(/*Could not decode attribute arguments.*/)]
	public class LittleGameplayTweaks : BaseUnityPlugin
	{
		private static readonly Random random = new Random();

		public void Awake()
		{
			Assets.Init(((BaseUnityPlugin)this).Info);
			WConfig.InitConfig();
			TwistedScavs.Start();
			TripleShopLegendary.Start();
			NewFamilyEvents.Families();
			PrismaticRunMaker.Start();
			((ResourceAvailability)(ref GameModeCatalog.availability)).CallWhenAvailable((Action)LateMethod);
		}

		internal static void LateMethod()
		{
			WConfig.RiskConfig();
			NewFamilyEvents.ModSupport();
			PrismaticRunMaker.LateRunningMethod();
			TripleShopLegendary.AddPingIcon();
			TwistedScavs.CallLate();
		}
	}
	public class NewFamilyEvents
	{
		public static FamilyDirectorCardCategorySelection dccsClayFamily = ScriptableObject.CreateInstance<FamilyDirectorCardCategorySelection>();

		public static FamilyDirectorCardCategorySelection dccsRoboBallFamily = ScriptableObject.CreateInstance<FamilyDirectorCardCategorySelection>();

		public static FamilyDirectorCardCategorySelection dccsRoboBall2Family = ScriptableObject.CreateInstance<FamilyDirectorCardCategorySelection>();

		public static FamilyDirectorCardCategorySelection dccsVerminFamily = ScriptableObject.CreateInstance<FamilyDirectorCardCategorySelection>();

		public static FamilyDirectorCardCategorySelection dccsVerminFamilySnowy = ScriptableObject.CreateInstance<FamilyDirectorCardCategorySelection>();

		public static FamilyDirectorCardCategorySelection dccsWormsFamily = ScriptableObject.CreateInstance<FamilyDirectorCardCategorySelection>();

		public static void Families()
		{
			//IL_001f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0024: 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_0038: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Unknown result type (might be due to invalid IL or missing references)
			//IL_004c: Unknown result type (might be due to invalid IL or missing references)
			//IL_005b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0060: Unknown result type (might be due to invalid IL or missing references)
			//IL_006f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0074: Unknown result type (might be due to invalid IL or missing references)
			//IL_0084: Unknown result type (might be due to invalid IL or missing references)
			//IL_0089: Unknown result type (might be due to invalid IL or missing references)
			//IL_0099: Unknown result type (might be due to invalid IL or missing references)
			//IL_009e: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ae: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b3: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c3: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c8: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d8: Unknown result type (might be due to invalid IL or missing references)
			//IL_00dd: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ed: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f2: 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_0117: Unknown result type (might be due to invalid IL or missing references)
			//IL_011c: Unknown result type (might be due to invalid IL or missing references)
			//IL_012c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0131: Unknown result type (might be due to invalid IL or missing references)
			//IL_0141: Unknown result type (might be due to invalid IL or missing references)
			//IL_0146: Unknown result type (might be due to invalid IL or missing references)
			//IL_0151: Unknown result type (might be due to invalid IL or missing references)
			//IL_0156: Unknown result type (might be due to invalid IL or missing references)
			//IL_0166: Unknown result type (might be due to invalid IL or missing references)
			//IL_016d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0174: Unknown result type (might be due to invalid IL or missing references)
			//IL_017b: Unknown result type (might be due to invalid IL or missing references)
			//IL_017d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0184: Expected O, but got Unknown
			//IL_0184: Unknown result type (might be due to invalid IL or missing references)
			//IL_0189: 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_01a0: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a7: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ae: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b0: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b7: Expected O, but got Unknown
			//IL_01b7: Unknown result type (might be due to invalid IL or missing references)
			//IL_01bc: Unknown result type (might be due to invalid IL or missing references)
			//IL_01cc: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d3: Unknown result type (might be due to invalid IL or missing references)
			//IL_01da: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e1: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e3: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ea: Expected O, but got Unknown
			//IL_01ea: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ef: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ff: Unknown result type (might be due to invalid IL or missing references)
			//IL_0206: Unknown result type (might be due to invalid IL or missing references)
			//IL_020d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0214: Unknown result type (might be due to invalid IL or missing references)
			//IL_0216: Unknown result type (might be due to invalid IL or missing references)
			//IL_021d: Expected O, but got Unknown
			//IL_021d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0222: Unknown result type (might be due to invalid IL or missing references)
			//IL_0232: 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_0240: Unknown result type (might be due to invalid IL or missing references)
			//IL_0247: Unknown result type (might be due to invalid IL or missing references)
			//IL_0249: Unknown result type (might be due to invalid IL or missing references)
			//IL_0250: Expected O, but got Unknown
			//IL_0255: Unknown result type (might be due to invalid IL or missing references)
			//IL_025a: Unknown result type (might be due to invalid IL or missing references)
			//IL_027a: Unknown result type (might be due to invalid IL or missing references)
			//IL_027f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0284: Unknown result type (might be due to invalid IL or missing references)
			//IL_028c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0293: Unknown result type (might be due to invalid IL or missing references)
			//IL_029a: Unknown result type (might be due to invalid IL or missing references)
			//IL_02a1: Unknown result type (might be due to invalid IL or missing references)
			//IL_02a3: Unknown result type (might be due to invalid IL or missing references)
			//IL_02aa: Expected O, but got Unknown
			//IL_02b3: Unknown result type (might be due to invalid IL or missing references)
			//IL_02b8: Unknown result type (might be due to invalid IL or missing references)
			//IL_02c8: Unknown result type (might be due to invalid IL or missing references)
			//IL_02cf: 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_02de: Unknown result type (might be due to invalid IL or missing references)
			//IL_02e0: Unknown result type (might be due to invalid IL or missing references)
			//IL_02e7: Expected O, but got Unknown
			//IL_02e7: 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_02fc: Unknown result type (might be due to invalid IL or missing references)
			//IL_0303: Unknown result type (might be due to invalid IL or missing references)
			//IL_030b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0312: Unknown result type (might be due to invalid IL or missing references)
			//IL_0314: Unknown result type (might be due to invalid IL or missing references)
			//IL_031b: Expected O, but got Unknown
			//IL_031b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0320: Unknown result type (might be due to invalid IL or missing references)
			//IL_0330: Unknown result type (might be due to invalid IL or missing references)
			//IL_0337: Unknown result type (might be due to invalid IL or missing references)
			//IL_033f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0346: Unknown result type (might be due to invalid IL or missing references)
			//IL_0348: Unknown result type (might be due to invalid IL or missing references)
			//IL_034f: Expected O, but got Unknown
			//IL_034f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0354: Unknown result type (might be due to invalid IL or missing references)
			//IL_0364: Unknown result type (might be due to invalid IL or missing references)
			//IL_036b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0373: Unknown result type (might be due to invalid IL or missing references)
			//IL_037a: Unknown result type (might be due to invalid IL or missing references)
			//IL_037c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0383: Expected O, but got Unknown
			//IL_0383: Unknown result type (might be due to invalid IL or missing references)
			//IL_0388: Unknown result type (might be due to invalid IL or missing references)
			//IL_0398: Unknown result type (might be due to invalid IL or missing references)
			//IL_039f: 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_03ad: 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_03b6: Expected O, but got Unknown
			//IL_03b6: Unknown result type (might be due to invalid IL or missing references)
			//IL_03bb: Unknown result type (might be due to invalid IL or missing references)
			//IL_03cb: Unknown result type (might be due to invalid IL or missing references)
			//IL_03d2: Unknown result type (might be due to invalid IL or missing references)
			//IL_03d9: Unknown result type (might be due to invalid IL or missing references)
			//IL_03e0: Unknown result type (might be due to invalid IL or missing references)
			//IL_03e2: Unknown result type (might be due to invalid IL or missing references)
			//IL_03e9: Expected O, but got Unknown
			//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_03f4: Unknown result type (might be due to invalid IL or missing references)
			//IL_03f9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0407: 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_0415: Unknown result type (might be due to invalid IL or missing references)
			//IL_041c: Unknown result type (might be due to invalid IL or missing references)
			//IL_041e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0425: Expected O, but got Unknown
			//IL_0425: Unknown result type (might be due to invalid IL or missing references)
			//IL_042a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0430: Unknown result type (might be due to invalid IL or missing references)
			//IL_0435: Unknown result type (might be due to invalid IL or missing references)
			//IL_0443: Unknown result type (might be due to invalid IL or missing references)
			//IL_044a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0451: Unknown result type (might be due to invalid IL or missing references)
			//IL_0458: Unknown result type (might be due to invalid IL or missing references)
			//IL_045a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0461: Expected O, but got Unknown
			//IL_0708: Unknown result type (might be due to invalid IL or missing references)
			//IL_070d: Unknown result type (might be due to invalid IL or missing references)
			//IL_071d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0722: Unknown result type (might be due to invalid IL or missing references)
			//IL_074f: 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_075f: Unknown result type (might be due to invalid IL or missing references)
			//IL_076a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0774: Expected O, but got Unknown
			//IL_0774: Unknown result type (might be due to invalid IL or missing references)
			//IL_0779: Unknown result type (might be due to invalid IL or missing references)
			//IL_0784: Unknown result type (might be due to invalid IL or missing references)
			//IL_078f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0799: Expected O, but got Unknown
			//IL_0799: Unknown result type (might be due to invalid IL or missing references)
			//IL_079e: Unknown result type (might be due to invalid IL or missing references)
			//IL_07a9: Unknown result type (might be due to invalid IL or missing references)
			//IL_07b4: Unknown result type (might be due to invalid IL or missing references)
			//IL_07be: Expected O, but got Unknown
			//IL_07be: Unknown result type (might be due to invalid IL or missing references)
			//IL_07c3: Unknown result type (might be due to invalid IL or missing references)
			//IL_07ce: Unknown result type (might be due to invalid IL or missing references)
			//IL_07d9: Unknown result type (might be due to invalid IL or missing references)
			//IL_07e3: Expected O, but got Unknown
			//IL_07e3: Unknown result type (might be due to invalid IL or missing references)
			//IL_07e8: 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_07fe: Unknown result type (might be due to invalid IL or missing references)
			//IL_0808: Expected O, but got Unknown
			if (WConfig.cfgNewFamilies.Value)
			{
				DccsPool pool = Addressables.LoadAssetAsync<DccsPool>((object)"RoR2/DLC1/snowyforest/dpSnowyForestMonsters.asset").WaitForCompletion();
				DccsPool pool2 = Addressables.LoadAssetAsync<DccsPool>((object)"RoR2/DLC2/lakesnight/dpLakesnightMonsters.asset").WaitForCompletion();
				DccsPool pool3 = Addressables.LoadAssetAsync<DccsPool>((object)"RoR2/Base/goolake/dpGooLakeMonsters.asset").WaitForCompletion();
				DccsPool pool4 = Addressables.LoadAssetAsync<DccsPool>((object)"RoR2/DLC1/ancientloft/dpAncientLoftMonsters.asset").WaitForCompletion();
				DccsPool pool5 = Addressables.LoadAssetAsync<DccsPool>((object)"RoR2/DLC2/lemuriantemple/dpLemurianTempleMonsters.asset").WaitForCompletion();
				DccsPool pool6 = Addressables.LoadAssetAsync<DccsPool>((object)"RoR2/Base/frozenwall/dpFrozenWallMonsters.asset").WaitForCompletion();
				DccsPool pool7 = Addressables.LoadAssetAsync<DccsPool>((object)"RoR2/Base/wispgraveyard/dpWispGraveyardMonsters.asset").WaitForCompletion();
				DccsPool pool8 = Addressables.LoadAssetAsync<DccsPool>((object)"RoR2/DLC1/sulfurpools/dpSulfurPoolsMonsters.asset").WaitForCompletion();
				DccsPool pool9 = Addressables.LoadAssetAsync<DccsPool>((object)"RoR2/DLC2/habitat/dpHabitatMonsters.asset").WaitForCompletion();
				DccsPool pool10 = Addressables.LoadAssetAsync<DccsPool>((object)"RoR2/DLC2/habitatfall/dpHabitatfallMonsters.asset").WaitForCompletion();
				DccsPool pool11 = Addressables.LoadAssetAsync<DccsPool>((object)"RoR2/Base/dampcave/dpDampCaveMonsters.asset").WaitForCompletion();
				DccsPool pool12 = Addressables.LoadAssetAsync<DccsPool>((object)"RoR2/Base/shipgraveyard/dpShipgraveyardMonsters.asset").WaitForCompletion();
				DccsPool pool13 = Addressables.LoadAssetAsync<DccsPool>((object)"RoR2/Base/rootjungle/dpRootJungleMonsters.asset").WaitForCompletion();
				DccsPool pool14 = Addressables.LoadAssetAsync<DccsPool>((object)"RoR2/DLC2/helminthroost/dpHelminthRoostMonsters.asset").WaitForCompletion();
				FamilyDirectorCardCategorySelection val = Addressables.LoadAssetAsync<FamilyDirectorCardCategorySelection>((object)"RoR2/Base/Common/dccsBeetleFamily.asset").WaitForCompletion();
				DirectorCard val2 = new DirectorCard
				{
					spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<CharacterSpawnCard>("SpawnCards/CharacterSpawnCards/cscClayBoss"),
					selectionWeight = 1,
					preventOverhead = false,
					minimumStageCompletions = 0,
					spawnDistance = (MonsterSpawnDistance)0
				};
				DirectorCard val3 = new DirectorCard
				{
					spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<CharacterSpawnCard>("SpawnCards/CharacterSpawnCards/cscClayBruiser"),
					preventOverhead = false,
					selectionWeight = 1,
					minimumStageCompletions = 0,
					spawnDistance = (MonsterSpawnDistance)0
				};
				DirectorCard val4 = new DirectorCard
				{
					spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<CharacterSpawnCard>("SpawnCards/CharacterSpawnCards/cscClayGrenadier"),
					preventOverhead = false,
					selectionWeight = 1,
					minimumStageCompletions = 0,
					spawnDistance = (MonsterSpawnDistance)0
				};
				DirectorCard val5 = new DirectorCard
				{
					spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<CharacterSpawnCard>("SpawnCards/CharacterSpawnCards/cscRoboBallBoss"),
					preventOverhead = false,
					selectionWeight = 1,
					minimumStageCompletions = 0,
					spawnDistance = (MonsterSpawnDistance)0
				};
				DirectorCard val6 = new DirectorCard
				{
					spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<CharacterSpawnCard>("SpawnCards/CharacterSpawnCards/cscRoboBallMini"),
					preventOverhead = true,
					selectionWeight = 1,
					minimumStageCompletions = 0,
					spawnDistance = (MonsterSpawnDistance)0
				};
				CharacterSpawnCard val7 = Object.Instantiate<CharacterSpawnCard>(Addressables.LoadAssetAsync<CharacterSpawnCard>((object)"RoR2/Base/Vulture/cscVulture.asset").WaitForCompletion());
				((Object)val7).name = "cscVultureNoCeiling";
				((SpawnCard)val7).requiredFlags = (NodeFlags)0;
				DirectorCard val8 = new DirectorCard
				{
					spawnCard = (SpawnCard)(object)val7,
					preventOverhead = false,
					selectionWeight = 1,
					minimumStageCompletions = 0,
					spawnDistance = (MonsterSpawnDistance)0
				};
				val8.spawnCard = (SpawnCard)(object)val7;
				DirectorCard val9 = new DirectorCard
				{
					spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<CharacterSpawnCard>("SpawnCards/CharacterSpawnCards/cscFlyingVermin"),
					preventOverhead = true,
					selectionWeight = 10,
					minimumStageCompletions = 0,
					spawnDistance = (MonsterSpawnDistance)0
				};
				DirectorCard val10 = new DirectorCard
				{
					spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<CharacterSpawnCard>("SpawnCards/CharacterSpawnCards/cscVermin"),
					preventOverhead = false,
					selectionWeight = 10,
					minimumStageCompletions = 0,
					spawnDistance = (MonsterSpawnDistance)0
				};
				DirectorCard val11 = new DirectorCard
				{
					spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<CharacterSpawnCard>("SpawnCards/CharacterSpawnCards/cscFlyingVerminSnowy"),
					preventOverhead = true,
					selectionWeight = 10,
					minimumStageCompletions = 0,
					spawnDistance = (MonsterSpawnDistance)0
				};
				DirectorCard val12 = new DirectorCard
				{
					spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<CharacterSpawnCard>("SpawnCards/CharacterSpawnCards/cscVerminSnowy"),
					preventOverhead = false,
					selectionWeight = 10,
					minimumStageCompletions = 0,
					spawnDistance = (MonsterSpawnDistance)0
				};
				DirectorCard val13 = new DirectorCard
				{
					spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<CharacterSpawnCard>("SpawnCards/CharacterSpawnCards/cscMagmaWorm"),
					preventOverhead = false,
					selectionWeight = 1,
					minimumStageCompletions = 0,
					spawnDistance = (MonsterSpawnDistance)2
				};
				DirectorCard val14 = new DirectorCard
				{
					spawnCard = (SpawnCard)(object)LegacyResourcesAPI.Load<CharacterSpawnCard>("SpawnCards/CharacterSpawnCards/cscElectricWorm"),
					preventOverhead = false,
					selectionWeight = 1,
					minimumStageCompletions = 0,
					spawnDistance = (MonsterSpawnDistance)2
				};
				DirectorCard val15 = new DirectorCard
				{
					spawnCard = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/DLC2/Scorchling/cscScorchling.asset").WaitForCompletion(),
					preventOverhead = false,
					selectionWeight = 1,
					minimumStageCompletions = 0,
					spawnDistance = (MonsterSpawnDistance)0
				};
				DirectorCard val16 = new DirectorCard
				{
					spawnCard = Addressables.LoadAssetAsync<SpawnCard>((object)"RoR2/DLC2/Child/cscChild.asset").WaitForCompletion(),
					preventOverhead = false,
					selectionWeight = 1,
					minimumStageCompletions = 0,
					spawnDistance = (MonsterSpawnDistance)0
				};
				((DirectorCardCategorySelection)dccsClayFamily).AddCategory("Champions", 3f);
				((DirectorCardCategorySelection)dccsClayFamily).AddCategory("Minibosses", 6f);
				((DirectorCardCategorySelection)dccsClayFamily).AddCard(0, val2);
				((DirectorCardCategorySelection)dccsClayFamily).AddCard(1, val3);
				((DirectorCardCategorySelection)dccsClayFamily).AddCard(1, val4);
				((Object)dccsClayFamily).name = "dccsClayFamily";
				dccsClayFamily.minimumStageCompletion = val.minimumStageCompletion;
				dccsClayFamily.maximumStageCompletion = 1000000;
				dccsClayFamily.selectionChatString = "FAMILY_CLAY";
				((DirectorCardCategorySelection)dccsRoboBallFamily).AddCategory("Champions", 4f);
				((DirectorCardCategorySelection)dccsRoboBallFamily).AddCategory("Minibosses", 4f);
				((DirectorCardCategorySelection)dccsRoboBallFamily).AddCategory("Basic Monsters", 4f);
				((DirectorCardCategorySelection)dccsRoboBallFamily).AddCard(0, val5);
				((DirectorCardCategorySelection)dccsRoboBallFamily).AddCard(1, val6);
				((DirectorCardCategorySelection)dccsRoboBallFamily).AddCard(2, val8);
				((Object)dccsRoboBallFamily).name = "dccsRoboBallFamily";
				dccsRoboBallFamily.minimumStageCompletion = val.minimumStageCompletion;
				dccsRoboBallFamily.maximumStageCompletion = 1000000;
				dccsRoboBallFamily.selectionChatString = "FAMILY_ROBOBALL";
				((DirectorCardCategorySelection)dccsVerminFamily).AddCategory("Basic Monsters", 6f);
				((DirectorCardCategorySelection)dccsVerminFamily).AddCard(0, val9);
				((DirectorCardCategorySelection)dccsVerminFamily).AddCard(0, val10);
				((Object)dccsVerminFamily).name = "dccsVerminFamily";
				dccsVerminFamily.minimumStageCompletion = val.minimumStageCompletion;
				dccsVerminFamily.maximumStageCompletion = 11;
				dccsVerminFamily.selectionChatString = "FAMILY_PESTS";
				((DirectorCardCategorySelection)dccsVerminFamilySnowy).AddCategory("Basic Monsters", 6f);
				((DirectorCardCategorySelection)dccsVerminFamilySnowy).AddCard(0, val11);
				((DirectorCardCategorySelection)dccsVerminFamilySnowy).AddCard(0, val12);
				((Object)dccsVerminFamilySnowy).name = "dccsVerminSnowyFamily";
				dccsVerminFamilySnowy.minimumStageCompletion = val.minimumStageCompletion;
				dccsVerminFamilySnowy.maximumStageCompletion = 11;
				dccsVerminFamilySnowy.selectionChatString = "FAMILY_PESTS";
				((DirectorCardCategorySelection)dccsWormsFamily).AddCategory("Champions", 5f);
				((DirectorCardCategorySelection)dccsWormsFamily).AddCard(0, val13);
				((DirectorCardCategorySelection)dccsWormsFamily).AddCard(0, val14);
				((DirectorCardCategorySelection)dccsWormsFamily).AddCategory("Miniboss", 5f);
				((DirectorCardCategorySelection)dccsWormsFamily).AddCard(1, val15);
				dccsWormsFamily.minimumStageCompletion = 2;
				dccsWormsFamily.maximumStageCompletion = 1000000;
				((Object)dccsWormsFamily).name = "dccsWormsFamily";
				dccsWormsFamily.selectionChatString = "FAMILY_WORMS";
				ExpansionDef val17 = Addressables.LoadAssetAsync<ExpansionDef>((object)"RoR2/DLC1/Common/DLC1.asset").WaitForCompletion();
				ExpansionDef val18 = Addressables.LoadAssetAsync<ExpansionDef>((object)"RoR2/DLC2/Common/DLC2.asset").WaitForCompletion();
				ExpansionDef[] requiredExpansions = (ExpansionDef[])(object)new ExpansionDef[0];
				ExpansionDef[] requiredExpansions2 = (ExpansionDef[])(object)new ExpansionDef[1] { val17 };
				ExpansionDef[] requiredExpansions3 = (ExpansionDef[])(object)new ExpansionDef[1] { val18 };
				ConditionalPoolEntry family = new ConditionalPoolEntry
				{
					weight = 1f,
					dccs = (DirectorCardCategorySelection)(object)dccsVerminFamily,
					requiredExpansions = requiredExpansions2
				};
				ConditionalPoolEntry family2 = new ConditionalPoolEntry
				{
					weight = 1f,
					dccs = (DirectorCardCategorySelection)(object)dccsVerminFamilySnowy,
					requiredExpansions = requiredExpansions2
				};
				ConditionalPoolEntry family3 = new ConditionalPoolEntry
				{
					weight = 1f,
					dccs = (DirectorCardCategorySelection)(object)dccsClayFamily,
					requiredExpansions = requiredExpansions
				};
				ConditionalPoolEntry family4 = new ConditionalPoolEntry
				{
					weight = 1f,
					dccs = (DirectorCardCategorySelection)(object)dccsRoboBallFamily,
					requiredExpansions = requiredExpansions
				};
				ConditionalPoolEntry family5 = new ConditionalPoolEntry
				{
					weight = 1f,
					dccs = (DirectorCardCategorySelection)(object)dccsWormsFamily,
					requiredExpansions = requiredExpansions3
				};
				AddFamily(pool, family2);
				AddFamily(pool2, family4);
				AddFamily(pool3, family3);
				AddFamily(pool4, family3);
				AddFamily(pool4, family);
				AddFamily(pool4, family5);
				AddFamily(pool5, family3);
				AddFamily(pool6, family4);
				AddFamily(pool7, family3);
				AddFamily(pool7, family5);
				AddFamily(pool8, family5);
				AddFamily(pool9, family4);
				AddFamily(pool10, family4);
				AddFamily(pool11, family5);
				AddFamily(pool12, family4);
				AddFamily(pool13, family);
				AddFamily(pool13, family3);
				AddFamily(pool14, family5);
			}
		}

		public static void AddFamily(DccsPool pool, ConditionalPoolEntry family)
		{
			ArrayUtils.ArrayAppend<ConditionalPoolEntry>(ref pool.poolCategories[1].includedIfConditionsMet, ref family);
		}

		public static void ModSupport()
		{
			//IL_0037: Unknown result type (might be due to invalid IL or missing references)
			//IL_003c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0045: Unknown result type (might be due to invalid IL or missing references)
			//IL_004c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0053: Unknown result type (might be due to invalid IL or missing references)
			//IL_005a: Unknown result type (might be due to invalid IL or missing references)
			//IL_005c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0062: Expected O, but got Unknown
			CharacterSpawnCard[] array = Object.FindObjectsOfType(typeof(CharacterSpawnCard)) as CharacterSpawnCard[];
			for (int i = 0; i < array.Length; i++)
			{
				string name = ((Object)array[i]).name;
				string text = name;
				if (text == "cscClayMan")
				{
					DirectorCard val = new DirectorCard
					{
						spawnCard = (SpawnCard)(object)array[i],
						selectionWeight = 1,
						preventOverhead = false,
						minimumStageCompletions = 0,
						spawnDistance = (MonsterSpawnDistance)0
					};
					((DirectorCardCategorySelection)dccsClayFamily).AddCategory("Basic Monsters", 1f);
					((DirectorCardCategorySelection)dccsClayFamily).AddCard(2, val);
				}
			}
		}
	}
	public class PrismaticRunMaker
	{
		private class PrismDestroyCrystals : ObjectiveTracker
		{
			private PrismRun run;

			public PrismDestroyCrystals()
			{
				base.baseToken = "OBJECTIVE_WEEKLYRUN_DESTROY_CRYSTALS";
			}

			public override string GenerateString()
			{
				PrismRun prismRun = Run.instance as PrismRun;
				return string.Format(Language.GetString(base.baseToken), prismRun.crystalsKilled_, prismRun.crystalsToKill);
			}

			public override bool IsDirty()
			{
				return true;
			}
		}

		public static GameObject runObject;

		public static void Start()
		{
			//IL_0018: Unknown result type (might be due to invalid IL or missing references)
			//IL_001e: Expected O, but got Unknown
			//IL_0106: Unknown result type (might be due to invalid IL or missing references)
			//IL_0110: Expected O, but got Unknown
			//IL_0118: Unknown result type (might be due to invalid IL or missing references)
			//IL_0122: Expected O, but got Unknown
			//IL_012a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0134: Expected O, but got Unknown
			GameObject val = LegacyResourcesAPI.Load<GameObject>("Prefabs/gamemodes/WeeklyRun");
			WeeklyRun component = val.GetComponent<WeeklyRun>();
			GameObject val2 = new GameObject("xPrismRun");
			val2.SetActive(false);
			val2.AddComponent<NetworkIdentity>();
			val2.AddComponent<NetworkRuleBook>();
			val2.AddComponent<PrismRun>();
			val2.AddComponent<TeamManager>();
			val2.AddComponent<RunCameraManager>();
			runObject = PrefabAPI.InstantiateClone(val2, "xPrismRun", true);
			runObject.SetActive(true);
			runObject.AddComponent<GameModeInfo>().buttonHoverDescription = "GAMEMODE_PRISM_RUN_DESC";
			PrismRun component2 = runObject.GetComponent<PrismRun>();
			((Run)component2).nameToken = "GAMEMODE_PRISM_RUN_NAME";
			((Run)component2).userPickable = WConfig.cfgPrismRun.Value;
			component2.crystalSpawnCard = component.crystalSpawnCard;
			component2.equipmentBarrelSpawnCard = component.equipmentBarrelSpawnCard;
			((Run)component2).gameOverPrefab = ((Run)component).gameOverPrefab;
			((Run)component2).lobbyBackgroundPrefab = ((Run)component).lobbyBackgroundPrefab;
			((Run)component2).rebirthDropTable = ((Run)component).rebirthDropTable;
			((Run)component2).startingSceneGroup = ((Run)component).startingSceneGroup;
			((Run)component2).uiPrefab = ((Run)component).uiPrefab;
			ContentAddition.AddGameMode(runObject);
			PlayerInfo.Generate += new hook_Generate(PrismMentionOnDeathScreen);
			Stage.Start += new hook_Start(PrismRun_AddTeleporterLock);
			ObjectivePanelController.GetObjectiveSources += new hook_GetObjectiveSources(ObjectivePanelController_GetObjectiveSources);
		}

		private static void ObjectivePanelController_GetObjectiveSources(orig_GetObjectiveSources orig, ObjectivePanelController self, CharacterMaster master, List<ObjectiveSourceDescriptor> output)
		{
			//IL_0037: Unknown result type (might be due to invalid IL or missing references)
			//IL_0062: Unknown result type (might be due to invalid IL or missing references)
			orig.Invoke(self, master, output);
			PrismRun prismRun = Run.instance as PrismRun;
			if (Object.op_Implicit((Object)(object)prismRun) && prismRun.crystalsToKill > prismRun.crystalsKilled_)
			{
				output.Add(new ObjectiveSourceDescriptor
				{
					source = (Object)(object)Run.instance,
					master = master,
					objectiveType = typeof(PrismDestroyCrystals)
				});
			}
		}

		public static IEnumerator PrismRun_AddTeleporterLock(orig_Start orig, Stage self)
		{
			if (Object.op_Implicit((Object)(object)Run.instance) && Run.instance is PrismRun && Object.op_Implicit((Object)(object)TeleporterInteraction.instance))
			{
				if (Object.op_Implicit((Object)(object)TeleporterInteraction.instance))
				{
					ChildLocator component = ((Component)((Component)TeleporterInteraction.instance).GetComponent<ModelLocator>().modelTransform).GetComponent<ChildLocator>();
					if (Object.op_Implicit((Object)(object)component))
					{
						((Component)component.FindChild("TimeCrystalProps")).gameObject.SetActive(true);
						((Component)component.FindChild("TimeCrystalBeaconBlocker")).gameObject.SetActive(true);
					}
				}
				((Component)TeleporterInteraction.instance).GetComponent<HoldoutZoneController>().baseRadius = 500f;
			}
			return orig.Invoke(self);
		}

		public static PlayerInfo PrismMentionOnDeathScreen(orig_Generate orig, PlayerCharacterMasterController playerCharacterMasterController, GameEndingDef gameEnding)
		{
			if (Object.op_Implicit((Object)(object)Run.instance) && Run.instance is PrismRun)
			{
				string text = "GAMEMODE_PRISM_RUN_NAME";
				string text2 = "PRISM_DEATH";
				if (gameEnding.isWin)
				{
					text2 = "PRISM_WIN";
				}
				PlayerInfo val = orig.Invoke(playerCharacterMasterController, gameEnding);
				val.finalMessageToken = Language.GetStringFormatted(text2, new object[1] { Language.GetString(text) });
				return val;
			}
			return orig.Invoke(playerCharacterMasterController, gameEnding);
		}

		public static void LateRunningMethod()
		{
			//IL_000e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0014: Expected O, but got Unknown
			//IL_003e: Unknown result type (might be due to invalid IL or missing references)
			//IL_004d: Unknown result type (might be due to invalid IL or missing references)
			//IL_00df: 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_0126: Unknown result type (might be due to invalid IL or missing references)
			//IL_012c: Expected I4, but got Unknown
			//IL_0133: Unknown result type (might be due to invalid IL or missing references)
			//IL_0139: Expected I4, but got Unknown
			//IL_0140: Unknown result type (might be due to invalid IL or missing references)
			//IL_0146: Expected I4, but got Unknown
			//IL_014d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0153: Expected I4, but got Unknown
			//IL_015f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0165: Expected I4, but got Unknown
			//IL_016c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0172: Expected I4, but got Unknown
			//IL_00b5: Unknown result type (might be due to invalid IL or missing references)
			Texture2D val = new Texture2D(256, 256, (TextureFormat)12, false);
			ImageConversion.LoadImage(val, Resources.texRuleMapIsNormal, true);
			((Texture)val).wrapMode = (TextureWrapMode)1;
			Sprite sprite = Sprite.Create(val, new Rect(0f, 0f, 256f, 256f), new Vector2(0.5f, 0.5f));
			RuleChoiceDef val2 = RuleCatalog.FindChoiceDef("Misc.StageOrder.Normal");
			if (val2 != null)
			{
				val2.sprite = sprite;
			}
			List<EquipmentIndex> list = new List<EquipmentIndex>();
			for (int i = 0; i < EliteCatalog.eliteDefs.Length; i++)
			{
				EquipmentDef eliteEquipmentDef = EliteCatalog.eliteDefs[i].eliteEquipmentDef;
				if (Object.op_Implicit((Object)(object)eliteEquipmentDef) && eliteEquipmentDef.dropOnDeathChance > 0f)
				{
					list.Add(eliteEquipmentDef.equipmentIndex);
				}
			}
			list.Remove(Equipment.EliteGoldEquipment.equipmentIndex);
			list.Add(Equipment.EliteVoidEquipment.equipmentIndex);
			PrismRun component = runObject.GetComponent<PrismRun>();
			if (list.Count == 0)
			{
				component.bossAffixes = (EquipmentIndex[])(object)new EquipmentIndex[6]
				{
					(EquipmentIndex)(int)Equipment.AffixRed.equipmentIndex,
					(EquipmentIndex)(int)Equipment.AffixBlue.equipmentIndex,
					(EquipmentIndex)(int)Equipment.AffixWhite.equipmentIndex,
					(EquipmentIndex)(int)Equipment.AffixLunar.equipmentIndex,
					(EquipmentIndex)(int)Elites.Earth.eliteEquipmentDef.equipmentIndex,
					(EquipmentIndex)(int)Equipment.EliteAurelioniteEquipment.equipmentIndex
				};
			}
			else
			{
				component.bossAffixes = list.ToArray();
			}
		}
	}
	public class PrismRun : Run
	{
		public EquipmentIndex[] bossAffixes = Array.Empty<EquipmentIndex>();

		public EquipmentIndex bossAffix = (EquipmentIndex)(-1);

		public SpawnCard crystalSpawnCard;

		public int baseCrystalToSpawn = 5;

		public int baseCrystalsToKill = 3;

		public int crystalToSpawn = 5;

		public int crystalsToKill = 3;

		public int baseCrystalRewardValue = 30;

		public uint crystalRewardValue = 30u;

		[SyncVar]
		public int crystalsKilled_;

		private List<OnDestroyCallback> crystalActiveList = new List<OnDestroyCallback>();

		public int equipmentBarrelCount = 1;

		public float equipmentBarrelRadius = 20f;

		public SpawnCard equipmentBarrelSpawnCard;

		public int CrystalsKilled
		{
			get
			{
				return crystalsKilled_;
			}
			[param: In]
			set
			{
				((NetworkBehaviour)this).SetSyncVar<int>(value, ref crystalsKilled_, 128u);
			}
		}

		public EquipmentIndex AffixToUse()
		{
			//IL_003e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0043: Unknown result type (might be due to invalid IL or missing references)
			//IL_0046: Unknown result type (might be due to invalid IL or missing references)
			//IL_0039: Unknown result type (might be due to invalid IL or missing references)
			if (Object.op_Implicit((Object)(object)SceneInfo.instance) && SceneInfo.instance.sceneDef.stageOrder > 5)
			{
				return base.bossRewardRng.NextElementUniform<EquipmentIndex>(bossAffixes);
			}
			return bossAffix;
		}

		public override void AdvanceStage(SceneDef nextScene)
		{
			//IL_0032: Unknown result type (might be due to invalid IL or missing references)
			Debug.Log((object)"Prism Run | Advance Stage");
			((Run)this).AdvanceStage(nextScene);
			if (NetworkServer.active)
			{
			}
			bossAffix = base.bossRewardRng.NextElementUniform<EquipmentIndex>(bossAffixes);
			crystalActiveList.Clear();
			crystalsKilled_ = 0;
			CrystalsKilled = 0;
			crystalRewardValue = (uint)((Run)this).GetDifficultyScaledCost(baseCrystalRewardValue);
			int num = baseCrystalsToKill;
			int num2 = baseCrystalToSpawn;
			if (nextScene.stageOrder == 4)
			{
				num++;
				num2++;
			}
			else if (nextScene.stageOrder == 5)
			{
				num += 2;
				num2 += 3;
			}
			if (((Run)this).participatingPlayerCount > 2)
			{
				num++;
				num2++;
			}
			crystalToSpawn = num2;
			crystalsToKill = num;
		}

		public override void OnFixedUpdate()
		{
			//IL_009d: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a2: Unknown result type (might be due to invalid IL or missing references)
			//IL_00aa: Unknown result type (might be due to invalid IL or missing references)
			//IL_00bb: Expected O, but got Unknown
			((Run)this).OnFixedUpdate();
			if (!Object.op_Implicit((Object)(object)TeleporterInteraction.instance))
			{
				return;
			}
			bool flag = crystalsToKill > crystalsKilled_;
			if (flag == TeleporterInteraction.instance._locked)
			{
				return;
			}
			if (flag)
			{
				TeleporterInteraction.instance._locked = true;
				return;
			}
			TeleporterInteraction.instance.locked = false;
			ChildLocator component = ((Component)((Component)TeleporterInteraction.instance).GetComponent<ModelLocator>().modelTransform).GetComponent<ChildLocator>();
			if (Object.op_Implicit((Object)(object)component))
			{
				Transform val = component.FindChild("TimeCrystalBeaconBlocker");
				EffectManager.SpawnEffect(LegacyResourcesAPI.Load<GameObject>("Prefabs/Effects/TimeCrystalDeath"), new EffectData
				{
					origin = ((Component)val).transform.position
				}, false);
				((Component)val).gameObject.SetActive(false);
			}
		}

		public override void OnServerTeleporterPlaced(SceneDirector sceneDirector, GameObject teleporter)
		{
			//IL_000a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0010: Expected O, but got Unknown
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_002e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0038: Expected O, but got Unknown
			((Run)this).OnServerTeleporterPlaced(sceneDirector, teleporter);
			DirectorPlacementRule val = new DirectorPlacementRule();
			val.placementMode = (PlacementMode)4;
			for (int i = 0; i < crystalToSpawn; i++)
			{
				GameObject val2 = DirectorCore.instance.TrySpawnObject(new DirectorSpawnRequest(crystalSpawnCard, val, base.stageRng));
				if (Object.op_Implicit((Object)(object)val2))
				{
					DeathRewards component2 = val2.GetComponent<DeathRewards>();
					if (Object.op_Implicit((Object)(object)component2))
					{
						component2.goldReward = crystalRewardValue;
					}
				}
				crystalActiveList.Add(OnDestroyCallback.AddCallback(val2, (Action<OnDestroyCallback>)delegate(OnDestroyCallback component)
				{
					if (crystalActiveList.Contains(component))
					{
						CrystalsKilled++;
						crystalActiveList.Remove(component);
					}
				}));
			}
			if (Object.op_Implicit((Object)(object)TeleporterInteraction.instance))
			{
				ChildLocator component3 = ((Component)((Component)TeleporterInteraction.instance).GetComponent<ModelLocator>().modelTransform).GetComponent<ChildLocator>();
				if (Object.op_Implicit((Object)(object)component3))
				{
					((Component)component3.FindChild("TimeCrystalProps")).gameObject.SetActive(true);
					((Component)component3.FindChild("TimeCrystalBeaconBlocker")).gameObject.SetActive(true);
				}
			}
		}

		public override void OnServerBossAdded(BossGroup bossGroup, CharacterMaster characterMaster)
		{
			//IL_0059: Unknown result type (might be due to invalid IL or missing references)
			//IL_005f: Invalid comparison between Unknown and I4
			//IL_006d: Unknown result type (might be due to invalid IL or missing references)
			//IL_009c: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a3: Unknown result type (might be due to invalid IL or missing references)
			//IL_00aa: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b8: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fc: Unknown result type (might be due to invalid IL or missing references)
			((Run)this).OnServerBossAdded(bossGroup, characterMaster);
			string baseSceneName = SceneInfo.instance.sceneDef.baseSceneName;
			if (baseSceneName == "limbo" || baseSceneName.StartsWith("artifact") || base.stageClearCount < 3)
			{
				return;
			}
			if ((int)characterMaster.inventory.GetEquipmentIndex() == -1)
			{
				characterMaster.inventory.SetEquipmentIndex(AffixToUse());
			}
			if (characterMaster.inventory.GetItemCount(Items.AdaptiveArmor) > 0)
			{
				EquipmentIndex currentEquipmentIndex = characterMaster.inventory.currentEquipmentIndex;
				if (currentEquipmentIndex == Equipment.AffixBlue.equipmentIndex || currentEquipmentIndex == Equipment.AffixRed.equipmentIndex)
				{
					characterMaster.inventory.RemoveItem(Items.BoostDamage, (int)((float)characterMaster.inventory.GetItemCount(Items.BoostDamage) * 0.35f));
				}
				else if (currentEquipmentIndex == Equipment.EliteVoidEquipment.equipmentIndex)
				{
					characterMaster.inventory.RemoveItem(Items.BoostHp, 5);
					characterMaster.inventory.RemoveItem(Items.BoostDamage, (int)((float)characterMaster.inventory.GetItemCount(Items.BoostDamage) * 0.6f));
				}
			}
			else
			{
				characterMaster.inventory.GiveItem(Items.BoostHp, 5);
				characterMaster.inventory.GiveItem(Items.BoostDamage, 1);
			}
		}

		public override void OnServerBossDefeated(BossGroup bossGroup)
		{
			((Run)this).OnServerBossDefeated(bossGroup);
			if ((Object)(object)((Component)bossGroup).GetComponent<TeleporterInteraction>() != (Object)null)
			{
				TeleporterInteraction.instance.holdoutZoneController.FullyChargeHoldoutZone();
			}
		}

		public override GameObject GetTeleportEffectPrefab(GameObject objectToTeleport)
		{
			return LegacyResourcesAPI.Load<GameObject>("Prefabs/Effects/TeleportOutCrystalBoom");
		}

		public override void OverrideRuleChoices(RuleChoiceMask mustInclude, RuleChoiceMask mustExclude, ulong runSeed)
		{
			((Run)this).OverrideRuleChoices(mustInclude, mustExclude, ((Run)this).seed);
			((Run)this).ForceChoice(mustInclude, mustExclude, "Misc.StartingMoney.50");
		}

		public override bool OnSerialize(NetworkWriter writer, bool forceAll)
		{
			bool flag = ((Run)this).OnSerialize(writer, forceAll);
			if (forceAll)
			{
				NetworkExtensions.WritePackedIndex32(writer, crystalsKilled_);
				return true;
			}
			bool flag2 = false;
			if ((((NetworkBehaviour)this).syncVarDirtyBits & 0x80u) != 0)
			{
				if (!flag2)
				{
					writer.WritePackedUInt32(((NetworkBehaviour)this).syncVarDirtyBits);
					flag2 = true;
				}
				NetworkExtensions.WritePackedIndex32(writer, crystalsKilled_);
			}
			if (!flag2)
			{
				writer.WritePackedUInt32(((NetworkBehaviour)this).syncVarDirtyBits);
			}
			return flag2 || flag;
		}

		public override void OnDeserialize(NetworkReader reader, bool initialState)
		{
			((Run)this).OnDeserialize(reader, initialState);
			if (initialState)
			{
				crystalsKilled_ = NetworkExtensions.ReadPackedIndex32(reader);
				return;
			}
			int num = (int)reader.ReadPackedUInt32();
			if (((uint)num & 0x80u) != 0)
			{
				crystalsKilled_ = NetworkExtensions.ReadPackedIndex32(reader);
			}
		}

		public override bool ShouldUpdateRunStopwatch()
		{
			if (WConfig.cfgPrismTimerAlwaysRun.Value)
			{
				return ((Run)this).livingPlayerCount > 0;
			}
			return ((Run)this).ShouldUpdateRunStopwatch();
		}

		public override bool ShouldAllowNonChampionBossSpawn()
		{
			return true;
		}

		public override void OnPlayerSpawnPointsPlaced(SceneDirector sceneDirector)
		{
			//IL_0048: Unknown result type (might be due to invalid IL or missing references)
			//IL_004d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Unknown result type (might be due to invalid IL or missing references)
			//IL_005d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0062: Unknown result type (might be due to invalid IL or missing references)
			//IL_0067: Unknown result type (might be due to invalid IL or missing references)
			//IL_0069: Unknown result type (might be due to invalid IL or missing references)
			//IL_0070: Expected O, but got Unknown
			//IL_008b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0098: Unknown result type (might be due to invalid IL or missing references)
			//IL_009d: 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_00a4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00bc: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c6: Expected O, but got Unknown
			if (base.stageClearCount != 0)
			{
				return;
			}
			SpawnPoint val = SpawnPoint.readOnlyInstancesList[0];
			if (Object.op_Implicit((Object)(object)val))
			{
				float num = 360f / (float)equipmentBarrelCount;
				for (int i = 0; (long)i < (long)equipmentBarrelCount; i++)
				{
					Vector3 val2 = Quaternion.AngleAxis(num * (float)i, Vector3.up) * (Vector3.forward * equipmentBarrelRadius);
					DirectorPlacementRule val3 = new DirectorPlacementRule();
					val3.minDistance = 0f;
					val3.maxDistance = 3f;
					val3.placementMode = (PlacementMode)3;
					val3.position = ((Component)val).transform.position + val2;
					DirectorCore.instance.TrySpawnObject(new DirectorSpawnRequest(equipmentBarrelSpawnCard, val3, base.stageRng));
				}
			}
		}
	}
	public class TripleShopLegendary
	{
		public static InteractableSpawnCard RedMultiShopISC = ScriptableObject.CreateInstance<InteractableSpawnCard>();

		public static GameObject MiliMutliShopTerminal;

		public static void Start()
		{
			RedMultiShopMaker();
			if (WConfig.cfgRedMultiShop.Value)
			{
				SceneDirector.onGenerateInteractableCardSelection += SceneDirector_onGenerateInteractableCardSelection;
			}
		}

		private static void SceneDirector_onGenerateInteractableCardSelection(SceneDirector arg1, DirectorCardCategorySelection dccs)
		{
			//IL_0036: Unknown result type (might be due to invalid IL or missing references)
			//IL_003d: Expected O, but got Unknown
			int num = dccs.FindCategoryIndexByName("Rare");
			if (num != -1 && dccs.categories[num].cards.Length != 1)
			{
				DirectorCard val = new DirectorCard();
				val.spawnCard = (SpawnCard)(object)RedMultiShopISC;
				val.selectionWeight = 2;
				val.minimumStageCompletions = ((Run.instance is InfiniteTowerRun) ? 2 : 4);
				DirectorCard val2 = val;
				dccs.AddCard(num, val2);
			}
		}

		internal static void RedMultiShopMaker()
		{
			//IL_0038: Unknown result type (might be due to invalid IL or missing references)
			//IL_003d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0046: Expected O, but got Unknown
			//IL_0147: Unknown result type (might be due to invalid IL or missing references)
			//IL_0163: Unknown result type (might be due to invalid IL or missing references)
			//IL_017f: Unknown result type (might be due to invalid IL or missing references)
			//IL_019b: Unknown result type (might be due to invalid IL or missing references)
			//IL_01bc: 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_022e: Unknown result type (might be due to invalid IL or missing references)
			//IL_029a: Unknown result type (might be due to invalid IL or missing references)
			//IL_02de: Unknown result type (might be due to invalid IL or missing references)
			//IL_02ea: Unknown result type (might be due to invalid IL or missing references)
			//IL_02ef: Unknown result type (might be due to invalid IL or missing references)
			//IL_0325: Unknown result type (might be due to invalid IL or missing references)
			//IL_034b: Un