Decompiled source of RtDItems v0.1.3

RtDItems.dll

Decompiled 2 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.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("RtDItems")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("RtDItems")]
[assembly: AssemblyCopyright("Copyright ©  2023")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("c51234fb-4f13-4c53-94c3-42288d985284")]
[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 RtDItems
{
	[BepInPlugin("Soloredis.RtDItems", "RtDItems", "0.1.3")]
	[NetworkCompatibility(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	public class RtDItems : BaseUnityPlugin
	{
		public const string PluginGUID = "Soloredis.RtDItems";

		public const string PluginName = "RtDItems";

		public const string PluginVersion = "0.1.3";

		public static bool isModded = true;

		public AssetBundle MyAssets;

		internal static ManualLogSource Log;

		public ConfigEntry<bool> FoodEnable;

		public ConfigEntry<bool> MagicEnable;

		public ConfigEntry<bool> MeadowsEnable;

		public ConfigEntry<bool> BlackForestEnable;

		public ConfigEntry<bool> SwampEnable;

		public ConfigEntry<bool> MountainEnable;

		public ConfigEntry<bool> PlainsEnable;

		public ConfigEntry<bool> MistlandsEnable;

		public ConfigEntry<bool> AshlandsEnable;

		public ConfigEntry<bool> DeepNorthEnable;

		public ConfigEntry<bool> OceanEnable;

		public ConfigEntry<bool> JSONEnable;

		public ConfigEntry<bool> JSONCustomEnable;

		public ConfigEntry<bool> VanillaSetBonuses;

		public ConfigEntry<bool> LoggingEnable;

		public ConfigEntry<bool> ModEnable;

		private CustomLocalization Localization;

		public string[] PrefabList = new string[130]
		{
			"digg_v3_RtD", "vfx_Place_digg_RtD", "vfx_ArcaneSlashHit_RtD", "vfx_EarthSlashHit_RtD", "vfx_FireSlashHit_RtD", "vfx_FrostSlashHit_RtD", "vfx_LightningSlashHit_RtD", "vfx_LightSlashHit_RtD", "vfx_ShadowSlashHit_RtD", "vfx_StormSlashHit_RtD",
			"vfx_WaterSlashHit_RtD", "FaeGreenProjectile_RtD", "Fairy4_Poof_FX_RtD", "fx_neckcrit_RtD", "fx_DvergerMage_Ice_hit", "fx_fireexplosion_RtD", "fx_iceexplosion_RtD", "fx_shaman_fireball_expl_RtD", "NeckProjectile_RtD", "NeckSpawnFX_RtD",
			"NeckSummon_BiteAttack1_RtD", "NeckSummon_BiteAttack2_RtD", "NeckSummonProjectile_RtD", "projectile_chitinharpoon_catfish_RtD", "RunestoneLightening_RtD", "vfx_FireballHitSword_RtD", "vfx_silvermace_hit_RtD", "Neck_Ragdoll_RtD", "AshLandsSpearProjectile_RtD", "BlackForestSpearProjectile_RtD",
			"DeepNorthSpearProjectile_RtD", "MeadowsSpearProjectile_RtD", "MistlandsSpearProjectile_RtD", "MountainSpearProjectile_RtD", "PlainsSpearProjectile_RtD", "SwampSpearProjectile_RtD", "HealingAOE_T1_RtD", "HealingAOE_T2_RtD", "HealingAOE_T3_RtD", "HealingAOE_T4_RtD",
			"HealingCAST_T1_RtD", "HealingCAST_T2_RtD", "HealingCAST_T3_RtD", "HealingCAST_T4_RtD", "AirTornadoMeadowsAOE_RtD", "ArcaneLargeAOE_RtD", "ArcaneMediumAOE_RtD", "ArcaneSmallAOE_RtD", "EarthQuakeMistLandsAOE_RtD", "EarthShieldSwampAOE_RrtD",
			"FireLargeAOE_RtD", "FireMediumAOE_RtD", "FireRingBlackForestAOE_RtD", "FireSmallAOE_RtD", "FrostEnchantmentMountainAOE_RtD", "LightDamgeAOE_RtD", "LighteningRainBlackForestAOE_RtD", "VoidAOE_RtD", "WaterAOE_RtD", "AirProjectileS_RtD",
			"ArcaneProjectileLargeS_RtD", "ArcaneProjectileLargeSecondaryS_RtD", "ArcaneProjectileMediumS_RtD", "ArcaneProjectileSmallS_RtD", "EarthProjectileQuake_RtD", "EarthProjectileS_RtD", "FireProjectileLargeS_RtD", "FireProjectileLargeSecondaryS_RtD", "FireProjectileMediumS_RtD", "FireProjectileS_RtD",
			"FrostProjectileLargeS_RtD", "FrostProjectileS_RtD", "LighteningProjectileS_RtD", "LightProjectileS_RtD", "SpawnerProjectileTemplate", "VoidProjectileS_RtD", "WaterProjectileS_RtD", "ArcaneExplosionLargeS_RtD", "ArcaneExplosionMediumS_RtD", "ArcaneExplosionSmallS_RtD",
			"EarthExplosionLargeS_RtD", "EarthExplosionSmallS_RtD", "FireExplosionLargeS_RtD", "FireExplosionMediumS_RtD", "FireExplosionSmallS_RtD", "FrostExplosionLargeS_RtD", "FrostExplosionSmallS_RtD", "LightExplosionSmallS_RtD", "LightningExplosionSmallS_RtD", "StormExplosionSmallS_RtD",
			"VoidExplosionSmallS_RtD", "WaterExplosionS_RtD", "AirWandProjectile_RtD", "ArcaneWandProjectile_RtD", "EarthWandProjectile_RtD", "FireWandAshProjectile_RtD", "FireWandProjectile_RtD", "IceWandProjectile_RtD", "LighteningWandProjectile_RtD", "LightWandProjectile_RtD",
			"VoidWandProjectile_RtD", "WaterWandProjectile_RtD", "AirExplosionWand_RtD", "ArcaneExplosionWand_RtD", "EarthExplosionWand_RtD", "FireExplosionAshWand_RtD", "FireExplosionWand_RtD", "FrostExplosionWand_RtD", "LighteningExplosionWand_RtD", "LightExplosionWand_RtD",
			"VoidExplosionWand_RtD", "WaterExplosionWand_RtD", "ArcaneMuzzleAOE_RtD", "EarthMuzzleAOE_RtD", "FireMuzzleAOE_RtD", "FrostMuzzleAOE_RtD", "LifeMuzzleAOE_RtD", "LightMuzzleAOE_RtD", "LightningMuzzleAOE_RtD", "ShadowMuzzleAOE_RtD",
			"StormMuzzleAOE_RtD", "WaterMuzzleAOE_RtD", "AirProjectileAOE_RtD", "ArcaneProjectileAOE_RtD", "EarthProjectileAOE_RtD", "FireProjectileAOE_RtD", "FrostProjectileAOE_RtD", "LightProjectileAOE_RtD", "VoidProjectileAOE_RtD", "WaterProjectileAOE_RtD"
		};

		public string[] SFXList2 = new string[11]
		{
			"sfx_arcane_RtD", "sfx_earthcast_RtD", "sfx_firecast_RtD", "sfx_icecast_RtD", "sfx_lifecast_RtD", "sfx_lightcast_RtD", "sfx_lighteningcast_RtD", "sfx_naturecast_RtD", "sfx_stormcast_RtD", "sfx_voidcast_RtD",
			"sfx_watercast_RtD"
		};

		public string[] ItemsList = new string[8] { "SBlackSoup_RtD", "SBloodPudding_RtD", "SCarrotSoup_RtD", "SEyeScream_RtD", "SOnionSoup_RtD", "SQueensJam_RtD", "SShockolateShake_RtD", "STurnipStew_RtD" };

		public string[] MagicList = new string[26]
		{
			"HealingStaff_T1_RtD", "HealingStaff_T2_RtD", "HealingStaff_T3_RtD", "HealingStaff_T4_RtD", "AshLandsStaff1_RtD", "AshLandsStaff2_RtD", "AshLandsStaff3_RtD", "BlackForestFireStaff_RtD", "BlackForestLightStaff_RtD", "DeepNorthStaff1_RtD",
			"DeepNorthStaff2_RtD", "DeepNorthStaff3_RtD", "MeadowsAirStaff_RtD", "MeadowsLighteningStaff_RtD", "MistlandsQuakeStaff_RtD", "MountainIceStaff_RtD", "PlainsVoidStaff_RtD", "SwampEarthStaff_RtD", "AshLandsFireWand_RtD", "BlackForestLightningWand_RtD",
			"DeepNorthArcaneWand_RtD", "MeadowsAirWand_RtD", "MistlandsElementWand_RtD", "MountainIceWand_RtD", "PlainsVoidWand_RtD", "SwampPoisonWand_RtD"
		};

		public string[] OceanList = new string[6] { "OceanBelt_RtD", "SeaFareCape_RtD", "SeaScaleShield_RtD", "SeaShardSpear_RtD", "SeaShardStaff_RtD", "SeaShardWand_RtD" };

		public string[] MeadowsList = new string[9] { "MeadowsAtgeir_RtD", "MeadowsAxe1H_RtD", "MeadowsAxe2H_RtD", "MeadowsBow_RtD", "MeadowsClub_RtD", "MeadowsDagger_RtD", "MeadowsSpear_RtD", "MeadowsSword1H_RtD", "MeadowsSword2H_RtD" };

		public string[] BlackForestList = new string[23]
		{
			"BlackForestAtgeir_RtD", "BlackForestAxe1H_RtD", "BlackForestAxe2H_RtD", "BlackForestBow_RtD", "BlackForestClub_RtD", "BlackForestDagger_RtD", "BlackForestSledge_RtD", "BlackForestSpear_RtD", "BlackForestSword1H_RtD", "BlackForestSword2H_RtD",
			"OdinsFist_RtD", "OdinsDefender_RtD", "BlackForestArcherChest_RtD", "BlackForestArcherHelmet_RtD", "BlackForestArcherLegs_RtD", "BlackForestHardLeatherCape_RtD", "BlackForestMageChest_RtD", "BlackForestMageHood_RtD", "BlackForestMageLegs_RtD", "BlackForestMonkCape_RtD",
			"BlackForestMonkChest_RtD", "BlackForestMonkHood_RtD", "BlackForestMonkLegs_RtD"
		};

		public string[] SwampList = new string[22]
		{
			"SwampAtgeir_RtD", "SwampAxe1H_RtD", "SwampAxe2H_RtD", "SwampBow_RtD", "SwampClub_RtD", "SwampDagger_RtD", "SwampSledge_RtD", "SwampSpear_RtD", "SwampSword1H_RtD", "SwampSword2H_RtD",
			"SwampAssassinCape_RtD", "SwampAssassinChest_RtD", "SwampAssassinHood_RtD", "SwampAssassinLegs_RtD", "SwampMageCape_RtD", "SwampMageChest_RtD", "SwampMageHood_RtD", "SwampMageLegs_RtD", "SwampMonkCape_RtD", "SwampMonkChest_RtD",
			"SwampMonkHood_RtD", "SwampMonkLegs_RtD"
		};

		public string[] MountainList = new string[25]
		{
			"MountainAtgeir_RtD", "MountainAxe1H_RtD", "MountainAxe2H_RtD", "MountainBow_RtD", "MountainClub_RtD", "MountainDagger_RtD", "MountainSledge_RtD", "MountainSpear_RtD", "MountainSword1H_RtD", "MountainSword2H_RtD",
			"MountainAssassinChest_RtD", "MountainAssassinHood_RtD", "MountainAssassinLegs_RtD", "MountainMageCape_RtD", "MountainMageChest_RtD", "MountainMageHood_RtD", "MountainMageLegs_RtD", "MountainMonkChest_RtD", "MountainMonkCape_RtD", "MountainMonkHood_RtD",
			"MountainMonkLegs_RtD", "MountainArcherChest_RtD", "MountainArcherHelmet_RtD", "MountainArcherLegs_RtD", "MountainHybridCape_RtD"
		};

		public string[] PlainsList = new string[26]
		{
			"PlainsAtgeir_RtD", "PlainsAxe1H_RtD", "PlainsAxe2H_RtD", "PlainsBow_RtD", "PlainsClub_RtD", "PlainsDagger_RtD", "PlainsSledge_RtD", "PlainsSpear_RtD", "PlainsSword1H_RtD", "PlainsSword2H_RtD",
			"PlainsArcherCape_RtD", "PlainsArcherChest_RtD", "PlainsArcherHood_RtD", "PlainsArcherLegs_RtD", "PlainsAssassinCape_RtD", "PlainsAssassinHood_RtD", "PlainsAssassinLegs_RtD", "PlainsAssassinChest_RtD", "PlainsMageChest_RtD", "PlainsMageHood_RtD",
			"PlainsMageLegs_RtD", "PlainsMageCape_RtD", "PlainsMonkCape_RtD", "PlainsMonkChest_RtD", "PlainsMonkHood_RtD", "PlainsMonkLegs_RtD"
		};

		public string[] MistlandsList = new string[22]
		{
			"MistlandsAtgeir_RtD", "MistlandsAxe1H_RtD", "MistlandsAxe2H_RtD", "MistlandsBow_RtD", "MistlandsClub_RtD", "MistlandsDagger_RtD", "MistlandsSledge_RtD", "MistlandsSpear_RtD", "MistlandsSword1H_RtD", "MistlandsSword2H_RtD",
			"MistlandsArcherCape_RtD", "MistlandsArcherChest_RtD", "MistlandsArcherHood_RtD", "MistlandsArcherLegs_RtD", "MistlandsAssassinCape_RtD", "MistlandsAssassinChest_RtD", "MistlandsAssassinLegs_RtD", "MistlandsAssassinHood_RtD", "MistlandsMonkCape_RtD", "MistlandsMonkChest_RtD",
			"MistlandsMonkHood_RtD", "MistlandsMonkLegs_RtD"
		};

		public string[] AshLandsList = new string[33]
		{
			"AshLandsBow_RtD", "AshLandsShield_RtD", "AshLandsSledge_RtD", "AshLandsAtgeir_RtD", "AshLandsAxe1H_RtD", "AshLandsAxe2H_RtD", "AshLandsClub_RtD", "AshLandsDagger_RtD", "AshLandsShieldBow_RtD", "AshLandsSpear_RtD",
			"AshLandsSword1H_RtD", "AshLandsSword2H_RtD", "AshLandsArcherCape_RtD", "AshLandsArcherChest_RtD", "AshLandsArcherHood_RtD", "AshLandsArcherLegs_RtD", "AshLandsAssassinCape_RtD", "AshLandsAssassinChest_RtD", "AshLandsAssassinHood_RtD", "AshLandsAssassinLegs_RtD",
			"AshLandsHybridCape_RtD", "AshLandsMageChest_RtD", "AshLandsMageHood_RtD", "AshLandsMageLegs_RtD", "AshLandsMonkCape_RtD", "AshLandsMonkChest_RtD", "AshLandsMonkHood_RtD", "AshLandsMonkLegs_RtD", "AshLandsWarriorChest_RtD", "AshLandsWarriorHelmet_RtD",
			"AshLandsWarriorLegs_RtD", "AxeFlametal_RtD", "PickAxeFlametal_RtD"
		};

		public string[] DeepNorthList = new string[35]
		{
			"DeepNorthBow_RtD", "DeepNorthShield_RtD", "DeepNorthSledge1_RtD", "ThorHammer_RtD", "DeepNorthAtgeir_RtD", "DeepNorthAxe1H1_RtD", "DeepNorthAxe1H2_RtD", "DeepNorthAxe2H1_RtD", "DeepNorthAxe2H2_RtD", "DeepNorthClub_RtD",
			"DeepNorthDagger_RtD", "DeepNorthShieldBow_RtD", "DeepNorthSledge2_RtD", "DeepNorthSpear_RtD", "DeepNorthSword1H1_RtD", "DeepNorthSword1H2_RtD", "DeepNorthSword2H1_RtD", "DeepNorthSword2H2_RtD", "DeepNorthArcherChest_RtD", "DeepNorthArcherHood_RtD",
			"DeepNorthArcherLegs_RtD", "DeepNorthAssassinChest_RtD", "DeepNorthAssassinHood_RtD", "DeepNorthAssassinLegs_RtD", "DeepNorthHybridCape_RtD", "DeepNorthMageChest_RtD", "DeepNorthMageHood_RtD", "DeepNorthMageLegs_RtD", "DeepNorthMonkChest_RtD", "DeepNorthMonkHood_RtD",
			"DeepNorthMonkLegs_RtD", "DeepNorthMonkCape_RtD", "DeepNorthWarriorChest_RtD", "DeepNorthWarriorHelmet_RtD", "DeepNorthWarriorLegs_RtD"
		};

		public string[] CustomStatusEffectList = new string[51]
		{
			"SE_ArcherAshLands_RtD", "SE_AssassinAshLands_RtD", "SE_MageArmorAshLands_RtD", "SE_MonkArmorAshLands_RtD", "SE_WarriorArmorAshLands_RtD", "SlowFall_RtD", "SE_ArcherBlackForest_RtD", "SE_AssassinBlackForest_RtD", "SE_MageArmorBlackForest_RtD", "SE_MonkArmorBlackForest_RtD",
			"SE_WarriorArmorBlacKForest_RtD", "SE_ArcherDeepNorth_RtD", "SE_AssassinDeepNorth_RtD", "SE_MageArmorDeepNorth_RtD", "SE_MonkArmorDeepNorth_RtD", "SE_WarriorArmorDeepNorth_RtD", "SE_Cast_T1_RtD", "SE_Cast_T2_RtD", "SE_Cast_T3_RtD", "SE_Cast_T4_RtD",
			"SE_HealingStaffT1_RtD", "SE_HealingStaffT2_RtD", "SE_HealingStaffT3_RtD", "SE_HealingStaffT4_RtD", "SE_ArcherMistlands_RtD", "SE_AssassinMistlands_RtD", "SE_MageArmorMistlands_RtD", "SE_MonkArmorMistlands_RtD", "SE_WarriorArmorMistlands_RtD", "SE_ArcherMountain_RtD",
			"SE_AssassinMountain_RtD", "SE_MageArmorMountain_RtD", "SE_MonkArmorMountain_RtD", "SE_WarriorArmorMountain_RtD", "SE_AbyssalShield_RtD", "SE_AbyssalSpear_RtD", "SE_OceanBelt_RtD", "SE_SeaFare_RtD", "SE_SeaShard_RtD", "SE_ShardSummon_RtD",
			"SE_ArcherPlains_RtD", "SE_AssassinPlains_RtD", "SE_MageArmorPlains_RtD", "SE_MonkArmorPlains_RtD", "SE_WarriorArmorPlains_RtD", "SE_ArcherSwamp_RtD", "SE_AssassinSwamp_RtD", "SE_MageArmorSwamp_RtD", "SE_MonkArmorSwamp_RtD", "SE_WarriorArmorSwamp_RtD",
			"SE_OdinsFists_RtD"
		};

		public string[] AttackStatusEffectList = new string[1] { "SE_Harpooned_RtD" };

		public string[] SummonList = new string[1] { "NeckSummon_RtD" };

		public string[] MonsterItemList = new string[0];

		private void Awake()
		{
			CreateConfigs();
			Log = ((BaseUnityPlugin)this).Logger;
			if (ModEnable.Value)
			{
				if (LoggingEnable.Value)
				{
					((BaseUnityPlugin)this).Logger.LogWarning((object)"Logging is enabled in the config.");
				}
				LoadBundle();
				AddlocalizationsEnglish();
				AddSFX();
				AddTranslationsFromJson();
				AddSEStatsEffects();
				AddPrefabs();
				AddSummons();
				AddAttackEffects();
				AddMonsterItems();
				PrefabManager.OnPrefabsRegistered += FixSFX2;
				if (FoodEnable.Value)
				{
					AddItems();
				}
				if (MagicEnable.Value)
				{
					AddMagic();
				}
				if (MeadowsEnable.Value)
				{
					AddMeadowsItems();
				}
				if (BlackForestEnable.Value)
				{
					AddBlackForestItems();
				}
				if (SwampEnable.Value)
				{
					AddSwampItems();
				}
				if (MountainEnable.Value)
				{
					AddMountainItems();
				}
				if (PlainsEnable.Value)
				{
					AddPlainsItems();
				}
				if (MistlandsEnable.Value)
				{
					AddMistlandsItems();
				}
				if (AshlandsEnable.Value)
				{
					AddAshLandItems();
				}
				if (DeepNorthEnable.Value)
				{
					AddDeepNorthItems();
				}
				if (OceanEnable.Value)
				{
					AddOceanItems();
				}
				if (JSONEnable.Value)
				{
					PrefabManager.OnPrefabsRegistered += AddRecipesFromJson;
				}
				if (JSONCustomEnable.Value)
				{
					PrefabManager.OnPrefabsRegistered += AddCustomRecipesFromJson;
				}
				if (VanillaSetBonuses.Value)
				{
					PrefabManager.OnVanillaPrefabsAvailable += ModifyItems;
				}
			}
		}

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

		private void AddlocalizationsEnglish()
		{
			Localization = LocalizationManager.Instance.GetLocalization();
			CustomLocalization localization = Localization;
			string text = "English";
			localization.AddTranslation(ref text, new Dictionary<string, string>
			{
				{ "AshLandsArcherCape_RtD", "AshLeather Cape" },
				{ "AshLandsArcherCape_desc_RtD", "A strong Cape" },
				{ "AshLandsArcherChest_RtD", "AshLeather Chest" },
				{ "AshLandsArcherChest_desc_RtD", "Durable & light armor" },
				{ "AshLandsArcherHood_RtD", "AshLeather Hood" },
				{ "AshLandsArcherHood_desc_RtD", "Durable & light armor" },
				{ "AshLandsArcherLegs_RtD", "AshLeather Legs" },
				{ "AshLandsArcherLegs_desc_RtD", "Durable & Flame proof" },
				{ "AshLandsAssassinCape_RtD", "AshLeather Cloak" },
				{ "AshLandsAssassinCape_desc_RtD", "Light & Stealthy" },
				{ "AshLandsAssassinChest_RtD", "Assassin AshArmor" },
				{ "AshLandsAssassinChest_desc_RtD", "Fit for Assassins" },
				{ "AshLandsAssassinHood_RtD", "Assassin AshHood" },
				{ "AshLandsAssassinHood_desc_RtD", "A shrouded disguise" },
				{ "AshLandsAssassinLegs_RtD", "Assassin AshLegs" },
				{ "AshLandsAssassinLegs_desc_RtD", "Fit for Assassins" },
				{ "AshLandsHybridCape_RtD", "Hybrid AshCape" },
				{ "AshLandsHybridCape_desc_RtD", "Fit for all types of classes" },
				{ "AshLandsMageChest_RtD", "AshMage Robes" },
				{ "AshLandsMageChest_desc_RtD", "Provides the player with magical power" },
				{ "AshLandsMageHood_RtD", "AshMage Hood" },
				{ "AshLandsMageHood_desc_RtD", "Used by powerful mages and wizards, or even healers." },
				{ "AshLandsMageLegs_RtD", "AshMage Legs" },
				{ "AshLandsMageLegs_desc_RtD", "Fit for Wizards, Mages, & Healers." },
				{ "AshLandsMonkCape_RtD", "Monks Cloak" },
				{ "AshLandsMonkCape_desc_RtD", "The monks of Odin are dedicated to only Odin him self." },
				{ "AshLandsMonkChest_RtD", "Monks Robes" },
				{ "AshLandsMonkChest_desc_RtD", "Provides a small amount of armor for holy warriors." },
				{ "AshLandsMonkHood_RtD", "Monks Hood" },
				{ "AshLandsMonkHood_desc_RtD", "Ash covered Monks hood," },
				{ "AshLandsMonkLegs_RtD", "Monks Legs" },
				{ "AshLandsMonkLegs_desc_RtD", "Not much, just pants." },
				{ "AshLandsWarriorChest_RtD", "AshenWarrior Chest" },
				{ "AshLandsWarriorChest_desc_RtD", "Made from Flametal, and provides powerful defence." },
				{ "AshLandsWarriorHelmet_RtD", "AshenWarrior Helmet" },
				{ "AshLandsWarriorHelmet_desc_RtD", "A powerful Helmet" },
				{ "AshLandsWarriorLegs_RtD", "AshenWarrior Greaves" },
				{ "AshLandsWarriorLegs_desc_RtD", "Made with some of the strongest metal in Valheim" },
				{ "BlackForestArcherChest_RtD", "Hunters Chest" },
				{ "BlackForestArcherChest_desc_RtD", "Fit for those who hunt with bows" },
				{ "BlackForestArcherHelmet_RtD", "Hunters Helmet" },
				{ "BlackForestArcherHelmet_desc_RtD", "You went and made a helmet with Antlers as an attempt to blend in with nature." },
				{ "BlackForestArcherLegs_RtD", "Hunters Legs" },
				{ "BlackForestArcherLegs_desc_RtD", "Light and allows you to hunt freely." },
				{ "BlackForestHardLeatherCape_RtD", "Hunters Cape" },
				{ "BlackForestHardLeatherCape_desc_RtD", "Hard leather cape, provides a bit of defense." },
				{ "BlackForestMageChest_Rtd", "ForestMage Robes" },
				{ "BlackForestMageChest_desc_Rtd", "Provides a small amount of power" },
				{ "BlackForestMageHood_RtD", "ForestMage Hood" },
				{ "BlackForestMageHood_desc_RtD", "Fit for novice wizards, and mages." },
				{ "BlackForestMageLegs_RtD", "ForestMage Legs" },
				{ "BlackForestMageLegs_desc_RtD", "Provides a small amount of defense" },
				{ "BlackForestMonkCape_RtD", "Monks Cloak" },
				{ "BlackForestMonkCape_desc_RtD", "Used by Odins Monks" },
				{ "BlackForestMonkChest_RtD", "Monks Robes" },
				{ "BlackForestMonkChest_desc_RtD", "Used by Odins Monks" },
				{ "BlackForestMonkHood_RtD", "Monks Hood" },
				{ "BlackForestMonkHood_desc_RtD", "Used by Odins Monks" },
				{ "BlackForestMonkLegs_RtD", "Monks Pants" },
				{ "BlackForestMonkLegs_desc_RtD", "Used by Odins Monks" },
				{ "DeepNorthArcherChest_RtD", "FaeHunter Chest" },
				{ "DeepNorthArcherChest_desc_RtD", "Great for archers" },
				{ "DeepNorthArcherHood_RtD", "FaeHunter Hood" },
				{ "DeepNorthArcherHood_desc_RtD", "Made from FaeWolf leather." },
				{ "DeepNorthArcherLegs_RtD", "FaeHunter Legs" },
				{ "DeepNorthArcherLegs_desc_RtD", " Provides a bit of warmth" },
				{ "DeepNorthAssassinChest_RtD", "FaeAssassin Chest" },
				{ "DeepNorthAssassinChest_desc_RtD", "Stealthy and defensive" },
				{ "DeepNorthAssassinHood_RtD", "FaeAssassin Hood" },
				{ "DeepNorthAssassinHood_desc_RtD", "Stealthy and provides some warmth" },
				{ "DeepNorthAssassinLegs_RtD", "FaeAssassin Pants" },
				{ "DeepNorthAssassinLegs_desc_RtD", "Provides defense against the Elements" },
				{ "DeepNorthHybridCape_RtD", "FaeHybrid Cloak" },
				{ "DeepNorthHybridCape_desc_RtD", "Fit for all types of Warriors" },
				{ "DeepNorthMageChest_RtD", "FaeMage Robes" },
				{ "DeepNorthMageChest_desc_RtD", "Fit for Arcane mages, wizards & healers" },
				{ "DeepNorthMageHood_RtD", "FaeMage Hood" },
				{ "DeepNorthMageHood_desc_RtD", "Used by Arcane mages, wizards, & healers." },
				{ "DeepNorthMageLegs_RtD", "FaeMage Legs" },
				{ "DeepNorthMageLegs_desc_RtD", "Durable clothing" },
				{ "DeepNorthMonkCape_RtD", "Monks Cloak" },
				{ "DeepNorthMonkCape_desc_RtD", "Used by Odins Monks" },
				{ "DeepNorthMonkChest_RtD", "Monks Robes" },
				{ "DeepNorthMonkChest_desc_RtD", "Used by Odins strongest Monks" },
				{ "DeepNorthMonkHood_RtD", "Odins Hood" },
				{ "DeepNorthMonkHood_desc_RtD", "Used by Odins monks" },
				{ "DeepNorthMonkLegs_RtD", "Monks Pants" },
				{ "DeepNorthMonkLegs_desc_RtD", "Durable Clothing" },
				{ "DeepNorthWarriorChest_RtD", "FaeWarrior Chest" },
				{ "DeepNorthWarriorChest_desc_RtD", "Some of the strongest armor in Valheim, and it provides defense against the elements" },
				{ "DeepNorthWarriorHelmet_RtD", "FaeWarrior Helmet" },
				{ "DeepNorthWarriorHelmet_desc_RtD", "One of the strongest Helmets you can find" },
				{ "DeepNorthWarriorLegs_RtD", "FaeWarriors Greaves" },
				{ "DeepNorthWarriorLegs_desc_RtD", "Used by the most powerful Warriors" },
				{ "MistlandsArcherCape_RtD", "Carapace Hunter Cape" },
				{ "MistlandsArcherCape_desc_RtD", "Made from bugs" },
				{ "MistlandsArcherChest_RtD", "Carapace Hunter Armor" },
				{ "MistlandsArcherChest_desc_RtD", "If its made from bugs does it bug you or is it just a bug" },
				{ "MistlandsArcherHood_RtD", "Carapace Hunter Hood" },
				{ "MistlandsArcherHood_desc_RtD", "Well its not giving you any Spidy senses" },
				{ "MistlandsArcherLegs_RtD", "Carapace Hunter Legs" },
				{ "MistlandsArcherLegs_desc_RtD", "Great for bug hunters" },
				{ "MistlandsAssassinCape_RtD", "Mist Assassin Cloak" },
				{ "MistlandsAssassinCape_desc_RtD", "Provdes a small amount of defense" },
				{ "MistlandsAssassinChest_RtD", "Mist Assassin Armor" },
				{ "MistlandsAssassinChest_desc_RtD", "Ancient Dverger Assassins recipe" },
				{ "MistlandsAssassinLegs_RtD", "Mist Assasin Pants" },
				{ "MistlandsAssassinLegs_desc_RtD", "Denfensive & Stealthy" },
				{ "MistlandsAsssassinHood_RtD", "Mist Assassins Shroud" },
				{ "MistlandsAsssassinHood_desc_RtD", "Fit for sneaking around bugs" },
				{ "MistlandsMonkCape_RtD", "Monks Cloak" },
				{ "MistlandsMonkCape_desc_RtD", "Worn by Odins Monks" },
				{ "MistlandsMonkChest_RtD", "Monks Robes" },
				{ "MistlandsMonkChest_desc_RtD", "Worn by Odins Monks" },
				{ "MistlandsMonkHood_RtD", "Monks Hood" },
				{ "MistlandsMonkHood_desc_RtD", "Worn by Odins Monks" },
				{ "MistlandsMonkLegs_RtD", "Monks Pants" },
				{ "MistlandsMonkLegs_desc_RtD", "Worn by Odins Monks" },
				{ "MountainArcherChest_RtD", "WolfHunter Armor" },
				{ "MountainArcherChest_desc_RtD", "Provides some warmth" },
				{ "MountainArcherHelmet_RtD", "WolfHunter Helm" },
				{ "MountainArcherHelmet_desc_RtD", "Painted to blend in with the Mountain" },
				{ "MountainArcherLegs_RtD", "WolfHunter Pants" },
				{ "MountainArcherLegs_desc_RtD", "Provides basic defense against cold elements" },
				{ "MountainAssassinChest_RtD", "Assassins FurChest" },
				{ "MountainAssassinChest_desc_RtD", "Provides some warmth" },
				{ "MountainAssassinHood_RtD", "Assassins FurHood" },
				{ "MountainAssassinHood_desc_RtD", "Shrouds your face" },
				{ "MountainAssassinLegs_RtD", "Assassins Furpants" },
				{ "MountainAssassinLegs_desc_RtD", "Light and Stealthy" },
				{ "MountainHybridCape_RtD", "Hybrid Fur Cloak" },
				{ "MountainHybridCape_desc_RtD", "Minor defense for all types of warriors" },
				{ "MountainMageCape_RtD", "FrostMage Cloak" },
				{ "MountainMageCape_desc_RtD", "Worn by magic users" },
				{ "MountainMageChest_RtD", "FrostMage Armor" },
				{ "MountainMageChest_desc_RtD", "Provides basic defense" },
				{ "MountainMageHood_RtD", "FrostMage Hood" },
				{ "MountainMageHood_desc_RtD", "Keeps your ears warm" },
				{ "MountainMageLegs_RtD", "FrostMage Legs" },
				{ "MountainMageLegs_desc_RtD", "Worn by Wizards of the mountains" },
				{ "MountainMonkCape_RtD", "Monks Cloak" },
				{ "MountainMonkCape_desc_RtD", "Worn by Odins Monks" },
				{ "MountainMonkChest_RtD", "Monks Robes" },
				{ "MountainMonkChest_desc_RtD", "Worn by Odins Monks" },
				{ "MountainMonkHood_RtD", "Monks Hood" },
				{ "MountainMonkHood_desc_RtD", "Worn by Odins Monks" },
				{ "MountainMonkLegs_RtD", "Monks Pants" },
				{ "MountainMonkLegs_desc_RtD", "Worn by Odins Monks" },
				{ "PlainsArcherCape_RtD", "LoxHunter Cloak" },
				{ "PlainsArcherCape_desc_RtD", "Crafted from Lox fur" },
				{ "PlainsArcherChest_RtD", "LoxHunter Armor" },
				{ "PlainsArcherChest_desc_RtD", "Provides minor defense" },
				{ "PlainsArcherHood_RtD", "LoxHunter Hood" },
				{ "PlainsArcherHood_desc_RtD", "Great for Hunters" },
				{ "PlainsArcherLegs_RtD", "LoxHunter Pants" },
				{ "PlainsArcherLegs_desc_RtD", "Light enough to run fast" },
				{ "PlainsAssassinCape_RtD", "LoxAssassin Cloak" },
				{ "PlainsAssassinCape_desc_RtD", "Basic defense but great for sneaking" },
				{ "PlainsAssassinHood_RtD", "LoxAssassin Hood" },
				{ "PlainsAssassinHood_desc_RtD", "Shrouds your face" },
				{ "PlainsAssassinLegs_RtD", "LoxAssassin Pants" },
				{ "PlainsAssassinLegs_desc_RtD", "Wont make much noise while sneaking" },
				{ "PlainsAsssassinChest_RtD", "LoxAssasin Armor" },
				{ "PlainsAsssassinChest_desc_RtD", "Durable Assassins Armor" },
				{ "PlainsMageCape_RtD", "LoxMage Cloak" },
				{ "PlainsMageCape_desc_RtD", "Provides basic defense" },
				{ "PlainsMageChest_RtD", "LoxMage Cloak" },
				{ "PlainsMageChest_desc_RtD", "Provides some defense and passive powers" },
				{ "PlainsMageHood_RtD", "LoxMage Hood" },
				{ "PlainsMageHood_desc_RtD", "Great for magic users." },
				{ "PlainsMageLegs_RtD", "LoxMage Pants" },
				{ "PlainsMageLegs_desc_RtD", "Provides basic defense" },
				{ "PlainsMonkCape_RtD", "Monks Cloak" },
				{ "PlainsMonkCape_desc_RtD", "Worn by Odins Monks" },
				{ "PlainsMonkChest_RtD", "Monks Robes" },
				{ "PlainsMonkChest_desc_RtD", "Worn by Odins Monks" },
				{ "PlainsMonkHood_RtD", "Monks Hood" },
				{ "PlainsMonkHood_desc_RtD", "Worn by Odins Monks" },
				{ "PlainsMonkLegs_RtD", "Monks Pants" },
				{ "PlainsMonkLegs_desc_RtD", "Worn by Odins Monks" },
				{ "SwampAssassinCape_RtD", "Blood Cloak" },
				{ "SwampAssassinCape_desc_RtD", "Doesn't smell great but it gets the job done" },
				{ "SwampAssassinChest_RtD", "Blood Armor" },
				{ "SwampAssassinChest_desc_RtD", "Provides some basic defense but is great for sneaking" },
				{ "SwampAssassinHood_RtD", "Blood Hood" },
				{ "SwampAssassinHood_desc_RtD", "Worn by Assassins" },
				{ "SwampAssassinLegs_RtD", "Blood Pants" },
				{ "SwampAssassinLegs_desc_RtD", "Decent defense but great stealth" },
				{ "SwampMageCape_RtD", "BloodMage Cloak" },
				{ "SwampMageCape_desc_RtD", "Smells pretty bad" },
				{ "SwampMageChest_RtD", "BloodMage Armor" },
				{ "SwampMageChest_desc_RtD", "Provides basic power" },
				{ "SwampMageHood_RtD", "BloodMage Hood" },
				{ "SwampMageHood_desc_RtD", "Its not great but its better than nothing" },
				{ "SwampMageLegs_RtD", "BloodMage Legs" },
				{ "SwampMageLegs_desc_RtD", "Stops things from biting your ankles" },
				{ "SwampMonkCape_RtD", "Monks Cloak" },
				{ "SwampMonkCape_desc_RtD", "Worn by Odins Monks" },
				{ "SwampMonkChest_RtD", "Monks Robes" },
				{ "SwampMonkChest_desc_RtD", "Worn by Odins Monks" },
				{ "SwampMonkHood_RtD", "Monks Hood" },
				{ "SwampMonkHood_desc_RtD", "Worn by Odins Monks" },
				{ "SwampMonkLegs_RtD", "Monks Pants" },
				{ "SwampMonkLegs_desc_RtD", "Worn by Odins Monks" },
				{ "AshLandsAtgeir_RtD", "Frometal Atgeir" },
				{ "AshLandsAtgeir_desc_RtD", "A strong two handed weapon" },
				{ "AshLandsAxe1H_RtD", "Flametal Axe" },
				{ "AshLandsAxe1H_desc_RtD", "A great one handed Axe" },
				{ "AshLandsAxe2H_RtD", "Flametal BattleAxe" },
				{ "AshLandsAxe2H_desc_RtD", "A powerful BattleAxe" },
				{ "AshLandsBow_RtD", "AshWood bow" },
				{ "AshLandsBow_desc_RtD", "A light bow" },
				{ "AshLandsClub_RtD", "Flametal Mace" },
				{ "AshLandsClub_desc_RtD", "A strong mace" },
				{ "AshLandsDagger_RtD", "Flametal Dagger" },
				{ "AshLandsDagger_desc_RtD", "A strong dagger" },
				{ "AshLandsShield_RtD", "Flametal Shield" },
				{ "AshLandsShield_desc_RtD", "A strong Shield" },
				{ "AshLandsShieldBow_RtD", "AshenWood ShieldBow" },
				{ "AshLandsShieldBow_desc_RtD", "Provides great defence but is also a bow" },
				{ "AshLandsSledge_RtD", "Flametal Sledge" },
				{ "AshLandsSledge_desc_RtD", "A powerful Sledge" },
				{ "AshLandsSpear_RtD", "Flametal Spear" },
				{ "AshLandsSpear_desc_RtD", "A powerful spear" },
				{ "AshLandsSword1H_RtD", "Flametal Sword" },
				{ "AshLandsSword1H_desc_RtD", "A powerful one handed sword" },
				{ "AshLandsSword2H_RtD", "Flametal GreatSword" },
				{ "AshLandsSword2H_desc_RtD", "A powerful two handed sword" },
				{ "BlackForestAtgeir_RtD", "Lightning Atgier" },
				{ "BlackForestAtgeir_desc_RtD", "A strong two handed weapon" },
				{ "BlackForestAxe1H_RtD", "Lightning Axe " },
				{ "BlackForestAxe1H_desc_RtD", "A great one handed Axe" },
				{ "BlackForestAxe2H_RtD", "Lightning " },
				{ "BlackForestAxe2H_desc_RtD", "A powerful BattleAxe" },
				{ "BlackForestBow_RtD", "Lightning bow" },
				{ "BlackForestBow_desc_RtD", "A light bow" },
				{ "BlackForestClub_RtD", "Lightning " },
				{ "BlackForestClub_desc_RtD", "A strong mace" },
				{ "BlackForestDagger_RtD", "Lightning Dagger" },
				{ "BlackForestDagger_desc_RtD", "A strong dagger" },
				{ "BlackForestSledge_RtD", "Lightning Sledge" },
				{ "BlackForestSledge_desc_RtD", "Its very heavy" },
				{ "BlackForestSpear_RtD", "Lightning Spear" },
				{ "BlackForestSpear_desc_RtD", "The tip of the spear is very sharp" },
				{ "BlackForestSword1H_RtD", "Lightning Sword" },
				{ "BlackForestSword1H_desc_RtD", "A very sharp one handed Sword" },
				{ "BlackForestSword2H_RtD", "Lightning GreatSword" },
				{ "BlackForestSword2H_desc_RtD", "A very sharp two handed Sword" },
				{ "DeepNorthAtgeir_RtD", "Arcane Atgeir" },
				{ "DeepNorthAtgeir_desc_RtD", "A strong two handed weapon" },
				{ "DeepNorthAxe1H1_RtD", "Arcane Axe" },
				{ "DeepNorthAxe1H1_desc_RtD", "A great one handed Axe" },
				{ "DeepNorthAxe1H2_RtD", "Arcane Axe" },
				{ "DeepNorthAxe1H2_desc_RtD", "A great one handed Axe" },
				{ "DeepNorthAxe2H1_RtD", "Arcane GreatAxe" },
				{ "DeepNorthAxe2H1_desc_RtD", "A powerful BattleAxe" },
				{ "DeepNorthAxe2H2_RtD", "Arcane GreatAxe" },
				{ "DeepNorthAxe2H2_desc_RtD", "A powerful BattleAxe" },
				{ "DeepNorthBow_RtD", "Arcane Bow" },
				{ "DeepNorthBow_desc_RtD", "A light bow" },
				{ "DeepNorthClub_RtD", "Arcane Mace" },
				{ "DeepNorthClub_desc_RtD", "A strong mace" },
				{ "DeepNorthDagger_RtD", "Arcane Dagger" },
				{ "DeepNorthDagger_desc_RtD", "A strong dagger" },
				{ "DeepNorthShield_RtD", "Arcane Shield" },
				{ "DeepNorthShield_desc_RtD", "A Strong Shield" },
				{ "DeepNorthShieldBow_RtD", "Arcane ShieldBow" },
				{ "DeepNorthShieldBow_desc_RtD", "Its a very defensive bow" },
				{ "DeepNorthSledge1_RtD", "Arcane Sledge" },
				{ "DeepNorthSledge1_desc_RtD", "An extremely heavy Sledge" },
				{ "DeepNorthSledge2_RtD", "Arcane Sledge" },
				{ "DeepNorthSledge2_desc_RtD", "An extremely heavy Sledge" },
				{ "DeepNorthSpear_RtD", "Arcane Spear" },
				{ "DeepNorthSpear_desc_RtD", "The tip of the spear is very sharp" },
				{ "DeepNorthSword1H1_RtD", "Arcane Sword" },
				{ "DeepNorthSword1H1_desc_RtD", "A very sharp one handed Sword" },
				{ "DeepNorthSword1H2_RtD", "Arcane Sword" },
				{ "DeepNorthSword1H2_desc_RtD", "A very sharp one handed Sword" },
				{ "DeepNorthSword2H1_RtD", "Arcane GreatSword" },
				{ "DeepNorthSword2H1_desc_RtD", "A very sharp two handed Sword" },
				{ "DeepNorthSword2H2_RtD", "Arcane GreatSword" },
				{ "DeepNorthSword2H2_desc_RtD", "A very sharp two handed Sword" },
				{ "ThorHammer_RtD", "Odins Hammer" },
				{ "ThorHammer_desc_RtD", "Strength of the gods" },
				{ "MeadowsAtgeir_RtD", "Storm Atgeir" },
				{ "MeadowsAtgeir_desc_RtD", "A strong two handed weapon" },
				{ "MeadowsAxe1H_RtD", "Storm Axe" },
				{ "MeadowsAxe1H_desc_RtD", "A great one handed Axe" },
				{ "MeadowsAxe2H_RtD", "Storm GreatAxe" },
				{ "MeadowsAxe2H_desc_RtD", "A powerful BattleAxe" },
				{ "MeadowsBow_RtD", "Storm Bow" },
				{ "MeadowsBow_desc_RtD", "A light bow" },
				{ "MeadowsClub_RtD", "Storm Mace" },
				{ "MeadowsClub_desc_RtD", "A strong mace" },
				{ "MeadowsDagger_RtD", "Storm Dagger" },
				{ "MeadowsDagger_desc_RtD", "A strong dagger" },
				{ "MeadowsSpear_RtD", "Storm Spear" },
				{ "MeadowsSpear_desc_RtD", "The tip of the spear is very sharp" },
				{ "MeadowsSword1H_RtD", "Storm Sword" },
				{ "MeadowsSword1H_desc_RtD", "A very sharp one handed Sword" },
				{ "MeadowsSword2H_RtD", "Storm GreatSword" },
				{ "MeadowsSword2H_desc_RtD", "A very sharp two handed Sword" },
				{ "MistlandsAtgeir_RtD", "Mist Atgeir" },
				{ "MistlandsAtgeir_desc_RtD", "A strong two handed weapon" },
				{ "MistlandsAxe1H_RtD", "Mist Axe" },
				{ "MistlandsAxe1H_desc_RtD", "A great one handed Axe" },
				{ "MistlandsAxe2H_RtD", "Mist GreatAxe" },
				{ "MistlandsAxe2H_desc_RtD", "A powerful BattleAxe" },
				{ "MistlandsBow_RtD", "Mist Bow" },
				{ "MistlandsBow_desc_RtD", "A light bow" },
				{ "MistlandsClub_RtD", "Mist Mace" },
				{ "MistlandsClub_desc_RtD", "A strong mace" },
				{ "MistlandsDagger_RtD", "Mist Dagger" },
				{ "MistlandsDagger_desc_RtD", "A strong dagger" },
				{ "MistlandsSledge_RtD", "Mist Sledge" },
				{ "MistlandsSledge_desc_RtD", "An extremely heavy Sledge" },
				{ "MistlandsSpear_RtD", "Mist Spear" },
				{ "MistlandsSpear_desc_RtD", "The tip of the spear is very sharp" },
				{ "MistlandsSword1H_RtD", "Mist Sword" },
				{ "MistlandsSword1H_desc_RtD", "A very sharp one handed Sword" },
				{ "MistlandsSword2H_RtD", "Mist GreatSword" },
				{ "MistlandsSword2H_desc_RtD", "A very sharp two handed Sword" },
				{ "MountainAtgeir_RtD", "Ice Atgeir" },
				{ "MountainAtgeir_desc_RtD", "A strong two handed weapon" },
				{ "MountainAxe1H_RtD", "Ice Axe" },
				{ "MountainAxe1H_desc_RtD", "A great one handed Axe" },
				{ "MountainAxe2H_RtD", "Ice GreatAxe" },
				{ "MountainAxe2H_desc_RtD", "A powerful BattleAxe" },
				{ "MountainBow_RtD", "Ice Bow" },
				{ "MountainBow_desc_RtD", "A light bow" },
				{ "MountainClub_RtD", "Ice Mace" },
				{ "MountainClub_desc_RtD", "A strong mace" },
				{ "MountainDagger_RtD", "Ice Dagger" },
				{ "MountainDagger_desc_RtD", "A strong dagger" },
				{ "MountainSledge_RtD", "Ice Sledge" },
				{ "MountainSledge_desc_RtD", "An extremely heavy Sledge" },
				{ "MountainSpear_RtD", "Ice Spear" },
				{ "MountainSpear_desc_RtD", "The tip of the spear is very sharp" },
				{ "MountainSword1H_RtD", "Ice Sword" },
				{ "MountainSword1H_desc_RtD", "A very sharp one handed Sword" },
				{ "MountainSword2H_RtD", "Ice GreatSword" },
				{ "MountainSword2H_desc_RtD", "A very sharp two handed Sword" },
				{ "PlainsAtgeir_RtD", "Void Atgeir" },
				{ "PlainsAtgeir_desc_RtD", "A strong two handed weapon" },
				{ "PlainsAxe1H_RtD", "Void Axe" },
				{ "PlainsAxe1H_desc_RtD", "A great one handed Axe" },
				{ "PlainsAxe2H_RtD", "Void GreatAxe" },
				{ "PlainsAxe2H_desc_RtD", "A powerful BattleAxe" },
				{ "PlainsBow_RtD", "Void Bow" },
				{ "PlainsBow_desc_RtD", "A light bow" },
				{ "PlainsClub_RtD", "Void Mace" },
				{ "PlainsClub_desc_RtD", "A strong maceA strong mace" },
				{ "PlainsDagger_RtD", "Void Dagger" },
				{ "PlainsDagger_desc_RtD", "A strong dagger" },
				{ "PlainsSledge_RtD", "Void Sledge" },
				{ "PlainsSledge_desc_RtD", "An extremely heavy Sledge" },
				{ "PlainsSpear_RtD", "Void Spear" },
				{ "PlainsSpear_desc_RtD", "The tip of the spear is very sharp" },
				{ "PlainsSword1H_RtD", "Void Sword" },
				{ "PlainsSword1H_desc_RtD", "A very sharp one handed Sword" },
				{ "PlainsSword2H_RtD", "Void GreatSword" },
				{ "PlainsSword2H_desc_RtD", "A very sharp two handed Sword" },
				{ "SwampAtgeir_RtD", "Earth Atgeir" },
				{ "SwampAtgeir_desc_RtD", "A strong two handed weapon" },
				{ "SwampAxe1H_RtD", "Earth Axe" },
				{ "SwampAxe1H_desc_RtD", "A great one handed Axe" },
				{ "SwampAxe2H_RtD", "Earth GreatAxe" },
				{ "SwampAxe2H_desc_RtD", "A powerful BattleAxe" },
				{ "SwampBow_RtD", "Earth Bow" },
				{ "SwampBow_desc_RtD", "A light bow" },
				{ "SwampClub_RtD", "Earth Mace" },
				{ "SwampClub_dsc_RtD", "A strong mace" },
				{ "SwampDagger_RtD", "Earth Dagger" },
				{ "SwampDagger_desc_RtD", "A strong dagger" },
				{ "SwampSledge_RtD", "Earth Sledge" },
				{ "SwampSledge_desc_RtD", "An extremely heavy Sledge" },
				{ "SwampSpear_RtD", "Earth Spear" },
				{ "SwampSpear_desc_RtD", "The tip of the spear is very sharp" },
				{ "SwampSword1H_RtD", "Earth Sword" },
				{ "SwampSword1H_desc_RtD", "A very sharp one handed Sword" },
				{ "SwampSword2H_RtD", "Earth GreatSword" },
				{ "SwampSword2H_desc_RtD", "A very sharp two handed Sword" },
				{ "HealingStaff_T1_RtD", "Healing Staff T1" },
				{ "HealingStaff_T1_desc_RtD", "Provides basic heals" },
				{ "HealingStaff_T2_RtD", "Healing Staff T2" },
				{ "HealingStaff_T2_desc_RtD", "Provides minor heals" },
				{ "HealingStaff_T3_RtD", "Healing Staff T3" },
				{ "HealingStaff_T3_desc_RtD", "Provides strong heals" },
				{ "HealingStaff_T4_RtD", "Healing Staff T4" },
				{ "HealingStaff_T4_desc_RtD", "Provides very strong heals" },
				{ "OdinsDefender_RtD", "Odins Defender" },
				{ "OdinsDefender_desc_RtD", "Its probably better thanw Windows defender." },
				{ "OdinsFist_RtD", "Odins Fist" },
				{ "OdinsFist_desc_RtD", "Gains more power as you collect Essense." },
				{ "OceanBelt_RtD", "SeaShard Belt" },
				{ "OceanBelt_desc_RtD", "Grants the user health, stamina, and eitr regen." },
				{ "SeaFareCape_RtD", "SeaFare Cape" },
				{ "SeaFareCape_desc_RtD", "This grants the user the ability to swim with ease. " },
				{ "SeaScaleShield_RtD", "SeaShard SerpentShield" },
				{ "SeaScaleShield_desc_RtD", "You can actually parry with this shield!" },
				{ "SeaShardSpear_RtD", "SeaShard Harpoon" },
				{ "SeaShardSpear_desc_RtD", "Has a close range melee attack, and you can also throw it as a powerful spear while harpooning your target." },
				{ "SeaShardStaff_RtD", "SeaShard Staff" },
				{ "SeaShardStaff_desc_RtD", "High pierce & poison damage. Also has some lightening damage." },
				{ "SeaShardWand_RtD", "SeaShard Wand" },
				{ "SeaShardWand_desc_RtD", "Used to summon a powerful companion." },
				{ "se_seascale_name", "Serpents Strength" },
				{ "se_seascale_tooltip", "Greatly increases blocking skill." },
				{ "se_seaspear_name", "Poseidons Accuracy" },
				{ "se_seaspear_tooltip", "Greatly increases spears skill" },
				{ "se_belt_name", "Poseidons Strength" },
				{ "se_belt_tooltip", "Faster regen times" },
				{ "se_seafare_name", "Poseidon Endurance" },
				{ "se_seafare_tooltip", "Greatly increases swimming skill" },
				{ "se_seashard_name", "Poseidons Wisdom" },
				{ "se_seashard_tooltip", "Greatly increases elemental magic skill" },
				{ "se_summon_name", "Poseidons Sacrifice" },
				{ "se_summon_tooltip", "Reduces rengeration times while equipped." },
				{ "AxeFlametal_RtD", "Flametal WoodCutting Axe" },
				{ "AxeFlametal_desc_RtD", "Best axe for chopping wood" },
				{ "PickAxeFlametal_RtD", "Flametal Mining Axe" },
				{ "PickAxeFlametal_desc_RtD", "Best pickaxe to mine minerals" },
				{ "AshLandsStaff1_RtD", "AshStaff T1" },
				{ "AshLandsStaff1_desc_RtD", "A powerful Staff" },
				{ "AshLandsStaff2_RtD", "AshStaff T2" },
				{ "AshLandsStaff2_desc_RtD", "A powerful Staff" },
				{ "AshLandsStaff3_RtD", "AshStaff T3" },
				{ "AshLandsStaff3_desc_RtD", "A powerful Staff" },
				{ "BlackForestFireStaff_RtD", "Fire Staff" },
				{ "BlackForestFireStaff_desc_RtD", "A powerful Staff" },
				{ "BlackForestLightStaff_RtD", "Light Staff" },
				{ "BlackForestLightStaff_desc_RtD", "A powerful Staff" },
				{ "DeepNorthStaff1_RtD", "Arcane Staff T1" },
				{ "DeepNorthStaff1_desc_RtD", "A powerful Staff" },
				{ "DeepNorthStaff2_RtD", "Arcane Staff T2" },
				{ "DeepNorthStaff2_desc_RtD", "A powerful Staff" },
				{ "DeepNorthStaff3_RtD", "Arcane Staff T3" },
				{ "DeepNorthStaff3_desc_RtD", "A powerful Staff" },
				{ "MeadowsAirStaff_RtD", "Air Staff" },
				{ "MeadowsAirStaff_desc_RtD", "A powerful Staff" },
				{ "MeadowsLighteningStaff_RtD", "Lightning Staff" },
				{ "MeadowsLighteningStaff_desc_RtD", "A powerful Staff" },
				{ "MistlandsQuakeStaff_RtD", "Elemental Staff" },
				{ "MistlandsQuakeStaff_desc_RtD", "A powerful Staff" },
				{ "MountainIceStaff_RtD", "Ice Staff" },
				{ "MountainIceStaff_desc_RtD", "A powerful Staff" },
				{ "PlainsVoidStaff_RtD", "Void Staff" },
				{ "PlainsVoidStaff_desc_RtD", "A powerful Staff" },
				{ "SwampEarthStaff_RtD", "Earth Staff" },
				{ "SwampEarthStaff_desc_RtD", "A powerful Staff" },
				{ "AshLandsFireWand_RtD", "Fire Wand" },
				{ "AshLandsFireWand_desc_RtD", "Its warm to the touch" },
				{ "BlackForestLightningWand_RtD", "Lightning Wand" },
				{ "BlackForestLightningWand_desc_RtD", "A shocking amount of power" },
				{ "DeepNorthArcaneWand_RtD", "Arcane Wand" },
				{ "DeepNorthArcaneWand_desc_RtD", "Humming with power" },
				{ "MeadowsAirWand_RtD", "Air Wand" },
				{ "MeadowsAirWand_desc_RtD", "Ground you to the earth" },
				{ "MistlandsElementWand_RtD", "Element Wand" },
				{ "MistlandsElementWand_desc_RtD", "Ancient Magicks" },
				{ "MountainIceWand_RtD", "Ice Wand" },
				{ "MountainIceWand_desc_RtD", "Its cold to the touch" },
				{ "PlainsVoidWand_RtD", "Void Wand" },
				{ "PlainsVoidWand_desc_RtD", "Darkness surrounds the wand" },
				{ "SwampPoisonWand_RtD", "Poison Wand" },
				{ "SwampPoisonWand_desc_RtD", "Provides a slow death" },
				{ "SBlackSoup_RtD", "Swamp Soup" },
				{ "SBlackSoup_desc_RtD", "Probably won't make you sick." },
				{ "SBloodPudding_RtD", "Magic Blood Pudding." },
				{ "SBloodPudding_desc_RtD", "Questionable choice of food." },
				{ "SCarrotSoup_RtD", "Simple Soup" },
				{ "SCarrotSoup_desc_RtD", "New look, same great taste!" },
				{ "SEyeScream_RtD", "Magic Eyescream" },
				{ "SEyeScream_desc_RtD", "Cold enough to give you a chill brain freeze." },
				{ "SOnionSoup_RtD", "Cold Soup" },
				{ "SOnionSoup_desc_RtD", "Probably will give you bad breath." },
				{ "SQueensJam_RtD", "Magic Jam" },
				{ "SQueensJam_desc_RtD", "Dont drop the jar, it would be a sticky situation." },
				{ "SShockolateShake_RtD", "Shockolate Shake" },
				{ "SShockolateShake_desc_RtD", "Made using poison ingredients like fast food." },
				{ "STurnipStew_RtD", "Vegetable Stew" },
				{ "STurnipStew_desc_RtD", "At least it has Turnips." },
				{ "SE_ArcherAshLands_RtD", "Archey" },
				{ "SE_ArcherAshLands_desc_RtD", "Archery Set" },
				{ "SE_AssassinAshLands_RtD", "Stealthy" },
				{ "SE_AssassinAshLands_desc_RtD", "Assassins Set" },
				{ "SE_MageArmorAshLands_RtD", "Wizardry" },
				{ "SE_MageArmorAshLands_desc_RtD", "Mage Set" },
				{ "SE_MonkArmorAshLands_RtD", "Monk" },
				{ "SE_MonkArmorAshLands_desc_RtD", "" },
				{ "SE_WarriorArmorAshLands_RtD", "Warrior" },
				{ "SE_WarriorArmorAshLands_desc_RtD", "Warriors Set" },
				{ "SE_ArcherBlackForest_RtD", "Archey" },
				{ "SE_ArcherBlackForest_desc_RtD", "Archery Set" },
				{ "SE_AssassinBlackForest_RtD", "Stealthy" },
				{ "SE_AssassinBlackForest_desc_RtD", "Assassins Set" },
				{ "SE_MageArmorBlackForest_RtD", "Wizardry" },
				{ "SE_MageArmorBlackForest_desc_RtD", "Mage Set" },
				{ "SE_MonkArmorBlackForest_RtD", "Monk" },
				{ "SE_MonkArmorBlackForest_desc_RtD", "Monk Set" },
				{ "SE_WarriorArmorBlacKForest_RtD", "Warrior" },
				{ "SE_WarriorArmorBlacKForest_desc_RtD", "Warriors Set" },
				{ "SE_ArcherDeepNorth_RtD", "Archey" },
				{ "SE_ArcherDeepNorth_desc_RtD", "Archery Set" },
				{ "SE_AssassinDeepNorth_RtD", "Stealthy" },
				{ "SE_AssassinDeepNorth_desc_RtD", "Assassins Set" },
				{ "SE_MageArmorDeepNorth_RtD", "Wizardry" },
				{ "SE_MageArmorDeepNorth_desc_RtD", "Mage Set" },
				{ "SE_MonkArmorDeepNorth_RtD", "Monk" },
				{ "SE_MonkArmorDeepNorth_desc_RtD", "Monk Set" },
				{ "SE_WarriorArmorDeepNorth_RtD", "Warrior" },
				{ "SE_WarriorArmorDeepNorth_desc_RtD", "Warriors Set" },
				{ "SE_ArcherMistlands_RtD", "Archey" },
				{ "SE_ArcherMistlands_desc_RtD", "Archery Set" },
				{ "SE_AssassinMistlands_RtD", "Stealthy" },
				{ "SE_AssassinMistlands_desc_RtD", "Assassins Set" },
				{ "SE_MageArmorMistlands_RtD", "Wizardry" },
				{ "SE_MageArmorMistlands_desc_RtD", "Mage Set" },
				{ "SE_MonkArmorMistlands_RtD", "Monk" },
				{ "SE_MonkArmorMistlands_desc_RtD", "Monk Set" },
				{ "SE_WarriorArmorMistlands_RtD", "Warrior" },
				{ "SE_WarriorArmorMistlands_desc_RtD", "Warriors Set" },
				{ "SE_ArcherMountain_RtD", "Archey" },
				{ "SE_ArcherMountain_desc_RtD", "Archery Set" },
				{ "SE_AssassinMountain_RtD", "Stealthy" },
				{ "SE_AssassinMountain_desc_RtD", "Assassins Set" },
				{ "SE_MageArmorMountain_RtD", "Wizardry" },
				{ "SE_MageArmorMountain_desc_RtD", "Mage Set" },
				{ "SE_MonkArmorMountain_RtD", "Monk" },
				{ "SE_MonkArmorMountain_desc_RtD", "Monk Set" },
				{ "SE_WarriorArmorMountain_RtD", "Warrior" },
				{ "SE_WarriorArmorMountain_desc_RtD", "Warriors Set" },
				{ "SE_ArcherPlains_RtD", "Archey" },
				{ "SE_ArcherPlains_desc_RtD", "Archery Set" },
				{ "SE_AssassinPlains_RtD", "Stealthy" },
				{ "SE_AssassinPlains_desc_RtD", "Assassins Set" },
				{ "SE_MageArmorPlains_RtD", "Wizardry" },
				{ "SE_MageArmorPlains_desc_RtD", "Mage Set" },
				{ "SE_MonkArmorPlains_RtD", "Monk" },
				{ "SE_MonkArmorPlains_desc_RtD", "Monk Set" },
				{ "SE_WarriorArmorPlains_RtD", "Warrior" },
				{ "SE_WarriorArmorPlains_desc_RtD", "Warriors Set" },
				{ "SE_ArcherSwamp_RtD", "Archey" },
				{ "SE_ArcherSwamp_desc_RtD", "Archery Set" },
				{ "SE_AssassinSwamp_RtD", "Stealthy" },
				{ "SE_AssassinSwamp_desc_RtD", "Assassins Set" },
				{ "SE_MageArmorSwamp_RtD", "Wizardry" },
				{ "SE_MageArmorSwamp_desc_RtD", "Mage Set" },
				{ "SE_MonkArmorSwamp_RtD", "Monk" },
				{ "SE_MonkArmorSwamp_desc_RtD", "Monk Set" },
				{ "SE_WarriorArmorSwamp_RtD", "Warrior" },
				{ "SE_WarriorArmorSwamp_desc_RtD", "Warriors Set" },
				{ "SE_OdinsFists_RtD", "Blessed" },
				{ "SE_OdinsFists_desc_RtD", "Odins Strength" }
			});
		}

		public void CreateConfigs()
		{
			//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
			//IL_006c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0071: Unknown result type (might be due to invalid IL or missing references)
			//IL_0079: Unknown result type (might be due to invalid IL or missing references)
			//IL_0086: Expected O, but got Unknown
			//IL_0086: Unknown result type (might be due to invalid IL or missing references)
			//IL_0090: Expected O, but got Unknown
			//IL_00b5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ba: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c2: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d0: Expected O, but got Unknown
			//IL_00d0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00da: Expected O, but got Unknown
			//IL_00ff: 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_010c: Unknown result type (might be due to invalid IL or missing references)
			//IL_011a: Expected O, but got Unknown
			//IL_011a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0124: Expected O, but got Unknown
			//IL_0149: 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_0156: Unknown result type (might be due to invalid IL or missing references)
			//IL_0164: Expected O, but got Unknown
			//IL_0164: Unknown result type (might be due to invalid IL or missing references)
			//IL_016e: Expected O, but got Unknown
			//IL_0193: Unknown result type (might be due to invalid IL or missing references)
			//IL_0198: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a0: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ae: Expected O, but got Unknown
			//IL_01ae: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b8: Expected O, but got Unknown
			//IL_01dd: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e2: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ea: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f8: Expected O, but got Unknown
			//IL_01f8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0202: Expected O, but got Unknown
			//IL_0227: Unknown result type (might be due to invalid IL or missing references)
			//IL_022c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0234: Unknown result type (might be due to invalid IL or missing references)
			//IL_0242: Expected O, but got Unknown
			//IL_0242: Unknown result type (might be due to invalid IL or missing references)
			//IL_024c: Expected O, but got Unknown
			//IL_0271: Unknown result type (might be due to invalid IL or missing references)
			//IL_0276: Unknown result type (might be due to invalid IL or missing references)
			//IL_027e: Unknown result type (might be due to invalid IL or missing references)
			//IL_028c: Expected O, but got Unknown
			//IL_028c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0296: Expected O, but got Unknown
			//IL_02bb: Unknown result type (might be due to invalid IL or missing references)
			//IL_02c0: 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_02d6: Expected O, but got Unknown
			//IL_02d6: Unknown result type (might be due to invalid IL or missing references)
			//IL_02e0: Expected O, but got Unknown
			//IL_0305: Unknown result type (might be due to invalid IL or missing references)
			//IL_030a: 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_0320: Expected O, but got Unknown
			//IL_0320: Unknown result type (might be due to invalid IL or missing references)
			//IL_032a: 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_035c: Unknown result type (might be due to invalid IL or missing references)
			//IL_036a: Expected O, but got Unknown
			//IL_036a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0374: Expected O, but got Unknown
			//IL_0399: Unknown result type (might be due to invalid IL or missing references)
			//IL_039e: Unknown result type (might be due to invalid IL or missing references)
			//IL_03a6: Unknown result type (might be due to invalid IL or missing references)
			//IL_03b4: Expected O, but got Unknown
			//IL_03b4: Unknown result type (might be due to invalid IL or missing references)
			//IL_03be: Expected O, but got Unknown
			//IL_03e3: Unknown result type (might be due to invalid IL or missing references)
			//IL_03e8: Unknown result type (might be due to invalid IL or missing references)
			//IL_03f0: Unknown result type (might be due to invalid IL or missing references)
			//IL_03fe: Expected O, but got Unknown
			//IL_03fe: Unknown result type (might be due to invalid IL or missing references)
			//IL_0408: Expected O, but got Unknown
			//IL_042d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0432: Unknown result type (might be due to invalid IL or missing references)
			//IL_043a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0448: Expected O, but got Unknown
			//IL_0448: Unknown result type (might be due to invalid IL or missing references)
			//IL_0452: Expected O, but got Unknown
			//IL_0477: Unknown result type (might be due to invalid IL or missing references)
			//IL_047c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0485: Expected O, but got Unknown
			//IL_0485: Unknown result type (might be due to invalid IL or missing references)
			//IL_048f: Expected O, but got Unknown
			try
			{
				((BaseUnityPlugin)this).Config.SaveOnConfigSet = true;
				ModEnable = ((BaseUnityPlugin)this).Config.Bind<bool>("RtDItems Enable", "Enable", true, new ConfigDescription("Enable or Disable the entire mod.", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
				{
					IsAdminOnly = true
				} }));
				FoodEnable = ((BaseUnityPlugin)this).Config.Bind<bool>("Eitr Food", "Enable", true, new ConfigDescription("Enable or Disable early game Eitr food.  You can edit recipes via JSON.", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
				{
					IsAdminOnly = true,
					Order = 5
				} }));
				MagicEnable = ((BaseUnityPlugin)this).Config.Bind<bool>("Magic Progression", "Enable", true, new ConfigDescription("Enable or Disable early game Magic staffs, Magic Wands, and Healing Staffs with unique spells. Requires RtDSouls, RtDMonsters, & RtDBiomes for end game.  You can edit recipes via JSON.", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
				{
					IsAdminOnly = true,
					Order = 10
				} }));
				MeadowsEnable = ((BaseUnityPlugin)this).Config.Bind<bool>("Meadows", "Enable", true, new ConfigDescription("Enable or Disable Meadows Weapons. Requires RtDSouls. You can edit recipes via JSON.", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
				{
					IsAdminOnly = true,
					Order = 15
				} }));
				BlackForestEnable = ((BaseUnityPlugin)this).Config.Bind<bool>("BlackForest", "Enable", true, new ConfigDescription("Enable or Disable BlackForest Armor & Weapons. Requires RtDSouls. You can edit recipes via JSON.", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
				{
					IsAdminOnly = true,
					Order = 20
				} }));
				SwampEnable = ((BaseUnityPlugin)this).Config.Bind<bool>("Swamp", "Enable", true, new ConfigDescription("Enable or Disable Swamp Armor & Weapons. Requires RtDSouls. You can edit recipes via JSON.", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
				{
					IsAdminOnly = true,
					Order = 25
				} }));
				MountainEnable = ((BaseUnityPlugin)this).Config.Bind<bool>("Mountain", "Enable", true, new ConfigDescription("Enable or Disable Mountain Armor & Weapons. Requires RtDSouls. You can edit recipes via JSON.", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
				{
					IsAdminOnly = true,
					Order = 30
				} }));
				PlainsEnable = ((BaseUnityPlugin)this).Config.Bind<bool>("Plains", "Enable", true, new ConfigDescription("Enable or Disable Plains Armor & Weapons. Requires RtDSouls. You can edit recipes via JSON.", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
				{
					IsAdminOnly = true,
					Order = 35
				} }));
				MistlandsEnable = ((BaseUnityPlugin)this).Config.Bind<bool>("Mistlands", "Enable", true, new ConfigDescription("Enable or Disable Mistlands Armor & Weapons. Requires RtDSouls. You can edit recipes via JSON.", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
				{
					IsAdminOnly = true,
					Order = 40
				} }));
				AshlandsEnable = ((BaseUnityPlugin)this).Config.Bind<bool>("Ashlands", "Enable", true, new ConfigDescription("Enable or Disable AshLands Armor & Weapons. Also includes Tools to farm DeepNorth materials. Requires RtDSouls, RtDMonsters, & RtDBiomes for end game.  You can edit recipes via JSON.", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
				{
					IsAdminOnly = true,
					Order = 45
				} }));
				DeepNorthEnable = ((BaseUnityPlugin)this).Config.Bind<bool>("DeepNorth", "Enable", true, new ConfigDescription("Enable or Disable DeepNorth Armor & Weapons. Requires RtDSouls, RtDMonsters, & RtDBiomes for end game. You can edit recipes via JSON.", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
				{
					IsAdminOnly = true,
					Order = 50
				} }));
				OceanEnable = ((BaseUnityPlugin)this).Config.Bind<bool>("Ocean", "Enable", false, new ConfigDescription("Enable or Disable Ocean Equipment. Disabled by default, requires RtDOceans. You can edit recipes via JSON.", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
				{
					IsAdminOnly = true,
					Order = 50
				} }));
				VanillaSetBonuses = ((BaseUnityPlugin)this).Config.Bind<bool>("Set Bonuses", "Enable", true, new ConfigDescription("Enable or Disable. Adds Set Bonuses to vanilla armor that do not have a Set Bonus. Such as Bronze Armor, Silver, Padded, and modifies some existing Set Bonuses.", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
				{
					IsAdminOnly = true,
					Order = 50
				} }));
				JSONEnable = ((BaseUnityPlugin)this).Config.Bind<bool>("Default Recipes", "Enable", true, new ConfigDescription("Enable or Disable. Enabled by default. Set to false to use custom recipes. Make sure to ", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
				{
					IsAdminOnly = true,
					Order = 55
				} }));
				JSONCustomEnable = ((BaseUnityPlugin)this).Config.Bind<bool>("Custom Recipes", "Enable", false, new ConfigDescription("Enable or Disable. Disabled by default. Set to true to use custom recipe & make sure default is set to false. Place custom recipes within configs: Soloredis/RtDItems/Custom/Recipes. Example JSON can be found within Custom/Recipes or simply copy default and change values.", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
				{
					IsAdminOnly = true,
					Order = 60
				} }));
				LoggingEnable = ((BaseUnityPlugin)this).Config.Bind<bool>("RtdItems Logging", "Enable", true, new ConfigDescription("Enables logging.", (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 test");
					}
					else
					{
						Logger.LogMessage((object)"Config sync event received for test");
					}
				};
			}
			catch (Exception arg)
			{
				((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while adding configuration values: {arg}");
			}
		}

		private void ModifyItems()
		{
			try
			{
				StatusEffect prefab = Cache.GetPrefab<StatusEffect>("SE_WarriorArmorBlacKForest_RtD");
				ItemDrop prefab2 = Cache.GetPrefab<ItemDrop>("HelmetBronze");
				ItemDrop prefab3 = Cache.GetPrefab<ItemDrop>("ArmorBronzeChest");
				ItemDrop prefab4 = Cache.GetPrefab<ItemDrop>("ArmorBronzeLegs");
				prefab2.m_itemData.m_shared.m_setName = "BronzeSE";
				prefab2.m_itemData.m_shared.m_setSize = 3;
				prefab2.m_itemData.m_shared.m_setStatusEffect = prefab;
				prefab3.m_itemData.m_shared.m_setName = "BronzeSE";
				prefab3.m_itemData.m_shared.m_setSize = 3;
				prefab3.m_itemData.m_shared.m_setStatusEffect = prefab;
				prefab4.m_itemData.m_shared.m_setName = "BronzeSE";
				prefab4.m_itemData.m_shared.m_setSize = 3;
				prefab4.m_itemData.m_shared.m_setStatusEffect = prefab;
				StatusEffect prefab5 = Cache.GetPrefab<StatusEffect>("SE_AssassinBlackForest_RtD");
				ItemDrop prefab6 = Cache.GetPrefab<ItemDrop>("HelmetTrollLeather");
				ItemDrop prefab7 = Cache.GetPrefab<ItemDrop>("ArmorTrollLeatherChest");
				ItemDrop prefab8 = Cache.GetPrefab<ItemDrop>("ArmorTrollLeatherLegs");
				prefab6.m_itemData.m_shared.m_setName = "TrollSE";
				prefab6.m_itemData.m_shared.m_setSize = 3;
				prefab6.m_itemData.m_shared.m_setStatusEffect = prefab5;
				prefab7.m_itemData.m_shared.m_setName = "TrollSE";
				prefab7.m_itemData.m_shared.m_setSize = 3;
				prefab7.m_itemData.m_shared.m_setStatusEffect = prefab5;
				prefab8.m_itemData.m_shared.m_setName = "TrollSE";
				prefab8.m_itemData.m_shared.m_setSize = 3;
				prefab8.m_itemData.m_shared.m_setStatusEffect = prefab5;
				StatusEffect prefab9 = Cache.GetPrefab<StatusEffect>("SE_WarriorArmorSwamp_RtD");
				ItemDrop prefab10 = Cache.GetPrefab<ItemDrop>("HelmetIron");
				ItemDrop prefab11 = Cache.GetPrefab<ItemDrop>("ArmorIronChest");
				ItemDrop prefab12 = Cache.GetPrefab<ItemDrop>("ArmorIronLegs");
				prefab10.m_itemData.m_shared.m_setName = "IronSE";
				prefab10.m_itemData.m_shared.m_setSize = 3;
				prefab10.m_itemData.m_shared.m_setStatusEffect = prefab9;
				prefab11.m_itemData.m_shared.m_setName = "IronSE";
				prefab11.m_itemData.m_shared.m_setSize = 3;
				prefab11.m_itemData.m_shared.m_setStatusEffect = prefab9;
				prefab12.m_itemData.m_shared.m_setName = "IronSE";
				prefab12.m_itemData.m_shared.m_setSize = 3;
				prefab12.m_itemData.m_shared.m_setStatusEffect = prefab9;
				StatusEffect prefab13 = Cache.GetPrefab<StatusEffect>("SE_ArcherSwamp_RtD");
				ItemDrop prefab14 = Cache.GetPrefab<ItemDrop>("HelmetRoot");
				ItemDrop prefab15 = Cache.GetPrefab<ItemDrop>("ArmorRootChest");
				ItemDrop prefab16 = Cache.GetPrefab<ItemDrop>("ArmorRootLegs");
				prefab14.m_itemData.m_shared.m_setName = "RootSE";
				prefab14.m_itemData.m_shared.m_setSize = 3;
				prefab14.m_itemData.m_shared.m_setStatusEffect = prefab13;
				prefab15.m_itemData.m_shared.m_setName = "RootSE";
				prefab15.m_itemData.m_shared.m_setSize = 3;
				prefab15.m_itemData.m_shared.m_setStatusEffect = prefab13;
				prefab16.m_itemData.m_shared.m_setName = "RootSE";
				prefab16.m_itemData.m_shared.m_setSize = 3;
				prefab16.m_itemData.m_shared.m_setStatusEffect = prefab13;
				StatusEffect prefab17 = Cache.GetPrefab<StatusEffect>("SE_WarriorArmorMountain_RtD");
				ItemDrop prefab18 = Cache.GetPrefab<ItemDrop>("HelmetDrake");
				ItemDrop prefab19 = Cache.GetPrefab<ItemDrop>("ArmorWolfChest");
				ItemDrop prefab20 = Cache.GetPrefab<ItemDrop>("ArmorWolfLegs");
				prefab18.m_itemData.m_shared.m_setName = "SilverSE";
				prefab18.m_itemData.m_shared.m_setSize = 3;
				prefab18.m_itemData.m_shared.m_setStatusEffect = prefab17;
				prefab19.m_itemData.m_shared.m_setName = "SilverSE";
				prefab19.m_itemData.m_shared.m_setSize = 3;
				prefab19.m_itemData.m_shared.m_setStatusEffect = prefab17;
				prefab20.m_itemData.m_shared.m_setName = "SilverSE";
				prefab20.m_itemData.m_shared.m_setSize = 3;
				prefab20.m_itemData.m_shared.m_setStatusEffect = prefab17;
				StatusEffect prefab21 = Cache.GetPrefab<StatusEffect>("SE_WarriorArmorPlains_RtD");
				ItemDrop prefab22 = Cache.GetPrefab<ItemDrop>("HelmetPadded");
				ItemDrop prefab23 = Cache.GetPrefab<ItemDrop>("ArmorPaddedCuirass");
				ItemDrop prefab24 = Cache.GetPrefab<ItemDrop>("ArmorPaddedGreaves");
				prefab22.m_itemData.m_shared.m_setName = "BlackMetalSE";
				prefab22.m_itemData.m_shared.m_setSize = 3;
				prefab22.m_itemData.m_shared.m_setStatusEffect = prefab21;
				prefab23.m_itemData.m_shared.m_setName = "BlackMetalSE";
				prefab23.m_itemData.m_shared.m_setSize = 3;
				prefab23.m_itemData.m_shared.m_setStatusEffect = prefab21;
				prefab24.m_itemData.m_shared.m_setName = "BlackMetalSE";
				prefab24.m_itemData.m_shared.m_setSize = 3;
				prefab24.m_itemData.m_shared.m_setStatusEffect = prefab21;
				StatusEffect prefab25 = Cache.GetPrefab<StatusEffect>("SE_WarriorArmorMistlands_RtD");
				ItemDrop prefab26 = Cache.GetPrefab<ItemDrop>("HelmetCarapace");
				ItemDrop prefab27 = Cache.GetPrefab<ItemDrop>("ArmorCarapaceChest");
				ItemDrop prefab28 = Cache.GetPrefab<ItemDrop>("ArmorCarapaceLegs");
				prefab26.m_itemData.m_shared.m_setName = "CarapaceSE";
				prefab26.m_itemData.m_shared.m_setSize = 3;
				prefab26.m_itemData.m_shared.m_setStatusEffect = prefab25;
				prefab27.m_itemData.m_shared.m_setName = "CarapaceSE";
				prefab27.m_itemData.m_shared.m_setSize = 3;
				prefab27.m_itemData.m_shared.m_setStatusEffect = prefab25;
				prefab28.m_itemData.m_shared.m_setName = "CarapaceSE";
				prefab28.m_itemData.m_shared.m_setSize = 3;
				prefab28.m_itemData.m_shared.m_setStatusEffect = prefab25;
				StatusEffect prefab29 = Cache.GetPrefab<StatusEffect>("SE_MageArmorMistlands_RtD");
				ItemDrop prefab30 = Cache.GetPrefab<ItemDrop>("HelmetMage");
				ItemDrop prefab31 = Cache.GetPrefab<ItemDrop>("ArmorMageChest");
				ItemDrop prefab32 = Cache.GetPrefab<ItemDrop>("ArmorMageLegs");
				prefab30.m_itemData.m_shared.m_setName = "WeaveSE";
				prefab30.m_itemData.m_shared.m_setSize = 3;
				prefab30.m_itemData.m_shared.m_setStatusEffect = prefab29;
				prefab31.m_itemData.m_shared.m_setName = "WeaveSE";
				prefab31.m_itemData.m_shared.m_setSize = 3;
				prefab31.m_itemData.m_shared.m_setStatusEffect = prefab29;
				prefab32.m_itemData.m_shared.m_setName = "WeaveSE";
				prefab32.m_itemData.m_shared.m_setSize = 3;
				prefab32.m_itemData.m_shared.m_setStatusEffect = prefab29;
			}
			catch (Exception arg)
			{
				((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while modifing items: {arg}");
			}
			finally
			{
				PrefabManager.OnVanillaPrefabsAvailable -= ModifyItems;
			}
		}

		private void AddSFX()
		{
			//IL_0033: Unknown result type (might be due to invalid IL or missing references)
			//IL_003a: Expected O, but got Unknown
			try
			{
				string[] sFXList = SFXList2;
				foreach (string text in sFXList)
				{
					GameObject val = MyAssets.LoadAsset<GameObject>(text);
					if ((Object)(object)val != (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 FixSFX2()
		{
			try
			{
				AudioSource prefab = Cache.GetPrefab<AudioSource>("sfx_arrow_hit");
				string[] sFXList = SFXList2;
				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 -= FixSFX2;
			}
		}

		public void AddAttackEffects()
		{
			//IL_0030: Unknown result type (might be due to invalid IL or missing references)
			//IL_0037: Expected O, but got Unknown
			try
			{
				string[] attackStatusEffectList = AttackStatusEffectList;
				foreach (string text in attackStatusEffectList)
				{
					SE_Harpooned val = MyAssets.LoadAsset<SE_Harpooned>(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}");
			}
		}

		public void AddSEStatsEffects()
		{
			//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);
						if (LoggingEnable.Value)
						{
							((BaseUnityPlugin)this).Logger.LogMessage((object)("Added: " + ((object)val)?.ToString() + " to the Object database"));
						}
					}
				}
			}
			catch (Exception arg)
			{
				((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while adding SE_Stats Effects: {arg}");
			}
		}

		private void AddPrefabs()
		{
			//IL_0033: Unknown result type (might be due to invalid IL or missing references)
			//IL_003a: 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)
					{
						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 AddItems()
		{
			//IL_0033: Unknown result type (might be due to invalid IL or missing references)
			//IL_003a: Expected O, but got Unknown
			try
			{
				string[] itemsList = ItemsList;
				foreach (string text in itemsList)
				{
					GameObject val = MyAssets.LoadAsset<GameObject>(text);
					if ((Object)(object)val != (Object)null)
					{
						CustomItem val2 = new CustomItem(val, true);
						ItemManager.Instance.AddItem(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 AddMonsterItems()
		{
			//IL_0033: Unknown result type (might be due to invalid IL or missing references)
			//IL_003a: Expected O, but got Unknown
			try
			{
				string[] monsterItemList = MonsterItemList;
				foreach (string text in monsterItemList)
				{
					GameObject val = MyAssets.LoadAsset<GameObject>(text);
					if ((Object)(object)val != (Object)null)
					{
						CustomItem val2 = new CustomItem(val, true);
						ItemManager.Instance.AddItem(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 AddMagic()
		{
			//IL_0033: Unknown result type (might be due to invalid IL or missing references)
			//IL_003a: Expected O, but got Unknown
			try
			{
				string[] magicList = MagicList;
				foreach (string text in magicList)
				{
					GameObject val = MyAssets.LoadAsset<GameObject>(text);
					if ((Object)(object)val != (Object)null)
					{
						CustomItem val2 = new CustomItem(val, true);
						ItemManager.Instance.AddItem(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 AddOceanItems()
		{
			//IL_0033: Unknown result type (might be due to invalid IL or missing references)
			//IL_003a: Expected O, but got Unknown
			try
			{
				string[] oceanList = OceanList;
				foreach (string text in oceanList)
				{
					GameObject val = MyAssets.LoadAsset<GameObject>(text);
					if ((Object)(object)val != (Object)null)
					{
						CustomItem val2 = new CustomItem(val, true);
						ItemManager.Instance.AddItem(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 AddMeadowsItems()
		{
			//IL_0033: Unknown result type (might be due to invalid IL or missing references)
			//IL_003a: Expected O, but got Unknown
			try
			{
				string[] meadowsList = MeadowsList;
				foreach (string text in meadowsList)
				{
					GameObject val = MyAssets.LoadAsset<GameObject>(text);
					if ((Object)(object)val != (Object)null)
					{
						CustomItem val2 = new CustomItem(val, true);
						ItemManager.Instance.AddItem(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 AddBlackForestItems()
		{
			//IL_0033: Unknown result type (might be due to invalid IL or missing references)
			//IL_003a: Expected O, but got Unknown
			try
			{
				string[] blackForestList = BlackForestList;
				foreach (string text in blackForestList)
				{
					GameObject val = MyAssets.LoadAsset<GameObject>(text);
					if ((Object)(object)val != (Object)null)
					{
						CustomItem val2 = new CustomItem(val, true);
						ItemManager.Instance.AddItem(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 AddSwampItems()
		{
			//IL_0033: Unknown result type (might be due to invalid IL or missing references)
			//IL_003a: Expected O, but got Unknown
			try
			{
				string[] swampList = SwampList;
				foreach (string text in swampList)
				{
					GameObject val = MyAssets.LoadAsset<GameObject>(text);
					if ((Object)(object)val != (Object)null)
					{
						CustomItem val2 = new CustomItem(val, true);
						ItemManager.Instance.AddItem(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 AddMountainItems()
		{
			//IL_0033: Unknown result type (might be due to invalid IL or missing references)
			//IL_003a: Expected O, but got Unknown
			try
			{
				string[] mountainList = MountainList;
				foreach (string text in mountainList)
				{
					GameObject val = MyAssets.LoadAsset<GameObject>(text);
					if ((Object)(object)val != (Object)null)
					{
						CustomItem val2 = new CustomItem(val, true);
						ItemManager.Instance.AddItem(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 AddPlainsItems()
		{
			//IL_0033: Unknown result type (might be due to invalid IL or missing references)
			//IL_003a: Expected O, but got Unknown
			try
			{
				string[] plainsList = PlainsList;
				foreach (string text in plainsList)
				{
					GameObject val = MyAssets.LoadAsset<GameObject>(text);
					if ((Object)(object)val != (Object)null)
					{
						CustomItem val2 = new CustomItem(val, true);
						ItemManager.Instance.AddItem(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 AddMistlandsItems()
		{
			//IL_0033: Unknown result type (might be due to invalid IL or missing references)
			//IL_003a: Expected O, but got Unknown
			try
			{
				string[] mistlandsList = MistlandsList;
				foreach (string text in mistlandsList)
				{
					GameObject val = MyAssets.LoadAsset<GameObject>(text);
					if ((Object)(object)val != (Object)null)
					{
						CustomItem val2 = new CustomItem(val, true);
						ItemManager.Instance.AddItem(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 AddAshLandItems()
		{
			//IL_0033: Unknown result type (might be due to invalid IL or missing references)
			//IL_003a: Expected O, but got Unknown
			try
			{
				string[] ashLandsList = AshLandsList;
				foreach (string text in ashLandsList)
				{
					GameObject val = MyAssets.LoadAsset<GameObject>(text);
					if ((Object)(object)val != (Object)null)
					{
						CustomItem val2 = new CustomItem(val, true);
						ItemManager.Instance.AddItem(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 AddDeepNorthItems()
		{
			//IL_0033: Unknown result type (might be due to invalid IL or missing references)
			//IL_003a: Expected O, but got Unknown
			try
			{
				string[] deepNorthList = DeepNorthList;
				foreach (string text in deepNorthList)
				{
					GameObject val = MyAssets.LoadAsset<GameObject>(text);
					if ((Object)(object)val != (Object)null)
					{
						CustomItem val2 = new CustomItem(val, true);
						ItemManager.Instance.AddItem(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 AddTranslationsFromJson()
		{
			try
			{
				Localization = LocalizationManager.Instance.GetLocalization();
				string[] files = Directory.GetFiles(Path.Combine(Paths.ConfigPath, "Soloredis/RtDItems/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 AddRecipesFromJson()
		{
			try
			{
				string[] files = Directory.GetFiles(Path.Combine(Paths.ConfigPath, "Soloredis/RtDItems/Recipes"), "*.json", SearchOption.AllDirectories);
				foreach (string text in files)
				{
					ItemManager.Instance.AddRecipesFromJson(text);
					if (LoggingEnable.Value)
					{
						((BaseUnityPlugin)this).Logger.LogMessage((object)("Added recipes from: " + text));
					}
				}
			}
			catch (Exception arg)
			{
				((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while adding recipes from json files due to missing rtd mod: {arg}");
			}
			finally
			{
				PrefabManager.OnPrefabsRegistered -= AddRecipesFromJson;
			}
		}

		private void AddCustomRecipesFromJson()
		{
			try
			{
				string[] files = Directory.GetFiles(Path.Combine(Paths.ConfigPath, "Soloredis/RtDItems/Custom/Recipes"), "*.json", SearchOption.AllDirectories);
				foreach (string text in files)
				{
					ItemManager.Instance.AddRecipesFromJson(text);
					if (LoggingEnable.Value)
					{
						((BaseUnityPlugin)this).Logger.LogMessage((object)("Added recipes from: " + text));
					}
				}
			}
			catch (Exception arg)
			{
				((BaseUnityPlugin)this).Logger.LogWarning((object)$"Exception caught while adding recipes from json files due to misconfigured custom JSON recipe: {arg}");
			}
			finally
			{
				PrefabManager.OnPrefabsRegistered -= AddCustomRecipesFromJson;
			}
		}

		private void AddSummons()
		{
			//IL_0033: Unknown result type (might be due to invalid IL or missing references)
			//IL_003a: Expected O, but got Unknown
			try
			{
				string[] summonList = SummonList;
				foreach (string text in summonList)
				{
					GameObject val = MyAssets.LoadAsset<GameObject>(text);
					if ((Object)(object)val != (Object)null)
					{
						CustomCreature val2 = new CustomCreature(val, true);
						CreatureManager.Instance.AddCreature(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}");
			}
		}
	}
}