Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of Monstrum v1.6.0
Monstrum.dll
Decompiled 2 days ago
The result has been truncated due to the large size, download it to view full contents!
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