Decompiled source of Skill Cap Mod v1.0.0

ValheimSkillCapMod.dll

Decompiled 3 hours ago
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Logging;
using HarmonyLib;
using Jotunn.Configs;
using Jotunn.Entities;
using Jotunn.Managers;
using Jotunn.Utils;
using UnityEngine;
using UnityEngine.Experimental.Rendering;
using UnityEngine.Rendering;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: AssemblyTitle("ValheimSkillCapMod")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("ValheimSkillCapMod")]
[assembly: AssemblyCopyright("Copyright ©  2026")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("19F0E6BA-DE2B-4504-9801-0F9360E3D9EB")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
namespace MyBepInExPlugin;

[BepInPlugin("com.example.GUID", "MyPlugin", "1.0.0")]
[BepInDependency(/*Could not decode attribute arguments.*/)]
public class Main : BaseUnityPlugin
{
	[HarmonyPatch]
	private static class ChangeRaiseSkillMethod
	{
		public static float worldExpModifier = 1f;

		private static GameObject _diablo;

		[HarmonyPrefix]
		[HarmonyPatch(typeof(Skills), "RaiseSkill")]
		public static bool RaiseSkill(Skills __instance, SkillType skillType, float factor = 1f)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0003: Invalid comparison between Unknown and I4
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			if ((int)skillType == 0)
			{
				return false;
			}
			float skillLevel = __instance.GetSkillLevel(skillType);
			float num = skillLevel;
			float num2 = num;
			if (num2 >= 10f && num2 < 20f)
			{
				if (!ZoneSystem.instance.GetGlobalKeys().Contains("defeated_eikthyr"))
				{
					return false;
				}
			}
			else
			{
				float num3 = num2;
				if (num3 >= 20f && num3 < 30f)
				{
					if (!ZoneSystem.instance.GetGlobalKeys().Contains("defeated_gdking"))
					{
						return false;
					}
				}
				else
				{
					float num4 = num2;
					if (num4 >= 30f && num4 < 40f)
					{
						if (!ZoneSystem.instance.GetGlobalKeys().Contains("defeated_bonemass"))
						{
							return false;
						}
					}
					else
					{
						float num5 = num2;
						if (num5 >= 40f && num5 < 50f)
						{
							if (!ZoneSystem.instance.GetGlobalKeys().Contains("defeated_dragon"))
							{
								return false;
							}
						}
						else
						{
							float num6 = num2;
							if (num6 >= 50f && num6 < 60f)
							{
								if (!ZoneSystem.instance.GetGlobalKeys().Contains("defeated_goblinking"))
								{
									return false;
								}
							}
							else
							{
								float num7 = num2;
								if (num7 >= 60f && num7 < 70f)
								{
									if (!ZoneSystem.instance.GetGlobalKeys().Contains("defeated_queen"))
									{
										return false;
									}
								}
								else
								{
									float num8 = num2;
									if (num8 >= 70f && num8 < 80f)
									{
										if (!ZoneSystem.instance.GetGlobalKeys().Contains("defeated_fader"))
										{
											return false;
										}
									}
									else
									{
										float num9 = num2;
										if (num9 >= 80f && num9 < 90f && !ZoneSystem.instance.GetGlobalKeys().Contains("defeated_jotun"))
										{
											return false;
										}
									}
								}
							}
						}
					}
				}
			}
			return true;
		}

		[HarmonyPrefix]
		[HarmonyPatch(typeof(Skills), "OnDeath")]
		public static bool DoNotLowerSkills()
		{
			return false;
		}

		[HarmonyPrefix]
		[HarmonyPatch(typeof(Character), "OnDeath")]
		public static void IncreaseWorldExp(Character __instance)
		{
			if (__instance.IsBoss())
			{
				worldExpModifier += 0.2f;
			}
		}

		[HarmonyPostfix]
		[HarmonyPatch(typeof(Game), "UpdateWorldRates")]
		public static void ForceSetWorldExpRate()
		{
			Game.m_skillGainRate = worldExpModifier;
		}

		[HarmonyPatch(typeof(Trader), "Start")]
		[HarmonyPrefix]
		public static void SwapHaldor(Trader __instance)
		{
			__instance.m_items = PrefabManager.Instance.GetPrefab("newhaldor").GetComponent<Trader>().m_items;
		}

		[HarmonyPostfix]
		[HarmonyPatch(typeof(Player), "UpdateCover")]
		public static void HasWaxedCape(Player __instance)
		{
			if (__instance.GetMaxCarryWeight() % 2f == 1f)
			{
				Type type = ((object)__instance).GetType();
				FieldInfo field = type.GetField("m_underRoof", BindingFlags.Instance | BindingFlags.NonPublic);
				field.SetValue(__instance, true);
			}
		}

		[HarmonyPrefix]
		[HarmonyPatch(typeof(Beehive), "RPC_Extract")]
		public static void GenerateWax(Beehive __instance)
		{
			//IL_007e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0083: Unknown result type (might be due to invalid IL or missing references)
			//IL_009b: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a3: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a5: Unknown result type (might be due to invalid IL or missing references)
			CustomItem item = ItemManager.Instance.GetItem("wax");
			ItemDrop itemDrop = item.ItemDrop;
			Random random = new Random();
			MethodInfo method = typeof(Beehive).GetMethod("GetHoneyLevel", BindingFlags.Instance | BindingFlags.NonPublic);
			int num = (int)method.Invoke(__instance, Array.Empty<object>());
			if (num <= 0)
			{
				return;
			}
			for (int i = 0; i < num; i++)
			{
				if (random.Next(10) == 0)
				{
					__instance.m_spawnEffect.Create(__instance.m_spawnPoint.position, Quaternion.identity, (Transform)null, 1f, -1);
					Vector3 position = __instance.m_spawnPoint.position;
					ItemDrop component = ((Component)Object.Instantiate<ItemDrop>(itemDrop, position, Quaternion.identity)).GetComponent<ItemDrop>();
					if ((Object)(object)component != (Object)null)
					{
						component.SetStack(Game.instance.ScaleDrops(item.ItemDrop.m_itemData, 1));
					}
				}
			}
		}

		[HarmonyPostfix]
		[HarmonyPatch(typeof(Minimap), "Awake")]
		private static void OnAwake()
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_000b: Expected O, but got Unknown
			_diablo = new GameObject();
			CustomBoiiiii customBoiiiii = _diablo.AddComponent<CustomBoiiiii>();
		}

		[HarmonyPrefix]
		[HarmonyPatch(typeof(Minimap), "OnDestroy")]
		private static void OnDestroy()
		{
			Object.Destroy((Object)(object)_diablo);
			RenderPipelineManager.beginCameraRendering -= OnRender;
		}

		private static void OnRender(ScriptableRenderContext context, Camera camera)
		{
		}
	}

	private class CustomBoiiiii : MonoBehaviour
	{
		private static GameObject _targetToRender;

		private static List<Renderer> _renderers = new List<Renderer>();

		private static Material _postProcessMaterial;

		private static Texture2D tex;

		private void Awake()
		{
			//IL_000d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0017: Expected O, but got Unknown
			//IL_0032: Unknown result type (might be due to invalid IL or missing references)
			//IL_003c: Expected O, but got Unknown
			//IL_003c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0046: Expected O, but got Unknown
			//IL_004a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0054: Expected O, but got Unknown
			//IL_0065: Unknown result type (might be due to invalid IL or missing references)
			Shader val = Shader.Find("Sprites/Default");
			_postProcessMaterial = new Material(val);
			_targetToRender = Minimap.instance.m_largeRoot;
			Camera.onPostRender = (CameraCallback)Delegate.Combine((Delegate?)(object)Camera.onPostRender, (Delegate?)new CameraCallback(OnPostRenderTamere));
			tex = new Texture2D(8, 8, (TextureFormat)4, false);
			for (int i = 0; i < 8; i++)
			{
				for (int j = 0; j < 8; j++)
				{
					tex.SetPixel(i, j, Color.red);
				}
			}
			tex.Apply();
		}

		private void OnDestroy()
		{
			//IL_000d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0017: Expected O, but got Unknown
			//IL_0017: Unknown result type (might be due to invalid IL or missing references)
			//IL_0021: Expected O, but got Unknown
			Camera.onPostRender = (CameraCallback)Delegate.Remove((Delegate?)(object)Camera.onPostRender, (Delegate?)new CameraCallback(OnPostRenderTamere));
		}

		private void OnPostRenderTamere(Camera camera)
		{
			//IL_0026: Unknown result type (might be due to invalid IL or missing references)
			//IL_002c: Expected O, but got Unknown
			//IL_002e: Unknown result type (might be due to invalid IL or missing references)
			//IL_009f: Unknown result type (might be due to invalid IL or missing references)
			RenderTexture temporary = RenderTexture.GetTemporary(1024, 1024, 0, (GraphicsFormat)8);
			List<Renderer> list = new List<Renderer>();
			_targetToRender.GetComponentsInChildren<Renderer>(true, list);
			CommandBuffer val = new CommandBuffer();
			val.SetRenderTarget(RenderTargetIdentifier.op_Implicit((Texture)(object)temporary));
			foreach (Renderer item in list)
			{
				val.DrawRenderer(item, (Material)null);
			}
			Graphics.ExecuteCommandBuffer(val);
			Graphics.Blit((Texture)(object)temporary, camera.activeTexture, _postProcessMaterial);
			Graphics.DrawTexture(new Rect(0f, 0f, 1600f, 900f), (Texture)(object)temporary);
			RenderTexture.ReleaseTemporary(temporary);
		}
	}

	private const string pluginGUID = "com.example.GUID";

	private const string pluginName = "MyPlugin";

	private const string pluginVersion = "1.0.0";

	private readonly Harmony HarmonyInstance = new Harmony("com.example.GUID");

	public static ManualLogSource logger = Logger.CreateLogSource("MyPlugin");

	public AssetBundle waxAsset;

	public GameObject waxPrefab;

	public AssetBundle capesBundle;

	public GameObject capeDeer;

	public GameObject capeTroll;

	public GameObject capeWolfWaterproof;

	public GameObject capeLoxWaterproof;

	public GameObject capeLinenWaterproof;

	public GameObject capeFeatherWaterproof;

	public GameObject capeAsksvinWaterproof;

	public GameObject capeAshWaterproof;

	public AssetBundle newHaldorAssetBundle;

	public GameObject newHaldor;

	public AssetBundle foodsAssetBundle;

	public void Awake()
	{
		Assembly executingAssembly = Assembly.GetExecutingAssembly();
		HarmonyInstance.PatchAll(executingAssembly);
		LoadAssets();
		AddRecipes();
		PrefabManager.OnVanillaPrefabsAvailable += CreateWax;
		PrefabManager.OnVanillaPrefabsAvailable += CreateCapes;
		PrefabManager.OnVanillaPrefabsAvailable += AddClonedItems;
		PrefabManager.OnVanillaPrefabsAvailable += FixShaders;
		PrefabManager.OnVanillaPrefabsAvailable += CreateNewHaldor;
	}

	private void LoadAssets()
	{
		string location = Assembly.GetExecutingAssembly().Location;
		location = location.Substring(0, location.Length - 22);
		location = location.Replace('\\', '/');
		string text = location;
		string text2 = location;
		string text3 = location;
		string text4 = location;
		waxAsset = AssetUtils.LoadAssetBundle(text += "wax");
		waxPrefab = waxAsset.LoadAsset<GameObject>("wax");
		capesBundle = AssetUtils.LoadAssetBundle(text2 += "capes");
		capeDeer = capesBundle.LoadAsset<GameObject>("capeDeer");
		capeTroll = capesBundle.LoadAsset<GameObject>("capeTroll");
		capeWolfWaterproof = capesBundle.LoadAsset<GameObject>("capeWolfWaterproof");
		capeLoxWaterproof = capesBundle.LoadAsset<GameObject>("capeLoxWaterproof");
		capeLinenWaterproof = capesBundle.LoadAsset<GameObject>("capeLinenWaterproof");
		capeFeatherWaterproof = capesBundle.LoadAsset<GameObject>("capeFeatherWaterproof");
		capeAsksvinWaterproof = capesBundle.LoadAsset<GameObject>("capeAsksvinWaterproof");
		capeAshWaterproof = capesBundle.LoadAsset<GameObject>("capeAshWaterproof");
		newHaldorAssetBundle = AssetUtils.LoadAssetBundle(text3 += "newhaldor");
		newHaldor = newHaldorAssetBundle.LoadAsset<GameObject>("newhaldor");
		foodsAssetBundle = AssetUtils.LoadAssetBundle(text4 += "foods");
	}

	private void AddClonedItems()
	{
		//IL_0001: Unknown result type (might be due to invalid IL or missing references)
		//IL_0007: Expected O, but got Unknown
		//IL_001e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0024: Expected O, but got Unknown
		//IL_0030: Unknown result type (might be due to invalid IL or missing references)
		//IL_0036: Expected O, but got Unknown
		//IL_004d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0053: Expected O, but got Unknown
		//IL_005f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0066: Expected O, but got Unknown
		//IL_0092: Unknown result type (might be due to invalid IL or missing references)
		//IL_0099: Expected O, but got Unknown
		//IL_00c5: Unknown result type (might be due to invalid IL or missing references)
		//IL_00cc: Expected O, but got Unknown
		//IL_00f8: Unknown result type (might be due to invalid IL or missing references)
		//IL_00ff: Expected O, but got Unknown
		//IL_0137: Unknown result type (might be due to invalid IL or missing references)
		//IL_013e: Expected O, but got Unknown
		//IL_0164: Unknown result type (might be due to invalid IL or missing references)
		//IL_016b: Expected O, but got Unknown
		//IL_0191: Unknown result type (might be due to invalid IL or missing references)
		//IL_0198: Expected O, but got Unknown
		//IL_01be: Unknown result type (might be due to invalid IL or missing references)
		//IL_01c5: Expected O, but got Unknown
		//IL_01df: Unknown result type (might be due to invalid IL or missing references)
		//IL_01e6: Expected O, but got Unknown
		//IL_022d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0234: Expected O, but got Unknown
		//IL_024e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0255: Expected O, but got Unknown
		//IL_02d2: Unknown result type (might be due to invalid IL or missing references)
		//IL_02d9: Expected O, but got Unknown
		//IL_034e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0355: Expected O, but got Unknown
		//IL_03a1: Unknown result type (might be due to invalid IL or missing references)
		//IL_03a8: Expected O, but got Unknown
		//IL_03d5: Unknown result type (might be due to invalid IL or missing references)
		//IL_03dc: Expected O, but got Unknown
		//IL_044a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0451: Expected O, but got Unknown
		//IL_04c6: Unknown result type (might be due to invalid IL or missing references)
		//IL_04cd: Expected O, but got Unknown
		//IL_0519: Unknown result type (might be due to invalid IL or missing references)
		//IL_0520: Expected O, but got Unknown
		//IL_054d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0554: Expected O, but got Unknown
		//IL_05a0: Unknown result type (might be due to invalid IL or missing references)
		//IL_05a7: Expected O, but got Unknown
		//IL_05fc: Unknown result type (might be due to invalid IL or missing references)
		//IL_0603: Expected O, but got Unknown
		//IL_0693: Unknown result type (might be due to invalid IL or missing references)
		//IL_069a: Expected O, but got Unknown
		//IL_06f8: Unknown result type (might be due to invalid IL or missing references)
		//IL_06ff: Expected O, but got Unknown
		//IL_0777: Unknown result type (might be due to invalid IL or missing references)
		//IL_077e: Expected O, but got Unknown
		//IL_0790: Unknown result type (might be due to invalid IL or missing references)
		//IL_07b9: Unknown result type (might be due to invalid IL or missing references)
		//IL_07c0: Expected O, but got Unknown
		//IL_0829: Unknown result type (might be due to invalid IL or missing references)
		//IL_0830: Expected O, but got Unknown
		//IL_088e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0895: Expected O, but got Unknown
		//IL_08f8: Unknown result type (might be due to invalid IL or missing references)
		//IL_08ff: Expected O, but got Unknown
		//IL_090c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0913: Expected O, but got Unknown
		//IL_0939: Unknown result type (might be due to invalid IL or missing references)
		//IL_0940: Expected O, but got Unknown
		//IL_094d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0954: Expected O, but got Unknown
		//IL_09ae: Unknown result type (might be due to invalid IL or missing references)
		//IL_09b5: Expected O, but got Unknown
		//IL_09c2: Unknown result type (might be due to invalid IL or missing references)
		//IL_09c9: Expected O, but got Unknown
		//IL_0a07: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a0e: Expected O, but got Unknown
		//IL_0a92: Unknown result type (might be due to invalid IL or missing references)
		//IL_0a99: Expected O, but got Unknown
		//IL_0ab0: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ab7: Expected O, but got Unknown
		//IL_0ace: Unknown result type (might be due to invalid IL or missing references)
		//IL_0ad5: Expected O, but got Unknown
		//IL_0aec: Unknown result type (might be due to invalid IL or missing references)
		//IL_0af3: Expected O, but got Unknown
		//IL_0b0a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b11: Expected O, but got Unknown
		//IL_0b28: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b2f: Expected O, but got Unknown
		//IL_0b46: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b4d: Expected O, but got Unknown
		//IL_0b64: Unknown result type (might be due to invalid IL or missing references)
		//IL_0b6b: Expected O, but got Unknown
		ItemConfig val = new ItemConfig();
		val.Name = "capeDeerHideCopy";
		CustomItem val2 = new CustomItem("CapeDeerHideCopy", "CapeDeerHide", val);
		ItemManager.Instance.AddItem(val2);
		ItemConfig val3 = new ItemConfig();
		val3.Name = "capeWolfCopy";
		CustomItem val4 = new CustomItem("CapeWolfCopy", "CapeWolf", val3);
		ItemManager.Instance.AddItem(val4);
		PieceConfig val5 = new PieceConfig();
		val5.Name = "infiniteWoodTorch";
		val5.AddRequirement("Resin", 20, true);
		val5.AddRequirement("Wood", 2, true);
		PieceConfig val6 = new PieceConfig();
		val6.Name = "infiniteIronTorch";
		val6.AddRequirement("Resin", 20, true);
		val6.AddRequirement("Iron", 2, true);
		PieceConfig val7 = new PieceConfig();
		val7.Name = "infiniteGuckTorch";
		val7.AddRequirement("GreydwarfEye", 20, true);
		val7.AddRequirement("Iron", 2, true);
		PieceConfig val8 = new PieceConfig();
		val8.Name = "infiniteEyeTorch";
		val8.AddRequirement("Guck", 20, true);
		val8.AddRequirement("Iron", 2, true);
		CustomPiece val9 = new CustomPiece("InfiniteWoodTorch", "piece_groundtorch_wood", val5);
		val9.PieceTable = PieceTables.Hammer;
		PieceManager.Instance.AddPiece(val9);
		CustomPiece val10 = new CustomPiece("InfiniteIronTorch", "piece_groundtorch", val6);
		val10.PieceTable = PieceTables.Hammer;
		PieceManager.Instance.AddPiece(val10);
		CustomPiece val11 = new CustomPiece("InfiniteGuckTorch", "piece_groundtorch_green", val7);
		val11.PieceTable = PieceTables.Hammer;
		PieceManager.Instance.AddPiece(val11);
		CustomPiece val12 = new CustomPiece("InfiniteEyeTorch", "piece_groundtorch_blue", val8);
		val12.PieceTable = PieceTables.Hammer;
		PieceManager.Instance.AddPiece(val12);
		PieceConfig val13 = new PieceConfig();
		val13.Name = "infiniteSconce";
		val13.AddRequirement("Copper", 2, true);
		val13.AddRequirement("Wood", 2, true);
		val13.AddRequirement("Resin", 20, true);
		CustomPiece val14 = new CustomPiece("InfiniteSconce", "piece_walltorch", val13);
		val14.PieceTable = PieceTables.Hammer;
		PieceManager.Instance.AddPiece(val14);
		ItemConfig val15 = new ItemConfig();
		val15.Name = "Bone Crossbow";
		val15.Description = "Withered bones waster.";
		val15.CraftingStation = CraftingStations.Forge;
		val15.AddRequirement("RoundLog", 15, 5);
		val15.AddRequirement("Iron", 5, 2);
		val15.AddRequirement("Root", 1, 1);
		val15.AddRequirement("BoneFragments", 5, 5);
		val15.RepairStation = CraftingStations.Forge;
		CustomItem val16 = new CustomItem("BoneCrossbow", "CrossbowArbalest", val15);
		val16.ItemDrop.m_itemData.m_shared.m_damages.m_pierce = 150f;
		val16.ItemDrop.m_itemData.m_shared.m_damagesPerLevel.m_pierce = 5f;
		val16.ItemDrop.m_itemData.m_shared.m_icons[0] = newHaldorAssetBundle.LoadAsset<Sprite>("BoneCrossbow");
		ItemManager.Instance.AddItem(val16);
		ItemConfig val17 = new ItemConfig();
		val17.Name = "Withered Bone Bolt";
		val17.Description = "More frail than it's standard bone counterpart, but much less expensive.";
		val17.CraftingStation = CraftingStations.Forge;
		val17.AddRequirement("WitheredBone", 4, 0);
		val17.Amount = 20;
		CustomItem val18 = new CustomItem("WitheredBoneBolt", "BoltBone", val17);
		val18.ItemDrop.m_itemData.m_shared.m_damages.m_pierce = 16f;
		ItemManager.Instance.AddItem(val18);
		ItemConfig val19 = new ItemConfig();
		val19.Name = "Wooden Crossbow";
		val19.Description = "What material could possibly be light and solid enough to make bolts at this point? It would have to come from a very powerful being.";
		val19.CraftingStation = CraftingStations.Workbench;
		val19.AddRequirement("Wood", 15, 5);
		val19.AddRequirement("LeatherScraps", 5, 2);
		val19.AddRequirement("Resin", 6, 3);
		val19.RepairStation = CraftingStations.Workbench;
		CustomItem val20 = new CustomItem("WoodenCrossbow", "CrossbowArbalest", val19);
		val20.ItemDrop.m_itemData.m_shared.m_damages.m_pierce = 55f;
		val20.ItemDrop.m_itemData.m_shared.m_damagesPerLevel.m_pierce = 5f;
		val20.ItemDrop.m_itemData.m_shared.m_icons[0] = newHaldorAssetBundle.LoadAsset<Sprite>("WoodenCrossbow");
		ItemManager.Instance.AddItem(val20);
		ItemConfig val21 = new ItemConfig();
		val21.Name = "Antler Bolt";
		val21.Description = "It is really worth the time to summon and destroy Eikthyr over and over again?";
		val21.CraftingStation = CraftingStations.Workbench;
		val21.AddRequirement("HardAntler", 3, 0);
		val21.Amount = 20;
		CustomItem val22 = new CustomItem("AntlerBolt", "BoltBone", val21);
		val22.ItemDrop.m_itemData.m_shared.m_damages.m_pierce = 42f;
		ItemManager.Instance.AddItem(val22);
		ItemConfig val23 = new ItemConfig();
		val23.Name = "Majestic Carapace Bolt";
		val23.Description = "Sturdiest. Bolt. Ever.";
		val23.CraftingStation = CraftingStations.BlackForge;
		val23.AddRequirement("QueenDrop", 1, 0);
		val23.Amount = 20;
		CustomItem val24 = new CustomItem("CarapaceBolt", "BoltCarapace", val23);
		val24.ItemDrop.m_itemData.m_shared.m_damages.m_pierce = 112f;
		val24.ItemDrop.m_itemData.m_shared.m_icons[0] = newHaldorAssetBundle.LoadAsset<Sprite>("carapacebolt");
		ItemManager.Instance.AddItem(val24);
		ItemConfig val25 = new ItemConfig();
		val25.CraftingStation = CraftingStations.Cauldron;
		val25.Name = "Meatloaf";
		val25.Description = "Meatloaf.... it sustains you. It's like........ oatmeal.";
		val25.Icon = foodsAssetBundle.LoadAsset<Sprite>("meatloaficonreal");
		val25.AddRequirement("BjornMeat", 3, 0);
		val25.AddRequirement("RawMeat", 1, 0);
		val25.AddRequirement("DeerMeat", 1, 0);
		val25.AddRequirement("Carrot", 1, 0);
		val25.Amount = 3;
		CustomItem val26 = new CustomItem("Meatloaf", "BloodPudding", val25);
		val26.ItemDrop.m_itemData.m_shared.m_food = 50f;
		val26.ItemDrop.m_itemData.m_shared.m_foodStamina = 45f;
		val26.ItemDrop.m_itemData.m_shared.m_foodRegen = 3f;
		ItemManager.Instance.AddItem(val26);
		ItemConfig val27 = new ItemConfig();
		val27.Name = "Broth";
		val27.Description = "Can't tell if it's made from beef bones, chicken bones, vegetables...";
		val27.CraftingStation = CraftingStations.Cauldron;
		val27.AddRequirement("Wishbone", 1, 0);
		val27.AddRequirement("Carrot", 1, 0);
		val27.AddRequirement("Turnip", 1, 0);
		val27.Icon = foodsAssetBundle.LoadAsset<Sprite>("brothicon");
		CustomItem val28 = new CustomItem("Broth", "MeadBugRepellent", val27);
		val28.ItemDrop.m_itemData.m_shared.m_itemType = (ItemType)1;
		val28.ItemDrop.m_itemData.m_shared.m_consumeStatusEffect = null;
		ItemManager.Instance.AddItem(val28);
		ItemConfig val29 = new ItemConfig();
		val29.Name = "Fish Stew";
		val29.Description = "Only missing noodles, and then it's a ramen.";
		val29.CraftingStation = CraftingStations.Cauldron;
		val29.AddRequirement("FishCooked", 1, 0);
		val29.AddRequirement("Broth", 1, 0);
		val29.Icon = foodsAssetBundle.LoadAsset<Sprite>("fishstew");
		CustomItem val30 = new CustomItem("FishStew", "SerpentStew", val29);
		val30.ItemDrop.m_itemData.m_shared.m_food = 85f;
		val30.ItemDrop.m_itemData.m_shared.m_foodStamina = 75f;
		val30.ItemDrop.m_itemData.m_shared.m_foodRegen = 4f;
		ItemManager.Instance.AddItem(val30);
		ItemConfig val31 = new ItemConfig();
		val31.Name = "Organic Iron";
		val31.Description = "The magical energies from the Swamp Key allows its mineral iron to be easily convertible into organic iron.";
		val31.CraftingStation = CraftingStations.Cauldron;
		val31.AddRequirement("CryptKey", 1, 0);
		val31.Amount = 5;
		val31.Icon = foodsAssetBundle.LoadAsset<Sprite>("organiciron");
		CustomItem val32 = new CustomItem("OrganicIron", "PowderedDragonEgg", val31);
		ItemManager.Instance.AddItem(val32);
		ItemConfig val33 = new ItemConfig();
		val33.Name = "PotionPrefab";
		val33.Description = "SHOULD NOT BE SEEN!!!";
		CustomItem val34 = new CustomItem("PotionPrefab", "MeadHealthMajor", val33);
		ItemManager.Instance.AddItem(val34);
		ItemConfig val35 = new ItemConfig();
		val35.Name = "Salty Mead";
		val35.Description = "Made from the finest tears that could rivalize with those from League of Legends.";
		val35.CraftingStation = CraftingStations.MeadKetill;
		val35.AddRequirement("DragonTear", 1, 0);
		val35.Icon = foodsAssetBundle.LoadAsset<Sprite>("SaltyMeadBase");
		CustomItem val36 = new CustomItem("SaltyMead", "MeadBaseFrostResist", val35);
		ItemManager.Instance.AddItem(val36);
		ItemConfig val37 = new ItemConfig();
		val37.Name = "Salty Potion";
		val37.Description = "Drink the tears of your enemies.";
		val37.Icon = foodsAssetBundle.LoadAsset<Sprite>("SaltyPotion");
		CustomItem val38 = new CustomItem("SaltyPotion", "MeadHealthMajor", val37);
		val38.ItemDrop.m_itemData.m_shared.m_consumeStatusEffect = (StatusEffect)(object)foodsAssetBundle.LoadAsset<SE_Stats>("SaltyPotionEffect");
		EffectList startEffects = ItemManager.Instance.GetItem("PotionPrefab").ItemDrop.m_itemData.m_shared.m_consumeStatusEffect.m_startEffects;
		val38.ItemDrop.m_itemData.m_shared.m_consumeStatusEffect.m_startEffects = startEffects;
		ItemManager.Instance.AddItem(val38);
		CustomItem val39 = new CustomItem("newMossyBait", "FishingBaitForest");
		ItemManager.Instance.AddItem(val39);
		CustomItem val40 = new CustomItem("newStickyBait", "FishingBaitSwamp");
		ItemManager.Instance.AddItem(val40);
		CustomItem val41 = new CustomItem("newStingyBait", "FishingBaitPlains");
		ItemManager.Instance.AddItem(val41);
		CustomItem val42 = new CustomItem("newHeavyBait", "FishingBaitOcean");
		ItemManager.Instance.AddItem(val42);
		CustomItem val43 = new CustomItem("newMistyBait", "FishingBaitMistlands");
		ItemManager.Instance.AddItem(val43);
		CustomItem val44 = new CustomItem("newHotBait", "FishingBaitAshlands");
		ItemManager.Instance.AddItem(val44);
		CustomItem val45 = new CustomItem("newFrostyBait", "FishingBaitDeepNorth");
		ItemManager.Instance.AddItem(val45);
		CustomItem val46 = new CustomItem("newColdBait", "FishingBaitCave");
		ItemManager.Instance.AddItem(val46);
		PrefabManager.OnVanillaPrefabsAvailable -= AddClonedItems;
	}

	private void FixShaders()
	{
		Shader shader = ((Renderer)ItemManager.Instance.GetItem("CapeDeerHideCopy").ItemPrefab.GetComponentInChildren<MeshRenderer>()).sharedMaterial.shader;
		Material[] materials = ((Renderer)capeDeer.GetComponentInChildren<MeshRenderer>()).materials;
		materials[0].shader = shader;
		Transform val = capeDeer.transform.Find("attach_skin/cape2");
		Material[] materials2 = ((Renderer)((Component)val).GetComponent<SkinnedMeshRenderer>()).materials;
		materials2[0].shader = shader;
		materials = ((Renderer)capeTroll.GetComponentInChildren<MeshRenderer>()).materials;
		materials[0].shader = shader;
		val = capeTroll.transform.Find("attach_skin/cape2");
		materials2 = ((Renderer)((Component)val).GetComponent<SkinnedMeshRenderer>()).materials;
		materials2[0].shader = shader;
		Shader shader2 = ((Renderer)ItemManager.Instance.GetItem("CapeWolfCopy").ItemPrefab.GetComponentInChildren<MeshRenderer>()).sharedMaterial.shader;
		materials = ((Renderer)capeWolfWaterproof.GetComponentInChildren<MeshRenderer>()).materials;
		materials[0].shader = shader2;
		val = capeWolfWaterproof.transform.Find("attach_skin/WolfCape");
		materials2 = ((Renderer)((Component)val).GetComponent<SkinnedMeshRenderer>()).materials;
		materials2[0].shader = shader;
		materials2[1].shader = shader;
		Transform val2 = capeWolfWaterproof.transform.Find("attach_skin/WolfCape_Cloth/WolfCape_cloth");
		Material[] materials3 = ((Renderer)((Component)val2).GetComponent<SkinnedMeshRenderer>()).materials;
		materials3[0].shader = shader;
		materials = ((Renderer)capeLoxWaterproof.GetComponentInChildren<MeshRenderer>()).materials;
		materials[0].shader = shader;
		val = capeLoxWaterproof.transform.Find("attach_skin/LoxCape");
		materials2 = ((Renderer)((Component)val).GetComponent<SkinnedMeshRenderer>()).materials;
		materials2[0].shader = shader;
		materials = ((Renderer)capeLinenWaterproof.GetComponentInChildren<MeshRenderer>()).materials;
		materials[0].shader = shader;
		val = capeLinenWaterproof.transform.Find("attach_skin/cape1");
		materials2 = ((Renderer)((Component)val).GetComponent<SkinnedMeshRenderer>()).materials;
		materials2[0].shader = shader;
		materials = ((Renderer)capeFeatherWaterproof.GetComponentInChildren<MeshRenderer>()).materials;
		materials[0].shader = shader;
		val = capeFeatherWaterproof.transform.Find("attach_skin/MageCape");
		materials2 = ((Renderer)((Component)val).GetComponent<SkinnedMeshRenderer>()).materials;
		materials2[0].shader = shader;
		materials = ((Renderer)capeAsksvinWaterproof.GetComponentInChildren<MeshRenderer>()).materials;
		materials[0].shader = shader;
		val = capeAsksvinWaterproof.transform.Find("attach_skin/Asksvincape");
		materials2 = ((Renderer)((Component)val).GetComponent<SkinnedMeshRenderer>()).materials;
		materials2[0].shader = shader;
		materials = ((Renderer)capeAshWaterproof.GetComponentInChildren<MeshRenderer>()).materials;
		materials[0].shader = shader;
		val = capeAshWaterproof.transform.Find("attach_skin/Plane");
		materials2 = ((Renderer)((Component)val).GetComponent<SkinnedMeshRenderer>()).materials;
		materials2[0].shader = shader;
		PrefabManager.OnVanillaPrefabsAvailable -= FixShaders;
	}

	private void CreateNewHaldor()
	{
		//IL_000d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0013: Expected O, but got Unknown
		//IL_0055: Unknown result type (might be due to invalid IL or missing references)
		//IL_005b: Expected O, but got Unknown
		//IL_009d: Unknown result type (might be due to invalid IL or missing references)
		//IL_00a3: Expected O, but got Unknown
		//IL_00e8: Unknown result type (might be due to invalid IL or missing references)
		//IL_00ef: Expected O, but got Unknown
		//IL_0139: Unknown result type (might be due to invalid IL or missing references)
		//IL_0140: Expected O, but got Unknown
		//IL_018a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0191: Expected O, but got Unknown
		//IL_01db: Unknown result type (might be due to invalid IL or missing references)
		//IL_01e2: Expected O, but got Unknown
		//IL_022c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0233: Expected O, but got Unknown
		Trader component = newHaldor.GetComponent<Trader>();
		TradeItem val = new TradeItem();
		val.m_price = 50;
		val.m_stack = 20;
		val.m_prefab = ItemManager.Instance.GetItem("newMossyBait").ItemDrop;
		val.m_requiredGlobalKey = GlobalKey.KilledEikthyr;
		component.m_items.Add(val);
		TradeItem val2 = new TradeItem();
		val2.m_price = 100;
		val2.m_stack = 20;
		val2.m_prefab = ItemManager.Instance.GetItem("newStickyBait").ItemDrop;
		val2.m_requiredGlobalKey = GlobalKey.KilledElder;
		component.m_items.Add(val2);
		TradeItem val3 = new TradeItem();
		val3.m_price = 150;
		val3.m_stack = 20;
		val3.m_prefab = ItemManager.Instance.GetItem("newStingyBait").ItemDrop;
		val3.m_requiredGlobalKey = GlobalKey.KilledModer;
		component.m_items.Add(val3);
		TradeItem val4 = new TradeItem();
		val4.m_price = 200;
		val4.m_stack = 20;
		val4.m_prefab = ItemManager.Instance.GetItem("newHeavyBait").ItemDrop;
		val4.m_requiredGlobalKey = GlobalKey.KilledTroll;
		component.m_items.Add(val4);
		TradeItem val5 = new TradeItem();
		val5.m_price = 250;
		val5.m_stack = 20;
		val5.m_prefab = ItemManager.Instance.GetItem("newMistyBait").ItemDrop;
		val5.m_requiredGlobalKey = GlobalKey.KilledModer;
		component.m_items.Add(val5);
		TradeItem val6 = new TradeItem();
		val6.m_price = 300;
		val6.m_stack = 20;
		val6.m_prefab = ItemManager.Instance.GetItem("newHotBait").ItemDrop;
		val6.m_requiredGlobalKey = GlobalKey.KilledYagluth;
		component.m_items.Add(val6);
		TradeItem val7 = new TradeItem();
		val7.m_price = 350;
		val7.m_stack = 20;
		val7.m_prefab = ItemManager.Instance.GetItem("newFrostyBait").ItemDrop;
		val7.m_requiredGlobalKey = GlobalKey.KilledYagluth;
		component.m_items.Add(val7);
		TradeItem val8 = new TradeItem();
		val8.m_price = 400;
		val8.m_stack = 20;
		val8.m_prefab = ItemManager.Instance.GetItem("newColdBait").ItemDrop;
		val8.m_requiredGlobalKey = GlobalKey.KilledYagluth;
		component.m_items.Add(val8);
		PrefabManager.Instance.AddPrefab(newHaldor);
		CustomPiece piece = PieceManager.Instance.GetPiece("InfiniteWoodTorch");
		Fireplace component2 = ((Component)piece.Piece).gameObject.GetComponent<Fireplace>();
		component2.m_infiniteFuel = true;
		CustomPiece piece2 = PieceManager.Instance.GetPiece("InfiniteIronTorch");
		component2 = ((Component)piece2.Piece).gameObject.GetComponent<Fireplace>();
		component2.m_infiniteFuel = true;
		CustomPiece piece3 = PieceManager.Instance.GetPiece("InfiniteGuckTorch");
		component2 = ((Component)piece3.Piece).gameObject.GetComponent<Fireplace>();
		component2.m_infiniteFuel = true;
		CustomPiece piece4 = PieceManager.Instance.GetPiece("InfiniteEyeTorch");
		component2 = ((Component)piece4.Piece).gameObject.GetComponent<Fireplace>();
		component2.m_infiniteFuel = true;
		CustomPiece piece5 = PieceManager.Instance.GetPiece("InfiniteSconce");
		component2 = ((Component)piece5.Piece).gameObject.GetComponent<Fireplace>();
		component2.m_infiniteFuel = true;
		PrefabManager.OnVanillaPrefabsAvailable -= CreateNewHaldor;
	}

	private void CreateWax()
	{
		//IL_0008: Unknown result type (might be due to invalid IL or missing references)
		//IL_000e: Expected O, but got Unknown
		CustomItem val = new CustomItem(waxPrefab, false);
		ItemManager.Instance.AddItem(val);
		PrefabManager.OnVanillaPrefabsAvailable -= CreateWax;
	}

	private void CreateCapes()
	{
		//IL_0008: Unknown result type (might be due to invalid IL or missing references)
		//IL_000e: Expected O, but got Unknown
		//IL_0015: Unknown result type (might be due to invalid IL or missing references)
		//IL_001b: Expected O, but got Unknown
		//IL_0022: Unknown result type (might be due to invalid IL or missing references)
		//IL_0028: Expected O, but got Unknown
		//IL_002f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0035: Expected O, but got Unknown
		//IL_003c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0043: Expected O, but got Unknown
		//IL_004a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0051: Expected O, but got Unknown
		//IL_0058: Unknown result type (might be due to invalid IL or missing references)
		//IL_005f: Expected O, but got Unknown
		//IL_0066: Unknown result type (might be due to invalid IL or missing references)
		//IL_006d: Expected O, but got Unknown
		CustomItem val = new CustomItem(capeDeer, false);
		CustomItem val2 = new CustomItem(capeTroll, false);
		CustomItem val3 = new CustomItem(capeWolfWaterproof, false);
		CustomItem val4 = new CustomItem(capeLoxWaterproof, false);
		CustomItem val5 = new CustomItem(capeLinenWaterproof, false);
		CustomItem val6 = new CustomItem(capeFeatherWaterproof, false);
		CustomItem val7 = new CustomItem(capeAsksvinWaterproof, false);
		CustomItem val8 = new CustomItem(capeAshWaterproof, false);
		ItemManager.Instance.AddItem(val);
		ItemManager.Instance.AddItem(val2);
		ItemManager.Instance.AddItem(val3);
		ItemManager.Instance.AddItem(val4);
		ItemManager.Instance.AddItem(val5);
		ItemManager.Instance.AddItem(val6);
		ItemManager.Instance.AddItem(val7);
		ItemManager.Instance.AddItem(val8);
		PrefabManager.OnVanillaPrefabsAvailable -= CreateCapes;
	}

	private void AddRecipes()
	{
		//IL_0001: Unknown result type (might be due to invalid IL or missing references)
		//IL_0007: Expected O, but got Unknown
		//IL_0040: Unknown result type (might be due to invalid IL or missing references)
		//IL_004a: Expected O, but got Unknown
		//IL_0054: Unknown result type (might be due to invalid IL or missing references)
		//IL_005e: Expected O, but got Unknown
		//IL_0068: Unknown result type (might be due to invalid IL or missing references)
		//IL_0072: Expected O, but got Unknown
		//IL_007c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0086: Expected O, but got Unknown
		//IL_008d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0097: Expected O, but got Unknown
		//IL_0098: Unknown result type (might be due to invalid IL or missing references)
		//IL_009e: Expected O, but got Unknown
		//IL_00d7: Unknown result type (might be due to invalid IL or missing references)
		//IL_00e1: Expected O, but got Unknown
		//IL_00eb: Unknown result type (might be due to invalid IL or missing references)
		//IL_00f5: 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_0113: Unknown result type (might be due to invalid IL or missing references)
		//IL_011d: Expected O, but got Unknown
		//IL_0124: Unknown result type (might be due to invalid IL or missing references)
		//IL_012e: Expected O, but got Unknown
		//IL_012f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0135: Expected O, but got Unknown
		//IL_016e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0178: Expected O, but got Unknown
		//IL_0182: Unknown result type (might be due to invalid IL or missing references)
		//IL_018c: 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_01aa: Unknown result type (might be due to invalid IL or missing references)
		//IL_01b4: Expected O, but got Unknown
		//IL_01bb: Unknown result type (might be due to invalid IL or missing references)
		//IL_01c5: Expected O, but got Unknown
		//IL_01c6: Unknown result type (might be due to invalid IL or missing references)
		//IL_01cc: Expected O, but got Unknown
		//IL_0205: Unknown result type (might be due to invalid IL or missing references)
		//IL_020f: Expected O, but got Unknown
		//IL_0219: Unknown result type (might be due to invalid IL or missing references)
		//IL_0223: Expected O, but got Unknown
		//IL_022d: Unknown result type (might be due to invalid IL or missing references)
		//IL_0237: Expected O, but got Unknown
		//IL_023e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0248: Expected O, but got Unknown
		//IL_0249: Unknown result type (might be due to invalid IL or missing references)
		//IL_0250: Expected O, but got Unknown
		//IL_028e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0298: Expected O, but got Unknown
		//IL_02a3: Unknown result type (might be due to invalid IL or missing references)
		//IL_02ad: 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_02ca: Unknown result type (might be due to invalid IL or missing references)
		//IL_02d4: Expected O, but got Unknown
		//IL_02d5: Unknown result type (might be due to invalid IL or missing references)
		//IL_02dc: Expected O, but got Unknown
		//IL_031a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0324: Expected O, but got Unknown
		//IL_032f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0339: Expected O, but got Unknown
		//IL_0344: Unknown result type (might be due to invalid IL or missing references)
		//IL_034e: Expected O, but got Unknown
		//IL_0359: Unknown result type (might be due to invalid IL or missing references)
		//IL_0363: Expected O, but got Unknown
		//IL_036e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0378: Expected O, but got Unknown
		//IL_0380: Unknown result type (might be due to invalid IL or missing references)
		//IL_038a: Expected O, but got Unknown
		//IL_038b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0392: Expected O, but got Unknown
		//IL_03d0: Unknown result type (might be due to invalid IL or missing references)
		//IL_03da: Expected O, but got Unknown
		//IL_03e5: Unknown result type (might be due to invalid IL or missing references)
		//IL_03ef: Expected O, but got Unknown
		//IL_03fa: Unknown result type (might be due to invalid IL or missing references)
		//IL_0404: Expected O, but got Unknown
		//IL_040c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0416: Expected O, but got Unknown
		//IL_0417: Unknown result type (might be due to invalid IL or missing references)
		//IL_041e: Expected O, but got Unknown
		//IL_045c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0466: Expected O, but got Unknown
		//IL_0471: Unknown result type (might be due to invalid IL or missing references)
		//IL_047b: Expected O, but got Unknown
		//IL_0486: Unknown result type (might be due to invalid IL or missing references)
		//IL_0490: Expected O, but got Unknown
		//IL_0498: Unknown result type (might be due to invalid IL or missing references)
		//IL_04a2: Expected O, but got Unknown
		//IL_04a3: Unknown result type (might be due to invalid IL or missing references)
		//IL_04aa: Expected O, but got Unknown
		//IL_04f0: Unknown result type (might be due to invalid IL or missing references)
		//IL_04fa: Expected O, but got Unknown
		//IL_04fb: Unknown result type (might be due to invalid IL or missing references)
		//IL_0502: Expected O, but got Unknown
		//IL_0549: Unknown result type (might be due to invalid IL or missing references)
		//IL_0553: Expected O, but got Unknown
		//IL_0554: Unknown result type (might be due to invalid IL or missing references)
		//IL_055b: Expected O, but got Unknown
		//IL_05a1: Unknown result type (might be due to invalid IL or missing references)
		//IL_05ab: Expected O, but got Unknown
		//IL_05ac: Unknown result type (might be due to invalid IL or missing references)
		//IL_05b3: Expected O, but got Unknown
		//IL_05f9: Unknown result type (might be due to invalid IL or missing references)
		//IL_0603: Expected O, but got Unknown
		//IL_0604: Unknown result type (might be due to invalid IL or missing references)
		//IL_060b: Expected O, but got Unknown
		//IL_0651: Unknown result type (might be due to invalid IL or missing references)
		//IL_065b: Expected O, but got Unknown
		//IL_065c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0663: Expected O, but got Unknown
		//IL_06a9: Unknown result type (might be due to invalid IL or missing references)
		//IL_06b3: Expected O, but got Unknown
		//IL_06b4: Unknown result type (might be due to invalid IL or missing references)
		//IL_06bb: Expected O, but got Unknown
		//IL_0701: Unknown result type (might be due to invalid IL or missing references)
		//IL_070b: Expected O, but got Unknown
		//IL_070c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0713: Expected O, but got Unknown
		//IL_0768: Unknown result type (might be due to invalid IL or missing references)
		//IL_0772: Expected O, but got Unknown
		//IL_0773: Unknown result type (might be due to invalid IL or missing references)
		//IL_077a: Expected O, but got Unknown
		//IL_07b1: Unknown result type (might be due to invalid IL or missing references)
		//IL_07bb: Expected O, but got Unknown
		RecipeConfig val = new RecipeConfig();
		val.CraftingStation = CraftingStations.Cauldron;
		val.Name = "Waterproof Deer Hide Cape";
		val.RepairStation = CraftingStations.Workbench;
		val.Item = "CapeDeer";
		val.AddRequirement(new RequirementConfig("CapeDeerHide", 1, 0, true));
		val.AddRequirement(new RequirementConfig("wax", 5, 0, true));
		val.AddRequirement(new RequirementConfig("DeerHide", 0, 4, true));
		val.AddRequirement(new RequirementConfig("BoneFragments", 0, 5, true));
		ItemManager.Instance.AddRecipe(new CustomRecipe(val));
		RecipeConfig val2 = new RecipeConfig();
		val2.CraftingStation = CraftingStations.Cauldron;
		val2.Name = "Waterproof Troll Hide Cape";
		val2.RepairStation = CraftingStations.Workbench;
		val2.Item = "CapeTroll";
		val2.AddRequirement(new RequirementConfig("CapeTrollHide", 1, 0, true));
		val2.AddRequirement(new RequirementConfig("wax", 5, 0, true));
		val2.AddRequirement(new RequirementConfig("TrollHide", 0, 5, true));
		val2.AddRequirement(new RequirementConfig("BoneFragments", 0, 5, true));
		ItemManager.Instance.AddRecipe(new CustomRecipe(val2));
		RecipeConfig val3 = new RecipeConfig();
		val3.CraftingStation = CraftingStations.Cauldron;
		val3.Name = "Waterproof Wolf Fur Cape";
		val3.RepairStation = CraftingStations.Workbench;
		val3.Item = "CapeWolfWaterproof";
		val3.AddRequirement(new RequirementConfig("CapeWolf", 1, 0, true));
		val3.AddRequirement(new RequirementConfig("wax", 5, 0, true));
		val3.AddRequirement(new RequirementConfig("WolfPelt", 0, 4, true));
		val3.AddRequirement(new RequirementConfig("Silver", 2, 0, true));
		ItemManager.Instance.AddRecipe(new CustomRecipe(val3));
		RecipeConfig val4 = new RecipeConfig();
		val4.CraftingStation = CraftingStations.Cauldron;
		val4.Name = "Waterproof Lox Cape";
		val4.RepairStation = CraftingStations.Workbench;
		val4.Item = "CapeLoxWaterproof";
		val4.AddRequirement(new RequirementConfig("CapeLox", 1, 0, true));
		val4.AddRequirement(new RequirementConfig("wax", 5, 0, true));
		val4.AddRequirement(new RequirementConfig("LoxPelt", 0, 2, true));
		ItemManager.Instance.AddRecipe(new CustomRecipe(val4));
		RecipeConfig val5 = new RecipeConfig();
		val5.CraftingStation = CraftingStations.Cauldron;
		val5.Name = "Waterproof Linen Cape";
		val5.RepairStation = CraftingStations.Workbench;
		val5.Item = "CapeLinenWaterproof";
		val5.AddRequirement(new RequirementConfig("CapeLinen", 1, 0, true));
		val5.AddRequirement(new RequirementConfig("wax", 5, 0, true));
		val5.AddRequirement(new RequirementConfig("LinenThread", 0, 4, true));
		ItemManager.Instance.AddRecipe(new CustomRecipe(val5));
		RecipeConfig val6 = new RecipeConfig();
		val6.CraftingStation = CraftingStations.Cauldron;
		val6.Name = "Waterproof Feather Cape";
		val6.RepairStation = CraftingStations.Workbench;
		val6.Item = "CapeFeatherWaterproof";
		val6.AddRequirement(new RequirementConfig("CapeFeather", 1, 0, true));
		val6.AddRequirement(new RequirementConfig("wax", 5, 0, true));
		val6.AddRequirement(new RequirementConfig("Feathers", 0, 2, true));
		val6.AddRequirement(new RequirementConfig("ScaleHide", 0, 5, true));
		val6.AddRequirement(new RequirementConfig("Eitr", 0, 3, true));
		ItemManager.Instance.AddRecipe(new CustomRecipe(val6));
		RecipeConfig val7 = new RecipeConfig();
		val7.CraftingStation = CraftingStations.Cauldron;
		val7.Name = "Waterproof Asksvin Cloak";
		val7.RepairStation = CraftingStations.Workbench;
		val7.Item = "CapeAsksvinWaterproof";
		val7.AddRequirement(new RequirementConfig("CapeAsksvin", 1, 0, true));
		val7.AddRequirement(new RequirementConfig("wax", 5, 0, true));
		val7.AddRequirement(new RequirementConfig("AskHide", 0, 2, true));
		ItemManager.Instance.AddRecipe(new CustomRecipe(val7));
		RecipeConfig val8 = new RecipeConfig();
		val8.CraftingStation = CraftingStations.Cauldron;
		val8.Name = "Waterproof Ashen Cape";
		val8.RepairStation = CraftingStations.Workbench;
		val8.Item = "CapeAshWaterproof";
		val8.AddRequirement(new RequirementConfig("CapeAsh", 1, 0, true));
		val8.AddRequirement(new RequirementConfig("wax", 5, 0, true));
		val8.AddRequirement(new RequirementConfig("AskHide", 0, 2, true));
		ItemManager.Instance.AddRecipe(new CustomRecipe(val8));
		RecipeConfig val9 = new RecipeConfig();
		val9.CraftingStation = CraftingStations.Cauldron;
		val9.Name = "Transmute Gold (Elder)";
		val9.Item = "TrophyEikthyr";
		val9.Amount = 2;
		val9.AddRequirement("TrophyTheElder", 1, 0);
		ItemManager.Instance.AddRecipe(new CustomRecipe(val9));
		RecipeConfig val10 = new RecipeConfig();
		val10.CraftingStation = CraftingStations.Cauldron;
		val10.Name = "Transmute Gold (Eikthyr)";
		val10.Item = "Coins";
		val10.Amount = 50;
		val10.AddRequirement("TrophyEikthyr", 1, 0);
		ItemManager.Instance.AddRecipe(new CustomRecipe(val10));
		RecipeConfig val11 = new RecipeConfig();
		val11.CraftingStation = CraftingStations.Cauldron;
		val11.Name = "Transmute Gold (Bonemass)";
		val11.Item = "TrophyTheElder";
		val11.Amount = 2;
		val11.AddRequirement("TrophyBonemass", 1, 0);
		ItemManager.Instance.AddRecipe(new CustomRecipe(val11));
		RecipeConfig val12 = new RecipeConfig();
		val12.CraftingStation = CraftingStations.Cauldron;
		val12.Name = "Transmute Gold (Moder)";
		val12.Item = "TrophyBonemass";
		val12.Amount = 2;
		val12.AddRequirement("TrophyDragonQueen", 1, 0);
		ItemManager.Instance.AddRecipe(new CustomRecipe(val12));
		RecipeConfig val13 = new RecipeConfig();
		val13.CraftingStation = CraftingStations.Cauldron;
		val13.Name = "Transmute Gold (Yagluth)";
		val13.Item = "TrophyDragonQueen";
		val13.Amount = 2;
		val13.AddRequirement("TrophyGoblinKing", 1, 0);
		ItemManager.Instance.AddRecipe(new CustomRecipe(val13));
		RecipeConfig val14 = new RecipeConfig();
		val14.CraftingStation = CraftingStations.Cauldron;
		val14.Name = "Transmute Gold (Queen)";
		val14.Item = "TrophyGoblinKing";
		val14.Amount = 2;
		val14.AddRequirement("TrophySeekerQueen", 1, 0);
		ItemManager.Instance.AddRecipe(new CustomRecipe(val14));
		RecipeConfig val15 = new RecipeConfig();
		val15.CraftingStation = CraftingStations.Cauldron;
		val15.Name = "Transmute Gold (Fader)";
		val15.Item = "TrophySeekerQueen";
		val15.Amount = 2;
		val15.AddRequirement("TrophyFader", 1, 0);
		ItemManager.Instance.AddRecipe(new CustomRecipe(val15));
		RecipeConfig val16 = new RecipeConfig();
		val16.CraftingStation = CraftingStations.Cauldron;
		val16.Name = "OrganicIron to Bloodbags";
		val16.Item = "Bloodbag";
		val16.Amount = 2;
		val16.AddRequirement("OrganicIron", 1, 0);
		val16.AddRequirement("Entrails", 1, 0);
		ItemManager.Instance.AddRecipe(new CustomRecipe(val16));
		FermenterConversionConfig val17 = new FermenterConversionConfig();
		((ConversionConfig)val17).ToItem = "SaltyPotion";
		((ConversionConfig)val17).FromItem = "SaltyMead";
		((ConversionConfig)val17).Station = Fermenters.Fermenter;
		val17.ProducedItems = 6;
		ItemManager.Instance.AddItemConversion(new CustomItemConversion((ConversionConfig)(object)val17));
	}
}