Decompiled source of Monstrum v1.6.0

Monstrum.dll

Decompiled 2 days ago
using System;
using System.Collections;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Diagnostics;
using System.Diagnostics.CodeAnalysis;
using System.Globalization;
using System.IO;
using System.IO.Compression;
using System.Linq;
using System.Linq.Expressions;
using System.Reflection;
using System.Reflection.Emit;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Serialization;
using System.Runtime.Versioning;
using System.Security;
using System.Security.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 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.0")]
[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.0.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 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.0")]
	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.0";

		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.0",
			MinimumRequiredVersion = "1.6.0",
			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_0851: Unknown result type (might be due to invalid IL or missing references)
			//IL_088f: Unknown result type (might be due to invalid IL or missing references)
			//IL_08fc: Unknown result type (might be due to invalid IL or missing references)
			//IL_093a: Unknown result type (might be due to invalid IL or missing references)
			//IL_09a7: Unknown result type (might be due to invalid IL or missing references)
			//IL_09e5: Unknown result type (might be due to invalid IL or missing references)
			//IL_0aa0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ade: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b4b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b89: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c2c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c6a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f04: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f5b: Unknown result type (might be due to invalid IL or missing references)
			//IL_1171: Unknown result type (might be due to invalid IL or missing references)
			//IL_1a49: Unknown result type (might be due to invalid IL or missing references)
			//IL_1bff: Unknown result type (might be due to invalid IL or missing references)
			//IL_1c56: Unknown result type (might be due to invalid IL or missing references)
			//IL_2483: Unknown result type (might be due to invalid IL or missing references)
			//IL_270a: Unknown result type (might be due to invalid IL or missing references)
			//IL_2759: Unknown result type (might be due to invalid IL or missing references)
			//IL_297c: Unknown result type (might be due to invalid IL or missing references)
			//IL_29d4: Unknown result type (might be due to invalid IL or missing references)
			//IL_2c68: Unknown result type (might be due to invalid IL or missing references)
			AudioMixerFix.Init(MonstrumLogger);
			Localizer.Load();
			_serverConfigLocked = config("1 - General", "Lock Configuration", Toggle.On, "If on, the configuration is locked and can be changed by server admins only.");
			ConfigSync.AddLockingConfigEntry<Toggle>(_serverConfigLocked);
			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 invalid IL or missing references)
			//IL_0289: Unknown result type (might be due to invalid IL or missing references)
			//IL_02ab: Expected O, but got Unknown
			//IL_02e7: Unknown result type (might be due to invalid IL or missing references)
			//IL_02ec: Unknown result type (might be due to invalid IL or missing references)
			//IL_02f7: Unknown result type (might be due to invalid IL or missing references)
			//IL_0314: Unknown result type (might be due to invalid IL or missing references)
			//IL_0336: Expected O, but got Unknown
			//IL_0372: Unknown result type (might be due to invalid IL or missing references)
			//IL_0377: Unknown result type (might be due to invalid IL or missing references)
			//IL_0394: Unknown result type (might be due to invalid IL or missing references)
			//IL_03b1: Unknown result type (might be due to invalid IL or missing references)
			//IL_03be: Expected O, but got Unknown
			if ((Object)(object)__instance == (Object)null)
			{
				return;
			}
			List<GameObject> prefabs = __instance.m_prefabs;
			if (prefabs == null || prefabs.Count <= 0)
			{
				return;
			}
			CookingStation component = __instance.GetPrefab("piece_cookingstation_iron").GetComponent<CookingStation>();
			CookingStation component2 = __instance.GetPrefab("piece_cookingstation_iron").GetComponent<CookingStation>();
			CookingStation component3 = __instance.GetPrefab("piece_cookingstation").GetComponent<CookingStation>();
			CookingStation component4 = __instance.GetPrefab("piece_cookingstation").GetComponent<CookingStation>();
			CookingStation component5 = __instance.GetPrefab("piece_oven").GetComponent<CookingStation>();
			Fermenter component6 = __instance.GetPrefab("fermenter").GetComponent<Fermenter>();
			foreach (KeyValuePair<GameObject, GameObject> rack in MonstrumPlugin.racks)
			{
				component.m_conversion.Add(new ItemConversion
				{
					m_cookTime = 60f,
					m_from = __instance.GetPrefab(((Object)rack.Key).name).GetComponent<ItemDrop>(),
					m_to = __instance.GetPrefab(((Object)rack.Value).name).GetComponent<ItemDrop>()
				});
			}
			foreach (KeyValuePair<GameObject, GameObject> smallrack in MonstrumPlugin.smallracks)
			{
				component3.m_conversion.Add(new ItemConversion
				{
					m_cookTime = 60f,
					m_from = __instance.GetPrefab(((Object)smallrack.Key).name).GetComponent<ItemDrop>(),
					m_to = __instance.GetPrefab(((Object)smallrack.Value).name).GetComponent<ItemDrop>()
				});
			}
			foreach (KeyValuePair<GameObject, GameObject> smallfastrack in MonstrumPlugin.smallfastracks)
			{
				component4.m_conversion.Add(new ItemConversion
				{
					m_cookTime = 30f,
					m_from = __instance.GetPrefab(((Object)smallfastrack.Key).name).GetComponent<ItemDrop>(),
					m_to = __instance.GetPrefab(((Object)smallfastrack.Value).name).GetComponent<ItemDrop>()
				});
			}
			foreach (KeyValuePair<GameObject, GameObject> fastrack in MonstrumPlugin.fastracks)
			{
				component2.m_conversion.Add(new ItemConversion
				{
					m_cookTime = 30f,
					m_from = __instance.GetPrefab(((Object)fastrack.Key).name).GetComponent<ItemDrop>(),
					m_to = __instance.GetPrefab(((Object)fastrack.Value).name).GetComponent<ItemDrop>()
				});
			}
			foreach (KeyValuePair<GameObject, GameObject> oven in MonstrumPlugin.ovens)
			{
				component5.m_conversion.Add(new ItemConversion
				{
					m_cookTime = 60f,
					m_from = __instance.GetPrefab(((Object)oven.Key).name).GetComponent<ItemDrop>(),
					m_to = __instance.GetPrefab(((Object)oven.Value).name).GetComponent<ItemDrop>()
				});
			}
			foreach (KeyValuePair<GameObject, GameObject> fermenter in MonstrumPlugin.fermenters)
			{
				component6.m_conversion.Add(new ItemConversion
				{
					m_from = __instance.GetPrefab(((Object)fermenter.Key).name).GetComponent<ItemDrop>(),
					m_to = __instance.GetPrefab(((Object)fermenter.Value).name).GetComponent<ItemDrop>(),
					m_producedItems = 10
				});
			}
		}
	}
	public static class PlayerExtensions
	{
		public static void CustomAttachStop(this Player p)
		{
			//IL_003d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			if (p.m_sleeping || !p.m_attached)
			{
				return;
			}
			if ((Object)(object)p.m_attachPoint != (Object)null)
			{
				((Component)p).transform.position = p.m_attachPoint.TransformPoint(p.m_detachOffset);
			}
			if (p.m_attachColliders != null)
			{
				Collider[] attachColliders = p.m_attachColliders;
				foreach (Collider val in attachColliders)
				{
					if (Object.op_Implicit((Object)(object)val))
					{
						Physics.IgnoreCollision((Collider)(object)((Character)p).m_collider, val, false);
					}
				}
				p.m_attachColliders = null;
			}
			((Character)p).m_body.useGravity = true;
			p.m_attached = false;
			p.m_attachPoint = null;
			p.m_attachPointCamera = null;
			((Character)p).m_zanim.SetBool(p.m_attachAnimation, false);
			((Character)p).m_nview.GetZDO().Set(ZDOVars.s_inBed, false);
			((Character)p).ResetCloth();
			StartRidingMountPatch_Monstrum.RidingMountMonstrum = false;
			p.StopDoodadControl();
			p.m_doodadController = null;
			StartRidingMountPatch_Monstrum.RidingHumanoid = null;
		}

		public static void HandleInput(this Player player)
		{
			ProcessInput((KeyCode)323, 0, "JoyAttack");
			ProcessInput((KeyCode)324, 1, "JoyBlock");
			ProcessInput((KeyCode)325, 2, "JoySecondaryAttack");
			void ProcessInput(KeyCode key, int weaponIndex, string controllerButton = "")
			{
				//IL_0008: Unknown result type (might be due to invalid IL or missing references)
				bool flag = (ZInput.IsGamepadActive() ? ZInput.GetButtonDown(controllerButton) : Input.GetKeyDown(key));
				if (Object.op_Implicit((Object)(object)StartRidingMountPatch_Monstrum.RidingHumanoid) && flag && !Menu.IsVisible() && ((Character)player).TakeInput() && !((Character)StartRidingMountPatch_Monstrum.RidingHumanoid).InAttack())
				{
					List<ItemData> list = (from i in StartRidingMountPatch_Monstrum.RidingHumanoid.m_inventory.GetAllItems()
						where i.IsWeapon()
						select i).ToList();
					if (list.Count > weaponIndex)
					{
						ItemData val = list[weaponIndex];
						StartRidingMountPatch_Monstrum.RidingHumanoid.EquipItem(val, true);
						float num = val.m_shared.m_attack.m_attackStamina;
						IDoodadController doodadController = player.GetDoodadController();
						Sadle val2 = (Sadle)(object)((doodadController is Sadle) ? doodadController : null);
						if (!((Object)(object)val2 == (Object)null))
						{
							if (num <= 0f)
							{
								num = val2.GetMaxStamina() * 0.05f;
							}
							if (val2.HaveStamina(num))
							{
								val2.UseStamina(num);
								((Character)StartRidingMountPatch_Monstrum.RidingHumanoid).StartAttack((Character)null, false);
							}
						}
					}
				}
			}
		}
	}
	[HarmonyPatch(typeof(ZNet), "OnNewConnection")]
	public static class RegisterAndCheckVersion
	{
		private static void Prefix(ZNetPeer peer, ref ZNet __instance)
		{
			//IL_003e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0044: Expected O, but got