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 Warfare v1.9.4
Warfare.dll
Decompiled a week 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 HarmonyLib; using ItemManager; using JetBrains.Annotations; using Jewelcrafting; using KG_Managers; using LocalizationManager; using Microsoft.CodeAnalysis; using PieceManager; using ServerSync; using SkillManager; using SoftReferenceableAssets; using SoundMixManager; using TMPro; using UnityEngine; using UnityEngine.Audio; using UnityEngine.UI; using Warfare.Util; using Warfare_StatusEffects; using Warfare_StatusEffects.StatusEffects; 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: AssemblyTrademark("")] [assembly: AssemblyCopyright("Copyright © 2022")] [assembly: AssemblyProduct("Warfare")] [assembly: AssemblyCompany("Therzie")] [assembly: AssemblyFileVersion("1.9.4")] [assembly: AssemblyDescription("")] [assembly: AssemblyTitle("Warfare")] [assembly: Guid("E0E2F92E-557C-4A05-9D89-AA92A0BD75C4")] [assembly: AssemblyConfiguration("")] [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.9.4.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)] internal sealed class NullableAttribute : Attribute { public readonly byte[] NullableFlags; public NullableAttribute(byte P_0) { NullableFlags = new byte[1] { P_0 }; } public NullableAttribute(byte[] P_0) { NullableFlags = P_0; } } [CompilerGenerated] [Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)] internal sealed class NullableContextAttribute : Attribute { public readonly byte Flag; public NullableContextAttribute(byte P_0) { Flag = P_0; } } [CompilerGenerated] [Embedded] [AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)] internal sealed class RefSafetyRulesAttribute : Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } namespace WarfareColliderFix { [HarmonyPatch(typeof(ZNetScene), "Awake")] internal static class ColliderFix { [HarmonyPriority(0)] private static void Postfix(ZNetScene __instance) { GameObject prefab = __instance.GetPrefab("SledgeFlametal_TW"); object obj; if (prefab == null) { obj = null; } else { Transform obj2 = prefab.transform.Find("attach/SledgeFlametal"); obj = ((obj2 != null) ? ((Component)obj2).gameObject : null); } GameObject val = (GameObject)obj; if ((Object)(object)val != (Object)null && (Object)(object)val.GetComponent<Collider>() == (Object)null) { MeshCollider val2 = val.AddComponent<MeshCollider>(); val2.convex = true; } FixTerrainOp("PickaxeFader_TW"); FixTerrainOp("PickaxeSilver_TW"); void FixTerrainOp(string prefabName) { GameObject prefab2 = __instance.GetPrefab(prefabName); if (!((Object)(object)prefab2 == (Object)null)) { SharedData val3 = prefab2.GetComponent<ItemDrop>()?.m_itemData?.m_shared; if (val3 != null) { GameObject val4 = ((IEnumerable<GameObject>)Resources.FindObjectsOfTypeAll<GameObject>()).FirstOrDefault((Func<GameObject, bool>)((GameObject go) => ((Object)go).name == "digg_v3")); if (!((Object)(object)val4 == (Object)null)) { val3.m_spawnOnHitTerrain = val4; } } } } } } } namespace Warfare { [HarmonyPatch(typeof(ZNetScene), "Awake")] internal static class BowsPatch { private static void ChangeStation(string name) { GameObject prefab = ZNetScene.instance.GetPrefab(name); if (Object.op_Implicit((Object)(object)prefab)) { Recipe recipe = ObjectDB.instance.GetRecipe(prefab.GetComponent<ItemDrop>().m_itemData); if (Object.op_Implicit((Object)(object)recipe)) { recipe.m_craftingStation = WarfarePlugin.FletcherStation; } } } private static void Postfix(ZNetScene __instance) { ChangeStation("BowHuntsman"); ChangeStation("BowDraugrFang"); ChangeStation("BowSpineSnap"); ChangeStation("ArrowBronze"); ChangeStation("ArrowIron"); ChangeStation("ArrowObsidian"); ChangeStation("ArrowSilver"); ChangeStation("ArrowPoison"); ChangeStation("ArrowFrost"); ChangeStation("ArrowNeedle"); ChangeStation("ArrowCarapace"); ChangeStation("BoltCarapace"); ChangeStation("BoltBone"); ChangeStation("BoltIron"); ChangeStation("BoltBlackmetal"); } } public class MonstrumItemSwap { [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("Fox_TW", "SwordFlint_TW", "LeatherScraps", "FoxPelt_TW", 1, 0); ReplaceItem("Fox_TW", "AtgeirFlint_TW", "LeatherScraps", "FoxPelt_TW", 3, 0); ReplaceItem("Fox_TW", "MaceFlint_TW", "LeatherScraps", "FoxPelt_TW", 0, 1); ReplaceItem("BossAsmodeus_TW", "KnifeViper_TW", "TrophyGreydwarfShaman", "TrophyAsmodeus_TW", 1, 1); ReplaceItem("BossSvalt_TW", "DualAxeDemonic_TW", "TrophyDraugrElite", "TrophySvalt_TW", 1, 1); ReplaceItem("BossVrykolathas_TW", "DualScytheBloodthirst_TW", "TrophyBonemass", "TrophyVrykolathas_TW", 1, 1); ReplaceItem("BossVrykolathas_TW", "ScytheVampiric_TW", "TrophyBonemass", "TrophyVrykolathas_TW", 1, 1); ReplaceItem("Razorback_TW", "BattleaxeBronze_TW", "TrophyGreydwarfBrute", "TrophyRazorback_TW", 1, 0); ReplaceItem("Crawler_TW", "CapeRotten_TW", "TrophyBlob", "TrophyCrawler_TW", 1, 0); ReplaceItem("GrizzlyBear_TW", "ClaymoreSilver_TW", "TrophyCultist", "TrophyGrizzlyBear_TW", 1, 0); ReplaceItem("ObsidianGolem_TW", "AtgeirSilver_TW", "TrophyCultist", "TrophyObsidianGolem_TW", 1, 0); ReplaceItem("ArcticSerpent_TW", "BombFire_TW", "TyraniumOre_TW", "FlameCore_TW", 1, 1); ReplaceItem("ArcticSerpent_TW", "BombIce_TW", "TyraniumOre_TW", "FrostCore_TW", 1, 1); ReplaceItem("Razorback_TW", "BowTrollBone_TW", "BoneFragments", "RazorbackTusk_TW", 6, 3); ReplaceItem("Prowler_TW", "FistBlackmetal_TW", "TrophyDeathsquito_TW", "TrophyProwler_TW", 1, 1); ReplaceItem("Prowler_TW", "FistBlackmetal_TW", "Needle", "ProwlerFang_TW", 8, 4); ReplaceItem("Razorback_TW", "KnifeBronze_TW", "BoneFragments", "RazorbackTusk_TW", 5, 2); ReplaceItem("Prowler_TW", "WarpikeBlackmetal_TW", "LoxBone_TW", "ProwlerFang_TW", 10, 5); ReplaceItem("Prowler_TW", "BastardBlackmetal_TW", "LoxBone_TW", "ProwlerFang_TW", 10, 5); ReplaceItem("Prowler_TW", "SwordScimitar_TW", "TrophyGoblin", "TrophyProwler_TW", 1, 0); ReplaceItem("Prowler_TW", "LanceBlackmetal_TW", "LoxBone_TW", "ProwlerFang_TW", 10, 5); } } } } [HarmonyPatch(typeof(Projectile), "OnHit")] internal static class ProjectileSetup2Patch { private static void Postfix(Projectile __instance) { Spin spin = default(Spin); if (((Component)__instance).gameObject.TryGetComponent<Spin>(ref spin)) { Object.DestroyImmediate((Object)(object)spin); } } } [HarmonyPatch(typeof(Attack), "FireProjectileBurst")] internal static class ProjectileSetupPatchX { private static void Postfix(Attack __instance) { //IL_0076: Unknown result type (might be due to invalid IL or missing references) //IL_007b: Unknown result type (might be due to invalid IL or missing references) if (!WarfarePlugin.projectilePrefabsX.Contains(__instance.m_attackProjectile)) { return; } MeshRenderer[] componentsInChildren = __instance.m_weapon.m_lastProjectile.GetComponentsInChildren<MeshRenderer>(); foreach (MeshRenderer val in componentsInChildren) { if (((Component)val).gameObject.activeInHierarchy) { Spin spin = ((Component)val).gameObject.AddComponent<Spin>(); spin.spinDirection = new Vector3(1500f, 0f, 0f); } } } } [HarmonyPatch(typeof(Attack), "FireProjectileBurst")] internal static class ProjectileSetupPatchY { private static void Postfix(Attack __instance) { //IL_0076: Unknown result type (might be due to invalid IL or missing references) //IL_007b: Unknown result type (might be due to invalid IL or missing references) if (!WarfarePlugin.projectilePrefabsY.Contains(__instance.m_attackProjectile)) { return; } MeshRenderer[] componentsInChildren = __instance.m_weapon.m_lastProjectile.GetComponentsInChildren<MeshRenderer>(); foreach (MeshRenderer val in componentsInChildren) { if (((Component)val).gameObject.activeInHierarchy) { Spin spin = ((Component)val).gameObject.AddComponent<Spin>(); spin.spinDirection = new Vector3(0f, 1500f, 0f); } } } } [HarmonyPatch(typeof(Attack), "FireProjectileBurst")] internal static class ProjectileSetupPatchZ { private static void Postfix(Attack __instance) { //IL_0076: Unknown result type (might be due to invalid IL or missing references) //IL_007b: Unknown result type (might be due to invalid IL or missing references) if (!WarfarePlugin.projectilePrefabsZ.Contains(__instance.m_attackProjectile)) { return; } MeshRenderer[] componentsInChildren = __instance.m_weapon.m_lastProjectile.GetComponentsInChildren<MeshRenderer>(); foreach (MeshRenderer val in componentsInChildren) { if (((Component)val).gameObject.activeInHierarchy) { Spin spin = ((Component)val).gameObject.AddComponent<Spin>(); spin.spinDirection = new Vector3(0f, 0f, 1500f); } } } } [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 WarfarePlugin.WarfareLogger.LogDebug((object)"Registering version RPC handler"); peer.m_rpc.Register<ZPackage>("Warfare_VersionCheck", (Action<ZRpc, ZPackage>)RpcHandlers.RPC_Warfare_Version); WarfarePlugin.WarfareLogger.LogDebug((object)"Invoking version check"); ZPackage val = new ZPackage(); val.Write("1.9.4"); peer.m_rpc.Invoke("Warfare_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()) { WarfarePlugin.WarfareLogger.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_Warfare_Version(ZRpc rpc, ZPackage pkg) { string text = pkg.ReadString(); WarfarePlugin.WarfareLogger.LogInfo((object)("Version check, local: 1.9.4, remote: " + text)); if (text != "1.9.4") { WarfarePlugin.ConnectionError = "Warfare Installed: 1.9.4\n Needed: " + text; if (ZNet.instance.IsServer()) { WarfarePlugin.WarfareLogger.LogWarning((object)("Peer (" + rpc.m_socket.GetHostName() + ") has incompatible version, disconnecting")); rpc.Invoke("Error", new object[1] { 3 }); } } else if (!ZNet.instance.IsServer()) { WarfarePlugin.WarfareLogger.LogInfo((object)"Received same version from server!"); } else { WarfarePlugin.WarfareLogger.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" + WarfarePlugin.ConnectionError; } } } public class Spin : MonoBehaviour { [SerializeField] internal Vector3 spinDirection; private void Update() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) ((Component)this).transform.Rotate(spinDirection * Time.deltaTime); } } public static class StLocIndex_patch { public static bool StlocIndex(this object obj, int index) { return obj is LocalBuilder localBuilder && localBuilder.LocalIndex == index; } } public class VanillaDropTweaks { [HarmonyPatch(typeof(ZNetScene), "Awake")] public static class VanillaDropTweaks_MonstrumPatch { public static void Postfix(ZNetScene __instance) { if (Object.op_Implicit((Object)(object)__instance)) { ModifyDropChance(__instance, "Neck", 1, 0.2f); ModifyDropChance(__instance, "Wraith", 0, 0.25f); ModifyDropChance(__instance, "Draugr_Elite", 1, 0.25f); ModifyDropChance(__instance, "StoneGolem", 1, 0.15f); ModifyDropChance(__instance, "Fenring_Cultist", 1, 0.18f); ModifyDropChance(__instance, "GoblinShaman", 3, 0.15f); ModifyDropChance(__instance, "GoblinBrute", 3, 0.2f); ModifyDropChance(__instance, "Lox", 1, 0.18f); ModifyDropChance(__instance, "SeekerBrute", 2, 0.15f); ModifyDropChance(__instance, "Seeker", 2, 0.2f); } } private static void ModifyDropChance(ZNetScene scene, string prefabName, int index, float chance) { GameObject prefab = scene.GetPrefab(prefabName); if (Object.op_Implicit((Object)(object)prefab)) { CharacterDrop component = prefab.GetComponent<CharacterDrop>(); if (Object.op_Implicit((Object)(object)component) && index >= 0 && index < component.m_drops.Count) { component.m_drops[index].m_chance = chance; } } } } } [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; } WarfarePlugin.WarfareLogger.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() }); } } [HarmonyPatch(typeof(ZNetScene), "Awake")] internal static class WarfareCookingFermentingZNetScene_AwakePost_Patch { private static void Postfix(ZNetScene __instance) { //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_009e: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Expected O, but got Unknown //IL_00f7: Unknown result type (might be due to invalid IL or missing references) //IL_00fc: Unknown result type (might be due to invalid IL or missing references) //IL_0119: Unknown result type (might be due to invalid IL or missing references) //IL_0136: Unknown result type (might be due to invalid IL or missing references) //IL_0142: Expected O, but got Unknown if ((Object)(object)__instance == (Object)null) { return; } List<GameObject> prefabs = __instance.m_prefabs; if (prefabs == null || prefabs.Count <= 0) { return; } Fermenter component = __instance.GetPrefab("fermenter").GetComponent<Fermenter>(); foreach (KeyValuePair<GameObject, GameObject> fermenter in WarfarePlugin.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 = 10 }); } Fermenter component2 = __instance.GetPrefab("fermenter").GetComponent<Fermenter>(); foreach (KeyValuePair<GameObject, GameObject> item in WarfarePlugin.fermentersless) { 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 = 3 }); } } } public class WeaponSkillPatch { [HarmonyPatch(typeof(Attack), "FireProjectileBurst")] public static class Attack_FireProjectileBurst_Patch { [HarmonyPatch(typeof(Attack), "GetAttackStamina")] private static class Attack_GetAttackStamina_Patch_Throwing { private static void Postfix(Attack __instance, ref float __result) { if (ThrowableWeapons.Contains(__instance.m_weapon.m_shared.m_name)) { float skillFactor = ((Character)(object)Player.m_localPlayer).GetSkillFactor("Throwing"); __result *= 1f - skillFactor; } } } [HarmonyPatch(typeof(Attack), "GetAttackStamina")] private static class Attack_GetAttackStamina_Patch_Scythes { private static void Postfix(Attack __instance, ref float __result) { if (ScytheWeapons.Contains(__instance.m_weapon.m_shared.m_name)) { float skillFactor = ((Character)(object)Player.m_localPlayer).GetSkillFactor("Scythes"); __result *= 1f - skillFactor; } } } private static List<string> ThrowableWeapons = new List<string> { "$throw_axe_flint_TW", "$throw_axe_bronze_TW", "$throw_axe_iron_TW", "$throw_axe_silver_TW", "$throw_axe_blackmetal_TW", "$throw_axe_dvergr_TW", "$throw_axe_njord_TW", "$throw_axe_surtr_TW" }; private static List<string> ScytheWeapons = new List<string> { "$dual_scythebloodthirst_TW", "$scythe_vampiric_TW" }; private static void Modify(Attack a, HitData hit, ref float projVelocity, ref float projectileAccuracy) { //IL_0048: 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) if (!((Object)(object)a.m_character != (Object)(object)Player.m_localPlayer) && ThrowableWeapons.Contains(a.m_weapon.m_shared.m_name)) { hit.m_skill = fromName("Throwing"); float skillFactor = ((Character)(object)Player.m_localPlayer).GetSkillFactor("Throwing"); projVelocity *= 1f + skillFactor; projectileAccuracy *= 1f + skillFactor; } } [UsedImplicitly] public 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_0036: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Expected O, but got Unknown //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Expected O, but got Unknown //IL_00a2: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Expected O, but got Unknown //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00c9: Expected O, but got Unknown //IL_00e4: Unknown result type (might be due to invalid IL or missing references) //IL_00ea: Expected O, but got Unknown //IL_0114: Unknown result type (might be due to invalid IL or missing references) //IL_011a: Expected O, but got Unknown CodeMatcher val = new CodeMatcher(code, (ILGenerator)null); CodeMatcher val2 = val; bool flag = false; val2.MatchForward(flag, (CodeMatch[])(object)new CodeMatch[1] { new CodeMatch((Func<CodeInstruction, bool>)((CodeInstruction ins) => ins.opcode == OpCodes.Stloc_S && ins.operand.StlocIndex(22)), (string)null) }); if (val.IsInvalid) { return code; } byte b = 21; byte b2 = 3; byte b3 = 4; val.Advance(1); val.InsertAndAdvance((CodeInstruction[])(object)new CodeInstruction[1] { new CodeInstruction(OpCodes.Ldarg_0, (object)null) }); val.InsertAndAdvance((CodeInstruction[])(object)new CodeInstruction[1] { new CodeInstruction(OpCodes.Ldloc_S, (object)b) }); val.InsertAndAdvance((CodeInstruction[])(object)new CodeInstruction[1] { new CodeInstruction(OpCodes.Ldloca_S, (object)b2) }); val.InsertAndAdvance((CodeInstruction[])(object)new CodeInstruction[1] { new CodeInstruction(OpCodes.Ldloca_S, (object)b3) }); val.InsertAndAdvance((CodeInstruction[])(object)new CodeInstruction[1] { new CodeInstruction(OpCodes.Call, (object)AccessTools.Method(typeof(Attack_FireProjectileBurst_Patch), "Modify", (Type[])null, (Type[])null)) }); return val.Instructions(); } } public static SkillType fromName(string englishName) { //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) return (SkillType)Math.Abs(StringExtensionMethods.GetStableHashCode(englishName)); } } [BepInPlugin("Therzie.Warfare", "Warfare", "1.9.4")] [BepInDependency(/*Could not decode attribute arguments.*/)] public class WarfarePlugin : 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(ObjectDB), "Awake")] private static class DisableRecipesWarfare { private static readonly List<string> disabledRecipes = new List<string> { "Battleaxe", "BattleaxeCrystal", "FistFenrirClaw", "SledgeIron", "SledgeStagbreaker", "SledgeDemolisher" }; private static void Postfix(ObjectDB __instance) { foreach (Recipe recipe in __instance.m_recipes) { if (!((Object)(object)recipe.m_item == (Object)null) && disabledRecipes.Contains(((Object)recipe.m_item).name)) { WarfareLogger.LogInfo((object)("ODB Disabling recipe for " + ((Object)recipe.m_item).name)); recipe.m_enabled = false; } } } } 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 = "Warfare"; internal const string ModVersion = "1.9.4"; internal const string Author = "Therzie"; private const string ModGUID = "Therzie.Warfare"; private static string ConfigFileName = "Therzie.Warfare.cfg"; private static string ConfigFileFullPath = Paths.ConfigPath + Path.DirectorySeparatorChar + ConfigFileName; internal static string ConnectionError = ""; private readonly Harmony _harmony = new Harmony("Therzie.Warfare"); public static CraftingStation FletcherStation; public static readonly ManualLogSource WarfareLogger = Logger.CreateLogSource("Warfare"); private static readonly ConfigSync ConfigSync = new ConfigSync("Therzie.Warfare") { DisplayName = "Warfare", CurrentVersion = "1.9.4", MinimumRequiredVersion = "1.9.4", ModRequired = true }; internal static List<GameObject> projectilePrefabsX = new List<GameObject>(); internal static List<GameObject> projectilePrefabsY = new List<GameObject>(); internal static List<GameObject> projectilePrefabsZ = new List<GameObject>(); internal static Dictionary<GameObject, GameObject> fermenters = new Dictionary<GameObject, GameObject>(); internal static Dictionary<GameObject, GameObject> fermentersless = 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() { Localizer.Load(); AudioMixerFix.Init(WarfareLogger); _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); BuildPiece buildPiece = new BuildPiece("warfare", "FletcherTable_TW"); buildPiece.Category.Set("Warfare"); buildPiece.Crafting.Set(PieceManager.CraftingTable.Workbench); buildPiece.RequiredItems.Add("Bronze", 6, recover: true); buildPiece.RequiredItems.Add("RoundLog", 10, recover: true); buildPiece.RequiredItems.Add("LeatherScraps", 6, recover: true); buildPiece.RequiredItems.Add("DeerHide", 4, recover: true); FletcherStation = buildPiece.Prefab.GetComponent<CraftingStation>(); BuildPiece buildPiece2 = new BuildPiece("warfare", "FletcherTable_ext1_TW"); buildPiece2.Category.Set("Warfare"); buildPiece2.Crafting.Set("FletcherTable_TW"); buildPiece2.RequiredItems.Add("Bronze", 4, recover: true); buildPiece2.RequiredItems.Add("FineWood", 12, recover: true); buildPiece2.RequiredItems.Add("BronzeNails", 20, recover: true); buildPiece2.RequiredItems.Add("DeerHide", 4, recover: true); BuildPiece buildPiece3 = new BuildPiece("warfare", "FletcherTable_ext2_TW"); buildPiece3.Category.Set("Warfare"); buildPiece3.Crafting.Set("FletcherTable_TW"); buildPiece3.RequiredItems.Add("BronzeNails", 20, recover: true); buildPiece3.RequiredItems.Add("RoundLog", 8, recover: true); buildPiece3.RequiredItems.Add("TrollHide", 10, recover: true); buildPiece3.RequiredItems.Add("TrollBone_TW", 2, recover: true); BuildPiece buildPiece4 = new BuildPiece("warfare", "FletcherTable_ext3_TW"); buildPiece4.Category.Set("Warfare"); buildPiece4.Crafting.Set("FletcherTable_TW"); buildPiece4.RequiredItems.Add("Iron", 10, recover: true); buildPiece4.RequiredItems.Add("ElderBark", 10, recover: true); buildPiece4.RequiredItems.Add("IronNails", 40, recover: true); buildPiece4.RequiredItems.Add("RottenPelt_TW", 4, recover: true); BuildPiece buildPiece5 = new BuildPiece("warfare", "FletcherTable_ext4_TW"); buildPiece5.Category.Set("Warfare"); buildPiece5.Crafting.Set("FletcherTable_TW"); buildPiece5.RequiredItems.Add("Silver", 14, recover: true); buildPiece5.RequiredItems.Add("FineWood", 10, recover: true); buildPiece5.RequiredItems.Add("Obsidian", 8, recover: true); buildPiece5.RequiredItems.Add("WolfPelt", 4, recover: true); BuildPiece buildPiece6 = new BuildPiece("warfare", "BlackForge_ext3_TW"); buildPiece6.Category.Set(BuildPieceCategory.Crafting); buildPiece6.Crafting.Set(PieceManager.CraftingTable.BlackForge); buildPiece6.RequiredItems.Add("Eitr", 10, recover: true); buildPiece6.RequiredItems.Add("FlametalNew", 16, recover: true); buildPiece6.RequiredItems.Add("Grausten", 12, recover: true); buildPiece6.RequiredItems.Add("BlackMarble", 12, recover: true); BuildPiece buildPiece7 = new BuildPiece("warfare", "BlackForge_ext4_TW"); buildPiece7.Category.Set(BuildPieceCategory.Crafting); buildPiece7.Crafting.Set(PieceManager.CraftingTable.BlackForge); buildPiece7.RequiredItems.Add("Iron", 20, recover: true); buildPiece7.RequiredItems.Add("BlackMarble", 25, recover: true); buildPiece7.RequiredItems.Add("YggdrasilWood", 10, recover: true); buildPiece7.RequiredItems.Add("BlackCore", 5, recover: true); Sprite val = Functions.loadSprite("HacknSlash.png"); Sprite icon = Functions.loadSprite("BleedIcon.png"); Sprite icon2 = Functions.loadSprite("GhostIcon.png"); Sprite icon3 = Functions.loadSprite("BuckshotIcon.png"); GameObject val2 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "Ravens_TW"); GameObject val3 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "digg_v3_TW"); GameObject val4 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "digg_pickaxearrow_TW"); GameObject val5 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "digg_pickaxebolt_TW"); GameObject val6 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "VFX_pickaxearrowaoe_TW"); GameObject val7 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "DemonicAxe_fireburn_AOE_TW"); GameObject val8 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "vfx_Potion_stamina_medium_TW"); GameObject val9 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "ChainLightningMistlands_TW"); GameObject val10 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "fx_chainlightning_spread_TW"); GameObject val11 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "vfx_arrowhitTW"); GameObject val12 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "vfx_blockedTW"); GameObject val13 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "vfx_bow_fireTW"); GameObject val14 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "vfx_clubhitTW"); GameObject val15 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "vfx_firearrow_hitTW"); GameObject val16 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "vfx_frostarrow_hitTW"); GameObject val17 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "vfx_HitSparksFistTW"); GameObject val18 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "vfx_Place_diggTW"); GameObject val19 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "vfx_sledge_hitTW"); GameObject val20 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "vfx_sledge_iron_hitTW"); GameObject val21 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "vfx_surtr_sledge_hitTW"); GameObject val22 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "vfx_njord_sledge_hitTW"); GameObject val23 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "vfx_arbalest_fire_TW"); GameObject vfx = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "vfx_HitSparksTW"); GameObject val24 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "vfx_sledgebonemass_hitTW"); GameObject val25 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "vfx_warpikejumpAOE_hitTW"); GameObject val26 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "vfx_warpikeanimationAOE_TW"); GameObject val27 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "vfx_warpikeDvergrjump_TW"); GameObject val28 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "vfx_troll_rock_destroyed_improved_TW"); GameObject val29 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "vfx_FistNjordAOE_hitTW"); GameObject val30 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "vfx_FistDvergr_secondary_TW"); GameObject val31 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "vfx_YagluthBlade_meteorstart_TW"); GameObject val32 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "vfx_demonicaxe_jump_hitTW"); GameObject val33 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "vfx_dualblade_fire_jump_hitTW"); GameObject val34 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "vfx_dualblade_ice_hitTW"); GameObject val35 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "vfx_dragonslayer_hitTW"); GameObject val36 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "vfx_kromaxe_jump_hitTW"); GameObject vfx2 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "vfx_dummy_SE_TW"); GameObject val37 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "vfx_GlacierRockDestroyed_small_TW"); PiecePrefabManager.RegisterPrefab("warfare", "VFX_lightning_TW"); PiecePrefabManager.RegisterPrefab("warfare", "vfx_Place_stone_wall_2x1TW"); PiecePrefabManager.RegisterPrefab("warfare", "vfx_SawDustTW"); PiecePrefabManager.RegisterPrefab("warfare", "vfx_ExtensionConnectionTW"); PiecePrefabManager.RegisterPrefab("warfare", "vfx_build_lowfog_TW"); PiecePrefabManager.RegisterPrefab("warfare", "vfx_Place_workbench_TW"); PiecePrefabManager.RegisterPrefab("warfare", "vfx_Place_wood_beam_TW"); PiecePrefabManager.RegisterPrefab("warfare", "vfx_Place_wood_wall_TW"); PiecePrefabManager.RegisterPrefab("warfare", "vfx_Place_wood_pole_TW"); PiecePrefabManager.RegisterPrefab("warfare", "vfx_logdestroyed_TW"); PiecePrefabManager.RegisterPrefab("warfare", "vfx_RockDestroyed_TW"); PiecePrefabManager.RegisterPrefab("warfare", "vfx_RockHit_TW"); PiecePrefabManager.RegisterPrefab("warfare", "vfx_pickable_pick_TW"); PiecePrefabManager.RegisterPrefab("warfare", "vfx_bush_leaf_puff_TW"); PiecePrefabManager.RegisterPrefab("warfare", "vfx_bush_destroyed_TW"); PiecePrefabManager.RegisterPrefab("warfare", "vfx_tree_fall_hit_TW"); PiecePrefabManager.RegisterPrefab("warfare", "fx_WaterImpact_Big_TW"); PiecePrefabManager.RegisterPrefab("warfare", "vfx_turnip_grow_TW"); GameObject val38 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "fx_block_camshakeTW"); GameObject val39 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "fx_hit_camshake_knifeTW"); GameObject val40 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "fx_hit_camshakeTW"); GameObject val41 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "fx_swing_camshakeTW"); GameObject val42 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "fx_spinlightning_aoe_TW"); GameObject val43 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "fx_axelightning_aoe_TW"); GameObject val44 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "fx_lancelightning_aoe_TW"); GameObject val45 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "fx_sledge_demolisher_TW"); GameObject val46 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "fx_claymorelightning_aoe_TW"); GameObject val47 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "fx_bastardlightning_aoe_TW"); GameObject val48 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "fx_raven_despawn_TW"); GameObject val49 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "fx_lightningcasting_TW"); GameObject val50 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "fx_warpikelightning_aoe_TW"); GameObject val51 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "fx_YagluthBlade_meteor_explosion_TW"); GameObject val52 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "fx_eikthyrcrossbow"); GameObject val53 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "fx_meteor_explosion_TW"); GameObject val54 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "fx_BastardSecondary_conewave_TW"); GameObject val55 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "vfx_BastardSecondary_hit_TW"); GameObject val56 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "fx_BastardDwarvenSecondary_conewave_TW"); GameObject vfx3 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "adrenaline_effect_TW"); GameObject vfx4 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "haste_effect_TW"); GameObject vfx5 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "vampirism_effect_TW"); GameObject vfx6 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "bash_effect_TW"); GameObject vfx7 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "bleed_effect_TW"); GameObject val57 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "burning_effect_TW"); GameObject val58 = PrefabManager.RegisterPrefab("warfare", "greatbowmoder_explosion_TW"); GameObject val59 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_axethrow_TW"); GameObject val60 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_throwaxesecondary_TW"); GameObject val61 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_arrow_hitTW"); GameObject val62 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_atgeir_attack_secondaryTW"); GameObject val63 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_atgeir_attackTW"); GameObject val64 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_axe_hitTW"); GameObject val65 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_axe_swingTW"); GameObject val66 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_battleaxe_hitTW"); GameObject val67 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_battleaxe_swing_woshTW"); GameObject val68 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_bow_drawTW"); GameObject val69 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_claw_swingTW"); GameObject val70 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_firearrow_hitTW"); GameObject val71 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_fist_hitTW"); GameObject val72 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_claymore_swing_TW"); GameObject val73 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_fist_metal_blockedTW"); GameObject val74 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_fist_swingTW"); GameObject val75 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_frostarrow_hitTW"); GameObject val76 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_knife_swingTW"); GameObject val77 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_lightningarrow_hitTW"); GameObject val78 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_metal_blockedTW"); GameObject val79 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_pickaxe_hitTW"); GameObject val80 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_pickaxe_swingTW"); GameObject val81 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_rock_destroyedTW"); GameObject val82 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_sledge_hitTW"); GameObject val83 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_sledge_iron_hit_TW"); GameObject val84 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_spear_hitTW"); GameObject val85 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_spear_pokeTW"); GameObject val86 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_spear_throwTW"); GameObject val87 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_sword_hitTW"); GameObject val88 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_sword_swingTW"); GameObject val89 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_torch_swingTW"); GameObject val90 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_unarmed_hitTW"); GameObject val91 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_unarmed_swingTW"); GameObject val92 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_wolf_attackTW"); GameObject val93 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_wood_blockedTW"); GameObject val94 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_wood_destroyedTW"); GameObject val95 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_oozebomb_explode_TW"); GameObject val96 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_club_hitTW"); GameObject val97 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_club_swingTW"); GameObject val98 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_metal_shield_blocked_TW"); GameObject val99 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_battlehammer_hitTW"); GameObject val100 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_dualhammer_hit_TW"); GameObject val101 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_arbalest_fire_TW"); GameObject val102 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_bomb_throw_TW"); GameObject val103 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_spiritbomb_throw_TW"); GameObject val104 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_overhead_hitTW"); GameObject val105 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_overhead_swingTW"); GameObject val106 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_blob_attack_TW"); GameObject val107 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_bow_fire_TW"); GameObject val108 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_insect_attackTW"); GameObject val109 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_fistblackmetal_TW"); GameObject val110 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_meteorhit_TW"); GameObject val111 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_meteorstart_TW"); GameObject val112 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_fireattack_TW"); GameObject val113 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_sledge_lowervolhitTW"); GameObject val114 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_knuckleduster_swingTW"); GameObject val115 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_knuckles_slamhitTW"); GameObject val116 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_sledge_swingTW"); GameObject val117 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_iceball_TW"); GameObject val118 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_iceblast_TW"); GameObject val119 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_ice_destroyed_TW"); GameObject val120 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_minerock_destroyedTW"); GameObject val121 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_dualblade_jump_hit_TW"); GameObject val122 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_warpike_secondaryTW"); GameObject val123 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_greydwarf_attack_hit_TW"); GameObject val124 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_YagluthBladeSecondary_TW"); GameObject val125 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "sfx_kromaxe_secondaryhit_TW"); PiecePrefabManager.RegisterPrefab("warfare", "sfx_gui_repairitem_forgeTW"); PiecePrefabManager.RegisterPrefab("warfare", "sfx_gui_craftitem_forgeTW"); PiecePrefabManager.RegisterPrefab("warfare", "sfx_gui_craftitem_forge_endTW"); PiecePrefabManager.RegisterPrefab("warfare", "sfx_build_forgottenforge_TW"); PiecePrefabManager.RegisterPrefab("warfare", "sfx_build_hammer_metalTW"); PiecePrefabManager.RegisterPrefab("warfare", "sfx_build_hammer_woodTW"); PiecePrefabManager.RegisterPrefab("warfare", "sfx_build_ymirforge_TW"); PiecePrefabManager.RegisterPrefab("warfare", "sfx_gui_craftitem_workbench_TW"); PiecePrefabManager.RegisterPrefab("warfare", "sfx_gui_craftitem_workbench_end_TW"); PiecePrefabManager.RegisterPrefab("warfare", "sfx_gui_repairitem_workbench_TW"); PiecePrefabManager.RegisterPrefab("warfare", "sfx_build_hammer_default_TW"); PiecePrefabManager.RegisterPrefab("warfare", "sfx_tree_hit_TW"); PiecePrefabManager.RegisterPrefab("warfare", "sfx_wood_break_TW"); PiecePrefabManager.RegisterPrefab("warfare", "sfx_rock_hit_TW"); PiecePrefabManager.RegisterPrefab("warfare", "sfx_pickable_pick_TW"); PiecePrefabManager.RegisterPrefab("warfare", "sfx_bush_hit_TW"); PiecePrefabManager.RegisterPrefab("warfare", "sfx_tree_fall_TW"); PiecePrefabManager.RegisterPrefab("warfare", "sfx_tree_fall_hit_TW"); PiecePrefabManager.RegisterPrefab("warfare", "sfx_build_cultivator_TW"); GameObject val126 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "vfx_VolcanicRockDestroyed_large_TW"); GameObject val127 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "vfx_GlacierRockDestroyed_large_TW"); GameObject val128 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "vfx_VolcanicPillarDestroyed_large_TW"); GameObject val129 = PrefabManager.RegisterPrefab(PrefabManager.RegisterAssetBundle("warfare"), "vfx_IceBlockDestroyed_large_TW"); AnimationReplaceManager.AddAnimationSet("warfare", "OverheadSlashBattleaxe"); AnimationReplaceManager.AddAnimationSet("warfare", "ChargedSlashTwoHanded"); AnimationReplaceManager.AddAnimationSet("warfare", "SpinAttackNonSpear"); AnimationReplaceManager.AddAnimationSet("warfare", "DualBladeMain0", "DualBladeMain1", "DualBladeMain2"); AnimationReplaceManager.AddAnimationSet("warfare", "CultistStaffMain0", "CultistStaffMain1", "CultistStaffMain2"); AnimationReplaceManager.AddAnimationSet("warfare", "SkrymirSecondary_TW"); AnimationReplaceManager.AddAnimationSet("warfare", "StaffStormSecondary_TW"); AnimationReplaceManager.AddAnimationSet("warfare", "DualAxeMain0", "DualAxeMain1", "DualAxeMain2"); AnimationReplaceManager.AddAnimationSet("warfare", "DualAxeSecondary_TW"); AnimationReplaceManager.AddAnimationSet("warfare", "DualSwordsMain0", "DualSwordsMain1", "DualSwordsMain2"); AnimationReplaceManager.AddAnimationSet("warfare", "DualSwordsSecondary_TW"); AnimationReplaceManager.AddAnimationSet("warfare", "DualHammerMain0", "DualHammerMain1", "DualHammerMain2"); AnimationReplaceManager.AddAnimationSet("warfare", "DualHammerSecondary_TW"); AnimationReplaceManager.AddAnimationSet("warfare", "DualSpearMain0", "DualSpearMain1", "DualSpearMain2"); AnimationReplaceManager.AddAnimationSet("warfare", "DualSpearSecondary_TW"); AnimationReplaceManager.AddAnimationSet("warfare", "JumpSecondaryAttack_TW"); AnimationReplaceManager.AddAnimationSet("warfare", "WarpikeMain0", "WarpikeMain1", "WarpikeMain2"); AnimationReplaceManager.AddAnimationSet("warfare", "WarpikeSecondary_TW"); AnimationReplaceManager.AddAnimationSet("warfare", "FistSlamJumpAnimation_TW"); AnimationReplaceManager.AddAnimationSet("warfare", "FistLeftRightComboAnimation_TW"); AnimationReplaceManager.AddAnimationSet("warfare", "FistAttackSecondary_TW"); AnimationReplaceManager.AddAnimationSet("warfare", "FistDoubleHit_TW"); AnimationReplaceManager.AddAnimationSet("warfare", "RightPowerUppercut_TW"); AnimationReplaceManager.AddAnimationSet("warfare", "ThrowAttackMain0", "ThrowAttackMain1", "ThrowAttackMain2"); AnimationReplaceManager.AddAnimationSet("warfare", "ThrowAttackSecondary_TW"); AnimationReplaceManager.AddAnimationSet("warfare", "YagluthBlade_Secondary_TW"); BleedingSecondaryAttack.AddToItem("FistQueen_TW", 2); BleedingSecondaryAttack.AddToItem("FistChitin_TW", 1); BleedingSecondaryAttack.UseVFX(vfx7); Haste.AddToItem("KnifeViper_TW"); Haste.AddToItem("FistBlackmetal_TW"); Haste.UseVFX(vfx4); Haste.UseIcon(icon2); Ghost.UseIcon(icon2); PiercingGreatbowModer.UseVFX(vfx); PiercingGreatbowPlains.UseVFX(vfx); PiercingGreatbowMistlands.UseVFX(vfx); PiercingGreatbowModer.AddToItem("GreatbowModer_TW", 100); PiercingGreatbowPlains.AddToItem("GreatbowBlackmetal_TW", 100); PiercingGreatbowMistlands.AddToItem("GreatbowDvergr_TW", 100); Adrenaline.UseVFX(vfx3); Adrenaline.AddToItem("KnifeViper_TW", 10); Adrenaline.AddToItem("FistBlackmetal_TW", 14); Adrenaline.AddToItem("FistDvergr_TW", 16); Smasher.AddToItem("BattlehammerDvergr_TW", 100); Smasher.AddToItem("BattlehammerElder_TW", 100); Smasher.UseVFX(vfx); Bleeding.AddToItem("FistSilver_TW", 1); Bleeding.UseVFX(vfx7); Juggernaut.UseVFX(vfx); Juggernaut.AddToItem("WarpikeBone_TW", 100); Juggernaut.AddToItem("WarpikeElder_TW", 100); Juggernaut.AddToItem("WarpikeChitin_TW", 100); Juggernaut.AddToItem("WarpikeObsidian_TW", 100); Juggernaut.AddToItem("WarpikeBlackmetal_TW", 100); Juggernaut.AddToItem("WarpikeDvergr_TW", 100); Juggernaut.AddToItem("WarpikeFlametal_TW", 100); Decapitator4.UseVFX(vfx); Decapitator5.UseVFX(vfx); Decapitator4.AddToItem("BastardDvergr_TW", 100); Decapitator4.AddToItem("BastardFlametal_TW", 100); Decapitator4.AddToItem("BattleaxeDvergr_TW", 100); Decapitator4.AddToItem("BattleaxeFlametal_TW", 100); Decapitator4.AddToItem("DualSwordScimitar_TW", 100); Decapitator5.AddToItem("FistFlametal_TW", 100); Decapitator5.AddToItem("ThrowAxeDvergr_TW", 100); Executioner.UseVFX(vfx); Executioner.AddToItem("ClaymoreDvergr_TW", 15); Impale.UseVFX(vfx7); Impale.AddToItem("LanceBlackmetal_TW", 1); Impale.AddToItem("LanceDvergr_TW", 2); Bash.UseVFX(vfx6); Bash.AddToItem("SledgeBonemass_TW", 3); Bash.AddToItem("SledgeSilver_TW", 2); Bash.AddToItem("SledgeBlackmetal_TW", 3); Bash.AddToItem("SledgeDemolisher_TW", 4); Bash.AddToItem("SledgeFlametal_TW", 5); Vampirism.AddToItem("ScytheVampiric_TW", 6); Vampirism.UseIcon(icon); Vampirism.UseVFX(vfx5); HacknSlash.AddToItem("FistQueen_TW", 100); HacknSlash.UseVFX(vfx); Item item = new Item("warfare", "AncientArtifact_TW"); item.Configurable = Configurability.Recipe; Item item2 = new Item("warfare", "AncientScroll_TW"); item2.Configurable = Configurability.Recipe; item2.CraftAmount = 1; Item item3 = new Item("warfare", "RuneBer_TW"); item3.Configurable = Configurability.Recipe; Item item4 = new Item("warfare", "RuneAlgiz_TW"); item4.Configurable = Configurability.Recipe; Item item5 = new Item("warfare", "RuneDagaz_TW"); item5.Configurable = Configurability.Recipe; Item item6 = new Item("warfare", "RuneEihwaz_TW"); item6.Configurable = Configurability.Recipe; Item item7 = new Item("warfare", "RuneFehu_TW"); item7.Configurable = Configurability.Recipe; Item item8 = new Item("warfare", "RuneJara_TW"); item8.Configurable = Configurability.Recipe; Item item9 = new Item("warfare", "RuneMannaz_TW"); item9.Configurable = Configurability.Recipe; Item item10 = new Item("warfare", "RuneOthala_TW"); item10.Configurable = Configurability.Recipe; Item item11 = new Item("warfare", "RunePerth_TW"); item11.Configurable = Configurability.Recipe; Item item12 = new Item("warfare", "RuneRaidho_TW"); item12.Configurable = Configurability.Recipe; Item item13 = new Item("warfare", "RuneThurisaz_TW"); item13.Configurable = Configurability.Recipe; Item item14 = new Item("warfare", "FreyjaEssence_TW"); item14.Configurable = Configurability.Recipe; Item item15 = new Item("warfare", "VenomousFang_TW"); item15.Configurable = Configurability.Recipe; item15.DropsFrom.Add("Tick", 0.08f, 1, 1); item15.DropsFrom.Add("SeekerBrute", 0.25f, 1, 2); item15.DropsFrom.Add("Seeker", 0.15f, 1, 1); item15.DropsFrom.Add("Gjall", 0.5f, 1, 2); Item item16 = new Item("warfare", "DyeBlack_TW"); item16.Configurable = Configurability.Recipe; item16.Crafting.Add(ItemManager.CraftingTable.Workbench, 1); item16.RequiredItems.Add("Blueberries", 2); item16.RequiredItems.Add("Coal", 2); item16.CraftAmount = 1; Item item17 = new Item("warfare", "DarkCrystal_TW"); item17.Configurable = Configurability.Recipe; item17.DropsFrom.Add("Dverger", 0.15f, 1, 1); item17.DropsFrom.Add("DvergerMage", 0.25f, 1, 1); item17.DropsFrom.Add("SeekerBrute", 0.2f, 1, 1); item17.DropsFrom.Add("Seeker", 0.15f, 1, 1); item17.DropsFrom.Add("Gjall", 0.35f, 1, 1); Item item18 = new Item("warfare", "JuteBlack_TW"); item18.Configurable = Configurability.Recipe; item18.Crafting.Add(ItemManager.CraftingTable.MageTable, 1); item18.RequiredItems.Add("JuteBlue", 1); item18.RequiredItems.Add("DyeBlack_TW", 3); item18.DropsFrom.Add("DvergerMage", 0.35f, 1, 1); item18.DropsFrom.Add("Dverger", 0.25f, 1, 1); Item item19 = new Item("warfare", "GoblinScraps_TW"); item19.Configurable = Configurability.Recipe; Item item20 = new Item("warfare", "ProwlerFang_TW"); item20.Configurable = Configurability.Recipe; Item item21 = new Item("warfare", "LoxBone_TW"); item21.Configurable = Configurability.Recipe; item21.DropsFrom.Add("Lox", 0.75f, 1, 2); Item item22 = new Item("warfare", "GrizzlyBearPelt_TW"); item22.Configurable = Configurability.Recipe; Item item23 = new Item("warfare", "RottenPelt_TW"); item23.Configurable = Configurability.Recipe; item23.DropsFrom.Add("Draugr", 0.12f, 1, 1); item23.DropsFrom.Add("Draugr_Ranged", 0.12f, 1, 1); item23.DropsFrom.Add("Draugr_Elite", 0.35f, 1, 1); Item item24 = new Item("warfare", "TrollBone_TW"); item24.Configurable = Configurability.Recipe; item24.DropsFrom.Add("Troll", 0.85f, 1, 2); Item item25 = new Item("warfare", "RazorbackLeather_TW"); item25.Configurable = Configurability.Recipe; Item item26 = new Item("warfare", "RazorbackTusk_TW"); item26.Configurable = Configurability.Recipe; Item item27 = new Item("warfare", "Emerald_TW"); item27.Configurable = Configurability.Recipe; item27.DropsFrom.Add("GoblinBrute", 0.03f, 1, 1); item27.DropsFrom.Add("GoblinShaman", 0.08f, 1, 1); item27.DropsFrom.Add("GoblinKing", 1f, 1, 1); Item item28 = new Item("warfare", "Amethyst_TW"); item28.Configurable = Configurability.Recipe; item28.DropsFrom.Add("SeekerBrute", 0.03f, 1, 1); item28.DropsFrom.Add("Gjall", 0.08f, 1, 1); item28.DropsFrom.Add("SeekerQueen", 1f, 1, 1); Item item29 = new Item("warfare", "Onyx_TW"); item29.Configurable = Configurability.Recipe; item29.DropsFrom.Add("Draugr_Elite", 0.03f, 1, 1); item29.DropsFrom.Add("Abomination", 0.08f, 1, 1); item29.DropsFrom.Add("Bonemass", 0.5f, 1, 1); Item item30 = new Item("warfare", "Diamond_TW"); item30.Configurable = Configurability.Recipe; item30.DropsFrom.Add("StoneGolem", 0.03f, 1, 1); item30.DropsFrom.Add("Fenring_Cultist", 0.08f, 1, 1); item30.DropsFrom.Add("Dragon", 0.8f, 1, 1); Item item31 = new Item("warfare", "Topaz_TW"); item31.Configurable = Configurability.Recipe; Item item32 = new Item("warfare", "Sapphire_TW"); item32.Configurable = Configurability.Recipe; Item item33 = new Item("warfare", "MeadBaseLingeringStaminaMinor_TW"); item33.Configurable = Configurability.Recipe; item33.Crafting.Add(ItemManager.CraftingTable.MeadCauldron, 1); item33.RequiredItems.Add("MeadTasty", 3); item33.RequiredItems.Add("MushroomYellow", 5); item33.RequiredItems.Add("Honey", 10); Item item34 = new Item("warfare", "MeadStaminaLingeringMinor_TW"); item34.Configurable = Configurability.Recipe; fermentersless.Add(item33.Prefab, item34.Prefab); Item item35 = new Item("warfare", "MeadBaseLingeringStaminaMedium_TW"); item35.Configurable = Configurability.Recipe; item35.Crafting.Add(ItemManager.CraftingTable.MeadCauldron, 1); item35.RequiredItems.Add("MeadTasty", 3); item35.RequiredItems.Add("Cloudberry", 5); item35.RequiredItems.Add("Honey", 10); Item item36 = new Item("warfare", "MeadStaminaLingeringMedium_TW"); item36.Configurable = Configurability.Recipe; fermentersless.Add(item35.Prefab, item36.Prefab); Item item37 = new Item("warfare", "MeadBaseLightningResist_TW"); item37.Configurable = Configurability.Recipe; item37.Crafting.Add(ItemManager.CraftingTable.MeadCauldron, 1); item37.RequiredItems.Add("Honey", 12); item37.RequiredItems.Add("Barley", 5); item37.RequiredItems.Add("Flax", 7); Item item38 = new Item("warfare", "MeadLightningResist_TW"); item38.Configurable = Configurability.Recipe; fermenters.Add(item37.Prefab, item38.Prefab); Item item39 = new Item("warfare", "CapeRotten_TW"); item39.Configurable = Configurability.Recipe; item39.Crafting.Add(ItemManager.CraftingTable.Workbench, 2); item39.RequiredItems.Add("RottenPelt_TW", 6); item39.RequiredItems.Add("Guck", 8); item39.RequiredItems.Add("Ooze", 4); item39.RequiredItems.Add("TrophyBlob", 1); item39.RequiredUpgradeItems.Add("RottenPelt_TW", 3); item39.RequiredUpgradeItems.Add("Guck", 4); item39.RequiredUpgradeItems.Add("Ooze", 2); item39.RequiredUpgradeItems.Add("Upgrader2Armor", 1, 0, upgraderResource: true); item39.CraftAmount = 1; item39.QualityResultAmountMultiplier = 0f; Item item40 = new Item("warfare", "ArrowBone_TW"); item40.Configurable = Configurability.Recipe; item40.Crafting.Add("FletcherTable_TW", 1); item40.RequiredItems.Add("Wood", 8); item40.RequiredItems.Add("BoneFragments", 4); item40.RequiredItems.Add("Feathers", 2); item40.CraftAmount = 20; GameObject val130 = PrefabManager.RegisterPrefab("warfare", "arrowbone_projectile_TW"); Item item41 = new Item("warfare", "ArrowPickaxe_TW"); item41.Configurable = Configurability.Recipe; item41.Crafting.Add("FletcherTable_TW", 1); item41.RequiredItems.Add("ElderBark", 8); item41.RequiredItems.Add("Resin", 1); item41.RequiredItems.Add("SurtlingCore", 1); item41.RequiredItems.Add("Feathers", 2); item41.CraftAmount = 20; GameObject val131 = PrefabManager.RegisterPrefab("warfare", "arrowpickaxe_projectile_TW"); Item item42 = new Item("warfare", "ArrowExplosiveLightning_TW"); item42.Configurable = Configurability.Recipe; item42.Crafting.Add("FletcherTable_TW", 1); item42.RequiredItems.Add("YggdrasilWood", 8); item42.RequiredItems.Add("Carapace", 4); item42.RequiredItems.Add("Eitr", 1); item42.CraftAmount = 20; GameObject val132 = PrefabManager.RegisterPrefab("warfare", "bow_projectile_explosivelightning_TW"); GameObject val133 = PrefabManager.RegisterPrefab("warfare", "arrowlightning_explosion_TW"); Item item43 = new Item("warfare", "ArrowExplosivePoison_TW"); item43.Configurable = Configurability.Recipe; item43.Crafting.Add("FletcherTable_TW", 1); item43.RequiredItems.Add("Wood", 8); item43.RequiredItems.Add("BlackMetal", 2); item43.RequiredItems.Add("Ooze", 2); item43.CraftAmount = 20; GameObject val134 = PrefabManager.RegisterPrefab("warfare", "bow_projectile_explosivepoison_TW"); GameObject val135 = PrefabManager.RegisterPrefab("warfare", "arrowpoison_explosion_TW"); Item item44 = new Item("warfare", "BombSpirit_TW"); item44.Configurable = Configurability.Recipe; item44.Crafting.Add(ItemManager.CraftingTable.Cauldron, 4); item44.RequiredItems.Add("SilverOre", 2); item44.RequiredItems.Add("WolfHairBundle", 2); item44.RequiredItems.Add("Cloudberry", 2); item44.CraftAmount = 10; GameObject val136 = PrefabManager.RegisterPrefab("warfare", "bombspirit_projectile_TW"); GameObject val137 = PrefabManager.RegisterPrefab("warfare", "bombspirit_explosion_TW"); Item item45 = new Item("warfare", "BoltWood_TW"); item45.Configurable = Configurability.Recipe; item45.Crafting.Add(ItemManager.CraftingTable.Workbench, 1); item45.RequiredItems.Add("Wood", 8); item45.CraftAmount = 20; GameObject val138 = PrefabManager.RegisterPrefab("warfare", "woodbolt_projectile_TW"); Item item46 = new Item("warfare", "BoltAntler_TW"); item46.Configurable = Configurability.Recipe; item46.Crafting.Add(ItemManager.CraftingTable.Workbench, 2); item46.RequiredItems.Add("Wood", 8); item46.RequiredItems.Add("HardAntler", 1); item46.CraftAmount = 20; GameObject val139 = PrefabManager.RegisterPrefab("warfare", "boltantler_projectile_TW"); Item item47 = new Item("warfare", "BoltBronze_TW"); item47.Configurable = Configurability.Recipe; item47.Crafting.Add("FletcherTable_TW", 1); item47.RequiredItems.Add("Wood", 8); item47.RequiredItems.Add("Bronze", 1); item47.RequiredItems.Add("Feathers", 2); item47.CraftAmount = 20; GameObject val140 = PrefabManager.RegisterPrefab("warfare", "bronzebolt_projectile_TW"); Item item48 = new Item("warfare", "BoltFire_TW"); item48.Configurable = Configurability.Recipe; item48.Crafting.Add("FletcherTable_TW", 1); item48.RequiredItems.Add("Wood", 8); item48.RequiredItems.Add("Resin", 6); item48.RequiredItems.Add("Feathers", 2); item48.CraftAmount = 20; GameObject val141 = PrefabManager.RegisterPrefab("warfare", "firebolt_projectile_TW"); Item item49 = new Item("warfare", "BoltFrost_TW"); item49.Configurable = Configurability.Recipe; item49.Crafting.Add("FletcherTable_TW", 1); item49.RequiredItems.Add("Wood", 8); item49.RequiredItems.Add("Obsidian", 3); item49.RequiredItems.Add("Feathers", 2); item49.RequiredItems.Add("FreezeGland", 1); item49.CraftAmount = 20; GameObject val142 = PrefabManager.RegisterPrefab("warfare", "frostbolt_projectile_TW"); Item item50 = new Item("warfare", "BoltPoison_TW"); item50.Configurable = Configurability.Recipe; item50.Crafting.Add("FletcherTable_TW", 1); item50.RequiredItems.Add("Wood", 8); item50.RequiredItems.Add("Obsidian", 4); item50.RequiredItems.Add("Feathers", 2); item50.RequiredItems.Add("Guck", 1); item50.CraftAmount = 20; GameObject val143 = PrefabManager.RegisterPrefab("warfare", "poisonbolt_projectile_TW"); Item item51 = new Item("warfare", "BoltSilver_TW"); item51.Configurable = Configurability.Recipe; item51.Crafting.Add("FletcherTable_TW", 1); item51.RequiredItems.Add("Wood", 8); item51.RequiredItems.Add("Silver", 1); item51.RequiredItems.Add("Feathers", 2); item51.CraftAmount = 20; GameObject val144 = PrefabManager.RegisterPrefab("warfare", "silverbolt_projectile_TW"); Item item52 = new Item("warfare", "BoltBlunt_TW"); item52.Configurable = Configurability.Recipe; item52.Crafting.Add("FletcherTable_TW", 1); item52.RequiredItems.Add("Wood", 8); item52.RequiredItems.Add("Obsidian", 1); item52.RequiredItems.Add("Iron", 1); item52.RequiredItems.Add("Feathers", 2); item52.CraftAmount = 20; GameObject val145 = PrefabManager.RegisterPrefab("warfare", "bluntbolt_projectile_TW"); Item item53 = new Item("warfare", "BoltPickaxe_TW"); item53.Configurable = Configurability.Recipe; item53.Crafting.Add("FletcherTable_TW", 1); item53.RequiredItems.Add("ElderBark", 8); item53.RequiredItems.Add("Resin", 1); item53.RequiredItems.Add("SurtlingCore", 1); item53.RequiredItems.Add("Feathers", 2); item53.CraftAmount = 20; GameObject val146 = PrefabManager.RegisterPrefab("warfare", "pickaxebolt_projectile_TW"); Item item54 = new Item("warfare", "BoltExplosiveLightning_TW"); item54.Configurable = Configurability.Recipe; item54.Crafting.Add("FletcherTable_TW", 1); item54.RequiredItems.Add("YggdrasilWood", 8); item54.RequiredItems.Add("Carapace", 2); item54.RequiredItems.Add("Eitr", 1); item54.CraftAmount = 20; GameObject val147 = PrefabManager.RegisterPrefab("warfare", "explosivelightningbolt_projectile_TW"); GameObject val148 = PrefabManager.RegisterPrefab("warfare", "boltlightning_explosion_TW"); Item item55 = new Item("warfare", "BoltExplosivePoison_TW"); item55.Configurable = Configurability.Recipe; item55.Crafting.Add("FletcherTable_TW", 1); item55.RequiredItems.Add("Wood", 8); item55.RequiredItems.Add("BlackMetal", 2); item55.RequiredItems.Add("Tar", 2); item55.CraftAmount = 20; GameObject val149 = PrefabManager.RegisterPrefab("warfare", "explosivepoisonbolt_projectile_TW"); GameObject val150 = PrefabManager.RegisterPrefab("warfare", "boltpoison_explosion_TW"); Item item56 = new Item("warfare", "AxeSilver_TW"); item56.Configurable = Configurability.Recipe; item56.Crafting.Add(ItemManager.CraftingTable.Forge, 3); item56.RequiredItems.Add("ElderBark", 12); item56.RequiredItems.Add("Silver", 25); item56.RequiredItems.Add("WolfFang", 6); item56.RequiredItems.Add("TrophyWolf", 1); item56.RequiredUpgradeItems.Add("ElderBark", 6); item56.RequiredUpgradeItems.Add("Silver", 12); item56.RequiredUpgradeItems.Add("WolfFang", 3); item56.RequiredUpgradeItems.Add("Upgrader3Weapon", 1, 0, upgraderResource: true); item56.CraftAmount = 1; item56.QualityResultAmountMultiplier = 0f; Item item57 = new Item("warfare", "AxeDvergr_TW"); item57.Configurable = Configurability.Recipe; item57.Crafting.Add(ItemManager.CraftingTable.BlackForge, 1); item57.RequiredItems.Add("YggdrasilWood", 20); item57.RequiredItems.Add("Eitr", 12); item57.RequiredItems.Add("VenomousFang_TW", 10); item57.RequiredItems.Add("TrophyTick", 1); item57.RequiredUpgradeItems.Add("YggdrasilWood", 10); item57.RequiredUpgradeItems.Add("Eitr", 4); item57.RequiredUpgradeItems.Add("VenomousFang_TW", 5); item57.RequiredUpgradeItems.Add("Upgrader5Weapon", 1, 0, upgraderResource: true); item57.CraftAmount = 1; item57.QualityResultAmountMultiplier = 0f; Item item58 = new Item("warfare", "AxeFlametal_TW"); item58.Configurable = Configurability.Recipe; item58.Crafting.Add(ItemManager.CraftingTable.BlackForge, 1); item58.RequiredItems.Add("Blackwood", 16); item58.RequiredItems.Add("FlametalNew", 14); item58.RequiredItems.Add("BonemawSerpentTooth", 4); item58.RequiredItems.Add("TrophyBonemawSerpent", 1); item58.RequiredUpgradeItems.Add("Blackwood", 8); item58.RequiredUpgradeItems.Add("FlametalNew", 7); item58.RequiredUpgradeItems.Add("BonemawSerpentTooth", 2); item58.RequiredUpgradeItems.Add("TrophyBonemawSerpent", 1); item58.RequiredUpgradeItems.Add("Upgrader6Weapon", 1, 0, upgraderResource: true); item58.CraftAmount = 1; item58.QualityResultAmountMultiplier = 0f; Item item59 = AddThrowingAxe("warfare", "ThrowAxeFlint_TW"); AttachWeaponToSkill(item59, "Throwing"); item59.Configurable = Configurability.Recipe; item59.Crafting.Add(ItemManager.CraftingTable.Workbench, 2); item59.RequiredItems.Add("Wood", 8); item59.RequiredItems.Add("Flint", 2); item59.CraftAmount = 10; projectilePrefabsY.Add(PrefabManager.RegisterPrefab("warfare", "ThrowAxeFlint_projectile_TW")); Item item60 = AddThrowingAxe("warfare", "ThrowAxeBronze_TW"); AttachWeaponToSkill(item60, "Throwing"); item60.Configurable = Configurability.Recipe; item60.Crafting.Add(ItemManager.CraftingTable.Forge, 1); item60.RequiredItems.Add("RoundLog", 8); item60.RequiredItems.Add("Bronze", 2); item60.CraftAmount = 10; projectilePrefabsZ.Add(PrefabManager.RegisterPrefab("warfare", "ThrowAxeBronze_projectile_TW")); Item item61 = AddThrowingAxe("warfare", "ThrowAxeIron_TW"); AttachWeaponToSkill(item61, "Throwing"); item61.Configurable = Configurability.Recipe; item61.Crafting.Add(ItemManager.CraftingTable.Forge, 2); item61.RequiredItems.Add("ElderBark", 8); item61.RequiredItems.Add("Iron", 3); item61.CraftAmount = 10; projectilePrefabsX.Add(PrefabManager.RegisterPrefab("warfare", "ThrowAxeIron_projectile_TW")); Item item62 = AddThrowingAxe("warfare", "ThrowAxeSilver_TW"); AttachWeaponToSkill(item62, "Throwing"); item62.Configurable = Configurability.Recipe; item62.Crafting.Add(ItemManager.CraftingTable.Forge, 3); item62.RequiredItems.Add("FineWood", 8); item62.RequiredItems.Add("Silver", 3); item62.CraftAmount = 10; projectilePrefabsX.Add(PrefabManager.RegisterPrefab("warfare", "ThrowAxeSilver_projectile_TW")); Item item63 = AddThrowingAxe("warfare", "ThrowAxeBlackmetal_TW"); MaterialReplacer.RegisterGameObjectForShaderSwap(item63.Prefab, MaterialReplacer.ShaderType.CustomCreature); AttachWeaponToSkill(item63, "Throwing"); item63.Configurable = Configurability.Recipe; item63.Crafting.Add(ItemManager.CraftingTable.Forge, 4); item63.RequiredItems.Add("FineWood", 10); item63.RequiredItems.Add("LinenThread", 1); item63.RequiredItems.Add("BlackMetal", 3); item63.CraftAmount = 10; projectilePrefabsZ.Add(PrefabManager.RegisterPrefab("warfare", "ThrowAxeBlackmetal_projectile_TW")); Item item64 = AddThrowingAxe("warfare", "ThrowAxeDvergr_TW"); AttachWeaponToSkill(item64, "Throwing"); item64.Configurable = Configurability.Recipe; item64.Crafting.Add(ItemManager.CraftingTable.BlackForge, 1); item64.RequiredItems.Add("YggdrasilWood", 10); item64.RequiredItems.Add("Carapace", 4); item64.RequiredItems.Add("Eitr", 2); item64.CraftAmount = 10; projectilePrefabsY.Add(PrefabManager.RegisterPrefab("warfare", "ThrowAxeDvergr_projectile_TW")); Item item65 = new Item("warfare", "DualScytheBloodthirst_TW"); AttachWeaponToSkill(item65, "Scythes"); item65.Configurable = Configurability.Recipe; item65.Crafting.Add(ItemManager.CraftingTable.Forge, 4); item65.RequiredItems.Add("Iron", 40); item65.RequiredItems.Add("RottenPelt_TW", 20); item65.RequiredItems.Add("Bloodbag", 20); item65.RequiredItems.Add("TrophyBonemass", 1); item65.RequiredUpgradeItems.Add("Iron", 20); item65.RequiredUpgradeItems.Add("RottenPelt_TW", 10); item65.RequiredUpgradeItems.Add("Bloodbag", 10); item65.RequiredUpgradeItems.Add("TrophyBonemass", 1); item65.RequiredUpgradeItems.Add("Upgrader2Weapon", 1, 0, upgraderResource: true); item65.CraftAmount = 1; item65.QualityResultAmountMultiplier = 0f; Item item66 = new Item("warfare", "ScytheVampiric_TW"); AttachWeaponToSkill(item66, "Scythes"); item66.Configurable = Configurability.Recipe; item66.Crafting.Add(ItemManager.CraftingTable.Forge, 4); item66.RequiredItems.Add("Iron", 40); item66.RequiredItems.Add("WitheredBone", 18); item66.RequiredItems.Add("Bloodbag", 16); item66.RequiredItems.Add("TrophyBonemass", 1); item66.RequiredUpgradeItems.Add("Iron", 20); item66.RequiredUpgradeItems.Add("WitheredBone", 9); item66.RequiredUpgradeItems.Add("Bloodbag", 8); item66.RequiredUpgradeItems.Add("TrophyBonemass", 1); item66.RequiredUpgradeItems.Add("Upgrader2Weapon", 1, 0, upgraderResource: true); item66.CraftAmount = 1; item66.QualityResultAmountMultiplier = 0f; AttackSpeedSystem.RegisterMainAttacks(item66.Prefab, 1.1f); Item item67 = new Item("warfare", "AtgeirFlint_TW"); item67.Configurable = Configurability.Recipe; item67.Crafting.Add(ItemManager.CraftingTable.Workbench, 2); item67.RequiredItems.Add("Flint", 8); item67.RequiredItems.Add("Wood", 10); item67.RequiredItems.Add("LeatherScraps", 4); item67.RequiredUpgradeItems.Add("Flint", 4); item67.RequiredUpgradeItems.Add("Wood", 5); item67.RequiredUpgradeItems.Add("Upgrader0Weapon", 1, 0, upgraderResource: true); item67.CraftAmount = 1; item67.QualityResultAmountMultiplier = 0f; Item item68 = new Item("warfare", "AtgeirSilver_TW"); item68.Configurable = Configurability.Recipe; item68.Crafting.Add(ItemManager.CraftingTable.Forge, 3); item68.RequiredItems.Add("ElderBark", 25); item68.RequiredItems.Add("Silver", 25); item68.RequiredItems.Add("WolfClaw", 8); item68.RequiredItems.Add("TrophyCultist", 1); item68.RequiredUpgradeItems.Add("ElderBark", 12); item68.RequiredUpgradeItems.Add("Silver", 12); item68.RequiredUpgradeItems.Add("WolfClaw", 4); item68.RequiredUpgradeItems.Add("Upgrader3Weapon", 1, 0, upgraderResource: true); item68.CraftAmount = 1; item68.QualityResultAmountMultiplier = 0f; Item item69 = new Item("warfare", "TridentBlackmetal_TW"); MaterialReplacer.RegisterGameObjectForShaderSwap(item69.Prefab, MaterialReplacer.ShaderType.CustomCreature); item69.Configurable = Configurability.Recipe; item69.Crafting.Add(ItemManager.CraftingTable.Forge, 4); item69.RequiredItems.Add("FineWood", 25); item69.RequiredItems.Add("BlackMetal", 25); item69.RequiredItems.Add("Chitin", 30); item69.RequiredItems.Add("TrophyLox", 1); item69.RequiredUpgradeItems.Add("FineWood", 12); item69.RequiredUpgradeItems.Add("BlackMetal", 12); item69.RequiredUpgradeItems.Add("Chitin", 15); item69.RequiredUpgradeItems.Add("Upgrader4Weapon", 1, 0, upgraderResource: true); item69.CraftAmount = 1; item69.QualityResultAmountMultiplier = 0f; GameObject val151 = PrefabManager.RegisterPrefab("warfare", "projectile_tridentblackmetal_TW"); Item item70 = new Item("warfare", "BastardFlint_TW"); item70.Configurable = Configurability.Recipe; item70.Crafting.Add(ItemManager.CraftingTable.Workbench, 2); item70.RequiredItems.Add("Flint", 12); item70.RequiredItems.Add("RoundLog", 6); item70.RequiredItems.Add("GreydwarfEye", 1); item70.RequiredUpgradeItems.Add("Flint", 6); item70.RequiredUpgradeItems.Add("RoundLog", 3); item70.RequiredItems.Add("LeatherScraps", 2); item70.RequiredUpgradeItems.Add("Upgrader0Weapon", 1, 0, upgraderResource: true); item70.CraftAmount = 1; item70.QualityResultAmountMultiplier = 0f; AttackSpeedSystem.RegisterMainAttacks(item70.Prefab, 1.4f); Item item71 = new Item("warfare", "BastardBone_TW"); item71.Configurable = Configurability.Recipe; item71.Crafting.Add(ItemManager.CraftingTable.Forge, 1); item71.RequiredItems.Add("BoneFragments", 14); item71.RequiredItems.Add("Copper", 8); item71.RequiredItems.Add("TrophySkeleton", 1); item71.RequiredUpgradeItems.Add("BoneFragments", 7); item71.RequiredUpgradeItems.Add("Copper", 4); item71.RequiredUpgradeItems.Add("Upgrader1Weapon", 1, 0, upgraderResource: true); item71.CraftAmount = 1; item71.QualityResultAmountMultiplier = 0f; AttackSpeedSystem.RegisterMainAttacks(item71.Prefab, 1.4f); Item item72 = new Item("warfare", "BastardChitin_TW"); item72.Configurable = Configurability.Recipe; item72.Crafting.Add(ItemManager.CraftingTable.Forge, 2); item72.RequiredItems.Add("ElderBark", 14); item72.RequiredItems.Add("Chitin", 30); item72.RequiredItems.Add("Bronze", 12); item72.RequiredUpgradeItems.Add("ElderBark", 7); item72.RequiredUpgradeItems.Add("Chitin", 15); item72.RequiredUpgradeItems.Add("Bronze", 6); item72.RequiredUpgradeItems.Add("Upgrader2Weapon", 1, 0, upgraderResource: true); item72.CraftAmount = 1; item72.QualityResultAmountMultiplier = 0f; AttackSpeedSystem.RegisterMainAttacks(item72.Prefab, 1.4f); Item item73 = new Item("warfare", "BastardSilver_TW"); item73.Configurable = Configurability.Recipe; item73.Crafting.Add(ItemManager.CraftingTable.Forge, 3); item73.RequiredItems.Add("Silver", 25); item73.RequiredItems.Add("ElderBark", 25); item73.RequiredItems.Add("WolfFang", 10); item73.RequiredItems.Add("TrophyFenring", 1); item73.RequiredUpgradeItems.Add("Silver", 12); item73.RequiredUpgradeItems.Add("ElderBark", 12); item73.RequiredUpgradeItems.Add("WolfFang", 5); item73.RequiredUpgradeItems.Add("Upgrader3Weapon", 1, 0, upgraderResource: true); item73.CraftAmount = 1; item73.QualityResultAmountMultiplier = 0f; AttackSpeedSystem.RegisterMainAttacks(item73.Prefab, 1.4f); Item item74 = new Item("warfare", "BastardBlackmetal_TW"); MaterialReplacer.RegisterGameObjectForShaderSwap(item74.Prefab, MaterialReplacer.ShaderType.CustomCreature); item74.Configurable = Configurability.Recipe; item74.Crafting.Add(ItemManager.CraftingTable.Forge, 4); item74.RequiredItems.Add("BlackMetal", 30); item74.RequiredItems.Add("Tar", 16); item74.RequiredItems.Add("LoxBone_TW", 6); item74.RequiredItems.Add("TrophyGoblinBrute", 1); item74.RequiredUpgradeItems.Add("BlackMetal", 15); item74.RequiredUpgradeItems.Add("Tar", 8); item74.RequiredUpgradeItems.Add("LoxBone_TW", 3); item74.RequiredUpgradeItems.Add("Upgrader4Weapon", 1, 0, upgraderResource: true); item74.CraftAmount = 1; item74.QualityResultAmountMultiplier = 0f; Item item75 = new Item("warfare", "BastardDvergr_TW"); item75.Configurable = Configurability.Recipe; item75.Crafting.Add(ItemManager.CraftingTable.BlackForge, 1); item75.RequiredItems.Add("Carapace", 25); item75.RequiredItems.Add("Eitr", 15); item75.RequiredItems.Add("VenomousFang_TW", 10); item75.RequiredItems.Add("TrophyGjall", 1); item75.RequiredUpgradeItems.Add("Carapace", 10); item75.RequiredUpgradeItems.Add("Eitr", 5); item75.RequiredUpgradeItems.Add("VenomousFang_TW", 5); item75.RequiredUpgradeItems.Add("Upgrader5Weapon", 1, 0, upgraderResource: true); item75.CraftAmount = 1; item75.QualityResultAmountMultiplier = 0f; Item item76 = new Item("warfare", "BastardFlametal_TW"); item76.Configurable = Configurability.Recipe; item76.Crafting.Add(ItemManager.CraftingTable.BlackForge, 1); item76.RequiredItems.Add("FlametalNew", 30); item76.RequiredItems.Add("CharredBone", 12); item76.RequiredItems.Add("AskHide", 10); item76.RequiredItems.Add("TrophyBonemawSerpent", 1); item76.RequiredUpgradeItems.Add("FlametalNew", 15); item76.RequiredUpgradeItems.Add("CharredBone", 6); item76.RequiredUpgradeItems.Add("AskHide", 5); item76.RequiredUpgradeItems.Add("TrophyBonemawSerpent", 1); item76.RequiredUpgradeItems.Add("Upgrader6Weapon", 1, 0, upgraderResource: true); item76.CraftAmount = 1; item76.QualityResultAmountMultiplier = 0f; AttackSpeedSystem.RegisterMainAttacks(item76.Prefab, 1.4f); Item item77 = new Item("warfare", "BattleaxeFlint_TW"); item77.Configurable = Configurability.Recipe; item77.Crafting.Add(ItemManager.CraftingTable.Workbench, 2); item77.RequiredItems.Add("Flint", 10); item77.RequiredItems.Add("Wood", 15); item77.RequiredItems.Add("LeatherScraps", 2); item77.RequiredUpgradeItems.Add("Flint", 6); item77.RequiredUpgradeItems.Add("Wood", 8); item77.RequiredUpgradeItems.Add("LeatherScraps", 2); item77.RequiredUpgradeItems.Add("Upgrader0Weapon", 1, 0, upgraderResource: true); item77.CraftAmount = 1; item77.QualityResultAmountMultiplier = 0f; Item item78 = new Item("warfare", "BattleaxeBronze_TW"); item78.Configurable = Configurability.Recipe; item78.Crafting.Add(ItemManager.CraftingTable.Forge, 1); item78.RequiredItems.Add("RoundLog", 16); item78.RequiredItems.Add("Bronze", 12); item78.RequiredItems.Add("TrophyGreydwarfBrute", 1); item78.RequiredUpgradeItems.Add("RoundLog", 8); item78.RequiredUpgradeItems.Add("Bronze", 6); item78.RequiredUpgradeItems.Add("Upgrader1Weapon", 1, 0, upgraderResource: true); item78.CraftAmount = 1; item78.QualityResultAmountMultiplier = 0f; Item item79 = new Item("warfare", "BattleaxeIron_TW"); item79.Configurable = Configurability.Recipe; item79.Crafting.Add(ItemManager.CraftingTable.Forge, 2); item79.RequiredItems.Add("ElderBark", 15); item79.RequiredItems.Add("Iron", 25); item79.RequiredItems.Add("TrophyDraugrElite", 1); item79.RequiredUpgradeItems.Add("ElderBark", 8); item79.RequiredUpgradeItems.Add("Iron", 12); item79.RequiredUpgradeItems.Add("Upgrader2Weapon", 1, 0, upgraderResource: true); item79.CraftAmount = 1; item79.QualityResultAmountMultiplier = 0f; Item item80 = new Item("warfare", "BattleaxeSilver_TW"); item80.Configurable = Configurability.Recipe; item80.Crafting.Add(ItemManager.CraftingTable.Forge, 3); item80.RequiredItems.Add("ElderBark", 25); item80.RequiredItems.Add("Silver", 30); item80.RequiredItems.Add("WolfFang", 8); item80.RequiredItems.Add("TrophyFenring", 1); item80.RequiredUpgradeItems.Add("ElderBark", 12); item80.RequiredUpgradeItems.Add("Silver", 15); item80.RequiredUpgradeItems.Add("WolfFang", 4); item80.RequiredUpgradeItems.Add("Upgrader3Weapon", 1, 0, upgraderResource: true); item80.CraftAmount = 1; item80.QualityResultAmountMultiplier = 0f; Item item81 = new Item("warfare", "BattleaxeBlackmetal_TW"); MaterialReplacer.RegisterGameObjectForShaderSwap(item81.Prefab, MaterialReplacer.ShaderType.CustomCreature); item81.Configurable = Configurability.Recipe; item81.Crafting.Add(ItemManager.CraftingTable.Forge, 4); item81.RequiredItems.Add("FineWood", 30); item81.RequiredItems.Add("BlackMetal", 30); item81.RequiredItems.Add("LinenThread", 14); item81.RequiredItems.Add("TrophyLox", 1); item81.RequiredUpgradeItems.Add("FineWood", 12); item81.RequiredUpgradeItems.Add("BlackMetal", 15); item81.RequiredUpgradeItems.Add("LinenThread", 7); item81.RequiredUpgradeItems.Add("Upgrader4Weapon", 1, 0, upgraderResource: true); item81.CraftAmount = 1; item81.QualityResultAmountMultiplier = 0f; Item item82 = new Item("warfare", "BattleaxeDvergr_TW"); item82.Configurable = Configurability.Recipe; item82.Crafting.Add(ItemManager.CraftingTable.BlackForge, 1); item82.RequiredItems.Add("Softtissue", 25); item82.RequiredItems.Add("Eitr", 15); item82.RequiredItems.Add("DarkCrystal_TW", 8); item82.RequiredItems.Add("TrophyGjall", 1); item82.RequiredUpgradeItems.Add("Softtissue", 12); item82.RequiredUpgradeItems.Add("Eitr", 8); item82.RequiredUpgradeItems.Add("DarkCrystal_TW", 4); item82.RequiredUpgradeItems.Add("Upgrader5Weapon", 1, 0, upgraderResource: true); item82.CraftAmount = 1; item82.QualityResultAmountMultiplier = 0f; Item item83 = new Item("warfare", "BattleaxeFlametal_TW"); item83.Configurable = Configurability.Recipe; item83.Crafting.Add(ItemManager.CraftingTable.BlackForge, 1); item83.RequiredItems.Add("FlametalNew", 30); item83.RequiredItems.Add("CharredBone", 12); item83.RequiredItems.Add("BonemawSerpentTooth", 10); item83.RequiredItems.Add("TrophyFallenValkyrie", 1); item83.RequiredUpgradeItems.Add("FlametalNew", 15); item83.RequiredUpgradeItems.Add("CharredBone", 6); item83.RequiredUpgradeItems.Add("BonemawSerpentTooth", 5); item83.RequiredUpgradeItems.Add("TrophyFallenValkyrie", 1); item83.RequiredUpgradeItems.Add("Upgrader6Weapon", 1, 0, upgraderResource: true); item83.CraftAmount = 1; item83.QualityResultAmountMultiplier = 0f; Item item84 = new Item("warfare", "BattleaxeCrystal_TW"); item84.Configurable = Configurability.Recipe; item84.Crafting.Add(ItemManager.CraftingTable.Forge, 4); item84.RequiredItems.Add("ElderBark", 40); item84.RequiredItems.Add("Silver", 30); item84.RequiredItems.Add("Crystal", 10); item84.RequiredUpgradeItems.Add("ElderBark", 5); item84.RequiredUpgradeItems.Add("Silver", 15); item84.RequiredUpgradeItems.Add("Crystal", 3); item84.RequiredUpgradeItems.Add("Upgrader3Weapon", 1, 0, upgraderResource: true); item84.CraftAmount = 1; item84.QualityResultAmountMultiplier = 0f; AttackSpeedSystem.RegisterMainAttacks(item84.Prefab, 1.4f); Item item85 = new Item("warfare", "BattleaxeCrystalEmerald_TW"); item85.Configurable = Configurability.Recipe; item85.Crafting.Add(ItemManager.CraftingTable.Forge, 4); item85.RequiredItems.Add("FineWood", 30); item85.RequiredItems.Add("BlackMetal", 30); item85.RequiredItems.Add("LoxBone_TW", 8); item85.RequiredItems.Add("Emerald_TW", 3); item85.RequiredUpgradeItems.Add("FineWood", 15); item85.RequiredUpgradeItems.Add("BlackMetal", 15); item85.RequiredUpgradeItems.Add("LoxBone_TW", 4); item85.RequiredUpgradeItems.Add("Upgrader4Weapon", 1, 0, upgraderResource: true); item85.CraftAmount = 1; item85.QualityResultAmountMultiplier = 0f; AttackSpeedSystem.RegisterMainAttacks(item85.Prefab, 1.4f); Item item86 = new Item("warfare", "BattleaxeCrystalAmethyst_TW"); item86.Configurable = Configurability.Recipe; item86.Crafting.Add(ItemManager.CraftingTable.Forge, 4); item86.RequiredItems.Add("YggdrasilWood", 25); item86.RequiredItems.Add("Eitr", 15); item86.RequiredItems.Add("DarkCrystal_TW", 8); item86.RequiredItems.Add("Amethyst_TW", 3); item86.RequiredUpgradeItems.Add("YggdrasilWood", 12); item86.RequiredUpgradeItems.Add("Eitr", 5); item86.RequiredUpgradeItems.Add("DarkCrystal_TW", 4); item86.RequiredUpgradeItems.Add("Upgrader5Weapon", 1, 0, upgraderResource: true); item86.CraftAmount = 1; item86.QualityResultAmountMultiplier = 0f; AttackSpeedSystem.RegisterMainAttacks(item86.Prefab, 1.4f); Item item87 = new Item("warfare", "BattlehammerTrollbone_TW"); item87.Configurable = Configurability.Recipe; item87.Crafting.Add(ItemManager.CraftingTable.Forge, 1); item87.RequiredItems.Add("TrollBone_TW", 6); item87.RequiredItems.Add("Bronze", 10); item87.RequiredItems.Add("TrophyFrostTroll", 1); item87.RequiredUpgradeItems.Add("TrollBone_TW", 3); item87.RequiredUpgradeItems.Add("Bronze", 5); item87.RequiredUpgradeItems.Add("Upgrader1Weapon", 1, 0, upgraderResource: true); item87.CraftAmount = 1; item87.QualityResultAmountMultiplier = 0f; AttackSpeedSystem.RegisterMainAttacks(item87.Prefab, 1.4f); Item item88 = new Item("warfare", "BattlehammerElder_TW"); item88.Configurable = Configurability.Recipe; item88.DropsFrom.Add("gd_king", 0.04f, 1, 1); item88.Crafting.Add(ItemManager.CraftingTable.Forge, 2); item88.RequiredItems.Add("ElderBark", 30); item88.RequiredItems.Add("Stone", 40); item88.RequiredItems.Add("GreydwarfEye", 20); item88.RequiredItems.Add("TrophyTheElder", 1); item88.RequiredUpgradeItems.Add("ElderBark", 15); item88.RequiredUpgradeItems.Add("Stone", 20); item88.RequiredUpgradeItems.Add("GreydwarfEye", 10); item88.RequiredUpgradeItems.Add("TrophyTheElder", 1); item88.RequiredUpgradeItems.Add("Upgrader2Weapon", 1, 0, upgraderResource: true); item88.CraftAmount = 1; item88.QualityResultAmountMultiplier = 0f; Item item89 = new Item("warfare", "BattlehammerIron_TW"); item89.Configurable = Configurability.Recipe; item89.Crafting.Add(ItemManager.CraftingTable.Forge, 2); item89.RequiredItems.Add("ElderBark", 15); item89.RequiredItems.Add("Iron", 30); item89.RequiredItems.Add("TrophyDraugrElite", 1); item89.RequiredUpgradeItems.Add("ElderBark", 8); item89.RequiredUpgradeItems.Add("Iron", 15); item89.RequiredUpgradeItems.Add("Upgrader2Weapon", 1, 0, upgraderResource: true); item89.CraftAmount = 1; item89.QualityResultAmountMultiplier = 0f; AttackSpeedSystem.RegisterMainAttacks(item89.Prefab, 1.1f); Item item90 = new Item("warfare", "BattlehammerSilver_TW"); item90.Configurable = Configurability.Recipe; item90.Crafting.Add(ItemManager.CraftingTable.Forge, 3); item90.RequiredItems.Add("ElderBark", 25); item90.RequiredItems.Add("Silver", 30); item90.RequiredItems.Add("Crystal", 10); item90.RequiredItems.Add("TrophySGolem", 1); item90.RequiredUpgradeItems.Add("ElderBark", 12); item90.RequiredUpgradeItems.Add("Silver", 15); item90.RequiredUpgradeItems.Add("Crystal", 5); item90.RequiredUpgradeItems.Add("Upgrader3Weapon", 1, 0, upgraderResource: true); item90.CraftAmount = 1; item90.QualityResultAmountMultiplier = 0f; AttackSpeedSystem.RegisterMainAttacks(item90.Prefab, 1.1f); Item item91 = new Item("warfare", "BattlehammerBlackmetal_TW"); MaterialReplacer.RegisterGameObjectForShaderSwap(item91.Prefab, MaterialReplacer.ShaderType.CustomCreature); item91.Configurable = Configurability.Recipe; item91.Crafting.Add(ItemManager.CraftingTable.Forge, 4); item91.RequiredItems.Add("FineWood", 20); item91.RequiredItems.Add("BlackMetal", 30); item91.RequiredItems.Add("LoxBone_TW", 8); item91.RequiredItems.Add("TrophyGoblinBrute", 1); item91.RequiredUpgradeItems.Add("FineWood", 10); item91.RequiredUpgradeItems.Add("BlackMetal", 15); item91.RequiredUpgradeItems.Add("LoxBone_TW", 4); item91.RequiredUpgradeItems.Add("Upgrader4Weapon", 1, 0, upgraderResource: true); item91.CraftAmount = 1; item91.QualityResultAmountMultiplier = 0f; AttackSpeedSystem.RegisterMainAttacks(item91.Prefab, 1.1f); Item item92 = new Item("warfare", "BattlehammerDvergr_TW"); item92.Configurable = Configurability.Recipe; item92.Crafting.Add(ItemManager.CraftingTable.BlackForge, 1); item92.RequiredItems.Add("Carapace", 25); item92.RequiredItems.Add("Eitr", 15); item92.RequiredItems.Add("DarkCrystal_TW", 8); item92.RequiredItems.Add("TrophySeekerBrute", 1); item92.RequiredUpgradeItems.Add("Carapace", 12); item92.RequiredUpgradeItems.Add("Eitr", 5); item92.RequiredUpgradeItems.Add("DarkCrystal_TW", 4); item92.RequiredUpgradeItems.Add("Upgrader5Weapon", 1, 0, upgraderResource: true); item92.CraftAmount = 1; item92.QualityResultAmountMultiplier = 0f; AttackSpeedSystem.RegisterMainAttacks(item92.Prefab, 1.05f); Item item93 = new Item("warfare", "BowTrollBone_TW"); item93.Configurable = Configurability.Recipe; item93.Crafting.Add("FletcherTable_TW", 1); item93.RequiredItems.Add("TrollBone_TW", 5); item93.RequiredItems.Add("BoneFragments", 6); item93.RequiredItems.Add("Bronze", 6); item93.RequiredUpgradeItems.Add("TrollBone_TW", 2); item93.RequiredUpgradeItems.Add("BoneFragments", 3); item93.RequiredUpgradeItems.Add("Upgrader1Weapon", 1, 0, upgraderResource: true); item93.CraftAmount = 1; item93.QualityResultAmountMultiplier = 0f; Item item94 = new Item("warfare", "BowBlackmetal_TW"); MaterialReplacer.RegisterGameObjectForShaderSwap(item94.Prefab, MaterialReplacer.ShaderType.CustomCreature); item94.Configurable = Configurability.Recipe; item94.Crafting.Add("FletcherTable_TW", 1); item94.RequiredItems.Add("FineWood", 30); item94.RequiredItems.Add("BlackMetal", 25); item94.RequiredItems.Add("Needle", 20); item94.RequiredItems.Add("TrophyDeathsquito", 1); item94.RequiredUpgradeItems.Add("FineWood", 15); item94.RequiredUpgradeItems.Add("BlackMetal", 12); item94.RequiredUpgradeItems.Add("Needle", 10); item94.RequiredUpgradeItems.Add("Upgrader4Weapon", 1, 0, upgraderResource: true); item94.CraftAmount = 1; item94.QualityResultAmountMultiplier = 0f; Item item95 = new Item("warfare", "GreatbowModer_TW"); item95.Configurable = Configurability.Recipe; item95.DropsFrom.Add("Dragon", 0.06f, 1, 1); item95.Crafting.Add("FletcherTable_TW", 1); item95.RequiredItems.Add("Silver", 50); item95.RequiredItems.Add("Crystal", 30); item95.RequiredItems.Add("FreezeGland", 20); item95.RequiredItems.Add("TrophyDragonQueen", 1); item95.RequiredUpgradeItems.Add("Silver", 25); item95.RequiredUpgradeItems.Add("Crystal", 15); item95.RequiredUpgradeItems.Add("FreezeGland", 10); item95.RequiredUpgradeItems.Add("TrophyDragonQueen", 1); item95.RequiredUpgradeItems.Add("Upgrader3Weapon", 1, 0, upgraderResource: true); item95.CraftAmount = 1; item95.QualityResultAmountMultiplier = 0f; AttackSpeedSystem.RegisterMainAttacks(item95.Prefab, 2.2f); Item item96 = new Item("warfare", "GreatbowBlackmetal_TW"); MaterialReplacer.RegisterGameObjectForShaderSwap(item96.Prefab, MaterialReplacer.ShaderType.CustomCreature); item96.Configurable = Configurability.Recipe; item96.Crafting.Add("FletcherTable_TW", 1); item96.RequiredItems.Add("FineWood", 40); item96.RequiredItems.Add("BlackMetal", 30); item96.RequiredItems.Add("LoxBone_TW", 10); item96.RequiredItems.Add("TrophyGoblinBrute", 1); item96.RequiredUpgradeItems.Add("FineWood", 20); item96.RequiredUpgradeItems.Add("BlackMetal", 15); item96.RequiredUpgradeItems.Add("LoxBone_TW", 5); item96.RequiredUpgradeItems.Add("Upgrader4Weapon", 1, 0, upgraderResource: true); item96.CraftAmount = 1; item96.QualityResultAmountMultiplier = 0f; AttackSpeedSystem.RegisterMainAttacks(item96.Prefab, 2.2f); Item item97 = new Item("warfare", "GreatbowDvergr_TW"); item97.Configurable = Configurability.Recipe; item97.Crafting.Add(ItemManager.CraftingTable.BlackForge, 1); item97.RequiredItems.Add("YggdrasilWood", 40); item97.RequiredItems.Add("Eitr", 15); item97.RequiredItems.Add("VenomousFang_TW", 10); item97.RequiredItems.Add("TrophyGjall", 1); item97.RequiredUpgradeItems.Add("YggdrasilWood", 20); item97.RequiredUpgradeItems.Add("Eitr", 5); item97.RequiredUpgradeItems.Add("VenomousFang_TW", 5); item97.RequiredUpgradeItems.Add("Upgrader5Weapon", 1, 0, upgraderResource: true); item97.CraftAmount = 1; item97.QualityResultAmountMultiplier = 0f; AttackSpeedSystem.RegisterMainAttacks(item97.Prefab, 2.2f); Item item98 = new Item("warfare", "CrossbowWood_TW"); item98.Configurable = Configurability.Recipe; item98.Crafting.Add(ItemManager.CraftingTable.Workbench, 1); item98.RequiredItems.Add("Wood", 12); item98.RequiredItems.Add("DeerHide", 6); item98.RequiredUpgradeItems.Add("Wood", 6); item98.RequiredUpgradeItems.Add("DeerHide", 3); item98.RequiredUpgradeItems.Add("LeatherScraps", 2); item98.RequiredUpgradeItems.Add("Upgrader0Weapon", 1, 0, upgraderResource: true); item98.CraftAmount = 1; item98.QualityResultAmountMultiplier = 0f; Item item99 = new Item("warfare", "CrossbowEikthyr_TW"); LightningBurstStacking.UseVFX(vfx2); LightningBurstStacking.UseIcon(icon3); LightningBurstStacking.AddToWeapon(item99.Prefab); item99.Configurable = Configurability.Recipe; item99.DropsFrom.Add("Eikthyr", 0.04f, 1, 1); item99.Crafting.Add("FletcherTable_TW", 1); item99.RequiredItems.Add("RoundLog", 30); item99.RequiredItems.Add("HardAntler", 16); item99.RequiredItems.Add("DeerHide", 16); item99.RequiredItems.Add("TrophyEikthyr", 1); item99.RequiredUpgradeItems.Add("RoundLog", 15); item99.RequiredUpgradeItems.Add("HardAntler", 8); item99.RequiredUpgradeItems.Add("DeerHide", 8); item99.RequiredUpgradeItems.Add("TrophyEikthyr", 1); item99.RequiredUpgradeItems.Add("Upgrader1Weapon", 1, 0, upgraderResource: true); item99.CraftAmount = 1; item99.QualityResultAmountMultiplier = 0f; Item item100 = new Item("warfare", "CrossbowBronze_TW"); item100.Configurable = Configurability.Recipe; item100.Crafting.Add("FletcherTable_TW", 1); item100.RequiredItems.Add("RoundLog", 12); item100.RequiredItems.Add("Bronze", 12); item100.RequiredItems.Add("TrophyGreydwarfShaman", 1); item100.RequiredUpgradeItems.Add("RoundLog", 6); item100.RequiredUpgradeItems.Add("Bronze", 6); item100.RequiredUpgradeItems.Add("Upgrader1