Decompiled source of DragoonCapes v1.3.7

DragoonCapes.dll

Decompiled 2 weeks 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.IgnoreSymbolStoreSequencePoints)]
[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_0000: Unknown result type (might be due to invalid IL or missing references)
		//IL_0005: Unknown result type (might be due to invalid IL or missing references)
		//IL_006e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0079: Unknown result type (might be due to invalid IL or missing references)
		//IL_00f7: Unknown result type (might be due to invalid IL or missing references)
		//IL_0103: Unknown result type (might be due to invalid IL or missing references)
		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_004d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0054: 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"))
		{
			((Character)localPlayer).GetSEMan();
			if ((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_0055: Unknown result type (might be due to invalid IL or missing references)
		//IL_0062: Unknown result type (might be due to invalid IL or missing references)
		//IL_0068: Invalid comparison between Unknown and I4
		//IL_006c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0073: Invalid comparison between Unknown and I4
		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 ((int)val.GetValueOrDefault() == 8 || (int)val.GetValueOrDefault() == 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.7")]
[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.7";

	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 string GetAssetPath(string fileName)
	{
		string directoryName = Path.GetDirectoryName(((BaseUnityPlugin)this).Info.Location);
		string text = Path.Combine(directoryName, "Assets", fileName);
		if (File.Exists(text))
		{
			return text;
		}
		string text2 = Path.Combine(directoryName, fileName);
		if (File.Exists(text2))
		{
			return text2;
		}
		((BaseUnityPlugin)this).Logger.LogWarning((object)("Missing DragoonCapes asset: " + fileName));
		return text;
	}

	private void LoadTranslations()
	{
		string directoryName = Path.GetDirectoryName(((BaseUnityPlugin)this).Info.Location);
		string path = Path.Combine(directoryName, "Translations");
		string[] array = new string[4] { "English", "French", "Korean", "Chinese" };
		foreach (string text in array)
		{
			string text2 = Path.Combine(path, text, text + ".json");
			string text3 = Path.Combine(directoryName, text + ".json");
			string path2 = (File.Exists(text2) ? text2 : text3);
			if (File.Exists(path2))
			{
				Localization.AddJsonFile(text, File.ReadAllText(path2));
			}
			else
			{
				((BaseUnityPlugin)this).Logger.LogWarning((object)("Missing DragoonCapes translation: " + text));
			}
		}
	}

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

	private void CreateConfigValues()
	{
		//IL_002c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0031: Unknown result type (might be due to invalid IL or missing references)
		//IL_0039: Expected O, but got Unknown
		//IL_0039: Unknown result type (might be due to invalid IL or missing references)
		//IL_0043: Expected O, but got Unknown
		//IL_0068: Unknown result type (might be due to invalid IL or missing references)
		//IL_006d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0075: Expected O, but got Unknown
		//IL_0075: Unknown result type (might be due to invalid IL or missing references)
		//IL_007f: Expected O, but got Unknown
		//IL_00a4: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a9: Unknown result type (might be due to invalid IL or missing references)
		//IL_00b1: Expected O, but got Unknown
		//IL_00b1: Unknown result type (might be due to invalid IL or missing references)
		//IL_00bb: Expected O, but got Unknown
		//IL_00ec: Unknown result type (might be due to invalid IL or missing references)
		//IL_00f1: Unknown result type (might be due to invalid IL or missing references)
		//IL_00f9: Expected O, but got Unknown
		//IL_00f9: Unknown result type (might be due to invalid IL or missing references)
		//IL_0103: Expected O, but got Unknown
		//IL_013e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0143: Unknown result type (might be due to invalid IL or missing references)
		//IL_014b: Expected O, but got Unknown
		//IL_014b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0155: Expected O, but got Unknown
		//IL_0189: Unknown result type (might be due to invalid IL or missing references)
		//IL_018e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0196: Expected O, but got Unknown
		//IL_0196: Unknown result type (might be due to invalid IL or missing references)
		//IL_01a0: Expected O, but got Unknown
		//IL_01d8: Unknown result type (might be due to invalid IL or missing references)
		//IL_01dd: Unknown result type (might be due to invalid IL or missing references)
		//IL_01e5: Expected O, but got Unknown
		//IL_01e5: Unknown result type (might be due to invalid IL or missing references)
		//IL_01ef: Expected O, but got Unknown
		//IL_022a: Unknown result type (might be due to invalid IL or missing references)
		//IL_022f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0237: Expected O, but got Unknown
		//IL_0237: Unknown result type (might be due to invalid IL or missing references)
		//IL_0241: Expected O, but got Unknown
		//IL_027c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0281: Unknown result type (might be due to invalid IL or missing references)
		//IL_0289: Expected O, but got Unknown
		//IL_0289: Unknown result type (might be due to invalid IL or missing references)
		//IL_0293: Expected O, but got Unknown
		//IL_02ce: Unknown result type (might be due to invalid IL or missing references)
		//IL_02d3: Unknown result type (might be due to invalid IL or missing references)
		//IL_02db: Expected O, but got Unknown
		//IL_02db: Unknown result type (might be due to invalid IL or missing references)
		//IL_02e5: Expected O, but got Unknown
		//IL_0320: Unknown result type (might be due to invalid IL or missing references)
		//IL_0325: Unknown result type (might be due to invalid IL or missing references)
		//IL_032d: Expected O, but got Unknown
		//IL_032d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0337: Expected O, but got Unknown
		//IL_0372: Unknown result type (might be due to invalid IL or missing references)
		//IL_0377: Unknown result type (might be due to invalid IL or missing references)
		//IL_037f: Expected O, but got Unknown
		//IL_037f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0389: Expected O, but got Unknown
		//IL_03b9: Unknown result type (might be due to invalid IL or missing references)
		//IL_03be: Unknown result type (might be due to invalid IL or missing references)
		//IL_03c6: Expected O, but got Unknown
		//IL_03c6: Unknown result type (might be due to invalid IL or missing references)
		//IL_03d0: Expected O, but got Unknown
		//IL_040b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0410: Unknown result type (might be due to invalid IL or missing references)
		//IL_0418: Expected O, but got Unknown
		//IL_0418: Unknown result type (might be due to invalid IL or missing references)
		//IL_0422: Expected O, but got Unknown
		//IL_0453: Unknown result type (might be due to invalid IL or missing references)
		//IL_0458: Unknown result type (might be due to invalid IL or missing references)
		//IL_0460: 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_048f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0494: Unknown result type (might be due to invalid IL or missing references)
		//IL_049c: Expected O, but got Unknown
		//IL_049c: Unknown result type (might be due to invalid IL or missing references)
		//IL_04a6: Expected O, but got Unknown
		//IL_04d7: Unknown result type (might be due to invalid IL or missing references)
		//IL_04dc: Unknown result type (might be due to invalid IL or missing references)
		//IL_04e4: Expected O, but got Unknown
		//IL_04e4: Unknown result type (might be due to invalid IL or missing references)
		//IL_04ee: Expected O, but got Unknown
		//IL_0529: Unknown result type (might be due to invalid IL or missing references)
		//IL_052e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0536: Expected O, but got Unknown
		//IL_0536: Unknown result type (might be due to invalid IL or missing references)
		//IL_0540: Expected O, but got Unknown
		//IL_0571: Unknown result type (might be due to invalid IL or missing references)
		//IL_0576: Unknown result type (might be due to invalid IL or missing references)
		//IL_057e: Expected O, but got Unknown
		//IL_057e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0588: Expected O, but got Unknown
		//IL_05c3: Unknown result type (might be due to invalid IL or missing references)
		//IL_05c8: Unknown result type (might be due to invalid IL or missing references)
		//IL_05d0: Expected O, but got Unknown
		//IL_05d0: Unknown result type (might be due to invalid IL or missing references)
		//IL_05da: Expected O, but got Unknown
		//IL_0615: Unknown result type (might be due to invalid IL or missing references)
		//IL_061a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0622: Expected O, but got Unknown
		//IL_0622: Unknown result type (might be due to invalid IL or missing references)
		//IL_062c: Expected O, but got Unknown
		//IL_065d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0662: Unknown result type (might be due to invalid IL or missing references)
		//IL_066a: Expected O, but got Unknown
		//IL_066a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0674: Expected O, but got Unknown
		//IL_06af: Unknown result type (might be due to invalid IL or missing references)
		//IL_06b4: Unknown result type (might be due to invalid IL or missing references)
		//IL_06bc: Expected O, but got Unknown
		//IL_06bc: Unknown result type (might be due to invalid IL or missing references)
		//IL_06c6: Expected O, but got Unknown
		//IL_0701: Unknown result type (might be due to invalid IL or missing references)
		//IL_0706: Unknown result type (might be due to invalid IL or missing references)
		//IL_070e: Expected O, but got Unknown
		//IL_070e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0718: Expected O, but got Unknown
		//IL_0749: Unknown result type (might be due to invalid IL or missing references)
		//IL_074e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0756: Expected O, but got Unknown
		//IL_0756: Unknown result type (might be due to invalid IL or missing references)
		//IL_0760: Expected O, but got Unknown
		//IL_079b: Unknown result type (might be due to invalid IL or missing references)
		//IL_07a0: Unknown result type (might be due to invalid IL or missing references)
		//IL_07a8: Expected O, but got Unknown
		//IL_07a8: Unknown result type (might be due to invalid IL or missing references)
		//IL_07b2: Expected O, but got Unknown
		//IL_07ed: Unknown result type (might be due to invalid IL or missing references)
		//IL_07f2: Unknown result type (might be due to invalid IL or missing references)
		//IL_07fa: Expected O, but got Unknown
		//IL_07fa: Unknown result type (might be due to invalid IL or missing references)
		//IL_0804: Expected O, but got Unknown
		//IL_083f: 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_084c: Expected O, but got Unknown
		//IL_084c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0856: Expected O, but got Unknown
		//IL_0891: Unknown result type (might be due to invalid IL or missing references)
		//IL_0896: Unknown result type (might be due to invalid IL or missing references)
		//IL_089e: Expected O, but got Unknown
		//IL_089e: Unknown result type (might be due to invalid IL or missing references)
		//IL_08a8: Expected O, but got Unknown
		//IL_08d9: Unknown result type (might be due to invalid IL or missing references)
		//IL_08de: Unknown result type (might be due to invalid IL or missing references)
		//IL_08e6: Expected O, but got Unknown
		//IL_08e6: Unknown result type (might be due to invalid IL or missing references)
		//IL_08f0: Expected O, but got Unknown
		//IL_092b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0930: Unknown result type (might be due to invalid IL or missing references)
		//IL_0938: Expected O, but got Unknown
		//IL_0938: Unknown result type (might be due to invalid IL or missing references)
		//IL_0942: Expected O, but got Unknown
		//IL_097d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0982: Unknown result type (might be due to invalid IL or missing references)
		//IL_098a: Expected O, but got Unknown
		//IL_098a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0994: Expected O, but got Unknown
		//IL_09c5: Unknown result type (might be due to invalid IL or missing references)
		//IL_09ca: Unknown result type (might be due to invalid IL or missing references)
		//IL_09d2: Expected O, but got Unknown
		//IL_09d2: Unknown result type (might be due to invalid IL or missing references)
		//IL_09dc: Expected O, but got Unknown
		//IL_0a17: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a1c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a24: Expected O, but got Unknown
		//IL_0a24: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a2e: Expected O, but got Unknown
		//IL_0a69: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a6e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a76: Expected O, but got Unknown
		//IL_0a76: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a80: Expected O, but got Unknown
		//IL_0ab0: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ab5: Unknown result type (might be due to invalid IL or missing references)
		//IL_0abd: Expected O, but got Unknown
		//IL_0abd: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ac7: Expected O, but got Unknown
		//IL_0b02: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b07: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b0f: Expected O, but got Unknown
		//IL_0b0f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b19: Expected O, but got Unknown
		//IL_0b54: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b59: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b61: Expected O, but got Unknown
		//IL_0b61: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b6b: Expected O, but got Unknown
		//IL_0ba6: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bab: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bb3: Expected O, but got Unknown
		//IL_0bb3: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bbd: Expected O, but got Unknown
		//IL_0bf4: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bf9: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c01: Expected O, but got Unknown
		//IL_0c01: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c0b: Expected O, but got Unknown
		//IL_0c46: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c4b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c53: Expected O, but got Unknown
		//IL_0c53: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c5d: Expected O, but got Unknown
		//IL_0c98: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c9d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ca5: Expected O, but got Unknown
		//IL_0ca5: Unknown result type (might be due to invalid IL or missing references)
		//IL_0caf: Expected O, but got Unknown
		//IL_0cea: Unknown result type (might be due to invalid IL or missing references)
		//IL_0cef: Unknown result type (might be due to invalid IL or missing references)
		//IL_0cf7: Expected O, but got Unknown
		//IL_0cf7: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d01: Expected O, but got Unknown
		//IL_0d3c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d41: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d49: Expected O, but got Unknown
		//IL_0d49: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d53: Expected O, but got Unknown
		//IL_0d78: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d7d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d85: Expected O, but got Unknown
		//IL_0d85: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d8f: Expected O, but got Unknown
		//IL_0dca: Unknown result type (might be due to invalid IL or missing references)
		//IL_0dcf: Unknown result type (might be due to invalid IL or missing references)
		//IL_0dd7: Expected O, but got Unknown
		//IL_0dd7: Unknown result type (might be due to invalid IL or missing references)
		//IL_0de1: Expected O, but got Unknown
		//IL_0e15: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e1a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e22: Expected O, but got Unknown
		//IL_0e22: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e2c: Expected O, but got Unknown
		//IL_0e67: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e6c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e74: Expected O, but got Unknown
		//IL_0e74: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e7e: Expected O, but got Unknown
		//IL_0eb9: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ebe: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ec6: Expected O, but got Unknown
		//IL_0ec6: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ed0: Expected O, but got Unknown
		//IL_0f0b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f10: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f18: Expected O, but got Unknown
		//IL_0f18: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f22: Expected O, but got Unknown
		//IL_0f56: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f5b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f63: Expected O, but got Unknown
		//IL_0f63: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f6d: Expected O, but got Unknown
		//IL_0f92: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f97: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f9f: Expected O, but got Unknown
		//IL_0f9f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0fa9: Expected O, but got Unknown
		//IL_0fdd: Unknown result type (might be due to invalid IL or missing references)
		//IL_0fe2: Unknown result type (might be due to invalid IL or missing references)
		//IL_0fea: 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_102f: Unknown result type (might be due to invalid IL or missing references)
		//IL_1034: Unknown result type (might be due to invalid IL or missing references)
		//IL_103c: Expected O, but got Unknown
		//IL_103c: Unknown result type (might be due to invalid IL or missing references)
		//IL_1046: Expected O, but got Unknown
		//IL_1077: Unknown result type (might be due to invalid IL or missing references)
		//IL_107c: Unknown result type (might be due to invalid IL or missing references)
		//IL_1084: Expected O, but got Unknown
		//IL_1084: Unknown result type (might be due to invalid IL or missing references)
		//IL_108e: Expected O, but got Unknown
		//IL_10be: Unknown result type (might be due to invalid IL or missing references)
		//IL_10c3: Unknown result type (might be due to invalid IL or missing references)
		//IL_10cb: Expected O, but got Unknown
		//IL_10cb: Unknown result type (might be due to invalid IL or missing references)
		//IL_10d5: Expected O, but got Unknown
		//IL_1105: Unknown result type (might be due to invalid IL or missing references)
		//IL_110a: Unknown result type (might be due to invalid IL or missing references)
		//IL_1112: Expected O, but got Unknown
		//IL_1112: Unknown result type (might be due to invalid IL or missing references)
		//IL_111c: Expected O, but got Unknown
		//IL_1157: Unknown result type (might be due to invalid IL or missing references)
		//IL_115c: Unknown result type (might be due to invalid IL or missing references)
		//IL_1164: Expected O, but got Unknown
		//IL_1164: Unknown result type (might be due to invalid IL or missing references)
		//IL_116e: Expected O, but got Unknown
		//IL_119f: Unknown result type (might be due to invalid IL or missing references)
		//IL_11a4: Unknown result type (might be due to invalid IL or missing references)
		//IL_11ac: Expected O, but got Unknown
		//IL_11ac: Unknown result type (might be due to invalid IL or missing references)
		//IL_11b6: Expected O, but got Unknown
		//IL_11e6: Unknown result type (might be due to invalid IL or missing references)
		//IL_11eb: Unknown result type (might be due to invalid IL or missing references)
		//IL_11f3: Expected O, but got Unknown
		//IL_11f3: Unknown result type (might be due to invalid IL or missing references)
		//IL_11fd: 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.15f, 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", 10, new ConfigDescription("Nightstalker cape bow skill bonus during night-time", (AcceptableValueBase)null, new object[2]
		{
			new AcceptableValueRange<int>(0, 300),
			(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_007f: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a9: Unknown result type (might be due to invalid IL or missing references)
		//IL_00af: Expected O, but got Unknown
		//IL_00d9: Unknown result type (might be due to invalid IL or missing references)
		//IL_00e3: Expected O, but got Unknown
		//IL_00ec: Unknown result type (might be due to invalid IL or missing references)
		//IL_00f6: 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_015f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0166: Expected O, but got Unknown
		//IL_019d: Unknown result type (might be due to invalid IL or missing references)
		//IL_01a6: Unknown result type (might be due to invalid IL or missing references)
		//IL_01b2: Unknown result type (might be due to invalid IL or missing references)
		//IL_01cd: Unknown result type (might be due to invalid IL or missing references)
		//IL_0224: Unknown result type (might be due to invalid IL or missing references)
		//IL_022f: Unknown result type (might be due to invalid IL or missing references)
		//IL_026e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0275: Expected O, but got Unknown
		//IL_02a4: Unknown result type (might be due to invalid IL or missing references)
		//IL_02ae: Expected O, but got Unknown
		//IL_02b8: Unknown result type (might be due to invalid IL or missing references)
		//IL_02c2: Expected O, but got Unknown
		//IL_02cc: Unknown result type (might be due to invalid IL or missing references)
		//IL_02d6: Expected O, but got Unknown
		//IL_0322: Unknown result type (might be due to invalid IL or missing references)
		//IL_0329: Expected O, but got Unknown
		//IL_03a1: Unknown result type (might be due to invalid IL or missing references)
		//IL_03bc: Unknown result type (might be due to invalid IL or missing references)
		//IL_03ee: Unknown result type (might be due to invalid IL or missing references)
		//IL_03f5: Expected O, but got Unknown
		//IL_0424: Unknown result type (might be due to invalid IL or missing references)
		//IL_042e: Expected O, but got Unknown
		//IL_0438: Unknown result type (might be due to invalid IL or missing references)
		//IL_0442: Expected O, but got Unknown
		//IL_044c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0456: Expected O, but got Unknown
		//IL_04a2: Unknown result type (might be due to invalid IL or missing references)
		//IL_04a9: Expected O, but got Unknown
		//IL_04ee: Unknown result type (might be due to invalid IL or missing references)
		//IL_04f7: Unknown result type (might be due to invalid IL or missing references)
		//IL_0500: Unknown result type (might be due to invalid IL or missing references)
		//IL_051b: Unknown result type (might be due to invalid IL or missing references)
		//IL_057a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0581: Expected O, but got Unknown
		//IL_05b9: Unknown result type (might be due to invalid IL or missing references)
		//IL_05c3: Expected O, but got Unknown
		//IL_05cd: Unknown result type (might be due to invalid IL or missing references)
		//IL_05d7: Expected O, but got Unknown
		//IL_05e1: Unknown result type (might be due to invalid IL or missing references)
		//IL_05eb: Expected O, but got Unknown
		//IL_0637: Unknown result type (might be due to invalid IL or missing references)
		//IL_063e: Expected O, but got Unknown
		//IL_06f9: Unknown result type (might be due to invalid IL or missing references)
		//IL_0700: Expected O, but got Unknown
		//IL_072f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0739: Expected O, but got Unknown
		//IL_0743: Unknown result type (might be due to invalid IL or missing references)
		//IL_074d: Expected O, but got Unknown
		//IL_0757: Unknown result type (might be due to invalid IL or missing references)
		//IL_0761: Expected O, but got Unknown
		//IL_07ad: Unknown result type (might be due to invalid IL or missing references)
		//IL_07b4: Expected O, but got Unknown
		//IL_07f9: Unknown result type (might be due to invalid IL or missing references)
		//IL_0802: 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_0829: Unknown result type (might be due to invalid IL or missing references)
		//IL_08a3: Unknown result type (might be due to invalid IL or missing references)
		//IL_08ae: Unknown result type (might be due to invalid IL or missing references)
		//IL_08fc: Unknown result type (might be due to invalid IL or missing references)
		//IL_0903: Expected O, but got Unknown
		//IL_093a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0944: Expected O, but got Unknown
		//IL_094e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0958: Expected O, but got Unknown
		//IL_0962: Unknown result type (might be due to invalid IL or missing references)
		//IL_096c: Expected O, but got Unknown
		//IL_0976: Unknown result type (might be due to invalid IL or missing references)
		//IL_0980: Expected O, but got Unknown
		//IL_098a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0994: Expected O, but got Unknown
		//IL_0a53: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a5a: Expected O, but got Unknown
		//IL_0b29: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b35: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b6e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b75: Expected O, but got Unknown
		//IL_0bac: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bb6: Expected O, but got Unknown
		//IL_0bc0: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bca: Expected O, but got Unknown
		//IL_0bd5: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bdf: Expected O, but got Unknown
		//IL_0bea: Unknown result type (might be due to invalid IL or missing references)
		//IL_0bf4: Expected O, but got Unknown
		//IL_0c6e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0c75: Expected O, but got Unknown
		//IL_0d2e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d35: Expected O, but got Unknown
		//IL_0d64: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d6e: Expected O, but got Unknown
		//IL_0d79: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d83: Expected O, but got Unknown
		//IL_0d8e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0d98: Expected O, but got Unknown
		//IL_0de4: Unknown result type (might be due to invalid IL or missing references)
		//IL_0deb: 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_0e4a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e53: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e5b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e76: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e7f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e88: Unknown result type (might be due to invalid IL or missing references)
		//IL_0e90: Unknown result type (might be due to invalid IL or missing references)
		//IL_0eab: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f6f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f83: Unknown result type (might be due to invalid IL or missing references)
		//IL_0f8a: Expected O, but got Unknown
		//IL_0fb9: Unknown result type (might be due to invalid IL or missing references)
		//IL_0fc3: Expected O, but got Unknown
		//IL_0fcd: Unknown result type (might be due to invalid IL or missing references)
		//IL_0fd7: Expected O, but got Unknown
		//IL_0fe1: Unknown result type (might be due to invalid IL or missing references)
		//IL_0feb: 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_1083: Unknown result type (might be due to invalid IL or missing references)
		//IL_108c: Unknown result type (might be due to invalid IL or missing references)
		//IL_1095: Unknown result type (might be due to invalid IL or missing references)
		//IL_10b0: Unknown result type (might be due to invalid IL or missing references)
		//IL_111b: Unknown result type (might be due to invalid IL or missing references)
		//IL_1145: Unknown result type (might be due to invalid IL or missing references)
		//IL_114c: Expected O, but got Unknown
		//IL_117b: Unknown result type (might be due to invalid IL or missing references)
		//IL_1185: Expected O, but got Unknown
		//IL_118f: Unknown result type (might be due to invalid IL or missing references)
		//IL_1199: Expected O, but got Unknown
		//IL_11a3: Unknown result type (might be due to invalid IL or missing references)
		//IL_11ad: Expected O, but got Unknown
		//IL_11f9: Unknown result type (might be due to invalid IL or missing references)
		//IL_1200: Expected O, but got Unknown
		//IL_12cc: Unknown result type (might be due to invalid IL or missing references)
		//IL_12d8: Unknown result type (might be due to invalid IL or missing references)
		//IL_1302: Unknown result type (might be due to invalid IL or missing references)
		//IL_1309: Expected O, but got Unknown
		//IL_1338: Unknown result type (might be due to invalid IL or missing references)
		//IL_1342: Expected O, but got Unknown
		//IL_134c: Unknown result type (might be due to invalid IL or missing references)
		//IL_1356: Expected O, but got Unknown
		//IL_1360: Unknown result type (might be due to invalid IL or missing references)
		//IL_136a: Expected O, but got Unknown
		//IL_13b6: Unknown result type (might be due to invalid IL or missing references)
		//IL_13bd: Expected O, but got Unknown
		//IL_14a0: Unknown result type (might be due to invalid IL or missing references)
		//IL_14a7: Expected O, but got Unknown
		//IL_14d6: Unknown result type (might be due to invalid IL or missing references)
		//IL_14e0: Expected O, but got Unknown
		//IL_14ea: Unknown result type (might be due to invalid IL or missing references)
		//IL_14f4: Expected O, but got Unknown
		//IL_14fe: Unknown result type (might be due to invalid IL or missing references)
		//IL_1508: Expected O, but got Unknown
		//IL_1554: Unknown result type (might be due to invalid IL or missing references)
		//IL_155b: Expected O, but got Unknown
		//IL_16f8: Unknown result type (might be due to invalid IL or missing references)
		//IL_16ff: Expected O, but got Unknown
		//IL_172e: Unknown result type (might be due to invalid IL or missing references)
		//IL_1738: Expected O, but got Unknown
		//IL_1743: Unknown result type (might be due to invalid IL or missing references)
		//IL_174d: Expected O, but got Unknown
		//IL_1757: Unknown result type (might be due to invalid IL or missing references)
		//IL_1761: Expected O, but got Unknown
		//IL_176c: Unknown result type (might be due to invalid IL or missing references)
		//IL_1776: Expected O, but got Unknown
		//IL_17c2: Unknown result type (might be due to invalid IL or missing references)
		//IL_17c9: Expected O, but got Unknown
		//IL_1888: Unknown result type (might be due to invalid IL or missing references)
		//IL_188f: Expected O, but got Unknown
		//IL_18be: Unknown result type (might be due to invalid IL or missing references)
		//IL_18c8: Expected O, but got Unknown
		//IL_18d2: Unknown result type (might be due to invalid IL or missing references)
		//IL_18dc: Expected O, but got Unknown
		//IL_18eb: Unknown result type (might be due to invalid IL or missing references)
		//IL_18f5: Expected O, but got Unknown
		//IL_1941: Unknown result type (might be due to invalid IL or missing references)
		//IL_1948: Expected O, but got Unknown
		//IL_198d: Unknown result type (might be due to invalid IL or missing references)
		//IL_1996: Unknown result type (might be due to invalid IL or missing references)
		//IL_199f: Unknown result type (might be due to invalid IL or missing references)
		//IL_19ba: Unknown result type (might be due to invalid IL or missing references)
		//IL_1a53: Unknown result type (might be due to invalid IL or missing references)
		//IL_1a5a: Expected O, but got Unknown
		//IL_1a89: Unknown result type (might be due to invalid IL or missing references)
		//IL_1a93: Expected O, but got Unknown
		//IL_1a9d: Unknown result type (might be due to invalid IL or missing references)
		//IL_1aa7: Expected O, but got Unknown
		//IL_1ab2: Unknown result type (might be due to invalid IL or missing references)
		//IL_1abc: Expected O, but got Unknown
		//IL_1b08: Unknown result type (might be due to invalid IL or missing references)
		//IL_1b0f: Expected O, but got Unknown
		//IL_1bb3: Unknown result type (might be due to invalid IL or missing references)
		//IL_1bba: Expected O, but got Unknown
		//IL_1be9: Unknown result type (might be due to invalid IL or missing references)
		//IL_1bf3: Expected O, but got Unknown
		//IL_1bfd: Unknown result type (might be due to invalid IL or missing references)
		//IL_1c07: 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_1c67: Unknown result type (might be due to invalid IL or missing references)
		//IL_1c6e: Expected O, but got Unknown
		//IL_1d57: Unknown result type (might be due to invalid IL or missing references)
		//IL_1d5e: Expected O, but got Unknown
		//IL_1d8d: Unknown result type (might be due to invalid IL or missing references)
		//IL_1d97: Expected O, but got Unknown
		//IL_1da1: Unknown result type (might be due to invalid IL or missing references)
		//IL_1dab: Expected O, but got Unknown
		//IL_1db5: Unknown result type (might be due to invalid IL or missing references)
		//IL_1dbf: Expected O, but got Unknown
		//IL_1e0b: Unknown result type (might be due to invalid IL or missing references)
		//IL_1e12: Expected O, but got Unknown
		//IL_1f0e: Unknown result type (might be due to invalid IL or missing references)
		//IL_1f15: Expected O, but got Unknown
		//IL_1f44: Unknown result type (might be due to invalid IL or missing references)
		//IL_1f4e: Expected O, but got Unknown
		//IL_1f58: Unknown result type (might be due to invalid IL or missing references)
		//IL_1f62: Expected O, but got Unknown
		//IL_1f6c: Unknown result type (might be due to invalid IL or missing references)
		//IL_1f76: Expected O, but got Unknown
		//IL_1fc2: Unknown result type (might be due to invalid IL or missing references)
		//IL_1fc9: Expected O, but got Unknown
		//IL_2050: Unknown result type (might be due to invalid IL or missing references)
		//IL_205c: Unknown result type (might be due to invalid IL or missing references)
		//IL_20a2: Unknown result type (might be due to invalid IL or missing references)
		//IL_20a9: Expected O, but got Unknown
		//IL_20d9: Unknown result type (might be due to invalid IL or missing references)
		//IL_20e3: Expected O, but got Unknown
		//IL_20ee: Unknown result type (might be due to invalid IL or missing references)
		//IL_20f8: Expected O, but got Unknown
		//IL_2102: Unknown result type (might be due to invalid IL or missing references)
		//IL_210c: Expected O, but got Unknown
		//IL_2158: Unknown result type (might be due to invalid IL or missing references)
		//IL_215f: Expected O, but got Unknown
		//IL_2238: Unknown result type (might be due to invalid IL or missing references)
		//IL_223f: Expected O, but got Unknown
		//IL_226d: Unknown result type (might be due to invalid IL or missing references)
		//IL_2277: Expected O, but got Unknown
		//IL_2281: Unknown result type (might be due to invalid IL or missing references)
		//IL_228b: Expected O, but got Unknown
		//IL_2296: Unknown result type (might be due to invalid IL or missing references)
		//IL_22a0: Expected O, but got Unknown
		//IL_22ec: Unknown result type (might be due to invalid IL or missing references)
		//IL_22f3: Expected O, but got Unknown
		//IL_2408: Unknown result type (might be due to invalid IL or missing references)
		//IL_240f: Expected O, but got Unknown
		//IL_243e: Unknown result type (might be due to invalid IL or missing references)
		//IL_2448: Expected O, but got Unknown
		//IL_2452: Unknown result type (might be due to invalid IL or missing references)
		//IL_245c: Expected O, but got Unknown
		//IL_24a8: Unknown result type (might be due to invalid IL or missing references)
		//IL_24af: 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, true));
		val.AddRequirement(new RequirementConfig("Feathers", 8, 3, true));
		val.AddRequirement(new RequirementConfig("Flint", 6, 2, true));
		Path.GetDirectoryName(((BaseUnityPlugin)this).Info.Location);
		Sprite val2 = AssetUtils.LoadSpriteFromFile(GetAssetPath("neckIcon.png"));
		Texture2D styleTex = AssetUtils.LoadTexture(GetAssetPath("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 = new DamageModPair
		{
			m_modifier = (DamageModifier)1,
			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, true));
		val4.AddRequirement(new RequirementConfig("TrophyFenring", 3, 0, true));
		val4.AddRequirement(new RequirementConfig("Iron", 1, 1, true));
		Sprite val5 = AssetUtils.LoadSpriteFromFile(GetAssetPath("cultistIcon.png"));
		Texture2D styleTex2 = AssetUtils.LoadTexture(GetAssetPath("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, true));
		val7.AddRequirement(new RequirementConfig("TrophyDvergr", 3, 0, true));
		val7.AddRequirement(new RequirementConfig("BlackMetal", 1, 1, true));
		Sprite val8 = AssetUtils.LoadSpriteFromFile(GetAssetPath("dvergrIcon.png"));
		Texture2D styleTex3 = AssetUtils.LoadTexture(GetAssetPath("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 = new DamageModPair
		{
			m_modifier = (DamageModifier)1,
			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, true));
		val10.AddRequirement(new RequirementConfig("TrophyGoblinShaman", 3, 0, true));
		val10.AddRequirement(new RequirementConfig("BlackMetal", 1, 1, true));
		Sprite val11 = AssetUtils.LoadSpriteFromFile(GetAssetPath("shamanIcon.png"));
		Texture2D styleTex4 = AssetUtils.LoadTexture(GetAssetPath("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, true));
		val13.AddRequirement(new RequirementConfig("TrophySerpent", 1, 0, true));
		val13.AddRequirement(new RequirementConfig("Chitin", 3, 2, true));
		Sprite val14 = AssetUtils.LoadSpriteFromFile(GetAssetPath("serpentIcon.png"));
		Texture2D styleTex5 = AssetUtils.LoadTexture(GetAssetPath("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 = new DamageModPair
		{
			m_modifier = (DamageModifier)1,
			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, true));
		val16.AddRequirement(new RequirementConfig("LinenThread", 0, 4, true));
		val16.AddRequirement(new RequirementConfig("Raspberry", 1, 1, true));
		val16.AddRequirement(new RequirementConfig("Blueberries", 1, 1, true));
		val16.AddRequirement(new RequirementConfig("Cloudberry", 1, 1, true));
		Sprite val17 = AssetUtils.LoadSpriteFromFile(GetAssetPath("knightIcon1.png"));
		Sprite val18 = AssetUtils.LoadSpriteFromFile(GetAssetPath("knightIcon2.png"));
		Sprite val19 = AssetUtils.LoadSpriteFromFile(GetAssetPath("knightIcon3.png"));
		Sprite val20 = AssetUtils.LoadSpriteFromFile(GetAssetPath("knightIcon4.png"));
		Sprite val21 = AssetUtils.LoadSpriteFromFile(GetAssetPath("knightIcon5.png"));
		Sprite val22 = AssetUtils.LoadSpriteFromFile(GetAssetPath("knightIcon6.png"));
		Texture2D styleTex6 = AssetUtils.LoadTexture(GetAssetPath("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, true));
		val24.AddRequirement(new RequirementConfig("LinenThread", 0, 4, true));
		val24.AddRequirement(new RequirementConfig("Raspberry", 10, 5, true));
		val24.AddRequirement(new RequirementConfig("Silver", 10, 5, true));
		Sprite val25 = AssetUtils.LoadSpriteFromFile(GetAssetPath("crusaderIcon1.png"));
		Sprite val26 = AssetUtils.LoadSpriteFromFile(GetAssetPath("crusaderIcon2.png"));
		Sprite val27 = AssetUtils.LoadSpriteFromFile(GetAssetPath("crusaderIcon3.png"));
		Texture2D styleTex7 = AssetUtils.LoadTexture(GetAssetPath("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, true));
		val29.AddRequirement(new RequirementConfig("Mushroom", 20, 4, true));
		val29.AddRequirement(new RequirementConfig("Obsidian", 10, 3, true));
		Sprite val30 = AssetUtils.LoadSpriteFromFile(GetAssetPath("berserkIcon.png"));
		Texture2D styleTex8 = AssetUtils.LoadTexture(GetAssetPath("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 = new DamageModPair
		{
			m_modifier = (DamageModifier)2,
			m_type = (DamageType)4
		};
		val31.ItemDrop.m_itemData.m_shared.m_damageModifiers.Add(item4);
		DamageModPair item5 = new DamageModPair
		{
			m_modifier = (DamageModifier)2,
			m_type = (DamageType)2
		};
		val31.ItemDrop.m_itemData.m_shared.m_damageModifiers.Add(item5);
		DamageModPair item6 = new DamageModPair
		{
			m_modifier = (DamageModifier)2,
			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, true));
		val32.AddRequirement(new RequirementConfig("LeatherScraps", 5, 2, true));
		val32.AddRequirement(new RequirementConfig("Flint", 3, 1, true));
		Sprite val33 = AssetUtils.LoadSpriteFromFile(GetAssetPath("bushIcon.png"));
		Texture2D styleTex9 = AssetUtils.LoadTexture(GetAssetPath("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 = new DamageModPair
		{
			m_modifier = (DamageModifier)2,
			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, true));
		val35.AddRequirement(new RequirementConfig("TrophyBoar", 3, 0, true));
		val35.AddRequirement(new RequirementConfig("Flint", 1, 1, true));
		Sprite val36 = AssetUtils.LoadSpriteFromFile(GetAssetPath("boarIcon.png"));
		Texture2D styleTex10 = AssetUtils.LoadTexture(GetAssetPath("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, true));
		val38.AddRequirement(new RequirementConfig("TrophyGreydwarfShaman", 1, 0, true));
		val38.AddRequirement(new RequirementConfig("AncientSeed", 2, 1, true));
		Sprite val39 = AssetUtils.LoadSpriteFromFile(GetAssetPath("dwarfIcon.png"));
		Texture2D styleTex11 = AssetUtils.LoadTexture(GetAssetPath("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, true));
		val41.AddRequirement(new RequirementConfig("TrophyWraith", 1, 0, true));
		val41.AddRequirement(new RequirementConfig("Chain", 4, 2, true));
		Sprite val42 = AssetUtils.LoadSpriteFromFile(GetAssetPath("wraithIcon.png"));
		Texture2D styleTex12 = AssetUtils.LoadTexture(GetAssetPath("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, true));
		val44.AddRequirement(new RequirementConfig("Blueberries", 10, 5, true));
		val44.AddRequirement(new RequirementConfig("Coal", 6, 3, true));
		val44.AddRequirement(new RequirementConfig("LeatherScraps", 10, 2, true));
		Sprite val45 = AssetUtils.LoadSpriteFromFile(GetAssetPath("einherjarIcon.png"));
		Texture2D styleTex13 = AssetUtils.LoadTexture(GetAssetPath("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, true));
		val47.AddRequirement(new RequirementConfig("FlametalNew", 5, 1, true));
		val47.AddRequirement(new RequirementConfig("Coins", 666, 66, true));
		Sprite val48 = AssetUtils.LoadSpriteFromFile(GetAssetPath("surtlingIcon.png"));
		Texture2D styleTex14 = AssetUtils.LoadTexture(GetAssetPath("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 = new DamageModPair
		{
			m_modifier = (DamageModifier)5,
			m_type = (DamageType)32
		};
		val49.ItemDrop.m_itemData.m_shared.m_damageModifiers.Add(item8);
		ItemManager.Instance.AddItem(val49);
		((Object)brawlerCapeStatus).name = "$status_brawlercape";
		((StatusEffect)brawlerCapeStatus).m_name = "$status_brawlercape";
		((StatusEffect)brawlerCapeStatus).m_category = "brawlerCape";
		((StatusEffect)brawlerCapeStatus).m_tooltip = "$status_brawlercape_tooltip\n$status_brawlercape_tooltip1<color=orange>+" + HrugnirDamageMult.Value * 100f + "%</color>";
		((StatusEffect)brawlerCapeStatus).m_startMessage = "$status_brawlercape_startmessage";
		brawlerCapeStatus.m_addMaxCarryWeight = Hru