Decompiled source of DragoonCapes v1.3.2

plugins\DragoonCapes.dll

Decompiled a day ago
using System;
using System.Diagnostics;
using System.IO;
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_attackStaminaModifier = global::DragoonCapes.DragoonCapes.Instance.WolfStam.Value * -1f;
				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".GetHashCode()))
		{
			((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
{
}
[HarmonyPatch]
internal class BrawlerCape
{
	[HarmonyPrefix]
	[HarmonyPatch(typeof(Character), "Damage")]
	private static void JotunnPunch_Prefix(HitData hit)
	{
		//IL_00be: Unknown result type (might be due to invalid IL or missing references)
		//IL_00c5: 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".GetHashCode()) || sEMan.HaveStatusEffect("Potion_poisonresist".GetHashCode()) || sEMan.HaveStatusEffect("Potion_tasty".GetHashCode())) && (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.2")]
[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.2";

	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> WolfSkill;

	public ConfigEntry<float> WolfStam;

	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> BoarDodgeDiscount;

	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;

	public ConfigEntry<float> RabbitSpeed;

	public ConfigEntry<int> RabbitSkill;

	public ConfigEntry<int> RabbitArmor;

	public ConfigEntry<int> RabbitArmorPerLevel;

	public ConfigEntry<float> RustedSpeed;

	public ConfigEntry<int> RustedArmor;

	public ConfigEntry<int> RustedArmorPerLevel;

	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 rabbitCapeStatus = ScriptableObject.CreateInstance<SE_Stats>();

	private static SE_Stats rustedCapeStatus = 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_00f1: Unknown result type (might be due to invalid IL or missing references)
		//IL_00f6: Unknown result type (might be due to invalid IL or missing references)
		//IL_00ff: Expected O, but got Unknown
		//IL_00ff: Unknown result type (might be due to invalid IL or missing references)
		//IL_0109: Expected O, but got Unknown
		//IL_0144: Unknown result type (might be due to invalid IL or missing references)
		//IL_0149: Unknown result type (might be due to invalid IL or missing references)
		//IL_0152: Expected O, but got Unknown
		//IL_0152: Unknown result type (might be due to invalid IL or missing references)
		//IL_015c: Expected O, but got Unknown
		//IL_0190: Unknown result type (might be due to invalid IL or missing references)
		//IL_0195: Unknown result type (might be due to invalid IL or missing references)
		//IL_019e: Expected O, but got Unknown
		//IL_019e: Unknown result type (might be due to invalid IL or missing references)
		//IL_01a8: Expected O, but got Unknown
		//IL_01e0: Unknown result type (might be due to invalid IL or missing references)
		//IL_01e5: Unknown result type (might be due to invalid IL or missing references)
		//IL_01ee: Expected O, but got Unknown
		//IL_01ee: Unknown result type (might be due to invalid IL or missing references)
		//IL_01f8: Expected O, but got Unknown
		//IL_0233: Unknown result type (might be due to invalid IL or missing references)
		//IL_0238: Unknown result type (might be due to invalid IL or missing references)
		//IL_0241: Expected O, but got Unknown
		//IL_0241: Unknown result type (might be due to invalid IL or missing references)
		//IL_024b: Expected O, but got Unknown
		//IL_0286: Unknown result type (might be due to invalid IL or missing references)
		//IL_028b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0294: Expected O, but got Unknown
		//IL_0294: Unknown result type (might be due to invalid IL or missing references)
		//IL_029e: Expected O, but got Unknown
		//IL_02d9: Unknown result type (might be due to invalid IL or missing references)
		//IL_02de: Unknown result type (might be due to invalid IL or missing references)
		//IL_02e7: Expected O, but got Unknown
		//IL_02e7: Unknown result type (might be due to invalid IL or missing references)
		//IL_02f1: Expected O, but got Unknown
		//IL_032c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0331: Unknown result type (might be due to invalid IL or missing references)
		//IL_033a: Expected O, but got Unknown
		//IL_033a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0344: Expected O, but got Unknown
		//IL_037f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0384: Unknown result type (might be due to invalid IL or missing references)
		//IL_038d: Expected O, but got Unknown
		//IL_038d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0397: Expected O, but got Unknown
		//IL_03c7: Unknown result type (might be due to invalid IL or missing references)
		//IL_03cc: Unknown result type (might be due to invalid IL or missing references)
		//IL_03d5: Expected O, but got Unknown
		//IL_03d5: Unknown result type (might be due to invalid IL or missing references)
		//IL_03df: Expected O, but got Unknown
		//IL_041a: Unknown result type (might be due to invalid IL or missing references)
		//IL_041f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0428: Expected O, but got Unknown
		//IL_0428: Unknown result type (might be due to invalid IL or missing references)
		//IL_0432: Expected O, but got Unknown
		//IL_0463: Unknown result type (might be due to invalid IL or missing references)
		//IL_0468: Unknown result type (might be due to invalid IL or missing references)
		//IL_0471: Expected O, but got Unknown
		//IL_0471: Unknown result type (might be due to invalid IL or missing references)
		//IL_047b: 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_04e9: Unknown result type (might be due to invalid IL or missing references)
		//IL_04ee: Unknown result type (might be due to invalid IL or missing references)
		//IL_04f7: Expected O, but got Unknown
		//IL_04f7: Unknown result type (might be due to invalid IL or missing references)
		//IL_0501: Expected O, but got Unknown
		//IL_053c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0541: Unknown result type (might be due to invalid IL or missing references)
		//IL_054a: Expected O, but got Unknown
		//IL_054a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0554: Expected O, but got Unknown
		//IL_0585: Unknown result type (might be due to invalid IL or missing references)
		//IL_058a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0593: Expected O, but got Unknown
		//IL_0593: Unknown result type (might be due to invalid IL or missing references)
		//IL_059d: Expected O, but got Unknown
		//IL_05d8: Unknown result type (might be due to invalid IL or missing references)
		//IL_05dd: Unknown result type (might be due to invalid IL or missing references)
		//IL_05e6: Expected O, but got Unknown
		//IL_05e6: Unknown result type (might be due to invalid IL or missing references)
		//IL_05f0: Expected O, but got Unknown
		//IL_062b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0630: Unknown result type (might be due to invalid IL or missing references)
		//IL_0639: Expected O, but got Unknown
		//IL_0639: Unknown result type (might be due to invalid IL or missing references)
		//IL_0643: Expected O, but got Unknown
		//IL_0674: Unknown result type (might be due to invalid IL or missing references)
		//IL_0679: Unknown result type (might be due to invalid IL or missing references)
		//IL_0682: Expected O, but got Unknown
		//IL_0682: Unknown result type (might be due to invalid IL or missing references)
		//IL_068c: Expected O, but got Unknown
		//IL_06c7: Unknown result type (might be due to invalid IL or missing references)
		//IL_06cc: Unknown result type (might be due to invalid IL or missing references)
		//IL_06d5: Expected O, but got Unknown
		//IL_06d5: Unknown result type (might be due to invalid IL or missing references)
		//IL_06df: Expected O, but got Unknown
		//IL_071a: Unknown result type (might be due to invalid IL or missing references)
		//IL_071f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0728: Expected O, but got Unknown
		//IL_0728: Unknown result type (might be due to invalid IL or missing references)
		//IL_0732: Expected O, but got Unknown
		//IL_0763: Unknown result type (might be due to invalid IL or missing references)
		//IL_0768: Unknown result type (might be due to invalid IL or missing references)
		//IL_0771: Expected O, but got Unknown
		//IL_0771: Unknown result type (might be due to invalid IL or missing references)
		//IL_077b: Expected O, but got Unknown
		//IL_07b6: Unknown result type (might be due to invalid IL or missing references)
		//IL_07bb: Unknown result type (might be due to invalid IL or missing references)
		//IL_07c4: Expected O, but got Unknown
		//IL_07c4: Unknown result type (might be due to invalid IL or missing references)
		//IL_07ce: Expected O, but got Unknown
		//IL_0809: Unknown result type (might be due to invalid IL or missing references)
		//IL_080e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0817: Expected O, but got Unknown
		//IL_0817: Unknown result type (might be due to invalid IL or missing references)
		//IL_0821: Expected O, but got Unknown
		//IL_085c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0861: Unknown result type (might be due to invalid IL or missing references)
		//IL_086a: Expected O, but got Unknown
		//IL_086a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0874: Expected O, but got Unknown
		//IL_08af: Unknown result type (might be due to invalid IL or missing references)
		//IL_08b4: Unknown result type (might be due to invalid IL or missing references)
		//IL_08bd: Expected O, but got Unknown
		//IL_08bd: Unknown result type (might be due to invalid IL or missing references)
		//IL_08c7: Expected O, but got Unknown
		//IL_08f8: Unknown result type (might be due to invalid IL or missing references)
		//IL_08fd: Unknown result type (might be due to invalid IL or missing references)
		//IL_0906: Expected O, but got Unknown
		//IL_0906: Unknown result type (might be due to invalid IL or missing references)
		//IL_0910: Expected O, but got Unknown
		//IL_094b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0950: Unknown result type (might be due to invalid IL or missing references)
		//IL_0959: Expected O, but got Unknown
		//IL_0959: Unknown result type (might be due to invalid IL or missing references)
		//IL_0963: Expected O, but got Unknown
		//IL_099e: Unknown result type (might be due to invalid IL or missing references)
		//IL_09a3: Unknown result type (might be due to invalid IL or missing references)
		//IL_09ac: Expected O, but got Unknown
		//IL_09ac: Unknown result type (might be due to invalid IL or missing references)
		//IL_09b6: Expected O, but got Unknown
		//IL_09e7: Unknown result type (might be due to invalid IL or missing references)
		//IL_09ec: Unknown result type (might be due to invalid IL or missing references)
		//IL_09f5: Expected O, but got Unknown
		//IL_09f5: Unknown result type (might be due to invalid IL or missing references)
		//IL_09ff: Expected O, but got Unknown
		//IL_0a3a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a3f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a48: Expected O, but got Unknown
		//IL_0a48: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a52: Expected O, but got Unknown
		//IL_0a8d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a92: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a9b: Expected O, but got Unknown
		//IL_0a9b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0aa5: Expected O, but got Unknown
		//IL_0ad5: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ada: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ae3: Expected O, but got Unknown
		//IL_0ae3: Unknown result type (might be due to invalid IL or missing references)
		//IL_0aed: Expected O, but got Unknown
		//IL_0b28: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b2d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b36: Expected O, but got Unknown
		//IL_0b36: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b40: Expected O, but got Unknown
		//IL_0b7b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b80: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b89: Expected O, but got Unknown
		//IL_0b89: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b93: Expected O, but got Unknown
		//IL_0bce: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bd3: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bdc: Expected O, but got Unknown
		//IL_0bdc: Unknown result type (might be due to invalid IL or missing references)
		//IL_0be6: Expected O, but got Unknown
		//IL_0c1d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c22: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c2b: Expected O, but got Unknown
		//IL_0c2b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c35: Expected O, but got Unknown
		//IL_0c70: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c75: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c7e: Expected O, but got Unknown
		//IL_0c7e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c88: Expected O, but got Unknown
		//IL_0cc3: Unknown result type (might be due to invalid IL or missing references)
		//IL_0cc8: Unknown result type (might be due to invalid IL or missing references)
		//IL_0cd1: Expected O, but got Unknown
		//IL_0cd1: Unknown result type (might be due to invalid IL or missing references)
		//IL_0cdb: Expected O, but got Unknown
		//IL_0d16: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d1b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d24: Expected O, but got Unknown
		//IL_0d24: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d2e: Expected O, but got Unknown
		//IL_0d69: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d6e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d77: Expected O, but got Unknown
		//IL_0d77: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d81: 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_0df9: Unknown result type (might be due to invalid IL or missing references)
		//IL_0dfe: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e07: Expected O, but got Unknown
		//IL_0e07: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e11: Expected O, but got Unknown
		//IL_0e45: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e4a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e53: Expected O, but got Unknown
		//IL_0e53: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e5d: Expected O, but got Unknown
		//IL_0e98: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e9d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ea6: Expected O, but got Unknown
		//IL_0ea6: Unknown result type (might be due to invalid IL or missing references)
		//IL_0eb0: Expected O, but got Unknown
		//IL_0eeb: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ef0: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ef9: Expected O, but got Unknown
		//IL_0ef9: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f03: Expected O, but got Unknown
		//IL_0f3e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f43: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f4c: Expected O, but got Unknown
		//IL_0f4c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f56: Expected O, but got Unknown
		//IL_0f87: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f8c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f95: Expected O, but got Unknown
		//IL_0f95: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f9f: 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_1010: Unknown result type (might be due to invalid IL or missing references)
		//IL_1015: Unknown result type (might be due to invalid IL or missing references)
		//IL_101e: Expected O, but got Unknown
		//IL_101e: Unknown result type (might be due to invalid IL or missing references)
		//IL_1028: Expected O, but got Unknown
		//IL_1063: Unknown result type (might be due to invalid IL or missing references)
		//IL_1068: Unknown result type (might be due to invalid IL or missing references)
		//IL_1071: Expected O, but got Unknown
		//IL_1071: Unknown result type (might be due to invalid IL or missing references)
		//IL_107b: Expected O, but got Unknown
		//IL_10ac: Unknown result type (might be due to invalid IL or missing references)
		//IL_10b1: Unknown result type (might be due to invalid IL or missing references)
		//IL_10ba: Expected O, but got Unknown
		//IL_10ba: Unknown result type (might be due to invalid IL or missing references)
		//IL_10c4: Expected O, but got Unknown
		//IL_10f4: Unknown result type (might be due to invalid IL or missing references)
		//IL_10f9: Unknown result type (might be due to invalid IL or missing references)
		//IL_1102: Expected O, but got Unknown
		//IL_1102: Unknown result type (might be due to invalid IL or missing references)
		//IL_110c: Expected O, but got Unknown
		//IL_113c: Unknown result type (might be due to invalid IL or missing references)
		//IL_1141: Unknown result type (might be due to invalid IL or missing references)
		//IL_114a: Expected O, but got Unknown
		//IL_114a: Unknown result type (might be due to invalid IL or missing references)
		//IL_1154: Expected O, but got Unknown
		//IL_118f: Unknown result type (might be due to invalid IL or missing references)
		//IL_1194: Unknown result type (might be due to invalid IL or missing references)
		//IL_119d: Expected O, but got Unknown
		//IL_119d: Unknown result type (might be due to invalid IL or missing references)
		//IL_11a7: Expected O, but got Unknown
		//IL_11d8: Unknown result type (might be due to invalid IL or missing references)
		//IL_11dd: Unknown result type (might be due to invalid IL or missing references)
		//IL_11e6: Expected O, but got Unknown
		//IL_11e6: Unknown result type (might be due to invalid IL or missing references)
		//IL_11f0: Expected O, but got Unknown
		//IL_1220: Unknown result type (might be due to invalid IL or missing references)
		//IL_1225: Unknown result type (might be due to invalid IL or missing references)
		//IL_122e: Expected O, but got Unknown
		//IL_122e: Unknown result type (might be due to invalid IL or missing references)
		//IL_1238: 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
		} }));
		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
			}
		}));
		WolfStam = ((BaseUnityPlugin)this).Config.Bind<float>("Server config", "WolfStam", 0.15f, new ConfigDescription("Wolf cape attack stamina reduction", (AcceptableValueBase)null, new object[2]
		{
			new AcceptableValueRange<float>(0.01f, 1f),
			(object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			}
		}));
		DeerMoveSpeed = ((BaseUnityPlugin)this).Config.Bind<float>("Server config", "DeerMoveSpeed", 0.05f, new ConfigDescription("Deer cape move 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
			}
		}));
		BoarDodgeDiscount = ((BaseUnityPlugin)this).Config.Bind<float>("Server config", "BoarDodgeMult", 0.25f, new ConfigDescription("The stamina discount to apply to the boar cape", (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
			}
		}));
		RabbitSpeed = ((BaseUnityPlugin)this).Config.Bind<float>("Server config", "RabbitSpeed", 0.15f, new ConfigDescription("Rabbit Cape movement speed bonus.", (AcceptableValueBase)null, new object[2]
		{
			new AcceptableValueRange<float>(0f, 1f),
			(object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			}
		}));
		RabbitSkill = ((BaseUnityPlugin)this).Config.Bind<int>("Server config", "RabbitSkill", 20, new ConfigDescription("Rabbit Cape jump skill bonus", (AcceptableValueBase)null, new object[2]
		{
			new AcceptableValueRange<int>(0, 100),
			(object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			}
		}));
		RabbitArmor = ((BaseUnityPlugin)this).Config.Bind<int>("Server config", "RabbitArmor", 4, new ConfigDescription("Rabbit cape base armor.", (AcceptableValueBase)null, new object[2]
		{
			new AcceptableValueRange<int>(0, 100),
			(object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			}
		}));
		RabbitArmorPerLevel = ((BaseUnityPlugin)this).Config.Bind<int>("Server config", "RabbitArmorPerLevel", 1, new ConfigDescription("Rabbit cape armor increase per Level", (AcceptableValueBase)null, new object[2]
		{
			new AcceptableValueRange<int>(0, 100),
			(object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			}
		}));
		RustedSpeed = ((BaseUnityPlugin)this).Config.Bind<float>("Server config", "RustedSpeed", -0.2f, new ConfigDescription("Rusted cape speed modifier.", (AcceptableValueBase)null, new object[2]
		{
			new AcceptableValueRange<float>(-1f, 1f),
			(object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			}
		}));
		RustedArmor = ((BaseUnityPlugin)this).Config.Bind<int>("Server config", "RustedArmor", 12, new ConfigDescription("Rusted cape base armor.", (AcceptableValueBase)null, new object[2]
		{
			new AcceptableValueRange<int>(0, 100),
			(object)new ConfigurationManagerAttributes
			{
				IsAdminOnly = true
			}
		}));
		RustedArmorPerLevel = ((BaseUnityPlugin)this).Config.Bind<int>("Server config", "RustedArmorPerLevel", 5, new ConfigDescription("Rusted cape armor increase per Level", (AcceptableValueBase)null, new object[2]
		{
			new AcceptableValueRange<int>(0, 100),
			(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_0160: Unknown result type (might be due to invalid IL or missing references)
		//IL_0167: Expected O, but got Unknown
		//IL_01a7: Unknown result type (might be due to invalid IL or missing references)
		//IL_01b0: Unknown result type (might be due to invalid IL or missing references)
		//IL_01bc: Unknown result type (might be due to invalid IL or missing references)
		//IL_01d7: Unknown result type (might be due to invalid IL or missing references)
		//IL_0230: Unknown result type (might be due to invalid IL or missing references)
		//IL_023b: Unknown result type (might be due to invalid IL or missing references)
		//IL_027a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0281: Expected O, but got Unknown
		//IL_02b3: Unknown result type (might be due to invalid IL or missing references)
		//IL_02bd: Expected O, but got Unknown
		//IL_02c8: Unknown result type (might be due to invalid IL or missing references)
		//IL_02d2: Expected O, but got Unknown
		//IL_02dd: Unknown result type (might be due to invalid IL or missing references)
		//IL_02e7: Expected O, but got Unknown
		//IL_032a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0331: Expected O, but got Unknown
		//IL_03b0: Unknown result type (might be due to invalid IL or missing references)
		//IL_03cb: Unknown result type (might be due to invalid IL or missing references)
		//IL_03fd: Unknown result type (might be due to invalid IL or missing references)
		//IL_0404: Expected O, but got Unknown
		//IL_0436: Unknown result type (might be due to invalid IL or missing references)
		//IL_0440: Expected O, but got Unknown
		//IL_044b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0455: Expected O, but got Unknown
		//IL_0460: Unknown result type (might be due to invalid IL or missing references)
		//IL_046a: Expected O, but got Unknown
		//IL_04ad: Unknown result type (might be due to invalid IL or missing references)
		//IL_04b4: Expected O, but got Unknown
		//IL_0500: Unknown result type (might be due to invalid IL or missing references)
		//IL_0509: Unknown result type (might be due to invalid IL or missing references)
		//IL_0512: Unknown result type (might be due to invalid IL or missing references)
		//IL_052d: Unknown result type (might be due to invalid IL or missing references)
		//IL_058e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0595: Expected O, but got Unknown
		//IL_05d1: Unknown result type (might be due to invalid IL or missing references)
		//IL_05db: Expected O, but got Unknown
		//IL_05e6: Unknown result type (might be due to invalid IL or missing references)
		//IL_05f0: Expected O, but got Unknown
		//IL_05fb: Unknown result type (might be due to invalid IL or missing references)
		//IL_0605: Expected O, but got Unknown
		//IL_0648: Unknown result type (might be due to invalid IL or missing references)
		//IL_064f: Expected O, but got Unknown
		//IL_0711: Unknown result type (might be due to invalid IL or missing references)
		//IL_0718: Expected O, but got Unknown
		//IL_074a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0754: Expected O, but got Unknown
		//IL_075f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0769: Expected O, but got Unknown
		//IL_0774: Unknown result type (might be due to invalid IL or missing references)
		//IL_077e: Expected O, but got Unknown
		//IL_07c1: Unknown result type (might be due to invalid IL or missing references)
		//IL_07c8: Expected O, but got Unknown
		//IL_0814: Unknown result type (might be due to invalid IL or missing references)
		//IL_081d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0829: Unknown result type (might be due to invalid IL or missing references)
		//IL_0844: Unknown result type (might be due to invalid IL or missing references)
		//IL_08c0: Unknown result type (might be due to invalid IL or missing references)
		//IL_08cb: Unknown result type (might be due to invalid IL or missing references)
		//IL_0919: Unknown result type (might be due to invalid IL or missing references)
		//IL_0920: Expected O, but got Unknown
		//IL_095b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0965: Expected O, but got Unknown
		//IL_0970: Unknown result type (might be due to invalid IL or missing references)
		//IL_097a: Expected O, but got Unknown
		//IL_0985: Unknown result type (might be due to invalid IL or missing references)
		//IL_098f: Expected O, but got Unknown
		//IL_099a: Unknown result type (might be due to invalid IL or missing references)
		//IL_09a4: Expected O, but got Unknown
		//IL_09af: Unknown result type (might be due to invalid IL or missing references)
		//IL_09b9: Expected O, but got Unknown
		//IL_0a51: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a58: Expected O, but got Unknown
		//IL_0b2e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b3a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b73: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b7a: Expected O, but got Unknown
		//IL_0bb5: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bbf: Expected O, but got Unknown
		//IL_0bca: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bd4: Expected O, but got Unknown
		//IL_0be0: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bea: Expected O, but got Unknown
		//IL_0bf6: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c00: Expected O, but got Unknown
		//IL_0c65: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c6c: Expected O, but got Unknown
		//IL_0d2c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d33: Expected O, but got Unknown
		//IL_0d65: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d6f: Expected O, but got Unknown
		//IL_0d7b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d85: Expected O, but got Unknown
		//IL_0d91: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d9b: Expected O, but got Unknown
		//IL_0dde: Unknown result type (might be due to invalid IL or missing references)
		//IL_0de5: Expected O, but got Unknown
		//IL_0e15: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e1e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e26: 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_0e4b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e54: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e5c: 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_0e81: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e8a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e92: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ead: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f73: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f87: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f8e: Expected O, but got Unknown
		//IL_0fc0: Unknown result type (might be due to invalid IL or missing references)
		//IL_0fca: Expected O, but got Unknown
		//IL_0fd5: Unknown result type (might be due to invalid IL or missing references)
		//IL_0fdf: Expected O, but got Unknown
		//IL_0fea: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ff4: Expected O, but got Unknown
		//IL_1037: Unknown result type (might be due to invalid IL or missing references)
		//IL_103e: Expected O, but got Unknown
		//IL_108a: Unknown result type (might be due to invalid IL or missing references)
		//IL_1093: Unknown result type (might be due to invalid IL or missing references)
		//IL_109c: Unknown result type (might be due to invalid IL or missing references)
		//IL_10b7: Unknown result type (might be due to invalid IL or missing references)
		//IL_1124: Unknown result type (might be due to invalid IL or missing references)
		//IL_114e: Unknown result type (might be due to invalid IL or missing references)
		//IL_1155: Expected O, but got Unknown
		//IL_1187: Unknown result type (might be due to invalid IL or missing references)
		//IL_1191: Expected O, but got Unknown
		//IL_119c: Unknown result type (might be due to invalid IL or missing references)
		//IL_11a6: Expected O, but got Unknown
		//IL_11b1: Unknown result type (might be due to invalid IL or missing references)
		//IL_11bb: Expected O, but got Unknown
		//IL_11fe: Unknown result type (might be due to invalid IL or missing references)
		//IL_1205: Expected O, but got Unknown
		//IL_12d8: Unknown result type (might be due to invalid IL or missing references)
		//IL_12e4: Unknown result type (might be due to invalid IL or missing references)
		//IL_130e: Unknown result type (might be due to invalid IL or missing references)
		//IL_1315: Expected O, but got Unknown
		//IL_1347: Unknown result type (might be due to invalid IL or missing references)
		//IL_1351: Expected O, but got Unknown
		//IL_135c: Unknown result type (might be due to invalid IL or missing references)
		//IL_1366: Expected O, but got Unknown
		//IL_1371: Unknown result type (might be due to invalid IL or missing references)
		//IL_137b: Expected O, but got Unknown
		//IL_13be: Unknown result type (might be due to invalid IL or missing references)
		//IL_13c5: Expected O, but got Unknown
		//IL_14af: Unknown result type (might be due to invalid IL or missing references)
		//IL_14b6: Expected O, but got Unknown
		//IL_14e8: Unknown result type (might be due to invalid IL or missing references)
		//IL_14f2: Expected O, but got Unknown
		//IL_14fd: Unknown result type (might be due to invalid IL or missing references)
		//IL_1507: Expected O, but got Unknown
		//IL_1512: Unknown result type (might be due to invalid IL or missing references)
		//IL_151c: Expected O, but got Unknown
		//IL_155f: Unknown result type (might be due to invalid IL or missing references)
		//IL_1566: Expected O, but got Unknown
		//IL_1712: Unknown result type (might be due to invalid IL or missing references)
		//IL_1719: 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_1761: Unknown result type (might be due to invalid IL or missing references)
		//IL_176b: 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_178c: Unknown result type (might be due to invalid IL or missing references)
		//IL_1796: Expected O, but got Unknown
		//IL_17d9: Unknown result type (might be due to invalid IL or missing references)
		//IL_17e0: Expected O, but got Unknown
		//IL_18a6: Unknown result type (might be due to invalid IL or missing references)
		//IL_18ad: Expected O, but got Unknown
		//IL_18df: Unknown result type (might be due to invalid IL or missing references)
		//IL_18e9: Expected O, but got Unknown
		//IL_18f4: Unknown result type (might be due to invalid IL or missing references)
		//IL_18fe: Expected O, but got Unknown
		//IL_190e: Unknown result type (might be due to invalid IL or missing references)
		//IL_1918: Expected O, but got Unknown
		//IL_195b: Unknown result type (might be due to invalid IL or missing references)
		//IL_1962: Expected O, but got Unknown
		//IL_19ad: Unknown result type (might be due to invalid IL or missing references)
		//IL_19b6: Unknown result type (might be due to invalid IL or missing references)
		//IL_19bf: Unknown result type (might be due to invalid IL or missing references)
		//IL_19da: Unknown result type (might be due to invalid IL or missing references)
		//IL_1a75: Unknown result type (might be due to invalid IL or missing references)
		//IL_1a7c: Expected O, but got Unknown
		//IL_1aae: Unknown result type (might be due to invalid IL or missing references)
		//IL_1ab8: 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_1ad9: Unknown result type (might be due to invalid IL or missing references)
		//IL_1ae3: Expected O, but got Unknown
		//IL_1b26: Unknown result type (might be due to invalid IL or missing references)
		//IL_1b2d: Expected O, but got Unknown
		//IL_1bd8: Unknown result type (might be due to invalid IL or missing references)
		//IL_1bdf: Expected O, but got Unknown
		//IL_1c11: Unknown result type (might be due to invalid IL or missing references)
		//IL_1c1b: Expected O, but got Unknown
		//IL_1c26: Unknown result type (might be due to invalid IL or missing references)
		//IL_1c30: Expected O, but got Unknown
		//IL_1c3b: Unknown result type (might be due to invalid IL or missing references)
		//IL_1c45: Expected O, but got Unknown
		//IL_1c88: Unknown result type (might be due to invalid IL or missing references)
		//IL_1c8f: Expected O, but got Unknown
		//IL_1d68: Unknown result type (might be due to invalid IL or missing references)
		//IL_1d83: Unknown result type (might be due to invalid IL or missing references)
		//IL_1d8a: Expected O, but got Unknown
		//IL_1dbc: Unknown result type (might be due to invalid IL or missing references)
		//IL_1dc6: Expected O, but got Unknown
		//IL_1dd1: Unknown result type (might be due to invalid IL or missing references)
		//IL_1ddb: Expected O, but got Unknown
		//IL_1de6: Unknown result type (might be due to invalid IL or missing references)
		//IL_1df0: Expected O, but got Unknown
		//IL_1e33: Unknown result type (might be due to invalid IL or missing references)
		//IL_1e3a: Expected O, but got Unknown
		//IL_1f4b: Unknown result type (might be due to invalid IL or missing references)
		//IL_1f52: Expected O, but got Unknown
		//IL_1f84: Unknown result type (might be due to invalid IL or missing references)
		//IL_1f8e: Expected O, but got Unknown
		//IL_1f99: Unknown result type (might be due to invalid IL or missing references)
		//IL_1fa3: Expected O, but got Unknown
		//IL_1fae: Unknown result type (might be due to invalid IL or missing references)
		//IL_1fb8: Expected O, but got Unknown
		//IL_1ffb: Unknown result type (might be due to invalid IL or missing references)
		//IL_2002: Expected O, but got Unknown
		//IL_2090: Unknown result type (might be due to invalid IL or missing references)
		//IL_209c: Unknown result type (might be due to invalid IL or missing references)
		//IL_20e2: Unknown result type (might be due to invalid IL or missing references)
		//IL_20e9: Expected O, but got Unknown
		//IL_211c: Unknown result type (might be due to invalid IL or missing references)
		//IL_2126: Expected O, but got Unknown
		//IL_2132: Unknown result type (might be due to invalid IL or missing references)
		//IL_213c: Expected O, but got Unknown
		//IL_2147: Unknown result type (might be due to invalid IL or missing references)
		//IL_2151: Expected O, but got Unknown
		//IL_2194: Unknown result type (might be due to invalid IL or missing references)
		//IL_219b: Expected O, but got Unknown
		//IL_227b: Unknown result type (might be due to invalid IL or missing references)
		//IL_2282: Expected O, but got Unknown
		//IL_22b3: Unknown result type (might be due to invalid IL or missing references)
		//IL_22bd: Expected O, but got Unknown
		//IL_22c8: Unknown result type (might be due to invalid IL or missing references)
		//IL_22d2: Expected O, but got Unknown
		//IL_22de: Unknown result type (might be due to invalid IL or missing references)
		//IL_22e8: Expected O, but got Unknown
		//IL_232b: Unknown result type (might be due to invalid IL or missing references)
		//IL_2332: Expected O, but got Unknown
		//IL_2433: Unknown result type (might be due to invalid IL or missing references)
		//IL_243a: Expected O, but got Unknown
		//IL_246c: Unknown result type (might be due to invalid IL or missing references)
		//IL_2476: Expected O, but got Unknown
		//IL_2481: Unknown result type (might be due to invalid IL or missing references)
		//IL_248b: Expected O, but got Unknown
		//IL_24ce: Unknown result type (might be due to invalid IL or missing references)
		//IL_24d5: 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("Feathers", 8, 3, false));
		val.AddRequirement(new RequirementConfig("Flint", 6, 2, false));
		string directoryName = Path.GetDirectoryName(((BaseUnityPlugin)this).Info.Location);
		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";
		((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;
			val37.ItemDrop.m_itemData.m_shared.m_dodgeStaminaModifier = BoarDodgeDiscount.Value * -1f;
		}
		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("FlametalNew", 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 = "$stat