Decompiled source of RtDHorrors v0.1.9

RtDHorrors.dll

Decompiled 6 days ago
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using BepInEx;
using BepInEx.Configuration;
using BepInEx.Logging;
using Jotunn;
using Jotunn.Configs;
using Jotunn.Entities;
using Jotunn.Managers;
using Jotunn.Utils;
using Microsoft.CodeAnalysis;
using UnityEngine;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: AssemblyTitle("RtDHorrors")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("RtDHorrors")]
[assembly: AssemblyCopyright("Copyright ©  2024")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("5270abaf-e8d3-4e51-a490-61d602eafd24")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
[assembly: AssemblyVersion("1.0.0.0")]
[module: RefSafetyRules(11)]
namespace Microsoft.CodeAnalysis
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	internal sealed class EmbeddedAttribute : Attribute
	{
	}
}
namespace System.Runtime.CompilerServices
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	[AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)]
	internal sealed class RefSafetyRulesAttribute : Attribute
	{
		public readonly int Version;

		public RefSafetyRulesAttribute(int P_0)
		{
			Version = P_0;
		}
	}
}
namespace rtDHorrors
{
	[BepInPlugin("Soloredis.RtDHorrors", "RtDHorrors", "0.1.9")]
	[NetworkCompatibility(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	public class RtDHorrors : BaseUnityPlugin
	{
		public const string PluginGUID = "Soloredis.RtDHorrors";

		public const string PluginName = "RtDHorrors";

		public const string PluginVersion = "0.1.9";

		public static bool isModded = true;

		public AssetBundle MyAssets;

		public ConfigEntry<bool> LoggingEnable;

		internal static ManualLogSource Log;

		public string[] PrefabList = new string[193]
		{
			"webeggprojectile_RtD1", "blackforestmutantprojectile_RtD1", "deepnorthmutantprojectile_RtD1", "meadowsmutantprojectile_RtD1", "mistlandsmutantprojectile_RtD1", "mountainmutantprojectile2_RtD1", "mountainmutantprojectile3_RtD1", "mountainmutantprojectile_RtD1", "plainsmutantprojectile_RtD1", "sizzleprojectile_RtD1",
			"spawn_earthstorm_RtD1", "spawn_firestorm_RtD1", "spawn_icestorm2_RtD1", "spawn_icestorm_RtD1", "spawn_meteorstorm_RtD1", "spawn_sizzlerstorm_RtD1", "spawn_spikeballstorm_RtD1", "spawn_voidstorm_RtD1", "swampmutantprojectile2_RtD1", "swampmutantprojectile_RtD1",
			"mountainmutantprojectile_RtD2", "ashlandsmutantprojectile_RtD1", "AirBlast_RtD1", "ArcaneBlast_RtD1", "EarthBlast_RtD1", "EarthCurse_RtD1", "ElectricBlast_RtD1", "FireBlast_RtD1", "FrostBlast_RtD1", "HealingBlast_RtD1",
			"HolyBlast_RtD1", "LighteningCurse_RtD1", "StormCurse_RtD1", "VoidCurse_RtD1", "WaterBlast_RtD1", "AirSpray_RtD1", "ArcaneSpray_RtD1", "EarthSpray_Rtd1", "ElectricSpray_RtD1", "FireSpray_RtD1",
			"FireSprayAOE_RtD1", "FrostSpray_RtD1", "HealingSpray_RtD1", "HolySpray_RtD1", "VoidSpray_RtD1", "WaterSpray_RtD1", "AirRainAOE1_RtD1", "ArcaneRain1_RtD1", "EarthPillarM_RtD1", "EarthRainAOE2_RtD1",
			"EarthRainAOE1_RtD1", "ElectricRainAOE1_RtD1", "FirePillarMAOE1_RtD1", "FireRainAOE2_RtD1", "FireRainAOE1_RtD1", "FrostRainAOE2_RtD1", "FrostRainAOE3_RtD1", "FrostRainAOE1_RtD1", "HealingRainAOE1_RtD1", "HolyRainAOE1_RtD1",
			"IcePillarM1_RtD1", "LighteningPillarB_RtD1", "VoidRainAOE2_RtD1", "VoidRainAOE1_RtD1", "WaterRainAOE1_RtD1", "FrostBlast01_RtD", "AirBlast01_RtD", "Ragdoll_AshLandsCrawler_RtD", "Ragdoll_AshLandsHorror_RtD", "Ragdoll_AshLandsHorror01_RtD",
			"Ragdoll_BlackForestHorror_RtD", "Ragdoll_BlackForestHorror01_RtD", "Ragdoll_DeepNorthDemon1_RtD", "Ragdoll_DeepNorthDemon2_RtD", "Ragdoll_DeepNorthDemon3_RtD", "Ragdoll_DeepNorthDemon4_RtD", "Ragdoll_DeepNorthHorror_RtD", "Ragdoll_MeadowsHorror_RtD", "Ragdoll_MeadowsHorror01_RtD", "Ragdoll_MistlandsHorror_RtD",
			"Ragdoll_SeekerMutant_RtD", "Ragdoll_MountainHorror_RtD", "Ragdoll_MountainHorror01_RtD", "Ragdoll_PlainsHorror_RtD", "Ragdoll_PlainsHorror01_RtD", "Ragdoll_SwampChaser_RtD", "Ragdoll_SwampHorror01_RtD", "AshLandsMutantMelee1_RtD", "AshLandsMutantMelee2_RtD", "AshLandsMutantSpell_RtD",
			"AshLandsMutantSummon_RtD", "BlackForestMutantMelee1_RtD", "BlackForestMutantMelee2_RtD", "BlackForestMutantMelee3_RtD", "BlackForestMutantSpell_RtD", "DeepNorthMutantMeele1_RtD", "DeepNorthMutantMelee2_RtD", "DeepNorthMutantMelee3_RtD", "DeepNorthMutantSpell_RtD", "MeadowsMutantHeal_RtD",
			"MeadowsMutantMelee1_RtD", "MeadowsMutantMelee2_RtD", "MeadowsMutantSpell_RtD", "MistlandsMutantMelee1_RtD", "MistlandsMutantMelee2_RtD", "MistlandsMutantSpell_RtD", "MistlandsMutantSummon_RtD", "MountainMutantMelee1_RtD", "MountainMutantMelee2_RtD", "MountainMutantMelee3_RtD",
			"MountainMutantSpell_RtD", "PlainsMutantMelee1_RtD", "PlainsMutantMelee2_RtD", "PlainsMutantSpell_RtD", "PlainsMutantSummon_RtD", "SwampMutantMelee1_RtD", "SwampMutantMelee2_RtD", "SwampMutantMelee3_RtD", "SwampMutantSpell_RtD", "AshLandsMeleeC1_RtD",
			"AshLandsMeleeC2_RtD", "AshLandsSpellC1_RtD", "AshLandsSummonC1_RtD", "DeepNorthMeleeC1_RtD", "DeepNorthMeleeC2_RtD", "DeepNorthSpellC1_RtD", "DeepNorthSpellC2_RtD", "DeepNorthSpellC3_RtD", "DeepNorthSpellC4_RtD", "DeepNorthSummonC1_RtD",
			"DeepNorthSummonC2_RtD", "DeepNorthSummonC3_RtD", "DeepNorthSummonC4_RtD", "AshLandsMutantMelee1_RtD1", "BlackForestMutantMelee1_01_RtD", "BlackForestMutantMelee3_01_RtD", "MeadowsMutantSummon01_RtD", "LightningBlast01_RtD4", "MountainMutantSpell01_RtD", "seeker_attack1_RtD",
			"seeker_attack2_RtD", "seeker_attack3_RtD", "seeker_attack4_RtD", "seeker_attack5_RtD", "seeker_land1_RtD", "seeker_takeoff1_RtD", "PlainsMutantMelee01_RtD", "PlainsMutantSpell01_RtD", "ShadowBlast01_RtD", "SwampHorrorMelee1_RtD",
			"SwampHorrorMelee3_RtD", "SwampHorrorSpell_RtD", "SwampHorrorSummon1_RtD", "ArcaneExplosionSmall1_RtD1", "EarthExplosionLarge1_RtD1", "EarthExplosionSmall1_RtD1", "EggExplosion_RtD1", "FireExplosionSmall1_RtD1", "FrostExplosionLarge1_RtD1", "FrostExplosionSmall1_RtD1",
			"LightningExplosionSmall1_RtD1", "SpikyExplosionSmall1_RtD1", "StormExplosionSmall1_RtD1", "vfx_bloodsplat_death_RtD1", "vfx_bloodsplat_hit_RtD1", "VFX_IceSpray_RtD1", "VoidExplosionSmall1_RtD1", "FX_Armor_RtD1", "FX_Frosted_RtD1", "FX_Shocked_RtD1",
			"FX_Weakened_RtD1", "fx_Queen_Run_RtD1", "fx_Queen_Walk_RtD1", "Spawner_AshLandsHorror_RtD", "Spawner_BlackForestHorror_RtD", "Spawner_DeepNorthHorror_RtD", "Spawner_MeadowsHorror_RtD", "Spawner_MistlandsHorror_RtD", "Spawner_MountainHorror_RtD", "Spawner_PlainsHorror_RtD",
			"Spawner_SwampHorror_RtD", "Spawner_AshLandsCrawler_RtD", "Spawner_DeepNorthDemon1_RtD", "Spawner_DeepNorthDemon2_RtD", "Spawner_DeepNorthDemon3_RtD", "Spawner_DeepNorthDemon4_RtD", "Spawner_AshLandsHorror01_RtD", "Spawner_BlackForestHorror01_RtD", "Spawner_MeadowsHorror01_RtD", "Spawner_MountainHorror01_RtD",
			"Spawner_PlainsHorror01_RtD", "Spawner_SeekerMutant_RtD", "Spawner_SwampHorror01_RtD"
		};

		public string[] CustomStatusEffectList = new string[4] { "SE_Shocked_RtD1", "SE_Weakened_RtD1", "SE_Frosted_RtD1", "SE_ArmorWeakness_RtD1" };

		public string[] SFXList = new string[61]
		{
			"DummyPrefab", "sfx_mutant1_death_RtD", "sfx_mutant1_hit_RtD", "sfx_mutant2_attack_RtD", "sfx_mutant2_death_RtD", "sfx_mutant2_hit_RtD", "sfx_mutant3_attack_RtD", "sfx_mutant3_death_RtD", "sfx_mutant3_hit_RtD", "sfx_mutant4_attack_RtD",
			"sfx_mutant4_death_RtD", "sfx_mutant4_hit_RtD", "sfx_mutant5_attack_RtD", "sfx_mutant5_death_RtD", "sfx_mutant5_hit_RtD", "sfx_mutant6_attack_RtD", "sfx_mutant6_death_RtD", "sfx_mutant6_hit_RtD", "sfx_mutant7_attack_RtD", "sfx_mutant7_death_RtD",
			"sfx_mutant7_hit_RtD", "sfx_mutant8_attack_RtD", "sfx_mutant8_death_RtD", "sfx_mutant8_hit_RtD", "sfx_mutantranged1_RtD", "sfx_mutantranged2_RtD", "sfx_mutantranged3_RtD", "sfx_mutantranged4_RtD", "sfx_mutantranged5_RtD", "sfx_mutantranged6_RtD",
			"sfx_mutantranged7_RtD", "sfx_mutantranged8_RtD", "sfx_mutant1_alerted_RtD", "sfx_mutant1_idle_RtD", "sfx_mutant2_alerted_RtD", "sfx_mutant2_idle_RtD", "sfx_mutant3_alerted_RtD", "sfx_mutant3_idle_RtD", "sfx_mutant4_alerted_RtD", "sfx_mutant4_idle_RtD",
			"sfx_mutant5_alerted_RtD", "sfx_mutant5_idle_RtD", "sfx_mutant6_alerted_RtD", "sfx_mutant6_idle_RtD", "sfx_mutant7_alerted_RtD", "sfx_mutant7_idle_RtD", "sfx_mutant8_alerted_RtD", "sfx_mutant8_idle_RtD", "sfx_crawler_alerted_RtD", "sfx_crawler_attack_RtD",
			"sfx_crawler_death", "sfx_crawler_hit_RtD", "sfx_crawler_idle_RtD", "sfx_crawler_ranged_RtD", "sfx_northdemon_alerted_RtD", "sfx_northdemon_attack_RtD", "sfx_northdemon_death_RtD", "sfx_northdemon_hit_RtD", "sfx_northdemon_idle_RtD", "sfx_northdemon_ranged_RtD",
			"sfx_mutant1_attack_RtD"
		};

		public string[] StaticList1 = new string[2] { "MeadowsHorror_RtD", "MeadowsHorror01_RtD" };

		public string[] StaticList2 = new string[2] { "BlackForestHorror_RtD", "BlackForestHorror01_RtD" };

		public string[] StaticList3 = new string[2] { "SwampChaser_RtD", "SwampHorror01_RtD" };

		public string[] StaticList4 = new string[2] { "MountainHorror_RtD", "MountainHorror01_RtD" };

		public string[] StaticList5 = new string[2] { "PlainsHorror_RtD", "PlainsHorror01_RtD" };

		public string[] StaticList6 = new string[2] { "MistlandsHorror_RtD", "SeekerMutant_RtD" };

		public string[] StaticList7 = new string[3] { "AshLandsCrawler_RtD", "AshLandsHorror_RtD", "AshLandsHorror01_RtD" };

		public string[] StaticList8 = new string[5] { "DeepNorthDemon1_RtD", "DeepNorthDemon2_RtD", "DeepNorthDemon3_RtD", "DeepNorthDemon4_RtD", "DeepNorthHorror_RtD" };

		public static SpawnConfig[] MeadowsSpawnConfig = (SpawnConfig[])(object)new SpawnConfig[1]
		{
			new SpawnConfig
			{
				SpawnDistance = 100f,
				SpawnInterval = 240f,
				SpawnChance = 15f,
				SpawnAtNight = true,
				SpawnAtDay = false,
				MaxSpawned = 2,
				MaxLevel = 2,
				MaxAltitude = 250f,
				Biome = (Biome)1
			}
		};

		public static SpawnConfig[] BlackForestSpawnConfig = (SpawnConfig[])(object)new SpawnConfig[1]
		{
			new SpawnConfig
			{
				SpawnDistance = 100f,
				SpawnInterval = 240f,
				SpawnChance = 15f,
				SpawnAtNight = true,
				SpawnAtDay = false,
				MaxSpawned = 2,
				MaxLevel = 2,
				MaxAltitude = 250f,
				Biome = (Biome)8
			}
		};

		public static SpawnConfig[] SwampSpawnConfig = (SpawnConfig[])(object)new SpawnConfig[1]
		{
			new SpawnConfig
			{
				SpawnDistance = 100f,
				SpawnInterval = 240f,
				SpawnChance = 15f,
				SpawnAtNight = true,
				SpawnAtDay = false,
				MaxSpawned = 2,
				MaxLevel = 2,
				MaxAltitude = 250f,
				Biome = (Biome)2
			}
		};

		public static SpawnConfig[] MountainSpawnConfig = (SpawnConfig[])(object)new SpawnConfig[1]
		{
			new SpawnConfig
			{
				SpawnDistance = 100f,
				SpawnInterval = 240f,
				SpawnChance = 15f,
				SpawnAtNight = true,
				SpawnAtDay = false,
				MaxSpawned = 2,
				MaxLevel = 2,
				MaxAltitude = 500f,
				Biome = (Biome)4
			}
		};

		public static SpawnConfig[] PlainsSpawnConfig = (SpawnConfig[])(object)new SpawnConfig[1]
		{
			new SpawnConfig
			{
				SpawnDistance = 100f,
				SpawnInterval = 240f,
				SpawnChance = 15f,
				SpawnAtNight = true,
				SpawnAtDay = false,
				MaxSpawned = 2,
				MaxLevel = 2,
				MaxAltitude = 250f,
				Biome = (Biome)16
			}
		};

		public static SpawnConfig[] MistlandsSpawnConfig = (SpawnConfig[])(object)new SpawnConfig[1]
		{
			new SpawnConfig
			{
				SpawnDistance = 100f,
				SpawnInterval = 240f,
				SpawnChance = 15f,
				SpawnAtNight = true,
				SpawnAtDay = false,
				MaxSpawned = 2,
				MaxLevel = 2,
				MaxAltitude = 500f,
				Biome = (Biome)512
			}
		};

		public static SpawnConfig[] AshLandsSpawnConfig = (SpawnConfig[])(object)new SpawnConfig[1]
		{
			new SpawnConfig
			{
				SpawnDistance = 100f,
				SpawnInterval = 340f,
				SpawnChance = 5f,
				SpawnAtNight = true,
				SpawnAtDay = false,
				MaxSpawned = 1,
				MaxLevel = 2,
				MaxAltitude = 275f,
				Biome = (Biome)32
			}
		};

		public static SpawnConfig[] DeepNorthSpawnConfig = (SpawnConfig[])(object)new SpawnConfig[1]
		{
			new SpawnConfig
			{
				SpawnDistance = 100f,
				SpawnInterval = 340f,
				SpawnChance = 5f,
				SpawnAtNight = true,
				SpawnAtDay = false,
				MaxSpawned = 1,
				MaxLevel = 2,
				MaxAltitude = 450f,
				Biome = (Biome)64
			}
		};

		private CustomLocalization Localization;

		public static CreatureConfig MeadowsCreatureConfig = new CreatureConfig
		{
			Faction = (Faction)2,
			UseCumulativeLevelEffects = true,
			SpawnConfigs = MeadowsSpawnConfig
		};

		public static CreatureConfig BlackForestCreatureConfig = new CreatureConfig
		{
			Faction = (Faction)2,
			UseCumulativeLevelEffects = true,
			SpawnConfigs = BlackForestSpawnConfig
		};

		public static CreatureConfig SwampCreatureConfig = new CreatureConfig
		{
			Faction = (Faction)3,
			UseCumulativeLevelEffects = true,
			SpawnConfigs = SwampSpawnConfig
		};

		public static CreatureConfig MountainCreatureConfig = new CreatureConfig
		{
			Faction = (Faction)5,
			UseCumulativeLevelEffects = true,
			SpawnConfigs = MountainSpawnConfig
		};

		public static CreatureConfig PlainsCreatureConfig = new CreatureConfig
		{
			Faction = (Faction)7,
			UseCumulativeLevelEffects = true,
			SpawnConfigs = PlainsSpawnConfig
		};

		public static CreatureConfig MistlandsCreatureConfig = new CreatureConfig
		{
			Faction = (Faction)9,
			UseCumulativeLevelEffects = true,
			SpawnConfigs = MistlandsSpawnConfig
		};

		public static CreatureConfig AshLandsCreatureConfig = new CreatureConfig
		{
			Faction = (Faction)4,
			UseCumulativeLevelEffects = true,
			SpawnConfigs = AshLandsSpawnConfig
		};

		public static CreatureConfig DeepNorthCreatureConfig = new CreatureConfig
		{
			Faction = (Faction)5,
			UseCumulativeLevelEffects = true,
			SpawnConfigs = DeepNorthSpawnConfig
		};

		private void Awake()
		{
			LoadBundle();
			CreateConfigurationValues();
			AddSFX();
			AddPrefabs();
			MeadowsSpawner();
			BlackForestSpawner();
			SwampSpawner();
			MountainSpawner();
			PlainsSpawner();
			MistlandsSpawner();
			AshlandsSpawner();
			DeepNorthSpawner();
			StatusEffects();
			AddlocalizationsEnglish();
			TranslationsFromJson();
			PrefabManager.OnPrefabsRegistered += FixSFX;
			PrefabManager.OnPrefabsRegistered += AddDrops;
			PrefabManager.OnPrefabsRegistered += AddDrops01;
			PrefabManager.OnPrefabsRegistered += AddDropsCheck;
			Log = ((BaseUnityPlugin)this).Logger;
		}

		private void LoadBundle()
		{
			try
			{
				MyAssets = AssetUtils.LoadAssetBundleFromResources("rtdhorrors", Assembly.GetExecutingAssembly());
			}
			catch (Exception arg)
			{
				((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while loading bundles: {arg}");
			}
		}

		public void CreateConfigurationValues()
		{
			//IL_002f: 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_0047: Expected O, but got Unknown
			try
			{
				((BaseUnityPlugin)this).Config.SaveOnConfigSet = true;
				LoggingEnable = ((BaseUnityPlugin)this).Config.Bind<bool>("Logging", "Enable", false, new ConfigDescription("Admin only, Enables logging. Disabled by default.", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
				{
					IsAdminOnly = true
				} }));
				SynchronizationManager.OnConfigurationSynchronized += delegate(object obj, ConfigurationSynchronizationEventArgs attr)
				{
					if (attr.InitialSynchronization)
					{
						Logger.LogMessage((object)"Initial Config sync event received for RtDHorrors");
					}
					else
					{
						Logger.LogMessage((object)"Config sync event received for RtDHorrors");
					}
				};
			}
			catch (Exception arg)
			{
				((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while adding configuration values: {arg}");
			}
		}

		private void TranslationsFromJson()
		{
			try
			{
				Localization = LocalizationManager.Instance.GetLocalization();
				string[] files = Directory.GetFiles(Path.Combine(Paths.ConfigPath, "Soloredis/RtDHorrors/Translations"), "*.json", SearchOption.AllDirectories);
				foreach (string text in files)
				{
					Localization.AddJsonFile(Path.GetFileNameWithoutExtension(text), AssetUtils.LoadText(text));
					if (LoggingEnable.Value)
					{
						((BaseUnityPlugin)this).Logger.LogMessage((object)("Added Translation from: " + text));
					}
				}
			}
			catch (Exception arg)
			{
				((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while adding translations from json files: {arg}");
			}
		}

		private void AddlocalizationsEnglish()
		{
			Localization = LocalizationManager.Instance.GetLocalization();
			CustomLocalization localization = Localization;
			string text = "English";
			localization.AddTranslation(ref text, new Dictionary<string, string>
			{
				{ "MutantMonster_RtD", "Wandering Mutant" },
				{ "se_armorweakness_name", "Physical Weakness" },
				{ "se_armorweakness_tooltip", "Physical Weakness" },
				{ "se_armorweakness_start", "Physical Weakness" },
				{ "se_frosted_name", "Frost Weakness" },
				{ "se_frosted_tooltip", "Frost Weakness" },
				{ "se_frosted_start", "Frost Weakness" },
				{ "se_shocked_name", "Electric Weakness" },
				{ "se_shocked_tooltip", "Electric Weakness" },
				{ "se_shocked_start", "Electric Weakness" },
				{ "se_weakened_name", "Poison Weakness" },
				{ "se_weakened_tooltip", "Poison Weakness" },
				{ "se_weakened_start", "Poison Weakness" }
			});
		}

		public void StatusEffects()
		{
			//IL_0030: Unknown result type (might be due to invalid IL or missing references)
			//IL_0037: Expected O, but got Unknown
			try
			{
				string[] customStatusEffectList = CustomStatusEffectList;
				foreach (string text in customStatusEffectList)
				{
					SE_Stats val = MyAssets.LoadAsset<SE_Stats>(text);
					if ((Object)(object)val != (Object)null)
					{
						CustomStatusEffect val2 = new CustomStatusEffect((StatusEffect)(object)val, true);
						ItemManager.Instance.AddStatusEffect(val2);
					}
				}
			}
			catch (Exception arg)
			{
				((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while adding SE_Stats Effects: {arg}");
			}
		}

		private void MeadowsSpawner()
		{
			//IL_003d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Expected O, but got Unknown
			try
			{
				string[] staticList = StaticList1;
				foreach (string text in staticList)
				{
					GameObject val = MyAssets.LoadAsset<GameObject>(text);
					if ((Object)(object)val != (Object)null)
					{
						CreatureManager.Instance.AddCreature(new CustomCreature(val, true, MeadowsCreatureConfig));
						if (LoggingEnable.Value)
						{
							((BaseUnityPlugin)this).Logger.LogMessage((object)("Added monster: " + text));
						}
					}
					else
					{
						((BaseUnityPlugin)this).Logger.LogMessage((object)("Failed to add: " + text + " to the object database"));
					}
				}
			}
			catch (Exception arg)
			{
				((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while adding monsters: {arg}");
			}
		}

		private void BlackForestSpawner()
		{
			//IL_003d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Expected O, but got Unknown
			try
			{
				string[] staticList = StaticList2;
				foreach (string text in staticList)
				{
					GameObject val = MyAssets.LoadAsset<GameObject>(text);
					if ((Object)(object)val != (Object)null)
					{
						CreatureManager.Instance.AddCreature(new CustomCreature(val, true, BlackForestCreatureConfig));
						if (LoggingEnable.Value)
						{
							((BaseUnityPlugin)this).Logger.LogMessage((object)("Added monster: " + text));
						}
					}
					else
					{
						((BaseUnityPlugin)this).Logger.LogMessage((object)("Failed to add: " + text + " to the object database"));
					}
				}
			}
			catch (Exception arg)
			{
				((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while adding monsters: {arg}");
			}
		}

		private void SwampSpawner()
		{
			//IL_003d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Expected O, but got Unknown
			try
			{
				string[] staticList = StaticList3;
				foreach (string text in staticList)
				{
					GameObject val = MyAssets.LoadAsset<GameObject>(text);
					if ((Object)(object)val != (Object)null)
					{
						CreatureManager.Instance.AddCreature(new CustomCreature(val, true, SwampCreatureConfig));
						if (LoggingEnable.Value)
						{
							((BaseUnityPlugin)this).Logger.LogMessage((object)("Added monster: " + text));
						}
					}
					else
					{
						((BaseUnityPlugin)this).Logger.LogMessage((object)("Failed to add: " + text + " to the object database"));
					}
				}
			}
			catch (Exception arg)
			{
				((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while adding monsters: {arg}");
			}
		}

		private void MountainSpawner()
		{
			//IL_003d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Expected O, but got Unknown
			try
			{
				string[] staticList = StaticList4;
				foreach (string text in staticList)
				{
					GameObject val = MyAssets.LoadAsset<GameObject>(text);
					if ((Object)(object)val != (Object)null)
					{
						CreatureManager.Instance.AddCreature(new CustomCreature(val, true, MountainCreatureConfig));
						if (LoggingEnable.Value)
						{
							((BaseUnityPlugin)this).Logger.LogMessage((object)("Added monster: " + text));
						}
					}
					else
					{
						((BaseUnityPlugin)this).Logger.LogMessage((object)("Failed to add: " + text + " to the object database"));
					}
				}
			}
			catch (Exception arg)
			{
				((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while adding monsters: {arg}");
			}
		}

		private void PlainsSpawner()
		{
			//IL_003d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Expected O, but got Unknown
			try
			{
				string[] staticList = StaticList5;
				foreach (string text in staticList)
				{
					GameObject val = MyAssets.LoadAsset<GameObject>(text);
					if ((Object)(object)val != (Object)null)
					{
						CreatureManager.Instance.AddCreature(new CustomCreature(val, true, PlainsCreatureConfig));
						if (LoggingEnable.Value)
						{
							((BaseUnityPlugin)this).Logger.LogMessage((object)("Added monster: " + text));
						}
					}
					else
					{
						((BaseUnityPlugin)this).Logger.LogMessage((object)("Failed to add: " + text + " to the object database"));
					}
				}
			}
			catch (Exception arg)
			{
				((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while adding monsters: {arg}");
			}
		}

		private void MistlandsSpawner()
		{
			//IL_003d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Expected O, but got Unknown
			try
			{
				string[] staticList = StaticList6;
				foreach (string text in staticList)
				{
					GameObject val = MyAssets.LoadAsset<GameObject>(text);
					if ((Object)(object)val != (Object)null)
					{
						CreatureManager.Instance.AddCreature(new CustomCreature(val, true, MistlandsCreatureConfig));
						if (LoggingEnable.Value)
						{
							((BaseUnityPlugin)this).Logger.LogMessage((object)("Added monster: " + text));
						}
					}
					else
					{
						((BaseUnityPlugin)this).Logger.LogMessage((object)("Failed to add: " + text + " to the object database"));
					}
				}
			}
			catch (Exception arg)
			{
				((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while adding monsters: {arg}");
			}
		}

		private void AshlandsSpawner()
		{
			//IL_003d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Expected O, but got Unknown
			try
			{
				string[] staticList = StaticList7;
				foreach (string text in staticList)
				{
					GameObject val = MyAssets.LoadAsset<GameObject>(text);
					if ((Object)(object)val != (Object)null)
					{
						CreatureManager.Instance.AddCreature(new CustomCreature(val, true, AshLandsCreatureConfig));
						if (LoggingEnable.Value)
						{
							((BaseUnityPlugin)this).Logger.LogMessage((object)("Added monster: " + text));
						}
					}
					else
					{
						((BaseUnityPlugin)this).Logger.LogMessage((object)("Failed to add: " + text + " to the object database"));
					}
				}
			}
			catch (Exception arg)
			{
				((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while adding monsters: {arg}");
			}
		}

		private void DeepNorthSpawner()
		{
			//IL_003d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Expected O, but got Unknown
			try
			{
				string[] staticList = StaticList8;
				foreach (string text in staticList)
				{
					GameObject val = MyAssets.LoadAsset<GameObject>(text);
					if ((Object)(object)val != (Object)null)
					{
						CreatureManager.Instance.AddCreature(new CustomCreature(val, true, DeepNorthCreatureConfig));
						if (LoggingEnable.Value)
						{
							((BaseUnityPlugin)this).Logger.LogMessage((object)("Added monster: " + text));
						}
					}
					else
					{
						((BaseUnityPlugin)this).Logger.LogMessage((object)("Failed to add: " + text + " to the object database"));
					}
				}
			}
			catch (Exception arg)
			{
				((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while adding monsters: {arg}");
			}
		}

		private void AddPrefabs()
		{
			//IL_004a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0051: Expected O, but got Unknown
			try
			{
				string[] prefabList = PrefabList;
				foreach (string text in prefabList)
				{
					GameObject val = MyAssets.LoadAsset<GameObject>(text);
					if ((Object)(object)val != (Object)null)
					{
						GameObject prefab = Cache.GetPrefab<GameObject>(text);
						if ((Object)(object)prefab == (Object)null)
						{
							CustomPrefab val2 = new CustomPrefab(val, true);
							PrefabManager.Instance.AddPrefab(val2);
							if (LoggingEnable.Value)
							{
								((BaseUnityPlugin)this).Logger.LogMessage((object)("Added: " + text + " to the Object database"));
							}
						}
					}
					else
					{
						((BaseUnityPlugin)this).Logger.LogMessage((object)("Failed to add: " + text + " to the object database"));
					}
				}
			}
			catch (Exception arg)
			{
				((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while adding prefabs: {arg}");
			}
		}

		private void AddSFX()
		{
			//IL_004a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0051: Expected O, but got Unknown
			try
			{
				string[] sFXList = SFXList;
				foreach (string text in sFXList)
				{
					GameObject val = MyAssets.LoadAsset<GameObject>(text);
					if ((Object)(object)val != (Object)null)
					{
						GameObject prefab = Cache.GetPrefab<GameObject>(text);
						if ((Object)(object)prefab == (Object)null)
						{
							CustomPrefab val2 = new CustomPrefab(val, false);
							PrefabManager.Instance.AddPrefab(val2);
							if (LoggingEnable.Value)
							{
								((BaseUnityPlugin)this).Logger.LogMessage((object)("Added: " + text + " to the Object database"));
							}
						}
					}
					else
					{
						((BaseUnityPlugin)this).Logger.LogMessage((object)("Failed to add: " + text + " to the object database"));
					}
				}
			}
			catch (Exception arg)
			{
				((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while adding sfx prefabs: {arg}");
			}
		}

		private void FixSFX()
		{
			try
			{
				AudioSource prefab = Cache.GetPrefab<AudioSource>("sfx_arrow_hit");
				string[] sFXList = SFXList;
				foreach (string text in sFXList)
				{
					GameObject prefab2 = Cache.GetPrefab<GameObject>(text);
					prefab2.GetComponentInChildren<AudioSource>().outputAudioMixerGroup = prefab.outputAudioMixerGroup;
					if (LoggingEnable.Value)
					{
						((BaseUnityPlugin)this).Logger.LogMessage((object)("Audio Mixer set on: " + text));
					}
				}
			}
			catch (Exception arg)
			{
				((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while fixing custom audio: {arg}");
			}
			finally
			{
				PrefabManager.OnPrefabsRegistered -= FixSFX;
			}
		}

		private void AddDrops()
		{
			//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_0049: Unknown result type (might be due to invalid IL or missing references)
			//IL_0054: 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_0075: Expected O, but got Unknown
			//IL_0081: Unknown result type (might be due to invalid IL or missing references)
			//IL_0086: Unknown result type (might be due to invalid IL or missing references)
			//IL_008d: 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_009f: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ad: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b9: Expected O, but got Unknown
			//IL_00f7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fc: Unknown result type (might be due to invalid IL or missing references)
			//IL_0104: Unknown result type (might be due to invalid IL or missing references)
			//IL_010f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0116: Unknown result type (might be due to invalid IL or missing references)
			//IL_011d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0124: Unknown result type (might be due to invalid IL or missing references)
			//IL_0130: Expected O, but got Unknown
			//IL_013c: 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_0149: Unknown result type (might be due to invalid IL or missing references)
			//IL_0154: Unknown result type (might be due to invalid IL or missing references)
			//IL_015b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0162: Unknown result type (might be due to invalid IL or missing references)
			//IL_0169: Unknown result type (might be due to invalid IL or missing references)
			//IL_0175: Expected O, but got Unknown
			//IL_01b5: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ba: Unknown result type (might be due to invalid IL or missing references)
			//IL_01c2: Unknown result type (might be due to invalid IL or missing references)
			//IL_01cd: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d4: Unknown result type (might be due to invalid IL or missing references)
			//IL_01db: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e2: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ee: Expected O, but got Unknown
			//IL_01fb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0200: Unknown result type (might be due to invalid IL or missing references)
			//IL_0208: Unknown result type (might be due to invalid IL or missing references)
			//IL_0213: Unknown result type (might be due to invalid IL or missing references)
			//IL_021a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0221: Unknown result type (might be due to invalid IL or missing references)
			//IL_0228: Unknown result type (might be due to invalid IL or missing references)
			//IL_0234: Expected O, but got Unknown
			//IL_0274: Unknown result type (might be due to invalid IL or missing references)
			//IL_0279: Unknown result type (might be due to invalid IL or missing references)
			//IL_0281: 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_02ad: Expected O, but got Unknown
			//IL_02ba: Unknown result type (might be due to invalid IL or missing references)
			//IL_02bf: Unknown result type (might be due to invalid IL or missing references)
			//IL_02c7: Unknown result type (might be due to invalid IL or missing references)
			//IL_02d2: Unknown result type (might be due to invalid IL or missing references)
			//IL_02d9: Unknown result type (might be due to invalid IL or missing references)
			//IL_02e0: Unknown result type (might be due to invalid IL or missing references)
			//IL_02e7: Unknown result type (might be due to invalid IL or missing references)
			//IL_02f3: Expected O, but got Unknown
			//IL_0333: Unknown result type (might be due to invalid IL or missing references)
			//IL_0338: Unknown result type (might be due to invalid IL or missing references)
			//IL_0340: Unknown result type (might be due to invalid IL or missing references)
			//IL_034b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0352: Unknown result type (might be due to invalid IL or missing references)
			//IL_0359: Unknown result type (might be due to invalid IL or missing references)
			//IL_0360: Unknown result type (might be due to invalid IL or missing references)
			//IL_036c: Expected O, but got Unknown
			//IL_0379: Unknown result type (might be due to invalid IL or missing references)
			//IL_037e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0386: Unknown result type (might be due to invalid IL or missing references)
			//IL_0391: Unknown result type (might be due to invalid IL or missing references)
			//IL_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_03b2: Expected O, but got Unknown
			//IL_03f2: Unknown result type (might be due to invalid IL or missing references)
			//IL_03f7: Unknown result type (might be due to invalid IL or missing references)
			//IL_03ff: Unknown result type (might be due to invalid IL or missing references)
			//IL_040a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0411: 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_041f: Unknown result type (might be due to invalid IL or missing references)
			//IL_042b: Expected O, but got Unknown
			//IL_0438: Unknown result type (might be due to invalid IL or missing references)
			//IL_043d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0445: Unknown result type (might be due to invalid IL or missing references)
			//IL_0450: Unknown result type (might be due to invalid IL or missing references)
			//IL_0457: 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_0465: Unknown result type (might be due to invalid IL or missing references)
			//IL_0471: Expected O, but got Unknown
			//IL_04a0: 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_04ad: Unknown result type (might be due to invalid IL or missing references)
			//IL_04b8: Unknown result type (might be due to invalid IL or missing references)
			//IL_04bf: Unknown result type (might be due to invalid IL or missing references)
			//IL_04c6: Unknown result type (might be due to invalid IL or missing references)
			//IL_04cd: Unknown result type (might be due to invalid IL or missing references)
			//IL_04d9: Expected O, but got Unknown
			//IL_0508: Unknown result type (might be due to invalid IL or missing references)
			//IL_050d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0515: Unknown result type (might be due to invalid IL or missing references)
			//IL_0520: Unknown result type (might be due to invalid IL or missing references)
			//IL_0527: Unknown result type (might be due to invalid IL or missing references)
			//IL_052e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0535: Unknown result type (might be due to invalid IL or missing references)
			//IL_0541: Expected O, but got Unknown
			//IL_0570: Unknown result type (might be due to invalid IL or missing references)
			//IL_0575: Unknown result type (might be due to invalid IL or missing references)
			//IL_057d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0588: Unknown result type (might be due to invalid IL or missing references)
			//IL_058f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0596: Unknown result type (might be due to invalid IL or missing references)
			//IL_059d: Unknown result type (might be due to invalid IL or missing references)
			//IL_05a9: Expected O, but got Unknown
			//IL_05d8: Unknown result type (might be due to invalid IL or missing references)
			//IL_05dd: Unknown result type (might be due to invalid IL or missing references)
			//IL_05e5: Unknown result type (might be due to invalid IL or missing references)
			//IL_05f0: Unknown result type (might be due to invalid IL or missing references)
			//IL_05f7: Unknown result type (might be due to invalid IL or missing references)
			//IL_05fe: Unknown result type (might be due to invalid IL or missing references)
			//IL_0605: Unknown result type (might be due to invalid IL or missing references)
			//IL_0611: Expected O, but got Unknown
			//IL_0640: Unknown result type (might be due to invalid IL or missing references)
			//IL_0645: Unknown result type (might be due to invalid IL or missing references)
			//IL_064d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0658: Unknown result type (might be due to invalid IL or missing references)
			//IL_065f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0666: Unknown result type (might be due to invalid IL or missing references)
			//IL_066d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0679: Expected O, but got Unknown
			//IL_06a8: Unknown result type (might be due to invalid IL or missing references)
			//IL_06ad: Unknown result type (might be due to invalid IL or missing references)
			//IL_06b5: Unknown result type (might be due to invalid IL or missing references)
			//IL_06c0: Unknown result type (might be due to invalid IL or missing references)
			//IL_06c7: Unknown result type (might be due to invalid IL or missing references)
			//IL_06ce: Unknown result type (might be due to invalid IL or missing references)
			//IL_06d5: Unknown result type (might be due to invalid IL or missing references)
			//IL_06e1: Expected O, but got Unknown
			//IL_0710: Unknown result type (might be due to invalid IL or missing references)
			//IL_0715: Unknown result type (might be due to invalid IL or missing references)
			//IL_071d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0728: Unknown result type (might be due to invalid IL or missing references)
			//IL_072f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0736: Unknown result type (might be due to invalid IL or missing references)
			//IL_073d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0749: Expected O, but got Unknown
			try
			{
				GameObject prefab = PrefabManager.Instance.GetPrefab("MeadowsHorror_RtD");
				GameObject prefab2 = PrefabManager.Instance.GetPrefab("SpiritEssense_RtD");
				GameObject prefab3 = PrefabManager.Instance.GetPrefab("MeadowsToken_RtD");
				prefab.GetComponent<CharacterDrop>().m_drops.Add(new Drop
				{
					m_prefab = prefab2,
					m_chance = 0.15f,
					m_amountMin = 1,
					m_amountMax = 1,
					m_levelMultiplier = false,
					m_onePerPlayer = false
				});
				prefab.GetComponent<CharacterDrop>().m_drops.Add(new Drop
				{
					m_prefab = prefab3,
					m_chance = 0.05f,
					m_amountMin = 1,
					m_amountMax = 1,
					m_levelMultiplier = false,
					m_onePerPlayer = false
				});
				GameObject prefab4 = PrefabManager.Instance.GetPrefab("BlackForestHorror_RtD");
				GameObject prefab5 = PrefabManager.Instance.GetPrefab("SpiritEssense_RtD");
				GameObject prefab6 = PrefabManager.Instance.GetPrefab("BlackForestToken_RtD");
				prefab4.GetComponent<CharacterDrop>().m_drops.Add(new Drop
				{
					m_prefab = prefab5,
					m_chance = 0.15f,
					m_amountMin = 1,
					m_amountMax = 1,
					m_levelMultiplier = false,
					m_onePerPlayer = false
				});
				prefab4.GetComponent<CharacterDrop>().m_drops.Add(new Drop
				{
					m_prefab = prefab6,
					m_chance = 0.05f,
					m_amountMin = 1,
					m_amountMax = 1,
					m_levelMultiplier = false,
					m_onePerPlayer = false
				});
				GameObject prefab7 = PrefabManager.Instance.GetPrefab("SwampChaser_RtD");
				GameObject prefab8 = PrefabManager.Instance.GetPrefab("SpiritEssense_RtD");
				GameObject prefab9 = PrefabManager.Instance.GetPrefab("SwampToken_RtD");
				prefab7.GetComponent<CharacterDrop>().m_drops.Add(new Drop
				{
					m_prefab = prefab8,
					m_chance = 0.05f,
					m_amountMin = 1,
					m_amountMax = 1,
					m_levelMultiplier = false,
					m_onePerPlayer = false
				});
				prefab7.GetComponent<CharacterDrop>().m_drops.Add(new Drop
				{
					m_prefab = prefab9,
					m_chance = 0.05f,
					m_amountMin = 1,
					m_amountMax = 1,
					m_levelMultiplier = false,
					m_onePerPlayer = false
				});
				GameObject prefab10 = PrefabManager.Instance.GetPrefab("MountainHorror_RtD");
				GameObject prefab11 = PrefabManager.Instance.GetPrefab("SpiritEssense_RtD");
				GameObject prefab12 = PrefabManager.Instance.GetPrefab("MountainToken_RtD");
				prefab10.GetComponent<CharacterDrop>().m_drops.Add(new Drop
				{
					m_prefab = prefab11,
					m_chance = 0.05f,
					m_amountMin = 1,
					m_amountMax = 1,
					m_levelMultiplier = false,
					m_onePerPlayer = false
				});
				prefab10.GetComponent<CharacterDrop>().m_drops.Add(new Drop
				{
					m_prefab = prefab12,
					m_chance = 0.15f,
					m_amountMin = 1,
					m_amountMax = 1,
					m_levelMultiplier = false,
					m_onePerPlayer = false
				});
				GameObject prefab13 = PrefabManager.Instance.GetPrefab("PlainsHorror_RtD");
				GameObject prefab14 = PrefabManager.Instance.GetPrefab("SpiritEssense_RtD");
				GameObject prefab15 = PrefabManager.Instance.GetPrefab("PlainsToken_RtD");
				prefab13.GetComponent<CharacterDrop>().m_drops.Add(new Drop
				{
					m_prefab = prefab14,
					m_chance = 0.05f,
					m_amountMin = 1,
					m_amountMax = 1,
					m_levelMultiplier = false,
					m_onePerPlayer = false
				});
				prefab13.GetComponent<CharacterDrop>().m_drops.Add(new Drop
				{
					m_prefab = prefab15,
					m_chance = 0.15f,
					m_amountMin = 1,
					m_amountMax = 1,
					m_levelMultiplier = false,
					m_onePerPlayer = false
				});
				GameObject prefab16 = PrefabManager.Instance.GetPrefab("MistlandsHorror_RtD");
				GameObject prefab17 = PrefabManager.Instance.GetPrefab("SpiritEssense_RtD");
				GameObject prefab18 = PrefabManager.Instance.GetPrefab("MistlandsToken_RtD");
				prefab16.GetComponent<CharacterDrop>().m_drops.Add(new Drop
				{
					m_prefab = prefab17,
					m_chance = 0.05f,
					m_amountMin = 1,
					m_amountMax = 1,
					m_levelMultiplier = false,
					m_onePerPlayer = false
				});
				prefab16.GetComponent<CharacterDrop>().m_drops.Add(new Drop
				{
					m_prefab = prefab18,
					m_chance = 0.15f,
					m_amountMin = 1,
					m_amountMax = 1,
					m_levelMultiplier = false,
					m_onePerPlayer = false
				});
				GameObject prefab19 = PrefabManager.Instance.GetPrefab("AshLandsHorror_RtD");
				GameObject prefab20 = PrefabManager.Instance.GetPrefab("SpiritEssense_RtD");
				prefab19.GetComponent<CharacterDrop>().m_drops.Add(new Drop
				{
					m_prefab = prefab20,
					m_chance = 0.05f,
					m_amountMin = 1,
					m_amountMax = 1,
					m_levelMultiplier = false,
					m_onePerPlayer = false
				});
				GameObject prefab21 = PrefabManager.Instance.GetPrefab("AshLandsCrawler_RtD");
				GameObject prefab22 = PrefabManager.Instance.GetPrefab("SpiritEssense_RtD");
				prefab21.GetComponent<CharacterDrop>().m_drops.Add(new Drop
				{
					m_prefab = prefab22,
					m_chance = 0.05f,
					m_amountMin = 1,
					m_amountMax = 1,
					m_levelMultiplier = false,
					m_onePerPlayer = false
				});
				GameObject prefab23 = PrefabManager.Instance.GetPrefab("DeepNorthHorror_RtD");
				GameObject prefab24 = PrefabManager.Instance.GetPrefab("SpiritEssense_RtD");
				prefab23.GetComponent<CharacterDrop>().m_drops.Add(new Drop
				{
					m_prefab = prefab24,
					m_chance = 0.15f,
					m_amountMin = 1,
					m_amountMax = 1,
					m_levelMultiplier = false,
					m_onePerPlayer = false
				});
				GameObject prefab25 = PrefabManager.Instance.GetPrefab("DeepNorthDemon1_RtD");
				GameObject prefab26 = PrefabManager.Instance.GetPrefab("SpiritEssense_RtD");
				prefab25.GetComponent<CharacterDrop>().m_drops.Add(new Drop
				{
					m_prefab = prefab26,
					m_chance = 0.15f,
					m_amountMin = 1,
					m_amountMax = 1,
					m_levelMultiplier = false,
					m_onePerPlayer = false
				});
				GameObject prefab27 = PrefabManager.Instance.GetPrefab("DeepNorthDemon2_RtD");
				GameObject prefab28 = PrefabManager.Instance.GetPrefab("SpiritEssense_RtD");
				prefab27.GetComponent<CharacterDrop>().m_drops.Add(new Drop
				{
					m_prefab = prefab28,
					m_chance = 0.15f,
					m_amountMin = 1,
					m_amountMax = 1,
					m_levelMultiplier = false,
					m_onePerPlayer = false
				});
				GameObject prefab29 = PrefabManager.Instance.GetPrefab("DeepNorthDemon3_RtD");
				GameObject prefab30 = PrefabManager.Instance.GetPrefab("SpiritEssense_RtD");
				prefab29.GetComponent<CharacterDrop>().m_drops.Add(new Drop
				{
					m_prefab = prefab30,
					m_chance = 0.15f,
					m_amountMin = 1,
					m_amountMax = 1,
					m_levelMultiplier = false,
					m_onePerPlayer = false
				});
				GameObject prefab31 = PrefabManager.Instance.GetPrefab("DeepNorthDemon4_RtD");
				GameObject prefab32 = PrefabManager.Instance.GetPrefab("SpiritEssense_RtD");
				prefab31.GetComponent<CharacterDrop>().m_drops.Add(new Drop
				{
					m_prefab = prefab32,
					m_chance = 0.15f,
					m_amountMin = 1,
					m_amountMax = 1,
					m_levelMultiplier = false,
					m_onePerPlayer = false
				});
			}
			catch (Exception arg)
			{
				((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while loading bundle: {arg}");
			}
			finally
			{
				PrefabManager.OnPrefabsRegistered -= AddDrops;
			}
		}

		private void AddDrops01()
		{
			//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_0049: Unknown result type (might be due to invalid IL or missing references)
			//IL_0054: 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_0075: Expected O, but got Unknown
			//IL_0081: Unknown result type (might be due to invalid IL or missing references)
			//IL_0086: Unknown result type (might be due to invalid IL or missing references)
			//IL_008d: 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_009f: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ad: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b9: Expected O, but got Unknown
			//IL_00f7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fc: Unknown result type (might be due to invalid IL or missing references)
			//IL_0104: Unknown result type (might be due to invalid IL or missing references)
			//IL_010f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0116: Unknown result type (might be due to invalid IL or missing references)
			//IL_011d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0124: Unknown result type (might be due to invalid IL or missing references)
			//IL_0130: Expected O, but got Unknown
			//IL_013c: 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_0149: Unknown result type (might be due to invalid IL or missing references)
			//IL_0154: Unknown result type (might be due to invalid IL or missing references)
			//IL_015b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0162: Unknown result type (might be due to invalid IL or missing references)
			//IL_0169: Unknown result type (might be due to invalid IL or missing references)
			//IL_0175: Expected O, but got Unknown
			//IL_01b5: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ba: Unknown result type (might be due to invalid IL or missing references)
			//IL_01c2: Unknown result type (might be due to invalid IL or missing references)
			//IL_01cd: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d4: Unknown result type (might be due to invalid IL or missing references)
			//IL_01db: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e2: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ee: Expected O, but got Unknown
			//IL_01fb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0200: Unknown result type (might be due to invalid IL or missing references)
			//IL_0208: Unknown result type (might be due to invalid IL or missing references)
			//IL_0213: Unknown result type (might be due to invalid IL or missing references)
			//IL_021a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0221: Unknown result type (might be due to invalid IL or missing references)
			//IL_0228: Unknown result type (might be due to invalid IL or missing references)
			//IL_0234: Expected O, but got Unknown
			//IL_0274: Unknown result type (might be due to invalid IL or missing references)
			//IL_0279: Unknown result type (might be due to invalid IL or missing references)
			//IL_0281: 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_02ad: Expected O, but got Unknown
			//IL_02ba: Unknown result type (might be due to invalid IL or missing references)
			//IL_02bf: Unknown result type (might be due to invalid IL or missing references)
			//IL_02c7: Unknown result type (might be due to invalid IL or missing references)
			//IL_02d2: Unknown result type (might be due to invalid IL or missing references)
			//IL_02d9: Unknown result type (might be due to invalid IL or missing references)
			//IL_02e0: Unknown result type (might be due to invalid IL or missing references)
			//IL_02e7: Unknown result type (might be due to invalid IL or missing references)
			//IL_02f3: Expected O, but got Unknown
			//IL_0333: Unknown result type (might be due to invalid IL or missing references)
			//IL_0338: Unknown result type (might be due to invalid IL or missing references)
			//IL_0340: Unknown result type (might be due to invalid IL or missing references)
			//IL_034b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0352: Unknown result type (might be due to invalid IL or missing references)
			//IL_0359: Unknown result type (might be due to invalid IL or missing references)
			//IL_0360: Unknown result type (might be due to invalid IL or missing references)
			//IL_036c: Expected O, but got Unknown
			//IL_0379: Unknown result type (might be due to invalid IL or missing references)
			//IL_037e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0386: Unknown result type (might be due to invalid IL or missing references)
			//IL_0391: Unknown result type (might be due to invalid IL or missing references)
			//IL_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_03b2: Expected O, but got Unknown
			//IL_03f2: Unknown result type (might be due to invalid IL or missing references)
			//IL_03f7: Unknown result type (might be due to invalid IL or missing references)
			//IL_03ff: Unknown result type (might be due to invalid IL or missing references)
			//IL_040a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0411: 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_041f: Unknown result type (might be due to invalid IL or missing references)
			//IL_042b: Expected O, but got Unknown
			//IL_0438: Unknown result type (might be due to invalid IL or missing references)
			//IL_043d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0445: Unknown result type (might be due to invalid IL or missing references)
			//IL_0450: Unknown result type (might be due to invalid IL or missing references)
			//IL_0457: 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_0465: Unknown result type (might be due to invalid IL or missing references)
			//IL_0471: Expected O, but got Unknown
			//IL_04a0: 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_04ad: Unknown result type (might be due to invalid IL or missing references)
			//IL_04b8: Unknown result type (might be due to invalid IL or missing references)
			//IL_04bf: Unknown result type (might be due to invalid IL or missing references)
			//IL_04c6: Unknown result type (might be due to invalid IL or missing references)
			//IL_04cd: Unknown result type (might be due to invalid IL or missing references)
			//IL_04d9: Expected O, but got Unknown
			try
			{
				GameObject prefab = PrefabManager.Instance.GetPrefab("MeadowsHorror01_RtD");
				GameObject prefab2 = PrefabManager.Instance.GetPrefab("SpiritEssense_RtD");
				GameObject prefab3 = PrefabManager.Instance.GetPrefab("MeadowsToken_RtD");
				prefab.GetComponent<CharacterDrop>().m_drops.Add(new Drop
				{
					m_prefab = prefab2,
					m_chance = 0.15f,
					m_amountMin = 1,
					m_amountMax = 1,
					m_levelMultiplier = false,
					m_onePerPlayer = false
				});
				prefab.GetComponent<CharacterDrop>().m_drops.Add(new Drop
				{
					m_prefab = prefab3,
					m_chance = 0.05f,
					m_amountMin = 1,
					m_amountMax = 1,
					m_levelMultiplier = false,
					m_onePerPlayer = false
				});
				GameObject prefab4 = PrefabManager.Instance.GetPrefab("BlackForestHorror01_RtD");
				GameObject prefab5 = PrefabManager.Instance.GetPrefab("SpiritEssense_RtD");
				GameObject prefab6 = PrefabManager.Instance.GetPrefab("BlackForestToken_RtD");
				prefab4.GetComponent<CharacterDrop>().m_drops.Add(new Drop
				{
					m_prefab = prefab5,
					m_chance = 0.15f,
					m_amountMin = 1,
					m_amountMax = 1,
					m_levelMultiplier = false,
					m_onePerPlayer = false
				});
				prefab4.GetComponent<CharacterDrop>().m_drops.Add(new Drop
				{
					m_prefab = prefab6,
					m_chance = 0.05f,
					m_amountMin = 1,
					m_amountMax = 1,
					m_levelMultiplier = false,
					m_onePerPlayer = false
				});
				GameObject prefab7 = PrefabManager.Instance.GetPrefab("SwampHorror01_RtD");
				GameObject prefab8 = PrefabManager.Instance.GetPrefab("SpiritEssense_RtD");
				GameObject prefab9 = PrefabManager.Instance.GetPrefab("SwampToken_RtD");
				prefab7.GetComponent<CharacterDrop>().m_drops.Add(new Drop
				{
					m_prefab = prefab8,
					m_chance = 0.05f,
					m_amountMin = 1,
					m_amountMax = 1,
					m_levelMultiplier = false,
					m_onePerPlayer = false
				});
				prefab7.GetComponent<CharacterDrop>().m_drops.Add(new Drop
				{
					m_prefab = prefab9,
					m_chance = 0.05f,
					m_amountMin = 1,
					m_amountMax = 1,
					m_levelMultiplier = false,
					m_onePerPlayer = false
				});
				GameObject prefab10 = PrefabManager.Instance.GetPrefab("MountainHorror01_RtD");
				GameObject prefab11 = PrefabManager.Instance.GetPrefab("SpiritEssense_RtD");
				GameObject prefab12 = PrefabManager.Instance.GetPrefab("MountainToken_RtD");
				prefab10.GetComponent<CharacterDrop>().m_drops.Add(new Drop
				{
					m_prefab = prefab11,
					m_chance = 0.05f,
					m_amountMin = 1,
					m_amountMax = 1,
					m_levelMultiplier = false,
					m_onePerPlayer = false
				});
				prefab10.GetComponent<CharacterDrop>().m_drops.Add(new Drop
				{
					m_prefab = prefab12,
					m_chance = 0.15f,
					m_amountMin = 1,
					m_amountMax = 1,
					m_levelMultiplier = false,
					m_onePerPlayer = false
				});
				GameObject prefab13 = PrefabManager.Instance.GetPrefab("PlainsHorror01_RtD");
				GameObject prefab14 = PrefabManager.Instance.GetPrefab("SpiritEssense_RtD");
				GameObject prefab15 = PrefabManager.Instance.GetPrefab("PlainsToken_RtD");
				prefab13.GetComponent<CharacterDrop>().m_drops.Add(new Drop
				{
					m_prefab = prefab14,
					m_chance = 0.05f,
					m_amountMin = 1,
					m_amountMax = 1,
					m_levelMultiplier = false,
					m_onePerPlayer = false
				});
				prefab13.GetComponent<CharacterDrop>().m_drops.Add(new Drop
				{
					m_prefab = prefab15,
					m_chance = 0.15f,
					m_amountMin = 1,
					m_amountMax = 1,
					m_levelMultiplier = false,
					m_onePerPlayer = false
				});
				GameObject prefab16 = PrefabManager.Instance.GetPrefab("SeekerMutant_RtD");
				GameObject prefab17 = PrefabManager.Instance.GetPrefab("SpiritEssense_RtD");
				GameObject prefab18 = PrefabManager.Instance.GetPrefab("MistlandsToken_RtD");
				prefab16.GetComponent<CharacterDrop>().m_drops.Add(new Drop
				{
					m_prefab = prefab17,
					m_chance = 0.05f,
					m_amountMin = 1,
					m_amountMax = 1,
					m_levelMultiplier = false,
					m_onePerPlayer = false
				});
				prefab16.GetComponent<CharacterDrop>().m_drops.Add(new Drop
				{
					m_prefab = prefab18,
					m_chance = 0.15f,
					m_amountMin = 1,
					m_amountMax = 1,
					m_levelMultiplier = false,
					m_onePerPlayer = false
				});
				GameObject prefab19 = PrefabManager.Instance.GetPrefab("AshLandsHorror01_RtD");
				GameObject prefab20 = PrefabManager.Instance.GetPrefab("SpiritEssense_RtD");
				prefab19.GetComponent<CharacterDrop>().m_drops.Add(new Drop
				{
					m_prefab = prefab20,
					m_chance = 0.15f,
					m_amountMin = 1,
					m_amountMax = 1,
					m_levelMultiplier = false,
					m_onePerPlayer = false
				});
			}
			catch (Exception arg)
			{
				((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while loading bundle: {arg}");
			}
			finally
			{
				PrefabManager.OnPrefabsRegistered -= AddDrops01;
			}
		}

		private void AddDropsCheck()
		{
			try
			{
				GameObject prefab = Cache.GetPrefab<GameObject>("SpiritEssense_RtD");
				if (!Object.op_Implicit((Object)(object)prefab))
				{
					((BaseUnityPlugin)this).Logger.LogMessage((object)"RtDMonstrum was not installed, skipping drops related to this mod.");
				}
				GameObject prefab2 = Cache.GetPrefab<GameObject>("BlackForestToken_RtD");
				if (!Object.op_Implicit((Object)(object)prefab2))
				{
					((BaseUnityPlugin)this).Logger.LogMessage((object)"RtDMonstrum was not installed, skipping drops related to this mod.");
				}
				GameObject prefab3 = Cache.GetPrefab<GameObject>("MeadowsToken_RtD");
				if (!Object.op_Implicit((Object)(object)prefab3))
				{
					((BaseUnityPlugin)this).Logger.LogMessage((object)"RtDMonstrum was not installed, skipping drops related to this mod.");
				}
				GameObject prefab4 = Cache.GetPrefab<GameObject>("MistlandsToken_RtD");
				if (!Object.op_Implicit((Object)(object)prefab4))
				{
					((BaseUnityPlugin)this).Logger.LogMessage((object)"RtDMonstrum was not installed, skipping drops related to this mod.");
				}
				GameObject prefab5 = Cache.GetPrefab<GameObject>("MountainToken_RtD");
				if (!Object.op_Implicit((Object)(object)prefab5))
				{
					((BaseUnityPlugin)this).Logger.LogMessage((object)"RtDMonstrum was not installed, skipping drops related to this mod.");
				}
				GameObject prefab6 = Cache.GetPrefab<GameObject>("PlainsToken_RtD");
				if (!Object.op_Implicit((Object)(object)prefab6))
				{
					((BaseUnityPlugin)this).Logger.LogMessage((object)"RtDMonstrum was not installed, skipping drops related to this mod.");
				}
				GameObject prefab7 = Cache.GetPrefab<GameObject>("SwampToken_RtD");
				if (!Object.op_Implicit((Object)(object)prefab7))
				{
					((BaseUnityPlugin)this).Logger.LogMessage((object)"RtDMonstrum was not installed, skipping drops related to this mod.");
				}
			}
			catch (Exception arg)
			{
				((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while adding Spirit Essence: {arg}");
			}
			finally
			{
				PrefabManager.OnPrefabsRegistered -= AddDrops;
			}
		}
	}
}