Decompiled source of WildWeapons v2.2.3

WildWeapons.dll

Decompiled 3 days ago
using System;
using System.Collections;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Diagnostics;
using System.Diagnostics.CodeAnalysis;
using System.Globalization;
using System.IO;
using System.IO.Compression;
using System.Linq;
using System.Linq.Expressions;
using System.Reflection;
using System.Reflection.Emit;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Serialization;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Cryptography;
using System.Security.Permissions;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading;
using BepInEx;
using BepInEx.Bootstrap;
using BepInEx.Configuration;
using BepInEx.Logging;
using HarmonyLib;
using ItemManager;
using JetBrains.Annotations;
using LocalizationManager;
using Microsoft.CodeAnalysis;
using ServerSync;
using TMPro;
using UnityEngine;
using YamlDotNet.Core;
using YamlDotNet.Core.Events;
using YamlDotNet.Core.Tokens;
using YamlDotNet.Helpers;
using YamlDotNet.Serialization;
using YamlDotNet.Serialization.BufferedDeserialization;
using YamlDotNet.Serialization.BufferedDeserialization.TypeDiscriminators;
using YamlDotNet.Serialization.Converters;
using YamlDotNet.Serialization.EventEmitters;
using YamlDotNet.Serialization.NamingConventions;
using YamlDotNet.Serialization.NodeDeserializers;
using YamlDotNet.Serialization.NodeTypeResolvers;
using YamlDotNet.Serialization.ObjectFactories;
using YamlDotNet.Serialization.ObjectGraphTraversalStrategies;
using YamlDotNet.Serialization.ObjectGraphVisitors;
using YamlDotNet.Serialization.Schemas;
using YamlDotNet.Serialization.TypeInspectors;
using YamlDotNet.Serialization.TypeResolvers;
using YamlDotNet.Serialization.Utilities;
using YamlDotNet.Serialization.ValueDeserializers;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: AssemblyTitle("WildWeapons")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyProduct("WildWeapons")]
[assembly: AssemblyCopyright("Copyright ©  2021")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("4358610B-F3F4-4843-B7AF-98B7BC60DCDE")]
[assembly: AssemblyFileVersion("2.2.3")]
[assembly: AssemblyCompany("catharis")]
[assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("2.2.3.0")]
[module: UnverifiableCode]
namespace Microsoft.CodeAnalysis
{
	[CompilerGenerated]
	[<19d8b668-cc02-45b7-aeda-75e43e2225e8>Embedded]
	internal sealed class <19d8b668-cc02-45b7-aeda-75e43e2225e8>EmbeddedAttribute : Attribute
	{
	}
}
namespace System.Runtime.CompilerServices
{
	[<19d8b668-cc02-45b7-aeda-75e43e2225e8>Embedded]
	[AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)]
	[CompilerGenerated]
	internal sealed class <d28022a6-0b07-42d6-bd25-81bd28e414ef>NullableAttribute : Attribute
	{
		public readonly byte[] NullableFlags;

		public <d28022a6-0b07-42d6-bd25-81bd28e414ef>NullableAttribute(byte P_0)
		{
			NullableFlags = new byte[1] { P_0 };
		}

		public <d28022a6-0b07-42d6-bd25-81bd28e414ef>NullableAttribute(byte[] P_0)
		{
			NullableFlags = P_0;
		}
	}
	[CompilerGenerated]
	[<19d8b668-cc02-45b7-aeda-75e43e2225e8>Embedded]
	[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)]
	internal sealed class <c987f02b-92f9-402e-9e48-5d23477b18e7>NullableContextAttribute : Attribute
	{
		public readonly byte Flag;

		public <c987f02b-92f9-402e-9e48-5d23477b18e7>NullableContextAttribute(byte P_0)
		{
			Flag = P_0;
		}
	}
}
namespace WildWeapons
{
	[BepInPlugin("catharis.WildWeapons", "WildWeapons", "2.2.3")]
	[<c987f02b-92f9-402e-9e48-5d23477b18e7>NullableContext(1)]
	[<d28022a6-0b07-42d6-bd25-81bd28e414ef>Nullable(0)]
	public class WildWeaponsPlugin : BaseUnityPlugin
	{
		[<c987f02b-92f9-402e-9e48-5d23477b18e7>NullableContext(0)]
		public enum Toggle
		{
			On = 1,
			Off = 0
		}

		[<c987f02b-92f9-402e-9e48-5d23477b18e7>NullableContext(0)]
		private class ConfigurationManagerAttributes
		{
			[UsedImplicitly]
			public int? Order;

			[UsedImplicitly]
			public bool? Browsable;

			[UsedImplicitly]
			[<d28022a6-0b07-42d6-bd25-81bd28e414ef>Nullable(2)]
			public string Category;

			[UsedImplicitly]
			[<d28022a6-0b07-42d6-bd25-81bd28e414ef>Nullable(new byte[] { 2, 1 })]
			public Action<ConfigEntryBase> CustomDrawer;
		}

		internal const string ModName = "WildWeapons";

		internal const string ModVersion = "2.2.3";

		internal const string Author = "catharis";

		private const string ModGUID = "catharis.WildWeapons";

		private static string ConfigFileName = "catharis.WildWeapons.cfg";

		private static string ConfigFileFullPath;

		internal static string ConnectionError;

		private readonly Harmony _harmony = new Harmony("catharis.WildWeapons");

		public static readonly ManualLogSource WildWeaponsLogger;

		private static readonly ConfigSync ConfigSync;

		private static ConfigEntry<Toggle> _serverConfigLocked;

		private static ConfigEntry<Toggle> _recipeIsActiveConfig;

		public void Awake()
		{
			Localizer.Load();
			_serverConfigLocked = config("1 - General", "Lock Configuration", Toggle.On, "If on, the configuration is locked and can be changed by server admins only.");
			ConfigSync.AddLockingConfigEntry<Toggle>(_serverConfigLocked);
			Item item = new Item("crazymagic", "Permafrost_CM");
			item.Name.English("Permafrost");
			item.Description.English("A lethally cold magic implement, may your foes be wary, lest they lose a limb to the frosty curse.");
			item.Crafting.Add(CraftingTable.MageTable, 1);
			item.RequiredItems.Add("StaffIceShards", 1);
			item.RequiredItems.Add("FreezeGland", 15);
			item.RequiredItems.Add("Silver", 15);
			item.RequiredUpgradeItems.Add("FreezeGland", 3);
			item.RequiredUpgradeItems.Add("Silver", 3);
			item.CraftAmount = 1;
			item.Trade.Price = 0u;
			item.Trade.Stack = 0u;
			item.Trade.RequiredGlobalKey = "defeated_bonemass";
			item.Trade.Trader = Trader.None;
			Item item2 = new Item("wildweapons", "RoyalSword_CAH");
			item2.Name.English("Royal Sword");
			item2.Description.English("A sword used by the Avereign Royal guard before the kingdom's fall.");
			item2.Crafting.Add(CraftingTable.Forge, 1);
			item2.RequiredItems.Add("Bronze", 10);
			item2.RequiredItems.Add("BjornHide", 10);
			item2.RequiredItems.Add("Ruby", 10);
			item2.RequiredUpgradeItems.Add("BjornHide", 1);
			item2.RequiredUpgradeItems.Add("Ruby", 1);
			item2.CraftAmount = 1;
			item2.Trade.Price = 0u;
			item2.Trade.Stack = 0u;
			item2.Trade.RequiredGlobalKey = "defeated_bonemass";
			item2.Trade.Trader = Trader.None;
			Item item3 = new Item("wildweapons", "RoyalGreatsword_CAH");
			item3.Name.English("Royal Greatsword");
			item3.Description.English("A greatsword used by the Avereign Royal guard before the kingdom's fall..");
			item3.Crafting.Add(CraftingTable.Forge, 1);
			item3.RequiredItems.Add("Bronze", 20);
			item3.RequiredItems.Add("BjornHide", 10);
			item3.RequiredItems.Add("Ruby", 10);
			item3.RequiredUpgradeItems.Add("Ruby", 1);
			item3.RequiredUpgradeItems.Add("BjornHide", 1);
			item3.CraftAmount = 1;
			item3.Trade.Price = 0u;
			item3.Trade.Stack = 0u;
			item3.Trade.RequiredGlobalKey = "defeated_bonemass";
			item3.Trade.Trader = Trader.None;
			Item item4 = new Item("wildweapons", "Repressor_CAH");
			item4.Name.English("Repressor");
			item4.Description.English("A sleek, straight, and lightweight blade designed for flexible combat.");
			item4.Crafting.Add(CraftingTable.Forge, 1);
			item4.RequiredItems.Add("Iron", 20);
			item4.RequiredItems.Add("Guck", 10);
			item4.RequiredItems.Add("Root", 5);
			item4.RequiredUpgradeItems.Add("Guck", 5);
			item4.RequiredUpgradeItems.Add("Root", 1);
			item4.CraftAmount = 1;
			item4.Trade.Price = 0u;
			item4.Trade.Stack = 0u;
			item4.Trade.RequiredGlobalKey = "defeated_bonemass";
			item4.Trade.Trader = Trader.None;
			Item item5 = new Item("wildweapons", "TwistedEdge_CAH");
			item5.Name.English("Witchbrand");
			item5.Description.English("A twisted and bloodied iron blade, to rend apart your foes.");
			item5.Crafting.Add(CraftingTable.Forge, 1);
			item5.RequiredItems.Add("Iron", 20);
			item5.RequiredItems.Add("TrophyKvastur", 1);
			item5.RequiredItems.Add("Bloodbag", 10);
			item5.RequiredUpgradeItems.Add("Iron", 5);
			item5.RequiredUpgradeItems.Add("Bloodbag", 2);
			item5.CraftAmount = 1;
			item5.Trade.Price = 0u;
			item5.Trade.Stack = 0u;
			item5.Trade.RequiredGlobalKey = "defeated_bonemass";
			item5.Trade.Trader = Trader.None;
			Item item6 = new Item("wildweapons", "EagleStrike_CAH");
			item6.Name.English("Eaglestrike");
			item6.Description.English("A modified version of the silver sword, infused with icy power.");
			item6.Crafting.Add(CraftingTable.Forge, 1);
			item6.RequiredItems.Add("SwordSilver", 1);
			item6.RequiredItems.Add("FreezeGland", 15);
			item6.RequiredItems.Add("TrophyHatchling", 1);
			item6.RequiredUpgradeItems.Add("FreezeGland", 5);
			item6.RequiredUpgradeItems.Add("TrophyHatchling", 1);
			item6.CraftAmount = 1;
			item6.Trade.Price = 0u;
			item6.Trade.Stack = 0u;
			item6.Trade.RequiredGlobalKey = "defeated_bonemass";
			item6.Trade.Trader = Trader.None;
			Item item7 = new Item("wildweapons", "Astralis_CAH");
			item7.Name.English("Astralis");
			item7.Description.English("A magical blade forged from crystals produced by the dragon queen herself.");
			item7.Crafting.Add(CraftingTable.Forge, 1);
			item7.RequiredItems.Add("Silver", 15);
			item7.RequiredItems.Add("FreezeGland", 15);
			item7.RequiredItems.Add("TrophySGolem", 1);
			item7.RequiredUpgradeItems.Add("FreezeGland", 5);
			item7.RequiredUpgradeItems.Add("Silver", 5);
			item7.CraftAmount = 1;
			item7.Trade.Price = 0u;
			item7.Trade.Stack = 0u;
			item7.Trade.RequiredGlobalKey = "defeated_bonemass";
			item7.Trade.Trader = Trader.None;
			Item item8 = new Item("wildweapons", "DemonBladeAehm_CAH");
			item8.Name.English("Aehm");
			item8.Description.English("Demonic sword Aehm, Brother sword of Vehm.");
			item8.Crafting.Add(CraftingTable.Forge, 1);
			item8.RequiredItems.Add("SwordIron", 1);
			item8.RequiredItems.Add("TrophyCultist", 1);
			item8.RequiredItems.Add("Bloodbag", 10);
			item8.RequiredUpgradeItems.Add("Iron", 5);
			item8.RequiredUpgradeItems.Add("Bloodbag", 5);
			item8.CraftAmount = 1;
			item8.Trade.Price = 0u;
			item8.Trade.Stack = 0u;
			item8.Trade.RequiredGlobalKey = "defeated_bonemass";
			item8.Trade.Trader = Trader.None;
			Item item9 = new Item("wildweapons", "DemonBladeVehm_CAH");
			item9.Name.English("Vehm");
			item9.Description.English("Demonic sword Vehm, Sister sword of Aehm.");
			item9.Crafting.Add(CraftingTable.Forge, 1);
			item9.RequiredItems.Add("SwordIron", 1);
			item9.RequiredItems.Add("TrophyCultist", 1);
			item9.RequiredItems.Add("Bloodbag", 10);
			item9.RequiredUpgradeItems.Add("Iron", 5);
			item9.RequiredUpgradeItems.Add("Bloodbag", 5);
			item9.CraftAmount = 1;
			item9.Trade.Price = 0u;
			item9.Trade.Stack = 0u;
			item9.Trade.RequiredGlobalKey = "defeated_bonemass";
			item9.Trade.Trader = Trader.None;
			Item item10 = new Item("wildweapons", "MountainCleaver_CAH");
			item10.Name.English("Mountain Cleaver");
			item10.Description.English("A massive heavy blade capable of tearing even mountains asunder.");
			item10.Crafting.Add(CraftingTable.Forge, 1);
			item10.RequiredItems.Add("Iron", 80);
			item10.RequiredItems.Add("Silver", 30);
			item10.RequiredItems.Add("TrophySGolem", 1);
			item10.RequiredUpgradeItems.Add("Iron", 5);
			item10.RequiredUpgradeItems.Add("Silver", 5);
			item10.CraftAmount = 1;
			item10.Trade.Price = 0u;
			item10.Trade.Stack = 0u;
			item10.Trade.RequiredGlobalKey = "defeated_bonemass";
			item10.Trade.Trader = Trader.None;
			Item item11 = new Item("wildweapons", "BoneReaver_CAH");
			item11.Name.English("Bonereaver");
			item11.Description.English("An incredibly violent blade made to rip apart foes. Something about violating a geneva convention, whatever that is.");
			item11.Crafting.Add(CraftingTable.Forge, 1);
			item11.RequiredItems.Add("TrophyGoblinKing", 1);
			item11.RequiredItems.Add("BoneFragments", 50);
			item11.RequiredItems.Add("Bloodbag", 25);
			item11.RequiredUpgradeItems.Add("BoneFragments", 10);
			item11.RequiredUpgradeItems.Add("Bloodbag", 10);
			item11.CraftAmount = 1;
			item11.Trade.Price = 0u;
			item11.Trade.Stack = 0u;
			item11.Trade.RequiredGlobalKey = "defeated_bonemass";
			item11.Trade.Trader = Trader.None;
			Item item12 = new Item("wildweapons", "Infernus_CAH");
			item12.Name.English("Infernus");
			item12.Description.English("A burning blade once wielded by a great queen who built a castle atop a volcano, eventually people tired of her control and slaughtered her.");
			item12.Crafting.Add(CraftingTable.BlackForge, 1);
			item12.RequiredItems.Add("Heatscar_CAH", 1);
			item12.RequiredItems.Add("SurtlingCore", 5);
			item12.RequiredItems.Add("YagluthDrop", 2);
			item12.RequiredUpgradeItems.Add("SurtlingCore", 1);
			item12.RequiredUpgradeItems.Add("YagluthDrop", 1);
			item12.CraftAmount = 1;
			item12.Trade.Price = 0u;
			item12.Trade.Stack = 0u;
			item12.Trade.RequiredGlobalKey = "defeated_bonemass";
			item12.Trade.Trader = Trader.None;
			Item item13 = new Item("wildweapons", "JadeJian_CAH");
			item13.Name.English("Tian Du");
			item13.Description.English("The ancient jian once wielded by the one known as the Heavenly Poison Demon.");
			item13.Crafting.Add(CraftingTable.BlackForge, 1);
			item13.RequiredItems.Add("TrophyTick", 5);
			item13.RequiredItems.Add("Eitr", 30);
			item13.RequiredItems.Add("Sap", 30);
			item13.RequiredUpgradeItems.Add("Eitr", 5);
			item13.RequiredUpgradeItems.Add("Sap", 5);
			item13.CraftAmount = 1;
			item13.Trade.Price = 0u;
			item13.Trade.Stack = 0u;
			item13.Trade.RequiredGlobalKey = "defeated_bonemass";
			item13.Trade.Trader = Trader.None;
			Item item14 = new Item("wildweapons", "SoulThief_CAH");
			item14.Name.English("Soulthief");
			item14.Description.English("A sinister longsword that utilizes unknown magic to fire condensed magic blades at your foes");
			item14.Crafting.Add(CraftingTable.MageTable, 1);
			item14.RequiredItems.Add("Eitr", 20);
			item14.RequiredItems.Add("BlackCore", 5);
			item14.RequiredItems.Add("BlackMetal", 15);
			item14.RequiredItems.Add("TrophyDvergr", 3);
			item14.RequiredUpgradeItems.Add("Eitr", 5);
			item14.RequiredUpgradeItems.Add("BlackMetal", 5);
			item14.CraftAmount = 1;
			item14.Trade.Price = 0u;
			item14.Trade.Stack = 0u;
			item14.Trade.RequiredGlobalKey = "defeated_bonemass";
			item14.Trade.Trader = Trader.None;
			Item item15 = new Item("wildweapons", "Arondight_CAH");
			item15.Name.English("Arondight");
			item15.Description.English("A legendary sword, reborn and stronger than ever.");
			item15.Crafting.Add(CraftingTable.BlackForge, 1);
			item15.RequiredItems.Add("Coins", 1000);
			item15.RequiredItems.Add("THSwordKrom", 1);
			item15.RequiredItems.Add("TrophySeekerQueen", 1);
			item15.RequiredItems.Add("TrophyDragonQueen", 1);
			item15.RequiredUpgradeItems.Add("DragonTear", 1);
			item15.RequiredUpgradeItems.Add("QueenDrop", 1);
			item15.CraftAmount = 1;
			item15.Trade.Price = 0u;
			item15.Trade.Stack = 0u;
			item15.Trade.RequiredGlobalKey = "defeated_bonemass";
			item15.Trade.Trader = Trader.None;
			Item item16 = new Item("wildweapons", "StarGleam_CAH");
			item16.Name.English("Stargleam");
			item16.Description.English("A sparkling long blade made in an effort to mimic the very stars.");
			item16.Crafting.Add(CraftingTable.BlackForge, 1);
			item16.RequiredItems.Add("TrophyFader", 1);
			item16.RequiredItems.Add("Coins", 1000);
			item16.RequiredItems.Add("FlametalNew", 25);
			item16.RequiredItems.Add("GemstoneBlue", 1);
			item16.RequiredUpgradeItems.Add("FlametalNew", 5);
			item16.RequiredUpgradeItems.Add("GemstoneBlue", 1);
			item16.CraftAmount = 1;
			item16.Trade.Price = 0u;
			item16.Trade.Stack = 0u;
			item16.Trade.RequiredGlobalKey = "defeated_bonemass";
			item16.Trade.Trader = Trader.None;
			Item item17 = new Item("wildweapons", "Firebrand_CAH");
			item17.Name.English("Durandal");
			item17.Description.English("A legendary sword, blazing once more beneath molten skies");
			item17.Crafting.Add(CraftingTable.BlackForge, 1);
			item17.RequiredItems.Add("MountainCleaver_CAH", 1);
			item17.RequiredItems.Add("TrophyCharredMelee", 1);
			item17.RequiredItems.Add("TrophyCharredMage", 1);
			item17.RequiredItems.Add("TrophyCharredArcher", 1);
			item17.RequiredUpgradeItems.Add("FlametalNew", 2);
			item17.RequiredUpgradeItems.Add("CharredBone", 10);
			item17.CraftAmount = 1;
			item17.Trade.Price = 0u;
			item17.Trade.Stack = 0u;
			item17.Trade.RequiredGlobalKey = "defeated_bonemass";
			item17.Trade.Trader = Trader.None;
			Item item18 = new Item("wildweapons", "Rupture_CAH");
			item18.Name.English("Rupture");
			item18.Description.English("A blade forged by combining the twin demon blades and concentrating their power into a deadly weapon.");
			item18.Crafting.Add(CraftingTable.BlackForge, 1);
			item18.RequiredItems.Add("DemonBladeAehm_CAH", 1);
			item18.RequiredItems.Add("DemonBladeVehm_CAH", 1);
			item18.RequiredItems.Add("FlametalNew", 25);
			item18.RequiredItems.Add("GemstoneRed", 1);
			item18.RequiredUpgradeItems.Add("FlametalNew", 5);
			item18.RequiredUpgradeItems.Add("GemstoneRed", 1);
			item18.CraftAmount = 1;
			item18.Trade.Price = 0u;
			item18.Trade.Stack = 0u;
			item18.Trade.RequiredGlobalKey = "defeated_bonemass";
			item18.Trade.Trader = Trader.None;
			Item item19 = new Item("wildweapons", "Frigida_CAH");
			item19.Name.English("Frigada");
			item19.Description.English("A deep and ancient sword, harrowing with icy power, even the heat of the Ashlands yields to Frigada's frosty might.");
			item19.Crafting.Add(CraftingTable.BlackForge, 1);
			item19.RequiredItems.Add("FreezeGland", 30);
			item19.RequiredItems.Add("FlametalNew", 30);
			item19.RequiredItems.Add("GemstoneBlue", 2);
			item19.RequiredUpgradeItems.Add("FreezeGland", 5);
			item19.RequiredUpgradeItems.Add("FlametalNew", 5);
			item19.CraftAmount = 1;
			item19.Trade.Price = 0u;
			item19.Trade.Stack = 0u;
			item19.Trade.RequiredGlobalKey = "defeated_bonemass";
			item19.Trade.Trader = Trader.None;
			Item item20 = new Item("wildweapons", "Conflagration_CAH");
			item20.Name.English("Conflagration");
			item20.Description.English("A culmination of absolute flame, the pinnacle of fire, Conflagration.");
			item20.Crafting.Add(CraftingTable.BlackForge, 1);
			item20.RequiredItems.Add("Infernus_CAH", 1);
			item20.RequiredItems.Add("SwordDyrnwyn", 1);
			item20.RequiredItems.Add("MoltenCore", 5);
			item20.RequiredItems.Add("FlametalNew", 10);
			item20.RequiredUpgradeItems.Add("MoltenCore", 1);
			item20.RequiredUpgradeItems.Add("FlametalNew", 5);
			item20.CraftAmount = 1;
			item20.Trade.Price = 0u;
			item20.Trade.Stack = 0u;
			item20.Trade.RequiredGlobalKey = "defeated_bonemass";
			item20.Trade.Trader = Trader.None;
			Item item21 = new Item("wildweapons", "Viridium_CAH");
			item21.Name.English("Viridium");
			item21.Description.English("A mighty blade made from black steel and enhanced with ghostly jade.");
			item21.Crafting.Add(CraftingTable.BlackForge, 1);
			item21.RequiredItems.Add("JadeJian_CAH", 1);
			item21.RequiredItems.Add("BlackMetal", 25);
			item21.RequiredItems.Add("TrophyAbomination", 1);
			item21.RequiredItems.Add("GemstoneGreen", 1);
			item21.RequiredUpgradeItems.Add("BlackMetal", 5);
			item21.RequiredUpgradeItems.Add("Bronze", 5);
			item21.CraftAmount = 1;
			item21.Trade.Price = 0u;
			item21.Trade.Stack = 0u;
			item21.Trade.RequiredGlobalKey = "defeated_bonemass";
			item21.Trade.Trader = Trader.None;
			Item item22 = new Item("wildweapons", "StormWalker_CAH");
			item22.Name.English("Storm Walker");
			item22.Description.English("The wielder is said to be capable of flying through storms like lightning.");
			item22.Crafting.Add(CraftingTable.BlackForge, 1);
			item22.RequiredItems.Add("FlametalNew", 30);
			item22.RequiredItems.Add("ShieldCore", 1);
			item22.RequiredItems.Add("GemstoneRed", 1);
			item22.RequiredItems.Add("SwordNiedhoggLightning", 1);
			item22.RequiredUpgradeItems.Add("FlametalNew", 5);
			item22.RequiredUpgradeItems.Add("Bronze", 5);
			item22.CraftAmount = 1;
			item22.Trade.Price = 0u;
			item22.Trade.Stack = 0u;
			item22.Trade.RequiredGlobalKey = "defeated_bonemass";
			item22.Trade.Trader = Trader.None;
			Item item23 = new Item("wildweapons", "Agareth_CAH");
			item23.Name.English("Agareth");
			item23.Description.English("A ghostly sword, from torn spirits and unholy wraiths, let yourself revel in dark power...");
			item23.Crafting.Add(CraftingTable.BlackForge, 1);
			item23.RequiredItems.Add("TwistedEdge_CAH", 1);
			item23.RequiredItems.Add("FlametalNew", 20);
			item23.RequiredItems.Add("TrophyWraith", 3);
			item23.RequiredItems.Add("TrophyGhost", 3);
			item23.RequiredUpgradeItems.Add("FlametalNew", 5);
			item23.RequiredUpgradeItems.Add("Ectoplasm", 2);
			item23.CraftAmount = 1;
			item23.Trade.Price = 0u;
			item23.Trade.Stack = 0u;
			item23.Trade.RequiredGlobalKey = "defeated_bonemass";
			item23.Trade.Trader = Trader.None;
			Item item24 = new Item("wildweapons", "Arumeria_CAH");
			item24.Name.English("Arumeria");
			item24.Description.English("Cut them, stab them, put holes through their miserable eyes, you are divine, and they shall not gaze upon you.");
			item24.Crafting.Add(CraftingTable.BlackForge, 1);
			item24.RequiredItems.Add("Repressor_CAH", 1);
			item24.RequiredItems.Add("MechanicalSpring", 10);
			item24.RequiredItems.Add("FlametalNew", 15);
			item24.RequiredItems.Add("TrophyMorgen", 2);
			item24.RequiredUpgradeItems.Add("FlametalNew", 3);
			item24.RequiredUpgradeItems.Add("MorgenSinew", 2);
			item24.CraftAmount = 1;
			item24.Trade.Price = 0u;
			item24.Trade.Stack = 0u;
			item24.Trade.RequiredGlobalKey = "defeated_bonemass";
			item24.Trade.Trader = Trader.None;
			Item item25 = new Item("wildweapons", "GoldBrand_CAH");
			item25.Name.English("Goldbrand");
			item25.Description.English("A simple and regal katana forged from bronze and leather.");
			item25.Crafting.Add(CraftingTable.Forge, 1);
			item25.RequiredItems.Add("Bronze", 15);
			item25.RequiredItems.Add("LeatherScraps", 5);
			item25.RequiredItems.Add("DeerHide", 5);
			item25.RequiredUpgradeItems.Add("Bronze", 5);
			item25.RequiredUpgradeItems.Add("DeerHide", 2);
			item25.CraftAmount = 1;
			item25.Trade.Price = 0u;
			item25.Trade.Stack = 0u;
			item25.Trade.RequiredGlobalKey = "defeated_bonemass";
			item25.Trade.Trader = Trader.None;
			Item item26 = new Item("wildweapons", "Emberspark_CAH");
			item26.Name.English("Emberspark");
			item26.Description.English("A wicked katana forged from iron and fire to create a mystical blade.");
			item26.Crafting.Add(CraftingTable.Forge, 1);
			item26.RequiredItems.Add("Iron", 20);
			item26.RequiredItems.Add("SurtlingCore", 5);
			item26.RequiredItems.Add("TrophySurtling", 1);
			item26.RequiredUpgradeItems.Add("Iron", 5);
			item26.RequiredUpgradeItems.Add("SurtlingCore", 1);
			item26.CraftAmount = 1;
			item26.Trade.Price = 0u;
			item26.Trade.Stack = 0u;
			item26.Trade.RequiredGlobalKey = "defeated_bonemass";
			item26.Trade.Trader = Trader.None;
			Item item27 = new Item("wildweapons", "Mortalis_CAH");
			item27.Name.English("Mortalis");
			item27.Description.English("A once regal katana, now smeared by cultist blood, has gained a mind of its own and craves blood.");
			item27.Crafting.Add(CraftingTable.Forge, 1);
			item27.RequiredItems.Add("GoldBrand_CAH", 1);
			item27.RequiredItems.Add("TrophyCultist", 2);
			item27.RequiredItems.Add("Iron", 10);
			item27.RequiredItems.Add("Bloodbag", 10);
			item27.RequiredUpgradeItems.Add("Bloodbag", 5);
			item27.RequiredUpgradeItems.Add("JuteRed", 1);
			item27.CraftAmount = 1;
			item27.Trade.Price = 0u;
			item27.Trade.Stack = 0u;
			item27.Trade.RequiredGlobalKey = "defeated_bonemass";
			item27.Trade.Trader = Trader.None;
			Item item28 = new Item("wildweapons", "FlowerVeil_CAH");
			item28.Name.English("Flowerveil");
			item28.Description.English("The result of purifying Mortalis under the guidance of ancient spirits and a strong will. ");
			item28.Crafting.Add(CraftingTable.Forge, 1);
			item28.RequiredItems.Add("Mortalis_CAH", 1);
			item28.RequiredItems.Add("Silver", 10);
			item28.RequiredItems.Add("Wisp", 5);
			item28.RequiredItems.Add("PowderedDragonEgg", 10);
			item28.RequiredUpgradeItems.Add("Silver", 5);
			item28.RequiredUpgradeItems.Add("PowderedDragonEgg", 2);
			item28.CraftAmount = 1;
			item28.Trade.Price = 0u;
			item28.Trade.Stack = 0u;
			item28.Trade.RequiredGlobalKey = "defeated_bonemass";
			item28.Trade.Trader = Trader.None;
			Item item29 = new Item("wildweapons", "StormDragon_CAH");
			item29.Name.English("Storm Dragon");
			item29.Description.English("The call of thunder, the breath of a dragon, behold a mighty blade!");
			item29.Crafting.Add(CraftingTable.BlackForge, 1);
			item29.RequiredItems.Add("Emberspark_CAH", 1);
			item29.RequiredItems.Add("FlametalNew", 15);
			item29.RequiredItems.Add("Thunderstone", 20);
			item29.RequiredItems.Add("GemstoneBlue", 1);
			item29.RequiredUpgradeItems.Add("SurtlingCore", 5);
			item29.RequiredUpgradeItems.Add("Thunderstone", 5);
			item29.CraftAmount = 1;
			item29.Trade.Price = 0u;
			item29.Trade.Stack = 0u;
			item29.Trade.RequiredGlobalKey = "defeated_bonemass";
			item29.Trade.Trader = Trader.None;
			Item item30 = new Item("wildweapons", "BlossomSong_CAH");
			item30.Name.English("Blossomsong");
			item30.Description.English("A beautiful blade of utmost elegance, capable of firing condensed sword energy from the will of its wielder.");
			item30.Crafting.Add(CraftingTable.BlackForge, 1);
			item30.RequiredItems.Add("TrophySeekerQueen", 1);
			item30.RequiredItems.Add("FlowerVeil_CAH", 1);
			item30.RequiredItems.Add("FlametalNew", 20);
			item30.RequiredItems.Add("PowderedDragonEgg", 20);
			item30.RequiredUpgradeItems.Add("PowderedDragonEgg", 5);
			item30.RequiredUpgradeItems.Add("FlametalNew", 5);
			item30.CraftAmount = 1;
			item30.Trade.Price = 0u;
			item30.Trade.Stack = 0u;
			item30.Trade.RequiredGlobalKey = "defeated_bonemass";
			item30.Trade.Trader = Trader.None;
			Item item31 = new Item("wildweapons", "SpiritBreaker_CAH");
			item31.Name.English("Spiritbreaker");
			item31.Description.English("Woe be apon thee, crush your enemies with their own skulls.");
			item31.Crafting.Add(CraftingTable.Forge, 1);
			item31.RequiredItems.Add("Iron", 20);
			item31.RequiredItems.Add("Ectoplasm", 10);
			item31.RequiredItems.Add("TrophySkeletonPoison", 2);
			item31.RequiredUpgradeItems.Add("Iron", 5);
			item31.RequiredUpgradeItems.Add("Ectoplasm", 2);
			item31.CraftAmount = 1;
			item31.Trade.Price = 0u;
			item31.Trade.Stack = 0u;
			item31.Trade.RequiredGlobalKey = "defeated_bonemass";
			item31.Trade.Trader = Trader.None;
			Item item32 = new Item("wildweapons", "Frostburn_CAH");
			item32.Name.English("Frostburn");
			item32.Description.English("Forged of unmelting ice, this hammer is capable of inflicting devastating wounds.");
			item32.Crafting.Add(CraftingTable.Forge, 1);
			item32.RequiredItems.Add("Silver", 20);
			item32.RequiredItems.Add("FreezeGland", 10);
			item32.RequiredItems.Add("TrophySGolem", 1);
			item32.RequiredUpgradeItems.Add("Silver", 5);
			item32.RequiredUpgradeItems.Add("FreezeGland", 2);
			item32.CraftAmount = 1;
			item32.Trade.Price = 0u;
			item32.Trade.Stack = 0u;
			item32.Trade.RequiredGlobalKey = "defeated_bonemass";
			item32.Trade.Trader = Trader.None;
			Item item33 = new Item("wildweapons", "SunCrusher_CAH");
			item33.Name.English("Suncrusher");
			item33.Description.English("By utilizing the power of heat and spirit, you have converted frostner into a deadly heated weapon.");
			item33.Crafting.Add(CraftingTable.Forge, 1);
			item33.RequiredItems.Add("MaceSilver", 1);
			item33.RequiredItems.Add("TrophyBjornUndead", 1);
			item33.RequiredItems.Add("TrophySurtling", 1);
			item33.RequiredItems.Add("Bronze", 20);
			item33.RequiredUpgradeItems.Add("Bronze", 5);
			item33.RequiredUpgradeItems.Add("SurtlingCore", 1);
			item33.CraftAmount = 1;
			item33.Trade.Price = 0u;
			item33.Trade.Stack = 0u;
			item33.Trade.RequiredGlobalKey = "defeated_bonemass";
			item33.Trade.Trader = Trader.None;
			Item item34 = new Item("wildweapons", "Harrower_CAH");
			item34.Name.English("Harrower");
			item34.Description.English("What a grotesque thing... What have you done...");
			item34.Crafting.Add(CraftingTable.BlackForge, 1);
			item34.RequiredItems.Add("SledgeDemolisher", 1);
			item34.RequiredItems.Add("TrophyGoblinKing", 1);
			item34.RequiredItems.Add("TrophyDvergr", 2);
			item34.RequiredItems.Add("TrophySkeleton", 5);
			item34.RequiredUpgradeItems.Add("BoneFragments", 10);
			item34.RequiredUpgradeItems.Add("TrophySkeleton", 1);
			item34.CraftAmount = 1;
			item34.Trade.Price = 0u;
			item34.Trade.Stack = 0u;
			item34.Trade.RequiredGlobalKey = "defeated_bonemass";
			item34.Trade.Trader = Trader.None;
			Item item35 = new Item("wildweapons", "Sparkgrinder_CAH");
			item35.Name.English("Sparkgrinder");
			item35.Description.English("A hammer forged from lightning and sun, it possesses sky crushing strength.");
			item35.Crafting.Add(CraftingTable.BlackForge, 1);
			item35.RequiredItems.Add("SunCrusher_CAH", 1);
			item35.RequiredItems.Add("Thunderstone", 20);
			item35.RequiredItems.Add("Eitr", 15);
			item35.RequiredUpgradeItems.Add("Eitr", 5);
			item35.RequiredUpgradeItems.Add("Thunderstone", 1);
			item35.CraftAmount = 1;
			item35.Trade.Price = 0u;
			item35.Trade.Stack = 0u;
			item35.Trade.RequiredGlobalKey = "defeated_bonemass";
			item35.Trade.Trader = Trader.None;
			Item item36 = new Item("wildweapons", "Magmarium_CAH");
			item36.Name.English("Magmarium");
			item36.Description.English("A magmatic hammer capable of creating eruptions from the earth.");
			item36.Crafting.Add(CraftingTable.BlackForge, 1);
			item36.RequiredItems.Add("MaceEldner", 1);
			item36.RequiredItems.Add("DragonEgg", 2);
			item36.RequiredItems.Add("FlametalNew", 20);
			item36.RequiredItems.Add("MoltenCore", 5);
			item36.RequiredUpgradeItems.Add("FlametalNew", 5);
			item36.RequiredUpgradeItems.Add("MoltenCore", 1);
			item36.CraftAmount = 1;
			item36.Trade.Price = 0u;
			item36.Trade.Stack = 0u;
			item36.Trade.RequiredGlobalKey = "defeated_bonemass";
			item36.Trade.Trader = Trader.None;
			Item item37 = new Item("wildweapons", "Corundum_CAH");
			item37.Name.English("Corundum");
			item37.Description.English("The mightiest hammer there is, capable of crushing any rock, or skull...");
			item37.Crafting.Add(CraftingTable.BlackForge, 1);
			item37.RequiredItems.Add("TrophyFader", 1);
			item37.RequiredItems.Add("Bronze", 25);
			item37.RequiredItems.Add("FlametalNew", 25);
			item37.RequiredItems.Add("BlackMarble", 25);
			item37.RequiredUpgradeItems.Add("Bronze", 5);
			item37.RequiredUpgradeItems.Add("FlametalNew", 5);
			item37.CraftAmount = 1;
			item37.Trade.Price = 0u;
			item37.Trade.Stack = 0u;
			item37.Trade.RequiredGlobalKey = "defeated_bonemass";
			item37.Trade.Trader = Trader.None;
			Item item38 = new Item("wildweapons", "FringeTrimmer_CAH");
			item38.Name.English("Fringe Trimmer");
			item38.Description.English("Despite the low quality in material, the craftsmanship is exceptional.");
			item38.Crafting.Add(CraftingTable.Forge, 1);
			item38.RequiredItems.Add("Tin", 10);
			item38.RequiredItems.Add("Wood", 5);
			item38.RequiredItems.Add("DeerHide", 10);
			item38.RequiredUpgradeItems.Add("Tin", 1);
			item38.RequiredUpgradeItems.Add("DeerHide", 1);
			item38.CraftAmount = 1;
			item38.Trade.Price = 0u;
			item38.Trade.Stack = 0u;
			item38.Trade.RequiredGlobalKey = "defeated_bonemass";
			item38.Trade.Trader = Trader.None;
			Item item39 = new Item("wildweapons", "RoyalAxe_CAH");
			item39.Name.English("Royal Greataxe");
			item39.Description.English("An axe used by the Avereign Royal guard before the kingdom's fall.");
			item39.Crafting.Add(CraftingTable.Forge, 1);
			item39.RequiredItems.Add("Bronze", 20);
			item39.RequiredItems.Add("BjornHide", 10);
			item39.RequiredItems.Add("Ruby", 10);
			item39.RequiredUpgradeItems.Add("BjornHide", 1);
			item39.RequiredUpgradeItems.Add("Ruby", 1);
			item39.CraftAmount = 1;
			item39.Trade.Price = 0u;
			item39.Trade.Stack = 0u;
			item39.Trade.RequiredGlobalKey = "defeated_bonemass";
			item39.Trade.Trader = Trader.None;
			Item item40 = new Item("wildweapons", "Galice_CAH");
			item40.Name.English("Galice");
			item40.Description.English("A deadly hand scythe crafted from materials scavenged from the swamp.");
			item40.Crafting.Add(CraftingTable.Forge, 1);
			item40.RequiredItems.Add("Iron", 10);
			item40.RequiredItems.Add("Guck", 5);
			item40.RequiredItems.Add("ElderBark", 10);
			item40.RequiredUpgradeItems.Add("Guck", 5);
			item40.RequiredUpgradeItems.Add("ElderBark", 5);
			item40.CraftAmount = 1;
			item40.Trade.Price = 0u;
			item40.Trade.Stack = 0u;
			item40.Trade.RequiredGlobalKey = "defeated_bonemass";
			item40.Trade.Trader = Trader.None;
			Item item41 = new Item("wildweapons", "SideWinder_CAH");
			item41.Name.English("Sidewinder");
			item41.Description.English("A frosty axe forged of silver and frost and inscribed with runes.");
			item41.Crafting.Add(CraftingTable.Forge, 1);
			item41.RequiredItems.Add("AxeIron", 1);
			item41.RequiredItems.Add("FreezeGland", 15);
			item41.RequiredItems.Add("Silver", 30);
			item41.RequiredUpgradeItems.Add("Silver", 3);
			item41.RequiredUpgradeItems.Add("FreezeGland", 3);
			item41.CraftAmount = 1;
			item41.Trade.Price = 0u;
			item41.Trade.Stack = 0u;
			item41.Trade.RequiredGlobalKey = "defeated_bonemass";
			item41.Trade.Trader = Trader.None;
			Item item42 = new Item("wildweapons", "FrostBearer_CAH");
			item42.Name.English("Frostbearer");
			item42.Description.English("A great axe once wielded by a now dead king who ruled a castle in the mountains.");
			item42.Crafting.Add(CraftingTable.Forge, 1);
			item42.RequiredItems.Add("TrophyCultist_Hildir", 1);
			item42.RequiredItems.Add("FreezeGland", 20);
			item42.RequiredItems.Add("Silver", 25);
			item42.RequiredUpgradeItems.Add("Silver", 5);
			item42.RequiredUpgradeItems.Add("FreezeGland", 5);
			item42.CraftAmount = 1;
			item42.Trade.Price = 0u;
			item42.Trade.Stack = 0u;
			item42.Trade.RequiredGlobalKey = "defeated_bonemass";
			item42.Trade.Trader = Trader.None;
			Item item43 = new Item("wildweapons", "Corruptum_CAH");
			item43.Name.English("Corruptum");
			item43.Description.English("A cursed axe that eats away at the minds and bodies of foes, granting vigor to its wielder.");
			item43.Crafting.Add(CraftingTable.Forge, 1);
			item43.RequiredItems.Add("Galice_CAH", 1);
			item43.RequiredItems.Add("TrophyGrowth", 2);
			item43.RequiredItems.Add("TrophySkeletonPoison", 2);
			item43.RequiredItems.Add("LinenThread", 10);
			item43.RequiredUpgradeItems.Add("LinenThread", 5);
			item43.RequiredUpgradeItems.Add("Guck", 5);
			item43.CraftAmount = 1;
			item43.Trade.Price = 0u;
			item43.Trade.Stack = 0u;
			item43.Trade.RequiredGlobalKey = "defeated_bonemass";
			item43.Trade.Trader = Trader.None;
			Item item44 = new Item("wildweapons", "Fuegon_CAH");
			item44.Name.English("Fuegon");
			item44.Description.English("A malformed infernal axe, the result of an experiment with magic gone terribly wrong...");
			item44.Crafting.Add(CraftingTable.MageTable, 1);
			item44.RequiredItems.Add("StaffFireball", 1);
			item44.RequiredItems.Add("BlackMetal", 20);
			item44.RequiredItems.Add("TrophySurtling", 2);
			item44.RequiredUpgradeItems.Add("BlackMetal", 5);
			item44.RequiredUpgradeItems.Add("Eitr", 5);
			item44.CraftAmount = 1;
			item44.Trade.Price = 0u;
			item44.Trade.Stack = 0u;
			item44.Trade.RequiredGlobalKey = "defeated_bonemass";
			item44.Trade.Trader = Trader.None;
			Item item45 = new Item("wildweapons", "Evallis_CAH");
			item45.Name.English("Evallis");
			item45.Description.English("Corruptum evolved, an even more sinister power lurks within, ready to viscerate your enemies.");
			item45.Crafting.Add(CraftingTable.BlackForge, 1);
			item45.RequiredItems.Add("Corruptum_CAH", 1);
			item45.RequiredItems.Add("TrophyFallenValkyrie", 1);
			item45.RequiredItems.Add("FlametalNew", 15);
			item45.RequiredItems.Add("Bloodbag", 15);
			item45.RequiredUpgradeItems.Add("FlametalNew", 5);
			item45.RequiredUpgradeItems.Add("Bloodbag", 5);
			item45.CraftAmount = 1;
			item45.Trade.Price = 0u;
			item45.Trade.Stack = 0u;
			item45.Trade.RequiredGlobalKey = "defeated_bonemass";
			item45.Trade.Trader = Trader.None;
			Item item46 = new Item("wildweapons", "Arken_CAH");
			item46.Name.English("Arken");
			item46.Description.English("The legendary greataxe Arken, crystallized with the combined power of Frostbearer and Fuegon.");
			item46.Crafting.Add(CraftingTable.BlackForge, 1);
			item46.RequiredItems.Add("Fuegon_CAH", 1);
			item46.RequiredItems.Add("FrostBearer_CAH", 1);
			item46.RequiredItems.Add("FlametalNew", 30);
			item46.RequiredItems.Add("Crystal", 30);
			item46.RequiredUpgradeItems.Add("FlametalNew", 5);
			item46.RequiredUpgradeItems.Add("Crystal", 5);
			item46.CraftAmount = 1;
			item46.Trade.Price = 0u;
			item46.Trade.Stack = 0u;
			item46.Trade.RequiredGlobalKey = "defeated_bonemass";
			item46.Trade.Trader = Trader.None;
			Item item47 = new Item("wildweapons", "StrideBreaker_CAH");
			item47.Name.English("Stridebreaker");
			item47.Description.English("Break them, break them all, shatter their knees, make them kneel for you.");
			item47.Crafting.Add(CraftingTable.BlackForge, 1);
			item47.RequiredItems.Add("TrophyCharredArcher", 5);
			item47.RequiredItems.Add("GemstoneRed", 2);
			item47.RequiredItems.Add("Silver", 25);
			item47.RequiredItems.Add("Bronze", 25);
			item47.RequiredUpgradeItems.Add("Silver", 5);
			item47.RequiredUpgradeItems.Add("Bronze", 5);
			item47.CraftAmount = 1;
			item47.Trade.Price = 0u;
			item47.Trade.Stack = 0u;
			item47.Trade.RequiredGlobalKey = "defeated_bonemass";
			item47.Trade.Trader = Trader.None;
			Item item48 = new Item("wildweapons", "RoyalLance_CAH");
			item48.Name.English("Royal Lance");
			item48.Description.English("A lance used by the Avereign Royal guard before the kingdom's fall.");
			item48.Crafting.Add(CraftingTable.Forge, 1);
			item48.RequiredItems.Add("Broze", 10);
			item48.RequiredItems.Add("BjornHide", 10);
			item48.RequiredItems.Add("Ruby", 10);
			item48.RequiredUpgradeItems.Add("BjornHide", 1);
			item48.RequiredUpgradeItems.Add("Ruby", 1);
			item48.CraftAmount = 1;
			item48.Trade.Price = 0u;
			item48.Trade.Stack = 0u;
			item48.Trade.RequiredGlobalKey = "defeated_bonemass";
			item48.Trade.Trader = Trader.None;
			Item item49 = new Item("wildweapons", "Bladeshift_CAH");
			item49.Name.English("Bladeshift");
			item49.Description.English("A spear, or is it a sword? Regardless, it sure is deadly.");
			item49.Crafting.Add(CraftingTable.Forge, 1);
			item49.RequiredItems.Add("Iron", 10);
			item49.RequiredItems.Add("Bronze", 10);
			item49.RequiredItems.Add("BjornHide", 5);
			item49.RequiredUpgradeItems.Add("BjornHide", 1);
			item49.RequiredUpgradeItems.Add("Iron", 3);
			item49.CraftAmount = 1;
			item49.Trade.Price = 0u;
			item49.Trade.Stack = 0u;
			item49.Trade.RequiredGlobalKey = "defeated_bonemass";
			item49.Trade.Trader = Trader.None;
			Item item50 = new Item("wildweapons", "Frostpiercer_CAH");
			item50.Name.English("Frostpiercer");
			item50.Description.English("A frigid and pointy spear forged from unmelting ice.");
			item50.Crafting.Add(CraftingTable.Forge, 1);
			item50.RequiredItems.Add("Silver", 15);
			item50.RequiredItems.Add("FreezeGland", 10);
			item50.RequiredItems.Add("TrophyWolf", 1);
			item50.RequiredUpgradeItems.Add("Silver", 5);
			item50.RequiredUpgradeItems.Add("FreezeGland", 2);
			item50.CraftAmount = 1;
			item50.Trade.Price = 0u;
			item50.Trade.Stack = 0u;
			item50.Trade.RequiredGlobalKey = "defeated_bonemass";
			item50.Trade.Trader = Trader.None;
			Item item51 = new Item("wildweapons", "Solemnity_CAH");
			item51.Name.English("Solemnity");
			item51.Description.English("Harrowing, yet beautifully distinct, it will tear through your foes with ease.");
			item51.Crafting.Add(CraftingTable.BlackForge, 1);
			item51.RequiredItems.Add("SpearCarapace", 1);
			item51.RequiredItems.Add("Crystal", 5);
			item51.RequiredItems.Add("Bronze", 5);
			item51.RequiredUpgradeItems.Add("Crystal", 2);
			item51.RequiredUpgradeItems.Add("Bronze", 2);
			item51.CraftAmount = 1;
			item51.Trade.Price = 0u;
			item51.Trade.Stack = 0u;
			item51.Trade.RequiredGlobalKey = "defeated_bonemass";
			item51.Trade.Trader = Trader.None;
			Item item52 = new Item("wildweapons", "SunPiercer_CAH");
			item52.Name.English("Sunpiercer");
			item52.Description.English("A magestic and legendary spear, said to once be used by a god to spear the very sun from the sky.");
			item52.Crafting.Add(CraftingTable.BlackForge, 1);
			item52.RequiredItems.Add("SpearSplitner", 1);
			item52.RequiredItems.Add("MoltenCore", 5);
			item52.RequiredItems.Add("Bronze", 20);
			item52.RequiredItems.Add("TrophySkeletonHildir", 1);
			item52.RequiredUpgradeItems.Add("MoltenCore", 1);
			item52.RequiredUpgradeItems.Add("Bronze", 5);
			item52.CraftAmount = 1;
			item52.Trade.Price = 0u;
			item52.Trade.Stack = 0u;
			item52.Trade.RequiredGlobalKey = "defeated_bonemass";
			item52.Trade.Trader = Trader.None;
			Item item53 = new Item("wildweapons", "RoyalAtgeir_CAH");
			item53.Name.English("Royal Atgeir");
			item53.Description.English("An atgeir used by the Avereign Royal guard before the kingdom's fall.");
			item53.Crafting.Add(CraftingTable.Forge, 1);
			item53.RequiredItems.Add("Bronze", 20);
			item53.RequiredItems.Add("BjornHide", 10);
			item53.RequiredItems.Add("Ruby", 10);
			item53.RequiredUpgradeItems.Add("BjornHide", 1);
			item53.RequiredUpgradeItems.Add("Ruby", 1);
			item53.CraftAmount = 1;
			item53.Trade.Price = 0u;
			item53.Trade.Stack = 0u;
			item53.Trade.RequiredGlobalKey = "defeated_bonemass";
			item53.Trade.Trader = Trader.None;
			Item item54 = new Item("wildweapons", "RoyalScythe_CAH");
			item54.Name.English("Royal Scythe");
			item54.Description.English("A scythe used by the Avereign Royal guard before the kingdom's fall.");
			item54.Crafting.Add(CraftingTable.Forge, 1);
			item54.RequiredItems.Add("Bronze", 20);
			item54.RequiredItems.Add("BjornHide", 10);
			item54.RequiredItems.Add("Ruby", 10);
			item54.RequiredUpgradeItems.Add("BjornHide", 1);
			item54.RequiredUpgradeItems.Add("Ruby", 1);
			item54.CraftAmount = 1;
			item54.Trade.Price = 0u;
			item54.Trade.Stack = 0u;
			item54.Trade.RequiredGlobalKey = "defeated_bonemass";
			item54.Trade.Trader = Trader.None;
			Item item55 = new Item("wildweapons", "Ephemerance_CAH");
			item55.Name.English("Ephemerance");
			item55.Description.English("A ghostly glaive that has the ability to make one intangible for a short period of time.");
			item55.Crafting.Add(CraftingTable.Forge, 1);
			item55.RequiredItems.Add("TrophyGhost", 1);
			item55.RequiredItems.Add("Iron", 20);
			item55.RequiredItems.Add("Ectoplasm", 10);
			item55.RequiredUpgradeItems.Add("Iron", 3);
			item55.RequiredUpgradeItems.Add("Ectoplasm", 1);
			item55.CraftAmount = 1;
			item55.Trade.Price = 0u;
			item55.Trade.Stack = 0u;
			item55.Trade.RequiredGlobalKey = "defeated_bonemass";
			item55.Trade.Trader = Trader.None;
			Item item56 = new Item("wildweapons", "Frostclash_CAH");
			item56.Name.English("Frostclash");
			item56.Description.English("A frosty and lethal scythe forged from unmelting ice.");
			item56.Crafting.Add(CraftingTable.Forge, 1);
			item56.RequiredItems.Add("Silver", 20);
			item56.RequiredItems.Add("FreezeGland", 10);
			item56.RequiredItems.Add("TrophyHatchling", 1);
			item56.RequiredUpgradeItems.Add("Silver", 5);
			item56.RequiredUpgradeItems.Add("FreezeGland", 2);
			item56.CraftAmount = 1;
			item56.Trade.Price = 0u;
			item56.Trade.Stack = 0u;
			item56.Trade.RequiredGlobalKey = "defeated_bonemass";
			item56.Trade.Trader = Trader.None;
			Item item57 = new Item("wildweapons", "FearNaught_CAH");
			item57.Name.English("Fearnaught");
			item57.Description.English("A vile scythe that has reaped the lives of many, will you use it? or will it use you?");
			item57.Crafting.Add(CraftingTable.Forge, 1);
			item57.RequiredItems.Add("TrophyGoblinShaman", 1);
			item57.RequiredItems.Add("BlackMetal", 20);
			item57.RequiredItems.Add("AtgeirBlackmetal", 5);
			item57.RequiredUpgradeItems.Add("BlackMetal", 5);
			item57.RequiredUpgradeItems.Add("TrophyGoblinShaman", 1);
			item57.CraftAmount = 1;
			item57.Trade.Price = 0u;
			item57.Trade.Stack = 0u;
			item57.Trade.RequiredGlobalKey = "defeated_bonemass";
			item57.Trade.Trader = Trader.None;
			Item item58 = new Item("wildweapons", "DemonVane_CAH");
			item58.Name.English("Demonvane");
			item58.Description.English("An insidious spear that gives off a woeful aura...");
			item58.Crafting.Add(CraftingTable.BlackForge, 1);
			item58.RequiredItems.Add("AtgeirHimminAfl", 1);
			item58.RequiredItems.Add("BlackMetal", 15);
			item58.RequiredItems.Add("BlackCore", 5);
			item58.RequiredItems.Add("TrophyDvergr", 1);
			item58.RequiredUpgradeItems.Add("BlackMetal", 5);
			item58.RequiredUpgradeItems.Add("BlackCore", 1);
			item58.CraftAmount = 1;
			item58.Trade.Price = 0u;
			item58.Trade.Stack = 0u;
			item58.Trade.RequiredGlobalKey = "defeated_bonemass";
			item58.Trade.Trader = Trader.None;
			Item item59 = new Item("wildweapons", "Malevolence_CAH");
			item59.Name.English("Malevolence");
			item59.Description.English("A great magic lance made of ancient evil bones, capable of firing deadly projectiles at the cost of the wielder's life.");
			item59.Crafting.Add(CraftingTable.BlackForge, 1);
			item59.RequiredItems.Add("TrophySeekerQueen", 1);
			item59.RequiredItems.Add("StaffSkeleton", 1);
			item59.RequiredItems.Add("UndeadBjornRibcage", 15);
			item59.RequiredItems.Add("BonemawSerpentTooth", 10);
			item59.RequiredUpgradeItems.Add("UndeadBjornRibcage", 1);
			item59.RequiredUpgradeItems.Add("BonemawSerpentTooth", 5);
			item59.CraftAmount = 1;
			item59.Trade.Price = 0u;
			item59.Trade.Stack = 0u;
			item59.Trade.RequiredGlobalKey = "defeated_bonemass";
			item59.Trade.Trader = Trader.None;
			Item item60 = new Item("wildweapons", "SoulShear_CAH");
			item60.Name.English("Soulshear");
			item60.Description.English("A sinister sickle made from cheap metal and some spiritual materials.");
			item60.Crafting.Add(CraftingTable.Forge, 1);
			item60.RequiredItems.Add("Copper", 5);
			item60.RequiredItems.Add("Ectoplasm", 5);
			item60.RequiredItems.Add("RoundLog", 1);
			item60.RequiredUpgradeItems.Add("Copper", 1);
			item60.RequiredUpgradeItems.Add("Ectoplasm", 1);
			item60.CraftAmount = 1;
			item60.Trade.Price = 0u;
			item60.Trade.Stack = 0u;
			item60.Trade.RequiredGlobalKey = "defeated_bonemass";
			item60.Trade.Trader = Trader.None;
			Item item61 = new Item("wildweapons", "GospelSong_CAH");
			item61.Name.English("Gospelsong");
			item61.Description.English("An ornate gothic dagger forged of iron.");
			item61.Crafting.Add(CraftingTable.Forge, 1);
			item61.RequiredItems.Add("Iron", 10);
			item61.RequiredItems.Add("Root", 2);
			item61.RequiredItems.Add("LeatherScraps", 5);
			item61.RequiredUpgradeItems.Add("Iron", 1);
			item61.RequiredUpgradeItems.Add("Root", 1);
			item61.CraftAmount = 1;
			item61.Trade.Price = 0u;
			item61.Trade.Stack = 0u;
			item61.Trade.RequiredGlobalKey = "defeated_bonemass";
			item61.Trade.Trader = Trader.None;
			Item item62 = new Item("wildweapons", "Heatscar_CAH");
			item62.Name.English("Heatscar");
			item62.Description.English("A crude blade forged of iron and fire, perhaps someday it can be something more...");
			item62.Crafting.Add(CraftingTable.Forge, 1);
			item62.RequiredItems.Add("Iron", 10);
			item62.RequiredItems.Add("SurtlingCore", 2);
			item62.RequiredItems.Add("TrophySurtling", 1);
			item62.RequiredUpgradeItems.Add("Iron", 3);
			item62.RequiredUpgradeItems.Add("SurtlingCore", 1);
			item62.CraftAmount = 1;
			item62.Trade.Price = 0u;
			item62.Trade.Stack = 0u;
			item62.Trade.RequiredGlobalKey = "defeated_bonemass";
			item62.Trade.Trader = Trader.None;
			Item item63 = new Item("wildweapons", "Suppressor_CAH");
			item63.Name.English("Suppressor");
			item63.Description.English("A dagger designed for defense rather than offense.");
			item63.Crafting.Add(CraftingTable.Forge, 1);
			item63.RequiredItems.Add("Iron", 10);
			item63.RequiredItems.Add("Guck", 10);
			item63.RequiredItems.Add("TrophyDraugrElite", 1);
			item63.RequiredUpgradeItems.Add("Iron", 3);
			item63.RequiredUpgradeItems.Add("Guck", 3);
			item63.CraftAmount = 1;
			item63.Trade.Price = 0u;
			item63.Trade.Stack = 0u;
			item63.Trade.RequiredGlobalKey = "defeated_bonemass";
			item63.Trade.Trader = Trader.None;
			Item item64 = new Item("wildweapons", "Fanatica_CAH");
			item64.Name.English("Fanatica");
			item64.Description.English("An ornate dagger used in cultist rituals, extended use may drive the wearer mad...");
			item64.Crafting.Add(CraftingTable.Forge, 1);
			item64.RequiredItems.Add("KnifeSilver", 1);
			item64.RequiredItems.Add("TrophyUlv", 2);
			item64.RequiredItems.Add("Ectoplasm", 5);
			item64.RequiredUpgradeItems.Add("Silver", 3);
			item64.RequiredUpgradeItems.Add("Ectoplasm", 1);
			item64.CraftAmount = 1;
			item64.Trade.Price = 0u;
			item64.Trade.Stack = 0u;
			item64.Trade.RequiredGlobalKey = "defeated_bonemass";
			item64.Trade.Trader = Trader.None;
			Item item65 = new Item("wildweapons", "Angelcutter_CAH");
			item65.Name.English("Angelcutter");
			item65.Description.English("A blasphemous dagger that was once used to murder an angel.");
			item65.Crafting.Add(CraftingTable.Forge, 1);
			item65.RequiredItems.Add("Silver", 10);
			item65.RequiredItems.Add("Obsidian", 10);
			item65.RequiredItems.Add("TrophyHatchling", 1);
			item65.RequiredUpgradeItems.Add("Silver", 3);
			item65.RequiredUpgradeItems.Add("Obsidian", 3);
			item65.CraftAmount = 1;
			item65.Trade.Price = 0u;
			item65.Trade.Stack = 0u;
			item65.Trade.RequiredGlobalKey = "defeated_bonemass";
			item65.Trade.Trader = Trader.None;
			Item item66 = new Item("wildweapons", "DevilThorn_CAH");
			item66.Name.English("Devil's Thorn");
			item66.Description.English("A magic-forged dagger said to be capable of cutting through even iron.");
			item66.Crafting.Add(CraftingTable.BlackForge, 1);
			item66.RequiredItems.Add("Fanatica_CAH", 1);
			item66.RequiredItems.Add("GiantBloodSack", 10);
			item66.RequiredItems.Add("YagluthDrop", 1);
			item66.RequiredUpgradeItems.Add("Silver", 5);
			item66.RequiredUpgradeItems.Add("GiantBloodSack", 5);
			item66.CraftAmount = 1;
			item66.Trade.Price = 0u;
			item66.Trade.Stack = 0u;
			item66.Trade.RequiredGlobalKey = "defeated_bonemass";
			item66.Trade.Trader = Trader.None;
			Item item67 = new Item("wildweapons", "QueenSlayer_CAH");
			item67.Name.English("QueenSlayer");
			item67.Description.English("A powerful Dagger, made from the bloody might of the Seeker Queen herself.");
			item67.Crafting.Add(CraftingTable.BlackForge, 1);
			item67.RequiredItems.Add("TrophySeekerQueen", 1);
			item67.RequiredItems.Add("Ruby", 10);
			item67.RequiredItems.Add("Bronze", 10);
			item67.RequiredUpgradeItems.Add("Bronze", 3);
			item67.RequiredUpgradeItems.Add("Ruby", 3);
			item67.CraftAmount = 1;
			item67.Trade.Price = 0u;
			item67.Trade.Stack = 0u;
			item67.Trade.RequiredGlobalKey = "defeated_bonemass";
			item67.Trade.Trader = Trader.None;
			Item item68 = new Item("wildweapons", "Regalia_CAH");
			item68.Name.English("Regalia");
			item68.Description.English("A regal and deadly dagger that was once used to kill a great king.");
			item68.Crafting.Add(CraftingTable.BlackForge, 1);
			item68.RequiredItems.Add("QueenSlayer_CAH", 1);
			item68.RequiredItems.Add("GemstoneBlue", 3);
			item68.RequiredItems.Add("FlametalNew", 15);
			item68.RequiredItems.Add("MorgenSinew", 10);
			item68.RequiredUpgradeItems.Add("FlametalNew", 3);
			item68.RequiredUpgradeItems.Add("MorgenSinew", 2);
			item68.CraftAmount = 1;
			item68.Trade.Price = 0u;
			item68.Trade.Stack = 0u;
			item68.Trade.RequiredGlobalKey = "defeated_bonemass";
			item68.Trade.Trader = Trader.None;
			Item item69 = new Item("wildweapons", "Regulator_CAH");
			item69.Name.English("Regulator");
			item69.Description.English("Throughout countless battles, Regulator has never failed to deflect a blade. -Perfectly parrying grants a boost to regen, armor, and damage.");
			item69.Crafting.Add(CraftingTable.BlackForge, 1);
			item69.RequiredItems.Add("TrophyCharredMelee", 2);
			item69.RequiredItems.Add("FlametalNew", 10);
			item69.RequiredItems.Add("GemstoneRed", 1);
			item69.RequiredUpgradeItems.Add("FlametalNew", 5);
			item69.RequiredUpgradeItems.Add("GemstoneRed", 1);
			item69.CraftAmount = 1;
			item69.Trade.Price = 0u;
			item69.Trade.Stack = 0u;
			item69.Trade.RequiredGlobalKey = "defeated_bonemass";
			item69.Trade.Trader = Trader.None;
			Item item70 = new Item("wildweapons", "Auretia_CAH");
			item70.Name.English("Auretia");
			item70.Description.English("Elegant, sleek, some would even say divine, may this blade deflect the blows of any filthy beings that stand beneath you.");
			item70.Crafting.Add(CraftingTable.BlackForge, 1);
			item70.RequiredItems.Add("Suppressor_CAH", 1);
			item70.RequiredItems.Add("FlametalNew", 15);
			item70.RequiredItems.Add("TrophyFallenValkyrie", 1);
			item70.RequiredItems.Add("GemstoneRed", 1);
			item70.RequiredUpgradeItems.Add("FlametalNew", 3);
			item70.RequiredUpgradeItems.Add("CelestialFeather", 3);
			item70.CraftAmount = 1;
			item70.Trade.Price = 0u;
			item70.Trade.Stack = 0u;
			item70.Trade.RequiredGlobalKey = "defeated_bonemass";
			item70.Trade.Trader = Trader.None;
			Item item71 = new Item("wildweapons", "RoyalBow_CAH");
			item71.Name.English("Royal Bow");
			item71.Description.English("A bow used by the Avereign Royal archers before the kingdom's fall.");
			item71.Crafting.Add(CraftingTable.Workbench, 1);
			item71.RequiredItems.Add("Bronze", 15);
			item71.RequiredItems.Add("BjornHide", 10);
			item71.RequiredItems.Add("Ruby", 10);
			item71.RequiredUpgradeItems.Add("BjornHide", 1);
			item71.RequiredUpgradeItems.Add("Ruby", 1);
			item71.CraftAmount = 1;
			item71.Trade.Price = 0u;
			item71.Trade.Stack = 0u;
			item71.Trade.RequiredGlobalKey = "defeated_bonemass";
			item71.Trade.Trader = Trader.None;
			Item item72 = new Item("wildweapons", "SkullStrike_CAH");
			item72.Name.English("Skullstrike");
			item72.Description.English("Crafted of the skulls and bones of your enemies, tear them apart with deadly arrows.");
			item72.Crafting.Add(CraftingTable.Workbench, 1);
			item72.RequiredItems.Add("Iron", 15);
			item72.RequiredItems.Add("ElderBark", 15);
			item72.RequiredItems.Add("TrophyDraugrElite", 1);
			item72.RequiredUpgradeItems.Add("Iron", 3);
			item72.RequiredUpgradeItems.Add("ElderBark", 2);
			item72.CraftAmount = 1;
			item72.Trade.Price = 0u;
			item72.Trade.Stack = 0u;
			item72.Trade.RequiredGlobalKey = "defeated_bonemass";
			item72.Trade.Trader = Trader.None;
			Item item73 = new Item("wildweapons", "Skivanti_CAH");
			item73.Name.English("Skivanti");
			item73.Description.English("A mechanical greatbow made to fire high speed arrows.");
			item73.Crafting.Add(CraftingTable.Workbench, 1);
			item73.RequiredItems.Add("Silver", 15);
			item73.RequiredItems.Add("Bronze", 15);
			item73.RequiredItems.Add("DragonTear", 5);
			item73.RequiredUpgradeItems.Add("Silver", 5);
			item73.RequiredUpgradeItems.Add("DragonTear", 1);
			item73.CraftAmount = 1;
			item73.Trade.Price = 0u;
			item73.Trade.Stack = 0u;
			item73.Trade.RequiredGlobalKey = "defeated_bonemass";
			item73.Trade.Trader = Trader.None;
			Item item74 = new Item("wildweapons", "Vecta_CAH");
			item74.Name.English("Vecta");
			item74.Description.English("A strong bow forged from the tough carapace of seekers.");
			item74.Crafting.Add(CraftingTable.BlackForge, 1);
			item74.RequiredItems.Add("TrophySeekerBrute", 1);
			item74.RequiredItems.Add("BlackMetal", 25);
			item74.RequiredItems.Add("Mandible", 10);
			item74.RequiredUpgradeItems.Add("BlackMetal", 5);
			item74.RequiredUpgradeItems.Add("Mandible", 1);
			item74.CraftAmount = 1;
			item74.Trade.Price = 0u;
			item74.Trade.Stack = 0u;
			item74.Trade.RequiredGlobalKey = "defeated_bonemass";
			item74.Trade.Trader = Trader.None;
			Item item75 = new Item("wildweapons", "Astarte_CAH");
			item75.Name.English("Astarte");
			item75.Description.English("Holy bow Astarte, one wielded by a heroic archer.");
			item75.Crafting.Add(CraftingTable.BlackForge, 1);
			item75.RequiredItems.Add("BowDraugrFang", 1);
			item75.RequiredItems.Add("Eitr", 25);
			item75.RequiredItems.Add("Silver", 15);
			item75.RequiredItems.Add("TrophySeeker", 5);
			item75.RequiredUpgradeItems.Add("Silver", 5);
			item75.RequiredUpgradeItems.Add("Eitr", 5);
			item75.CraftAmount = 1;
			item75.Trade.Price = 0u;
			item75.Trade.Stack = 0u;
			item75.Trade.RequiredGlobalKey = "defeated_bonemass";
			item75.Trade.Trader = Trader.None;
			Item item76 = new Item("wildweapons", "Nocturata_CAH");
			item76.Name.English("Nocturata");
			item76.Description.English("Dark, sleek, and deadly, this bow craves blood.");
			item76.Crafting.Add(CraftingTable.BlackForge, 1);
			item76.RequiredItems.Add("TrophyFallenValkyrie", 2);
			item76.RequiredItems.Add("BowSpineSnap", 1);
			item76.RequiredItems.Add("GemstoneRed", 1);
			item76.RequiredItems.Add("Feathers", 30);
			item76.RequiredUpgradeItems.Add("FlametalNew", 3);
			item76.RequiredUpgradeItems.Add("Feathers", 10);
			item76.CraftAmount = 1;
			item76.Trade.Price = 0u;
			item76.Trade.Stack = 0u;
			item76.Trade.RequiredGlobalKey = "defeated_bonemass";
			item76.Trade.Trader = Trader.None;
			Item item77 = new Item("wildweapons", "Sieglinde_CAH");
			item77.Name.English("Sieglinde");
			item77.Description.English("A legendary greatbow, capable of loosing deadly arrows at insane speeds.");
			item77.Crafting.Add(CraftingTable.BlackForge, 1);
			item77.RequiredItems.Add("Astarte_CAH", 1);
			item77.RequiredItems.Add("Vecta_CAH", 1);
			item77.RequiredItems.Add("GemstoneBlue", 1);
			item77.RequiredItems.Add("FlametalNew", 15);
			item77.RequiredUpgradeItems.Add("Eitr", 5);
			item77.RequiredUpgradeItems.Add("FlametalNew", 5);
			item77.CraftAmount = 1;
			item77.Trade.Price = 0u;
			item77.Trade.Stack = 0u;
			item77.Trade.RequiredGlobalKey = "defeated_bonemass";
			item77.Trade.Trader = Trader.None;
			Item item78 = new Item("wildweapons", "RoyalShield_CAH");
			item78.Name.English("Royal Shield");
			item78.Description.English("A shield used by the Avereign royal guard before the kingdom's fall.");
			item78.Crafting.Add(CraftingTable.Forge, 1);
			item78.RequiredItems.Add("Bronze", 25);
			item78.RequiredItems.Add("TrophyBjorn", 1);
			item78.RequiredItems.Add("Ruby", 10);
			item78.RequiredUpgradeItems.Add("BjornHide", 2);
			item78.RequiredUpgradeItems.Add("Ruby", 2);
			item78.CraftAmount = 1;
			item78.Trade.Price = 0u;
			item78.Trade.Stack = 0u;
			item78.Trade.RequiredGlobalKey = "defeated_bonemass";
			item78.Trade.Trader = Trader.None;
			Item item79 = new Item("wildweapons", "RedMoon_CAH");
			item79.Name.English("Red Moon");
			item79.Description.English("A strange red shield that depicts a moon and a star, perhaps it is cursed...");
			item79.Crafting.Add(CraftingTable.Forge, 1);
			item79.RequiredItems.Add("Ruby", 10);
			item79.RequiredItems.Add("Iron", 30);
			item79.RequiredItems.Add("Guck", 15);
			item79.RequiredUpgradeItems.Add("Guck", 2);
			item79.RequiredUpgradeItems.Add("Iron", 5);
			item79.CraftAmount = 1;
			item79.Trade.Price = 0u;
			item79.Trade.Stack = 0u;
			item79.Trade.RequiredGlobalKey = "defeated_bonemass";
			item79.Trade.Trader = Trader.None;
			Item item80 = new Item("wildweapons", "Demora_CAH");
			item80.Name.English("Demora");
			item80.Description.English("Counterpart shield to Corruptum, it bolsters its strength");
			item80.Crafting.Add(CraftingTable.Forge, 1);
			item80.RequiredItems.Add("BlackMetal", 25);
			item80.RequiredItems.Add("TrophyGoblin", 5);
			item80.RequiredItems.Add("Guck", 10);
			item80.RequiredUpgradeItems.Add("BlackMetal", 5);
			item80.RequiredUpgradeItems.Add("Guck", 5);
			item80.CraftAmount = 1;
			item80.Trade.Price = 0u;
			item80.Trade.Stack = 0u;
			item80.Trade.RequiredGlobalKey = "defeated_bonemass";
			item80.Trade.Trader = Trader.None;
			Item item81 = new Item("wildweapons", "KingsGuard_CAH");
			item81.Name.English("King's Guard");
			item81.Description.English("A true royal shield fit for a king! -Landing a perfect parry with this shield will grant you health, stamina, and armor for a short burst.");
			item81.Crafting.Add(CraftingTable.Forge, 1);
			item81.RequiredItems.Add("RoyalShield_CAH", 1);
			item81.RequiredItems.Add("Silver", 20);
			item81.RequiredItems.Add("LinenThread", 15);
			item81.RequiredUpgradeItems.Add("Silver", 5);
			item81.RequiredUpgradeItems.Add("LinenThread", 5);
			item81.CraftAmount = 1;
			item81.Trade.Price = 0u;
			item81.Trade.Stack = 0u;
			item81.Trade.RequiredGlobalKey = "defeated_bonemass";
			item81.Trade.Trader = Trader.None;
			Item item82 = new Item("wildweapons", "Crystalis_CAH");
			item82.Name.English("Crystalis");
			item82.Description.English("With Moder's frigid power, this shield is made possible.");
			item82.Crafting.Add(CraftingTable.Forge, 1);
			item82.RequiredItems.Add("TrophyDragonQueen", 1);
			item82.RequiredItems.Add("Crystal", 25);
			item82.RequiredItems.Add("Silver", 25);
			item82.RequiredUpgradeItems.Add("FreezeGland", 5);
			item82.RequiredUpgradeItems.Add("Silver", 5);
			item82.CraftAmount = 1;
			item82.Trade.Price = 0u;
			item82.Trade.Stack = 0u;
			item82.Trade.RequiredGlobalKey = "defeated_bonemass";
			item82.Trade.Trader = Trader.None;
			Item item83 = new Item("wildweapons", "Rerederum_CAH");
			item83.Name.English("Rerederum");
			item83.Description.English("An evil and powerful shield, bursting with demonic energy.");
			item83.Crafting.Add(CraftingTable.BlackForge, 1);
			item83.RequiredItems.Add("Demora_CAH", 1);
			item83.RequiredItems.Add("FlametalNew", 25);
			item83.RequiredItems.Add("TrophyCharredMage", 1);
			item83.RequiredItems.Add("Bloodbag", 15);
			item83.RequiredUpgradeItems.Add("FlametalNew", 5);
			item83.RequiredUpgradeItems.Add("Bloodbag", 5);
			item83.CraftAmount = 1;
			item83.Trade.Price = 0u;
			item83.Trade.Stack = 0u;
			item83.Trade.RequiredGlobalKey = "defeated_bonemass";
			item83.Trade.Trader = Trader.None;
			Item item84 = new Item("wildweapons", "Avrinn_CAH");
			item84.Name.English("Avrinn");
			item84.Description.English("The slaying blade, to cut, to slice, to kill, is to live.");
			item84.Crafting.Add(CraftingTable.Disabled, 1);
			item84.RequiredItems.Add("GemstoneRed", 5);
			item84.RequiredItems.Add("TrophyFader", 1);
			item84.RequiredItems.Add("Silver", 50);
			item84.RequiredItems.Add("SwordDyrnwyn", 99);
			item84.RequiredUpgradeItems.Add("Silver", 5);
			item84.RequiredUpgradeItems.Add("QueenDrop", 1);
			item84.CraftAmount = 1;
			item84.Trade.Price = 0u;
			item84.Trade.Stack = 0u;
			item84.Trade.RequiredGlobalKey = "defeated_bonemass";
			item84.Trade.Trader = Trader.None;
			Item item85 = new Item("wildelixirs", "SwordElixir_CE");
			item85.Name.English("Elixir of Swords");
			item85.Description.English("Empowers your sword based capabilities.");
			item85.Crafting.Add(CraftingTable.MeadCauldron, 1);
			item85.RequiredItems.Add("Eitr", 10);
			item85.RequiredItems.Add("SwordBlackmetal", 1);
			item85.RequiredItems.Add("SwordSilver", 1);
			item85.RequiredItems.Add("SwordIron", 1);
			item85.CraftAmount = 10;
			item85.Trade.Price = 0u;
			item85.Trade.Stack = 0u;
			item85.Trade.RequiredGlobalKey = "defeated_bonemass";
			item85.Trade.Trader = Trader.None;
			Item item86 = new Item("wildelixirs", "SpearElixir_CE");
			item86.Name.English("Elixir of Spears");
			item86.Description.English("Empowers your spear based capabilities.");
			item86.Crafting.Add(CraftingTable.MeadCauldron, 1);
			item86.RequiredItems.Add("Eitr", 10);
			item86.RequiredItems.Add("SpearWolfFang", 1);
			item86.RequiredItems.Add("SpearElderbark", 1);
			item86.RequiredItems.Add("SpearBronze", 1);
			item86.CraftAmount = 10;
			item86.Trade.Price = 0u;
			item86.Trade.Stack = 0u;
			item86.Trade.RequiredGlobalKey = "defeated_bonemass";
			item86.Trade.Trader = Trader.None;
			Item item87 = new Item("wildelixirs", "PolearmElixir_CE");
			item87.Name.English("Elixir of Polearms");
			item87.Description.English("Empowers your polearm based capabilities.");
			item87.Crafting.Add(CraftingTable.MeadCauldron, 1);
			item87.RequiredItems.Add("Eitr", 10);
			item87.RequiredItems.Add("AtgeirBlackmetal", 1);
			item87.RequiredItems.Add("AtgeirIron", 1);
			item87.RequiredItems.Add("AtgeirBronze", 1);
			item87.CraftAmount = 10;
			item87.Trade.Price = 0u;
			item87.Trade.Stack = 0u;
			item87.Trade.RequiredGlobalKey = "defeated_bonemass";
			item87.Trade.Trader = Trader.None;
			Item item88 = new Item("wildelixirs", "KnifeElixir_CE");
			item88.Name.English("Elixir of Knives");
			item88.Description.English("Empowers your knife based capabilities.");
			item88.Crafting.Add(CraftingTable.MeadCauldron, 1);
			item88.RequiredItems.Add("Eitr", 10);
			item88.RequiredItems.Add("KnifeBlackMetal", 1);
			item88.RequiredItems.Add("KnifeSilver", 1);
			item88.RequiredItems.Add("KnifeChitin", 1);
			item88.CraftAmount = 10;
			item88.Trade.Price = 0u;
			item88.Trade.Stack = 0u;
			item88.Trade.RequiredGlobalKey = "defeated_bonemass";
			item88.Trade.Trader = Trader.None;
			Item item89 = new Item("wildelixirs", "ClubElixir_CE");
			item89.Name.English("Elixir of Clubs");
			item89.Name.English("Elixir of Clubs");
			item89.Description.English("Empowers your club based capabilities.");
			item89.Crafting.Add(CraftingTable.MeadCauldron, 1);
			item89.RequiredItems.Add("Eitr", 10);
			item89.RequiredItems.Add("MaceNeedle", 1);
			item89.RequiredItems.Add("MaceSilver", 1);
			item89.RequiredItems.Add("MaceIron", 1);
			item89.CraftAmount = 10;
			item89.Trade.Price = 0u;
			item89.Trade.Stack = 0u;
			item89.Trade.RequiredGlobalKey = "defeated_bonemass";
			item89.Trade.Trader = Trader.None;
			Item item90 = new Item("wildelixirs", "AxeElixir_CE");
			item90.Name.English("Elixir of Axes");
			item90.Description.English("Empowers your axe based capabilities.");
			item90.Crafting.Add(CraftingTable.MeadCauldron, 1);
			item90.RequiredItems.Add("Eitr", 10);
			item90.RequiredItems.Add("BattleaxeBlackmetal", 1);
			item90.RequiredItems.Add("BattleaxeCrystal", 1);
			item90.RequiredItems.Add("Battleaxe", 1);
			item90.CraftAmount = 10;
			item90.Trade.Price = 0u;
			item90.Trade.Stack = 0u;
			item90.Trade.RequiredGlobalKey = "defeated_bonemass";
			item90.Trade.Trader = Trader.None;
			Item item91 = new Item("wildelixirs", "BowElixir_CE");
			item91.Name.English("Elixir of Bows");
			item91.Description.English("Empowers your bow based capabilities.");
			item91.Crafting.Add(CraftingTable.MeadCauldron, 1);
			item91.RequiredItems.Add("Eitr", 10);
			item91.RequiredItems.Add("BowDraugrFang", 1);
			item91.RequiredItems.Add("BowHuntsman", 1);
			item91.RequiredItems.Add("BowFineWood", 1);
			item91.CraftAmount = 10;
			item91.Trade.Price = 0u;
			item91.Trade.Stack = 0u;
			item91.Trade.RequiredGlobalKey = "defeated_bonemass";
			item91.Trade.Trader = Trader.None;
			Item item92 = new Item("wildelixirs", "ShieldElixir_CE");
			item92.Name.English("Elixir of Shields");
			item92.Description.English("Empowers your shield based capabilities");
			item92.Crafting.Add(CraftingTable.MeadCauldron, 1);
			item92.RequiredItems.Add("Eitr", 10);
			item92.RequiredItems.Add("ShieldBlackmetal", 1);
			item92.RequiredItems.Add("ShieldSilver", 1);
			item92.RequiredItems.Add("ShieldSerpentscale", 1);
			item92.CraftAmount = 10;
			item92.Trade.Price = 0u;
			item92.Trade.Stack = 0u;
			item92.Trade.RequiredGlobalKey = "defeated_bonemass";
			item92.Trade.Trader = Trader.None;
			Item item93 = new Item("wildelixirs", "DrPibble_CE");
			item93.Name.English("Dr.Pibble");
			item93.Description.English("Crack open a cold drink and enjoy a good time.");
			item93.Crafting.Add(CraftingTable.MeadCauldron, 1);
			item93.RequiredItems.Add("MeadStaminaMinor", 1);
			item93.RequiredItems.Add("MeadHealthMinor", 1);
			item93.RequiredItems.Add("Tar", 4);
			item93.CraftAmount = 4;
			item93.Trade.Price = 0u;
			item93.Trade.Stack = 0u;
			item93.Trade.RequiredGlobalKey = "defeated_bonemass";
			item93.Trade.Trader = Trader.None;
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "Projectile_BlossomSlash");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "Projectile_SpineShard");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "projectile_Sunpiercer");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "Projectile_SoulthiefSlash");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "projectile_Frostpiercer");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "projectile_Solemnity");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "projectile_Bladeshift");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "sfx_Conflaghit");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "sfx_StrikeClang");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "sfx_Arkenshatter");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "sfx_fleshrip");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "sfx_SunpierceHit");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "sfx_ClashingHit");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "sfx_samuraislash");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "sfx_GhostlyHauntings");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "sfx_SliceHit");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "sfx_explosion1");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "sfx_explosion2");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "sfx_Fleshstab");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "sfx_zap23");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildelixirs"), "sfx_WildPotion");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildelixirs"), "sfx_Soda");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildelixirs"), "vfx_WildPotion");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("crazymagic"), "fx_iceshard_launch1");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("crazymagic"), "fx_IceballBoom");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("crazymagic"), "fx_PermafrostHit");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("crazymagic"), "Permafrostblast");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("crazymagic"), "PermaFrostIceCube");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("crazymagic"), "IceBallBlast");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_HitSparksFire");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_DivineBlock");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_HitSparksGhost");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_GhostBlock");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_HitSparksStormDragon");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_blockStormDragon");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_SuperZapProc");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_LightningDragon");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_HitSparks2");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_CorpseSlam");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_Sunhit");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_ReaverSpecial");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_HitSparksRegalia");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_Spinehit");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_HitSparksQueen");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_CorruptumHit");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_BrokenAura");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_SpineSpecial");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_FrigidCut");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_Frost1");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_Crownblock");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_BowfireShimmer");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_gleamblock");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_Mortalweaponhit1");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_Holyhit1");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_blockjade");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_clubhit3");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_HitSparksAstralis");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_enhancedfire");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_FrigidCutSpecial");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_IceCurse");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_HitSparksCorundum");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_AgarethBlock");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_soulthiefblock");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_Legendbow");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_HitSparksNature");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_BlackArrowFire");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_AvrinnBlock");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_HitSparksEsterra");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_blockedblacked");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_RuptureSpecial");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_blockFanatica");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_durandalhit");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_lightningdaveSpecial");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_SpiritBurn");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_mountaincleavehit");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_Agarethhitspecial");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_HitSparks1");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_ViridBurn");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_blockedlegend");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_goldblock1");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_BowfireVecta");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_petalblock");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_Slimed1");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_DeusSpecial");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_CrownHit");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_holyhit3");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_HitSparksAvrinnRed");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_deusnormal");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_AvrinnSpecial");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_BlossomFlux");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_daveblock");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_silvermace_hit1");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_skivantifire");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_RegaliaSpecial");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_StargleamHit");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_AstarteBowFire");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_LightningDemonic");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_demonvane_special");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_HitSparksGold");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_petalweaponhit");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_HitSparksRupture");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_Esterrablock");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_silverblock");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_HitSparksAngel");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_AngelBlock");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_DurandalSpecial");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_demonvaneblock");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_CorundumNewSpecial");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_blockArken");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_corruptBlock");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_blockedSpine");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_holyhit2");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_soulshardhit");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_astralblock");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_lightningdave");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_blockenhanced1");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_ConflagrateSpecial");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_StrideBreakerhit");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_Arkenhit");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_iceshard_hit1");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_demonvane_basic");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_HitSparksFanatica");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_HitSparksAvrinn");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_QueenStab");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_HitSparksEnhanced");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_blockenhanced");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_Titanhit");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_soulburn");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_HitSparksSoul");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_reaverblock1");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_HitSparksSilver");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_ArondightHit");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_CorruptBurn");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_HitSparksBone");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_flameblock");
			PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("wildweapons"), "vfx_EvallisHit");
			Assembly executingAssembly = Assembly.GetExecutingAssembly();
			_harmony.PatchAll(executingAssembly);
			SetupWatcher();
		}

		private void OnDestroy()
		{
			((BaseUnityPlugin)this).Config.Save();
		}

		private void SetupWatcher()
		{
			FileSystemWatcher fileSystemWatcher = new FileSystemWatcher(Paths.ConfigPath, ConfigFileName);
			fileSystemWatcher.Changed += ReadConfigValues;
			fileSystemWatcher.Created += ReadConfigValues;
			fileSystemWatcher.Renamed += ReadConfigValues;
			fileSystemWatcher.IncludeSubdirectories = true;
			fileSystemWatcher.SynchronizingObject = ThreadingHelper.SynchronizingObject;
			fileSystemWatcher.EnableRaisingEvents = true;
		}

		private void ReadConfigValues(object sender, FileSystemEventArgs e)
		{
			if (!File.Exists(ConfigFileFullPath))
			{
				return;
			}
			try
			{
				WildWeaponsLogger.LogDebug((object)"ReadConfigValues called");
				((BaseUnityPlugin)this).Config.Reload();
			}
			catch
			{
				WildWeaponsLogger.LogError((object)("There was an issue loading your " + ConfigFileName));
				WildWeaponsLogger.LogError((object)"Please check your config entries for spelling and format!");
			}
		}

		private ConfigEntry<T> config<[<d28022a6-0b07-42d6-bd25-81bd28e414ef>Nullable(2)] T>(string group, string name, T value, ConfigDescription description, bool synchronizedSetting = true)
		{
			//IL_002b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0031: Expected O, but got Unknown
			ConfigDescription val = new ConfigDescription(description.Description + (synchronizedSetting ? " [Synced with Server]" : " [Not Synced with Server]"), description.AcceptableValues, description.Tags);
			ConfigEntry<T> val2 = ((BaseUnityPlugin)this).Config.Bind<T>(group, name, value, val);
			SyncedConfigEntry<T> syncedConfigEntry = ConfigSync.AddConfigEntry<T>(val2);
			syncedConfigEntry.SynchronizedConfig = synchronizedSetting;
			return val2;
		}

		private ConfigEntry<T> config<[<d28022a6-0b07-42d6-bd25-81bd28e414ef>Nullable(2)] T>(string group, string name, T value, string description, bool synchronizedSetting = true)
		{
			//IL_000d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0019: Expected O, but got Unknown
			return config(group, name, value, new ConfigDescription(description, (AcceptableValueBase)null, Array.Empty<object>()), synchronizedSetting);
		}

		static WildWeaponsPlugin()
		{
			string configPath = Paths.ConfigPath;
			char directorySeparatorChar = Path.DirectorySeparatorChar;
			ConfigFileFullPath = configPath + directorySeparatorChar + ConfigFileName;
			ConnectionError = "";
			WildWeaponsLogger = Logger.CreateLogSource("WildWeapons");
			ConfigSync = new ConfigSync("catharis.WildWeapons")
			{
				DisplayName = "WildWeapons",
				CurrentVersion = "2.2.3",
				MinimumRequiredVersion = "2.2.3"
			};
			_serverConfigLocked = null;
			_recipeIsActiveConfig = null;
		}
	}
	public static class KeyboardExtensions
	{
		public static bool IsKeyDown(this KeyboardShortcut shortcut)
		{
			//IL_0003: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Unknown result type (might be due to invalid IL or missing references)
			return (int)((KeyboardShortcut)(ref shortcut)).MainKey != 0 && Input.GetKeyDown(((KeyboardShortcut)(ref shortcut)).MainKey) && ((KeyboardShortcut)(ref shortcut)).Modifiers.All((Func<KeyCode, bool>)Input.GetKey);
		}

		public static bool IsKeyHeld(this KeyboardShortcut shortcut)
		{
			//IL_0003: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Unknown result type (might be due to invalid IL or missing references)
			return (int)((KeyboardShortcut)(ref shortcut)).MainKey != 0 && Input.GetKey(((KeyboardShortcut)(ref shortcut)).MainKey) && ((KeyboardShortcut)(ref shortcut)).Modifiers.All((Func<KeyCode, bool>)Input.GetKey);
		}
	}
	[HarmonyPatch(typeof(ZNet), "OnNewConnection")]
	public static class RegisterAndCheckVersion
	{
		[<c987f02b-92f9-402e-9e48-5d23477b18e7>NullableContext(1)]
		private static void Prefix(ZNetPeer peer, ref ZNet __instance)
		{
			//IL_003e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0044: Expected O, but got Unknown
			WildWeaponsPlugin.WildWeaponsLogger.LogDebug((object)"Registering version RPC handler");
			peer.m_rpc.Register<ZPackage>("WildWeapons_VersionCheck", (Action<ZRpc, ZPackage>)RpcHandlers.RPC_ItemManagerModTemplate_Version);
			WildWeaponsPlugin.WildWeaponsLogger.LogInfo((object)"Invoking version check");
			ZPackage val = new ZPackage();
			val.Write("2.2.3");
			peer.m_rpc.Invoke("WildWeapons_VersionCheck", new object[1] { val });
		}
	}
	[<c987f02b-92f9-402e-9e48-5d23477b18e7>NullableContext(1)]
	[<d28022a6-0b07-42d6-bd25-81bd28e414ef>Nullable(0)]
	[HarmonyPatch(typeof(ZNet), "RPC_PeerInfo")]
	public static class VerifyClient
	{
		private static bool Prefix(ZRpc rpc, ZPackage pkg, ref ZNet __instance)
		{
			if (!__instance.IsServer() || RpcHandlers.ValidatedPeers.Contains(rpc))
			{
				return true;
			}
			WildWeaponsPlugin.WildWeaponsLogger.LogWarning((object)("Peer (" + rpc.m_socket.GetHostName() + ") never sent version or couldn't due to previous disconnect, disconnecting"));
			rpc.Invoke("Error", new object[1] { 3 });
			return false;
		}

		private static void Postfix(ZNet __instance)
		{
			//IL_001d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0023: Expected O, but got Unknown
			ZRoutedRpc.instance.InvokeRoutedRPC(ZRoutedRpc.instance.GetServerPeerID(), "WildWeaponsRequestAdminSync", new object[1] { (object)new ZPackage() });
		}
	}
	[HarmonyPatch(typeof(FejdStartup), "ShowConnectError")]
	public class ShowConnectionError
	{
		[<c987f02b-92f9-402e-9e48-5d23477b18e7>NullableContext(1)]
		private static void Postfix(FejdStartup __instance)
		{
			if (__instance.m_connectionFailedPanel.activeSelf)
			{
				__instance.m_connectionFailedError.fontSizeMax = 25f;
				__instance.m_connectionFailedError.fontSizeMin = 15f;
				TMP_Text connectionFailedError = __instance.m_connectionFailedError;
				connectionFailedError.text = connectionFailedError.text + "\n" + WildWeaponsPlugin.ConnectionError;
			}
		}
	}
	[HarmonyPatch(typeof(ZNet), "Disconnect")]
	public static class RemoveDisconnectedPeerFromVerified
	{
		[<c987f02b-92f9-402e-9e48-5d23477b18e7>NullableContext(1)]
		private static void Prefix(ZNetPeer peer, ref ZNet __instance)
		{
			if (__instance.IsServer())
			{
				WildWeaponsPlugin.WildWeaponsLogger.LogInfo((object)("Peer (" + peer.m_rpc.m_socket.GetHostName() + ") disconnected, removing from validated list"));
				RpcHandlers.ValidatedPeers.Remove(peer.m_rpc);
			}
		}
	}
	[<d28022a6-0b07-42d6-bd25-81bd28e414ef>Nullable(0)]
	[<c987f02b-92f9-402e-9e48-5d23477b18e7>NullableContext(1)]
	public static class RpcHandlers
	{
		public static readonly List<ZRpc> ValidatedPeers = new List<ZRpc>();

		public static void RPC_ItemManagerModTemplate_Version(ZRpc rpc, ZPackage pkg)
		{
			string text = pkg.ReadString();
			WildWeaponsPlugin.WildWeaponsLogger.LogInfo((object)("Version check, local: 2.2.3,  remote: " + text));
			if (text != "2.2.3")
			{
				WildWeaponsPlugin.ConnectionError = "WildWeapons Installed: 2.2.3\n Needed: " + text;
				if (ZNet.instance.IsServer())
				{
					WildWeaponsPlugin.WildWeaponsLogger.LogWarning((object)("Peer (" + rpc.m_socket.GetHostName() + ") has incompatible version, disconnecting..."));
					rpc.Invoke("Error", new object[1] { 3 });
				}
			}
			else if (!ZNet.instance.IsServer())
			{
				WildWeaponsPlugin.WildWeaponsLogger.LogInfo((object)"Received same version from server!");
			}
			else
			{
				WildWeaponsPlugin.WildWeaponsLogger.LogInfo((object)("Adding peer (" + rpc.m_socket.GetHostName() + ") to validated list"));
				ValidatedPeers.Add(rpc);
			}
		}

		public static string ComputeHashForMod()
		{
			using SHA256 sHA = SHA256.Create();
			byte[] array = sHA.ComputeHash(File.ReadAllBytes(Assembly.GetExecutingAssembly().Location));
			StringBuilder stringBuilder = new StringBuilder();
			byte[] array2 = array;
			foreach (byte b in array2)
			{
				stringBuilder.Append(b.ToString("X2"));
			}
			return stringBuilder.ToString();
		}
	}
}
namespace LocalizationManager
{
	[PublicAPI]
	[<c987f02b-92f9-402e-9e48-5d23477b18e7>NullableContext(1)]
	[<d28022a6-0b07-42d6-bd25-81bd28e414ef>Nullable(0)]
	public class Localizer
	{
		private static readonly Dictionary<string, Dictionary<string, Func<string>>> PlaceholderProcessors;

		private static readonly Dictionary<string, Dictionary<string, string>> loadedTexts;

		private static readonly ConditionalWeakTable<Localization, string> localizationLanguage;

		private static readonly List<WeakReference<Localization>> localizationObjects;

		[<d28022a6-0b07-42d6-bd25-81bd28e414ef>Nullable(2)]
		private static BaseUnityPlugin _plugin;

		private static readonly List<string> fileExtensions;

		private static BaseUnityPlugin plugin
		{
			get
			{
				//IL_00a8: Unknown result type (might be due to invalid IL or missing references)
				//IL_00b2: Expected O, but got Unknown
				if (_plugin == null)
				{
					IEnumerable<TypeInfo> source;
					try
					{
						source = Assembly.GetExecutingAssembly().DefinedTypes.ToList();
					}
					catch (ReflectionTypeLoadException ex)
					{
						source = from t in ex.Types
							where t != null
							select t.GetTypeInfo();
					}
					_plugin = (BaseUnityPlugin)Chainloader.ManagerObject.GetComponent((Type)source.First([<c987f02b-92f9-402e-9e48-5d23477b18e7>NullableContext(0)] (TypeInfo t) => t.IsClass && typeof(BaseUnityPlugin).IsAssignableFrom(t)));
				}
				return _plugin;
			}
		}

		private static void UpdatePlaceholderText(Localization localization, string key)
		{
			localizationLanguage.TryGetValue(localization, out var value);
			string text = loadedTexts[value][key];
			if (PlaceholderProcessors.TryGetValue(key, out var value2))
			{
				text = value2.Aggregate(text, [<c987f02b-92f9-402e-9e48-5d23477b18e7>NullableContext(0)] (string current, KeyValuePair<string, Func<string>> kv) => current.Replace("{" + kv.Key + "}", kv.Value()));
			}
			localization.AddWord(key, text);
		}

		public static void AddPlaceholder<T>(string key, string placeholder, ConfigEntry<T> config, [<d28022a6-0b07-42d6-bd25-81bd28e414ef>Nullable(new byte[] { 2, 1, 1 })] Func<T, string> convertConfigValue = null)
		{
			if (convertConfigValue == null)
			{
				convertConfigValue = (T val) => val.ToString();
			}
			if (!PlaceholderProcessors.ContainsKey(key))
			{
				PlaceholderProcessors[key] = new Dictionary<string, Func<string>>();
			}
			config.SettingChanged += [<c987f02b-92f9-402e-9e48-5d23477b18e7>NullableContext(0)] (object _, EventArgs _) =>
			{
				UpdatePlaceholder();
			};
			if (loadedTexts.ContainsKey(Localization.instance.GetSelectedLanguage()))
			{
				UpdatePlaceholder();
			}
			void UpdatePlaceholder()
			{
				PlaceholderProcessors[key][placeholder] = () => convertConfigValue(config.Value);
				UpdatePlaceholderText(Localization.instance, key);
			}
		}

		public static void AddText(string key, string text)
		{
			List<WeakReference<Localization>> list = new List<WeakReference<Localization>>();
			foreach (WeakReference<Localization> localizationObject in localizationObjects)
			{
				if (localizationObject.TryGetTarget(out var target))
				{
					Dictionary<string, string> dictionary = loadedTexts[localizationLanguage.GetOrCreateValue(target)];
					if (!target.m_translations.ContainsKey(key))
					{
						dictionary[key] = text;
						target.AddWord(key, text);
					}
				}
				else
				{
					list.Add(localizationObject);
				}
			}
			foreach (WeakReference<Localization> item in list)
			{
				localizationObjects.Remove(item);
			}
		}

		public static void Load()
		{
			LoadLocalization(Localization.instance, Localization.instance.GetSelectedLanguage());
		}

		private static void LoadLocalization(Localization __instance, string language)
		{
			if (!localizationLanguage.Remove(__instance))
			{
				localizationObjects.Add(new WeakReference<Localization>(__instance));
			}
			localizationLanguage.Add(__instance, language);
			Dictionary<string, string> dictionary = new Dictionary<string, string>();
			foreach (string item in from f in Directory.GetFiles(Path.GetDirectoryName(Paths.PluginPath), plugin.Info.Metadata.Name + ".*", SearchOption.AllDirectories)
				where fileExtensions.IndexOf(Path.GetExtension(f)) >= 0
				select f)
			{
				string text = Path.GetFileNameWithoutExtension(item).Split(new char[1] { '.' })[1];
				if (dictionary.ContainsKey(text))
				{
					Debug.LogWarning((object)("Duplicate key " + text + " found for " + plugin.Info.Metadata.Name + ". The duplicate file found at " + item + " will be skipped."));
				}
				else
				{
					dictionary[text] = item;
				}
			}
			byte[] array = LoadTranslationFromAssembly("English");
			if (array == null)
			{
				throw new Exception("Found no English localizations in mod " + plugin.Info.Metadata.Name + ". Expected an embedded resource translations/English.json or translations/English.yml.");
			}
			Dictionary<string, string> dictionary2 = new DeserializerBuilder().IgnoreFields().Build().Deserialize<Dictionary<string, string>>(Encoding.UTF8.GetString(array));
			if (dictionary2 == null)
			{
				throw new Exception("Localization for mod " + plugin.Info.Metadata.Name + " failed: Localization file was empty.");
			}
			string text2 = null;
			if (language != "English")
			{
				if (dictionary.ContainsKey(language))
				{
					text2 = File.ReadAllText(dictionary[language]);
				}
				else
				{
					byte[] array2 = LoadTranslationFromAssembly(language);
					if (array2 != null)
					{
						text2 = Encoding.UTF8.GetString(array2);
					}
				}
			}
			if (text2 == null && dictionary.ContainsKey("English"))
			{
				text2 = File.ReadAllText(dictionary["English"]);
			}
			if (text2 != null)
			{
				foreach (KeyValuePair<string, string> item2 in new DeserializerBuilder().IgnoreFields().Build().Deserialize<Dictionary<string, string>>(text2) ?? new Dictionary<string, string>())
				{
					dictionary2[item2.Key] = item2.Value;
				}
			}
			loadedTexts[language] = dictionary2;
			foreach (KeyValuePair<string, string> item3 in dictionary2)
			{
				UpdatePlaceholderText(__instance, item3.Key);
			}
		}

		static Localizer()
		{
			//IL_0050: Unknown result type (might be due to invalid IL or missing references)
			//IL_0056: Expected O, but got Unknown
			//IL_0084: Unknown result type (might be due to invalid IL or missing references)
			//IL_0091: Expected O, but got Unknown
			PlaceholderProcessors = new Dictionary<string, Dictionary<string, Func<string>>>();
			loadedTexts = new Dictionary<string, Dictionary<string, string>>();
			localizationLanguage = new ConditionalWeakTable<Localization, string>();
			localizationObjects = new List<WeakReference<Localization>>();
			fileExtensions = new List<string> { ".json", ".yml" };
			Harmony val = new Harmony("org.bepinex.helpers.LocalizationManager");
			val.Patch((MethodBase)AccessTools.DeclaredMethod(typeof(Localization), "LoadCSV", (Type[])null, (Type[])null), (HarmonyMethod)null, new HarmonyMethod(AccessTools.DeclaredMethod(typeof(Localizer), "LoadLocalization", (Type[])null, (Type[])null)), (HarmonyMethod)null, (HarmonyMethod)null, (HarmonyMethod)null);
		}

		[return: <d28022a6-0b07-42d6-bd25-81bd28e414ef>Nullable(2)]
		private static byte[] LoadTranslationFromAssembly(string language)
		{
			foreach (string fileExtension in fileExtensions)
			{
				byte[] array = ReadEmbeddedFileBytes("translations." + language + fileExtension);
				if (array != null)
				{
					return array;
				}
			}
			return null;
		}

		[<c987f02b-92f9-402e-9e48-5d23477b18e7>NullableContext(2)]
		public static byte[] ReadEmbeddedFileBytes([<d28022a6-0b07-42d6-bd25-81bd28e414ef>Nullable(1)] string resourceFileName, Assembly containingAssembly = null)
		{
			using MemoryStream memoryStream = new MemoryStream();
			if ((object)containingAssembly == null)
			{
				containingAssembly = Assembly.GetCallingAssembly();
			}
			string text = containingAssembly.GetManifestResourceNames().FirstOrDefault([<c987f02b-92f9-402e-9e48-5d23477b18e7>NullableContext(0)] (string str) => str.EndsWith(resourceFileName, StringComparison.Ordinal));
			if (text != null)
			{
				containingAssembly.GetManifestResourceStream(text)?.CopyTo(memoryStream);
			}
			return (memoryStream.Length == 0L) ? null : memoryStream.ToArray();
		}
	}
}
namespace ItemManager
{
	[PublicAPI]
	public enum CraftingTable
	{
		Disabled,
		Inventory,
		[InternalName("piece_workbench")]
		Workbench,
		[InternalName("piece_cauldron")]
		Cauldron,
		[InternalName("piece_MeadCauldron")]
		MeadCauldron,
		[InternalName("forge")]
		Forge,
		[InternalName("piece_artisanstation")]
		ArtisanTable,
		[InternalName("piece_stonecutter")]
		StoneCutter,
		[InternalName("piece_magetable")]
		MageTable,
		[InternalName("piece_preptable")]
		PrepTable,
		[InternalName("blackforge")]
		BlackForge,
		Custom
	}
	[PublicAPI]
	public enum ConversionPiece
	{
		Disabled,
		[InternalName("smelter")]
		Smelter,
		[InternalName("charcoal_kiln")]
		CharcoalKiln,
		[InternalName("blastfurnace")]
		BlastFurnace,
		[InternalName("windmill")]
		Windmill,
		[InternalName("piece_spinningwheel")]
		SpinningWheel,
		[InternalName("eitrrefinery")]
		EitrRefinery,
		Custom
	}
	[<c987f02b-92f9-402e-9e48-5d23477b18e7>NullableContext(1)]
	[<d28022a6-0b07-42d6-bd25-81bd28e414ef>Nullable(0)]
	public class InternalName : Attribute
	{
		public readonly string internalName;

		public InternalName(string internalName)
		{
			this.internalName = internalName;
		}
	}
	[<c987f02b-92f9-402e-9e48-5d23477b18e7>NullableContext(1)]
	[<d28022a6-0b07-42d6-bd25-81bd28e414ef>Nullable(0)]
	[PublicAPI]
	public class RequiredResourceList
	{
		public readonly List<Requirement> Requirements = new List<Requirement>();

		public bool Free = false;

		public void Add(string itemName, int amount, int quality = 0)
		{
			Requirements.Add(new Requirement
			{
				itemName = itemName,
				amount = amount,
				quality = quality
			});
		}

		public void Add(string itemName, ConfigEntry<int> amountConfig, int quality = 0)
		{
			Requirements.Add(new Requirement
			{
				itemName = itemName,
				amountConfig = amountConfig,
				quality = quality
			});
		}
	}
	[PublicAPI]
	[<c987f02b-92f9-402e-9e48-5d23477b