Decompiled source of Monstrum v1.6.1

Monstrum.dll

Decompiled 3 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.Permissions;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading;
using BepInEx;
using BepInEx.Bootstrap;
using BepInEx.Configuration;
using BepInEx.Logging;
using CreatureManager;
using HarmonyLib;
using ItemManager;
using JetBrains.Annotations;
using LocalizationManager;
using LocationManager;
using Microsoft.CodeAnalysis;
using MonoMod.RuntimeDetour;
using PieceManager;
using ServerSync;
using SoftReferenceableAssets;
using SoundMixManager;
using TMPro;
using UnityEngine;
using UnityEngine.Audio;
using UnityEngine.UI;
using UpgradeWorld;
using YamlDotNet.Core;
using YamlDotNet.Core.Events;
using YamlDotNet.Core.ObjectPool;
using YamlDotNet.Core.Tokens;
using YamlDotNet.Helpers;
using YamlDotNet.Serialization;
using YamlDotNet.Serialization.BufferedDeserialization;
using YamlDotNet.Serialization.BufferedDeserialization.TypeDiscriminators;
using YamlDotNet.Serialization.Callbacks;
using YamlDotNet.Serialization.Converters;
using YamlDotNet.Serialization.EventEmitters;
using YamlDotNet.Serialization.NamingConventions;
using YamlDotNet.Serialization.NodeDeserializers;
using YamlDotNet.Serialization.NodeTypeResolvers;
using YamlDotNet.Serialization.ObjectFactories;
using YamlDotNet.Serialization.ObjectGraphTraversalStrategies;
using YamlDotNet.Serialization.ObjectGraphVisitors;
using YamlDotNet.Serialization.Schemas;
using YamlDotNet.Serialization.TypeInspectors;
using YamlDotNet.Serialization.TypeResolvers;
using YamlDotNet.Serialization.Utilities;
using YamlDotNet.Serialization.ValueDeserializers;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: ComVisible(false)]
[assembly: Guid("E0E2F92E-557C-4A05-9D89-AA92A0BD75C4")]
[assembly: AssemblyFileVersion("1.6.1")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Therzie")]
[assembly: AssemblyProduct("Monstrum")]
[assembly: AssemblyCopyright("Copyright ©  2022")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyTitle("Monstrum")]
[assembly: AssemblyDescription("")]
[assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.6.1.0")]
[module: UnverifiableCode]
[module: RefSafetyRules(11)]
namespace Microsoft.CodeAnalysis
{
	[CompilerGenerated]
	[Embedded]
	internal sealed class EmbeddedAttribute : Attribute
	{
	}
}
namespace System.Runtime.CompilerServices
{
	[CompilerGenerated]
	[Embedded]
	[AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)]
	internal sealed class NullableAttribute : Attribute
	{
		public readonly byte[] NullableFlags;

		public NullableAttribute(byte P_0)
		{
			NullableFlags = new byte[1] { P_0 };
		}

		public NullableAttribute(byte[] P_0)
		{
			NullableFlags = P_0;
		}
	}
	[CompilerGenerated]
	[Embedded]
	[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)]
	internal sealed class NullableContextAttribute : Attribute
	{
		public readonly byte Flag;

		public NullableContextAttribute(byte P_0)
		{
			Flag = P_0;
		}
	}
	[CompilerGenerated]
	[Embedded]
	[AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)]
	internal sealed class RefSafetyRulesAttribute : Attribute
	{
		public readonly int Version;

		public RefSafetyRulesAttribute(int P_0)
		{
			Version = P_0;
		}
	}
}
namespace PieceManager
{
	internal static class PieceManagerCategorySync
	{
		private const string RegistryKey = "PieceManager.CategoryRegistry";

		private static Dictionary<string, int>? _registry;

		private static readonly Type PiecePrefabManagerType;

		private static readonly FieldInfo PieceCategoriesField;

		private static readonly FieldInfo CustomCategoryValuesField;

		private static readonly FieldInfo CustomCategoryNamesField;

		private static readonly FieldInfo OwnCategoryLabelsField;

		private static readonly MethodInfo GetCategoryTokenMethod;

		private const int CustomTagIdBase = 16777216;

		private static Dictionary<string, int> Registry
		{
			get
			{
				if (_registry != null)
				{
					return _registry;
				}
				if (AppDomain.CurrentDomain.GetData("PieceManager.CategoryRegistry") is Dictionary<string, int> registry)
				{
					_registry = registry;
				}
				else
				{
					_registry = new Dictionary<string, int>();
					AppDomain.CurrentDomain.SetData("PieceManager.CategoryRegistry", _registry);
				}
				return _registry;
			}
		}

		public static void Init()
		{
		}

		static PieceManagerCategorySync()
		{
			//IL_008d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0093: Expected O, but got Unknown
			//IL_00bb: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e3: Expected O, but got Unknown
			//IL_00e3: Expected O, but got Unknown
			//IL_0112: Unknown result type (might be due to invalid IL or missing references)
			//IL_0117: Unknown result type (might be due to invalid IL or missing references)
			//IL_012a: Expected O, but got Unknown
			//IL_0159: Unknown result type (might be due to invalid IL or missing references)
			//IL_015e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0171: Expected O, but got Unknown
			PiecePrefabManagerType = typeof(PiecePrefabManager);
			PieceCategoriesField = AccessTools.Field(PiecePrefabManagerType, "PieceCategories");
			CustomCategoryValuesField = AccessTools.Field(PiecePrefabManagerType, "customCategoryValues");
			CustomCategoryNamesField = AccessTools.Field(PiecePrefabManagerType, "customCategoryNames");
			OwnCategoryLabelsField = AccessTools.Field(PiecePrefabManagerType, "OwnCategoryLabels");
			GetCategoryTokenMethod = AccessTools.Method(PiecePrefabManagerType, "GetCategoryToken", new Type[1] { typeof(string) }, (Type[])null);
			Harmony val = new Harmony("org.bepinex.helpers.PieceManager.CategorySync");
			val.Patch((MethodBase)AccessTools.DeclaredMethod(PiecePrefabManagerType, "GetCategory", (Type[])null, (Type[])null), new HarmonyMethod(AccessTools.DeclaredMethod(typeof(PieceManagerCategorySync), "Prefix", (Type[])null, (Type[])null)), new HarmonyMethod(AccessTools.DeclaredMethod(typeof(PieceManagerCategorySync), "Postfix", (Type[])null, (Type[])null)), (HarmonyMethod)null, (HarmonyMethod)null, (HarmonyMethod)null);
			val.Patch((MethodBase)AccessTools.DeclaredMethod(typeof(ByUsagePieceList), "UpdateAvailableTags", (Type[])null, (Type[])null), (HarmonyMethod)null, new HarmonyMethod(AccessTools.DeclaredMethod(typeof(PieceManagerCategorySync), "DedupAvailableTags", (Type[])null, (Type[])null))
			{
				priority = -1000
			}, (HarmonyMethod)null, (HarmonyMethod)null, (HarmonyMethod)null);
			val.Patch((MethodBase)AccessTools.DeclaredMethod(typeof(ByUsagePieceList), "GetAvailablePiecesWithTag", (Type[])null, (Type[])null), (HarmonyMethod)null, new HarmonyMethod(AccessTools.DeclaredMethod(typeof(PieceManagerCategorySync), "DedupAvailablePiecesWithTag", (Type[])null, (Type[])null))
			{
				priority = -1000
			}, (HarmonyMethod)null, (HarmonyMethod)null, (HarmonyMethod)null);
		}

		private static bool Prefix(string name, ref PieceCategory __result)
		{
			//IL_0048: Unknown result type (might be due to invalid IL or missing references)
			//IL_004b: Unknown result type (might be due to invalid IL or missing references)
			//IL_006a: Unknown result type (might be due to invalid IL or missing references)
			//IL_00cc: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ee: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f0: Expected I4, but got Unknown
			if (!Registry.TryGetValue(name, out var value))
			{
				return true;
			}
			Dictionary<string, PieceCategory> dictionary = (Dictionary<string, PieceCategory>)PieceCategoriesField.GetValue(null);
			if (dictionary.ContainsKey(name))
			{
				return true;
			}
			PieceCategory val = (dictionary[name] = (PieceCategory)value);
			PieceCategory[] array = (PieceCategory[])CustomCategoryValuesField.GetValue(null);
			CustomCategoryValuesField.SetValue(null, AddToArray(array, val));
			string[] array2 = (string[])CustomCategoryNamesField.GetValue(null);
			CustomCategoryNamesField.SetValue(null, AddToArray(array2, name));
			string text = (string)GetCategoryTokenMethod.Invoke(null, new object[1] { name });
			Dictionary<PieceCategory, string> dictionary2 = (Dictionary<PieceCategory, string>)OwnCategoryLabelsField.GetValue(null);
			dictionary2[val] = "$" + text;
			Localization.instance.AddWord(text, name);
			__result = (PieceCategory)(int)val;
			return false;
		}

		private static void Postfix(string name, PieceCategory __result)
		{
			//IL_0037: Unknown result type (might be due to invalid IL or missing references)
			//IL_003d: Expected I4, but got Unknown
			Dictionary<string, PieceCategory> dictionary = (Dictionary<string, PieceCategory>)PieceCategoriesField.GetValue(null);
			if (dictionary.ContainsKey(name) && !Registry.ContainsKey(name))
			{
				Registry[name] = (int)__result;
			}
		}

		private static void DedupAvailableTags(ByUsagePieceList __instance)
		{
			if (Registry.Count == 0)
			{
				return;
			}
			HashSet<int> hashSet = new HashSet<int>();
			foreach (int value in Registry.Values)
			{
				hashSet.Add(16777216 + value);
			}
			List<int> availableTags = __instance.m_availableTags;
			HashSet<int> hashSet2 = new HashSet<int>();
			for (int num = availableTags.Count - 1; num >= 0; num--)
			{
				int item = availableTags[num];
				if (hashSet.Contains(item) && !hashSet2.Add(item))
				{
					availableTags.RemoveAt(num);
				}
			}
		}

		private static void DedupAvailablePiecesWithTag(int tagId, IList<Piece> resultOut)
		{
			if (tagId < 16777216)
			{
				return;
			}
			int num = tagId - 16777216;
			bool flag = false;
			foreach (int value in Registry.Values)
			{
				if (value == num)
				{
					flag = true;
					break;
				}
			}
			if (!flag)
			{
				return;
			}
			HashSet<Piece> hashSet = new HashSet<Piece>();
			for (int num2 = resultOut.Count - 1; num2 >= 0; num2--)
			{
				if (!hashSet.Add(resultOut[num2]))
				{
					resultOut.RemoveAt(num2);
				}
			}
		}

		private static T[] AddToArray<T>(T[] array, T item)
		{
			T[] array2 = new T[array.Length + 1];
			Array.Copy(array, array2, array.Length);
			array2[^1] = item;
			return array2;
		}
	}
}
namespace UpgradeWorld
{
	public class Register
	{
		public string name = "";

		public string description = "";

		public string[] commands = new string[0];

		public void AddCommand()
		{
			//IL_0014: Unknown result type (might be due to invalid IL or missing references)
			//IL_0028: Expected O, but got Unknown
			//IL_0023: Unknown result type (might be due to invalid IL or missing references)
			new ConsoleCommand(name, description, (ConsoleEvent)delegate(ConsoleEventArgs args)
			{
				string[] array = commands;
				foreach (string text in array)
				{
					args.Context.TryRunCommand(text, false, false);
				}
			}, false, false, false, false, false, false, (ConsoleOptionsFetcher)null, false, false, false);
		}
	}
	[HarmonyPatch(typeof(Terminal), "InitTerminal")]
	public static class Upgrade
	{
		private static List<Register> registers = new List<Register>();

		public const string GUID = "upgrade_world";

		private static void Postfix()
		{
			foreach (Register register in registers)
			{
				register.AddCommand();
			}
		}

		public static void Register(string name, string description, params string[] commands)
		{
			if (Chainloader.PluginInfos.ContainsKey("upgrade_world"))
			{
				registers.Add(new Register
				{
					name = name,
					description = description,
					commands = commands
				});
			}
		}
	}
}
namespace Monstrum
{
	[BepInDependency("Therzie.Warfare", "1.9.3")]
	[BepInPlugin("Therzie.Monstrum", "Monstrum", "1.6.1")]
	public class MonstrumPlugin : BaseUnityPlugin
	{
		public enum Toggle
		{
			On = 1,
			Off = 0
		}

		[HarmonyPatch(typeof(Player), "CanConsumeItem")]
		private static class PlayerConsumeItemPatchMonstrum
		{
			private static HashSet<string> prefabNamesToCheck = new HashSet<string> { "CookedSharkMeat_TW", "SharkFinSoup_TW" };

			private static void Postfix(Player __instance, ItemData item, ref bool __result)
			{
				//IL_0036: Unknown result type (might be due to invalid IL or missing references)
				//IL_003c: Invalid comparison between Unknown and I4
				if (item == null || item.m_shared == null || (Object)(object)item.m_dropPrefab == (Object)null || (int)item.m_shared.m_itemType != 2 || ((double)item.m_shared.m_food > 0.0 && !__instance.CanEat(item, true)))
				{
					return;
				}
				string prefabName = Utils.GetPrefabName(item.m_dropPrefab);
				if (Object.op_Implicit((Object)(object)item.m_shared.m_consumeStatusEffect))
				{
					StatusEffect consumeStatusEffect = item.m_shared.m_consumeStatusEffect;
					if ((((Character)__instance).m_seman.HaveStatusEffect(StringExtensionMethods.GetStableHashCode(((Object)item.m_shared.m_consumeStatusEffect).name)) || ((Character)__instance).m_seman.HaveStatusEffectCategory(consumeStatusEffect.m_category)) && prefabNamesToCheck.Contains(prefabName))
					{
						((Character)__instance).m_seman.RemoveStatusEffect(consumeStatusEffect, true);
						__result = true;
					}
				}
			}
		}

		private class ConfigurationManagerAttributes
		{
			public bool? Browsable = false;
		}

		private class AcceptableShortcuts : AcceptableValueBase
		{
			public AcceptableShortcuts()
				: base(typeof(KeyboardShortcut))
			{
			}

			public override object Clamp(object value)
			{
				return value;
			}

			public override bool IsValid(object value)
			{
				return true;
			}

			public override string ToDescriptionString()
			{
				return "# Acceptable values: " + string.Join(", ", KeyboardShortcut.AllKeyCodes);
			}
		}

		internal const string ModName = "Monstrum";

		internal const string ModVersion = "1.6.1";

		internal const string Author = "Therzie";

		private const string ModGUID = "Therzie.Monstrum";

		private static string ConfigFileName = "Therzie.Monstrum.cfg";

		private static string ConfigFileFullPath = Paths.ConfigPath + Path.DirectorySeparatorChar + ConfigFileName;

		internal static string ConnectionError = "";

		private readonly Harmony _harmony = new Harmony("Therzie.Monstrum");

		public static readonly ManualLogSource MonstrumLogger = Logger.CreateLogSource("Monstrum");

		private static readonly ConfigSync ConfigSync = new ConfigSync("Therzie.Monstrum")
		{
			DisplayName = "Monstrum",
			CurrentVersion = "1.6.1",
			MinimumRequiredVersion = "1.6.1",
			ModRequired = true
		};

		internal static Dictionary<GameObject, GameObject> racks = new Dictionary<GameObject, GameObject>();

		internal static Dictionary<GameObject, GameObject> smallracks = new Dictionary<GameObject, GameObject>();

		internal static Dictionary<GameObject, GameObject> fastracks = new Dictionary<GameObject, GameObject>();

		internal static Dictionary<GameObject, GameObject> smallfastracks = new Dictionary<GameObject, GameObject>();

		internal static Dictionary<GameObject, GameObject> ovens = new Dictionary<GameObject, GameObject>();

		internal static Dictionary<GameObject, GameObject> fermenters = new Dictionary<GameObject, GameObject>();

		private DateTime _lastReloadTime;

		private const long RELOAD_DELAY = 10000000L;

		private static ConfigEntry<Toggle> _serverConfigLocked = null;

		public void Awake()
		{
			//IL_0857: Unknown result type (might be due to invalid IL or missing references)
			//IL_0895: Unknown result type (might be due to invalid IL or missing references)
			//IL_0902: Unknown result type (might be due to invalid IL or missing references)
			//IL_0940: Unknown result type (might be due to invalid IL or missing references)
			//IL_09ad: Unknown result type (might be due to invalid IL or missing references)
			//IL_09eb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0aa6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ae4: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b51: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b8f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c32: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c70: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f0a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f61: Unknown result type (might be due to invalid IL or missing references)
			//IL_1177: Unknown result type (might be due to invalid IL or missing references)
			//IL_1a4f: Unknown result type (might be due to invalid IL or missing references)
			//IL_1c05: Unknown result type (might be due to invalid IL or missing references)
			//IL_1c5c: Unknown result type (might be due to invalid IL or missing references)
			//IL_2489: Unknown result type (might be due to invalid IL or missing references)
			//IL_2710: Unknown result type (might be due to invalid IL or missing references)
			//IL_275f: Unknown result type (might be due to invalid IL or missing references)
			//IL_2982: Unknown result type (might be due to invalid IL or missing references)
			//IL_29da: Unknown result type (might be due to invalid IL or missing references)
			//IL_2c6e: Unknown result type (might be due to invalid IL or missing references)
			Localizer.Load();
			AudioMixerFix.Init(MonstrumLogger);
			PieceManagerCategorySync.Init();
			_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);
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_SawDust_TM");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_Place_wood_pole_TM");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_metal_blocked_TM");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_build_hammer_default_TM");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_build_hammer_metal_TM");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_wood_destroyed_TM");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_cavedoor_open_TW");
			SvaltStuff.SetAsSvaltDoor(ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "SvaltBossDoor"));
			BuildPiece buildPiece = new BuildPiece("monsters", "rug_Fox_TW");
			buildPiece.Category.Set("Warfare");
			buildPiece.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece.Name.English("Fox rug");
			buildPiece.Description.English("");
			buildPiece.RequiredItems.Add("FoxPelt_TW", 5, recover: true);
			buildPiece.RequiredItems.Add("TrophyFox_TW", 1, recover: true);
			BuildPiece buildPiece2 = new BuildPiece("monsters", "rug_Rotten_TW");
			buildPiece2.Category.Set("Warfare");
			buildPiece2.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece2.RequiredItems.Add("RottenPelt_TW", 6, recover: true);
			buildPiece2.RequiredItems.Add("TrophyRottingElk_TW", 1, recover: true);
			BuildPiece buildPiece3 = new BuildPiece("monsters", "rug_GrizzlyBear_TW");
			buildPiece3.Category.Set("Warfare");
			buildPiece3.Crafting.Set(PieceManager.CraftingTable.Workbench);
			buildPiece3.Name.English("Grizzly rug");
			buildPiece3.Description.English("");
			buildPiece3.RequiredItems.Add("GrizzlyBearPelt_TW", 6, recover: true);
			buildPiece3.RequiredItems.Add("TrophyGrizzlyBear_TW", 1, recover: true);
			Item item = new Item("monsters", "RottingElkMeat_TW");
			item.Configurable = Configurability.Recipe;
			Item item2 = new Item("monsters", "SaddleBoar_TW");
			item2.Configurable = Configurability.Recipe;
			item2.Crafting.Add(ItemManager.CraftingTable.Workbench, 3);
			item2.RequiredItems.Add("RazorbackLeather_TW", 12);
			item2.RequiredItems.Add("RazorbackTusk_TW", 4);
			item2.RequiredItems.Add("TrophyRazorback_TW", 1);
			Item item3 = new Item("monsters", "SaddleBear_TW");
			item3.Configurable = Configurability.Recipe;
			item3.Crafting.Add(ItemManager.CraftingTable.Workbench, 3);
			item3.RequiredItems.Add("GrizzlyBearPelt_TW", 6);
			item3.RequiredItems.Add("WolfFang", 4);
			item3.RequiredItems.Add("TrophyGrizzlyBear_TW", 1);
			Item item4 = new Item("monsters", "SaddleProwler_TW");
			item4.Configurable = Configurability.Recipe;
			item4.Crafting.Add(ItemManager.CraftingTable.Workbench, 4);
			item4.RequiredItems.Add("ProwlerFang_TW", 4);
			item4.RequiredItems.Add("LoxPelt", 4);
			item4.RequiredItems.Add("TrophyProwler_TW", 1);
			Item item5 = new Item("monsters", "FoxMeat_TW");
			item5.Configurable = Configurability.Recipe;
			Item item6 = new Item("monsters", "CookedFoxMeat_TW");
			item6.Configurable = Configurability.Recipe;
			smallfastracks.Add(item5.Prefab, item6.Prefab);
			fastracks.Add(item5.Prefab, item6.Prefab);
			Item item7 = new Item("monsters", "FoxJerky_TW");
			item7.Configurable = Configurability.Recipe;
			item7.Crafting.Add(ItemManager.CraftingTable.Cauldron, 1);
			item7.RequiredItems.Add("FoxMeat_TW", 1);
			item7.RequiredItems.Add("Honey", 1);
			item7.CraftAmount = 2;
			Item item8 = new Item("monsters", "BearSteak_TW");
			item8.Configurable = Configurability.Recipe;
			Item item9 = new Item("monsters", "CookedBearSteak_TW");
			item9.Configurable = Configurability.Recipe;
			smallfastracks.Add(item8.Prefab, item9.Prefab);
			fastracks.Add(item8.Prefab, item9.Prefab);
			Item item10 = new Item("monsters", "BearJerky_TW");
			item10.Configurable = Configurability.Recipe;
			item10.Crafting.Add(ItemManager.CraftingTable.Cauldron, 1);
			item10.RequiredItems.Add("BjornMeat", 1);
			item10.RequiredItems.Add("Honey", 1);
			item10.CraftAmount = 2;
			Item item11 = new Item("monsters", "MixedGrill_TW");
			item11.Configurable = Configurability.Recipe;
			item11.Crafting.Add(ItemManager.CraftingTable.Cauldron, 2);
			item11.RequiredItems.Add("BearSteak_TW", 1);
			item11.RequiredItems.Add("Sausages", 1);
			item11.RequiredItems.Add("WolfMeat", 1);
			item11.RequiredItems.Add("FoxMeat_TW", 1);
			item11.CraftAmount = 3;
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_Place_chest_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_build_hammer_wood_TM");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_treasurechest_destroyed_TM");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_bones_pick_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_bones_pick_TW");
			Item item12 = new Item("monsters", "TrophyProwler_TW");
			item12.Configurable = Configurability.Recipe;
			Item item13 = new Item("monsters", "TrophyGrizzlyBear_TW");
			item13.Configurable = Configurability.Recipe;
			Item item14 = new Item("monsters", "TrophyObsidianGolem_TW");
			item14.Configurable = Configurability.Recipe;
			Item item15 = new Item("monsters", "TrophyRazorback_TW");
			item15.Configurable = Configurability.Recipe;
			Item item16 = new Item("monsters", "TrophyCrawler_TW");
			item16.Configurable = Configurability.Recipe;
			Item item17 = new Item("monsters", "TrophyRottingElk_TW");
			item17.Configurable = Configurability.Recipe;
			Item item18 = new Item("monsters", "TrophyFox_TW");
			item18.Configurable = Configurability.Recipe;
			Item item19 = new Item("monsters", "TrophyAsmodeus_TW");
			item19.Configurable = Configurability.Recipe;
			Item item20 = new Item("monsters", "TrophySvalt_TW");
			item20.Configurable = Configurability.Recipe;
			Item item21 = new Item("monsters", "TrophyVrykolathas_TW");
			item21.Configurable = Configurability.Recipe;
			Item item22 = new Item("monsters", "FoxPelt_TW");
			item22.Configurable = Configurability.Recipe;
			Location location = new Location("monsters", "AltarAsmodeus_TW");
			location.CanSpawn = true;
			location.SpawnArea = (BiomeArea)2;
			location.Prioritize = true;
			location.PreferCenter = false;
			location.Rotation = Rotation.Random;
			location.HeightDelta = new LocationManager.Range(0f, 8f);
			location.SnapToWater = false;
			location.Biome = (Biome)1;
			location.SpawnAltitude = new LocationManager.Range(5f, 1000f);
			location.MinimumDistanceFromGroup = 2000f;
			location.GroupName = "altarasmodeus";
			location.Count = 10;
			location.ClearArea = true;
			location.Unique = false;
			Location location2 = new Location("monsters", "Vegvisir_location_Asmodeus_TW");
			location2.CanSpawn = true;
			location2.SpawnArea = (BiomeArea)3;
			location2.Prioritize = true;
			location2.PreferCenter = false;
			location2.Rotation = Rotation.Random;
			location2.HeightDelta = new LocationManager.Range(0f, 8f);
			location2.SnapToWater = false;
			location2.Biome = (Biome)1;
			location2.SpawnAltitude = new LocationManager.Range(5f, 1000f);
			location2.MinimumDistanceFromGroup = 1500f;
			location2.GroupName = "vegvisirasmodeus";
			location2.Count = 15;
			location2.ClearArea = true;
			location2.Unique = false;
			Location location3 = new Location("monsters", "AltarSvalt_TW");
			location3.CanSpawn = true;
			location3.SpawnArea = (BiomeArea)2;
			location3.Prioritize = true;
			location3.PreferCenter = false;
			location3.Rotation = Rotation.Random;
			location3.HeightDelta = new LocationManager.Range(0f, 15f);
			location3.SnapToWater = false;
			location3.Biome = (Biome)8;
			location3.SpawnAltitude = new LocationManager.Range(5f, 1000f);
			location3.MinimumDistanceFromGroup = 1500f;
			location3.GroupName = "altarsvalt";
			location3.Count = 15;
			location3.ClearArea = true;
			location3.Unique = false;
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "GDAncientShamanSpawner");
			((Component)ItemManager.PrefabManager.RegisterAssetBundle("monsters").LoadAsset<GameObject>("AltarSvalt_TW").transform.Find("SvaltBossDoor")).gameObject.AddComponent<SvaltStuff.SvaltDoorComponent>();
			Location location4 = new Location("monsters", "Vegvisir_location_Svalt_TW");
			location4.CanSpawn = true;
			location4.SpawnArea = (BiomeArea)3;
			location4.Prioritize = true;
			location4.PreferCenter = false;
			location4.Rotation = Rotation.Random;
			location4.HeightDelta = new LocationManager.Range(0f, 8f);
			location4.SnapToWater = false;
			location4.Biome = (Biome)8;
			location4.SpawnAltitude = new LocationManager.Range(3f, 1000f);
			location4.MinimumDistanceFromGroup = 1000f;
			location4.GroupName = "altarsvalt";
			location4.Count = 12;
			location4.ClearArea = true;
			location4.Unique = false;
			Location location5 = new Location("monsters", "AltarVrykolathas_TW");
			location5.CanSpawn = true;
			location5.SpawnArea = (BiomeArea)2;
			location5.Prioritize = true;
			location5.PreferCenter = false;
			location5.Rotation = Rotation.Random;
			location5.HeightDelta = new LocationManager.Range(0f, 15f);
			location5.SnapToWater = false;
			location5.Biome = (Biome)2;
			location5.SpawnAltitude = new LocationManager.Range(0f, 1000f);
			location5.MinimumDistanceFromGroup = 1500f;
			location5.GroupName = "altarvrykolathas";
			location5.Count = 12;
			location5.ClearArea = true;
			location5.Unique = false;
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "Spawner_Hellwraith_1");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "Spawner_Hellwraith_2");
			Location location6 = new Location("monsters", "Vegvisir_location_Vrykolathas_TW");
			location6.CanSpawn = true;
			location6.SpawnArea = (BiomeArea)3;
			location6.Prioritize = true;
			location6.PreferCenter = true;
			location6.Rotation = Rotation.Random;
			location6.HeightDelta = new LocationManager.Range(0f, 2f);
			location6.SnapToWater = false;
			location6.Biome = (Biome)2;
			location6.SpawnAltitude = new LocationManager.Range(3f, 1000f);
			location6.MinimumDistanceFromGroup = 1000f;
			location6.GroupName = "altarvrykolathas";
			location6.Count = 12;
			location6.ClearArea = true;
			location6.Unique = false;
			Creature creature = new Creature("monsters", "BossAsmodeus_TW");
			creature.Drops["KnifeViper_TW"].Amount = new CreatureManager.Range(1f, 1f);
			creature.Drops["KnifeViper_TW"].DropChance = 6f;
			creature.Drops["KnifeViper_TW"].MultiplyDropByLevel = false;
			creature.Drops["TrophyAsmodeus_TW"].Amount = new CreatureManager.Range(1f, 1f);
			creature.Drops["TrophyAsmodeus_TW"].DropChance = 100f;
			creature.Drops["TrophyAsmodeus_TW"].MultiplyDropByLevel = false;
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItemBossAsmodeus_Bite", addToObjectDb: true);
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItemBossAsmodeus_BiteJump", addToObjectDb: true);
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItemBossAsmodeus_SpitAttack", addToObjectDb: true);
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItemBossAsmodeusRagdoll_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "BossAsmodeus_poisonexplosion_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "BossAsmodeus_projectile_TW");
			Creature creature2 = new Creature("monsters", "Fox_TW");
			creature2.CanBeTamed = true;
			creature2.FoodItems = "NeckTail, BearSteak_TW, FishRaw, DeerMeat, RawMeat";
			creature2.Drops["FoxMeat_TW"].Amount = new CreatureManager.Range(1f, 1f);
			creature2.Drops["FoxMeat_TW"].DropChance = 100f;
			creature2.Drops["FoxPelt_TW"].Amount = new CreatureManager.Range(1f, 1f);
			creature2.Drops["FoxPelt_TW"].DropChance = 100f;
			creature2.Drops["TrophyFox_TW"].DropChance = 22f;
			creature2.Drops["TrophyFox_TW"].MultiplyDropByLevel = false;
			Creature.Spawner spawner = new Creature.Spawner(creature2);
			spawner.Biome = (Biome)1;
			spawner.SpecificSpawnTime = SpawnTime.Day;
			spawner.GroupSize = new CreatureManager.Range(1f, 1f);
			spawner.CheckSpawnInterval = 600;
			spawner.SpawnChance = 16f;
			spawner.CanHaveStars = false;
			spawner.Maximum = 1;
			Creature.Spawner spawner2 = new Creature.Spawner(creature2);
			spawner2.Biome = (Biome)1;
			spawner2.SpecificSpawnTime = SpawnTime.Night;
			spawner2.GroupSize = new CreatureManager.Range(1f, 1f);
			spawner2.CheckSpawnInterval = 600;
			spawner2.SpawnChance = 20f;
			spawner2.CanHaveStars = true;
			spawner2.Maximum = 1;
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItem_fox_attack1", addToObjectDb: true);
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItem_fox_attack2", addToObjectDb: true);
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItemFoxRagdoll_TW");
			new Creature("monsters", "FoxCub_TW").Drops["Wood"].DropChance = 0f;
			Creature creature3 = new Creature("monsters", "Razorback_TW");
			creature3.CanBeTamed = true;
			creature3.FoodItems = "Turnip, Carrot, Onion, Mushroom, Raspberry, Blueberries, MushroomYellow, RawMeat";
			creature3.Drops["RawMeat"].Amount = new CreatureManager.Range(1f, 1f);
			creature3.Drops["RawMeat"].DropChance = 90f;
			creature3.Drops["RazorbackLeather_TW"].Amount = new CreatureManager.Range(1f, 1f);
			creature3.Drops["RazorbackLeather_TW"].DropChance = 100f;
			creature3.Drops["RazorbackTusk_TW"].Amount = new CreatureManager.Range(1f, 2f);
			creature3.Drops["RazorbackTusk_TW"].DropChance = 70f;
			creature3.Drops["TrophyRazorback_TW"].Amount = new CreatureManager.Range(1f, 1f);
			creature3.Drops["TrophyRazorback_TW"].DropChance = 18f;
			creature3.Drops["TrophyRazorback_TW"].MultiplyDropByLevel = false;
			Creature.Spawner spawner3 = new Creature.Spawner(creature3);
			spawner3.Biome = (Biome)8;
			spawner3.GroupSize = new CreatureManager.Range(1f, 2f);
			spawner3.CheckSpawnInterval = 750;
			spawner3.SpawnChance = 18f;
			spawner3.Maximum = 2;
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItem_hog_base_attack", addToObjectDb: true);
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItem_hog_charge_attack", addToObjectDb: true);
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItem_hog_jump_attack", addToObjectDb: true);
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItemRazorbackRagdoll_TW");
			new Creature("monsters", "RazorbackPiggy_TW").Drops["Wood"].DropChance = 0f;
			Creature creature4 = new Creature("monsters", "BossSvalt_TW");
			creature4.Drops["DualAxeDemonic_TW"].Amount = new CreatureManager.Range(1f, 1f);
			creature4.Drops["DualAxeDemonic_TW"].DropChance = 7f;
			creature4.Drops["DualAxeDemonic_TW"].MultiplyDropByLevel = false;
			creature4.Drops["TrophySvalt_TW"].Amount = new CreatureManager.Range(1f, 1f);
			creature4.Drops["TrophySvalt_TW"].DropChance = 100f;
			creature4.Drops["TrophySvalt_TW"].MultiplyDropByLevel = false;
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItemBossSvalt_antlerattack", addToObjectDb: true);
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItemBossSvalt_bite", addToObjectDb: true);
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItemBossSvalt_attackslap", addToObjectDb: true);
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItemBossSvalt_bitegrab", addToObjectDb: true);
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItemBossSvalt_Summon", addToObjectDb: true);
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItemBossSvalt_SummonProjectile");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItemBossSvalt_Summon_Skeleton");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItemBossSvalt_taunt", addToObjectDb: true);
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItemBossSvalt_ragdoll_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_summon_svalt_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_wendigo_alerted_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_wendigo_attack_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_wendigo_dead_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_wendigo_hit_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_wendigo_idle_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_wendigo_summon_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_wendigo_taunt_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_svaltdoor_close_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_svaltdoor_open_TW");
			new Creature("monsters", "BurningHunger_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItemBurningHungerSpell", addToObjectDb: true);
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItemBurningHungerNova", addToObjectDb: true);
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItemBurningHungerAOE");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "BurningHunger_fireburn_AOE_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "BurningHunger_projectile_fireball_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "fx_burninghands_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "fx_burninghungerspawn_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "fx_burninghunger_fireball_expl_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_summonfire_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_firenova_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_skeleton_big_death_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_skeleton_hit_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_burninghunger_dead_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_burninghunger_hit_TW");
			new Creature("monsters", "GDAncientShaman_TW");
			new Creature("monsters", "GDAncientShaman_rootspawn_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItemRoot_SlapAttack", addToObjectDb: true);
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItemRoot_RockThrow", addToObjectDb: true);
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItemGDAncientShaman_SummonProjectile");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItemGDAncientShaman_rootshoot", addToObjectDb: true);
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItemGDAncientShaman_summonroot", addToObjectDb: true);
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItemGDAncientShaman_attackslap", addToObjectDb: true);
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItemGDAncientShaman_rootprojectile");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItemGDAncientShaman_rootspawn");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItemGDAncientShaman_ragdoll");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_GDancientshaman_death_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_GDAncientshaman_hit_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_ancientshaman_rootspawn_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_GDAncientShaman_spawnroot_TM");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_root_hit_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_root_projectile_hit_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "fx_root_dead_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "fx_rootspawn_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_root_projectile_hit_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_root_trail_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_root_attack_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "Root_projectile_TW");
			Creature creature5 = new Creature("monsters", "RottingElk_TW");
			creature5.RequiredAltitude = new CreatureManager.Range(-1000f, 5f);
			creature5.Drops["RottenPelt_TW"].Amount = new CreatureManager.Range(1f, 1f);
			creature5.Drops["RottenPelt_TW"].DropChance = 100f;
			creature5.Drops["Guck"].Amount = new CreatureManager.Range(1f, 1f);
			creature5.Drops["Guck"].DropChance = 30f;
			creature5.Drops["RottingElkMeat_TW"].Amount = new CreatureManager.Range(1f, 1f);
			creature5.Drops["RottingElkMeat_TW"].DropChance = 25f;
			creature5.Drops["TrophyRottingElk_TW"].Amount = new CreatureManager.Range(1f, 1f);
			creature5.Drops["TrophyRottingElk_TW"].DropChance = 18f;
			creature5.Drops["TrophyRottingElk_TW"].MultiplyDropByLevel = false;
			Creature.Spawner spawner4 = new Creature.Spawner(creature5);
			spawner4.Biome = (Biome)2;
			spawner4.GroupSize = new CreatureManager.Range(1f, 1f);
			spawner4.CheckSpawnInterval = 800;
			spawner4.SpawnChance = 25f;
			spawner4.Maximum = 1;
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItemElk_attack1");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItemElk_attack2");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItemElk_attack3");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItemRottingElk_ragdoll_TW");
			Creature creature6 = new Creature("monsters", "Crawler_TW");
			creature6.RequiredAltitude = new CreatureManager.Range(0f, 100f);
			creature6.Drops["WitheredBone"].Amount = new CreatureManager.Range(1f, 1f);
			creature6.Drops["WitheredBone"].DropChance = 45f;
			creature6.Drops["Guck"].Amount = new CreatureManager.Range(1f, 1f);
			creature6.Drops["Guck"].DropChance = 100f;
			creature6.Drops["TrophyCrawler_TW"].Amount = new CreatureManager.Range(1f, 1f);
			creature6.Drops["TrophyCrawler_TW"].DropChance = 30f;
			creature6.Drops["TrophyCrawler_TW"].MultiplyDropByLevel = false;
			Creature.Spawner spawner5 = new Creature.Spawner(creature6);
			spawner5.Biome = (Biome)2;
			spawner5.SpecificSpawnTime = SpawnTime.Day;
			spawner5.GroupSize = new CreatureManager.Range(1f, 1f);
			spawner5.CheckSpawnInterval = 900;
			spawner5.SpawnChance = 8f;
			spawner5.CanHaveStars = false;
			spawner5.Maximum = 1;
			Creature.Spawner spawner6 = new Creature.Spawner(creature6);
			spawner6.Biome = (Biome)2;
			spawner6.SpecificSpawnTime = SpawnTime.Night;
			spawner6.GroupSize = new CreatureManager.Range(1f, 1f);
			spawner6.CheckSpawnInterval = 900;
			spawner6.SpawnChance = 18f;
			spawner6.CanHaveStars = true;
			spawner6.Maximum = 1;
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItemCrawler_Bite", addToObjectDb: true);
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItemCrawler_BiteForward", addToObjectDb: true);
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItemCrawler_BiteJump", addToObjectDb: true);
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItemCrawler_SpitAttack", addToObjectDb: true);
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItemCrawler_Taunt");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItemCrawlerRagdoll_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "fx_crawler_spithit_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "Crawler_projectile_TW");
			Creature creature7 = new Creature("monsters", "BossVrykolathas_TW");
			creature7.Drops["ScytheVampiric_TW"].Amount = new CreatureManager.Range(1f, 1f);
			creature7.Drops["ScytheVampiric_TW"].DropChance = 6f;
			creature7.Drops["ScytheVampiric_TW"].MultiplyDropByLevel = false;
			creature7.Drops["DualScytheBloodthirst_TW"].Amount = new CreatureManager.Range(1f, 1f);
			creature7.Drops["DualScytheBloodthirst_TW"].DropChance = 6f;
			creature7.Drops["DualScytheBloodthirst_TW"].MultiplyDropByLevel = false;
			creature7.Drops["TrophyVrykolathas_TW"].Amount = new CreatureManager.Range(1f, 1f);
			creature7.Drops["TrophyVrykolathas_TW"].DropChance = 100f;
			creature7.Drops["TrophyVrykolathas_TW"].MultiplyDropByLevel = false;
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_summonlich_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_lich_dead_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_projectilecast_lich_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_corpseexplode_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_corpserain_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "BossVrykolathas_projectile_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "projectileAOE_lichboss_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "spawn_corpses_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItemBossVrykolathas_SummonProjectile");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItemBossVrykolathas_CastSpell", addToObjectDb: true);
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItemBossVrykolathas_CorpseRain", addToObjectDb: true);
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItemBossVrykolathas_SlapAttack", addToObjectDb: true);
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItemBossVrykolathas_Summon", addToObjectDb: true);
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_lich_alerted_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_lich_attack_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_lich_cast_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_lich_corpserain_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_lich_dead_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_lich_hit_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_lich_idle_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_lich_poisonhit_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_lich_summon_TW");
			Creature creature8 = new Creature("monsters", "DamnedOne_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "fx_damnedonespawn_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItem_DamnedOnePuke_projectile");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItemBossDamnedSummon_puke", addToObjectDb: true);
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_DraugrPuke_hit_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_DraugrPuke_TW");
			MaterialReplacer.RegisterGameObjectForShaderSwap(creature8.Prefab, MaterialReplacer.ShaderType.CustomCreature);
			Creature creature9 = new Creature("monsters", "HelWraith_TW");
			creature9.Drops["Chain"].Amount = new CreatureManager.Range(1f, 1f);
			creature9.Drops["Chain"].DropChance = 100f;
			creature9.Drops["Chain"].MultiplyDropByLevel = true;
			creature9.Drops["TrophyWraith"].Amount = new CreatureManager.Range(1f, 1f);
			creature9.Drops["TrophyWraith"].DropChance = 24f;
			creature9.Drops["TrophyWraith"].MultiplyDropByLevel = false;
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "HelWraith_projectile_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "poisoncloud_projectile_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_wraith_death_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_wraith_hit_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItemHelWraith_CastSpell", addToObjectDb: true);
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItemHelWraith_Slam", addToObjectDb: true);
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItemHelWraith_Slap", addToObjectDb: true);
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_wraith_alerted_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_wraith_attack_hitTW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_wraith_attack_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_wraith_death_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_wraith_hit_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_wraith_idle_TW");
			Creature creature10 = new Creature("monsters", "ObsidianGolem_TW");
			creature10.RequiredAltitude = new CreatureManager.Range(100f, 1000f);
			creature10.Drops["Obsidian"].Amount = new CreatureManager.Range(4f, 10f);
			creature10.Drops["Obsidian"].DropChance = 100f;
			creature10.Drops["TrophyObsidianGolem_TW"].Amount = new CreatureManager.Range(1f, 1f);
			creature10.Drops["TrophyObsidianGolem_TW"].DropChance = 25f;
			creature10.Drops["TrophyObsidianGolem_TW"].MultiplyDropByLevel = false;
			Creature.Spawner spawner7 = new Creature.Spawner(creature10);
			spawner7.Biome = (Biome)4;
			spawner7.GroupSize = new CreatureManager.Range(1f, 1f);
			spawner7.CheckSpawnInterval = 900;
			spawner7.SpawnChance = 10f;
			spawner7.Maximum = 1;
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItemObsidianGolemRagdoll_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItem_ObsidianGolem_clubs", addToObjectDb: true);
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItem_ObsidianGolem_hat", addToObjectDb: true);
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItem_ObsidianGolem_spikes", addToObjectDb: true);
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItem_obsidiangolem_attack_left_groundslam", addToObjectDb: true);
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItem_obsidiangolem_attack_spike", addToObjectDb: true);
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItem_obsidiangolem_attack_spikesweep", addToObjectDb: true);
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItem_obsidiangolem_attack_doublesmash", addToObjectDb: true);
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItem_obsidiangolem_throw", addToObjectDb: true);
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItem_ObsidianGolem_throw_projectile");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_obsidiangolem_death_TW");
			Creature creature11 = new Creature("monsters", "GrizzlyBear_TW");
			creature11.CanBeTamed = true;
			creature11.FoodItems = "Entrails, Blueberries, Turnip, WolfMeat, DeerMeat, Honey, FoxMeat_TW, FishRaw";
			creature11.RequiredAltitude = new CreatureManager.Range(75f, 1000f);
			creature11.Drops["GrizzlyBearPelt_TW"].Amount = new CreatureManager.Range(1f, 1f);
			creature11.Drops["GrizzlyBearPelt_TW"].DropChance = 90f;
			creature11.Drops["BearSteak_TW"].Amount = new CreatureManager.Range(1f, 2f);
			creature11.Drops["BearSteak_TW"].DropChance = 70f;
			creature11.Drops["TrophyGrizzlyBear_TW"].Amount = new CreatureManager.Range(1f, 1f);
			creature11.Drops["TrophyGrizzlyBear_TW"].DropChance = 20f;
			creature11.Drops["TrophyGrizzlyBear_TW"].MultiplyDropByLevel = false;
			Creature.Spawner spawner8 = new Creature.Spawner(creature11);
			spawner8.Biome = (Biome)4;
			spawner8.GroupSize = new CreatureManager.Range(1f, 1f);
			spawner8.CheckSpawnInterval = 900;
			spawner8.SpawnChance = 15f;
			spawner8.CanHaveStars = false;
			spawner8.Maximum = 1;
			Creature.Spawner spawner9 = new Creature.Spawner(creature11);
			spawner9.Biome = (Biome)4;
			spawner9.GroupSize = new CreatureManager.Range(1f, 1f);
			spawner9.CheckSpawnInterval = 900;
			spawner9.SpawnChance = 19f;
			spawner9.CanHaveStars = true;
			spawner9.Maximum = 1;
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItemBear_attack1", addToObjectDb: true);
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItemBear_attack2", addToObjectDb: true);
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItemBear_attack3", addToObjectDb: true);
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItemBear_attack4", addToObjectDb: true);
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItemBear_attack5", addToObjectDb: true);
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItemBear_taunt", addToObjectDb: true);
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItemBearRagdoll_TW");
			new Creature("monsters", "GrizzlyBearCub_TW");
			Creature creature12 = new Creature("monsters", "Prowler_TW");
			creature12.CanBeTamed = true;
			creature12.FoodItems = "LoxMeat, WolfMeat, BearSteak_TW, DeerMeat, HareMeat, BugMeat, RawMeat, FishRaw, FoxMeat_TW";
			creature12.Drops["ProwlerFang_TW"].Amount = new CreatureManager.Range(1f, 2f);
			creature12.Drops["ProwlerFang_TW"].DropChance = 90f;
			creature12.Drops["LoxBone_TW"].Amount = new CreatureManager.Range(1f, 1f);
			creature12.Drops["LoxBone_TW"].DropChance = 25f;
			creature12.Drops["TrophyProwler_TW"].Amount = new CreatureManager.Range(1f, 1f);
			creature12.Drops["TrophyProwler_TW"].DropChance = 22f;
			creature12.Drops["TrophyProwler_TW"].MultiplyDropByLevel = false;
			Creature.Spawner spawner10 = new Creature.Spawner(creature12);
			spawner10.Biome = (Biome)16;
			spawner10.SpecificSpawnTime = SpawnTime.Day;
			spawner10.GroupSize = new CreatureManager.Range(1f, 1f);
			spawner10.CheckSpawnInterval = 1100;
			spawner10.SpawnChance = 8f;
			spawner10.CanHaveStars = false;
			spawner10.Maximum = 1;
			Creature.Spawner spawner11 = new Creature.Spawner(creature12);
			spawner11.Biome = (Biome)16;
			spawner11.SpecificSpawnTime = SpawnTime.Night;
			spawner11.GroupSize = new CreatureManager.Range(1f, 1f);
			spawner11.CheckSpawnInterval = 1100;
			spawner11.SpawnChance = 16f;
			spawner11.CanHaveStars = true;
			spawner11.Maximum = 1;
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItemProwler_attack1", addToObjectDb: true);
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItemProwler_attack2", addToObjectDb: true);
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItemProwler_attack3", addToObjectDb: true);
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItemProwler_taunt", addToObjectDb: true);
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItemProwlerRagdoll_TW");
			new Creature("monsters", "ProwlerCub_TW").Drops["Wood"].DropChance = 0f;
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_prowlercub_alerted_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_prowlercub_death_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_prowlercub_hit_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_prowlercub_idle_TW");
			Creature creature13 = new Creature("monsters", "Shark_TW");
			creature13.RequiredAltitude = new CreatureManager.Range(-500f, 0f);
			creature13.Drops["SharkMeat_TW"].Amount = new CreatureManager.Range(2f, 6f);
			creature13.Drops["SharkMeat_TW"].DropChance = 100f;
			creature13.Drops["SharkFin_TW"].Amount = new CreatureManager.Range(2f, 4f);
			creature13.Drops["SharkFin_TW"].DropChance = 75f;
			creature13.Drops["TrophyShark_TW"].Amount = new CreatureManager.Range(1f, 1f);
			creature13.Drops["TrophyShark_TW"].DropChance = 22f;
			creature13.Drops["TrophyShark_TW"].MultiplyDropByLevel = false;
			Creature.Spawner spawner12 = new Creature.Spawner(creature13);
			spawner12.SpawnDistanceFromCenter = new CreatureManager.Range(3500f, 7500f);
			spawner12.Biome = (Biome)256;
			spawner12.GroupSize = new CreatureManager.Range(1f, 1f);
			spawner12.CheckSpawnInterval = 2000;
			spawner12.SpawnChance = 1f;
			spawner12.Maximum = 1;
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItem_sharkbite_TW", addToObjectDb: true);
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "TMMonsterItem_sharkjumpbite_TW", addToObjectDb: true);
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_shark_death_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_shark_attack_TW");
			Item item23 = new Item("monsters", "TrophyShark_TW");
			item23.Configurable = Configurability.Recipe;
			Item item24 = new Item("monsters", "SharkMeat_TW");
			item24.Configurable = Configurability.Recipe;
			Item item25 = new Item("monsters", "CookedSharkMeat_TW");
			item25.Configurable = Configurability.Recipe;
			racks.Add(item24.Prefab, item25.Prefab);
			Item item26 = new Item("monsters", "SharkFin_TW");
			item26.Configurable = Configurability.Recipe;
			Item item27 = new Item("monsters", "SharkFinSoup_TW");
			item27.Configurable = Configurability.Recipe;
			item27.Crafting.Add(ItemManager.CraftingTable.Cauldron, 5);
			item27.RequiredItems.Add("SharkMeat_TW", 1);
			item27.RequiredItems.Add("SharkFin_TW", 2);
			item27.RequiredItems.Add("Cloudberry", 3);
			item27.CraftAmount = 2;
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "dig_monsterattack_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_doorSythrak_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_offering_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_offeringSythrak_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_prespawn_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_spawn_large_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_spawn_small_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_spawn_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_offering_sythrak_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_offering_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_prespawn_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_spawn_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_glacier_rock_destroyed_TM");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "fx_bossstone_activate_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "fx_bossstone_attach_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "fx_GP_Player_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "fx_GP_Stone_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_bossstone_attach_done_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_corpse_destruction_small_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_corpse_destruction_medium_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_water_surface_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_HitSparks_monster_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_boar_birth_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_creature_soothed_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_FireballHit_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_insect_death_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_insect_hit_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_ice_destroyed_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_troll_footstep_water_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_troll_groundslam_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_troll_rock_destroyed_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_wolf_death_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_wolf_hit_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_boar_love_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_hog_death_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_hog_hit_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_deer_hit_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_deer_death_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_stonegolem_attack_hit_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_stonegolem_footstep_snow_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_stonegolem_footstep_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_stonegolem_hurt_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_stonegolem_wakeup_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_fenring_cultist_death_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_fenring_death_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_fenring_hurt_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_arcticlox_groundslam_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_lox_love_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_lox_soothed_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_serpent_attack_trigger_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_serpent_death_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_serpent_hurt_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_serpent_ice_hit_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_serpent_watersurface_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_jotunnbrute_death_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_jotunnbrute_hit_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_neck_death_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_neck_hit_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_demon_groundslam_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_elk_death_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_monster_hurt_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_troll_aoeslam_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_RockHit_TM");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_pickable_pick_TM");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_small_groundslam_TM");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_arcticgolem_slam_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "vfx_offeringThunder_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_pickable_pick_TM");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_greydwarf_hit_TM");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_footstep_swim_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_footstep_sneak_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_Puke_female_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_Puke_male_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_troll_rock_destroyed_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_creature_consume_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_flamethrower_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_footstep_water_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_greydwarf_shaman_heal_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_imp_fireball_explode_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_troll_footstep_water_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_wolf_attack_hit_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_boar_alerted_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_boar_death_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_boar_hit_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_boar_idle_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_hog_alerted_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_hog_attack_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_hog_birth_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_hog_charge_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_hog_death_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_hog_hit_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_hog_idle_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_hog_love_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_elk_death_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_elk_alerted_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_elk_idle_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_golem_throw_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_stonegolem_alerted_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_stonegolem_attack_hit_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_stonegolem_attack_wosh_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_stonegolem_death_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_stonegolem_footstep_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_stonegolem_hurt_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_stonegolem_idle_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_stonegolem_primary_start_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_stonegolem_second_start_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_stonegolem_spikeattack_trailon_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_stonegolem_wakeup_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_golem_stonethrow_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_bear_alerted_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_bear_attack1_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_bear_attack2_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_bear_birth_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_bear_clawattack1_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_bear_clawattack2_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_bear_hit_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_bear_idle_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_bear_idleroar_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_bear_idleroar_lowvolume_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_bear_love_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_beardeath_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_bearroar_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_bearcub_alerted_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_bearcub_death_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_bearcub_hit_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_bearcub_idle_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_fenring_fireclaw_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_fenring_claw_start_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_fenring_claw_trailstart_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_fenring_claw_hit_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_arcticfenring_alerted_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_arcticfenring_howl_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_fenring_death_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_fenring_idle_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_fenring_jump_start_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_fenring_jump_trailstart_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_fenring_jump_trigger_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_arcticwolf_alerted_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_arcticwolf_attack_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_arcticwolf_death_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_arcticwolf_howl_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_arcticwolf_hit_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_arcticwolf_love_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_wolf_birth_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_wolfcub_alerted_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_wolfcub_death_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_wolfcub_hit_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_arcticlox_alerted_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_lox_attack_bite_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_lox_attack_stomp_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_lox_breath_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_lox_shout_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_loxcalf_alerted_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_biggolem_stomp_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_dragon_coldball_explode_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_skeleton_alerted_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_ashendrake_alerted_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_ashendrake_death_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_ashendrake_hurt_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_ashendrake_idle_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_serpent_attack_hit_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_serpent_attack_trigger_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_serpent_attack_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_serpent_death_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_serpent_hurt_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_serpent_idle_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_serpent_taunt_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_serpent_alerted_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_fox_alerted_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_fox_attack_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_fox_birth_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_fox_death_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_fox_growl_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_fox_hit_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_fox_idle_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_fox_love_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_foxcub_alerted_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_foxcub_death_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_foxcub_hit_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_foxcub_idle_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_elk_attack_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_prowler_alerted_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_prowler_attack_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_prowler_attackpunch_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_prowler_death_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_prowler_hit_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_prowler_idle_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_prowler_idleroar_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_prowler_taunt_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_prowler_love_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_prowler_birth_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_crawler_alerted_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_crawler_attack_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_crawler_dead_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_crawler_hit_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_crawler_idle_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_crawler_spitattack_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_crawler_taunt_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_viper_alerted_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_viper_attack_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_viper_dead_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_viper_hit_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_viper_idle_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_viper_spitattack_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_drake_spit_launch_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_imp_fireball_launch_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_magic_iceblast_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_greydwarf_death_TM");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_draugr_idle_TM");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_draugr_hit_TM");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_draugr_death_TM");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_draugr_alerted_TM");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_greydwarf_alerted_TM");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_greydwarf_shaman_attack_TM");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_greydwarf_attack_TM");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_greydwarf_idle_TM");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_dragon_coldball_start_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "sfx_dragon_coldball_launch_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "fx_frozenhands_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "fx_lightninghands_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "fx_lightninghands_long_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "fx_deadspeak_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "fx_prowler_pet_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "fx_boar_footstep_walk_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "fx_footstep_water_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "fx_backstab_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "fx_crit_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "fx_Puke_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "fx_footscorpid_jog_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "fx_footstep_jog_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "fx_footstep_mud_jog_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "fx_footstep_mud_run_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "fx_footstep_run_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "fx_footstep_snow_jog_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "fx_footstep_snow_run_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "fx_meteor_hit_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "fx_creature_tamed_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "fx_bear_pet_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "fx_hog_pet_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "fx_lox_death_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "fx_lox_footstep_run_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "fx_lox_footstep_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "fx_lox_hit_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "fx_lox_pet_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "fx_lox_tamed_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "fx_loxcalf_death_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "fx_goblinbrute_groundslam_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "fx_footstep_climb_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "eventzone_asmodeus_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "eventzone_vrykolathas_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "InteriorEnvironmentZoneForce_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "Pickable_ForestCryptRemains_01_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "Pickable_ForestCryptRemains_02_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "Pickable_ForestCryptRemains_03_TW");
			ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("monsters"), "Pickable_ForestCryptRemains_04_TW");
			Assembly executingAssembly = Assembly.GetExecutingAssembly();
			_harmony.PatchAll(executingAssembly);
		}

		public void Start()
		{
			Upgrade.Register("monstrum", "Generates locations for Monstrum mod to your existing world", "locations_add AltarAsmodeus_TW,AltarVrykolathas_TW,AltarSvalt_TW,Vegvisir_location_Svalt_TW,Vegvisir_location_Asmodeus_TW,Vegvisir_location_Vrykolathas_TW, start force");
		}

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

		private void ReadConfigValues(object sender, FileSystemEventArgs e)
		{
			DateTime now = DateTime.Now;
			long num = now.Ticks - _lastReloadTime.Ticks;
			if (File.Exists(ConfigFileFullPath) && num >= 10000000)
			{
				try
				{
					MonstrumLogger.LogDebug((object)"Attempting to reload configuration...");
					((BaseUnityPlugin)this).Config.Reload();
				}
				catch
				{
					MonstrumLogger.LogError((object)("There was an issue loading " + ConfigFileName));
				}
				_lastReloadTime = now;
			}
		}

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

		private ConfigEntry<T> config<T>(string group, string name, T value, string description, bool synchronizedSetting = true)
		{
			//IL_000d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0019: Expected O, but got Unknown
			return config(group, name, value, new ConfigDescription(description, (AcceptableValueBase)null, Array.Empty<object>()), synchronizedSetting);
		}
	}
	public class Ballista_PatchMonstrum
	{
		[HarmonyPatch(typeof(ZNetScene), "Awake")]
		internal static class Turret_PatchMonstrum
		{
			private static void Postfix(ZNetScene __instance)
			{
				Turret component = __instance.GetPrefab("piece_turret").GetComponent<Turret>();
				AddTrophyTarget(component, "TrophyFox_TW", "Fox_TW");
				AddTrophyTarget(component, "TrophyRazorback_TW", "Razorback_TW");
				AddTrophyTarget(component, "TrophyRottingElk_TW", "RottingElk_TW");
				AddTrophyTarget(component, "TrophyCrawler_TW", "Crawler_TW");
				AddTrophyTarget(component, "TrophyObsidianGolem_TW", "ObsidianGolem_TW");
				AddTrophyTarget(component, "TrophyGrizzlyBear_TW", "GrizzlyBear_TW");
				AddTrophyTarget(component, "TrophyProwler_TW", "Prowler_TW");
				AddTrophyTarget(component, "TrophyShark_TW", "Shark_TW");
				AddTrophyTarget(component, "TrophyVrykolathas_TW", "BossVrykolathas_TW");
				AddTrophyTarget(component, "TrophySvalt_TW", "BossSvalt_TW");
				AddTrophyTarget(component, "TrophyAsmodeus_TW", "BossAsmodeus_TW");
			}

			private static void AddTrophyTarget(Turret turretComponent, string trophyPrefabName, string enemyPrefabName)
			{
				//IL_0020: Unknown result type (might be due to invalid IL or missing references)
				//IL_003f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0040: Unknown result type (might be due to invalid IL or missing references)
				//IL_0041: Unknown result type (might be due to invalid IL or missing references)
				//IL_0054: Unknown result type (might be due to invalid IL or missing references)
				GameObject prefab = ZNetScene.instance.GetPrefab(trophyPrefabName);
				Humanoid component = ZNetScene.instance.GetPrefab(enemyPrefabName).GetComponent<Humanoid>();
				TrophyTarget val = new TrophyTarget
				{
					m_item = prefab.GetComponent<ItemDrop>(),
					m_targets = new List<Character>()
				};
				val.m_targets.Add((Character)(object)component);
				turretComponent.m_configTargets.Add(val);
			}
		}
	}
	[HarmonyPatch(typeof(ZNetScene), "Awake")]
	internal static class CookingFermentindMonstrumZNetScene_AwakePost_Patch
	{
		private static void Postfix(ZNetScene __instance)
		{
			//IL_00bb: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00cb: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e8: Unknown result type (might be due to invalid IL or missing references)
			//IL_010a: Expected O, but got Unknown
			//IL_0146: Unknown result type (might be due to invalid IL or missing references)
			//IL_014b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0156: Unknown result type (might be due to invalid IL or missing references)
			//IL_0173: Unknown result type (might be due to invalid IL or missing references)
			//IL_0195: Expected O, but got Unknown
			//IL_01d1: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d6: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e1: Unknown result type (might be due to invalid IL or missing references)
			//IL_01fe: Unknown result type (might be due to invalid IL or missing references)
			//IL_0220: Expected O, but got Unknown
			//IL_025c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0261: Unknown result type (might be due to invalid IL or missing references)
			//IL_026c: Unknown result type (might be due to