Decompiled source of DragoonCapes v1.3.1

plugins/DragoonCapes.dll

Decompiled a month ago
using System;
using System.Diagnostics;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Configuration;
using DragoonCapes;
using HarmonyLib;
using Jotunn;
using Jotunn.Configs;
using Jotunn.Entities;
using Jotunn.Managers;
using Jotunn.Utils;
using UnityEngine;
using UnityEngine.SceneManagement;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("e3243d22-4307-4008-ba36-9f326008cde5")]
[assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("0.0.0.0")]
[HarmonyPatch(typeof(ObjectDB))]
internal static class PatchObjectDB
{
	private static SE_Stats TrollCapeStatus = ScriptableObject.CreateInstance<SE_Stats>();

	private static SE_Stats LoxCapeStatus = ScriptableObject.CreateInstance<SE_Stats>();

	private static SE_Stats WolfCapeStatus = ScriptableObject.CreateInstance<SE_Stats>();

	private static SE_Stats DeerCapeStatus = ScriptableObject.CreateInstance<SE_Stats>();

	private static SE_Stats LinenCapeStatus = ScriptableObject.CreateInstance<SE_Stats>();

	private static readonly string[] trollSet = new string[3] { "HelmetTrollLeather", "ArmorTrollLeatherChest", "ArmorTrollLeatherLegs" };

	[HarmonyPatch("Awake")]
	[HarmonyPrefix]
	public static void Show_Postfix(ObjectDB __instance)
	{
		//IL_0001: Unknown result type (might be due to invalid IL or missing references)
		//IL_0006: Unknown result type (might be due to invalid IL or missing references)
		//IL_0081: Unknown result type (might be due to invalid IL or missing references)
		//IL_008c: 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_0118: Unknown result type (might be due to invalid IL or missing references)
		Scene activeScene = SceneManager.GetActiveScene();
		if (((Scene)(ref activeScene)).name != "main" || !global::DragoonCapes.DragoonCapes.Instance.vanillaCapeEffectsEnabled.Value)
		{
			return;
		}
		((Object)WolfCapeStatus).name = "$status_wolfcape";
		((StatusEffect)WolfCapeStatus).m_name = "$status_wolfcape";
		((StatusEffect)WolfCapeStatus).m_tooltip = "$status_wolfcape_desc";
		((StatusEffect)WolfCapeStatus).m_startMessage = "$status_wolfcape_msg";
		WolfCapeStatus.m_skillLevel = (SkillType)5;
		WolfCapeStatus.m_skillLevel2 = (SkillType)4;
		WolfCapeStatus.m_skillLevelModifier = (WolfCapeStatus.m_skillLevelModifier2 = global::DragoonCapes.DragoonCapes.Instance.WolfSkill.Value);
		__instance.m_StatusEffects.Add((StatusEffect)(object)WolfCapeStatus);
		((Object)DeerCapeStatus).name = "$status_deercape";
		((StatusEffect)DeerCapeStatus).m_name = "$status_deercape";
		((StatusEffect)DeerCapeStatus).m_tooltip = "$status_deercape_desc";
		((StatusEffect)DeerCapeStatus).m_startMessage = "$status_deercape_msg";
		DeerCapeStatus.m_skillLevel = (SkillType)8;
		DeerCapeStatus.m_skillLevel2 = (SkillType)14;
		DeerCapeStatus.m_skillLevelModifier = (DeerCapeStatus.m_skillLevelModifier2 = global::DragoonCapes.DragoonCapes.Instance.DeerSkill.Value);
		DeerCapeStatus.m_speedModifier = global::DragoonCapes.DragoonCapes.Instance.DeerMoveSpeed.Value;
		__instance.m_StatusEffects.Add((StatusEffect)(object)DeerCapeStatus);
		((Object)LoxCapeStatus).name = "$status_loxcape";
		((StatusEffect)LoxCapeStatus).m_name = "$status_loxcape";
		((StatusEffect)LoxCapeStatus).m_tooltip = "$status_loxcape_desc1\n$status_loxcape_desc2<color=orange>+" + (global::DragoonCapes.DragoonCapes.Instance.LoxHealth.Value - 1f) * 100f + "%</color>\n$status_loxcape_desc3<color=orange>" + global::DragoonCapes.DragoonCapes.Instance.LoxHealing.Value + " $status_loxcape_desc4</color>";
		((StatusEffect)LoxCapeStatus).m_startMessage = "$status_loxcape_msg";
		LoxCapeStatus.m_tickInterval = global::DragoonCapes.DragoonCapes.Instance.LoxHealInterval.Value;
		LoxCapeStatus.m_healthPerTick = global::DragoonCapes.DragoonCapes.Instance.LoxHealing.Value;
		((StatusEffect)LoxCapeStatus).m_category = "LoxCape";
		__instance.m_StatusEffects.Add((StatusEffect)(object)LoxCapeStatus);
		((Object)LinenCapeStatus).name = "$status_linencape";
		((StatusEffect)LinenCapeStatus).m_name = "$status_linencape";
		((StatusEffect)LinenCapeStatus).m_tooltip = "$status_linencape_desc1\n$status_linencape_desc2<color=orange>+" + global::DragoonCapes.DragoonCapes.Instance.LinenStagger.Value * 100f + "%</color>\n$status_linencape_desc3<color=orange>" + global::DragoonCapes.DragoonCapes.Instance.LinenProjs.Value + "</color>\n$status_linencape_desc4<color=orange>" + global::DragoonCapes.DragoonCapes.Instance.LinenDamageMult.Value * 100f + "%</color>";
		((StatusEffect)LinenCapeStatus).m_startMessage = "$status_linencape_msg";
		((StatusEffect)LinenCapeStatus).m_category = "LinenCape";
		__instance.m_StatusEffects.Add((StatusEffect)(object)LinenCapeStatus);
		((Object)TrollCapeStatus).name = "$status_trollcape";
		((StatusEffect)TrollCapeStatus).m_name = "$status_trollcape";
		((StatusEffect)TrollCapeStatus).m_tooltip = "$status_trollcape_desc1\n$status_trollcape_desc2<color=orange>" + global::DragoonCapes.DragoonCapes.Instance.TrollDamageMult.Value * 100f + "%</color>";
		((StatusEffect)TrollCapeStatus).m_startMessage = "$status_trollcape_msg";
		((StatusEffect)TrollCapeStatus).m_category = "TrollCape";
		__instance.m_StatusEffects.Add((StatusEffect)(object)TrollCapeStatus);
		foreach (GameObject item in __instance.m_items)
		{
			if (((Object)item).name == "CapeDeerHide")
			{
				item.GetComponent<ItemDrop>().m_itemData.m_shared.m_equipStatusEffect = (StatusEffect)(object)DeerCapeStatus;
			}
			else if (((Object)item).name == "CapeWolf")
			{
				item.GetComponent<ItemDrop>().m_itemData.m_shared.m_armor = global::DragoonCapes.DragoonCapes.Instance.WolfArmor.Value;
				item.GetComponent<ItemDrop>().m_itemData.m_shared.m_armorPerLevel = global::DragoonCapes.DragoonCapes.Instance.WolfArmorPerLevel.Value;
				item.GetComponent<ItemDrop>().m_itemData.m_shared.m_equipStatusEffect = (StatusEffect)(object)WolfCapeStatus;
			}
			else if (((Object)item).name == "CapeLox")
			{
				item.GetComponent<ItemDrop>().m_itemData.m_shared.m_equipStatusEffect = (StatusEffect)(object)LoxCapeStatus;
			}
			else if (((Object)item).name == "CapeLinen")
			{
				item.GetComponent<ItemDrop>().m_itemData.m_shared.m_equipStatusEffect = (StatusEffect)(object)LinenCapeStatus;
			}
			else if (((Object)item).name == "CapeTrollHide")
			{
				item.GetComponent<ItemDrop>().m_itemData.m_shared.m_equipStatusEffect = (StatusEffect)(object)TrollCapeStatus;
				item.GetComponent<ItemDrop>().m_itemData.m_shared.m_setName = string.Empty;
				item.GetComponent<ItemDrop>().m_itemData.m_shared.m_setSize = 0;
				item.GetComponent<ItemDrop>().m_itemData.m_shared.m_setStatusEffect = null;
			}
			else if (trollSet.Contains(((Object)item).name))
			{
				item.GetComponent<ItemDrop>().m_itemData.m_shared.m_setSize = 3;
			}
		}
	}
}
namespace DragoonCapes;

[HarmonyPatch]
internal class AdventurerCape
{
	[HarmonyPostfix]
	[HarmonyPatch(typeof(SE_Rested), "CalculateComfortLevel", new Type[] { typeof(Player) })]
	private static void MoreComfort_Postfix(ref int __result, ref Player player)
	{
		if (!((Object)(object)player == (Object)null) && !((Character)player).IsDead() && ((Character)player).GetSEMan().HaveStatusEffectCategory("adventurerCape"))
		{
			__result += DragoonCapes.Instance.AdventurerComfortBonus.Value;
		}
	}

	[HarmonyPostfix]
	[HarmonyPatch(typeof(Humanoid), "UnequipItem", null)]
	private static void Unrest_Postfix(ref ItemData item)
	{
		Player localPlayer = Player.m_localPlayer;
		if (item != null && !((Object)(object)localPlayer == (Object)null) && !((Character)localPlayer).IsDead() && !((Object)(object)item.m_shared.m_equipStatusEffect == (Object)null) && item.m_shared.m_equipStatusEffect.m_category == "adventurerCape" && DragoonCapes.Instance.AdventurerComfortBonus.Value > 0 && ((Character)localPlayer).GetSEMan().HaveStatusEffect("Rested"))
		{
			((Character)localPlayer).GetSEMan().RemoveStatusEffect("Resting".GetHashCode(), false);
			StatusEffect statusEffect = ((Character)localPlayer).GetSEMan().GetStatusEffect("Rested".GetHashCode());
			statusEffect.m_time += (float)DragoonCapes.Instance.AdventurerComfortBonus.Value * 60f;
		}
	}

	[HarmonyPostfix]
	[HarmonyPatch(typeof(Bed), "CheckExposure")]
	private static void SleepRoof_Postfix(ref bool __result)
	{
		Player localPlayer = Player.m_localPlayer;
		if (!((Object)(object)localPlayer == (Object)null) && !((Character)localPlayer).IsDead() && ((Character)localPlayer).GetSEMan().HaveStatusEffectCategory("adventurerCape") && DragoonCapes.Instance.AdventurerEffect.Value)
		{
			__result = true;
		}
	}

	[HarmonyPostfix]
	[HarmonyPatch(typeof(Bed), "CheckFire")]
	private static void SleepFire_Prefix(ref bool __result)
	{
		Player localPlayer = Player.m_localPlayer;
		if (!((Object)(object)localPlayer == (Object)null) && !((Character)localPlayer).IsDead() && ((Character)localPlayer).GetSEMan().HaveStatusEffectCategory("adventurerCape") && DragoonCapes.Instance.AdventurerEffect.Value)
		{
			__result = true;
		}
	}
}
[HarmonyPatch]
internal class BerserkCape
{
	[HarmonyPrefix]
	[HarmonyPatch(typeof(Character), "Damage")]
	private static void Damage_Prefix(HitData hit)
	{
		Player localPlayer = Player.m_localPlayer;
		if (!((Object)(object)localPlayer == (Object)null) && !((Character)localPlayer).IsDead() && ((Character)localPlayer).GetSEMan().HaveStatusEffectCategory("berserkCape") && (Object)(object)hit.GetAttacker() == (Object)(object)localPlayer && !hit.m_ranged)
		{
			float num = 1f - ((Character)localPlayer).GetHealthPercentage();
			float num2 = 1f + num * DragoonCapes.Instance.BerserkMoveSpeed.Value;
			((DamageTypes)(ref hit.m_damage)).Modify(num2);
		}
	}
}
[HarmonyPatch]
internal class BoarCape
{
	private static float baseStaminaUse = 10f;

	[HarmonyPatch(typeof(Player), "Dodge")]
	private static void Prefix(ref float ___m_dodgeStaminaUsage, ref SEMan ___m_seman)
	{
		if (___m_seman != null)
		{
			if (___m_seman.HaveStatusEffectCategory("boarCape"))
			{
				___m_dodgeStaminaUsage = baseStaminaUse * Math.Max(0.01f, 1f - DragoonCapes.Instance.BoarDodgeMult.Value);
			}
			else if (___m_dodgeStaminaUsage != baseStaminaUse)
			{
				___m_dodgeStaminaUsage = baseStaminaUse;
			}
		}
	}
}
[HarmonyPatch]
internal class BrawlerCape
{
	[HarmonyPrefix]
	[HarmonyPatch(typeof(Character), "Damage")]
	private static void JotunnPunch_Prefix(HitData hit)
	{
		//IL_00af: Unknown result type (might be due to invalid IL or missing references)
		//IL_00b6: Invalid comparison between Unknown and I4
		Player localPlayer = Player.m_localPlayer;
		if (!((Object)(object)localPlayer == (Object)null) && !((Character)localPlayer).IsDead() && hit != null && ((Character)localPlayer).GetSEMan().HaveStatusEffectCategory("brawlerCape"))
		{
			SEMan sEMan = ((Character)localPlayer).GetSEMan();
			if ((sEMan.HaveStatusEffectCategory("healthpotion") || sEMan.HaveStatusEffectCategory("staminapotion") || sEMan.HaveStatusEffectCategory("eitrpotion") || sEMan.HaveStatusEffect("Potion_frostresist") || sEMan.HaveStatusEffect("Potion_poisonresist") || sEMan.HaveStatusEffect("Potion_tasty")) && (Object)(object)hit.GetAttacker() == (Object)(object)localPlayer && (int)((Humanoid)localPlayer).GetCurrentWeapon().m_shared.m_skillType == 11)
			{
				((DamageTypes)(ref hit.m_damage)).Modify(1f + DragoonCapes.Instance.HrugnirDamageMult.Value);
			}
		}
	}
}
[HarmonyPatch]
internal class BushCape
{
	[HarmonyPrefix]
	[HarmonyPatch(typeof(Attack), "FireProjectileBurst")]
	public static void Attack_FireProjectileBurst_Prefix(Attack __instance)
	{
		//IL_0063: 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_0075: Unknown result type (might be due to invalid IL or missing references)
		//IL_007a: Unknown result type (might be due to invalid IL or missing references)
		//IL_008c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0090: Unknown result type (might be due to invalid IL or missing references)
		//IL_0095: Unknown result type (might be due to invalid IL or missing references)
		Player localPlayer = Player.m_localPlayer;
		if (!((Object)(object)localPlayer == (Object)null) && !((Character)localPlayer).IsDead() && __instance != null && ((__instance != null) ? __instance.GetWeapon() : null) != null && ((Character)localPlayer).GetSEMan().HaveStatusEffectCategory("bushCape"))
		{
			SkillType? val = __instance.GetWeapon()?.m_shared.m_skillType;
			if (val == (SkillType?)8 || val == (SkillType?)14)
			{
				__instance.m_projectileVel *= 1f + DragoonCapes.Instance.BushVelocity.Value;
				__instance.m_attackStartNoise *= DragoonCapes.Instance.BushNoiseReduction.Value;
				__instance.m_attackHitNoise *= DragoonCapes.Instance.BushNoiseReduction.Value;
			}
		}
	}
}
[HarmonyPatch]
internal class CrusaderCape
{
	[HarmonyPrefix]
	[HarmonyPatch(typeof(Character), "Damage")]
	private static void Spirit_Prefix(HitData hit)
	{
		Player localPlayer = Player.m_localPlayer;
		if (!((Object)(object)localPlayer == (Object)null) && !((Character)localPlayer).IsDead() && hit != null && ((Character)localPlayer).GetSEMan().HaveStatusEffectCategory("crusaderCape") && (Object)(object)hit.GetAttacker() == (Object)(object)localPlayer)
		{
			float totalDamage = hit.GetTotalDamage();
			hit.m_damage.m_spirit += totalDamage * DragoonCapes.Instance.CrusaderDamageSpirit.Value;
			hit.m_damage.m_blunt += totalDamage * DragoonCapes.Instance.CrusaderDamageBlunt.Value;
		}
	}
}
internal class DragonStaff
{
}
[BepInPlugin("com.HappyDragoon.DragoonCapes", "DragoonCapes", "1.3.1")]
[BepInDependency(/*Could not decode attribute arguments.*/)]
internal class DragoonCapes : BaseUnityPlugin
{
	public const string PluginGUID = "com.HappyDragoon.DragoonCapes";

	public const string PluginName = "DragoonCapes";

	public const string PluginVersion = "1.3.1";

	public static CustomLocalization Localization = LocalizationManager.Instance.GetLocalization();

	public static DragoonCapes Instance;

	public ConfigEntry<bool> vanillaCapeEffectsEnabled;

	public ConfigEntry<bool> dragoonCapeEffectsEnabled;

	public ConfigEntry<bool> featherBeltEnabled;

	public ConfigEntry<int> WolfArmor;

	public ConfigEntry<int> WolfArmorPerLevel;

	public ConfigEntry<int> WolfSkill;

	public ConfigEntry<float> DeerMoveSpeed;

	public ConfigEntry<int> DeerSkill;

	public ConfigEntry<float> LoxHealing;

	public ConfigEntry<float> LoxHealth;

	public ConfigEntry<float> LoxHealInterval;

	public ConfigEntry<float> LinenStagger;

	public ConfigEntry<float> LinenDamageMult;

	public ConfigEntry<int> LinenProjs;

	public ConfigEntry<float> TrollDamageMult;

	public ConfigEntry<int> NeckSkill;

	public ConfigEntry<bool> NeckWaterproof;

	public ConfigEntry<int> CultistSkill;

	public ConfigEntry<float> CultistRegen;

	public ConfigEntry<int> DvergrSkill;

	public ConfigEntry<float> DvergrRegen;

	public ConfigEntry<float> SerpentDamageMult;

	public ConfigEntry<int> KnightSkill;

	public ConfigEntry<float> KnightRegen;

	public ConfigEntry<float> KnightStaggerRes;

	public ConfigEntry<int> CrusaderSkill;

	public ConfigEntry<float> CrusaderDamageSpirit;

	public ConfigEntry<float> CrusaderDamageBlunt;

	public ConfigEntry<float> BerserkDamageMult;

	public ConfigEntry<float> BerserkMoveSpeed;

	public ConfigEntry<int> BushSkill;

	public ConfigEntry<float> BushVelocity;

	public ConfigEntry<float> BushNoiseReduction;

	public ConfigEntry<int> BoarSkill;

	public ConfigEntry<float> BoarRegen;

	public ConfigEntry<float> BoarDodgeMult;

	public ConfigEntry<int> GreySkill;

	public ConfigEntry<float> GreyEitr;

	public ConfigEntry<float> WraithPenalty;

	public ConfigEntry<int> WraithFlightTime;

	public ConfigEntry<float> WraithVel;

	public ConfigEntry<float> WraithFall;

	public ConfigEntry<float> EinherjarVelocity;

	public ConfigEntry<float> EinherjarDamageMult;

	public ConfigEntry<bool> EinherjarEffect;

	public ConfigEntry<float> EinherjarCostMult;

	public ConfigEntry<float> SurtlingDamageMult;

	public ConfigEntry<int> HrugnirCarryWeight;

	public ConfigEntry<float> HrugnirDamageMult;

	public ConfigEntry<float> LeechLifesteal;

	public ConfigEntry<float> nightstalkerRegen;

	public ConfigEntry<int> nightstalkerSkill;

	public ConfigEntry<int> AdventurerComfortBonus;

	public ConfigEntry<bool> AdventurerEffect;

	private static SE_Stats neckCapeStatus = ScriptableObject.CreateInstance<SE_Stats>();

	private static SE_Stats cultistCapeStatus = ScriptableObject.CreateInstance<SE_Stats>();

	private static SE_Stats knightCapeStatus = ScriptableObject.CreateInstance<SE_Stats>();

	private static SE_Stats crusaderCapeStatus = ScriptableObject.CreateInstance<SE_Stats>();

	private static SE_Stats dvergrCapeStatus = ScriptableObject.CreateInstance<SE_Stats>();

	private static SE_Stats shamanCapeStatus = ScriptableObject.CreateInstance<SE_Stats>();

	private static SE_Stats serpentCapeStatus = ScriptableObject.CreateInstance<SE_Stats>();

	private static SE_Stats berserkCapeStatus = ScriptableObject.CreateInstance<SE_Stats>();

	private static SE_Stats bushCapeStatus = ScriptableObject.CreateInstance<SE_Stats>();

	private static SE_Stats boarCapeStatus = ScriptableObject.CreateInstance<SE_Stats>();

	private static SE_Stats dwarfCapeStatus = ScriptableObject.CreateInstance<SE_Stats>();

	private static SE_Stats wraithCapeStatus = ScriptableObject.CreateInstance<SE_Stats>();

	private static SE_Stats surtlingCapeStatus = ScriptableObject.CreateInstance<SE_Stats>();

	private static SE_Stats einherjarCapeStatus = ScriptableObject.CreateInstance<SE_Stats>();

	private static SE_Stats brawlerCapeStatus = ScriptableObject.CreateInstance<SE_Stats>();

	private static SE_Stats leechCapeStatus = ScriptableObject.CreateInstance<SE_Stats>();

	private static SE_Stats stalkerCapeStatus = ScriptableObject.CreateInstance<SE_Stats>();

	private static SE_Stats adventurerCapeStatus = ScriptableObject.CreateInstance<SE_Stats>();

	private static SE_Stats featherBeltStatus = ScriptableObject.CreateInstance<SE_Stats>();

	private static SE_Stats meadBeltStatus = ScriptableObject.CreateInstance<SE_Stats>();

	public DragoonCapes()
	{
		Instance = this;
	}

	private void Awake()
	{
		CreateConfigValues();
		PrefabManager.OnVanillaPrefabsAvailable += AddClonedItems;
		Harmony.CreateAndPatchAll(Assembly.GetExecutingAssembly(), (string)null);
	}

	private void CreateConfigValues()
	{
		//IL_002e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0033: Unknown result type (might be due to invalid IL or missing references)
		//IL_003c: Expected O, but got Unknown
		//IL_003c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0046: Expected O, but got Unknown
		//IL_006b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0070: Unknown result type (might be due to invalid IL or missing references)
		//IL_0079: Expected O, but got Unknown
		//IL_0079: Unknown result type (might be due to invalid IL or missing references)
		//IL_0083: Expected O, but got Unknown
		//IL_00a8: 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_00b6: Expected O, but got Unknown
		//IL_00b6: Unknown result type (might be due to invalid IL or missing references)
		//IL_00c0: Expected O, but got Unknown
		//IL_00f0: Unknown result type (might be due to invalid IL or missing references)
		//IL_00f5: Unknown result type (might be due to invalid IL or missing references)
		//IL_00fe: Expected O, but got Unknown
		//IL_00fe: Unknown result type (might be due to invalid IL or missing references)
		//IL_0108: Expected O, but got Unknown
		//IL_0138: Unknown result type (might be due to invalid IL or missing references)
		//IL_013d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0146: Expected O, but got Unknown
		//IL_0146: Unknown result type (might be due to invalid IL or missing references)
		//IL_0150: Expected O, but got Unknown
		//IL_0181: Unknown result type (might be due to invalid IL or missing references)
		//IL_0186: Unknown result type (might be due to invalid IL or missing references)
		//IL_018f: Expected O, but got Unknown
		//IL_018f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0199: Expected O, but got Unknown
		//IL_01cd: Unknown result type (might be due to invalid IL or missing references)
		//IL_01d2: Unknown result type (might be due to invalid IL or missing references)
		//IL_01db: Expected O, but got Unknown
		//IL_01db: Unknown result type (might be due to invalid IL or missing references)
		//IL_01e5: Expected O, but got Unknown
		//IL_021d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0222: Unknown result type (might be due to invalid IL or missing references)
		//IL_022b: Expected O, but got Unknown
		//IL_022b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0235: Expected O, but got Unknown
		//IL_0270: Unknown result type (might be due to invalid IL or missing references)
		//IL_0275: Unknown result type (might be due to invalid IL or missing references)
		//IL_027e: Expected O, but got Unknown
		//IL_027e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0288: Expected O, but got Unknown
		//IL_02c3: 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_02d1: Expected O, but got Unknown
		//IL_02d1: Unknown result type (might be due to invalid IL or missing references)
		//IL_02db: Expected O, but got Unknown
		//IL_0316: Unknown result type (might be due to invalid IL or missing references)
		//IL_031b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0324: Expected O, but got Unknown
		//IL_0324: Unknown result type (might be due to invalid IL or missing references)
		//IL_032e: Expected O, but got Unknown
		//IL_0369: Unknown result type (might be due to invalid IL or missing references)
		//IL_036e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0377: Expected O, but got Unknown
		//IL_0377: Unknown result type (might be due to invalid IL or missing references)
		//IL_0381: Expected O, but got Unknown
		//IL_03bc: Unknown result type (might be due to invalid IL or missing references)
		//IL_03c1: Unknown result type (might be due to invalid IL or missing references)
		//IL_03ca: Expected O, but got Unknown
		//IL_03ca: Unknown result type (might be due to invalid IL or missing references)
		//IL_03d4: Expected O, but got Unknown
		//IL_0404: Unknown result type (might be due to invalid IL or missing references)
		//IL_0409: Unknown result type (might be due to invalid IL or missing references)
		//IL_0412: Expected O, but got Unknown
		//IL_0412: Unknown result type (might be due to invalid IL or missing references)
		//IL_041c: Expected O, but got Unknown
		//IL_0457: Unknown result type (might be due to invalid IL or missing references)
		//IL_045c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0465: Expected O, but got Unknown
		//IL_0465: Unknown result type (might be due to invalid IL or missing references)
		//IL_046f: 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_04ae: Expected O, but got Unknown
		//IL_04ae: Unknown result type (might be due to invalid IL or missing references)
		//IL_04b8: Expected O, but got Unknown
		//IL_04dd: Unknown result type (might be due to invalid IL or missing references)
		//IL_04e2: Unknown result type (might be due to invalid IL or missing references)
		//IL_04eb: Expected O, but got Unknown
		//IL_04eb: Unknown result type (might be due to invalid IL or missing references)
		//IL_04f5: Expected O, but got Unknown
		//IL_0526: Unknown result type (might be due to invalid IL or missing references)
		//IL_052b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0534: Expected O, but got Unknown
		//IL_0534: Unknown result type (might be due to invalid IL or missing references)
		//IL_053e: Expected O, but got Unknown
		//IL_0579: Unknown result type (might be due to invalid IL or missing references)
		//IL_057e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0587: Expected O, but got Unknown
		//IL_0587: Unknown result type (might be due to invalid IL or missing references)
		//IL_0591: Expected O, but got Unknown
		//IL_05c2: Unknown result type (might be due to invalid IL or missing references)
		//IL_05c7: Unknown result type (might be due to invalid IL or missing references)
		//IL_05d0: Expected O, but got Unknown
		//IL_05d0: Unknown result type (might be due to invalid IL or missing references)
		//IL_05da: Expected O, but got Unknown
		//IL_0615: Unknown result type (might be due to invalid IL or missing references)
		//IL_061a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0623: Expected O, but got Unknown
		//IL_0623: Unknown result type (might be due to invalid IL or missing references)
		//IL_062d: Expected O, but got Unknown
		//IL_0668: 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_0676: Expected O, but got Unknown
		//IL_0676: Unknown result type (might be due to invalid IL or missing references)
		//IL_0680: Expected O, but got Unknown
		//IL_06b1: Unknown result type (might be due to invalid IL or missing references)
		//IL_06b6: Unknown result type (might be due to invalid IL or missing references)
		//IL_06bf: Expected O, but got Unknown
		//IL_06bf: Unknown result type (might be due to invalid IL or missing references)
		//IL_06c9: Expected O, but got Unknown
		//IL_0704: Unknown result type (might be due to invalid IL or missing references)
		//IL_0709: Unknown result type (might be due to invalid IL or missing references)
		//IL_0712: Expected O, but got Unknown
		//IL_0712: Unknown result type (might be due to invalid IL or missing references)
		//IL_071c: Expected O, but got Unknown
		//IL_0757: Unknown result type (might be due to invalid IL or missing references)
		//IL_075c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0765: Expected O, but got Unknown
		//IL_0765: Unknown result type (might be due to invalid IL or missing references)
		//IL_076f: Expected O, but got Unknown
		//IL_07a0: Unknown result type (might be due to invalid IL or missing references)
		//IL_07a5: Unknown result type (might be due to invalid IL or missing references)
		//IL_07ae: Expected O, but got Unknown
		//IL_07ae: Unknown result type (might be due to invalid IL or missing references)
		//IL_07b8: Expected O, but got Unknown
		//IL_07f3: Unknown result type (might be due to invalid IL or missing references)
		//IL_07f8: Unknown result type (might be due to invalid IL or missing references)
		//IL_0801: Expected O, but got Unknown
		//IL_0801: Unknown result type (might be due to invalid IL or missing references)
		//IL_080b: Expected O, but got Unknown
		//IL_0846: Unknown result type (might be due to invalid IL or missing references)
		//IL_084b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0854: Expected O, but got Unknown
		//IL_0854: Unknown result type (might be due to invalid IL or missing references)
		//IL_085e: Expected O, but got Unknown
		//IL_0899: Unknown result type (might be due to invalid IL or missing references)
		//IL_089e: Unknown result type (might be due to invalid IL or missing references)
		//IL_08a7: Expected O, but got Unknown
		//IL_08a7: Unknown result type (might be due to invalid IL or missing references)
		//IL_08b1: Expected O, but got Unknown
		//IL_08ec: Unknown result type (might be due to invalid IL or missing references)
		//IL_08f1: Unknown result type (might be due to invalid IL or missing references)
		//IL_08fa: Expected O, but got Unknown
		//IL_08fa: Unknown result type (might be due to invalid IL or missing references)
		//IL_0904: Expected O, but got Unknown
		//IL_0935: Unknown result type (might be due to invalid IL or missing references)
		//IL_093a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0943: Expected O, but got Unknown
		//IL_0943: Unknown result type (might be due to invalid IL or missing references)
		//IL_094d: Expected O, but got Unknown
		//IL_0988: Unknown result type (might be due to invalid IL or missing references)
		//IL_098d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0996: Expected O, but got Unknown
		//IL_0996: Unknown result type (might be due to invalid IL or missing references)
		//IL_09a0: Expected O, but got Unknown
		//IL_09db: Unknown result type (might be due to invalid IL or missing references)
		//IL_09e0: Unknown result type (might be due to invalid IL or missing references)
		//IL_09e9: Expected O, but got Unknown
		//IL_09e9: Unknown result type (might be due to invalid IL or missing references)
		//IL_09f3: Expected O, but got Unknown
		//IL_0a24: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a29: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a32: Expected O, but got Unknown
		//IL_0a32: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a3c: Expected O, but got Unknown
		//IL_0a77: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a7c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a85: Expected O, but got Unknown
		//IL_0a85: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a8f: Expected O, but got Unknown
		//IL_0aca: Unknown result type (might be due to invalid IL or missing references)
		//IL_0acf: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ad8: Expected O, but got Unknown
		//IL_0ad8: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ae2: Expected O, but got Unknown
		//IL_0b12: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b17: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b20: Expected O, but got Unknown
		//IL_0b20: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b2a: Expected O, but got Unknown
		//IL_0b65: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b6a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b73: Expected O, but got Unknown
		//IL_0b73: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b7d: Expected O, but got Unknown
		//IL_0bb8: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bbd: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bc6: Expected O, but got Unknown
		//IL_0bc6: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bd0: Expected O, but got Unknown
		//IL_0c0b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c10: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c19: Expected O, but got Unknown
		//IL_0c19: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c23: Expected O, but got Unknown
		//IL_0c5a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c5f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c68: Expected O, but got Unknown
		//IL_0c68: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c72: Expected O, but got Unknown
		//IL_0cad: Unknown result type (might be due to invalid IL or missing references)
		//IL_0cb2: Unknown result type (might be due to invalid IL or missing references)
		//IL_0cbb: Expected O, but got Unknown
		//IL_0cbb: Unknown result type (might be due to invalid IL or missing references)
		//IL_0cc5: Expected O, but got Unknown
		//IL_0d00: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d05: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d0e: Expected O, but got Unknown
		//IL_0d0e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d18: Expected O, but got Unknown
		//IL_0d53: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d58: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d61: Expected O, but got Unknown
		//IL_0d61: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d6b: Expected O, but got Unknown
		//IL_0da6: Unknown result type (might be due to invalid IL or missing references)
		//IL_0dab: Unknown result type (might be due to invalid IL or missing references)
		//IL_0db4: Expected O, but got Unknown
		//IL_0db4: Unknown result type (might be due to invalid IL or missing references)
		//IL_0dbe: Expected O, but got Unknown
		//IL_0de3: Unknown result type (might be due to invalid IL or missing references)
		//IL_0de8: Unknown result type (might be due to invalid IL or missing references)
		//IL_0df1: Expected O, but got Unknown
		//IL_0df1: Unknown result type (might be due to invalid IL or missing references)
		//IL_0dfb: Expected O, but got Unknown
		//IL_0e36: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e3b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e44: Expected O, but got Unknown
		//IL_0e44: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e4e: Expected O, but got Unknown
		//IL_0e82: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e87: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e90: Expected O, but got Unknown
		//IL_0e90: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e9a: Expected O, but got Unknown
		//IL_0ed5: Unknown result type (might be due to invalid IL or missing references)
		//IL_0eda: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ee3: Expected O, but got Unknown
		//IL_0ee3: Unknown result type (might be due to invalid IL or missing references)
		//IL_0eed: Expected O, but got Unknown
		//IL_0f28: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f2d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f36: Expected O, but got Unknown
		//IL_0f36: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f40: Expected O, but got Unknown
		//IL_0f7b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f80: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f89: Expected O, but got Unknown
		//IL_0f89: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f93: Expected O, but got Unknown
		//IL_0fc4: Unknown result type (might be due to invalid IL or missing references)
		//IL_0fc9: Unknown result type (might be due to invalid IL or missing references)
		//IL_0fd2: Expected O, but got Unknown
		//IL_0fd2: Unknown result type (might be due to invalid IL or missing references)
		//IL_0fdc: Expected O, but got Unknown
		//IL_1001: Unknown result type (might be due to invalid IL or missing references)
		//IL_1006: Unknown result type (might be due to invalid IL or missing references)
		//IL_100f: Expected O, but got Unknown
		//IL_100f: Unknown result type (might be due to invalid IL or missing references)
		//IL_1019: Expected O, but got Unknown
		//IL_104d: Unknown result type (might be due to invalid IL or missing references)
		//IL_1052: Unknown result type (might be due to invalid IL or missing references)
		//IL_105b: Expected O, but got Unknown
		//IL_105b: Unknown result type (might be due to invalid IL or missing references)
		//IL_1065: Expected O, but got Unknown
		((BaseUnityPlugin)this).Config.SaveOnConfigSet = true;
		vanillaCapeEffectsEnabled = ((BaseUnityPlugin)this).Config.Bind<bool>("Server config", "vanillaCapeEffectsEnabled", true, new ConfigDescription("Enable Effects on vanilla capes", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
		{
			IsAdminOnly = true
		} }));
		dragoonCapeEffectsEnabled = ((BaseUnityPlugin)this).Config.Bind<bool>("Server config", "dragoonCapeEffectsEnabled", true, new ConfigDescription("Enable Effects on modded capes", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
		{
			IsAdminOnly = true
		} }));
		featherBeltEnabled = ((BaseUnityPlugin)this).Config.Bind<bool>("Server config", "featherBeltEnabled", true, new ConfigDescription("$featherBeltEnabled", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
		{
			IsAdminOnly = true
		} }));
		WolfArmor = ((BaseUnityPlugin)this).Config.Bind<int>("Server config", "WolfArmor", 4, new ConfigDescription("Wolf cape base armor.", (AcceptableValueBase)null, new object[2]
		{
			new AcceptableValueRange<int>(0, 100),
			(object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			}
		}));
		WolfArmorPerLevel = ((BaseUnityPlugin)this).Config.Bind<int>("Server config", "WolfArmorPerLevel", 2, new ConfigDescription("Wolf cape armor increase per Level", (AcceptableValueBase)null, new object[2]
		{
			new AcceptableValueRange<int>(0, 100),
			(object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			}
		}));
		WolfSkill = ((BaseUnityPlugin)this).Config.Bind<int>("Server config", "WolfSkill", 10, new ConfigDescription("Wolf cape skill bonuses", (AcceptableValueBase)null, new object[2]
		{
			new AcceptableValueRange<int>(0, 100),
			(object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			}
		}));
		DeerMoveSpeed = ((BaseUnityPlugin)this).Config.Bind<float>("Server config", "DeerMoveSpeed", 0.05f, new ConfigDescription("Deer cape nove speed multipler bonus.", (AcceptableValueBase)null, new object[2]
		{
			new AcceptableValueRange<int>(0, 100),
			(object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			}
		}));
		DeerSkill = ((BaseUnityPlugin)this).Config.Bind<int>("Server config", "DeerSkill", 10, new ConfigDescription("Deer cape skill bonuses.", (AcceptableValueBase)null, new object[2]
		{
			new AcceptableValueRange<float>(0f, 100f),
			(object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			}
		}));
		LoxHealing = ((BaseUnityPlugin)this).Config.Bind<float>("Server config", "LoxHealing", 5f, new ConfigDescription("Lox cape heal per tick.", (AcceptableValueBase)null, new object[2]
		{
			new AcceptableValueRange<float>(0f, 100f),
			(object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			}
		}));
		LoxHealInterval = ((BaseUnityPlugin)this).Config.Bind<float>("Server config", "LoxHealInterval", 10f, new ConfigDescription("Lox cape interval between healing.", (AcceptableValueBase)null, new object[2]
		{
			new AcceptableValueRange<float>(0.1f, 100f),
			(object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			}
		}));
		LoxHealth = ((BaseUnityPlugin)this).Config.Bind<float>("Server config", "LoxHealth", 1.15f, new ConfigDescription("Lox cape health multiplier.", (AcceptableValueBase)null, new object[2]
		{
			new AcceptableValueRange<float>(0.1f, 100f),
			(object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			}
		}));
		LinenStagger = ((BaseUnityPlugin)this).Config.Bind<float>("Server config", "LinenStagger", 0.25f, new ConfigDescription("Linen cape added melee stagger damage, 1 would mean double stagger", (AcceptableValueBase)null, new object[2]
		{
			new AcceptableValueRange<float>(0.1f, 100f),
			(object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			}
		}));
		LinenDamageMult = ((BaseUnityPlugin)this).Config.Bind<float>("Server config", "LinenDamageMult", 0.42f, new ConfigDescription("Linen cape projectile damage multiplier, should be lower if proj is higher to balance the damage output.", (AcceptableValueBase)null, new object[2]
		{
			new AcceptableValueRange<float>(0.1f, 100f),
			(object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			}
		}));
		LinenProjs = ((BaseUnityPlugin)this).Config.Bind<int>("Server config", "LinenProjs", 3, new ConfigDescription("Linen cape number of projectiles.", (AcceptableValueBase)null, new object[2]
		{
			new AcceptableValueRange<int>(1, 10),
			(object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			}
		}));
		TrollDamageMult = ((BaseUnityPlugin)this).Config.Bind<float>("Server config", "TrollDamageMult", 1.4f, new ConfigDescription("Troll cape damage multipler at 100 sneak", (AcceptableValueBase)null, new object[2]
		{
			new AcceptableValueRange<float>(1f, 100f),
			(object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			}
		}));
		NeckSkill = ((BaseUnityPlugin)this).Config.Bind<int>("Server config", "NeckSkill", 30, new ConfigDescription("Neck cape skill bonus.", (AcceptableValueBase)null, new object[2]
		{
			new AcceptableValueRange<int>(0, 100),
			(object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			}
		}));
		NeckWaterproof = ((BaseUnityPlugin)this).Config.Bind<bool>("Server config", "NeckWaterproof", true, new ConfigDescription("Neck cape waterproofness. true=waterproof", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
		{
			IsAdminOnly = true
		} }));
		CultistSkill = ((BaseUnityPlugin)this).Config.Bind<int>("Server config", "CultistSkill", 10, new ConfigDescription("Cultist cape skill bonuses.", (AcceptableValueBase)null, new object[2]
		{
			new AcceptableValueRange<int>(0, 100),
			(object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			}
		}));
		CultistRegen = ((BaseUnityPlugin)this).Config.Bind<float>("Server config", "CultistRegen", 1.15f, new ConfigDescription("Cultist cape health regen multiplier.", (AcceptableValueBase)null, new object[2]
		{
			new AcceptableValueRange<float>(1f, 100f),
			(object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			}
		}));
		DvergrSkill = ((BaseUnityPlugin)this).Config.Bind<int>("Server config", "DvergrSkill", 10, new ConfigDescription("Dvergr cape skill bonuses.", (AcceptableValueBase)null, new object[2]
		{
			new AcceptableValueRange<int>(0, 100),
			(object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			}
		}));
		DvergrRegen = ((BaseUnityPlugin)this).Config.Bind<float>("Server config", "DvergrRegen", 1.15f, new ConfigDescription("Dvergr cape eitr regen multiplier.", (AcceptableValueBase)null, new object[2]
		{
			new AcceptableValueRange<float>(1f, 100f),
			(object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			}
		}));
		SerpentDamageMult = ((BaseUnityPlugin)this).Config.Bind<float>("Server config", "SerpentDamageMult", 0.25f, new ConfigDescription("Serpent cape added poison damage.", (AcceptableValueBase)null, new object[2]
		{
			new AcceptableValueRange<float>(1f, 100f),
			(object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			}
		}));
		KnightSkill = ((BaseUnityPlugin)this).Config.Bind<int>("Server config", "KnightSkill", 10, new ConfigDescription("Knight cape skill bonuses.", (AcceptableValueBase)null, new object[2]
		{
			new AcceptableValueRange<int>(0, 100),
			(object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			}
		}));
		KnightRegen = ((BaseUnityPlugin)this).Config.Bind<float>("Server config", "KnightRegen", 1.15f, new ConfigDescription("Knight cape stamina regen multiplier.", (AcceptableValueBase)null, new object[2]
		{
			new AcceptableValueRange<float>(1f, 100f),
			(object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			}
		}));
		KnightStaggerRes = ((BaseUnityPlugin)this).Config.Bind<float>("Server config", "KnightStaggerRes", 0.25f, new ConfigDescription("Knight cape stagger resistance percentage.", (AcceptableValueBase)null, new object[2]
		{
			new AcceptableValueRange<float>(0.01f, 0.99f),
			(object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			}
		}));
		CrusaderSkill = ((BaseUnityPlugin)this).Config.Bind<int>("Server config", "CrusaderSkill", 10, new ConfigDescription("Crusader cape skill bonuses.", (AcceptableValueBase)null, new object[2]
		{
			new AcceptableValueRange<int>(0, 100),
			(object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			}
		}));
		CrusaderDamageSpirit = ((BaseUnityPlugin)this).Config.Bind<float>("Server config", "CrusaderDamageSpirit", 0.25f, new ConfigDescription("Crusader cape added spirit damage.", (AcceptableValueBase)null, new object[2]
		{
			new AcceptableValueRange<float>(0.01f, 100f),
			(object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			}
		}));
		CrusaderDamageBlunt = ((BaseUnityPlugin)this).Config.Bind<float>("Server config", "CrusaderDamageBlunt", 0.1f, new ConfigDescription("Crusader cape added blunt damage.", (AcceptableValueBase)null, new object[2]
		{
			new AcceptableValueRange<float>(0.01f, 100f),
			(object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			}
		}));
		BerserkDamageMult = ((BaseUnityPlugin)this).Config.Bind<float>("Server config", "BerserkDamageMult", 0.4f, new ConfigDescription("Berserk cape damage multiplier when at lowest health.", (AcceptableValueBase)null, new object[2]
		{
			new AcceptableValueRange<float>(0.01f, 100f),
			(object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			}
		}));
		BerserkMoveSpeed = ((BaseUnityPlugin)this).Config.Bind<float>("Server config", "BerserkMoveSpeed", 0.13f, new ConfigDescription("Berserk cape movement speed modifier.", (AcceptableValueBase)null, new object[2]
		{
			new AcceptableValueRange<float>(0.01f, 100f),
			(object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			}
		}));
		BushSkill = ((BaseUnityPlugin)this).Config.Bind<int>("Server config", "BushSkill", 20, new ConfigDescription("Bush cape skill bonuses.", (AcceptableValueBase)null, new object[2]
		{
			new AcceptableValueRange<int>(0, 100),
			(object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			}
		}));
		BushNoiseReduction = ((BaseUnityPlugin)this).Config.Bind<float>("Server config", "BushNoiseReduction", 0.67f, new ConfigDescription("Bush cape bow firing noise reduction, 0 is silent.", (AcceptableValueBase)null, new object[2]
		{
			new AcceptableValueRange<float>(0.01f, 1f),
			(object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			}
		}));
		BushVelocity = ((BaseUnityPlugin)this).Config.Bind<float>("Server config", "BushVelocity", 0.2f, new ConfigDescription("Bush cape bow firing velocity multiplier.", (AcceptableValueBase)null, new object[2]
		{
			new AcceptableValueRange<float>(0.01f, 100f),
			(object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			}
		}));
		BoarSkill = ((BaseUnityPlugin)this).Config.Bind<int>("Server config", "BoarSkill", 10, new ConfigDescription("Boar cape skill bonuses.", (AcceptableValueBase)null, new object[2]
		{
			new AcceptableValueRange<int>(0, 100),
			(object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			}
		}));
		BoarRegen = ((BaseUnityPlugin)this).Config.Bind<float>("Server config", "BoarRegen", 1.1f, new ConfigDescription("Boar cape stamina regen multiplier.", (AcceptableValueBase)null, new object[2]
		{
			new AcceptableValueRange<float>(0.01f, 100f),
			(object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			}
		}));
		BoarDodgeMult = ((BaseUnityPlugin)this).Config.Bind<float>("Server config", "BoarDodgeMult", 0.3f, new ConfigDescription("Boar cape dodge stamina discount.", (AcceptableValueBase)null, new object[2]
		{
			new AcceptableValueRange<float>(0.01f, 1f),
			(object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			}
		}));
		GreySkill = ((BaseUnityPlugin)this).Config.Bind<int>("Server config", "GreySkill", 5, new ConfigDescription("Greydwarf cape skill bonuses.", (AcceptableValueBase)null, new object[2]
		{
			new AcceptableValueRange<int>(0, 100),
			(object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			}
		}));
		GreyEitr = ((BaseUnityPlugin)this).Config.Bind<float>("Server config", "GreyEitr", 20f, new ConfigDescription("Greydwarf cape flat eitr bonus.", (AcceptableValueBase)null, new object[2]
		{
			new AcceptableValueRange<float>(1f, 1000f),
			(object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			}
		}));
		WraithPenalty = ((BaseUnityPlugin)this).Config.Bind<float>("Server config", "WraithRegenPenalty", 0.3f, new ConfigDescription("Wraith cape health and stamina regen penalty.", (AcceptableValueBase)null, new object[2]
		{
			new AcceptableValueRange<float>(0.01f, 0.9f),
			(object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			}
		}));
		WraithVel = ((BaseUnityPlugin)this).Config.Bind<float>("Server config", "WraithVel", 3f, new ConfigDescription("Wraith cape flying speed. Low values will be less glitchy.", (AcceptableValueBase)null, new object[2]
		{
			new AcceptableValueRange<float>(1f, 100f),
			(object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			}
		}));
		WraithFlightTime = ((BaseUnityPlugin)this).Config.Bind<int>("Server config", "WraithFlightTime", 500, new ConfigDescription("How many update ticks you can remain flying with the wraith cape. -1 is disabled", (AcceptableValueBase)null, new object[2]
		{
			new AcceptableValueRange<int>(-1, 10000),
			(object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			}
		}));
		WraithFall = ((BaseUnityPlugin)this).Config.Bind<float>("Server config", "WraithFall", 3f, new ConfigDescription("Wraith cape fall speed limiter.", (AcceptableValueBase)null, new object[2]
		{
			new AcceptableValueRange<float>(1f, 100f),
			(object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			}
		}));
		EinherjarDamageMult = ((BaseUnityPlugin)this).Config.Bind<float>("Server config", "EinherjarDamageMult", 0.08f, new ConfigDescription("Einherjar cape added lighting damage.", (AcceptableValueBase)null, new object[2]
		{
			new AcceptableValueRange<float>(0.01f, 100f),
			(object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			}
		}));
		EinherjarVelocity = ((BaseUnityPlugin)this).Config.Bind<float>("Server config", "EinherjarVelocity", 1.3f, new ConfigDescription("Einherjar cape added spear velocity.", (AcceptableValueBase)null, new object[2]
		{
			new AcceptableValueRange<float>(1f, 100f),
			(object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			}
		}));
		EinherjarCostMult = ((BaseUnityPlugin)this).Config.Bind<float>("Server config", "EinherjarCostMult", 2f, new ConfigDescription("Einherjar cape throwing attack stamina cost multipler. Disabled if effect is false.", (AcceptableValueBase)null, new object[2]
		{
			new AcceptableValueRange<float>(0.01f, 100f),
			(object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			}
		}));
		EinherjarEffect = ((BaseUnityPlugin)this).Config.Bind<bool>("Server config", "EinherjarEffect", true, new ConfigDescription("If infinite throwing spears is enabled.", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
		{
			IsAdminOnly = true
		} }));
		SurtlingDamageMult = ((BaseUnityPlugin)this).Config.Bind<float>("Server config", "SurtlingDamageMult", 0.4f, new ConfigDescription("Surtling cape added fire damage when burning.", (AcceptableValueBase)null, new object[2]
		{
			new AcceptableValueRange<float>(0.01f, 100f),
			(object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			}
		}));
		HrugnirCarryWeight = ((BaseUnityPlugin)this).Config.Bind<int>("Server config", "HrugnirCarryWeight", 35, new ConfigDescription("Hrugnir cape added carry weight.", (AcceptableValueBase)null, new object[2]
		{
			new AcceptableValueRange<int>(0, 1000),
			(object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			}
		}));
		HrugnirDamageMult = ((BaseUnityPlugin)this).Config.Bind<float>("Server config", "HrugnirDamageMult", 0.25f, new ConfigDescription("Hrugnir cape added unarmed damage while mead is on cooldown.", (AcceptableValueBase)null, new object[2]
		{
			new AcceptableValueRange<float>(0.01f, 100f),
			(object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			}
		}));
		LeechLifesteal = ((BaseUnityPlugin)this).Config.Bind<float>("Server config", "LeechLifesteal", 0.05f, new ConfigDescription("Leech cape lifesteal rate.", (AcceptableValueBase)null, new object[2]
		{
			new AcceptableValueRange<float>(0.01f, 100f),
			(object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			}
		}));
		nightstalkerRegen = ((BaseUnityPlugin)this).Config.Bind<float>("Server config", "nightstalkerRegen", 1.3f, new ConfigDescription("Nightstalker cape stamina regen multiplier when cold.", (AcceptableValueBase)null, new object[2]
		{
			new AcceptableValueRange<float>(0.01f, 100f),
			(object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			}
		}));
		nightstalkerSkill = ((BaseUnityPlugin)this).Config.Bind<int>("Server config", "nightstalkerSkill", 30, new ConfigDescription("Nightstalker cape bow skill bonus during night-time", (AcceptableValueBase)null, new object[2]
		{
			new AcceptableValueRange<int>(0, 100),
			(object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			}
		}));
		AdventurerEffect = ((BaseUnityPlugin)this).Config.Bind<bool>("Server config", "AdventurerEffect", true, new ConfigDescription("Adventurer Cape lets you rest anywhere.", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes
		{
			IsAdminOnly = true
		} }));
		AdventurerComfortBonus = ((BaseUnityPlugin)this).Config.Bind<int>("Server config", "AdventurerComfortBonus", 10, new ConfigDescription("Adventurer Cape rested duration bonus in minutes.", (AcceptableValueBase)null, new object[2]
		{
			new AcceptableValueRange<int>(0, 1000),
			(object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			}
		}));
		SynchronizationManager.OnConfigurationSynchronized += delegate(object obj, ConfigurationSynchronizationEventArgs attr)
		{
			if (attr.InitialSynchronization)
			{
				Logger.LogMessage((object)"Initial Config sync event received");
			}
			else
			{
				Logger.LogMessage((object)"Config sync event received");
			}
		};
	}

	private void AddClonedItems()
	{
		//IL_0082: Unknown result type (might be due to invalid IL or missing references)
		//IL_00ac: Unknown result type (might be due to invalid IL or missing references)
		//IL_00b2: Expected O, but got Unknown
		//IL_00df: Unknown result type (might be due to invalid IL or missing references)
		//IL_00e9: Expected O, but got Unknown
		//IL_00f3: Unknown result type (might be due to invalid IL or missing references)
		//IL_00fd: Expected O, but got Unknown
		//IL_0107: Unknown result type (might be due to invalid IL or missing references)
		//IL_0111: Expected O, but got Unknown
		//IL_014d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0154: Expected O, but got Unknown
		//IL_0194: Unknown result type (might be due to invalid IL or missing references)
		//IL_019d: Unknown result type (might be due to invalid IL or missing references)
		//IL_01a9: Unknown result type (might be due to invalid IL or missing references)
		//IL_01c4: Unknown result type (might be due to invalid IL or missing references)
		//IL_021d: 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_0267: Unknown result type (might be due to invalid IL or missing references)
		//IL_026e: Expected O, but got Unknown
		//IL_02a0: Unknown result type (might be due to invalid IL or missing references)
		//IL_02aa: Expected O, but got Unknown
		//IL_02b5: Unknown result type (might be due to invalid IL or missing references)
		//IL_02bf: Expected O, but got Unknown
		//IL_02ca: Unknown result type (might be due to invalid IL or missing references)
		//IL_02d4: Expected O, but got Unknown
		//IL_0317: Unknown result type (might be due to invalid IL or missing references)
		//IL_031e: Expected O, but got Unknown
		//IL_039d: Unknown result type (might be due to invalid IL or missing references)
		//IL_03b8: Unknown result type (might be due to invalid IL or missing references)
		//IL_03ea: Unknown result type (might be due to invalid IL or missing references)
		//IL_03f1: Expected O, but got Unknown
		//IL_0423: Unknown result type (might be due to invalid IL or missing references)
		//IL_042d: Expected O, but got Unknown
		//IL_0438: Unknown result type (might be due to invalid IL or missing references)
		//IL_0442: Expected O, but got Unknown
		//IL_044d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0457: Expected O, but got Unknown
		//IL_049a: Unknown result type (might be due to invalid IL or missing references)
		//IL_04a1: Expected O, but got Unknown
		//IL_04ed: Unknown result type (might be due to invalid IL or missing references)
		//IL_04f6: Unknown result type (might be due to invalid IL or missing references)
		//IL_04ff: Unknown result type (might be due to invalid IL or missing references)
		//IL_051a: Unknown result type (might be due to invalid IL or missing references)
		//IL_057b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0582: Expected O, but got Unknown
		//IL_05be: Unknown result type (might be due to invalid IL or missing references)
		//IL_05c8: Expected O, but got Unknown
		//IL_05d3: Unknown result type (might be due to invalid IL or missing references)
		//IL_05dd: Expected O, but got Unknown
		//IL_05e8: Unknown result type (might be due to invalid IL or missing references)
		//IL_05f2: Expected O, but got Unknown
		//IL_0635: Unknown result type (might be due to invalid IL or missing references)
		//IL_063c: Expected O, but got Unknown
		//IL_06fe: Unknown result type (might be due to invalid IL or missing references)
		//IL_0705: Expected O, but got Unknown
		//IL_0737: Unknown result type (might be due to invalid IL or missing references)
		//IL_0741: Expected O, but got Unknown
		//IL_074c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0756: Expected O, but got Unknown
		//IL_0761: Unknown result type (might be due to invalid IL or missing references)
		//IL_076b: Expected O, but got Unknown
		//IL_07ae: Unknown result type (might be due to invalid IL or missing references)
		//IL_07b5: Expected O, but got Unknown
		//IL_0801: Unknown result type (might be due to invalid IL or missing references)
		//IL_080a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0816: Unknown result type (might be due to invalid IL or missing references)
		//IL_0831: Unknown result type (might be due to invalid IL or missing references)
		//IL_08ad: Unknown result type (might be due to invalid IL or missing references)
		//IL_08b8: Unknown result type (might be due to invalid IL or missing references)
		//IL_0906: Unknown result type (might be due to invalid IL or missing references)
		//IL_090d: Expected O, but got Unknown
		//IL_0948: Unknown result type (might be due to invalid IL or missing references)
		//IL_0952: Expected O, but got Unknown
		//IL_095d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0967: Expected O, but got Unknown
		//IL_0972: Unknown result type (might be due to invalid IL or missing references)
		//IL_097c: Expected O, but got Unknown
		//IL_0987: Unknown result type (might be due to invalid IL or missing references)
		//IL_0991: Expected O, but got Unknown
		//IL_099c: Unknown result type (might be due to invalid IL or missing references)
		//IL_09a6: Expected O, but got Unknown
		//IL_0a3e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a45: Expected O, but got Unknown
		//IL_0b1b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b27: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b60: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b67: Expected O, but got Unknown
		//IL_0ba2: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bac: Expected O, but got Unknown
		//IL_0bb7: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bc1: Expected O, but got Unknown
		//IL_0bcd: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bd7: Expected O, but got Unknown
		//IL_0be3: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bed: Expected O, but got Unknown
		//IL_0c52: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c59: Expected O, but got Unknown
		//IL_0d19: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d20: Expected O, but got Unknown
		//IL_0d52: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d5c: Expected O, but got Unknown
		//IL_0d68: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d72: Expected O, but got Unknown
		//IL_0d7e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d88: Expected O, but got Unknown
		//IL_0dcb: Unknown result type (might be due to invalid IL or missing references)
		//IL_0dd2: Expected O, but got Unknown
		//IL_0e02: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e0b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e13: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e2e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e38: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e41: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e49: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e64: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e6e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e77: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e7f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e9a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f60: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f74: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f7b: Expected O, but got Unknown
		//IL_0fad: Unknown result type (might be due to invalid IL or missing references)
		//IL_0fb7: Expected O, but got Unknown
		//IL_0fc2: Unknown result type (might be due to invalid IL or missing references)
		//IL_0fcc: Expected O, but got Unknown
		//IL_0fd7: Unknown result type (might be due to invalid IL or missing references)
		//IL_0fe1: Expected O, but got Unknown
		//IL_1024: Unknown result type (might be due to invalid IL or missing references)
		//IL_102b: Expected O, but got Unknown
		//IL_1077: Unknown result type (might be due to invalid IL or missing references)
		//IL_1080: Unknown result type (might be due to invalid IL or missing references)
		//IL_1089: Unknown result type (might be due to invalid IL or missing references)
		//IL_10a4: Unknown result type (might be due to invalid IL or missing references)
		//IL_1135: Unknown result type (might be due to invalid IL or missing references)
		//IL_115f: Unknown result type (might be due to invalid IL or missing references)
		//IL_1166: Expected O, but got Unknown
		//IL_1198: Unknown result type (might be due to invalid IL or missing references)
		//IL_11a2: Expected O, but got Unknown
		//IL_11ad: Unknown result type (might be due to invalid IL or missing references)
		//IL_11b7: Expected O, but got Unknown
		//IL_11c2: Unknown result type (might be due to invalid IL or missing references)
		//IL_11cc: Expected O, but got Unknown
		//IL_120f: Unknown result type (might be due to invalid IL or missing references)
		//IL_1216: Expected O, but got Unknown
		//IL_12c2: Unknown result type (might be due to invalid IL or missing references)
		//IL_12ce: Unknown result type (might be due to invalid IL or missing references)
		//IL_12f8: Unknown result type (might be due to invalid IL or missing references)
		//IL_12ff: Expected O, but got Unknown
		//IL_1331: Unknown result type (might be due to invalid IL or missing references)
		//IL_133b: Expected O, but got Unknown
		//IL_1346: Unknown result type (might be due to invalid IL or missing references)
		//IL_1350: Expected O, but got Unknown
		//IL_135b: Unknown result type (might be due to invalid IL or missing references)
		//IL_1365: Expected O, but got Unknown
		//IL_13a8: Unknown result type (might be due to invalid IL or missing references)
		//IL_13af: Expected O, but got Unknown
		//IL_1499: Unknown result type (might be due to invalid IL or missing references)
		//IL_14a0: Expected O, but got Unknown
		//IL_14d2: Unknown result type (might be due to invalid IL or missing references)
		//IL_14dc: Expected O, but got Unknown
		//IL_14e7: Unknown result type (might be due to invalid IL or missing references)
		//IL_14f1: Expected O, but got Unknown
		//IL_14fc: Unknown result type (might be due to invalid IL or missing references)
		//IL_1506: Expected O, but got Unknown
		//IL_1549: Unknown result type (might be due to invalid IL or missing references)
		//IL_1550: Expected O, but got Unknown
		//IL_16fc: Unknown result type (might be due to invalid IL or missing references)
		//IL_1703: Expected O, but got Unknown
		//IL_1735: Unknown result type (might be due to invalid IL or missing references)
		//IL_173f: Expected O, but got Unknown
		//IL_174b: Unknown result type (might be due to invalid IL or missing references)
		//IL_1755: Expected O, but got Unknown
		//IL_1760: Unknown result type (might be due to invalid IL or missing references)
		//IL_176a: Expected O, but got Unknown
		//IL_1776: Unknown result type (might be due to invalid IL or missing references)
		//IL_1780: Expected O, but got Unknown
		//IL_17c3: Unknown result type (might be due to invalid IL or missing references)
		//IL_17ca: Expected O, but got Unknown
		//IL_1890: Unknown result type (might be due to invalid IL or missing references)
		//IL_1897: Expected O, but got Unknown
		//IL_18c9: Unknown result type (might be due to invalid IL or missing references)
		//IL_18d3: Expected O, but got Unknown
		//IL_18de: Unknown result type (might be due to invalid IL or missing references)
		//IL_18e8: Expected O, but got Unknown
		//IL_18f8: Unknown result type (might be due to invalid IL or missing references)
		//IL_1902: Expected O, but got Unknown
		//IL_1945: Unknown result type (might be due to invalid IL or missing references)
		//IL_194c: Expected O, but got Unknown
		//IL_1997: Unknown result type (might be due to invalid IL or missing references)
		//IL_19a0: Unknown result type (might be due to invalid IL or missing references)
		//IL_19a9: Unknown result type (might be due to invalid IL or missing references)
		//IL_19c4: Unknown result type (might be due to invalid IL or missing references)
		//IL_1a5f: Unknown result type (might be due to invalid IL or missing references)
		//IL_1a66: Expected O, but got Unknown
		//IL_1a98: Unknown result type (might be due to invalid IL or missing references)
		//IL_1aa2: Expected O, but got Unknown
		//IL_1aad: Unknown result type (might be due to invalid IL or missing references)
		//IL_1ab7: Expected O, but got Unknown
		//IL_1ac3: Unknown result type (might be due to invalid IL or missing references)
		//IL_1acd: Expected O, but got Unknown
		//IL_1b10: Unknown result type (might be due to invalid IL or missing references)
		//IL_1b17: Expected O, but got Unknown
		//IL_1bc2: Unknown result type (might be due to invalid IL or missing references)
		//IL_1bc9: Expected O, but got Unknown
		//IL_1bfb: Unknown result type (might be due to invalid IL or missing references)
		//IL_1c05: Expected O, but got Unknown
		//IL_1c10: Unknown result type (might be due to invalid IL or missing references)
		//IL_1c1a: Expected O, but got Unknown
		//IL_1c25: Unknown result type (might be due to invalid IL or missing references)
		//IL_1c2f: Expected O, but got Unknown
		//IL_1c72: Unknown result type (might be due to invalid IL or missing references)
		//IL_1c79: Expected O, but got Unknown
		//IL_1d37: Unknown result type (might be due to invalid IL or missing references)
		//IL_1d52: Unknown result type (might be due to invalid IL or missing references)
		//IL_1d59: Expected O, but got Unknown
		//IL_1d8b: Unknown result type (might be due to invalid IL or missing references)
		//IL_1d95: Expected O, but got Unknown
		//IL_1da0: Unknown result type (might be due to invalid IL or missing references)
		//IL_1daa: Expected O, but got Unknown
		//IL_1db5: Unknown result type (might be due to invalid IL or missing references)
		//IL_1dbf: Expected O, but got Unknown
		//IL_1e02: Unknown result type (might be due to invalid IL or missing references)
		//IL_1e09: Expected O, but got Unknown
		//IL_1f1a: Unknown result type (might be due to invalid IL or missing references)
		//IL_1f21: Expected O, but got Unknown
		//IL_1f53: Unknown result type (might be due to invalid IL or missing references)
		//IL_1f5d: Expected O, but got Unknown
		//IL_1f68: Unknown result type (might be due to invalid IL or missing references)
		//IL_1f72: Expected O, but got Unknown
		//IL_1f7d: Unknown result type (might be due to invalid IL or missing references)
		//IL_1f87: Expected O, but got Unknown
		//IL_1fca: Unknown result type (might be due to invalid IL or missing references)
		//IL_1fd1: Expected O, but got Unknown
		//IL_2058: Unknown result type (might be due to invalid IL or missing references)
		//IL_205f: Expected O, but got Unknown
		//IL_2091: Unknown result type (might be due to invalid IL or missing references)
		//IL_209b: Expected O, but got Unknown
		//IL_20a6: Unknown result type (might be due to invalid IL or missing references)
		//IL_20b0: Expected O, but got Unknown
		//IL_20f3: Unknown result type (might be due to invalid IL or missing references)
		//IL_20fa: Expected O, but got Unknown
		bool flag = (bool)((BaseUnityPlugin)this).Config["Server config", "dragoonCapeEffectsEnabled"].BoxedValue;
		((BaseUnityPlugin)this).Logger.LogWarning((object)("Mod Statuses Enabled: " + flag));
		((Object)neckCapeStatus).name = "$status_neckcape";
		((StatusEffect)neckCapeStatus).m_name = "$status_neckcape";
		((StatusEffect)neckCapeStatus).m_tooltip = "$status_neckcape_tooltip";
		((StatusEffect)neckCapeStatus).m_startMessage = "$status_neckcape_startmessage";
		neckCapeStatus.m_skillLevel = (SkillType)103;
		neckCapeStatus.m_skillLevelModifier = NeckSkill.Value;
		((StatusEffect)neckCapeStatus).m_category = "NeckCape";
		ItemConfig val = new ItemConfig();
		val.Name = "$item_neckcape";
		val.Description = "$item_neckcape_description";
		val.CraftingStation = "forge";
		val.AddRequirement(new RequirementConfig("TrophyNeck", 5, 2, false));
		val.AddRequirement(new RequirementConfig("Guck", 8, 3, false));
		val.AddRequirement(new RequirementConfig("Iron", 1, 1, false));
		Sprite val2 = AssetUtils.LoadSpriteFromFile("HappyDragoon-DragoonCapes/Assets/neckIcon.png");
		Texture2D styleTex = AssetUtils.LoadTexture("HappyDragoon-DragoonCapes/Assets/neckTexture.png", true);
		val.Icons = (Sprite[])(object)new Sprite[1] { val2 };
		val.StyleTex = styleTex;
		CustomItem val3 = new CustomItem("CapeNeck", "CapeDeerHide", val);
		if (dragoonCapeEffectsEnabled.Value && NeckWaterproof.Value)
		{
			val3.ItemDrop.m_itemData.m_shared.m_equipStatusEffect = (StatusEffect)(object)neckCapeStatus;
		}
		DamageModPair item = default(DamageModPair);
		item.m_modifier = (DamageModifier)1;
		item.m_type = (DamageType)256;
		val3.ItemDrop.m_itemData.m_shared.m_damageModifiers.Add(item);
		ItemManager.Instance.AddItem(val3);
		((Object)cultistCapeStatus).name = "$status_cultistcape";
		((StatusEffect)cultistCapeStatus).m_name = "$status_cultistcape";
		((StatusEffect)cultistCapeStatus).m_tooltip = "$status_cultistcape_tooltip";
		((StatusEffect)cultistCapeStatus).m_startMessage = "$status_cultistcape_startmessage";
		cultistCapeStatus.m_skillLevel = (SkillType)10;
		cultistCapeStatus.m_skillLevel2 = (SkillType)7;
		cultistCapeStatus.m_skillLevelModifier = (cultistCapeStatus.m_skillLevelModifier2 = CultistSkill.Value);
		cultistCapeStatus.m_healthRegenMultiplier = CultistRegen.Value;
		ItemConfig val4 = new ItemConfig();
		val4.Name = "$item_cultistcape";
		val4.Description = "$item_cultistcape_description";
		val4.CraftingStation = "forge";
		val4.AddRequirement(new RequirementConfig("JuteRed", 10, 4, false));
		val4.AddRequirement(new RequirementConfig("TrophyFenring", 3, 0, false));
		val4.AddRequirement(new RequirementConfig("Iron", 1, 1, false));
		Sprite val5 = AssetUtils.LoadSpriteFromFile("HappyDragoon-DragoonCapes/Assets/cultistIcon.png");
		Texture2D styleTex2 = AssetUtils.LoadTexture("HappyDragoon-DragoonCapes/Assets/cultistTexture.png", true);
		val4.Icons = (Sprite[])(object)new Sprite[1] { val5 };
		val4.StyleTex = styleTex2;
		CustomItem val6 = new CustomItem("CapeCultist", "CapeLox", val4);
		if (dragoonCapeEffectsEnabled.Value)
		{
			val6.ItemDrop.m_itemData.m_shared.m_equipStatusEffect = (StatusEffect)(object)cultistCapeStatus;
		}
		ItemManager.Instance.AddItem(val6);
		((Object)dvergrCapeStatus).name = "$status_dvergrcape";
		((StatusEffect)dvergrCapeStatus).m_name = "$status_dvergrcape";
		((StatusEffect)dvergrCapeStatus).m_tooltip = "$status_dvergrcape_tooltip";
		((StatusEffect)dvergrCapeStatus).m_startMessage = "$status_dvergrcape_startmessage";
		dvergrCapeStatus.m_skillLevel = (SkillType)9;
		dvergrCapeStatus.m_skillLevelModifier = 10f;
		dvergrCapeStatus.m_skillLevel2 = (SkillType)12;
		dvergrCapeStatus.m_skillLevelModifier2 = 10f;
		dvergrCapeStatus.m_eitrRegenMultiplier = 1.1f;
		((StatusEffect)dvergrCapeStatus).m_category = "dvergrCape";
		ItemConfig val7 = new ItemConfig();
		val7.Name = "$item_dvergrcape";
		val7.Description = "$item_dvergrcape_description";
		val7.CraftingStation = "piece_magetable";
		val7.AddRequirement(new RequirementConfig("JuteBlue", 10, 4, false));
		val7.AddRequirement(new RequirementConfig("TrophyDvergr", 3, 0, false));
		val7.AddRequirement(new RequirementConfig("BlackMetal", 1, 1, false));
		Sprite val8 = AssetUtils.LoadSpriteFromFile("HappyDragoon-DragoonCapes/Assets/dvergrIcon.png");
		Texture2D styleTex3 = AssetUtils.LoadTexture("HappyDragoon-DragoonCapes/Assets/dvergrTexture.png", true);
		val7.Icons = (Sprite[])(object)new Sprite[1] { val8 };
		val7.StyleTex = styleTex3;
		CustomItem val9 = new CustomItem("CapeDvergr", "CapeLox", val7);
		if (dragoonCapeEffectsEnabled.Value)
		{
			val9.ItemDrop.m_itemData.m_shared.m_equipStatusEffect = (StatusEffect)(object)dvergrCapeStatus;
		}
		val9.ItemDrop.m_itemData.m_shared.m_damageModifiers.Clear();
		DamageModPair item2 = default(DamageModPair);
		item2.m_modifier = (DamageModifier)1;
		item2.m_type = (DamageType)32;
		val9.ItemDrop.m_itemData.m_shared.m_damageModifiers.Add(item2);
		ItemManager.Instance.AddItem(val9);
		((Object)shamanCapeStatus).name = "$status_shamancape";
		((StatusEffect)shamanCapeStatus).m_name = "$status_shamancape";
		((StatusEffect)shamanCapeStatus).m_tooltip = "$status_shamancape_tooltip\n<color=orange>$status_shamancape_tooltip1</color>";
		((StatusEffect)shamanCapeStatus).m_startMessage = "$status_shamancape_startmessage";
		((StatusEffect)shamanCapeStatus).m_category = "ShamanCape";
		ItemConfig val10 = new ItemConfig();
		val10.Name = "$item_shamancape";
		val10.Description = "$item_shamancape_description";
		val10.CraftingStation = "piece_artisanstation";
		val10.MinStationLevel = -3;
		val10.AddRequirement(new RequirementConfig("Feathers", 10, 4, false));
		val10.AddRequirement(new RequirementConfig("TrophyGoblinShaman", 3, 0, false));
		val10.AddRequirement(new RequirementConfig("BlackMetal", 1, 1, false));
		Sprite val11 = AssetUtils.LoadSpriteFromFile("HappyDragoon-DragoonCapes/Assets/shamanIcon.png");
		Texture2D styleTex4 = AssetUtils.LoadTexture("HappyDragoon-DragoonCapes/Assets/shamanTexture.png", true);
		val10.Icons = (Sprite[])(object)new Sprite[1] { val11 };
		val10.StyleTex = styleTex4;
		CustomItem val12 = new CustomItem("CapeShaman", "CapeFeather", val10);
		if (dragoonCapeEffectsEnabled.Value)
		{
			val12.ItemDrop.m_itemData.m_shared.m_equipStatusEffect = (StatusEffect)(object)shamanCapeStatus;
		}
		val12.ItemDrop.m_itemData.m_shared.m_trailStartEffect = null;
		ItemManager.Instance.AddItem(val12);
		((Object)serpentCapeStatus).name = "$status_serpentcape";
		((StatusEffect)serpentCapeStatus).m_name = "$status_serpentcape";
		((StatusEffect)serpentCapeStatus).m_tooltip = "$status_serpentcape_tooltip\n$status_serpentcape_tooltip1<color=orange>+" + SerpentDamageMult.Value * 100f + "%</color>";
		((StatusEffect)serpentCapeStatus).m_startMessage = "$status_serpentcape_startmessage";
		((StatusEffect)serpentCapeStatus).m_category = "SerpentCape";
		ItemConfig val13 = new ItemConfig();
		val13.Name = "$item_serpentcape";
		val13.Description = "$item_serpentcape_description";
		val13.CraftingStation = "piece_workbench";
		val13.AddRequirement(new RequirementConfig("SerpentScale", 10, 4, false));
		val13.AddRequirement(new RequirementConfig("TrophySerpent", 1, 0, false));
		val13.AddRequirement(new RequirementConfig("Chitin", 3, 2, false));
		Sprite val14 = AssetUtils.LoadSpriteFromFile("HappyDragoon-DragoonCapes/Assets/serpentIcon.png");
		Texture2D styleTex5 = AssetUtils.LoadTexture("HappyDragoon-DragoonCapes/Assets/serpentTexture.png", true);
		val13.Icons = (Sprite[])(object)new Sprite[1] { val14 };
		val13.StyleTex = styleTex5;
		CustomItem val15 = new CustomItem("CapeSerpent", "CapeWolf", val13);
		if (dragoonCapeEffectsEnabled.Value)
		{
			val15.ItemDrop.m_itemData.m_shared.m_equipStatusEffect = (StatusEffect)(object)serpentCapeStatus;
		}
		val15.ItemDrop.m_itemData.m_shared.m_damageModifiers.Clear();
		DamageModPair item3 = default(DamageModPair);
		item3.m_modifier = (DamageModifier)1;
		item3.m_type = (DamageType)256;
		val15.ItemDrop.m_itemData.m_shared.m_damageModifiers.Add(item3);
		ItemManager.Instance.AddItem(val15);
		((Object)knightCapeStatus).name = "$status_knightcape";
		((StatusEffect)knightCapeStatus).m_name = "$status_knightcape";
		((StatusEffect)knightCapeStatus).m_tooltip = "$status_knightcape_tooltip\n$status_knightcape_tooltip1<color=orange>+" + KnightStaggerRes.Value * 100f + "%</color>";
		((StatusEffect)knightCapeStatus).m_startMessage = "$status_knightcape_startmessage";
		knightCapeStatus.m_skillLevel = (SkillType)6;
		knightCapeStatus.m_skillLevel2 = (SkillType)1;
		knightCapeStatus.m_skillLevelModifier = (knightCapeStatus.m_skillLevelModifier2 = KnightSkill.Value);
		knightCapeStatus.m_staminaRegenMultiplier = KnightRegen.Value;
		((StatusEffect)knightCapeStatus).m_category = "knightCape";
		ItemConfig val16 = new ItemConfig();
		val16.Name = "$item_knightcape";
		val16.Description = "$item_knightcape_description";
		val16.CraftingStation = "piece_artisanstation";
		val16.MinStationLevel = -3;
		val16.AddRequirement(new RequirementConfig("CapeLinen", 1, 0, false));
		val16.AddRequirement(new RequirementConfig("LinenThread", 0, 4, false));
		val16.AddRequirement(new RequirementConfig("Raspberry", 1, 1, false));
		val16.AddRequirement(new RequirementConfig("Blueberries", 1, 1, false));
		val16.AddRequirement(new RequirementConfig("Cloudberry", 1, 1, false));
		Sprite val17 = AssetUtils.LoadSpriteFromFile("HappyDragoon-DragoonCapes/Assets/knightIcon1.png");
		Sprite val18 = AssetUtils.LoadSpriteFromFile("HappyDragoon-DragoonCapes/Assets/knightIcon2.png");
		Sprite val19 = AssetUtils.LoadSpriteFromFile("HappyDragoon-DragoonCapes/Assets/knightIcon3.png");
		Sprite val20 = AssetUtils.LoadSpriteFromFile("HappyDragoon-DragoonCapes/Assets/knightIcon4.png");
		Sprite val21 = AssetUtils.LoadSpriteFromFile("HappyDragoon-DragoonCapes/Assets/knightIcon5.png");
		Sprite val22 = AssetUtils.LoadSpriteFromFile("HappyDragoon-DragoonCapes/Assets/knightIcon6.png");
		Texture2D styleTex6 = AssetUtils.LoadTexture("HappyDragoon-DragoonCapes/Assets/knightTexture.png", true);
		val16.Icons = (Sprite[])(object)new Sprite[6] { val17, val18, val19, val20, val21, val22 };
		val16.StyleTex = styleTex6;
		CustomItem val23 = new CustomItem("CapeKnight", "CapeLinen", val16);
		if (dragoonCapeEffectsEnabled.Value)
		{
			val23.ItemDrop.m_itemData.m_shared.m_equipStatusEffect = (StatusEffect)(object)knightCapeStatus;
		}
		ItemManager.Instance.AddItem(val23);
		((Object)crusaderCapeStatus).name = "$status_crusadercape";
		((StatusEffect)crusaderCapeStatus).m_name = "$status_crusadercape";
		((StatusEffect)crusaderCapeStatus).m_tooltip = "$status_crusadercape_tooltip\n$status_crusadercape_tooltip1<color=orange>+" + CrusaderDamageSpirit.Value * 100f + "%</color>\n$status_crusadercape_tooltip2<color=orange>+" + CrusaderDamageBlunt.Value * 100f + "%</color>";
		((StatusEffect)crusaderCapeStatus).m_startMessage = "$status_crusadercape_startmessage";
		crusaderCapeStatus.m_skillLevel = (SkillType)3;
		crusaderCapeStatus.m_skillLevel2 = (SkillType)102;
		crusaderCapeStatus.m_skillLevelModifier = (crusaderCapeStatus.m_skillLevelModifier2 = CrusaderSkill.Value);
		((StatusEffect)crusaderCapeStatus).m_category = "crusaderCape";
		ItemConfig val24 = new ItemConfig();
		val24.Name = "$item_crusadercape";
		val24.Description = "$item_crusadercape_description";
		val24.CraftingStation = "piece_artisanstation";
		val24.MinStationLevel = -3;
		val24.AddRequirement(new RequirementConfig("CapeLinen", 1, 0, false));
		val24.AddRequirement(new RequirementConfig("LinenThread", 0, 4, false));
		val24.AddRequirement(new RequirementConfig("Raspberry", 10, 5, false));
		val24.AddRequirement(new RequirementConfig("Silver", 10, 5, false));
		Sprite val25 = AssetUtils.LoadSpriteFromFile("HappyDragoon-DragoonCapes/Assets/crusaderIcon1.png");
		Sprite val26 = AssetUtils.LoadSpriteFromFile("HappyDragoon-DragoonCapes/Assets/crusaderIcon2.png");
		Sprite val27 = AssetUtils.LoadSpriteFromFile("HappyDragoon-DragoonCapes/Assets/crusaderIcon3.png");
		Texture2D styleTex7 = AssetUtils.LoadTexture("HappyDragoon-DragoonCapes/Assets/crusaderTexture.png", true);
		val24.Icons = (Sprite[])(object)new Sprite[3] { val25, val26, val27 };
		val24.StyleTex = styleTex7;
		CustomItem val28 = new CustomItem("CapeCrusader", "CapeLinen", val24);
		if (dragoonCapeEffectsEnabled.Value)
		{
			val28.ItemDrop.m_itemData.m_shared.m_equipStatusEffect = (StatusEffect)(object)crusaderCapeStatus;
		}
		ItemManager.Instance.AddItem(val28);
		((Object)berserkCapeStatus).name = "$status_berserkcape";
		((StatusEffect)berserkCapeStatus).m_name = "$status_berserkcape";
		((StatusEffect)berserkCapeStatus).m_tooltip = "$status_berserkcape_tooltip\n$status_berserkcape_tooltip1<color=orange>+" + BerserkDamageMult.Value * 100f + "%</color>";
		((StatusEffect)berserkCapeStatus).m_startMessage = "$status_berserkcape_startmessage";
		((StatusEffect)berserkCapeStatus).m_category = "berserkCape";
		berserkCapeStatus.m_speedModifier = BerserkMoveSpeed.Value;
		ItemConfig val29 = new ItemConfig();
		val29.Name = "$item_berserkcape";
		val29.Description = "$item_berserkcape_description";
		val29.CraftingStation = "piece_workbench";
		val29.AddRequirement(new RequirementConfig("WolfHairBundle", 10, 3, false));
		val29.AddRequirement(new RequirementConfig("Mushroom", 20, 4, false));
		val29.AddRequirement(new RequirementConfig("Obsidian", 10, 3, false));
		Sprite val30 = AssetUtils.LoadSpriteFromFile("HappyDragoon-DragoonCapes/Assets/berserkIcon.png");
		Texture2D styleTex8 = AssetUtils.LoadTexture("HappyDragoon-DragoonCapes/Assets/berserkTexture.png", true);
		val29.Icons = (Sprite[])(object)new Sprite[1] { val30 };
		val29.StyleTex = styleTex8;
		CustomItem val31 = new CustomItem("CapeBerserker", "CapeWolf", val29);
		if (dragoonCapeEffectsEnabled.Value)
		{
			val31.ItemDrop.m_itemData.m_shared.m_equipStatusEffect = (StatusEffect)(object)berserkCapeStatus;
		}
		DamageModPair item4 = default(DamageModPair);
		item4.m_modifier = (DamageModifier)2;
		item4.m_type = (DamageType)4;
		val31.ItemDrop.m_itemData.m_shared.m_damageModifiers.Add(item4);
		DamageModPair item5 = default(DamageModPair);
		item5.m_modifier = (DamageModifier)2;
		item5.m_type = (DamageType)2;
		val31.ItemDrop.m_itemData.m_shared.m_damageModifiers.Add(item5);
		DamageModPair item6 = default(DamageModPair);
		item6.m_modifier = (DamageModifier)2;
		item6.m_type = (DamageType)1;
		val31.ItemDrop.m_itemData.m_shared.m_damageModifiers.Add(item6);
		ItemManager.Instance.AddItem(val31);
		((Object)bushCapeStatus).name = "$status_bushcape";
		((StatusEffect)bushCapeStatus).m_name = "$status_bushcape";
		((StatusEffect)bushCapeStatus).m_tooltip = "$status_bushcape_tooltip\n$status_bushcape_tooltip1<color=orange>+" + (1f - BushNoiseReduction.Value) * 100f + "%</color>\n$status_bushcape_tooltip2<color=orange>+" + BushVelocity.Value * 100f + "%</color>";
		((StatusEffect)bushCapeStatus).m_startMessage = "$status_bushcape_startmessage";
		((StatusEffect)bushCapeStatus).m_category = "bushCape";
		bushCapeStatus.m_skillLevel = (SkillType)101;
		bushCapeStatus.m_skillLevelModifier = 20f;
		ItemConfig val32 = new ItemConfig();
		val32.Name = "$item_bushcape";
		val32.Description = "$item_bushcape_description";
		val32.CraftingStation = "piece_workbench";
		val32.AddRequirement(new RequirementConfig("Wood", 30, 5, false));
		val32.AddRequirement(new RequirementConfig("LeatherScraps", 5, 2, false));
		val32.AddRequirement(new RequirementConfig("Flint", 3, 1, false));
		Sprite val33 = AssetUtils.LoadSpriteFromFile("HappyDragoon-DragoonCapes/Assets/bushIcon.png");
		Texture2D styleTex9 = AssetUtils.LoadTexture("HappyDragoon-DragoonCapes/Assets/bushTexture.png", true);
		val32.Icons = (Sprite[])(object)new Sprite[1] { val33 };
		val32.StyleTex = styleTex9;
		CustomItem val34 = new CustomItem("CapeBush", "CapeFeather", val32);
		if (dragoonCapeEffectsEnabled.Value)
		{
			val34.ItemDrop.m_itemData.m_shared.m_equipStatusEffect = (StatusEffect)(object)bushCapeStatus;
		}
		val34.ItemDrop.m_itemData.m_shared.m_damageModifiers.Clear();
		DamageModPair item7 = default(DamageModPair);
		item7.m_modifier = (DamageModifier)2;
		item7.m_type = (DamageType)32;
		val34.ItemDrop.m_itemData.m_shared.m_damageModifiers.Add(item7);
		ItemManager.Instance.AddItem(val34);
		((Object)boarCapeStatus).name = "$status_boarcape";
		((StatusEffect)boarCapeStatus).m_name = "$status_boarcape";
		((StatusEffect)boarCapeStatus).m_tooltip = "$status_boarcape_tooltip\n$status_boarcape_tooltip1<color=orange>" + BoarDodgeMult.Value * 100f + "%</color>";
		((StatusEffect)boarCapeStatus).m_startMessage = "$status_boarcape_startmessage";
		boarCapeStatus.m_staminaRegenMultiplier = BoarRegen.Value;
		boarCapeStatus.m_skillLevel = (SkillType)3;
		boarCapeStatus.m_skillLevelModifier = BoarSkill.Value;
		((StatusEffect)boarCapeStatus).m_category = "boarCape";
		ItemConfig val35 = new ItemConfig();
		val35.Name = "$item_boarcape";
		val35.Description = "$item_boarcape_description";
		val35.CraftingStation = "piece_workbench";
		val35.AddRequirement(new RequirementConfig("LeatherScraps", 10, 4, false));
		val35.AddRequirement(new RequirementConfig("TrophyBoar", 3, 0, false));
		val35.AddRequirement(new RequirementConfig("Flint", 1, 1, false));
		Sprite val36 = AssetUtils.LoadSpriteFromFile("HappyDragoon-DragoonCapes/Assets/boarIcon.png");
		Texture2D styleTex10 = AssetUtils.LoadTexture("HappyDragoon-DragoonCapes/Assets/boarTexture.png", true);
		val35.Icons = (Sprite[])(object)new Sprite[1] { val36 };
		val35.StyleTex = styleTex10;
		CustomItem val37 = new CustomItem("CapeBoar", "CapeDeerHide", val35);
		if (dragoonCapeEffectsEnabled.Value)
		{
			val37.ItemDrop.m_itemData.m_shared.m_equipStatusEffect = (StatusEffect)(object)boarCapeStatus;
		}
		ItemManager.Instance.AddItem(val37);
		((Object)dwarfCapeStatus).name = "$status_dwarfcape";
		((StatusEffect)dwarfCapeStatus).m_name = "$status_dwarfcape";
		((StatusEffect)dwarfCapeStatus).m_tooltip = "$status_dwarfcape_tooltip\n$status_dwarfcape_tooltip1<color=orange>+" + GreyEitr.Value + "</color>";
		((StatusEffect)dwarfCapeStatus).m_startMessage = "$status_dwarfcape_startmessage";
		((StatusEffect)dwarfCapeStatus).m_category = "dwarfCape";
		dwarfCapeStatus.m_skillLevel = (SkillType)9;
		dwarfCapeStatus.m_skillLevel2 = (SkillType)10;
		dwarfCapeStatus.m_skillLevelModifier = (dwarfCapeStatus.m_skillLevelModifier2 = GreySkill.Value);
		ItemConfig val38 = new ItemConfig();
		val38.Name = "$item_dwarfcape";
		val38.Description = "$item_dwarfcape_description";
		val38.CraftingStation = "piece_workbench";
		val38.AddRequirement(new RequirementConfig("GreydwarfEye", 15, 5, false));
		val38.AddRequirement(new RequirementConfig("TrophyGreydwarfShaman", 1, 0, false));
		val38.AddRequirement(new RequirementConfig("AncientSeed", 2, 1, false));
		Sprite val39 = AssetUtils.LoadSpriteFromFile("HappyDragoon-DragoonCapes/Assets/dwarfIcon.png");
		Texture2D styleTex11 = AssetUtils.LoadTexture("HappyDragoon-DragoonCapes/Assets/dwarfTexture.png", true);
		val38.Icons = (Sprite[])(object)new Sprite[1] { val39 };
		val38.StyleTex = styleTex11;
		CustomItem val40 = new CustomItem("CapeGreydwarf", "CapeOdin", val38);
		if (dragoonCapeEffectsEnabled.Value)
		{
			val40.ItemDrop.m_itemData.m_shared.m_equipStatusEffect = (StatusEffect)(object)dwarfCapeStatus;
		}
		val40.ItemDrop.m_itemData.m_shared.m_dlc = "";
		ItemManager.Instance.AddItem(val40);
		((Object)wraithCapeStatus).name = "$status_wraithcape";
		((StatusEffect)wraithCapeStatus).m_name = "$status_wraithcape";
		((StatusEffect)wraithCapeStatus).m_tooltip = "$status_wraithcape_tooltip\n$status_wraithcape_tooltip1<color=orange>-" + WraithPenalty.Value * 100f + "%</color>\n<color=orange>$status_wraithcape_tooltip2</color>";
		((StatusEffect)wraithCapeStatus).m_startMessage = "$status_wraithcape_startmessage";
		((StatusEffect)wraithCapeStatus).m_category = "wraithCape";
		wraithCapeStatus.m_fallDamageModifier = -2f;
		wraithCapeStatus.m_maxMaxFallSpeed = WraithFall.Value;
		ItemConfig val41 = new ItemConfig();
		val41.Name = "$item_wraithcape";
		val41.Description = "$item_wraithcape_desc";
		val41.CraftingStation = "forge";
		val41.AddRequirement(new RequirementConfig("Entrails", 15, 5, false));
		val41.AddRequirement(new RequirementConfig("TrophyWraith", 1, 0, false));
		val41.AddRequirement(new RequirementConfig("Chain", 4, 2, false));
		Sprite val42 = AssetUtils.LoadSpriteFromFile("HappyDragoon-DragoonCapes/Assets/wraithIcon.png");
		Texture2D styleTex12 = AssetUtils.LoadTexture("HappyDragoon-DragoonCapes/Assets/wraithTexture.png", true);
		val41.Icons = (Sprite[])(object)new Sprite[1] { val42 };
		val41.StyleTex = styleTex12;
		CustomItem val43 = new CustomItem("CapeWraith", "CapeOdin", val41);
		if (dragoonCapeEffectsEnabled.Value)
		{
			val43.ItemDrop.m_itemData.m_shared.m_equipStatusEffect = (StatusEffect)(object)wraithCapeStatus;
		}
		val43.ItemDrop.m_itemData.m_shared.m_dlc = "";
		ItemManager.Instance.AddItem(val43);
		((Object)einherjarCapeStatus).name = "$status_einherjarcape";
		((StatusEffect)einherjarCapeStatus).m_name = "$status_einherjarcape";
		((StatusEffect)einherjarCapeStatus).m_startMessage = "$status_einherjarcape_startmessage";
		((StatusEffect)einherjarCapeStatus).m_category = "einherjarCape";
		if (EinherjarEffect.Value)
		{
			((StatusEffect)einherjarCapeStatus).m_tooltip = "$status_einherjarcape_tooltip\n$status_einherjarcape_tooltip1<color=orange>+" + EinherjarDamageMult.Value * 100f + "%</color>\n$status_einherjarcape_tooltip2<color=orange>+" + (EinherjarVelocity.Value - 1f) * 100f + "%</color>\n$status_einherjarcape_tooltip3<color=orange>" + EinherjarCostMult.Value * 100f + "%</color>\n<color=orange>$status_einherjarcape_tooltip4</color>";
		}
		else
		{
			((StatusEffect)einherjarCapeStatus).m_tooltip = "$status_einherjarcape_tooltip\n$status_einherjarcape_tooltip1<color=orange>+" + EinherjarDamageMult.Value * 100f + "%</color>\n$status_einherjarcape_tooltip2<color=orange>+" + (EinherjarVelocity.Value - 1f) * 100f + "%</color>";
		}
		ItemConfig val44 = new ItemConfig();
		val44.Name = "$item_einherjarcape";
		val44.Description = "$item_einherjarcape_desc";
		val44.CraftingStation = "piece_workbench";
		val44.AddRequirement(new RequirementConfig("MushroomYellow", 10, 5, false));
		val44.AddRequirement(new RequirementConfig("Blueberries", 10, 5, false));
		val44.AddRequirement(new RequirementConfig("Coal", 6, 3, false));
		val44.AddRequirement(new RequirementConfig("LeatherScraps", 10, 2, false));
		Sprite val45 = AssetUtils.LoadSpriteFromFile("HappyDragoon-DragoonCapes/Assets/einherjarIcon.png");
		Texture2D styleTex13 = AssetUtils.LoadTexture("HappyDragoon-DragoonCapes/Assets/einherjarTexture.png", true);
		val44.Icons = (Sprite[])(object)new Sprite[1] { val45 };
		val44.StyleTex = styleTex13;
		CustomItem val46 = new CustomItem("CapeEinherjar", "CapeOdin", val44);
		if (dragoonCapeEffectsEnabled.Value)
		{
			val46.ItemDrop.m_itemData.m_shared.m_equipStatusEffect = (StatusEffect)(object)einherjarCapeStatus;
		}
		val46.ItemDrop.m_itemData.m_shared.m_dlc = "";
		ItemManager.Instance.AddItem(val46);
		((Object)surtlingCapeStatus).name = "$status_surtlingcape";
		((StatusEffect)surtlingCapeStatus).m_name = "$status_surtlingcape";
		((StatusEffect)surtlingCapeStatus).m_category = "surtlingCape";
		((StatusEffect)surtlingCapeStatus).m_tooltip = "$status_surtlingcape_tooltip\n<color=orange>$status_surtlingcape_tooltip1</color>\n$status_surtlingcape_tooltip2<color=orange>+" + SurtlingDamageMult.Value * 100f + "%</color>";
		((StatusEffect)surtlingCapeStatus).m_startMessage = "$status_surtlingcape_startmessage";
		ItemConfig val47 = new ItemConfig();
		val47.Name = "$item_surtlingcape";
		val47.Description = "$item_surtlingcape_desc";
		val47.CraftingStation = "forge";
		val47.AddRequirement(new RequirementConfig("Coal", 30, 5, false));
		val47.AddRequirement(new RequirementConfig("SurtlingCore", 5, 1, false));
		val47.AddRequirement(new RequirementConfig("Coins", 666, 66, false));
		Sprite val48 = AssetUtils.LoadSpriteFromFile("HappyDragoon-DragoonCapes/Assets/surtlingIcon.png");
		Texture2D styleTex14 = AssetUtils.LoadTexture("HappyDragoon-DragoonCapes/Assets/surtlingTexture.png", true);
		val47.Icons = (Sprite[])(object)new Sprite[1] { val48 };
		val47.StyleTex = styleTex14;
		CustomItem val49 = new CustomItem("CapeSurtling", "CapeOdin", val47);
		if (dragoonCapeEffectsEnabled.Value)
		{
			val49.ItemDrop.m_itemData.m_shared.m_equipStatusEffect = (StatusEffect)(object)surtlingCapeStatus;
		}
		val49.ItemDrop.m_itemData.m_shared.m_dlc = "";
		DamageModPair item8 = default(DamageModPair);
		item8.m_modifier = (DamageModifier)5;
		item8.m_type = (DamageType)32;
		val49.ItemDrop.m_itemData.m_shared.m_damageModifiers.Add(item8);
		ItemManager.Instance.AddItem(val49);
		((Object)brawlerCapeStatus).name = "$status_brawlercape";
		((StatusEffect)brawlerCapeStatus).m_name = "$status_brawlercape";
		((StatusEffect)brawlerCapeStatus).m_category = "brawlerCape";
		((StatusEffect)brawlerCapeStatus).m_tooltip = "$status_brawlercape_tooltip\n$status_brawlercape_tooltip1<color=orange>+" + HrugnirDamageMult.Value * 100f + "%</color>";
		((StatusEffect)brawlerCapeStatus).m_startMessage = "$status_brawlercape_startmessage";
		brawlerCapeStatus.m_addMaxCarryWeight = HrugnirCarryWeight.Value;
		ItemConfig val50 = new ItemConfig();
		val50.Name = "$item_brawlercape";
		val50.Description = "$item_brawlercape_desc";
		val50.CraftingStation = "piece_cauldron";
		val50.AddRequirement(new RequirementConfig("Root", 20, 5, false));
		val50.AddRequirement(new RequirementConfig("MeadFrostResist", 5, 0, false));
		val50.AddRequirement(new RequirementConfig("Ooze", 12, 4, false));
		Sprite val51 = AssetUtils.LoadSpriteFromFile("HappyDragoon-DragoonCapes/Assets/brawlerIcon.png");
		Texture2D styleTex15 = AssetUtils.LoadTexture("HappyDragoon-DragoonCapes/Assets/brawlerTexture.png", true);
		val50.Icons = (Sprite[])(object)new Sprite[1] { val51 };
		val50.StyleTex = styleTex15;
		CustomItem val52 = new CustomItem("CapeBrawler", "CapeDeerHide", val50);
		if (dragoonCapeEffectsEnabled.Value)
		{
			val52.ItemDrop.m_itemData.m_shared.m_equipStatusEffect = (StatusEffect)(object)brawlerCapeStatus;
		}
		ItemManager.Instance.AddItem(val52);
		((Object)leechCapeStatus).name = "$status_leechcape";
		((StatusEffect)leechCapeStatus).m_name = "$status_leechcape";
		((StatusEffect)leechCapeStatus).m_category = "leechCape";
		((StatusEffect)leechCapeStatus).m_tooltip = "$status_leechcape_tooltip\n$status_leechcape_tooltip1<color=orange>+" + LeechLifesteal.Value * 100f + "%</color>";
		((StatusEffect)leechCapeStatus).m_startMessage = "$status_leechcape_startmessage";
		ItemConfig val53 = new ItemConfig();
		val53.Name = "$item_leechcape";
		val53.Description = "$item_leechcape_desc";
		val53.CraftingStation = "piece_workbench";
		val53.AddRequirement(new RequirementConfig("Bloodbag", 25, 7, false));
		val53.AddRequirement(new RequirementConfig("Iron", 5, 0, false));
		val53.AddRequirement(new RequirementConfig("Root", 8, 4, false));
		Sprite val54 = AssetUtils.LoadSpriteFromFile("HappyDragoon-DragoonCapes/Assets/leechIcon.png");
		Texture2D styleTex16 = AssetUtils.LoadTexture("HappyDragoon-DragoonCapes/Assets/leechTexture.png", true);
		val53.Icons = (Sprite[])(object)new Sprite[1] { val54 };
		val53.StyleTex = styleTex16;
		CustomItem val55 = new CustomItem("CapeLeech", "CapeFeather", val53);
		val55.ItemDrop.m_itemData.m_shared.m_damageModifiers.Clear();
		if (dragoonCapeEffectsEnabled.Value)
		{
			val55.ItemDrop.m_itemData.m_shared.m_equipStatusEffect = (StatusEffect)(object)leechCapeStatus;
		}
		ItemManager.Instance.AddItem(val55);
		((Object)stalkerCapeStatus).name = "$status_stalkerscape";
		((StatusEffect)stalkerCapeStatus).m_name = "$status_stalkerscape";
		((StatusEffect)stalkerCapeStatus).m_category = "stalkerCape";
		((StatusEffect)stalkerCapeStatus).m_tooltip = "$status_stalkerscape_tooltip";
		((StatusEffect)stalkerCapeStatus).m_startMessage = "$status_stalkerscape_startmessage";
		stalkerCapeStatus.m_staminaRegenMultiplier = nightstalkerRegen.Value;
		stalkerCapeStatus.m_skillLevel = (SkillType)8;
		stalkerCapeStatus.m_skillLevelModifier = nightstalkerSkill.Value;
		ItemConfig val56 = new ItemConfig();
		val56.Name = "$item_stalkerscape";
		val56.Description = "$item_stalkerscape_desc";
		val56.CraftingStation = "forge";
		val56.AddRequirement(new RequirementConfig("WolfHairBundle", 15, 5, false));
		val56.AddRequirement(new RequirementConfig("Silver", 5, 0, false));
		val56.AddRequirement(new RequirementConfig("Obsidian", 8, 4, false));
		Sprite val57 = AssetUtils.LoadSpriteFromFile("HappyDragoon-DragoonCapes/Assets/stalkerIcon.png");
		Texture2D styleTex17 = AssetUtils.LoadTexture("HappyDragoon-DragoonCapes/Assets/stalkerTexture.png", true);
		val56.Icons = (Sprite[])(object)new Sprite[1] { val57 };
		val56.StyleTex = styleTex17;
		CustomItem val58 = new CustomItem("CapeStalker", "CapeOdin", val56);
		if (dragoonCapeEffectsEnabled.Value)
		{
			val58.ItemDrop.m_itemData.m_shared.m_equipStatusEffect = (StatusEffect)(object)stalkerCapeStatus;
		}
		val58.ItemDrop.m_itemData.m_shared.m_dlc = "";
		ItemManager.Instance.AddItem(val58);
		((Object)adventurerCapeStatus).name = "$status_adventurercape";
		((StatusEffect)adventurerCapeStatus).m_name = "$status_adventurercape";
		((StatusEffect)adventurerCapeStatus).m_category = "adventurerCape";
		((StatusEffect)adventurerCapeStatus).m_startMessage = "$status_adventurercape_startmessage";
		string text = "$status_adventurercape_tooltip";
		string text2 = "\n$status_adventurercape_tooltip1<color=orange>" + AdventurerComfortBonus.Value + "</color>";
		string text3 = "\n<color=orange>$status_adventurercape_tooltip2</color>";
		if (AdventurerComfortBonus.Value > 0)
		{
			text += text2;
		}
		if (AdventurerEffect.Value)
		{
			text += text3;
		}
		((StatusEffect)adventurerCapeStatus).m_tooltip = text;
		ItemConfig val59 = new ItemConfig();
		val59.Name = "$item_adventurercape";
		val59.Description = "$item_adventurercape_desc";
		val59.CraftingStation = "piece_workbench";
		val59.AddRequirement(new RequirementConfig("LoxPelt", 15, 5, false));
		val59.AddRequirement(new RequirementConfig("Silver", 5, 0, false));
		val59.AddRequirement(new RequirementConfig("Guck", 5, 3, f