Decompiled source of Hunter Legacy v1.0.2

plugins/Hunter_Legacy.dll

Decompiled 2 weeks 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 PieceManager;
using ServerSync;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
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.IgnoreSymbolStoreSequencePoints)]
[assembly: AssemblyTitle("Hunter_Legacy")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyProduct("Hunter_Legacy")]
[assembly: AssemblyCopyright("Copyright ©  2021")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("4358610B-F3F4-4843-B7AF-98B7BC60DCDE")]
[assembly: AssemblyFileVersion("1.0.2")]
[assembly: AssemblyCompany("Dreanegade")]
[assembly: TargetFramework(".NETFramework,Version=v4.6.2", FrameworkDisplayName = ".NET Framework 4.6.2")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.2.0")]
[module: UnverifiableCode]
namespace Microsoft.CodeAnalysis
{
	[CompilerGenerated]
	[<b21706a9-029a-4b28-90f3-b8bede232f2c>Embedded]
	internal sealed class <b21706a9-029a-4b28-90f3-b8bede232f2c>EmbeddedAttribute : Attribute
	{
	}
}
namespace System.Runtime.CompilerServices
{
	[<b21706a9-029a-4b28-90f3-b8bede232f2c>Embedded]
	[CompilerGenerated]
	[AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)]
	internal sealed class <eba573b6-ee0c-44f4-8f07-9a6235970ee1>NullableAttribute : Attribute
	{
		public readonly byte[] NullableFlags;

		public <eba573b6-ee0c-44f4-8f07-9a6235970ee1>NullableAttribute(byte P_0)
		{
			NullableFlags = new byte[1] { P_0 };
		}

		public <eba573b6-ee0c-44f4-8f07-9a6235970ee1>NullableAttribute(byte[] P_0)
		{
			NullableFlags = P_0;
		}
	}
	[CompilerGenerated]
	[<b21706a9-029a-4b28-90f3-b8bede232f2c>Embedded]
	[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)]
	internal sealed class <bbb84118-7f3a-4bc6-95c4-60cce96b2318>NullableContextAttribute : Attribute
	{
		public readonly byte Flag;

		public <bbb84118-7f3a-4bc6-95c4-60cce96b2318>NullableContextAttribute(byte P_0)
		{
			Flag = P_0;
		}
	}
}
[<bbb84118-7f3a-4bc6-95c4-60cce96b2318>NullableContext(1)]
[<eba573b6-ee0c-44f4-8f07-9a6235970ee1>Nullable(0)]
internal static class BSU_Log
{
	private static readonly ManualLogSource _log = Logger.CreateLogSource("BowSecondaryUnlock");

	public static void Info(string s)
	{
		_log.LogInfo((object)s);
	}

	public static void Err(string s)
	{
		_log.LogError((object)s);
	}
}
[<bbb84118-7f3a-4bc6-95c4-60cce96b2318>NullableContext(1)]
[<eba573b6-ee0c-44f4-8f07-9a6235970ee1>Nullable(0)]
internal static class BSU_Whitelist
{
	private static readonly string[] _names;

	internal static readonly HashSet<string> Names;

	internal static readonly HashSet<int> NameHashes;

	static BSU_Whitelist()
	{
		_names = new string[3] { "BowEvoCoreAshlandsLightningDO", "BowEvoCoreAshlandsBloodDO", "BowEvoCoreAshlandsNatureDO" };
		Names = new HashSet<string>(StringComparer.Ordinal);
		NameHashes = new HashSet<int>();
		string[] names = _names;
		foreach (string text in names)
		{
			Names.Add(text);
			NameHashes.Add(StringExtensionMethods.GetStableHashCode(text));
		}
	}

	public static bool Match(string prefabName)
	{
		if (string.IsNullOrEmpty(prefabName))
		{
			return false;
		}
		if (Names.Contains(prefabName))
		{
			return true;
		}
		return NameHashes.Contains(StringExtensionMethods.GetStableHashCode(prefabName));
	}
}
[<bbb84118-7f3a-4bc6-95c4-60cce96b2318>NullableContext(1)]
[<eba573b6-ee0c-44f4-8f07-9a6235970ee1>Nullable(0)]
internal static class BSU_RateLimiter
{
	private static readonly Dictionary<string, float> _lastStart = new Dictionary<string, float>();

	private static readonly Dictionary<string, float> _lockUntil = new Dictionary<string, float>();

	private static string Key(Humanoid h, string prefab)
	{
		return string.Format("{0}:{1}", Object.op_Implicit((Object)(object)h) ? ((Object)h).GetInstanceID() : 0, prefab ?? "");
	}

	public static bool IsLocked(Humanoid h, string prefab)
	{
		string key = Key(h, prefab);
		if (_lockUntil.TryGetValue(key, out var value))
		{
			return Time.time < value;
		}
		return false;
	}

	public static float GetLastStart(Humanoid h, string prefab)
	{
		string key = Key(h, prefab);
		if (!_lastStart.TryGetValue(key, out var value))
		{
			return -999f;
		}
		return value;
	}

	public static void MarkStartedAndLock(Humanoid h, string prefab, float cooldown)
	{
		string key = Key(h, prefab);
		float time = Time.time;
		_lastStart[key] = time;
		_lockUntil[key] = time + Mathf.Max(0.1f, cooldown);
	}

	public static void ClearLock(Humanoid h, string prefab)
	{
		string key = Key(h, prefab);
		_lockUntil.Remove(key);
	}
}
[<bbb84118-7f3a-4bc6-95c4-60cce96b2318>NullableContext(1)]
[<eba573b6-ee0c-44f4-8f07-9a6235970ee1>Nullable(0)]
internal static class BSU_Util
{
	public static ItemData GetEquippedBow(Humanoid h)
	{
		//IL_0023: Unknown result type (might be due to invalid IL or missing references)
		//IL_0029: Invalid comparison between Unknown and I4
		ItemData val = ((h != null) ? h.GetCurrentWeapon() : null);
		if (val?.m_shared == null)
		{
			return null;
		}
		if ((int)val.m_shared.m_itemType != 4)
		{
			return null;
		}
		return val;
	}

	public static string GetPrefabName(ItemData item)
	{
		if (item == null)
		{
			return null;
		}
		if ((Object)(object)item.m_dropPrefab != (Object)null)
		{
			return ((Object)item.m_dropPrefab).name;
		}
		try
		{
			ObjectDB instance = ObjectDB.instance;
			if ((Object)(object)instance != (Object)null)
			{
				foreach (GameObject item2 in instance.m_items)
				{
					if (Object.op_Implicit((Object)(object)item2) && item2.GetComponent<ItemDrop>()?.m_itemData?.m_shared == item.m_shared)
					{
						return ((Object)item2).name;
					}
				}
			}
		}
		catch
		{
		}
		return null;
	}

	public static bool SecondaryPressedThisFrame()
	{
		try
		{
			if (ZInput.GetButtonDown("SecondaryAttack"))
			{
				return true;
			}
		}
		catch
		{
		}
		try
		{
			if (ZInput.GetButtonDown("Attack2"))
			{
				return true;
			}
		}
		catch
		{
		}
		try
		{
			if (ZInput.GetButtonDown("SecAttack"))
			{
				return true;
			}
		}
		catch
		{
		}
		try
		{
			if (Input.GetKeyDown((KeyCode)325))
			{
				return true;
			}
		}
		catch
		{
		}
		return false;
	}

	private static bool CallBoolNoArgs(object obj, string methodName)
	{
		if (obj == null)
		{
			return false;
		}
		Type type = obj.GetType();
		while (type != null)
		{
			MethodInfo method = type.GetMethod(methodName, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic, null, Type.EmptyTypes, null);
			if (method != null && method.ReturnType == typeof(bool))
			{
				try
				{
					return (bool)method.Invoke(obj, Array.Empty<object>());
				}
				catch
				{
					return false;
				}
			}
			type = type.BaseType;
		}
		return false;
	}

	public static bool IsInAttackStrict(Humanoid h)
	{
		if (CallBoolNoArgs(h, "InAttack"))
		{
			return true;
		}
		if (CallBoolNoArgs(h, "IsAttacking"))
		{
			return true;
		}
		return false;
	}

	public static float GetAttackCooldown(object attackObj)
	{
		if (attackObj == null)
		{
			return 0.35f;
		}
		try
		{
			FieldInfo field = attackObj.GetType().GetField("m_attackCooldown", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
			if (field != null && field.FieldType == typeof(float))
			{
				float num = (float)field.GetValue(attackObj);
				if (num > 0f)
				{
					return num;
				}
			}
		}
		catch
		{
		}
		return 0.5f;
	}

	public static void ClearStuckCurrentAttackIfSafe(Humanoid h, float lastStartTime, float cooldown)
	{
		if (IsInAttackStrict(h) || Time.time < lastStartTime + Mathf.Max(0.1f, cooldown) + 0.035f)
		{
			return;
		}
		try
		{
			if (GetField(h, "m_currentAttack") != null)
			{
				SetField(h, "m_currentAttack", null);
			}
		}
		catch
		{
		}
	}

	private static FieldInfo FindField(Type t, string name)
	{
		while (t != null)
		{
			FieldInfo field = t.GetField(name, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
			if (field != null)
			{
				return field;
			}
			t = t.BaseType;
		}
		return null;
	}

	private static object GetField(object obj, string name)
	{
		if (obj == null)
		{
			return null;
		}
		return FindField(obj.GetType(), name)?.GetValue(obj);
	}

	private static void SetField(object obj, string name, object val)
	{
		if (obj != null)
		{
			FindField(obj.GetType(), name)?.SetValue(obj, val);
		}
	}

	private static object FindFieldByTypeName(object obj, string typeName)
	{
		if (obj == null)
		{
			return null;
		}
		Type type = obj.GetType();
		while (type != null)
		{
			FieldInfo[] fields = type.GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
			foreach (FieldInfo fieldInfo in fields)
			{
				Type fieldType = fieldInfo.FieldType;
				if (!(fieldType == null) && (fieldType.Name == typeName || (fieldType.FullName != null && fieldType.FullName.EndsWith("." + typeName, StringComparison.Ordinal))))
				{
					object value = fieldInfo.GetValue(obj);
					if (value != null)
					{
						return value;
					}
				}
			}
			type = type.BaseType;
		}
		return null;
	}

	private static Type FindTypeByName(string typeName)
	{
		Assembly[] assemblies = AppDomain.CurrentDomain.GetAssemblies();
		foreach (Assembly assembly in assemblies)
		{
			Type type = null;
			try
			{
				type = assembly.GetType(typeName);
			}
			catch
			{
			}
			if (type != null)
			{
				return type;
			}
			try
			{
				Type[] types = assembly.GetTypes();
				foreach (Type type2 in types)
				{
					if (type2.Name == typeName)
					{
						return type2;
					}
					if (type2.FullName != null && type2.FullName.EndsWith("." + typeName, StringComparison.Ordinal))
					{
						return type2;
					}
				}
			}
			catch
			{
			}
		}
		return null;
	}

	private static Component GetComponentByTypeName(Component c, string typeName)
	{
		if ((Object)(object)c == (Object)null)
		{
			return null;
		}
		Type type = FindTypeByName(typeName);
		if (type == null)
		{
			return null;
		}
		try
		{
			return c.GetComponent(type);
		}
		catch
		{
			return null;
		}
	}

	private static object FindZAnim(Humanoid h)
	{
		object field = GetField(h, "m_zanim");
		if (field != null)
		{
			return field;
		}
		field = FindFieldByTypeName(h, "ZSyncAnimation");
		if (field != null)
		{
			return field;
		}
		field = FindFieldByTypeName(h, "ZAnimator");
		if (field != null)
		{
			return field;
		}
		return GetComponentByTypeName((Component)(object)h, "ZSyncAnimation") ?? GetComponentByTypeName((Component)(object)h, "ZAnimator");
	}

	private static Rigidbody FindBody(Humanoid h)
	{
		object field = GetField(h, "m_body");
		Rigidbody val = (Rigidbody)((field is Rigidbody) ? field : null);
		if ((Object)(object)val != (Object)null)
		{
			return val;
		}
		try
		{
			return ((Component)h).GetComponent<Rigidbody>();
		}
		catch
		{
			return null;
		}
	}

	private static object FindAnimEvent(Humanoid h)
	{
		object field = GetField(h, "m_animEvent");
		if (field != null)
		{
			return field;
		}
		field = FindFieldByTypeName(h, "CharacterAnimEvent");
		if (field != null)
		{
			return field;
		}
		return GetComponentByTypeName((Component)(object)h, "CharacterAnimEvent");
	}

	private static object FindVisEquipment(Humanoid h)
	{
		object field = GetField(h, "m_visEquipment");
		if (field != null)
		{
			return field;
		}
		field = FindFieldByTypeName(h, "VisEquipment");
		if (field != null)
		{
			return field;
		}
		return GetComponentByTypeName((Component)(object)h, "VisEquipment");
	}

	private static IEnumerable<MethodInfo> EnumerateAttackStartMethods(object attackObj)
	{
		if (attackObj == null)
		{
			yield break;
		}
		IEnumerable<MethodInfo> enumerable = from m in attackObj.GetType().GetMethods(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic)
			where m.Name == "Start"
			select m;
		foreach (MethodInfo item in enumerable)
		{
			yield return item;
		}
	}

	public static bool TryStartSecondary(Humanoid h, ItemData item)
	{
		if ((Object)(object)h == (Object)null || item?.m_shared == null)
		{
			return false;
		}
		Attack secondaryAttack = item.m_shared.m_secondaryAttack;
		if (secondaryAttack == null)
		{
			return false;
		}
		try
		{
			SetField(h, "m_currentWeapon", item);
			SetField(h, "m_currentAttack", secondaryAttack);
			FieldInfo fieldInfo = FindField(((object)h).GetType(), "m_attackQueue");
			if (fieldInfo != null)
			{
				fieldInfo.SetValue(h, false);
			}
			FieldInfo fieldInfo2 = FindField(((object)h).GetType(), "m_blocking");
			if (fieldInfo2 != null)
			{
				fieldInfo2.SetValue(h, false);
			}
			FieldInfo fieldInfo3 = FindField(((object)h).GetType(), "m_wasAiming");
			if (fieldInfo3 != null)
			{
				fieldInfo3.SetValue(h, false);
			}
		}
		catch
		{
		}
		Rigidbody body = FindBody(h);
		object zAnim = FindZAnim(h);
		object animEv = FindAnimEvent(h);
		object visEq = FindVisEquipment(h);
		List<MethodInfo> list = EnumerateAttackStartMethods(secondaryAttack).ToList();
		if (list.Count == 0)
		{
			return false;
		}
		foreach (MethodInfo item2 in list)
		{
			ParameterInfo[] parameters = item2.GetParameters();
			object[] args = new object[parameters.Length];
			if (TryFillArgsAndInvoke(item2, parameters, args, h, body, zAnim, animEv, visEq, item, secondaryAttack, Time.time, 1f, prevAttackNull: false))
			{
				return true;
			}
			if (TryFillArgsAndInvoke(item2, parameters, args, h, body, zAnim, animEv, visEq, item, secondaryAttack, Time.time, 1f, prevAttackNull: true))
			{
				return true;
			}
		}
		return false;
	}

	private static bool TryFillArgsAndInvoke(MethodInfo mi, ParameterInfo[] pars, object[] args, Humanoid h, Rigidbody body, object zAnim, object animEv, object visEq, ItemData item, object secAttack, float timeNow, float drawPct, bool prevAttackNull)
	{
		//IL_0225: Unknown result type (might be due to invalid IL or missing references)
		//IL_024c: Unknown result type (might be due to invalid IL or missing references)
		int num = 0;
		for (int i = 0; i < pars.Length; i++)
		{
			Type parameterType = pars[i].ParameterType;
			if (parameterType == typeof(Humanoid) || parameterType == typeof(Character) || parameterType == typeof(Player) || parameterType.IsInstanceOfType(h))
			{
				args[i] = h;
			}
			else if (parameterType == typeof(Rigidbody))
			{
				if ((Object)(object)body == (Object)null)
				{
					return false;
				}
				args[i] = body;
			}
			else if (zAnim != null && (parameterType.IsInstanceOfType(zAnim) || parameterType.Name.Contains("ZSyncAnimation") || parameterType.Name.Contains("ZAnimator")))
			{
				args[i] = zAnim;
			}
			else if (parameterType.Name == "CharacterAnimEvent")
			{
				if (animEv == null)
				{
					return false;
				}
				args[i] = animEv;
			}
			else if (parameterType.Name == "VisEquipment")
			{
				if (visEq == null)
				{
					return false;
				}
				args[i] = visEq;
			}
			else if (parameterType == typeof(ItemData))
			{
				args[i] = item;
			}
			else if (parameterType.Name == "Attack")
			{
				args[i] = (prevAttackNull ? null : secAttack);
			}
			else if (parameterType == typeof(float))
			{
				args[i] = ((num++ == 0) ? timeNow : ((num == 2) ? drawPct : 0f));
			}
			else if (parameterType == typeof(bool))
			{
				args[i] = true;
			}
			else if (parameterType == typeof(int))
			{
				args[i] = 0;
			}
			else if (parameterType == typeof(string))
			{
				try
				{
					FieldInfo field = secAttack.GetType().GetField("m_attackAnimation", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
					args[i] = ((field != null) ? ((string)field.GetValue(secAttack)) : "");
				}
				catch
				{
					args[i] = "";
				}
			}
			else if (parameterType == typeof(Vector3))
			{
				args[i] = ((Component)h).transform.position;
			}
			else
			{
				if (!(parameterType == typeof(Quaternion)))
				{
					return false;
				}
				args[i] = ((Component)h).transform.rotation;
			}
		}
		try
		{
			return !(mi.Invoke(secAttack, args) is bool flag) || flag;
		}
		catch
		{
			return false;
		}
	}
}
[<eba573b6-ee0c-44f4-8f07-9a6235970ee1>Nullable(0)]
[<bbb84118-7f3a-4bc6-95c4-60cce96b2318>NullableContext(1)]
[HarmonyPatch(typeof(Player), "Update")]
internal static class BSU_PlayerUpdate_Postfix
{
	private static float _lastTriggerTime;

	private static readonly HashSet<string> _notified = new HashSet<string>(StringComparer.Ordinal);

	private static void Postfix(Player __instance)
	{
		try
		{
			if ((Object)(object)__instance != (Object)(object)Player.m_localPlayer || !BSU_Util.SecondaryPressedThisFrame())
			{
				return;
			}
			ItemData equippedBow = BSU_Util.GetEquippedBow((Humanoid)(object)__instance);
			if (equippedBow == null)
			{
				return;
			}
			string prefabName = BSU_Util.GetPrefabName(equippedBow);
			if (!BSU_Whitelist.Match(prefabName))
			{
				return;
			}
			if (!string.IsNullOrEmpty(prefabName) && !_notified.Contains(prefabName))
			{
				_notified.Add(prefabName);
				BSU_Log.Info("Secondary unlocked for '" + prefabName + "'.");
			}
			if (Time.time - _lastTriggerTime < 0.1f)
			{
				return;
			}
			_lastTriggerTime = Time.time;
			float attackCooldown = BSU_Util.GetAttackCooldown(equippedBow.m_shared?.m_secondaryAttack);
			if (!BSU_Util.IsInAttackStrict((Humanoid)(object)__instance))
			{
				if (BSU_RateLimiter.IsLocked((Humanoid)(object)__instance, prefabName))
				{
					BSU_Util.ClearStuckCurrentAttackIfSafe((Humanoid)(object)__instance, BSU_RateLimiter.GetLastStart((Humanoid)(object)__instance, prefabName), attackCooldown);
				}
				else if (BSU_Util.TryStartSecondary((Humanoid)(object)__instance, equippedBow))
				{
					BSU_RateLimiter.MarkStartedAndLock((Humanoid)(object)__instance, prefabName, attackCooldown);
				}
			}
		}
		catch (Exception ex)
		{
			BSU_Log.Err("BowSecondaryUnlock.Update error: " + ex.GetType().Name + ": " + ex.Message);
		}
	}
}
[<bbb84118-7f3a-4bc6-95c4-60cce96b2318>NullableContext(1)]
[<eba573b6-ee0c-44f4-8f07-9a6235970ee1>Nullable(0)]
internal static class VES_Log
{
	private static readonly ManualLogSource _log = Logger.CreateLogSource("VisEqSafeSetup");

	public static void Info(string s)
	{
		_log.LogInfo((object)s);
	}

	public static void Warn(string s)
	{
		_log.LogWarning((object)s);
	}

	public static void Err(string s)
	{
		_log.LogError((object)s);
	}
}
[<bbb84118-7f3a-4bc6-95c4-60cce96b2318>NullableContext(1)]
[<eba573b6-ee0c-44f4-8f07-9a6235970ee1>Nullable(0)]
internal static class VES_Ref
{
	public static FieldInfo FindField(Type t, string name)
	{
		while (t != null)
		{
			FieldInfo field = t.GetField(name, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
			if (field != null)
			{
				return field;
			}
			t = t.BaseType;
		}
		return null;
	}

	public static object GetField(object obj, string name)
	{
		if (obj == null)
		{
			return null;
		}
		return FindField(obj.GetType(), name)?.GetValue(obj);
	}

	public static void SetField(object obj, string name, object val)
	{
		if (obj != null)
		{
			FindField(obj.GetType(), name)?.SetValue(obj, val);
		}
	}
}
[HarmonyPatch(typeof(Humanoid), "Awake")]
internal static class Humanoid_Awake_VisEq_Autobind
{
	[<bbb84118-7f3a-4bc6-95c4-60cce96b2318>NullableContext(1)]
	private static void Postfix(Humanoid __instance)
	{
		try
		{
			FieldInfo fieldInfo = VES_Ref.FindField(((object)__instance).GetType(), "m_visEquipment");
			if (!(fieldInfo == null) && !((Object)/*isinst with value type is only supported in some contexts*/ != (Object)null))
			{
				VisEquipment componentInChildren = ((Component)__instance).GetComponentInChildren<VisEquipment>(true);
				if ((Object)(object)componentInChildren != (Object)null)
				{
					fieldInfo.SetValue(__instance, componentInChildren);
				}
			}
		}
		catch (Exception ex)
		{
			VES_Log.Warn("[AutoBind] " + ((__instance != null) ? ((Object)__instance).name : null) + ": " + ex.GetType().Name + ": " + ex.Message);
		}
	}
}
[<bbb84118-7f3a-4bc6-95c4-60cce96b2318>NullableContext(1)]
[<eba573b6-ee0c-44f4-8f07-9a6235970ee1>Nullable(0)]
[HarmonyPatch(typeof(Humanoid), "SetupVisEquipment")]
internal static class Humanoid_SetupVisEquipment_Safe
{
	private static readonly HashSet<string> Notified = new HashSet<string>(StringComparer.Ordinal);

	private static bool Prefix(Humanoid __instance, VisEquipment visEq, bool isRagdoll)
	{
		if (__instance is Player)
		{
			return true;
		}
		if ((Object)(object)visEq == (Object)null)
		{
			NotifyOnce(__instance, "missing VisEquipment");
			return false;
		}
		if ((Object)(object)visEq.m_bodyModel == (Object)null || ((Object)(object)visEq.m_leftHand == (Object)null && (Object)(object)visEq.m_rightHand == (Object)null))
		{
			NotifyOnce(__instance, "incomplete VisEquipment");
			return false;
		}
		return true;
	}

	private static Exception Finalizer(Humanoid __instance, VisEquipment visEq, bool isRagdoll, Exception __exception)
	{
		if (__exception != null && !(__instance is Player))
		{
			NotifyOnce(__instance, "exception in SetupVisEquipment: " + __exception.GetType().Name);
			return null;
		}
		return __exception;
	}

	private static void NotifyOnce(Humanoid h, string reason)
	{
		try
		{
			string text = (Object.op_Implicit((Object)(object)h) ? (((Object)h).name ?? "Humanoid") : "Humanoid");
			int num = text.IndexOf("(Clone)", StringComparison.Ordinal);
			if (num >= 0)
			{
				text = text.Substring(0, num).Trim();
			}
			if (!Notified.Contains(text))
			{
				Notified.Add(text);
				VES_Log.Info("Guarded SetupVisEquipment for '" + text + "' (" + reason + ").");
			}
		}
		catch
		{
		}
	}
}
namespace Hunter_Legacy
{
	[BepInPlugin("Dreanegade.Hunter_Legacy", "Hunter_Legacy", "1.0.2")]
	[<bbb84118-7f3a-4bc6-95c4-60cce96b2318>NullableContext(1)]
	[<eba573b6-ee0c-44f4-8f07-9a6235970ee1>Nullable(0)]
	public class Hunter_LegacyPlugin : BaseUnityPlugin
	{
		[<bbb84118-7f3a-4bc6-95c4-60cce96b2318>NullableContext(0)]
		public enum Toggle
		{
			On = 1,
			Off = 0
		}

		[<bbb84118-7f3a-4bc6-95c4-60cce96b2318>NullableContext(0)]
		private class ConfigurationManagerAttributes
		{
			[UsedImplicitly]
			public int? Order;

			[UsedImplicitly]
			public bool? Browsable;

			[<eba573b6-ee0c-44f4-8f07-9a6235970ee1>Nullable(2)]
			[UsedImplicitly]
			public string Category;

			[<eba573b6-ee0c-44f4-8f07-9a6235970ee1>Nullable(new byte[] { 2, 1 })]
			[UsedImplicitly]
			public Action<ConfigEntryBase> CustomDrawer;
		}

		internal const string ModName = "Hunter_Legacy";

		internal const string ModVersion = "1.0.2";

		internal const string Author = "Dreanegade";

		private const string ModGUID = "Dreanegade.Hunter_Legacy";

		private static string ConfigFileName = "Dreanegade.Hunter_Legacy.cfg";

		private static string ConfigFileFullPath;

		internal static string ConnectionError;

		private readonly Harmony _harmony = new Harmony("Dreanegade.Hunter_Legacy");

		public static readonly ManualLogSource Hunter_LegacyLogger;

		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);
			AssetBundle assets = PrefabManager.RegisterAssetBundle("hunter_legacy");
			BuildPiece.ConfigurationEnabled = true;
			PrefabManager.RegisterPrefab(assets, "projectile_demon_hunter_crossbow_blood_DO");
			PrefabManager.RegisterPrefab(assets, "vfx_demon_hunter_crossbow_blood_fire_DO");
			PrefabManager.RegisterPrefab(assets, "sfx_demon_hunter_crossbow_blood_fire_main_DO");
			PrefabManager.RegisterPrefab(assets, "sfx_demon_hunter_crossbow_blood_fire_scream_DO");
			PrefabManager.RegisterPrefab(assets, "vfx_demon_hunter_crossbow_blood_hit_DO");
			PrefabManager.RegisterPrefab(assets, "spawn_demon_hunter_crossbow_blood_skeleton_DO");
			PrefabManager.RegisterPrefab(assets, "creature_demon_hunter_crossbow_blood_skeleton_DO");
			PrefabManager.RegisterPrefab(assets, "fx_demon_hunter_crossbow_blood_skeleton_summon_DO");
			PrefabManager.RegisterPrefab(assets, "sfx_dread_crossbow_poison_fire_DO");
			PrefabManager.RegisterPrefab(assets, "vfx_dread_crossbow_poison_fire_DO");
			PrefabManager.RegisterPrefab(assets, "aoe_dread_crossbow_poison_hit_DO");
			PrefabManager.RegisterPrefab(assets, "projectile_demon_hunter_crossbow_lightning_DO");
			PrefabManager.RegisterPrefab(assets, "chain_demon_hunter_crossbow_lightning_DO");
			PrefabManager.RegisterPrefab(assets, "vfx_demon_hunter_crossbow_lightning_fire_DO");
			PrefabManager.RegisterPrefab(assets, "sfx_demon_hunter_crossbow_lightning_fire_DO");
			PrefabManager.RegisterPrefab(assets, "fx_demon_hunter_crossbow_lightning_hit_DO");
			PrefabManager.RegisterPrefab(assets, "fx_demon_hunter_crossbow_lightning_hit_secondary_DO");
			PrefabManager.RegisterPrefab(assets, "vfx_demon_hunter_crossbow_nature_fire_DO");
			PrefabManager.RegisterPrefab(assets, "fx_demon_hunter_crossbow_nature_shield_block_DO");
			PrefabManager.RegisterPrefab(assets, "vfx_demon_hunter_crossbow_nature_hit_secondary_DO");
			PrefabManager.RegisterPrefab(assets, "sfx_demon_hunter_crossbow_nature_hit_secondary_DO");
			PrefabManager.RegisterPrefab(assets, "aoe_ashen_exile_bow_hit_DO");
			PrefabManager.RegisterPrefab(assets, "vfx_ashen_exile_bow_fire_DO");
			PrefabManager.RegisterPrefab(assets, "sfx_ashen_exile_bow_fire_DO");
			PrefabManager.RegisterPrefab(assets, "projectile_bolt_syringe_poison_DO");
			PrefabManager.RegisterPrefab(assets, "vfx_evo_bow_blood_fire_DO");
			PrefabManager.RegisterPrefab(assets, "vfx_evo_bow_lightning_fire_DO");
			PrefabManager.RegisterPrefab(assets, "vfx_evo_bow_nature_fire_DO");
			PrefabManager.RegisterPrefab(assets, "sfx_bow_nocturne_fire_DO");
			PrefabManager.RegisterPrefab(assets, "projectile_throwing_knife_bronze_DO");
			PrefabManager.RegisterPrefab(assets, "projectile_throwing_knife_iron_DO");
			PrefabManager.RegisterPrefab(assets, "projectile_throwing_knife_silver_DO");
			PrefabManager.RegisterPrefab(assets, "projectile_throwing_knife_blackmetal_DO");
			PrefabManager.RegisterPrefab(assets, "projectile_throwing_knife_flametal_DO");
			PrefabManager.RegisterPrefab(assets, "projectile_throwing_whirlstar_bronze_DO");
			PrefabManager.RegisterPrefab(assets, "projectile_throwing_whirlstar_iron_DO");
			PrefabManager.RegisterPrefab(assets, "projectile_throwing_whirlstar_silver_DO");
			PrefabManager.RegisterPrefab(assets, "projectile_throwing_whirlstar_blackmetal_DO");
			PrefabManager.RegisterPrefab(assets, "projectile_throwing_whirlstar_flametal_DO");
			PrefabManager.RegisterPrefab(assets, "vfx_bomb_smoke_escape_smoke_DO");
			PrefabManager.RegisterPrefab(assets, "sfx_bomb_smoke_escape_glass_break_DO");
			BuildPiece buildPiece = new BuildPiece("hunter_legacy", "HunterTableDO");
			buildPiece.RequiredItems.Add("Bronze", 10, recover: true);
			buildPiece.RequiredItems.Add("RoundLog", 30, recover: true);
			buildPiece.RequiredItems.Add("BronzeNails", 40, recover: true);
			buildPiece.RequiredItems.Add("Resin", 15, recover: true);
			buildPiece.Category.Set("Distant Origins");
			buildPiece.Crafting.Set(PieceManager.CraftingTable.Forge);
			MaterialReplacer.RegisterGameObjectForShaderSwap(buildPiece.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			BuildPiece buildPiece2 = new BuildPiece("hunter_legacy", "MunitionsBenchDO");
			buildPiece2.RequiredItems.Add("Bronze", 10, recover: true);
			buildPiece2.RequiredItems.Add("RoundLog", 20, recover: true);
			buildPiece2.RequiredItems.Add("BronzeNails", 20, recover: true);
			buildPiece2.RequiredItems.Add("Wood", 20, recover: true);
			buildPiece2.Category.Set("Distant Origins");
			MaterialReplacer.RegisterGameObjectForShaderSwap(buildPiece2.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			BuildPiece buildPiece3 = new BuildPiece("hunter_legacy", "HunterTableExt1DO");
			buildPiece3.RequiredItems.Add("Wood", 15, recover: true);
			buildPiece3.RequiredItems.Add("Iron", 3, recover: true);
			buildPiece3.RequiredItems.Add("LeatherResinedDO", 6, recover: true);
			buildPiece3.Category.Set("Distant Origins");
			MaterialReplacer.RegisterGameObjectForShaderSwap(buildPiece3.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			BuildPiece buildPiece4 = new BuildPiece("hunter_legacy", "HunterTableExt2DO");
			buildPiece4.RequiredItems.Add("RoundLog", 25, recover: true);
			buildPiece4.RequiredItems.Add("CoarseThreadDO", 8, recover: true);
			buildPiece4.RequiredItems.Add("Silver", 4, recover: true);
			buildPiece4.Category.Set("Distant Origins");
			MaterialReplacer.RegisterGameObjectForShaderSwap(buildPiece4.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			BuildPiece buildPiece5 = new BuildPiece("hunter_legacy", "HunterTableExt3DO");
			buildPiece5.RequiredItems.Add("LeatherTarredDO", 16, recover: true);
			buildPiece5.RequiredItems.Add("FineWood", 16, recover: true);
			buildPiece5.RequiredItems.Add("LinenThread", 10, recover: true);
			buildPiece5.RequiredItems.Add("BlackMetal", 10, recover: true);
			buildPiece5.Category.Set("Distant Origins");
			MaterialReplacer.RegisterGameObjectForShaderSwap(buildPiece5.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			BuildPiece buildPiece6 = new BuildPiece("hunter_legacy", "HunterTableExt4DO");
			buildPiece6.RequiredItems.Add("YggdrasilWood", 15, recover: true);
			buildPiece6.RequiredItems.Add("Silver", 10, recover: true);
			buildPiece6.RequiredItems.Add("BlackMetal", 15, recover: true);
			buildPiece6.RequiredItems.Add("LeatherSappedDO", 10, recover: true);
			buildPiece6.Category.Set("Distant Origins");
			MaterialReplacer.RegisterGameObjectForShaderSwap(buildPiece6.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			BuildPiece buildPiece7 = new BuildPiece("hunter_legacy", "HunterTableExt5DO");
			buildPiece7.RequiredItems.Add("BlackMarble", 30, recover: true);
			buildPiece7.RequiredItems.Add("FlametalNew", 6, recover: true);
			buildPiece7.RequiredItems.Add("TrophyFallenValkyrie", 1, recover: true);
			buildPiece7.RequiredItems.Add("TrophyMorgen", 1, recover: true);
			buildPiece7.Category.Set("Distant Origins");
			MaterialReplacer.RegisterGameObjectForShaderSwap(buildPiece7.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			Item item = new Item("hunter_legacy", "DrawLeverDO");
			item.Crafting.Add("HunterTableDO", 1);
			item.RequiredItems.Add("Bronze", 4);
			item.RequiredItems.Add("BronzeNails", 10);
			item.RequiredItems.Add("LeatherResinedDO", 2);
			item.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Draw Lever", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item2 = new Item("hunter_legacy", "EternalBowstringDO");
			item2.Crafting.Add("HunterTableDO", 1);
			item2.RequiredItems.Add("CoarseThreadDO", 10);
			item2.RequiredItems.Add("LeatherResinedDO", 3);
			item2.RequiredItems.Add("AncientSeed", 1);
			item2.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item2.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Eternal Bowstring", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item2.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item3 = new Item("hunter_legacy", "CoarseThreadDO");
			item3.Crafting.Add("HunterTableDO", 1);
			item3.RequiredItems.Add("Thistle", 2);
			item3.RequiredItems.Add("Dandelion", 4);
			item3.RequiredItems.Add("Resin", 3);
			item3.CraftAmount = 2;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item3.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Coarse Thread", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item3.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item4 = new Item("hunter_legacy", "LeatherResinedDO");
			item4.Crafting.Add("HunterTableDO", 1);
			item4.RequiredItems.Add("DeerHide", 1);
			item4.RequiredItems.Add("Resin", 3);
			item4.CraftAmount = 2;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item4.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Leather Resined", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item4.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item5 = new Item("hunter_legacy", "LeatherGreasedDO");
			item5.Crafting.Add("HunterTableDO", 1);
			item5.RequiredItems.Add("TrollHide", 1);
			item5.RequiredItems.Add("RawMeat", 2);
			item5.CraftAmount = 2;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item5.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Leather Greased", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item5.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item6 = new Item("hunter_legacy", "LeatherFrostedDO");
			item6.Crafting.Add("HunterTableDO", 1);
			item6.RequiredItems.Add("WolfPelt", 1);
			item6.RequiredItems.Add("FreezeGland", 2);
			item6.CraftAmount = 2;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item6.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Leather Frosted", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item6.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item7 = new Item("hunter_legacy", "LeatherTarredDO");
			item7.Crafting.Add("HunterTableDO", 1);
			item7.RequiredItems.Add("LoxPelt", 1);
			item7.RequiredItems.Add("Tar", 1);
			item7.CraftAmount = 2;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item7.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Leather Tarred", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item7.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item8 = new Item("hunter_legacy", "LeatherSappedDO");
			item8.Crafting.Add("HunterTableDO", 1);
			item8.RequiredItems.Add("ScaleHide", 1);
			item8.RequiredItems.Add("Sap", 2);
			item8.CraftAmount = 2;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item8.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Leather Sapped", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item8.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item9 = new Item("hunter_legacy", "LeatherCharredDO");
			item9.Crafting.Add("HunterTableDO", 1);
			item9.RequiredItems.Add("AskHide", 1);
			item9.RequiredItems.Add("CharcoalResin", 2);
			item9.CraftAmount = 2;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item9.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Leather Charred", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item9.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item10 = new Item("hunter_legacy", "BoltFlintDO");
			item10.Crafting.Add("MunitionsBenchDO", 1);
			item10.RequiredItems.Add("Flint", 2);
			item10.RequiredItems.Add("Wood", 8);
			item10.RequiredItems.Add("Feathers", 2);
			item10.CraftAmount = 20;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item10.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Bolt Flint", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item10.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item11 = new Item("hunter_legacy", "BoltStoneDO");
			item11.Crafting.Add("MunitionsBenchDO", 1);
			item11.RequiredItems.Add("Stone", 4);
			item11.RequiredItems.Add("RoundLog", 8);
			item11.RequiredItems.Add("Feathers", 2);
			item11.CraftAmount = 20;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item11.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Bolt Stone", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item11.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item12 = new Item("hunter_legacy", "BoltBoneDO");
			item12.Crafting.Add("MunitionsBenchDO", 1);
			item12.RequiredItems.Add("WitheredBone", 2);
			item12.RequiredItems.Add("ElderBark", 2);
			item12.RequiredItems.Add("Feathers", 2);
			item12.CraftAmount = 20;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item12.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Bolt Bone", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item12.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item13 = new Item("hunter_legacy", "BoltObsidianDO");
			item13.Crafting.Add("MunitionsBenchDO", 1);
			item13.RequiredItems.Add("Obsidian", 4);
			item13.RequiredItems.Add("Wood", 8);
			item13.RequiredItems.Add("Feathers", 2);
			item13.CraftAmount = 20;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item13.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Bolt Obsidian", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item13.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item14 = new Item("hunter_legacy", "BoltCrystalDO");
			item14.Crafting.Add("MunitionsBenchDO", 1);
			item14.RequiredItems.Add("Crystal", 2);
			item14.RequiredItems.Add("Wood", 8);
			item14.RequiredItems.Add("Feathers", 2);
			item14.CraftAmount = 20;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item14.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Bolt Crystal", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item14.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item15 = new Item("hunter_legacy", "BoltMarbleDO");
			item15.Crafting.Add("MunitionsBenchDO", 1);
			item15.RequiredItems.Add("BlackMarble", 2);
			item15.RequiredItems.Add("Wood", 8);
			item15.RequiredItems.Add("Feathers", 2);
			item15.CraftAmount = 20;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item15.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Bolt Marble", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item15.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item16 = new Item("hunter_legacy", "BoltSyringePoisonDO");
			item16.Crafting.Add("MunitionsBenchDO", 1);
			item16.RequiredItems.Add("Ooze", 3);
			item16.RequiredItems.Add("BlackMetal", 1);
			item16.RequiredItems.Add("Feathers", 2);
			item16.CraftAmount = 20;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item16.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Bolt Syringe Poison", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item16.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item17 = new Item("hunter_legacy", "ThrowingKnifeCoreBronzeDO");
			item17.Crafting.Add("MunitionsBenchDO", 1);
			item17.RequiredItems.Add("Bronze", 1);
			item17.RequiredItems.Add("LeatherResinedDO", 1);
			item17.CraftAmount = 100;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item17.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Throwing Knife Core Bronze", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item17.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item18 = new Item("hunter_legacy", "ThrowingKnifeCoreIronDO");
			item18.Crafting.Add("MunitionsBenchDO", 1);
			item18.RequiredItems.Add("Iron", 1);
			item18.RequiredItems.Add("LeatherGreasedDO", 1);
			item18.CraftAmount = 100;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item18.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Throwing Knife Core Iron", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item18.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item19 = new Item("hunter_legacy", "ThrowingKnifeCoreSilverDO");
			item19.Crafting.Add("MunitionsBenchDO", 1);
			item19.RequiredItems.Add("Silver", 1);
			item19.RequiredItems.Add("LeatherFrostedDO", 1);
			item19.CraftAmount = 100;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item19.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Throwing Knife Core Silver", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item19.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item20 = new Item("hunter_legacy", "ThrowingKnifeCoreBlackmetalDO");
			item20.Crafting.Add("MunitionsBenchDO", 1);
			item20.RequiredItems.Add("BlackMetal", 1);
			item20.RequiredItems.Add("LeatherTarredDO", 1);
			item20.CraftAmount = 100;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item20.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Throwing Knife Core Blackmetal", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item20.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item21 = new Item("hunter_legacy", "ThrowingKnifeCoreFlametalDO");
			item21.Crafting.Add("MunitionsBenchDO", 1);
			item21.RequiredItems.Add("FlametalNew", 1);
			item21.RequiredItems.Add("LeatherCharredDO", 1);
			item21.CraftAmount = 100;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item21.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Throwing Knife Core Flametal", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item21.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item22 = new Item("hunter_legacy", "ThrowingWhirlstarCoreBronzeDO");
			item22.Crafting.Add("MunitionsBenchDO", 1);
			item22.RequiredItems.Add("Bronze", 1);
			item22.RequiredItems.Add("LeatherResinedDO", 1);
			item22.CraftAmount = 100;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item22.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Throwing Whirlstar Core Bronze", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item22.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item23 = new Item("hunter_legacy", "ThrowingWhirlstarCoreIronDO");
			item23.Crafting.Add("MunitionsBenchDO", 1);
			item23.RequiredItems.Add("Iron", 1);
			item23.RequiredItems.Add("LeatherGreasedDO", 1);
			item23.CraftAmount = 100;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item23.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Throwing Whirlstar Core Iron", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item23.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item24 = new Item("hunter_legacy", "ThrowingWhirlstarCoreSilverDO");
			item24.Crafting.Add("MunitionsBenchDO", 1);
			item24.RequiredItems.Add("Silver", 1);
			item24.RequiredItems.Add("LeatherFrostedDO", 1);
			item24.CraftAmount = 100;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item24.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Throwing Whirlstar Core Silver", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item24.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item25 = new Item("hunter_legacy", "ThrowingWhirlstarCoreBlackmetalDO");
			item25.Crafting.Add("MunitionsBenchDO", 1);
			item25.RequiredItems.Add("BlackMetal", 2);
			item25.RequiredItems.Add("LeatherTarredDO", 1);
			item25.CraftAmount = 100;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item25.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Throwing Whirlstar Core Black Metal", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item25.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item26 = new Item("hunter_legacy", "ThrowingWhirlstarCoreFlametalDO");
			item26.Crafting.Add("MunitionsBenchDO", 1);
			item26.RequiredItems.Add("FlametalNew", 1);
			item26.RequiredItems.Add("LeatherCharredDO", 1);
			item26.CraftAmount = 100;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item26.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Throwing Whirlstar Core Flametal", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item26.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item27 = new Item("hunter_legacy", "BombSmokeEscapeDO");
			item27.Crafting.Add("MunitionsBenchDO", 1);
			item27.RequiredItems.Add("Crystal", 1);
			item27.RequiredItems.Add("Obsidian", 2);
			item27.RequiredItems.Add("Coal", 5);
			item27.RequiredItems.Add("BoneFragments", 5);
			item27.CraftAmount = 5;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item27.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Bomb Smoke Escape", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item27.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item28 = new Item("hunter_legacy", "ArmorForestSentinelChestDO");
			item28.Crafting.Add("HunterTableDO", 1);
			item28.RequiredItems.Add("Bronze", 2);
			item28.RequiredItems.Add("LeatherResinedDO", 6);
			item28.RequiredItems.Add("CoarseThreadDO", 4);
			item28.RequiredUpgradeItems.Add("Bronze", 2);
			item28.RequiredUpgradeItems.Add("LeatherResinedDO", 4);
			item28.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item28.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Forest Sentinel Chest", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item28.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item29 = new Item("hunter_legacy", "ArmorForestSentinelLegsDO");
			item29.Crafting.Add("HunterTableDO", 1);
			item29.RequiredItems.Add("Bronze", 2);
			item29.RequiredItems.Add("LeatherResinedDO", 6);
			item29.RequiredItems.Add("CoarseThreadDO", 4);
			item29.RequiredUpgradeItems.Add("Bronze", 2);
			item29.RequiredUpgradeItems.Add("LeatherResinedDO", 4);
			item29.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item29.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Forest Sentinel Legs", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item29.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item30 = new Item("hunter_legacy", "ArmorForestSentinelHelmetDO");
			item30.Crafting.Add("HunterTableDO", 1);
			item30.RequiredItems.Add("Bronze", 2);
			item30.RequiredItems.Add("LeatherResinedDO", 6);
			item30.RequiredItems.Add("CoarseThreadDO", 4);
			item30.RequiredUpgradeItems.Add("Bronze", 2);
			item30.RequiredUpgradeItems.Add("LeatherResinedDO", 4);
			item30.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item30.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Forest Sentinel Helmet", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item30.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item31 = new Item("hunter_legacy", "ArmorForestSentinelCapeDO");
			item31.Crafting.Add("HunterTableDO", 1);
			item31.RequiredItems.Add("Bronze", 1);
			item31.RequiredItems.Add("LeatherResinedDO", 4);
			item31.RequiredItems.Add("CoarseThreadDO", 3);
			item31.RequiredUpgradeItems.Add("LeatherResinedDO", 1);
			item31.RequiredUpgradeItems.Add("CoarseThreadDO", 2);
			item31.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item31.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Forest Sentinel Cape", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item31.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item32 = new Item("hunter_legacy", "ArmorForestSentinelBeltDO");
			item32.Crafting.Add("HunterTableDO", 1);
			item32.RequiredItems.Add("LeatherResinedDO", 10);
			item32.RequiredItems.Add("LeatherGreasedDO", 8);
			item32.RequiredItems.Add("TrophyGreydwarfShaman", 1);
			item32.RequiredItems.Add("Coins", 100);
			item32.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item32.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Forest Sentinel Belt", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item32.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item33 = new Item("hunter_legacy", "ArmorFrostpeakHarrierChestDO");
			item33.Crafting.Add("HunterTableDO", 2);
			item33.RequiredItems.Add("Silver", 4);
			item33.RequiredItems.Add("LeatherFrostedDO", 12);
			item33.RequiredItems.Add("CoarseThreadDO", 8);
			item33.RequiredUpgradeItems.Add("Silver", 2);
			item33.RequiredUpgradeItems.Add("LeatherFrostedDO", 4);
			item33.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item33.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Frostpeak Harrier Chest", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item33.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item34 = new Item("hunter_legacy", "ArmorFrostpeakHarrierLegsDO");
			item34.Crafting.Add("HunterTableDO", 2);
			item34.RequiredItems.Add("Silver", 4);
			item34.RequiredItems.Add("LeatherFrostedDO", 12);
			item34.RequiredItems.Add("CoarseThreadDO", 8);
			item34.RequiredUpgradeItems.Add("Silver", 2);
			item34.RequiredUpgradeItems.Add("LeatherFrostedDO", 4);
			item34.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item34.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Frostpeak Harrier Legs", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item34.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item35 = new Item("hunter_legacy", "ArmorFrostpeakHarrierHelmetDO");
			item35.Crafting.Add("HunterTableDO", 2);
			item35.RequiredItems.Add("Silver", 4);
			item35.RequiredItems.Add("LeatherFrostedDO", 12);
			item35.RequiredItems.Add("CoarseThreadDO", 8);
			item35.RequiredUpgradeItems.Add("Silver", 2);
			item35.RequiredUpgradeItems.Add("LeatherFrostedDO", 4);
			item35.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item35.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Frostpeak Harrier Helmet", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item35.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item36 = new Item("hunter_legacy", "ArmorFrostpeakHarrierCapeDO");
			item36.Crafting.Add("HunterTableDO", 2);
			item36.RequiredItems.Add("Silver", 1);
			item36.RequiredItems.Add("LeatherFrostedDO", 4);
			item36.RequiredItems.Add("CoarseThreadDO", 3);
			item36.RequiredItems.Add("Wood", 4);
			item36.RequiredUpgradeItems.Add("LeatherFrostedDO", 1);
			item36.RequiredUpgradeItems.Add("CoarseThreadDO", 2);
			item36.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item36.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Frostpeak Harrier Quiver", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item36.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item37 = new Item("hunter_legacy", "ArmorFrostpeakHarrierTrinketDO");
			item37.Crafting.Add("HunterTableDO", 2);
			item37.RequiredItems.Add("CoarseThreadDO", 10);
			item37.RequiredItems.Add("WolfFang", 9);
			item37.RequiredItems.Add("WolfClaw", 3);
			item37.RequiredItems.Add("TrophyWolf", 1);
			item37.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item37.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Frostpeak Harrier Trinket", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item37.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item38 = new Item("hunter_legacy", "ArmorGoldenStriderChestDO");
			item38.Crafting.Add("HunterTableDO", 3);
			item38.RequiredItems.Add("BlackMetal", 5);
			item38.RequiredItems.Add("LeatherTarredDO", 15);
			item38.RequiredItems.Add("LinenThread", 10);
			item38.RequiredUpgradeItems.Add("BlackMetal", 3);
			item38.RequiredUpgradeItems.Add("LeatherTarredDO", 6);
			item38.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item38.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Golden Strider Chest", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item38.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item39 = new Item("hunter_legacy", "ArmorGoldenStriderLegsDO");
			item39.Crafting.Add("HunterTableDO", 3);
			item39.RequiredItems.Add("BlackMetal", 5);
			item39.RequiredItems.Add("LeatherTarredDO", 15);
			item39.RequiredItems.Add("LinenThread", 10);
			item39.RequiredUpgradeItems.Add("BlackMetal", 3);
			item39.RequiredUpgradeItems.Add("LeatherTarredDO", 6);
			item39.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item39.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Golden Strider Legs", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item39.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item40 = new Item("hunter_legacy", "ArmorGoldenStriderHelmetDO");
			item40.Crafting.Add("HunterTableDO", 3);
			item40.RequiredItems.Add("BlackMetal", 5);
			item40.RequiredItems.Add("LeatherTarredDO", 15);
			item40.RequiredItems.Add("LinenThread", 10);
			item40.RequiredUpgradeItems.Add("BlackMetal", 3);
			item40.RequiredUpgradeItems.Add("LeatherTarredDO", 6);
			item40.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item40.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Golden Strider Helmet", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item40.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item41 = new Item("hunter_legacy", "ArmorGoldenStriderCapeDO");
			item41.Crafting.Add("HunterTableDO", 3);
			item41.RequiredItems.Add("BlackMetal", 1);
			item41.RequiredItems.Add("LeatherTarredDO", 4);
			item41.RequiredItems.Add("LinenThread", 3);
			item41.RequiredItems.Add("FineWood", 6);
			item41.RequiredUpgradeItems.Add("LeatherTarredDO", 1);
			item41.RequiredUpgradeItems.Add("LinenThread", 2);
			item41.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item41.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Golden Strider Quiver", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item41.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item42 = new Item("hunter_legacy", "ArmorGoldenStriderBeltDO");
			item42.Crafting.Add("HunterTableDO", 3);
			item42.RequiredItems.Add("LeatherTarredDO", 15);
			item42.RequiredItems.Add("Bronze", 12);
			item42.RequiredItems.Add("TrophyGoblinShaman", 1);
			item42.RequiredItems.Add("TrophyDeathsquito", 1);
			item42.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item42.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Golden Strider Belt", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item42.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item43 = new Item("hunter_legacy", "ArmorSapphireFalconChestDO");
			item43.Crafting.Add("HunterTableDO", 4);
			item43.RequiredItems.Add("Carapace", 8);
			item43.RequiredItems.Add("LeatherSappedDO", 12);
			item43.RequiredItems.Add("LinenThread", 12);
			item43.RequiredUpgradeItems.Add("Carapace", 4);
			item43.RequiredUpgradeItems.Add("LeatherSappedDO", 6);
			item43.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item43.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Sapphire Falcon Chest", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item43.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item44 = new Item("hunter_legacy", "ArmorSapphireFalconLegsDO");
			item44.Crafting.Add("HunterTableDO", 4);
			item44.RequiredItems.Add("Carapace", 8);
			item44.RequiredItems.Add("LeatherSappedDO", 12);
			item44.RequiredItems.Add("LinenThread", 12);
			item44.RequiredUpgradeItems.Add("Carapace", 4);
			item44.RequiredUpgradeItems.Add("LeatherSappedDO", 6);
			item44.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item44.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Sapphire Falcon Legs", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item44.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item45 = new Item("hunter_legacy", "ArmorSapphireFalconHelmetDO");
			item45.Crafting.Add("HunterTableDO", 4);
			item45.RequiredItems.Add("Carapace", 8);
			item45.RequiredItems.Add("LeatherSappedDO", 12);
			item45.RequiredItems.Add("LinenThread", 10);
			item45.RequiredUpgradeItems.Add("Carapace", 4);
			item45.RequiredUpgradeItems.Add("LeatherSappedDO", 6);
			item45.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item45.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Sapphire Falcon Helmet", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item45.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item46 = new Item("hunter_legacy", "ArmorSapphireFalconCapeDO");
			item46.Crafting.Add("HunterTableDO", 4);
			item46.RequiredItems.Add("Carapace", 2);
			item46.RequiredItems.Add("LeatherSappedDO", 6);
			item46.RequiredItems.Add("LinenThread", 3);
			item46.RequiredItems.Add("YggdrasilWood", 6);
			item46.RequiredUpgradeItems.Add("Carapace", 2);
			item46.RequiredUpgradeItems.Add("LeatherSappedDO", 3);
			item46.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item46.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Sapphire Falcon Quiver", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item46.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item47 = new Item("hunter_legacy", "ArmorSapphireFalconTrinketDO");
			item47.Crafting.Add("HunterTableDO", 4);
			item47.RequiredItems.Add("LeatherSappedDO", 10);
			item47.RequiredItems.Add("Eitr", 12);
			item47.RequiredItems.Add("Bilebag", 3);
			item47.RequiredItems.Add("TrophyDvergr", 1);
			item47.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item47.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Sapphire Falcon Trinket", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item47.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item48 = new Item("hunter_legacy", "ArmorNocturneArrowChestDO");
			item48.Crafting.Add("HunterTableDO", 4);
			item48.RequiredItems.Add("Carapace", 4);
			item48.RequiredItems.Add("LeatherSappedDO", 18);
			item48.RequiredItems.Add("LinenThread", 12);
			item48.RequiredUpgradeItems.Add("Carapace", 2);
			item48.RequiredUpgradeItems.Add("LeatherSappedDO", 8);
			item48.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item48.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Nocturne Arrow Chest", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item48.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item49 = new Item("hunter_legacy", "ArmorNocturneArrowLegsDO");
			item49.Crafting.Add("HunterTableDO", 4);
			item49.RequiredItems.Add("Carapace", 4);
			item49.RequiredItems.Add("LeatherSappedDO", 18);
			item49.RequiredItems.Add("LinenThread", 12);
			item49.RequiredUpgradeItems.Add("Carapace", 2);
			item49.RequiredUpgradeItems.Add("LeatherSappedDO", 8);
			item49.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item49.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Nocturne Arrow Legs", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item49.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item50 = new Item("hunter_legacy", "ArmorNocturneArrowHelmetDO");
			item50.Crafting.Add("HunterTableDO", 4);
			item50.RequiredItems.Add("Carapace", 4);
			item50.RequiredItems.Add("LeatherSappedDO", 18);
			item50.RequiredItems.Add("LinenThread", 12);
			item50.RequiredUpgradeItems.Add("Carapace", 2);
			item50.RequiredUpgradeItems.Add("LeatherSappedDO", 8);
			item50.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item50.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Nocturne Arrow Helmet", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item50.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item51 = new Item("hunter_legacy", "ArmorNocturneArrowCapeDO");
			item51.Crafting.Add("HunterTableDO", 4);
			item51.RequiredItems.Add("Carapace", 4);
			item51.RequiredItems.Add("LeatherSappedDO", 12);
			item51.RequiredItems.Add("LinenThread", 18);
			item51.RequiredItems.Add("YggdrasilWood", 12);
			item51.RequiredUpgradeItems.Add("Carapace", 2);
			item51.RequiredUpgradeItems.Add("LeatherSappedDO", 6);
			item51.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item51.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Nocturne Arrow Cape", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item51.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item52 = new Item("hunter_legacy", "ArmorAshenExileChestDO");
			item52.Crafting.Add("HunterTableDO", 4);
			item52.RequiredItems.Add("FlametalNew", 6);
			item52.RequiredItems.Add("Eitr", 6);
			item52.RequiredItems.Add("LeatherCharredDO", 18);
			item52.RequiredItems.Add("LinenThread", 12);
			item52.RequiredUpgradeItems.Add("FlametalNew", 2);
			item52.RequiredUpgradeItems.Add("LeatherCharredDO", 4);
			item52.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item52.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Ashen Exile Chest", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item52.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item53 = new Item("hunter_legacy", "ArmorAshenExileLegsDO");
			item53.Crafting.Add("HunterTableDO", 4);
			item53.RequiredItems.Add("FlametalNew", 6);
			item53.RequiredItems.Add("Eitr", 6);
			item53.RequiredItems.Add("LeatherCharredDO", 18);
			item53.RequiredItems.Add("LinenThread", 12);
			item53.RequiredUpgradeItems.Add("FlametalNew", 2);
			item53.RequiredUpgradeItems.Add("LeatherCharredDO", 4);
			item53.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item53.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Ashen Exile Legs", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item53.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item54 = new Item("hunter_legacy", "ArmorAshenExileHelmetDO");
			item54.Crafting.Add("HunterTableDO", 4);
			item54.RequiredItems.Add("FlametalNew", 6);
			item54.RequiredItems.Add("Eitr", 6);
			item54.RequiredItems.Add("LeatherCharredDO", 18);
			item54.RequiredItems.Add("LinenThread", 12);
			item54.RequiredUpgradeItems.Add("FlametalNew", 2);
			item54.RequiredUpgradeItems.Add("LeatherCharredDO", 4);
			item54.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item54.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Ashen Exile Helmet", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item54.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item55 = new Item("hunter_legacy", "ArmorAshenExileCapeDO");
			item55.Crafting.Add("HunterTableDO", 4);
			item55.RequiredItems.Add("FlametalNew", 2);
			item55.RequiredItems.Add("LeatherCharredDO", 6);
			item55.RequiredItems.Add("LinenThread", 4);
			item55.RequiredItems.Add("Blackwood", 4);
			item55.RequiredUpgradeItems.Add("FlametalNew", 1);
			item55.RequiredUpgradeItems.Add("LeatherCharredDO", 3);
			item55.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item55.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Ashen Exile Quiver", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item55.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item56 = new Item("hunter_legacy", "ArmorAshenExileTrinketDO");
			item56.Crafting.Add("HunterTableDO", 4);
			item56.RequiredItems.Add("GemstoneRed", 1);
			item56.RequiredItems.Add("ProustitePowder", 20);
			item56.RequiredItems.Add("TrophyFallenValkyrie", 1);
			item56.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item56.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Ashen Exile Trinket", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item56.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item57 = new Item("hunter_legacy", "ArmorGraveMercenaryChestDO");
			item57.Crafting.Add("HunterTableDO", 1);
			item57.RequiredItems.Add("Iron", 6);
			item57.RequiredItems.Add("LeatherGreasedDO", 12);
			item57.RequiredItems.Add("CoarseThreadDO", 4);
			item57.RequiredUpgradeItems.Add("Iron", 3);
			item57.RequiredUpgradeItems.Add("LeatherGreasedDO", 3);
			item57.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item57.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Grave Mercenary Chest", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item57.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item58 = new Item("hunter_legacy", "ArmorGraveMercenaryLegsDO");
			item58.Crafting.Add("HunterTableDO", 1);
			item58.RequiredItems.Add("Iron", 6);
			item58.RequiredItems.Add("LeatherGreasedDO", 12);
			item58.RequiredItems.Add("CoarseThreadDO", 4);
			item58.RequiredUpgradeItems.Add("Iron", 3);
			item58.RequiredUpgradeItems.Add("LeatherGreasedDO", 3);
			item58.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item58.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Grave Mercenary Legs", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item58.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item59 = new Item("hunter_legacy", "ArmorGraveMercenaryHelmetDO");
			item59.Crafting.Add("HunterTableDO", 1);
			item59.RequiredItems.Add("Iron", 6);
			item59.RequiredItems.Add("LeatherGreasedDO", 12);
			item59.RequiredItems.Add("CoarseThreadDO", 4);
			item59.RequiredUpgradeItems.Add("Iron", 3);
			item59.RequiredUpgradeItems.Add("LeatherGreasedDO", 3);
			item59.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item59.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Grave Mercenary Helmet", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item59.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item60 = new Item("hunter_legacy", "ArmorGraveMercenaryCapeDO");
			item60.Crafting.Add("HunterTableDO", 1);
			item60.RequiredItems.Add("Iron", 2);
			item60.RequiredItems.Add("LeatherGreasedDO", 4);
			item60.RequiredItems.Add("CoarseThreadDO", 2);
			item60.RequiredUpgradeItems.Add("Iron", 2);
			item60.RequiredUpgradeItems.Add("LeatherGreasedDO", 2);
			item60.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item60.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Grave Mercenary Cape", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item60.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item61 = new Item("hunter_legacy", "ArmorDreadRenegadeChestDO");
			item61.Crafting.Add("HunterTableDO", 3);
			item61.RequiredItems.Add("BlackMetal", 8);
			item61.RequiredItems.Add("LeatherTarredDO", 16);
			item61.RequiredItems.Add("LinenThread", 6);
			item61.RequiredUpgradeItems.Add("BlackMetal", 3);
			item61.RequiredUpgradeItems.Add("LeatherTarredDO", 3);
			item61.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item61.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Dread Renegade Chest", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item61.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item62 = new Item("hunter_legacy", "ArmorDreadRenegadeLegsDO");
			item62.Crafting.Add("HunterTableDO", 3);
			item62.RequiredItems.Add("BlackMetal", 8);
			item62.RequiredItems.Add("LeatherTarredDO", 16);
			item62.RequiredItems.Add("LinenThread", 6);
			item62.RequiredUpgradeItems.Add("BlackMetal", 3);
			item62.RequiredUpgradeItems.Add("LeatherTarredDO", 3);
			item62.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item62.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Dread Renegade Legs", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item62.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item63 = new Item("hunter_legacy", "ArmorDreadRenegadeHelmetDO");
			item63.Crafting.Add("HunterTableDO", 3);
			item63.RequiredItems.Add("BlackMetal", 8);
			item63.RequiredItems.Add("LeatherTarredDO", 16);
			item63.RequiredItems.Add("LinenThread", 6);
			item63.RequiredUpgradeItems.Add("BlackMetal", 3);
			item63.RequiredUpgradeItems.Add("LeatherTarredDO", 3);
			item63.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item63.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Dread Renegade Helmet", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item63.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item64 = new Item("hunter_legacy", "ArmorDreadRenegadeCapeDO");
			item64.Crafting.Add("HunterTableDO", 3);
			item64.RequiredItems.Add("BlackMetal", 3);
			item64.RequiredItems.Add("LeatherTarredDO", 6);
			item64.RequiredItems.Add("LinenThread", 3);
			item64.RequiredUpgradeItems.Add("BlackMetal", 2);
			item64.RequiredUpgradeItems.Add("LeatherTarredDO", 2);
			item64.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item64.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Dread Renegade Cape", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item64.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item65 = new Item("hunter_legacy", "ArmorDemonHunterChestDO");
			item65.Crafting.Add("HunterTableDO", 4);
			item65.RequiredItems.Add("FlametalNew", 10);
			item65.RequiredItems.Add("Eitr", 6);
			item65.RequiredItems.Add("LeatherCharredDO", 18);
			item65.RequiredItems.Add("LinenThread", 8);
			item65.RequiredUpgradeItems.Add("FlametalNew", 3);
			item65.RequiredUpgradeItems.Add("LeatherCharredDO", 3);
			item65.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item65.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Demon Hunter Chest", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item65.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item66 = new Item("hunter_legacy", "ArmorDemonHunterLegsDO");
			item66.Crafting.Add("HunterTableDO", 4);
			item66.RequiredItems.Add("FlametalNew", 10);
			item66.RequiredItems.Add("Eitr", 6);
			item66.RequiredItems.Add("LeatherCharredDO", 18);
			item66.RequiredItems.Add("LinenThread", 8);
			item66.RequiredUpgradeItems.Add("FlametalNew", 3);
			item66.RequiredUpgradeItems.Add("LeatherCharredDO", 3);
			item66.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item66.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Demon Hunter Legs", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item66.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item67 = new Item("hunter_legacy", "ArmorDemonHunterHelmetDO");
			item67.Crafting.Add("HunterTableDO", 4);
			item67.RequiredItems.Add("FlametalNew", 10);
			item67.RequiredItems.Add("Eitr", 6);
			item67.RequiredItems.Add("LeatherCharredDO", 18);
			item67.RequiredItems.Add("LinenThread", 8);
			item67.RequiredUpgradeItems.Add("FlametalNew", 3);
			item67.RequiredUpgradeItems.Add("LeatherCharredDO", 3);
			item67.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item67.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Demon Hunter Helmet", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item67.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item68 = new Item("hunter_legacy", "ArmorDemonHunterCapeDO");
			item68.Crafting.Add("HunterTableDO", 4);
			item68.RequiredItems.Add("FlametalNew", 6);
			item68.RequiredItems.Add("Eitr", 2);
			item68.RequiredItems.Add("LeatherCharredDO", 12);
			item68.RequiredItems.Add("LinenThread", 4);
			item68.RequiredUpgradeItems.Add("FlametalNew", 2);
			item68.RequiredUpgradeItems.Add("LeatherCharredDO", 2);
			item68.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item68.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Demon Hunter Quiver", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item68.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item69 = new Item("hunter_legacy", "ArmorDemonHunterTrinketDO");
			item69.Crafting.Add("HunterTableDO", 4);
			item69.RequiredItems.Add("GemstoneRed", 2);
			item69.RequiredItems.Add("FlametalNew", 6);
			item69.RequiredItems.Add("Eitr", 12);
			item69.RequiredItems.Add("TrophyMorgen", 1);
			item69.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item69.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Demon Hunter Ring", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item69.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item70 = new Item("hunter_legacy", "ArmorSilentThornChestDO");
			item70.Crafting.Add("HunterTableDO", 1);
			item70.RequiredItems.Add("Bronze", 2);
			item70.RequiredItems.Add("LeatherResinedDO", 10);
			item70.RequiredItems.Add("CoarseThreadDO", 6);
			item70.RequiredUpgradeItems.Add("Bronze", 2);
			item70.RequiredUpgradeItems.Add("LeatherResinedDO", 6);
			item70.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item70.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Silent Thorn Chest", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item70.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item71 = new Item("hunter_legacy", "ArmorSilentThornLegsDO");
			item71.Crafting.Add("HunterTableDO", 1);
			item71.RequiredItems.Add("Bronze", 2);
			item71.RequiredItems.Add("LeatherResinedDO", 10);
			item71.RequiredItems.Add("CoarseThreadDO", 6);
			item71.RequiredUpgradeItems.Add("Bronze", 2);
			item71.RequiredUpgradeItems.Add("LeatherResinedDO", 6);
			item71.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item71.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Silent Thorn Legs", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item71.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item72 = new Item("hunter_legacy", "ArmorSilentThornHelmetDO");
			item72.Crafting.Add("HunterTableDO", 1);
			item72.RequiredItems.Add("Bronze", 2);
			item72.RequiredItems.Add("LeatherResinedDO", 10);
			item72.RequiredItems.Add("CoarseThreadDO", 6);
			item72.RequiredItems.Add("NeckTail", 4);
			item72.RequiredUpgradeItems.Add("Bronze", 2);
			item72.RequiredUpgradeItems.Add("LeatherResinedDO", 6);
			item72.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item72.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Silent Thorn Helmet", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item72.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item73 = new Item("hunter_legacy", "ArmorSnowTalonChestDO");
			item73.Crafting.Add("HunterTableDO", 2);
			item73.RequiredItems.Add("Silver", 3);
			item73.RequiredItems.Add("LeatherFrostedDO", 12);
			item73.RequiredItems.Add("CoarseThreadDO", 10);
			item73.RequiredUpgradeItems.Add("Silver", 2);
			item73.RequiredUpgradeItems.Add("LeatherFrostedDO", 5);
			item73.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item73.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Snow Talon Chest", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item73.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item74 = new Item("hunter_legacy", "ArmorSnowTalonLegsDO");
			item74.Crafting.Add("HunterTableDO", 2);
			item74.RequiredItems.Add("Silver", 3);
			item74.RequiredItems.Add("LeatherFrostedDO", 12);
			item74.RequiredItems.Add("CoarseThreadDO", 10);
			item74.RequiredUpgradeItems.Add("Silver", 2);
			item74.RequiredUpgradeItems.Add("LeatherFrostedDO", 5);
			item74.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item74.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Snow Talon Legs", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item74.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item75 = new Item("hunter_legacy", "ArmorSnowTalonHelmetDO");
			item75.Crafting.Add("HunterTableDO", 2);
			item75.RequiredItems.Add("Silver", 3);
			item75.RequiredItems.Add("LeatherFrostedDO", 12);
			item75.RequiredItems.Add("CoarseThreadDO", 10);
			item75.RequiredUpgradeItems.Add("Silver", 2);
			item75.RequiredUpgradeItems.Add("LeatherFrostedDO", 5);
			item75.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item75.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Snow Talon Helmet", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item75.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item76 = new Item("hunter_legacy", "ArmorSnowTalonCapeDO");
			item76.Crafting.Add("HunterTableDO", 2);
			item76.RequiredItems.Add("Silver", 3);
			item76.RequiredItems.Add("LeatherFrostedDO", 8);
			item76.RequiredItems.Add("CoarseThreadDO", 6);
			item76.RequiredUpgradeItems.Add("Silver", 1);
			item76.RequiredUpgradeItems.Add("LeatherFrostedDO", 4);
			item76.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item76.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Snow Talon Cape", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item76.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item77 = new Item("hunter_legacy", "ArmorNocturneBladeChestDO");
			item77.Crafting.Add("HunterTableDO", 4);
			item77.RequiredItems.Add("Carapace", 4);
			item77.RequiredItems.Add("Silver", 4);
			item77.RequiredItems.Add("LeatherSappedDO", 18);
			item77.RequiredItems.Add("LinenThread", 12);
			item77.RequiredUpgradeItems.Add("Silver", 3);
			item77.RequiredUpgradeItems.Add("LeatherSappedDO", 8);
			item77.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item77.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Nocturne Blade Chest", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item77.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item78 = new Item("hunter_legacy", "ArmorNocturneBladeLegsDO");
			item78.Crafting.Add("HunterTableDO", 4);
			item78.RequiredItems.Add("Carapace", 4);
			item78.RequiredItems.Add("Silver", 4);
			item78.RequiredItems.Add("LeatherSappedDO", 18);
			item78.RequiredItems.Add("LinenThread", 12);
			item78.RequiredUpgradeItems.Add("Silver", 3);
			item78.RequiredUpgradeItems.Add("LeatherSappedDO", 8);
			item78.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item78.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Nocturne Blade Legs", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item78.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item79 = new Item("hunter_legacy", "ArmorNocturneBladeHelmetDO");
			item79.Crafting.Add("HunterTableDO", 4);
			item79.RequiredItems.Add("Carapace", 4);
			item79.RequiredItems.Add("Silver", 4);
			item79.RequiredItems.Add("LeatherSappedDO", 18);
			item79.RequiredItems.Add("LinenThread", 12);
			item79.RequiredUpgradeItems.Add("Silver", 3);
			item79.RequiredUpgradeItems.Add("LeatherSappedDO", 8);
			item79.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item79.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Nocturne Blade Helmet", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item79.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item80 = new Item("hunter_legacy", "ArmorNocturneBladeCapeDO");
			item80.Crafting.Add("HunterTableDO", 4);
			item80.RequiredItems.Add("Carapace", 2);
			item80.RequiredItems.Add("Silver", 2);
			item80.RequiredItems.Add("LeatherSappedDO", 12);
			item80.RequiredItems.Add("LinenThread", 8);
			item80.RequiredUpgradeItems.Add("Silver", 2);
			item80.RequiredUpgradeItems.Add("LeatherSappedDO", 6);
			item80.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item80.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Nocturne Blade Cape", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item80.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item81 = new Item("hunter_legacy", "BowEvoCoreAshlandsBloodDO");
			item81.Crafting.Add("HunterTableDO", 4);
			item81.RequiredItems.Add("BowEvoCoreMistlandsDO", 1);
			item81.RequiredItems.Add("FlametalNew", 6);
			item81.RequiredItems.Add("GemstoneRed", 1);
			item81.RequiredUpgradeItems.Add("FlametalNew", 4);
			item81.RequiredUpgradeItems.Add("GemstoneRed", 1);
			item81.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item81.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Bow Evo Core Ashlands Blood", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item81.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item82 = new Item("hunter_legacy", "BowEvoCoreAshlandsNatureDO");
			item82.Crafting.Add("HunterTableDO", 4);
			item82.RequiredItems.Add("BowEvoCoreMistlandsDO", 1);
			item82.RequiredItems.Add("FlametalNew", 6);
			item82.RequiredItems.Add("GemstoneGreen", 1);
			item82.RequiredUpgradeItems.Add("FlametalNew", 4);
			item82.RequiredUpgradeItems.Add("GemstoneGreen", 1);
			item82.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item82.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Bow Evo Core Ashlands Nature", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item82.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item83 = new Item("hunter_legacy", "BowEvoCoreAshlandsLightningDO");
			item83.Crafting.Add("HunterTableDO", 4);
			item83.RequiredItems.Add("BowEvoCoreMistlandsDO", 1);
			item83.RequiredItems.Add("FlametalNew", 6);
			item83.RequiredItems.Add("GemstoneBlue", 1);
			item83.RequiredUpgradeItems.Add("FlametalNew", 4);
			item83.RequiredUpgradeItems.Add("GemstoneBlue", 1);
			item83.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item83.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Bow Evo Core Ashlands Lightning", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item83.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item84 = new Item("hunter_legacy", "BowEvoCoreMistlandsDO");
			item84.Crafting.Add("HunterTableDO", 4);
			item84.RequiredItems.Add("BowEvoCorePlainsDO", 1);
			item84.RequiredItems.Add("Carapace", 9);
			item84.RequiredItems.Add("YggdrasilWood", 9);
			item84.RequiredItems.Add("LeatherSappedDO", 3);
			item84.RequiredUpgradeItems.Add("Carapace", 3);
			item84.RequiredUpgradeItems.Add("YggdrasilWood", 3);
			item84.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item84.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Bow Evo Core Mistlands", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item84.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item85 = new Item("hunter_legacy", "BowEvoCorePlainsDO");
			item85.Crafting.Add("HunterTableDO", 3);
			item85.RequiredItems.Add("BowEvoCoreMountainDO", 1);
			item85.RequiredItems.Add("BlackMetal", 9);
			item85.RequiredItems.Add("FineWood", 9);
			item85.RequiredItems.Add("LeatherTarredDO", 3);
			item85.RequiredUpgradeItems.Add("BlackMetal", 3);
			item85.RequiredUpgradeItems.Add("FineWood", 3);
			item85.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item85.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Bow Evo Core Plains", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item85.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item86 = new Item("hunter_legacy", "BowEvoCoreMountainDO");
			item86.Crafting.Add("HunterTableDO", 2);
			item86.RequiredItems.Add("BowEvoCoreSwampDO", 1);
			item86.RequiredItems.Add("Silver", 9);
			item86.RequiredItems.Add("ElderBark", 9);
			item86.RequiredItems.Add("LeatherFrostedDO", 3);
			item86.RequiredUpgradeItems.Add("Silver", 3);
			item86.RequiredUpgradeItems.Add("ElderBark", 3);
			item86.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item86.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Bow Evo Core Mountain", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item86.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item87 = new Item("hunter_legacy", "BowEvoCoreSwampDO");
			item87.Crafting.Add("HunterTableDO", 1);
			item87.RequiredItems.Add("BowEvoCoreBlackforestDO", 1);
			item87.RequiredItems.Add("Iron", 9);
			item87.RequiredItems.Add("RoundLog", 9);
			item87.RequiredItems.Add("LeatherGreasedDO", 3);
			item87.RequiredUpgradeItems.Add("Iron", 3);
			item87.RequiredUpgradeItems.Add("RoundLog", 3);
			item87.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item87.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Bow Evo Core Swamp", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item87.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item88 = new Item("hunter_legacy", "BowEvoCoreBlackforestDO");
			item88.Crafting.Add("HunterTableDO", 1);
			item88.RequiredItems.Add("EternalBowstringDO", 1);
			item88.RequiredItems.Add("Bronze", 9);
			item88.RequiredItems.Add("Wood", 9);
			item88.RequiredItems.Add("LeatherResinedDO", 3);
			item88.RequiredUpgradeItems.Add("Bronze", 3);
			item88.RequiredUpgradeItems.Add("Wood", 3);
			item88.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item88.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Bow Evo Core Blackforest", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item88.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item89 = new Item("hunter_legacy", "CrossbowEvoCoreAshlandsBloodDO");
			item89.Crafting.Add("HunterTableDO", 4);
			item89.RequiredItems.Add("CrossbowEvoCoreMistlandsDO", 1);
			item89.RequiredItems.Add("FlametalNew", 6);
			item89.RequiredItems.Add("GemstoneRed", 1);
			item89.RequiredUpgradeItems.Add("FlametalNew", 4);
			item89.RequiredUpgradeItems.Add("GemstoneRed", 1);
			item89.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item89.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Crossbow Evo Core Ashlands Blood", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item89.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item90 = new Item("hunter_legacy", "CrossbowEvoCoreAshlandsNatureDO");
			item90.Crafting.Add("HunterTableDO", 4);
			item90.RequiredItems.Add("CrossbowEvoCoreMistlandsDO", 1);
			item90.RequiredItems.Add("FlametalNew", 6);
			item90.RequiredItems.Add("GemstoneGreen", 1);
			item90.RequiredUpgradeItems.Add("FlametalNew", 4);
			item90.RequiredUpgradeItems.Add("GemstoneGreen", 1);
			item90.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item90.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Crossbow Evo Core Ashlands Nature", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item90.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item91 = new Item("hunter_legacy", "CrossbowEvoCoreAshlandsLightningDO");
			item91.Crafting.Add("HunterTableDO", 4);
			item91.RequiredItems.Add("CrossbowEvoCoreMistlandsDO", 1);
			item91.RequiredItems.Add("FlametalNew", 6);
			item91.RequiredItems.Add("GemstoneBlue", 1);
			item91.RequiredUpgradeItems.Add("FlametalNew", 4);
			item91.RequiredUpgradeItems.Add("GemstoneBlue", 1);
			item91.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item91.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Crossbow Evo Core Ashlands Lightning", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item91.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item92 = new Item("hunter_legacy", "CrossbowEvoCoreMistlandsDO");
			item92.Crafting.Add("HunterTableDO", 4);
			item92.RequiredItems.Add("CrossbowEvoCorePlainsDO", 1);
			item92.RequiredItems.Add("Carapace", 9);
			item92.RequiredItems.Add("YggdrasilWood", 9);
			item92.RequiredItems.Add("LeatherSappedDO", 3);
			item92.RequiredUpgradeItems.Add("Carapace", 3);
			item92.RequiredUpgradeItems.Add("YggdrasilWood", 3);
			item92.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item92.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Crossbow Evo Core Mistlands", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item92.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item93 = new Item("hunter_legacy", "CrossbowEvoCorePlainsDO");
			item93.Crafting.Add("HunterTableDO", 3);
			item93.RequiredItems.Add("CrossbowEvoCoreMountainDO", 1);
			item93.RequiredItems.Add("BlackMetal", 9);
			item93.RequiredItems.Add("FineWood", 9);
			item93.RequiredItems.Add("LeatherTarredDO", 3);
			item93.RequiredUpgradeItems.Add("BlackMetal", 3);
			item93.RequiredUpgradeItems.Add("FineWood", 3);
			item93.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item93.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Crossbow Evo Core Plains", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item93.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item94 = new Item("hunter_legacy", "CrossbowEvoCoreMountainDO");
			item94.Crafting.Add("HunterTableDO", 2);
			item94.RequiredItems.Add("CrossbowEvoCoreSwampDO", 1);
			item94.RequiredItems.Add("Silver", 9);
			item94.RequiredItems.Add("ElderBark", 9);
			item94.RequiredItems.Add("LeatherFrostedDO", 3);
			item94.RequiredUpgradeItems.Add("Silver", 3);
			item94.RequiredUpgradeItems.Add("ElderBark", 3);
			item94.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item94.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Crossbow Evo Core Mountain", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item94.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item95 = new Item("hunter_legacy", "CrossbowEvoCoreSwampDO");
			item95.Crafting.Add("HunterTableDO", 1);
			item95.RequiredItems.Add("CrossbowEvoCoreBlackforestDO", 1);
			item95.RequiredItems.Add("Iron", 9);
			item95.RequiredItems.Add("RoundLog", 9);
			item95.RequiredItems.Add("LeatherGreasedDO", 3);
			item95.RequiredUpgradeItems.Add("Iron", 3);
			item95.RequiredUpgradeItems.Add("RoundLog", 3);
			item95.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item95.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Crossbow Evo Core Swamp", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item95.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item96 = new Item("hunter_legacy", "CrossbowEvoCoreBlackforestDO");
			item96.Crafting.Add("HunterTableDO", 1);
			item96.RequiredItems.Add("DrawLeverDO", 1);
			item96.RequiredItems.Add("Bronze", 9);
			item96.RequiredItems.Add("Wood", 9);
			item96.RequiredItems.Add("LeatherResinedDO", 3);
			item96.RequiredUpgradeItems.Add("Bronze", 3);
			item96.RequiredUpgradeItems.Add("Wood", 3);
			item96.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item96.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Crossbow Evo Core Blackforest", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item96.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item97 = new Item("hunter_legacy", "CrossbowEvoRenegadeMistlandsDO");
			item97.Crafting.Add("HunterTableDO", 4);
			item97.RequiredItems.Add("CrossbowEvoRenegadePlainsDO", 1);
			item97.RequiredItems.Add("Carapace", 9);
			item97.RequiredItems.Add("Eitr", 9);
			item97.RequiredItems.Add("LeatherSappedDO", 3);
			item97.RequiredUpgradeItems.Add("Carapace", 3);
			item97.RequiredUpgradeItems.Add("Eitr", 3);
			item97.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item97.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Crossbow Evo Renegade Mistlands", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item97.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item98 = new Item("hunter_legacy", "CrossbowEvoRenegadePlainsDO");
			item98.Crafting.Add("HunterTableDO", 3);
			item98.RequiredItems.Add("CrossbowEvoRenegadeMountainDO", 1);
			item98.RequiredItems.Add("BlackMetal", 9);
			item98.RequiredItems.Add("Needle", 9);
			item98.RequiredItems.Add("LeatherTarredDO", 3);
			item98.RequiredUpgradeItems.Add("BlackMetal", 3);
			item98.RequiredUpgradeItems.Add("Needle", 3);
			item98.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item98.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Crossbow Evo Renegade Plains", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item98.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item99 = new Item("hunter_legacy", "CrossbowEvoRenegadeMountainDO");
			item99.Crafting.Add("HunterTableDO", 2);
			item99.RequiredItems.Add("CrossbowEvoRenegadeSwampDO", 1);
			item99.RequiredItems.Add("Silver", 9);
			item99.RequiredItems.Add("Guck", 9);
			item99.RequiredItems.Add("LeatherFrostedDO", 3);
			item99.RequiredUpgradeItems.Add("Silver", 3);
			item99.RequiredUpgradeItems.Add("Guck", 3);
			item99.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item99.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Crossbow Evo Renegade Mountain", "IsRecipeEnabled", Toggle.On, "Determines if the recipe is enabled for this prefab");
			item99.RecipeIsActive = (ConfigEntryBase)(object)_recipeIsActiveConfig;
			Item item100 = new Item("hunter_legacy", "CrossbowEvoRenegadeSwampDO");
			item100.Crafting.Add("HunterTableDO", 1);
			item100.RequiredItems.Add("CrossbowEvoRenegadeBlackforestDO", 1);
			item100.RequiredItems.Add("Iron", 9);
			item100.RequiredItems.Add("RoundLog", 9);
			item100.RequiredItems.Add("LeatherGreasedDO", 3);
			item100.RequiredUpgradeItems.Add("Iron", 3);
			item100.RequiredUpgradeItems.Add("RoundLog", 3);
			item100.CraftAmount = 1;
			MaterialReplacer.RegisterGameObjectForShaderSwap(item100.Prefab, MaterialReplacer.ShaderType.UseUnityShader);
			_recipeIsActiveConfig = config("Crossbow Evo Renega