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 Wizardry v1.2.0
Wizardry.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 KG_Managers; using LocalizationManager; using Microsoft.CodeAnalysis; using PieceManager; using ServerSync; using SoftReferenceableAssets; using SoundMixManager; using TMPro; using UnityEngine; using UnityEngine.Audio; using UnityEngine.UI; 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.2.0")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("Therzie")] [assembly: AssemblyProduct("Wizardry")] [assembly: AssemblyCopyright("Copyright © 2022")] [assembly: AssemblyTrademark("")] [assembly: AssemblyTitle("Wizardry")] [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.2.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; } } } [HarmonyPatch(typeof(TreeLog), "Destroy")] internal static class EnchantedWood_Destroy_Patch { private struct EnchantedWoodConfig { public List<string> PREFABS; public string prefab; public Biome forBiome; public int chance; public int amount; public int weight; public EnchantedWoodConfig(List<string> PREFABS, string prefab, Biome forBiome, int chance, int amount = 1, int weight = 1) { //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) this.PREFABS = PREFABS; this.prefab = prefab; this.forBiome = forBiome; this.chance = chance; this.amount = amount; this.weight = weight; } } private static readonly EnchantedWoodConfig[] Configs = new EnchantedWoodConfig[6] { new EnchantedWoodConfig(new List<string> { "PineTree_log_half" }, "EnchantedWoodBlackForest_TW", (Biome)8, 35), new EnchantedWoodConfig(new List<string> { "SwampTree1_log" }, "EnchantedWoodSwamp_TW", (Biome)2, 35), new EnchantedWoodConfig(new List<string> { "FirTree_log_half" }, "EnchantedWoodMountain_TW", (Biome)4, 35), new EnchantedWoodConfig(new List<string> { "Birch_log_half" }, "EnchantedWoodPlains_TW", (Biome)16, 35), new EnchantedWoodConfig(new List<string> { "yggashoot_log_half" }, "EnchantedWoodMistlands_TW", (Biome)512, 50, 3), new EnchantedWoodConfig(new List<string> { "YggaShoot_small1", "YggaShoot1", "YggaShoot2", "YggaShoot3" }, "EnchantedWoodMistlands_TW", (Biome)512, 30) }; [UsedImplicitly] private static void Postfix(TreeLog __instance) { //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Invalid comparison between Unknown and I4 BiomeSector biome = EnvMan.instance.GetBiome(); string prefabName = Utils.GetPrefabName(((Component)__instance).gameObject); EnchantedWoodConfig[] configs = Configs; for (int i = 0; i < configs.Length; i++) { EnchantedWoodConfig config = configs[i]; if ((biome.Biome & config.forBiome) != 0 && config.PREFABS.Contains(prefabName) && Random.Range(0, 100) <= config.chance) { AddDrops(__instance, config); break; } } } private static void AddDrops(TreeLog __instance, EnchantedWoodConfig config) { //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_0093: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Unknown result type (might be due to invalid IL or missing references) GameObject prefab = ZNetScene.instance.GetPrefab(config.prefab); if (!((Object)(object)prefab == (Object)null)) { for (int i = 0; i < config.amount; i++) { Vector3 val = ((Component)__instance).transform.position + ((Component)__instance).transform.up * Random.Range(0f - __instance.m_spawnDistance, __instance.m_spawnDistance) + Vector3.up * 0.3f * (float)i; Quaternion val2 = Quaternion.Euler(0f, (float)Random.Range(0, 360), 0f); GameObject val3 = Object.Instantiate<GameObject>(prefab, val, val2); val3.GetComponent<ItemDrop>().m_itemData.m_shared.m_weight = config.weight; ItemDrop.OnCreateNew(val3, false); } } } } namespace Warfare.Util { public class Functions { internal static Sprite loadSprite(string name, bool isEmbed = true) { //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Unknown result type (might be due to invalid IL or missing references) Texture2D val = loadTexture(name, isEmbed); if ((Object)(object)val != (Object)null) { return Sprite.Create(val, new Rect(0f, 0f, (float)((Texture)val).width, (float)((Texture)val).height), Vector2.zero); } return null; } private static Texture2D loadTexture(string name, bool isEmbed) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0009: Expected O, but got Unknown Texture2D val = new Texture2D(0, 0); if (isEmbed) { ImageConversion.LoadImage(val, ReadEmbeddedFileBytes("assets." + name)); } return val; } private static byte[] ReadEmbeddedFileBytes(string name) { using MemoryStream memoryStream = new MemoryStream(); Assembly.GetExecutingAssembly().GetManifestResourceStream(Assembly.GetExecutingAssembly().GetName().Name + "." + name).CopyTo(memoryStream); return memoryStream.ToArray(); } } } 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 WarfareWizardry { [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 Unknown WizardryPlugin.WizardryLogger.LogDebug((object)"Registering version RPC handler"); peer.m_rpc.Register<ZPackage>("Wizardry_VersionCheck", (Action<ZRpc, ZPackage>)RpcHandlers.RPC_WarfareWizardry_Version); WizardryPlugin.WizardryLogger.LogDebug((object)"Invoking version check"); ZPackage val = new ZPackage(); val.Write("1.2.0"); peer.m_rpc.Invoke("Wizardry_VersionCheck", new object[1] { val }); } } [HarmonyPatch(typeof(ZNet), "Disconnect")] public static class RemoveDisconnectedPeerFromVerified { private static void Prefix(ZNetPeer peer, ref ZNet __instance) { if (__instance.IsServer()) { WizardryPlugin.WizardryLogger.LogInfo((object)("Peer (" + peer.m_rpc.m_socket.GetHostName() + ") disconnected, removing from validated list")); RpcHandlers.ValidatedPeers.Remove(peer.m_rpc); } } } public static class RpcHandlers { public static readonly List<ZRpc> ValidatedPeers = new List<ZRpc>(); public static void RPC_WarfareWizardry_Version(ZRpc rpc, ZPackage pkg) { string text = pkg.ReadString(); WizardryPlugin.WizardryLogger.LogInfo((object)("Version check, local: 1.2.0, remote: " + text)); if (text != "1.2.0") { WizardryPlugin.ConnectionError = "Wizardry Installed: 1.2.0\n Needed: " + text; if (ZNet.instance.IsServer()) { WizardryPlugin.WizardryLogger.LogWarning((object)("Peer (" + rpc.m_socket.GetHostName() + ") has incompatible version, disconnecting")); rpc.Invoke("Error", new object[1] { 3 }); } } else if (!ZNet.instance.IsServer()) { WizardryPlugin.WizardryLogger.LogInfo((object)"Received same version from server!"); } else { WizardryPlugin.WizardryLogger.LogInfo((object)("Adding peer (" + rpc.m_socket.GetHostName() + ") to validated list")); ValidatedPeers.Add(rpc); } } } [HarmonyPatch(typeof(FejdStartup), "ShowConnectError")] public class ShowConnectionError { private static void Postfix(FejdStartup __instance) { if (__instance.m_connectionFailedPanel.activeSelf) { __instance.m_connectionFailedError.fontSizeMax = 25f; __instance.m_connectionFailedError.fontSizeMin = 15f; TMP_Text connectionFailedError = __instance.m_connectionFailedError; connectionFailedError.text = connectionFailedError.text + "\n" + WizardryPlugin.ConnectionError; } } } public class Vegetation { [HarmonyPatch(typeof(ZoneSystem), "Start")] public class ZoneSystemStartPatch { public static void Prefix(ZoneSystem __instance) { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_003b: 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) //IL_004d: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Unknown result type (might be due to invalid IL or missing references) //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00af: Unknown result type (might be due to invalid IL or missing references) //IL_00ba: Unknown result type (might be due to invalid IL or missing references) //IL_00c5: Unknown result type (might be due to invalid IL or missing references) //IL_00d0: Unknown result type (might be due to invalid IL or missing references) //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_00e6: Unknown result type (might be due to invalid IL or missing references) //IL_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_00f8: Unknown result type (might be due to invalid IL or missing references) //IL_00ff: Unknown result type (might be due to invalid IL or missing references) //IL_0106: Unknown result type (might be due to invalid IL or missing references) //IL_0111: Unknown result type (might be due to invalid IL or missing references) //IL_0118: Unknown result type (might be due to invalid IL or missing references) //IL_0123: Unknown result type (might be due to invalid IL or missing references) //IL_012e: Unknown result type (might be due to invalid IL or missing references) //IL_0136: 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_0157: Unknown result type (might be due to invalid IL or missing references) //IL_015e: Unknown result type (might be due to invalid IL or missing references) //IL_0165: Unknown result type (might be due to invalid IL or missing references) //IL_0170: Unknown result type (might be due to invalid IL or missing references) //IL_0177: Unknown result type (might be due to invalid IL or missing references) //IL_0182: Unknown result type (might be due to invalid IL or missing references) //IL_018d: Unknown result type (might be due to invalid IL or missing references) //IL_0198: Unknown result type (might be due to invalid IL or missing references) //IL_01a3: Unknown result type (might be due to invalid IL or missing references) //IL_01a5: Unknown result type (might be due to invalid IL or missing references) //IL_01aa: Unknown result type (might be due to invalid IL or missing references) //IL_01ac: Unknown result type (might be due to invalid IL or missing references) //IL_01b1: Unknown result type (might be due to invalid IL or missing references) //IL_01b8: Unknown result type (might be due to invalid IL or missing references) //IL_01c3: Unknown result type (might be due to invalid IL or missing references) //IL_01ce: Unknown result type (might be due to invalid IL or missing references) //IL_01d9: Unknown result type (might be due to invalid IL or missing references) //IL_01e4: Unknown result type (might be due to invalid IL or missing references) //IL_01ef: Unknown result type (might be due to invalid IL or missing references) //IL_01fa: Unknown result type (might be due to invalid IL or missing references) //IL_0205: Unknown result type (might be due to invalid IL or missing references) //IL_0210: Unknown result type (might be due to invalid IL or missing references) //IL_021b: Unknown result type (might be due to invalid IL or missing references) //IL_0222: Unknown result type (might be due to invalid IL or missing references) //IL_022d: Unknown result type (might be due to invalid IL or missing references) //IL_0234: Unknown result type (might be due to invalid IL or missing references) //IL_023b: Unknown result type (might be due to invalid IL or missing references) //IL_0246: Unknown result type (might be due to invalid IL or missing references) //IL_024d: Unknown result type (might be due to invalid IL or missing references) //IL_0258: Unknown result type (might be due to invalid IL or missing references) //IL_0263: Unknown result type (might be due to invalid IL or missing references) //IL_026b: Expected O, but got Unknown //IL_027c: Unknown result type (might be due to invalid IL or missing references) //IL_0281: Unknown result type (might be due to invalid IL or missing references) //IL_028e: Unknown result type (might be due to invalid IL or missing references) //IL_0296: Unknown result type (might be due to invalid IL or missing references) //IL_029d: Unknown result type (might be due to invalid IL or missing references) //IL_02a8: Unknown result type (might be due to invalid IL or missing references) //IL_02af: Unknown result type (might be due to invalid IL or missing references) //IL_02ba: Unknown result type (might be due to invalid IL or missing references) //IL_02c5: Unknown result type (might be due to invalid IL or missing references) //IL_02d0: Unknown result type (might be due to invalid IL or missing references) //IL_02db: Unknown result type (might be due to invalid IL or missing references) //IL_02dd: Unknown result type (might be due to invalid IL or missing references) //IL_02e2: Unknown result type (might be due to invalid IL or missing references) //IL_02e4: Unknown result type (might be due to invalid IL or missing references) //IL_02e9: Unknown result type (might be due to invalid IL or missing references) //IL_02f0: Unknown result type (might be due to invalid IL or missing references) //IL_02fb: Unknown result type (might be due to invalid IL or missing references) //IL_0306: Unknown result type (might be due to invalid IL or missing references) //IL_0311: Unknown result type (might be due to invalid IL or missing references) //IL_031c: Unknown result type (might be due to invalid IL or missing references) //IL_0327: Unknown result type (might be due to invalid IL or missing references) //IL_0332: Unknown result type (might be due to invalid IL or missing references) //IL_033d: Unknown result type (might be due to invalid IL or missing references) //IL_0348: Unknown result type (might be due to invalid IL or missing references) //IL_0353: Unknown result type (might be due to invalid IL or missing references) //IL_035a: Unknown result type (might be due to invalid IL or missing references) //IL_0365: Unknown result type (might be due to invalid IL or missing references) //IL_036c: Unknown result type (might be due to invalid IL or missing references) //IL_0373: Unknown result type (might be due to invalid IL or missing references) //IL_037e: Unknown result type (might be due to invalid IL or missing references) //IL_0385: Unknown result type (might be due to invalid IL or missing references) //IL_0390: Unknown result type (might be due to invalid IL or missing references) //IL_039b: Unknown result type (might be due to invalid IL or missing references) //IL_03a4: Expected O, but got Unknown //IL_03b5: Unknown result type (might be due to invalid IL or missing references) //IL_03ba: Unknown result type (might be due to invalid IL or missing references) //IL_03c7: Unknown result type (might be due to invalid IL or missing references) //IL_03cf: Unknown result type (might be due to invalid IL or missing references) //IL_03d6: Unknown result type (might be due to invalid IL or missing references) //IL_03e1: Unknown result type (might be due to invalid IL or missing references) //IL_03e8: Unknown result type (might be due to invalid IL or missing references) //IL_03f3: Unknown result type (might be due to invalid IL or missing references) //IL_03fe: Unknown result type (might be due to invalid IL or missing references) //IL_0409: Unknown result type (might be due to invalid IL or missing references) //IL_0414: Unknown result type (might be due to invalid IL or missing references) //IL_0417: Unknown result type (might be due to invalid IL or missing references) //IL_041c: Unknown result type (might be due to invalid IL or missing references) //IL_041e: Unknown result type (might be due to invalid IL or missing references) //IL_0423: Unknown result type (might be due to invalid IL or missing references) //IL_042a: Unknown result type (might be due to invalid IL or missing references) //IL_0435: Unknown result type (might be due to invalid IL or missing references) //IL_0440: Unknown result type (might be due to invalid IL or missing references) //IL_044b: Unknown result type (might be due to invalid IL or missing references) //IL_0456: Unknown result type (might be due to invalid IL or missing references) //IL_0461: Unknown result type (might be due to invalid IL or missing references) //IL_046c: Unknown result type (might be due to invalid IL or missing references) //IL_0477: Unknown result type (might be due to invalid IL or missing references) //IL_0482: Unknown result type (might be due to invalid IL or missing references) //IL_048d: Unknown result type (might be due to invalid IL or missing references) //IL_0494: Unknown result type (might be due to invalid IL or missing references) //IL_049f: Unknown result type (might be due to invalid IL or missing references) //IL_04a6: Unknown result type (might be due to invalid IL or missing references) //IL_04ad: Unknown result type (might be due to invalid IL or missing references) //IL_04b8: Unknown result type (might be due to invalid IL or missing references) //IL_04bf: Unknown result type (might be due to invalid IL or missing references) //IL_04ca: Unknown result type (might be due to invalid IL or missing references) //IL_04d5: Unknown result type (might be due to invalid IL or missing references) //IL_04de: Expected O, but got Unknown GameObject prefab = ZNetScene.instance.GetPrefab("Pickable_Mushroom_Witcheye_TW"); ZoneVegetation item = new ZoneVegetation { m_name = ((Object)prefab).name, m_prefab = prefab, m_enable = true, m_max = 0.8f, m_forcePlacement = false, m_scaleMin = 1f, m_scaleMax = 1.2f, m_randTilt = 5f, m_chanceToUseGroundTilt = 1f, m_biome = (Biome)8, m_biomeArea = (BiomeArea)3, m_blockCheck = true, m_minAltitude = 0f, m_maxAltitude = 1000f, m_minOceanDepth = 0f, m_maxOceanDepth = 0f, m_minTilt = 0f, m_maxTilt = 90f, m_terrainDeltaRadius = 0f, m_maxTerrainDelta = 2f, m_minTerrainDelta = 0f, m_snapToWater = false, m_groundOffset = 0f, m_groupSizeMin = 1, m_groupSizeMax = 1, m_groupRadius = 32f, m_inForest = false, m_forestTresholdMin = 0f, m_forestTresholdMax = 1f, m_foldout = false }; GameObject prefab2 = ZNetScene.instance.GetPrefab("Pickable_Mushroom_Deathcap_TW"); ZoneVegetation item2 = new ZoneVegetation { m_name = ((Object)prefab2).name, m_prefab = prefab2, m_enable = true, m_max = 0.8f, m_forcePlacement = false, m_scaleMin = 1f, m_scaleMax = 1.2f, m_randTilt = 5f, m_chanceToUseGroundTilt = 100f, m_biome = (Biome)2, m_biomeArea = (BiomeArea)3, m_blockCheck = true, m_minAltitude = -100f, m_maxAltitude = 1000f, m_minOceanDepth = 0f, m_maxOceanDepth = 0f, m_minTilt = 0f, m_maxTilt = 90f, m_terrainDeltaRadius = 0f, m_maxTerrainDelta = 2f, m_minTerrainDelta = 0f, m_snapToWater = false, m_groundOffset = 0f, m_groupSizeMin = 1, m_groupSizeMax = 1, m_groupRadius = 16f, m_inForest = false, m_forestTresholdMin = 0f, m_forestTresholdMax = 1f, m_foldout = false }; GameObject prefab3 = ZNetScene.instance.GetPrefab("Pickable_Mushroom_Wizardbutter_TW"); ZoneVegetation item3 = new ZoneVegetation { m_name = ((Object)prefab3).name, m_prefab = prefab3, m_enable = true, m_max = 0.8f, m_forcePlacement = false, m_scaleMin = 1f, m_scaleMax = 1.1f, m_randTilt = 5f, m_chanceToUseGroundTilt = 100f, m_biome = (Biome)4, m_biomeArea = (BiomeArea)3, m_blockCheck = true, m_minAltitude = 0f, m_maxAltitude = 1000f, m_minOceanDepth = 0f, m_maxOceanDepth = 0f, m_minTilt = 0f, m_maxTilt = 90f, m_terrainDeltaRadius = 0f, m_maxTerrainDelta = 2f, m_minTerrainDelta = 0f, m_snapToWater = false, m_groundOffset = 0f, m_groupSizeMin = 1, m_groupSizeMax = 1, m_groupRadius = 32f, m_inForest = false, m_forestTresholdMin = 0f, m_forestTresholdMax = 1f, m_foldout = false }; GameObject prefab4 = ZNetScene.instance.GetPrefab("Pickable_Mushroom_Devilstongue_TW"); ZoneVegetation item4 = new ZoneVegetation { m_name = ((Object)prefab4).name, m_prefab = prefab4, m_enable = true, m_max = 0.8f, m_forcePlacement = false, m_scaleMin = 1f, m_scaleMax = 1f, m_randTilt = 5f, m_chanceToUseGroundTilt = 100f, m_biome = (Biome)16, m_biomeArea = (BiomeArea)3, m_blockCheck = true, m_minAltitude = 0f, m_maxAltitude = 1000f, m_minOceanDepth = 0f, m_maxOceanDepth = 0f, m_minTilt = 0f, m_maxTilt = 90f, m_terrainDeltaRadius = 0f, m_maxTerrainDelta = 2f, m_minTerrainDelta = 0f, m_snapToWater = false, m_groundOffset = 0f, m_groupSizeMin = 1, m_groupSizeMax = 1, m_groupRadius = 32f, m_inForest = false, m_forestTresholdMin = 0f, m_forestTresholdMax = 1f, m_foldout = false }; List<ZoneVegetation> source = new List<ZoneVegetation> { item, item2, item3, item4 }; foreach (ZoneVegetation item5 in source.Distinct()) { if (!__instance.m_vegetation.Contains(item5)) { __instance.m_vegetation.Add(item5); } } } } } [HarmonyPatch(typeof(ZNet), "RPC_PeerInfo")] public static class VerifyClient { private static bool Prefix(ZRpc rpc, ZPackage pkg, ref ZNet __instance) { if (!__instance.IsServer() || RpcHandlers.ValidatedPeers.Contains(rpc)) { return true; } WizardryPlugin.WizardryLogger.LogWarning((object)("Peer (" + rpc.m_socket.GetHostName() + ") never sent version or couldn't due to previous disconnect, disconnecting")); rpc.Invoke("Error", new object[1] { 3 }); return false; } private static void Postfix(ZNet __instance) { //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Expected O, but got Unknown ZRoutedRpc.instance.InvokeRoutedRPC(ZRoutedRpc.instance.GetServerPeerID(), "RequestAdminSync", new object[1] { (object)new ZPackage() }); } } public class WackyDatabase_API { private static readonly bool _IsInstalled; private static MethodInfo eAddBlacklistClone; public static bool IsInstalled() { return _IsInstalled; } public static void AddBlacklistClone(string value) { MethodInfo methodInfo = eAddBlacklistClone; if (methodInfo != null) { methodInfo.Invoke(null, new object[1] { value }); } } static WackyDatabase_API() { if (Type.GetType("API.WackyAPI, WackysDatabase") == null) { _IsInstalled = false; return; } Type type = Type.GetType("API.WackyAPI, WackysDatabase"); _IsInstalled = true; eAddBlacklistClone = type.GetMethod("AddBlacklistClone", BindingFlags.Static | BindingFlags.Public); } } [HarmonyPatch(typeof(ZNetScene), "Awake")] internal static class WarfareWizardryCookingFermentingZNetScene_AwakePost_Patch { private static void Postfix(ZNetScene __instance) { //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00c4: Unknown result type (might be due to invalid IL or missing references) //IL_00d0: Expected O, but got Unknown //IL_010c: Unknown result type (might be due to invalid IL or missing references) //IL_0111: Unknown result type (might be due to invalid IL or missing references) //IL_012e: 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_0157: Expected O, but got Unknown //IL_0193: Unknown result type (might be due to invalid IL or missing references) //IL_0198: Unknown result type (might be due to invalid IL or missing references) //IL_01a3: Unknown result type (might be due to invalid IL or missing references) //IL_01c0: Unknown result type (might be due to invalid IL or missing references) //IL_01e2: Expected O, but got Unknown bool flag; if (!((Object)(object)__instance == (Object)null)) { List<GameObject> prefabs = __instance.m_prefabs; flag = prefabs == null || prefabs.Count <= 0; } else { flag = true; } if (flag) { return; } Fermenter component = __instance.GetPrefab("fermenter").GetComponent<Fermenter>(); CookingStation component2 = __instance.GetPrefab("piece_oven").GetComponent<CookingStation>(); foreach (KeyValuePair<GameObject, GameObject> fermenter in WizardryPlugin.fermenters) { component.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 = 6 }); } foreach (KeyValuePair<GameObject, GameObject> item in WizardryPlugin.fermenterssmall) { component.m_conversion.Add(new ItemConversion { m_from = __instance.GetPrefab(((Object)item.Key).name).GetComponent<ItemDrop>(), m_to = __instance.GetPrefab(((Object)item.Value).name).GetComponent<ItemDrop>(), m_producedItems = 4 }); } foreach (KeyValuePair<GameObject, GameObject> oven in WizardryPlugin.ovens) { component2.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>() }); } } } [HarmonyPatch(typeof(ZNetScene), "Awake")] public static class WarfareWizardryDrops_Patch { public static void Postfix(ZNetScene __instance) { //IL_0105: Unknown result type (might be due to invalid IL or missing references) //IL_010a: Unknown result type (might be due to invalid IL or missing references) //IL_011b: Unknown result type (might be due to invalid IL or missing references) //IL_0122: Unknown result type (might be due to invalid IL or missing references) //IL_0129: Unknown result type (might be due to invalid IL or missing references) //IL_0134: Unknown result type (might be due to invalid IL or missing references) //IL_013b: Unknown result type (might be due to invalid IL or missing references) //IL_0147: Expected O, but got Unknown //IL_0172: Unknown result type (might be due to invalid IL or missing references) //IL_0177: Unknown result type (might be due to invalid IL or missing references) //IL_0188: Unknown result type (might be due to invalid IL or missing references) //IL_018f: Unknown result type (might be due to invalid IL or missing references) //IL_0196: Unknown result type (might be due to invalid IL or missing references) //IL_01a1: Unknown result type (might be due to invalid IL or missing references) //IL_01a8: Unknown result type (might be due to invalid IL or missing references) //IL_01b4: Expected O, but got Unknown //IL_01e0: Unknown result type (might be due to invalid IL or missing references) //IL_01e5: Unknown result type (might be due to invalid IL or missing references) //IL_01f6: Unknown result type (might be due to invalid IL or missing references) //IL_01fd: Unknown result type (might be due to invalid IL or missing references) //IL_0204: Unknown result type (might be due to invalid IL or missing references) //IL_020f: Unknown result type (might be due to invalid IL or missing references) //IL_0216: Unknown result type (might be due to invalid IL or missing references) //IL_0222: Expected O, but got Unknown //IL_024e: Unknown result type (might be due to invalid IL or missing references) //IL_0253: Unknown result type (might be due to invalid IL or missing references) //IL_0264: Unknown result type (might be due to invalid IL or missing references) //IL_026b: Unknown result type (might be due to invalid IL or missing references) //IL_0272: Unknown result type (might be due to invalid IL or missing references) //IL_027d: Unknown result type (might be due to invalid IL or missing references) //IL_0284: Unknown result type (might be due to invalid IL or missing references) //IL_0290: Expected O, but got Unknown //IL_02b9: Unknown result type (might be due to invalid IL or missing references) //IL_02be: Unknown result type (might be due to invalid IL or missing references) //IL_02cf: Unknown result type (might be due to invalid IL or missing references) //IL_02d6: Unknown result type (might be due to invalid IL or missing references) //IL_02dd: Unknown result type (might be due to invalid IL or missing references) //IL_02e8: Unknown result type (might be due to invalid IL or missing references) //IL_02ef: Unknown result type (might be due to invalid IL or missing references) //IL_02fb: Expected O, but got Unknown if (!Object.op_Implicit((Object)(object)__instance)) { return; } GameObject prefab = __instance.GetPrefab("gd_king"); GameObject prefab2 = __instance.GetPrefab("Bonemass"); GameObject prefab3 = __instance.GetPrefab("Dragon"); GameObject prefab4 = __instance.GetPrefab("GoblinKing"); GameObject prefab5 = __instance.GetPrefab("SeekerQueen"); if (!Object.op_Implicit((Object)(object)prefab) || !Object.op_Implicit((Object)(object)prefab2) || !Object.op_Implicit((Object)(object)prefab3) || !Object.op_Implicit((Object)(object)prefab4) || !Object.op_Implicit((Object)(object)prefab5)) { return; } CharacterDrop component = prefab.GetComponent<CharacterDrop>(); if (!Object.op_Implicit((Object)(object)component)) { return; } component.m_drops.Add(new Drop { m_prefab = __instance.GetPrefab("ShardElder_TW"), m_amountMin = 1, m_amountMax = 3, m_chance = 1f, m_onePerPlayer = false, m_levelMultiplier = true }); CharacterDrop component2 = prefab2.GetComponent<CharacterDrop>(); if (!Object.op_Implicit((Object)(object)component2)) { return; } component2.m_drops.Add(new Drop { m_prefab = __instance.GetPrefab("ShardBonemass_TW"), m_amountMin = 1, m_amountMax = 4, m_chance = 1f, m_onePerPlayer = false, m_levelMultiplier = true }); CharacterDrop component3 = prefab3.GetComponent<CharacterDrop>(); if (!Object.op_Implicit((Object)(object)component3)) { return; } component3.m_drops.Add(new Drop { m_prefab = __instance.GetPrefab("ShardModer_TW"), m_amountMin = 1, m_amountMax = 4, m_chance = 1f, m_onePerPlayer = false, m_levelMultiplier = true }); CharacterDrop component4 = prefab4.GetComponent<CharacterDrop>(); if (Object.op_Implicit((Object)(object)component4)) { component4.m_drops.Add(new Drop { m_prefab = __instance.GetPrefab("ShardYagluth_TW"), m_amountMin = 1, m_amountMax = 5, m_chance = 1f, m_onePerPlayer = false, m_levelMultiplier = true }); CharacterDrop component5 = prefab5.GetComponent<CharacterDrop>(); if (Object.op_Implicit((Object)(object)component5)) { component5.m_drops.Add(new Drop { m_prefab = __instance.GetPrefab("ShardQueen_TW"), m_amountMin = 1, m_amountMax = 6, m_chance = 1f, m_onePerPlayer = false, m_levelMultiplier = true }); } } } } public class WarfareWizardryMonstrumItemSwap { [HarmonyPatch(typeof(Player), "OnSpawned")] [HarmonyPriority(0)] private static class ZNetScene_Awake_Patch_Monsters { [HarmonyPatch(typeof(FejdStartup), "Awake")] private static class FejdStartup_Awake_Patch { private static void Postfix(FejdStartup __instance) { FirstInit = false; } } public static bool FirstInit; private static void ReplaceItem(string monsterName, string itemName, string itemIWantToReplace, string itemIWillReplaceTo, int quantityForCreation, int quantityForUpgrade) { GameObject prefab = ZNetScene.instance.GetPrefab(monsterName); if (!Object.op_Implicit((Object)(object)prefab)) { return; } GameObject itemPrefab = ObjectDB.instance.GetItemPrefab(itemName); if (!Object.op_Implicit((Object)(object)itemPrefab)) { return; } Recipe recipe = ObjectDB.instance.GetRecipe(itemPrefab.GetComponent<ItemDrop>().m_itemData); if (!Object.op_Implicit((Object)(object)recipe)) { return; } Requirement[] resources = recipe.m_resources; foreach (Requirement val in resources) { if (((Object)val.m_resItem).name == itemIWantToReplace) { val.m_resItem = ObjectDB.instance.GetItemPrefab(itemIWillReplaceTo).GetComponent<ItemDrop>(); val.m_amount = quantityForCreation; val.m_amountPerLevel = quantityForUpgrade; } } } [HarmonyPriority(0)] private static void Postfix(ZNetScene __instance) { if (!FirstInit) { FirstInit = true; ReplaceItem("BlackBear_TW", "RingSwamp_TW", "WitheredBone", "Onyx_TW", 1, 1); ReplaceItem("BlackBear_TW", "RingMountain_TW", "WolfClaw", "Diamond_TW", 1, 1); ReplaceItem("BlackBear_TW", "RingPlains_TW", "GoblinTotem", "Emerald_TW", 1, 1); ReplaceItem("BlackBear_TW", "RingMistlands_TW", "Softtissue", "Amethyst_TW", 1, 1); ReplaceItem("BlackBear_TW", "HelmetCircletBronze_Hunter_TW", "BoneFragments", "TrollBone_TW", 2, 1); ReplaceItem("BlackBear_TW", "HelmetCircletBronze_Sneak_TW", "TrollHide", "RazorbackLeather_TW", 5, 1); ReplaceItem("BlackBear_TW", "HelmetCircletIron_Stamina_TW", "WitheredBone", "Onyx_TW", 1, 1); ReplaceItem("BlackBear_TW", "HelmetCircletIron_Elemental_TW", "WitheredBone", "Onyx_TW", 1, 1); ReplaceItem("BlackBear_TW", "HelmetCircletIron_Hunter_TW", "WitheredBone", "Onyx_TW", 1, 1); ReplaceItem("BlackBear_TW", "HelmetCircletIron_Sneak_TW", "WitheredBone", "Onyx_TW", 1, 1); ReplaceItem("BlackBear_TW", "HelmetCircletSilver_Stamina_TW", "FreezeGland", "Diamond_TW", 1, 1); ReplaceItem("BlackBear_TW", "HelmetCircletSilver_Elemental_TW", "WolfFang", "Diamond_TW", 1, 1); ReplaceItem("BlackBear_TW", "HelmetCircletSilver_Hunter_TW", "WolfFang", "Diamond_TW", 1, 1); ReplaceItem("BlackBear_TW", "HelmetCircletSilver_Sneak_TW", "Obsidian", "Diamond_TW", 1, 1); ReplaceItem("BlackBear_TW", "HelmetCircletBM_Stamina_TW", "Needle", "Emerald_TW", 1, 1); ReplaceItem("BlackBear_TW", "HelmetCircletBM_Elemental_TW", "GoblinTotem", "Emerald_TW", 1, 1); ReplaceItem("BlackBear_TW", "HelmetCircletBM_Hunter_TW", "Tar", "Emerald_TW", 1, 1); ReplaceItem("BlackBear_TW", "HelmetCircletBM_Sneak_TW", "LoxPelt", "Emerald_TW", 1, 1); ReplaceItem("BlackBear_TW", "HelmetCircletCarapace_Stamina_TW", "Eitr", "Amethyst_TW", 1, 1); ReplaceItem("BlackBear_TW", "HelmetCircletCarapace_Elemental_TW", "Eitr", "Amethyst_TW", 1, 1); ReplaceItem("BlackBear_TW", "HelmetCircletCarapace_Hunter_TW", "Eitr", "Amethyst_TW", 1, 1); ReplaceItem("BlackBear_TW", "HelmetCircletCarapace_Sneak_TW", "Eitr", "Amethyst_TW", 1, 1); } } } } [BepInPlugin("Therzie.Wizardry", "Wizardry", "1.2.0")] public class WizardryPlugin : BaseUnityPlugin { public enum Toggle { On = 1, Off = 0 } [HarmonyPatch(typeof(CharacterAnimEvent), "CustomFixedUpdate")] private static class AttackSpeedSystem { private static readonly Dictionary<string, float> _data_Main = new Dictionary<string, float>(); private static readonly Dictionary<string, float> _data_Secondary = new Dictionary<string, float>(); public static void RegisterMainAttacks(GameObject item, float speed) { _data_Main[((Object)item).name] = speed; } public static void RegisterSecondaryAttacks(GameObject item, float speed) { _data_Secondary[((Object)item).name] = speed; } private static void Prefix(CharacterAnimEvent __instance) { Player localPlayer = Player.m_localPlayer; if (!((Object)(object)localPlayer != (Object)(object)__instance.m_character) && ((Character)localPlayer).InAttack()) { GameObject val = ((Humanoid)localPlayer).GetCurrentWeapon()?.m_dropPrefab; if (Object.op_Implicit((Object)(object)val) && _data_Main.TryGetValue(((Object)val).name, out var value) && !((Humanoid)localPlayer).m_currentAttackIsSecondary) { __instance.m_animator.speed = value; } else if (Object.op_Implicit((Object)(object)val) && _data_Secondary.TryGetValue(((Object)val).name, out value) && ((Humanoid)localPlayer).m_currentAttackIsSecondary) { __instance.m_animator.speed = value; } } } } [HarmonyPatch(typeof(Tameable), "UnsummonMaxInstances")] private static class WarfareWizardry_Tameable_UnsummonMaxInstances_Patch { private static string Replacer(Tameable tame) { if (!Object.op_Implicit((Object)(object)tame)) { return ""; } string prefabName = Utils.GetPrefabName(((Component)tame).gameObject); bool flag = false; string result = ((prefabName == "SummonedSurtling_TW") ? Localization.instance.Localize("$staffsurtling_maxsummon") : ((prefabName == "SummonedGolem_TW") ? Localization.instance.Localize("$staffgolem_maxsummon") : Localization.instance.Localize("$hud_maxsummonsreached", new string[1] { tame.m_character.m_name }))); bool flag2 = false; return result; } [UsedImplicitly] private static IEnumerable<CodeInstruction> Transpiler(IEnumerable<CodeInstruction> code) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0009: Expected O, but got Unknown //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Expected O, but got Unknown //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Expected O, but got Unknown CodeMatcher val = new CodeMatcher(code, (ILGenerator)null); val.MatchForward(false, (CodeMatch[])(object)new CodeMatch[1] { new CodeMatch((OpCode?)OpCodes.Ldstr, (object)"$hud_maxsummonsreached", (string)null) }); if (!val.IsValid) { return val.InstructionEnumeration(); } val.SetAndAdvance(OpCodes.Ldarg_0, (object)null); val.Insert((CodeInstruction[])(object)new CodeInstruction[1] { new CodeInstruction(OpCodes.Call, (object)AccessTools.Method(typeof(WarfareWizardry_Tameable_UnsummonMaxInstances_Patch), "Replacer", (Type[])null, (Type[])null)) }); return val.InstructionEnumeration(); } } [HarmonyPatch(typeof(Player), "CanConsumeItem")] private static class PlayerConsumeItemPatchWizardry { private static HashSet<string> prefabNamesToCheck = new HashSet<string> { "MushroomWitcheye_TW", "MushroomDeathcap_TW", "MushroomWizardbutter_TW", "MushroomDevilstongue_TW", "ShroomSoupBlackForest_TW", "ShroomSoupSwamp_TW", "ShroomSoupMountain_TW", "ShroomSoupPlains_TW", "EitrPlateBlackForest_TW", "EitrPlateSwamp_TW", "EitrPlateMountain_TW", "EitrPlatePlains_TW", "BerryCandyBlackForest_TW", "IceHornMountain_TW", "JellyCakeSwamp_TW", "BerryCakePlains_TW" }; private static void Postfix(Player __instance, ItemData item, ref bool __result) { //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0042: 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 = "Wizardry"; internal const string ModVersion = "1.2.0"; internal const string Author = "Therzie"; private const string ModGUID = "Therzie.Wizardry"; private static string ConfigFileName = "Therzie.Wizardry.cfg"; private static string ConfigFileFullPath = Paths.ConfigPath + Path.DirectorySeparatorChar + ConfigFileName; internal static string ConnectionError = ""; private readonly Harmony _harmony = new Harmony("Therzie.Wizardry"); public static CraftingStation WizardTable; public static CraftingStation ArcaneForge; public static CraftingStation WeavingLoom; public static CraftingStation PotionCauldron; public static readonly ManualLogSource WizardryLogger = Logger.CreateLogSource("Wizardry"); private static readonly ConfigSync ConfigSync = new ConfigSync("Therzie.Wizardry") { DisplayName = "Wizardry", CurrentVersion = "1.2.0", MinimumRequiredVersion = "1.2.0", ModRequired = true }; internal static Dictionary<GameObject, GameObject> fermenters = new Dictionary<GameObject, GameObject>(); internal static Dictionary<GameObject, GameObject> fermenterssmall = new Dictionary<GameObject, GameObject>(); internal static Dictionary<GameObject, GameObject> ovens = new Dictionary<GameObject, GameObject>(); public Texture2D tex; private Sprite mySprite; private SpriteRenderer sr; private DateTime _lastReloadTime; private const long RELOAD_DELAY = 10000000L; private static ConfigEntry<Toggle> _serverConfigLocked = null; public void Awake() { //IL_7312: Unknown result type (might be due to invalid IL or missing references) //IL_73a7: Unknown result type (might be due to invalid IL or missing references) //IL_77e0: Unknown result type (might be due to invalid IL or missing references) //IL_7875: Unknown result type (might be due to invalid IL or missing references) //IL_7cb4: Unknown result type (might be due to invalid IL or missing references) //IL_7d49: Unknown result type (might be due to invalid IL or missing references) //IL_81e5: Unknown result type (might be due to invalid IL or missing references) //IL_828a: Unknown result type (might be due to invalid IL or missing references) //IL_873a: Unknown result type (might be due to invalid IL or missing references) //IL_87b6: Unknown result type (might be due to invalid IL or missing references) //IL_8a04: Unknown result type (might be due to invalid IL or missing references) //IL_8a83: Unknown result type (might be due to invalid IL or missing references) Localizer.Load(); SoundMixMan.PatchAssetBundle("warfarewizard"); _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); GameObject val = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "vfx_water_surface_WarfareWizardry_TW"); GameObject val2 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "vfx_RockHit_WarfareWizardry_TW"); GameObject val3 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "vfx_blocked_WafareWizardry_TW"); GameObject val4 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "vfx_ExtensionConnection_WarfareWizardry_TW"); GameObject val5 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "vfx_HitSparks_WarfareWizardry_TW"); GameObject val6 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "vfx_Place_workbench_WarfareWizardry_TW"); GameObject val7 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "vfx_SawDust_WarfareWizardry_TW"); GameObject val8 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "vfx_pickable_pick_WarfareWizardry_TW"); GameObject val9 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "vfx_Potion_eitr_TW"); GameObject val10 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "vfx_corpse_destruction_small_WarfareWizardry_TW"); GameObject val11 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "vfx_clubhit_WarfareWizardry_TW"); GameObject val12 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "vfx_Potion_lumberjack_TW"); GameObject val13 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "vfx_ExtensionConnection_Dummy_WarfareWizardry_TW"); GameObject val14 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "vfx_Potion_ox_TW"); GameObject val15 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "vfx_Potion_miner_TW"); GameObject val16 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "vfx_Potion_Aquatic_TW"); GameObject val17 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "vfx_Potion_sneak_TW"); GameObject val18 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "vfx_Potion_skills_TW"); GameObject val19 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "vfx_Potion_speed_TW"); GameObject val20 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "vfx_Potion_stoneskin_TW"); GameObject val21 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "vfx_creature_soothed_WarfareWizardry_TW"); GameObject val22 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "vfx_Place_wood_pole_WarfareWizardry_TW"); GameObject val23 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "vfx_mushroom_grow_TW"); GameObject val24 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "vfx_bush_destroyed_WarfareWizardry_TW"); GameObject val25 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "vfx_bush_leaf_puff_WarfareWizardry_TW"); GameObject val26 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "vfx_lightningimpactexplode_WarfareWizardry_TW"); GameObject val27 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "vfx_lightning_explosion_effect_WarfareWizardry_TW"); GameObject val28 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "vfx_FireballYellowHit_WarfareWizardry_TW"); GameObject val29 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "vfx_PoisonSpellHit_WarfareWizardry_TW"); GameObject val30 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "vfx_Tared_WarfareWizardry_TW"); GameObject val31 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "fx_backstab_WarfareWizardry_TW"); GameObject val32 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "fx_crit_WarfareWizardry_TW"); GameObject val33 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "fx_block_camshake_WarfareWizardry_TW"); GameObject val34 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "fx_hit_camshake_WarfareWizardry_TW"); GameObject val35 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "fx_swing_camshake_WafareWizardry_TW"); GameObject val36 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "fx_meteor_explosion_WarfareWizardry_TW"); GameObject val37 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "fx_frozenhands_WarfareWizardry_TW"); GameObject val38 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "fx_boar_footstep_walk_WarfareWizardry_TW"); GameObject val39 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "fx_creature_tamed_WarfareWizardry_TW"); GameObject val40 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "fx_seeker_hurt_WarfareWizardry_TW"); GameObject val41 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "fx_icespell_impact_WarfareWizardry_TW"); GameObject val42 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "fx_StaffMountain_IceCone_StartCast_TW"); GameObject val43 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "sfx_greydwarf_attack_hit_WarfareWizardry_TW"); GameObject val44 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "sfx_bomb_throw_WarfareWizardry_TW"); GameObject val45 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "sfx_basestaff_swing_WarfareWizardry_TW"); GameObject val46 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "sfx_blob_attack_WarfareWizardry_TW"); GameObject val47 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "sfx_build_hammer_wood_WarfareWizardry_TW"); GameObject val48 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "sfx_basestaff_hit_WafareWizardry_TW"); GameObject val49 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "sfx_gui_repairitem_workbench_WarfareWizardry_TW"); GameObject val50 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "sfx_wood_blocked_WarfareWizardry_TW"); GameObject val51 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "sfx_wood_destroyed_WarfareWizardry_TW"); GameObject val52 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "sfx_root_trail_WarfareWizardry_TW"); GameObject val53 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "sfx_gui_craftitem_workbench_WarfareWizardry_TW"); GameObject val54 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "sfx_gui_craftitem_workbench_end_WarfareWizardry_TW"); GameObject val55 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "sfx_pickable_pick_WarfareWizardry_TW"); GameObject val56 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "sfx_explosion_WarfareWizardry_TW"); GameObject val57 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "sfx_meteorhit_WarfareWizardry_TW"); GameObject val58 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "sfx_club_hit_WarfareWizardry_TW"); GameObject val59 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "sfx_LightningExplosion_TW"); GameObject val60 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "sfx_rock_destroyed_WarfareWizardry_TW"); GameObject val61 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "sfx_summon_prespawn_WarfareWizardry_TW"); GameObject val62 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "sfx_summon_spawn_WarfareWizardry_TW"); GameObject val63 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "sfx_summon_cast_WarfareWizardry_TW"); GameObject val64 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "sfx_build_hammer_metal_WarfareWizardry_TW"); GameObject val65 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "sfx_gui_craftitem_cauldron_TW"); GameObject val66 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "sfx_gui_craftitem_cauldron_end_TW"); GameObject val67 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "sfx_build_hammer_stone_WarfareWizardry_TW"); GameObject val68 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "sfx_Potion_eitr_minor_TW"); GameObject val69 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "sfx_creature_consume_WarfareWizardry_TW"); GameObject val70 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "sfx_build_cultivator_WarfareWizardry_TW"); GameObject val71 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "sfx_bush_hit_WarfareWizardry_TW"); GameObject val72 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "sfx_Spellbook_TW"); GameObject val73 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "sfx_Spellbook_build_TW"); GameObject val74 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "sfx_build_hammer_default_WarfareWizardry_TW"); GameObject val75 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "sfx_lightning_impact_WarfareWizardry_TW"); GameObject val76 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "sfx_LightningStrike_WarfareWizardry_TW"); GameObject val77 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "sfx_club_swing_WarfareWizardry_TW"); GameObject val78 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "sfx_lightningexplosion_WarfareWizardry_TW"); GameObject val79 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "sfx_seeker_attack_start_WarfareWizardry_TW"); GameObject val80 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "sfx_firespell_release_WarfareWizardry_TW"); GameObject val81 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "sfx_footstep_sneak_WarfareWizardry_TW"); GameObject val82 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "sfx_footstep_swim_WarfareWizardry_TW"); GameObject val83 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "sfx_icespell_release_WarfareWizardry_TW"); GameObject val84 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "fx_footstep_climb_WarfareWizardry_TW"); GameObject val85 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "fx_footstep_jog_WarfareWizardry_TW"); GameObject val86 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "fx_footstep_mud_jog_WarfareWizardry_TW"); GameObject val87 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "fx_footstep_mud_run_WarfareWizardry_TW"); GameObject val88 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "fx_footstep_run_WarfareWizardry_TW"); GameObject val89 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "fx_footstep_snow_jog_WarfareWizardry_TW"); GameObject val90 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "fx_footstep_snow_run_WafareWizardry_TW"); GameObject val91 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("warfarewizard"), "fx_footstep_water_WafareWizardry_TW"); AnimationReplaceManager.AddAnimationSet("warfarewizard", "StaffPlains_Secondary_TW"); AnimationReplaceManager.AddAnimationSet("warfarewizard", "StaffMountainSecondary_TW"); AnimationReplaceManager.AddAnimationSet("warfarewizard", "StaffSwampSecondary_TW"); AnimationReplaceManager.AddAnimationSet("warfarewizard", "StaffMistlandsSecondary_TW"); AnimationReplaceManager.AddAnimationSet("warfarewizard", "CastScroll_TW"); GameObject val92 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("vegetation"), "Pickable_Mushroom_Witcheye_TW"); GameObject val93 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("vegetation"), "MushroomWitcheye_TW", addToObjectDb: true); GameObject val94 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("vegetation"), "Pickable_Mushroom_Deathcap_TW"); GameObject val95 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("vegetation"), "MushroomDeathcap_TW", addToObjectDb: true); GameObject val96 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("vegetation"), "Pickable_Mushroom_Wizardbutter_TW"); GameObject val97 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("vegetation"), "MushroomWizardbutter_TW", addToObjectDb: true); GameObject val98 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("vegetation"), "Pickable_Mushroom_Devilstongue_TW"); GameObject val99 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("vegetation"), "MushroomDevilstongue_TW", addToObjectDb: true); BuildPiece buildPiece = new BuildPiece("vegetation", "Sapling_MushroomWitcheye_TW"); buildPiece.Tool.Add("Cultivator"); buildPiece.RequiredItems.Add("MushroomWitcheye_TW", 1, recover: false); buildPiece.SpecialProperties.NoConfig = true; GameObject val100 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("vegetation"), "Pickable_GrownMushroomWitcheye_TW"); BuildPiece buildPiece2 = new BuildPiece("vegetation", "Sapling_MushroomDeathcap_TW"); buildPiece2.Tool.Add("Cultivator"); buildPiece2.RequiredItems.Add("MushroomDeathcap_TW", 1, recover: false); buildPiece2.SpecialProperties.NoConfig = true; GameObject val101 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("vegetation"), "Pickable_GrownMushroomDeathcap_TW"); BuildPiece buildPiece3 = new BuildPiece("vegetation", "Sapling_MushroomWizardbutter_TW"); buildPiece3.Tool.Add("Cultivator"); buildPiece3.RequiredItems.Add("MushroomWizardbutter_TW", 1, recover: false); buildPiece3.SpecialProperties.NoConfig = true; GameObject val102 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("vegetation"), "Pickable_GrownMushroomWizardbutter_TW"); BuildPiece buildPiece4 = new BuildPiece("vegetation", "Sapling_MushroomDevilstongue_TW"); buildPiece4.Tool.Add("Cultivator"); buildPiece4.RequiredItems.Add("MushroomDevilstongue_TW", 1, recover: false); buildPiece4.SpecialProperties.NoConfig = true; GameObject val103 = ItemManager.PrefabManager.RegisterPrefab(ItemManager.PrefabManager.RegisterAssetBundle("vegetation"), "Pickable_GrownMushroomDevilstongue_TW"); Item item = new Item("warfarewizard", "ShardElder_TW"); item.Configurable = Configurability.Recipe; item.Crafting.Add("ArcaneAnvil_TW", 1); item.RequiredItems.Add("Bronze", 5); item.RequiredItems.Add("AncientSeed", 2); item.RequiredItems.Add("TrophyGreydwarfShaman", 1); item.CraftAmount = 1; Item item2 = new Item("warfarewizard", "ShardBonemass_TW"); item2.Configurable = Configurability.Recipe; item2["Base recipe"].Crafting.Add("ArcaneAnvil_TW", 1); item2["Base recipe"].RequiredItems.Add("Iron", 5); item2["Base recipe"].RequiredItems.Add("WitheredBone", 2); item2["Base recipe"].RequiredItems.Add("TrophySkeletonPoison", 1); item2["Base recipe"].CraftAmount = 1; item2["Alternative recipe"].Crafting.Add("ArcaneAnvil_TW", 1); item2["Alternative recipe"].RequiredItems.Add("ShardElder_TW", 3); item2["Alternative recipe"].RequiredItems.Add("Iron", 1); item2["Alternative recipe"].CraftAmount = 1; Item item3 = new Item("warfarewizard", "ShardModer_TW"); item3["Base recipe"].Crafting.Add("ArcaneAnvil_TW", 1); item3["Base recipe"].RequiredItems.Add("Silver", 5); item3["Base recipe"].RequiredItems.Add("WolfClaw", 2); item3["Base recipe"].RequiredItems.Add("TrophyCultist", 1); item3["Base recipe"].CraftAmount = 1; item3["Alternative recipe"].Crafting.Add("ArcaneAnvil_TW", 1); item3["Alternative recipe"].RequiredItems.Add("ShardBonemass_TW", 3); item3["Alternative recipe"].RequiredItems.Add("Silver", 1); item3["Alternative recipe"].CraftAmount = 1; Item item4 = new Item("warfarewizard", "ShardYagluth_TW"); item4["Base recipe"].Crafting.Add("ArcaneAnvil_TW", 1); item4["Base recipe"].RequiredItems.Add("BlackMetal", 5); item4["Base recipe"].RequiredItems.Add("Needle", 2); item4["Base recipe"].RequiredItems.Add("TrophyGoblinShaman", 1); item4["Base recipe"].CraftAmount = 1; item4["Alternative recipe"].Crafting.Add("ArcaneAnvil_TW", 1); item4["Alternative recipe"].RequiredItems.Add("ShardModer_TW", 3); item4["Alternative recipe"].RequiredItems.Add("BlackMetal", 1); item4["Alternative recipe"].CraftAmount = 1; Item item5 = new Item("warfarewizard", "ShardQueen_TW"); item5["Base recipe"].Crafting.Add("ArcaneAnvil_TW", 1); item5["Base recipe"].RequiredItems.Add("Eitr", 5); item5["Base recipe"].RequiredItems.Add("Softtissue", 2); item5["Base recipe"].RequiredItems.Add("TrophyDvergr", 1); item5["Base recipe"].CraftAmount = 1; item5["Alternative recipe"].Crafting.Add("ArcaneAnvil_TW", 1); item5["Alternative recipe"].RequiredItems.Add("ShardYagluth_TW", 3); item5["Alternative recipe"].RequiredItems.Add("Eitr", 1); item5["Alternative recipe"].CraftAmount = 1; item5.DropsFrom.Add("DvergerMage", 0.1f, 1, 1); item5.DropsFrom.Add("DvergerMageFire", 0.1f, 1, 1); item5.DropsFrom.Add("DvergerMageIce", 0.1f, 1, 1); item5.DropsFrom.Add("DvergerMageSupport", 0.1f, 1, 1); Item item6 = new Item("warfarewizard", "EnchantedWoodBlackForest_TW"); item6["Base recipe"].Crafting.Add("ArcaneAnvil_TW", 1); item6["Base recipe"].RequiredItems.Add("RoundLog", 5); item6["Base recipe"].RequiredItems.Add("GreydwarfEye", 2); item6["Base recipe"].RequiredItems.Add("ShardElder_TW", 1); item6["Base recipe"].CraftAmount = 5; Item item7 = new Item("warfarewizard", "EnchantedWoodSwamp_TW"); item7["Base recipe"].Crafting.Add("ArcaneAnvil_TW", 2); item7["Base recipe"].RequiredItems.Add("ElderBark", 5); item7["Base recipe"].RequiredItems.Add("Ooze", 1); item7["Base recipe"].RequiredItems.Add("ShardBonemass_TW", 1); item7["Base recipe"].CraftAmount = 5; Item item8 = new Item("warfarewizard", "EnchantedWoodMountain_TW"); item8["Base recipe"].Crafting.Add("ArcaneAnvil_TW", 3); item8["Base recipe"].RequiredItems.Add("Wood", 25); item8["Base recipe"].RequiredItems.Add("FreezeGland", 1); item8["Base recipe"].RequiredItems.Add("ShardModer_TW", 1); item8["Base recipe"].CraftAmount = 5; Item item9 = new Item("warfarewizard", "EnchantedWoodPlains_TW"); item9["Base recipe"].Crafting.Add("ArcaneAnvil_TW", 4); item9["Base recipe"].RequiredItems.Add("FineWood", 5); item9["Base recipe"].RequiredItems.Add("LinenThread", 2); item9["Base recipe"].RequiredItems.Add("ShardYagluth_TW", 1); Item item10 = new Item("warfarewizard", "EnchantedWoodMistlands_TW"); item10["Base recipe"].Crafting.Add("ArcaneAnvil_TW", 5); item10["Base recipe"].RequiredItems.Add("YggdrasilWood", 5); item10["Base recipe"].RequiredItems.Add("Eitr", 1); item10["Base recipe"].RequiredItems.Add("ShardQueen_TW", 1); Item item11 = new Item("warfarewizard", "TrophySheep_TW"); Item item12 = new Item("warfarewizard", "WoolScraps_TW"); Item item13 = new Item("warfarewizard", "WoolYarn_Black_TW"); item13.Configurable = Configurability.Recipe; item13.Crafting.Add("WeavingLoom_TW", 1); item13.RequiredItems.Add("WoolScraps_TW", 4); item13.RequiredItems.Add("Tar", 2); item13.CraftAmount = 4; Item item14 = new Item("warfarewizard", "WoolYarn_Teal_TW"); item14.Configurable = Configurability.Recipe; item14.Crafting.Add("WeavingLoom_TW", 1); item14.RequiredItems.Add("WoolScraps_TW", 4); item14.RequiredItems.Add("Eitr", 2); item14.CraftAmount = 4; Item item15 = new Item("warfarewizard", "WoolYarn_Blue_TW"); item15.Configurable = Configurability.Recipe; item15.Crafting.Add("WeavingLoom_TW", 1); item15.RequiredItems.Add("WoolScraps_TW", 4); item15.RequiredItems.Add("FreezeGland", 2); item15.CraftAmount = 4; Item item16 = new Item("warfarewizard", "WoolYarn_Green_TW"); item16.Configurable = Configurability.Recipe; item16.Crafting.Add("WeavingLoom_TW", 1); item16.RequiredItems.Add("WoolScraps_TW", 4); item16.RequiredItems.Add("Ooze", 2); item16.CraftAmount = 4; Item item17 = new Item("warfarewizard", "WoolYarn_Brown_TW"); item17.Configurable = Configurability.Recipe; item17.Crafting.Add("WeavingLoom_TW", 1); item17.RequiredItems.Add("WoolScraps_TW", 4); item17.CraftAmount = 4; Item item18 = new Item("warfarewizard", "WoolYarn_Red_TW"); item18.Configurable = Configurability.Recipe; item18.Crafting.Add("WeavingLoom_TW", 1); item18.RequiredItems.Add("WoolScraps_TW", 4); item18.RequiredItems.Add("Bloodbag", 2); item18.CraftAmount = 4; Item item19 = new Item("warfarewizard", "WoolYarn_White_TW"); item19.Configurable = Configurability.Recipe; item19.Crafting.Add("WeavingLoom_TW", 1); item19.RequiredItems.Add("WoolScraps_TW", 4); item19.RequiredItems.Add("Crystal", 1); item19.CraftAmount = 4; Item item20 = new Item("warfarewizard", "WoolYarn_Yellow_TW"); item20.Configurable = Configurability.Recipe; item20.Crafting.Add("WeavingLoom_TW", 1); item20.RequiredItems.Add("WoolScraps_TW", 4); item20.RequiredItems.Add("Dandelion", 4); item20.CraftAmount = 4; Item item21 = new Item("warfarewizard", "FabricBundle_Blackforest_TW"); item21.Configurable = Configurability.Recipe; item21["Base recipe"].Crafting.Add("WeavingLoom_TW", 1); item21["Base recipe"].RequiredItems.Add("WoolYarn_Brown_TW", 2); item21["Base recipe"].RequiredItems.Add("WoolYarn_Yellow_TW", 2); item21["Base recipe"].CraftAmount = 4; item21["Alternative recipe"].Crafting.Add("WeavingLoom_TW", 1); item21["Alternative recipe"].RequiredItems.Add("DeerHide", 4); item21["Alternative recipe"].RequiredItems.Add("Resin", 6); item21["Alternative recipe"].RequiredItems.Add("ShardElder_TW", 2); item21["Alternative recipe"].CraftAmount = 4; Item item22 = new Item("warfarewizard", "FabricBundle_Swamp_TW"); item22.Configurable = Configurability.Recipe; item22["Base recipe"].Crafting.Add("WeavingLoom_TW", 1); item22["Base recipe"].RequiredItems.Add("WoolYarn_Brown_TW", 2); item22["Base recipe"].RequiredItems.Add("WoolYarn_Green_TW", 2); item22["Base recipe"].CraftAmount = 4; item22["Alternative recipe"].Crafting.Add("WeavingLoom_TW", 1); item22["Alternative recipe"].RequiredItems.Add("Ooze", 8); item22["Alternative recipe"].RequiredItems.Add("Guck", 8); item22["Alternative recipe"].RequiredItems.Add("ShardBonemass_TW", 2); item22["Alternative recipe"].CraftAmount = 4; Item item23 = new Item("warfarewizard", "FabricBundle_Mountain_TW"); item23.Configurable = Configurability.Recipe; item23["Base recipe"].Crafting.Add("WeavingLoom_TW", 1); item23["Base recipe"].RequiredItems.Add("WoolYarn_White_TW", 2); item23["Base recipe"].RequiredItems.Add("WoolYarn_Blue_TW", 2); item23["Base recipe"].CraftAmount = 4; item23["Alternative recipe"].Crafting.Add("WeavingLoom_TW", 1); item23["Alternative recipe"].RequiredItems.Add("WolfPelt", 4); item23["Alternative recipe"].RequiredItems.Add("WolfHairBundle", 4); item23["Alternative recipe"].RequiredItems.Add("ShardModer_TW", 2); item23["Alternative recipe"].CraftAmount = 4; Item item24 = new Item("warfarewizard", "FabricBundle_Plains_TW"); item24.Configurable = Configurability.Recipe; item24["Base recipe"].Crafting.Add("WeavingLoom_TW", 1); item24["Base recipe"].RequiredItems.Add("WoolYarn_Black_TW", 2); item24["Base recipe"].RequiredItems.Add("WoolYarn_Red_TW", 2); item24["Base recipe"].CraftAmount = 4; item24["Alternative recipe"].Crafting.Add("WeavingLoom_TW", 1); item24["Alternative recipe"].RequiredItems.Add("LoxPelt", 4); item24["Alternative recipe"].RequiredItems.Add("Needle", 4); item24["Alternative recipe"].RequiredItems.Add("ShardYagluth_TW", 2); item24["Alternative recipe"].CraftAmount = 4; Item item25 = new Item("warfarewizard", "FabricBundle_Mistlands_TW"); item25.Configurable = Configurability.Recipe; item25["Base recipe"].Crafting.Add("WeavingLoom_TW", 1); item25["Base recipe"].RequiredItems.Add("WoolYarn_Black_TW", 2); item25["Base recipe"].RequiredItems.Add("WoolYarn_Teal_TW", 2); item25["Base recipe"].CraftAmount = 4; item25["Alternative recipe"].Crafting.Add("WeavingLoom_TW", 1); item25["Alternative recipe"].RequiredItems.Add("Carapace", 2); item25["Alternative recipe"].RequiredItems.Add("Softtissue", 2); item25["Alternative recipe"].RequiredItems.Add("ShardQueen_TW", 2); item25["Alternative recipe"].CraftAmount = 4; Item item26 = new Item("warfarewizard", "ArcaneScroll_BlackForest_TW"); item26.Configurable = Configurability.Recipe; item26.Crafting.Add("ArcaneAnvil_TW", 1); item26.RequiredItems.Add("ShardElder_TW", 2); item26.RequiredItems.Add("SurtlingCore", 3); item26.RequiredItems.Add("AncientSeed", 1); item26.CraftAmount = 1; Item item27 = new Item("warfarewizard", "ArcaneScroll_Swamp_TW"); item27.Configurable = Configurability.Recipe; item27["ArcaneScroll Swamp base recipe"].Crafting.Add("ArcaneAnvil_TW", 2); item27["ArcaneScroll Swamp base recipe"].RequiredItems.Add("ShardBonemass_TW", 3); item27["ArcaneScroll Swamp base recipe"].RequiredItems.Add("Guck", 8); item27["ArcaneScroll Swamp base recipe"].RequiredItems.Add("Bloodbag", 3); item27["ArcaneScroll Swamp base recipe"].CraftAmount = 1; item27["ArcaneScroll Swamp-BF upgrade recipe"].Crafting.Add("ArcaneAnvil_TW", 2); item27["ArcaneScroll Swamp-BF upgrade recipe"].RequiredItems.Add("ArcaneScroll_BlackForest_TW", 4); item27["ArcaneScroll Swamp-BF upgrade recipe"].CraftAmount = 1; Item item28 = new Item("warfarewizard", "ArcaneScroll_Mountain_TW"); item28.Configurable = Configurability.Recipe; item28["ArcaneScroll Mountain base recipe"].Crafting.Add("ArcaneAnvil_TW", 3); item28["ArcaneScroll Mountain base recipe"].RequiredItems.Add("ShardModer_TW", 4); item28["ArcaneScroll Mountain base recipe"].RequiredItems.Add("Crystal", 6); item28["ArcaneScroll Mountain base recipe"].RequiredItems.Add("FreezeGland", 2); item28["ArcaneScroll Mountain base recipe"].CraftAmount = 1; item28["ArcaneScroll Mountain-Swamp upgrade recipe"].Crafting.Add("ArcaneAnvil_TW", 3); item28["ArcaneScroll Mountain-Swamp upgrade recipe"].RequiredItems.Add("ArcaneScroll_Swamp_TW", 3); item28["ArcaneScroll Mountain-Swamp upgrade recipe"].CraftAmount = 1; Item item29 = new Item("warfarewizard", "ArcaneScroll_Plains_TW"); item29.Configurable = Configurability.Recipe; item29["ArcaneScroll Plains base recipe"].Crafting.Add("ArcaneAnvil_TW", 4); item29["ArcaneScroll Plains base recipe"].RequiredItems.Add("ShardYagluth_TW", 4); item29["ArcaneScroll Plains base recipe"].RequiredItems.Add("GoblinTotem", 2); item29["ArcaneScroll Plains base recipe"].RequiredItems.Add("Tar", 6); item29["ArcaneScroll Plains base recipe"].CraftAmount = 1; item29["ArcaneScroll Plains-Mountain upgrade recipe"].Crafting.Add("ArcaneAnvil_TW", 4); item29["ArcaneScroll Plains-Mountain upgrade recipe"].RequiredItems.Add("ArcaneScroll_Mountain_TW", 3); item29["ArcaneScroll Plains-Mountain upgrade recipe"].CraftAmount = 1; Item item30 = new Item("warfarewizard", "ArcaneScroll_Mistlands_TW"); item30.Configurable = Configurability.Recipe; item30["ArcaneScroll Mistlands base recipe"].Crafting.Add("ArcaneAnvil_TW", 4); item30["ArcaneScroll Mistlands base recipe"].RequiredItems.Add("ShardQueen_TW", 4); item30["ArcaneScroll Mistlands base recipe"].RequiredItems.Add("Eitr", 4); item30["ArcaneScroll Mistlands base recipe"].RequiredItems.Add("Carapace", 4); item30["ArcaneScroll Mistlands-Plains upgrade recipe"].Crafting.Add("ArcaneAnvil_TW", 4); item30["ArcaneScroll Mistlands-Plains upgrade recipe"].RequiredItems.Add("ArcaneScroll_Plains_TW", 3); item30["ArcaneScroll Mistlands-Plains upgrade recipe"].CraftAmount = 1; Item item31 = new Item("warfarewizard", "ArcaneScroll_DamageBuff_TW"); item31.Configurable = Configurability.Recipe; item31.Crafting.Add("ArcaneAnvil_TW", 4); item31.RequiredItems.Add("ArcaneScroll_Swamp_TW", 1); item31.RequiredItems.Add("ArcaneScroll_Plains_TW", 1); item31.CraftAmount = 2; Item item32 = new Item("warfarewizard", "ArcaneScroll_SpeedBuff_TW"); item32.Configurable = Configurability.Recipe; item32.Crafting.Add("ArcaneAnvil_TW", 3); item32.RequiredItems.Add("ArcaneScroll_BlackForest_TW", 1); item32.RequiredItems.Add("ArcaneScroll_Mountain_TW", 1); item32.CraftAmount = 2; Item item33 = new Item("warfarewizard", "ArcaneScroll_JumpBuff_TW"); item33.Configurable = Configurability.Recipe; item33.Crafting.Add("ArcaneAnvil_TW", 2); item33.RequiredItems.Add("ArcaneScroll_Swamp_TW", 1); item33.RequiredItems.Add("Ooze", 6); item33.CraftAmount = 1; Item item34 = new Item("warfarewizard", "ArcaneScroll_SlowfallBuff_TW"); item34.Configurable = Configurability.Recipe; item34.Crafting.Add("ArcaneAnvil_TW", 3); item34.RequiredItems.Add("ArcaneScroll_Mountain_TW", 1); item34.RequiredItems.Add("WolfClaw", 2); item34.RequiredItems.Add("SurtlingCore", 2); item34.CraftAmount = 1; BuildPiece buildPiece5 = new BuildPiece("warfarewizard", "WizardTable_TW"); buildPiece5.Category.Set("Warfare"); buildPiece5.Crafting.Set(PieceManager.CraftingTable.Workbench); buildPiece5.RequiredItems.Add("SurtlingCore", 5, recover: true); buildPiece5.RequiredItems.Add("Bronze", 10, recover: true); buildPiece5.RequiredItems.Add("RoundLog", 8, recover: true); buildPiece5.RequiredItems.Add("TrollHide", 4, recover: true); buildPiece5.RequiredItems.Add("BoneFragments", 6, recover: true); WizardTable = buildPiece5.Prefab.GetComponent<CraftingStation>(); BuildPiece buildPiece6 = new BuildPiece("warfarewizard", "ArcaneAnvil_TW"); buildPiece6.Category.Set("Warfare"); buildPiece6.Crafting.Set("WizardTable_TW"); buildPiece6.RequiredItems.Add("Stone", 12, recover: true); buildPiece6.RequiredItems.Add("SurtlingCore", 4, recover: true); buildPiece6.RequiredItems.Add("ShardElder_TW", 2, recover: true); WizardTable = buildPiece6.Prefab.GetComponent<CraftingStation>(); BuildPiece buildPiece7 = new BuildPiece("warfarewizard", "WeavingLoom_TW"); buildPiece7.Category.Set("Warfare"); buildPiece7.Crafting.Set("WizardTable_TW"); buildPiece7.RequiredItems.Add("RoundLog", 12, recover: true); buildPiece7.RequiredItems.Add("HardAntler", 2, recover: true); buildPiece7.RequiredItems.Add("Thistle", 6, recover: true); buildPiece7.RequiredItems.Add("BoneFragments", 3, recover: true); WizardTable = buildPiece7.Prefab.GetComponent<CraftingStation>(); BuildPiece buildPiece8 = new BuildPiece("warfarewizard", "PotionCauldron_TW"); buildPiece8.Category.Set("Warfare"); buildPiece8.Crafting.Set("WizardTable_TW"); buildPiece8.RequiredItems.Add("Iron", 8, recover: true); buildPiece8.RequiredItems.Add("Bronze", 4, recover: true); buildPiece8.RequiredItems.Add("Guck", 8, recover: true); buildPiece8.RequiredItems.Add("ShardBonemass_TW", 2, recover: true); WizardTable = buildPiece8.Prefab.GetComponent<CraftingStation>(); BuildPiece buildPiece9 = new BuildPiece("warfarewizard", "WizardTable_ext2_TW"); buildPiece9.Category.Set("Warfare"); buildPiece9.Crafting.Set("WizardTable_TW"); buildPiece9.RequiredItems.Add("WitheredBone", 4, recover: true); buildPiece9.RequiredItems.Add("ElderBark", 10, recover: true); buildPiece9.RequiredItems.Add("Ooze", 3, recover: true); buildPiece9.RequiredItems.Add("ShardBonemass_TW", 2, recover: true); BuildPiece buildPiece10 = new BuildPiece("warfarewizard", "WizardTable_ext3_TW"); buildPiece10.Category.Set("Warfare"); buildPiece10.Crafting.Set("WizardTable_TW"); buildPiece10.RequiredItems.Add("Crystal", 7, recover: true); buildPiece10.RequiredItems.Add("FineWood", 12, recover: true); buildPiece10.RequiredItems.Add("Obsidian", 5, recover: true); buildPiece10.RequiredItems.Add("ShardModer_TW", 2, recover: true); BuildPiece buildPiece11 = new BuildPiece("warfarewizard", "WizardTable_ext4_TW"); buildPiece11.Category.Set("Warfare"); buildPiece11.Crafting.Set("WizardTable_TW"); buildPiece11.RequiredItems.Add("Tar", 12, recover: true); buildPiece11.RequiredItems.Add("GoblinTotem", 3, recover: true); buildPiece11.RequiredItems.Add("TrophySkeleton", 3, recover: true); buildPiece11.RequiredItems.Add("ShardYagluth_TW", 4, recover: true); Item item35 = new Item("warfarewizard", "ShroomSoupBlackForest_TW"); item35.Configurable = Configurability.Recipe; item35.Crafting.Add(ItemManager.CraftingTable.Cauldron, 1); item35.RequiredItems.Add("MushroomWitcheye_TW", 3); item35.RequiredItems.Add("Mushroom", 4); item35.RequiredItems.Add("RawMeat", 2); item35.CraftAmount = 1; Item item36 = new Item("warfarewizard", "EitrPlateBlackForest_TW"); item36.Configurable = Configurability.Recipe; item36.Crafting.Add(ItemManager.CraftingTable.Cauldron, 1); item36.RequiredItems.Add("MushroomWitcheye_TW", 3); item36.RequiredItems.Add("DeerMeat", 2); item36.RequiredItems.Add("Blueberries", 2); item36.RequiredItems.Add("Thistle", 1); item36.CraftAmount = 1; Item item37 = new Item("warfarewizard", "BerryCandyBlackForest_TW"); item37.Configurable = Configurability.Recipe; item37.Crafting.Add(ItemManager.CraftingTable.Cauldron, 1); item37.RequiredItems.Add("MushroomWitcheye_TW", 2); item37.RequiredItems.Add("Blueberries", 4); item37.RequiredItems.Add("Honey", 6); item37.CraftAmount = 1; Item item38 = new Item("warfarewizard", "ShroomSoupSwamp_TW"); item38.Configurable = Configurability.Recipe; item38.Crafting.Add(ItemManager.CraftingTable.Cauldron, 2); item38.RequiredItems.Add("MushroomDeathcap_TW", 2); item38.RequiredItems.Add("Carrot", 2); item38.RequiredItems.Add("Entrails", 3); item38.CraftAmount = 1; Item item39 = new Item("warfarewizard", "EitrPlateSwamp_TW"); item39.Configurable = Configurability.Recipe; item39.Crafting.Add(ItemManager.CraftingTable.Cauldron, 2); item39.RequiredItems.Add("MushroomDeathcap_TW", 3); item39.RequiredItems.Add("Entrails", 3); item39.RequiredItems.Add("Turnip", 2); item39.RequiredItems.Add("Bloodbag", 2); item39.CraftAmount = 1; Item item40 = new Item("warfarewizard", "JellyCakeSwamp_TW"); item40.Configurable = Configurability.Recipe; item40.Crafting.Add(ItemManager.CraftingTable.Cauldron, 2); item40.RequiredItems.Add("MushroomDeathcap_TW", 3); item40.RequiredItems.Add("Ooze", 2); item40.RequiredItems.Add("Honey", 3); item40.CraftAmount = 1; Item item41 = new Item("warfarewizard", "ShroomSoupMountain_TW"); item41.Configurable = Configurability.Recipe; item41.Crafting.Add(ItemManager.CraftingTable.Cauldron, 3); item41.RequiredItems.Add("MushroomWizardbutter_TW", 2); item41.RequiredItems.Add("Onion", 2); item41.RequiredItems.Add("WolfMeat", 2); item41.CraftAmount = 1; Item item42 = new Item("warfarewizard", "EitrPlateMountain_TW"); item42.Configurable = Configurability.Recipe; item42.Crafting.Add(ItemManager.CraftingTable.Cauldron, 3); item42.RequiredItems.Add("MushroomWizardbutter_TW", 3); item42.RequiredItems.Add("WolfMeat", 3); item42.RequiredItems.Add("Onion", 2); item42.RequiredItems.Add("SerpentMeat", 1); item42.CraftAmount = 1; Item item43 = new Item("warfarewizard", "IceHornMountain_TW"); item43.Configurable = Configurability.Recipe; item43.Crafting.Add(ItemManager.CraftingTable.Cauldron, 3); item43.RequiredItems.Add("MushroomWizardbutter_TW", 3); item43.RequiredItems.Add("FreezeGland", 1); item43.RequiredItems.Add("Honey", 4); item43.CraftAmount = 1; Item item44 = new Item("warfarewizard", "ShroomSoupPlains_TW"); item44.Configurable = Configurability.Recipe; item44.Crafting.Add(ItemManager.CraftingTable.Cauldron, 4); item44.RequiredItems.Add("MushroomDevilstongue_TW", 3); item44.RequiredItems.Add("Barley", 2); item44.RequiredItems.Add("LoxMeat", 2); item44.CraftAmount = 1; Item item45 = new Item("warfarewizard", "EitrPlatePlains_TW"); item45.Configurable = Configurability.Recipe; item45.Crafting.Add(ItemManager.CraftingTable.Cauldron, 3); item45.RequiredItems.Add("MushroomDevilstongue_TW", 3); item45.RequiredItems.Add("LoxMeat", 3); item45.RequiredItems.Add("Cloudberry", 2); item45.RequiredItems.Add("BarleyFlour", 1); item45.CraftAmount = 1; Item item46 = new Item("warfarewizard", "UncookedBerryCakePlains_TW"); item46.Crafting.Add(ItemManager.CraftingTable.PrepTable, 1); item46.RequiredItems.Add("Cloudberry", 8); item46.RequiredItems.Add("MushroomDevilstongue_TW", 4); item46.RequiredItems.Add("Honey", 8); item46.RequiredItems.Add("BarleyFlour", 4); item46.CraftAmount = 2; Item item47 = new Item("warfarewizard", "BerryCakePlains_TW"); ovens.Add(item46.Prefab, item47.Prefab); Item item48 = new Item("warfarewizard", "MeadBaseEitrBlackForest_TW"); item48.Configurable = Configurability.Recipe; item48.Crafting.Add(ItemManager.CraftingTable.MeadCauldron, 1); item48.RequiredItems.Add("MeadTasty", 3); item48.RequiredItems.Add("MushroomWitcheye_TW", 5); item48.RequiredItems.Add("Honey", 10); Item item49 = new Item("warfarewizard", "MeadEitrBlackForest_TW"); fermenters.Add(item48.Prefab, item49.Prefab); Item item50 = new Item("warfarewizard", "MeadBaseEitrMountain_TW"); item50.Configurable = Configurability.Recipe; item50.Crafting.Add(ItemManager.CraftingTable.MeadCauldron, 1); item50.RequiredItems.Add("MeadTasty", 3); item50.RequiredItems.Add("MushroomWizardbutter_TW", 5); item50.RequiredItems.Add("Honey", 10); Item item51 = new Item("warfarewizard", "MeadEitrMountain_TW"); fermenters.Add(item50.Prefab, item51.Prefab); Item item52 = new Item("warfarewizard", "PotionLumberjack_TW"); item52.Configurable = Configurability.Recipe; item52.Crafting.Add("PotionCauldron_TW", 1); item52.RequiredItems.Add("ShardElder_TW", 2); item52.RequiredItems.Add("MushroomWitcheye_TW", 4); item52.RequiredItems.Add("AncientSeed", 1); item52.RequiredItems.Add("Thistle", 2); item52.CraftAmount = 3; Item item53 = new Item("warfarewizard", "PotionMiner_TW"); item53.Configurable = Configurability.Recipe; item53.Crafting.Add("PotionCauldron_TW", 1); item53.RequiredItems.Add("ShardBonemass_TW", 2); item53.RequiredItems.Add("MushroomDeathcap_TW", 4); item53.RequiredItems.Add("BoneFragments", 6); item53.RequiredItems.Add("Blueberries", 6); item53.CraftAmount = 3; Item item54 = new Item("warfarewizard", "PotionAquatic_TW"); item54.Configurable = Configurability.Recipe; item54.Crafting.Add("PotionCauldron_TW", 1); item54.RequiredItems.Add("ShardModer_TW", 2); item54.RequiredItems.Add("MushroomWizardbutter_TW", 3); item54.RequiredItems.Add("FishRaw", 6); item54.RequiredItems.Add("Chitin", 2); item54.CraftAmount = 3; Item item55 = new Item("warfarewizard", "PotionSneak_TW"); item55.Configurable = Configurability.Recipe; item55.Crafting.Add("PotionCauldron_TW", 1); item55.RequiredItems.Add("ShardBonemass_TW", 2); item55.RequiredItems.Add("MushroomWitcheye_TW", 3); item55.RequiredItems.Add("MushroomDeathcap_TW", 3); item55.RequiredItems.Add("Carrot", 3); item55.CraftAmount = 3; Item item56 = new Item("warfarewizard", "PotionOx_TW"); item56.Configurable = Configurability.Recipe; item56.Crafting.Add("PotionCauldron_TW", 1); item56.RequiredItems.Add("ShardElder_TW", 2); item56.RequiredItems.Add("MushroomWitcheye_TW", 3); item56.RequiredItems.Add("Bloodbag", 6); item56.RequiredItems.Add("Carrot", 4); item56.CraftAmount = 3; Item item57 = new Item("warfarewizard", "PotionSkills_TW"); item57.Configurable = Configurability.Recipe; item57.Crafting.Add("PotionCauldron_TW", 1); item57.RequiredItems.Add("ShardModer_TW", 3); item57.RequiredItems.Add("MushroomWizardbutter_TW", 3); item57.RequiredItems.Add("MushroomDevilstongue_TW", 3); item57.RequiredItems.Add("Cloudberry", 4); item57.CraftAmount = 3; Item item58 = new Item("warfarewizard", "PotionSpeed_TW"); item58.Configurable = Configurability.Recipe; item58.Crafting.Add("PotionCauldron_TW", 1); item58.RequiredItems.Add("ShardYagluth_TW", 2); item58.RequiredItems.Add("MushroomDevilstongue_TW", 4); item58.RequiredItems.Add("Cloudberry", 4); item58.RequiredItems.Add("Guck", 8); item58.CraftAmount = 2; Item item59 = new Item("warfarewizard", "PotionStoneskin_TW"); item59.Configurable = Configurability.Recipe; item59.Crafting.Add("PotionCauldron_TW", 1); item59.RequiredItems.Add("ShardYagluth_TW", 4); item59.RequiredItems.Add("MushroomDevilstongue_TW", 6); item59.RequiredItems.Add("Stone", 14); item59.RequiredItems.Add("Obsidian", 8); item59.CraftAmount = 2; Item item60 = new Item("warfarewizard", "PotionRejuvenationMinor_TW"); item60.Configurable = Configurability.Recipe; item60.Crafting.Add("PotionCauldron_TW", 1); item60.RequiredItems.Add("ShardBonemass_TW", 2); item60.RequiredItems.Add("MeadHealthMinor", 2); item60.RequiredItems.Add("MeadStaminaMinor", 2); item60.RequiredItems.Add("MeadEitrBlackForest_TW", 2); item60.CraftAmount = 3; Item item61 = new Item("warfarewizard", "PotionRejuvenationMedium_TW"); item61.Configurable = Configurability.Recipe; item61.Crafting.Add("PotionCauldron_TW", 1); item61.RequiredItems.Add("ShardYagluth_TW", 2); item61.RequiredItems.Add("MeadHealthMedium", 2); item61.RequiredItems.Add("MeadStaminaMedium", 2); item61.RequiredItems.Add("MeadEitrMountain_TW", 2); item61.CraftAmount = 3; Item item62 = new Item("warfarewizard", "RingBlackForest_TW"); item62.Configurable = Configurability.Recipe; item62.Crafting.Add("ArcaneAnvil_TW", 1); item62.RequiredItems.Add("ShardElder_TW", 4); item62.RequiredItems.Add("Bronze", 4); item62.RequiredItems.Add("Ruby", 2); item62.CraftAmount = 1; Item item63 = new Item("warfarewizard", "RingSwamp_TW"); item63.Configurable = Configurability.Recipe; item63.Crafting.Add("ArcaneAnvil_TW", 2); item63.RequiredItems.Add("ShardBonemass_TW", 4); item63.RequiredItems.Add("Iron", 4); item63.RequiredItems.Add("WitheredBone", 2); item63.CraftAmount = 1; Item item64 = new Item("warfarewizard", "RingMountain_TW"); item64.Configurable = Configurability.Recipe; item64.Crafting.Add("ArcaneAnvil_TW", 3); item64.RequiredItems.Add("ShardModer_TW", 4); item64.RequiredItems.Add("Silver", 4); item64.RequiredItems.Add("WolfClaw", 2); item64.CraftAmount = 1; Item item65 = new Item("warfarewizard", "RingPlains_TW"); item65.Configurable = Configurability.Recipe; item65.Crafting.Add("ArcaneAnvil_TW", 4); item65.RequiredItems.Add("ShardYagluth_TW", 4); item65.RequiredItems.Add("BlackMetal", 4); item65.RequiredItems.Add("GoblinTotem", 2); item65.RequiredItems.Add("TrophyGrowth", 1); item65.CraftAmount = 1; Item item66 = new Item("warfarewizard", "RingMistlands_TW"); item66.Configurable = Configurability.Recipe; item66.Crafting.Add("ArcaneAnvil_TW", 4); item66.RequiredItems.Add("Carapace", 4); item66.RequiredItems.Add("Bilebag", 1); item66.RequiredItems.Add("Softtissue", 4); item66.RequiredItems.Add("TrophyTick", 1); item66.CraftAmount = 1; Item item67 = new Item("warfarewizard", "HelmetCircletBronze_TW"); item67.Configurable = Configurability.Recipe; item67.Crafting.Add("WizardTable_TW", 3); item67.RequiredItems.Add("Bronze", 6); item67.CraftAmount = 1; Item item68 = new Item("warfarewizard", "HelmetCircletBronze_Stamina_TW"); item68.Configurable = Configurability.Recipe; item68.Crafting.Add("ArcaneAnvil_TW", 2); item68.RequiredItems.Add("HelmetCircletBronze_TW", 1); item68.RequiredItems.Add("Ruby", 1); item68.RequiredItems.Add("ShardElder_TW", 4); item68.RequiredItems.Add("Thistle", 4); item68.RequiredUpgradeItems.Add("Bronze", 4); item68.RequiredUpgradeItems.Add("ShardElder_TW", 1); item68.CraftAmount = 1; Item item69 = new Item("warfarewizard", "HelmetCircletBronze_Elemental_TW"); item69.Configurable = Configurability.Recipe; item69.Crafting.Add("ArcaneAnvil_TW", 2); item69.RequiredItems.Add("HelmetCircletBronze_TW", 1); item69.RequiredItems.Add("Ruby", 1); item69.RequiredItems.Add("ShardElder_TW", 3); item69.RequiredItems.Add("SurtlingCore", 2); item69.RequiredUpgradeItems.Add("Bronze", 4); item69.RequiredUpgradeItems.Add("ShardElder_TW", 1); item69.CraftAmount = 1; Item item70 = new Item("warfarewizard", "HelmetCircletBronze_Hunter_TW"); item70.Configurable = Configurability.Recipe; item70.Crafting.Add("ArcaneAnvil_TW", 2); item70.RequiredItems.Add("HelmetCircletBronze_TW", 1); item70.RequiredItems.Add("Ruby", 1); item70.RequiredItems.Add("ShardElder_TW", 3); item70.RequiredItems.Add("BoneFragments", 6); item70.RequiredUpgradeItems.Add("Bronze", 4); item70.RequiredUpgradeItems.Add("ShardElder_TW", 1); item70.CraftAmount = 1; Item item71 = new Item("warfarewizard", "HelmetCircletBronze_Sneak_TW"); item71.Configurable = Configurability.Recipe; item71.Crafting.Add("ArcaneAnvil_TW", 2); item71.RequiredItems.Add("HelmetCircletBronze_TW", 1); item71.RequiredItems.Add("Ruby", 1); item71.RequiredItems.Add("ShardElder_TW", 3); item71.RequiredItems.Add("TrollHide", 3); item71.RequiredUpgradeItems.Add("Bronze", 4); item71.RequiredUpgradeItems.Add("ShardElder_TW", 1);