using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using System.Security.Permissions; using System.Text.RegularExpressions; using BepInEx; using BepInEx.Configuration; using BepInEx.Logging; using HarmonyLib; using Jotunn; using Jotunn.Configs; using Jotunn.Entities; using Jotunn.Managers; using Jotunn.Utils; using SimpleJson; using UnityEngine; using ValheimArmory.common; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: AssemblyTitle("ValheimArmory")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("ValheimArmory")] [assembly: AssemblyCopyright("Copyright © 2021")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("e3243d22-4307-4008-ba36-9f326008cde5")] [assembly: AssemblyFileVersion("0.0.1.0")] [assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("0.0.1.0")] namespace ValheimArmory { internal class ValheimArmoryItems { private AssetBundle EmbeddedResourceBundle = ValheimArmory.EmbeddedResourceBundle; private JotunBatchLoader Loader; public ValheimArmoryItems() { Loader = new JotunBatchLoader(); LoadArrows(); LoadBows(); LoadSwords(); LoadAxes(); LoadHammers(); LoadAtgeirs(); LoadDaggers(); LoadShields(); LoadSpears(); LoadMaces(); LoadFists(); LoadMagic(); LoadPickaxes(); LoadNonCraftables(); Loader.BatchSetup(EmbeddedResourceBundle); } private void LoadArrows() { Logger.LogInfo("Loading Arrows"); ItemDefinition itemDefinition = new ItemDefinition(); itemDefinition.Name = "Black Metal Arrow"; itemDefinition.Category = ItemCategory.Arrows; itemDefinition.prefab = "VAArrowGreenMetal"; itemDefinition.icon = "arrow_greenmetal"; itemDefinition.craftedAt = "forge"; itemDefinition.craftAmount = 20; itemDefinition.modifableStats = new Dictionary { { ItemStat.blunt, new ItemStatConfig { default_value = 52f, min = 0f, max = 200f } }, { ItemStat.pierce, new ItemStatConfig { default_value = 26f, min = 0f, max = 200f } } }; itemDefinition.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "Wood", amount = 8, upgradeCost = 0 }, new RecipeIngredient { prefab = "BlackMetal", amount = 2, upgradeCost = 0 }, new RecipeIngredient { prefab = "Feathers", amount = 2, upgradeCost = 0 } } }; Loader.AddDefinition(itemDefinition); ItemDefinition itemDefinition2 = new ItemDefinition(); itemDefinition2.Name = "Bone Arrow"; itemDefinition2.Category = ItemCategory.Arrows; itemDefinition2.prefab = "VAArrowBone"; itemDefinition2.icon = "bone_arrow"; itemDefinition2.craftedAt = "piece_workbench"; itemDefinition2.craftAmount = 20; itemDefinition2.modifableStats = new Dictionary { { ItemStat.pierce, new ItemStatConfig { default_value = 32f, min = 0f, max = 200f } } }; itemDefinition2.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "BoneFragments", amount = 8, upgradeCost = 0 }, new RecipeIngredient { prefab = "Feathers", amount = 2, upgradeCost = 0 } } }; Loader.AddDefinition(itemDefinition2); ItemDefinition itemDefinition3 = new ItemDefinition(); itemDefinition3.Name = "Surtling Fire Arrow"; itemDefinition3.Category = ItemCategory.Arrows; itemDefinition3.prefab = "VAarrow_surtling_fire"; itemDefinition3.icon = "surtlingcore_arrow"; itemDefinition3.craftedAt = "piece_workbench"; itemDefinition3.craftAmount = 20; itemDefinition3.modifableStats = new Dictionary { { ItemStat.fire, new ItemStatConfig { default_value = 52f, min = 0f, max = 200f } }, { ItemStat.pierce, new ItemStatConfig { default_value = 26f, min = 0f, max = 200f } } }; itemDefinition3.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "Wood", amount = 8, upgradeCost = 0 }, new RecipeIngredient { prefab = "Obsidian", amount = 4, upgradeCost = 0 }, new RecipeIngredient { prefab = "Feathers", amount = 2, upgradeCost = 0 }, new RecipeIngredient { prefab = "SurtlingCore", amount = 1, upgradeCost = 0 } } }; Loader.AddDefinition(itemDefinition3); ItemDefinition itemDefinition4 = new ItemDefinition(); itemDefinition4.Name = "Ancient Wood Arrow"; itemDefinition4.Category = ItemCategory.Arrows; itemDefinition4.prefab = "VAArrowAncient"; itemDefinition4.icon = "ancient_arrow"; itemDefinition4.craftedAt = "piece_workbench"; itemDefinition4.craftAmount = 20; itemDefinition4.modifableStats = new Dictionary { { ItemStat.pierce, new ItemStatConfig { default_value = 37f, min = 0f, max = 200f } } }; itemDefinition4.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "ElderBark", amount = 8, upgradeCost = 0 }, new RecipeIngredient { prefab = "Feathers", amount = 2, upgradeCost = 0 } } }; Loader.AddDefinition(itemDefinition4); ItemDefinition itemDefinition5 = new ItemDefinition(); itemDefinition5.Name = "Chitin Arrow"; itemDefinition5.Category = ItemCategory.Arrows; itemDefinition5.prefab = "VAChitinArrow"; itemDefinition5.icon = "arrow_chitin"; itemDefinition5.craftedAt = "piece_workbench"; itemDefinition5.craftAmount = 20; itemDefinition5.modifableStats = new Dictionary { { ItemStat.pierce, new ItemStatConfig { default_value = 12f, min = 0f, max = 200f } }, { ItemStat.blunt, new ItemStatConfig { default_value = 35f, min = 0f, max = 200f } } }; itemDefinition5.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "Wood", amount = 8, upgradeCost = 0 }, new RecipeIngredient { prefab = "Chitin", amount = 2, upgradeCost = 0 }, new RecipeIngredient { prefab = "Feathers", amount = 2, upgradeCost = 0 } } }; Loader.AddDefinition(itemDefinition5); ItemDefinition itemDefinition6 = new ItemDefinition(); itemDefinition6.Name = "Wood Bolt"; itemDefinition6.Category = ItemCategory.Arrows; itemDefinition6.prefab = "VABoltWood"; itemDefinition6.icon = "bolt_wood"; itemDefinition6.craftedAt = "piece_workbench"; itemDefinition6.craftAmount = 20; itemDefinition6.modifableStats = new Dictionary { { ItemStat.pierce, new ItemStatConfig { default_value = 22f, min = 0f, max = 200f } } }; itemDefinition6.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "Wood", amount = 8, upgradeCost = 0 } } }; Loader.AddDefinition(itemDefinition6); ItemDefinition itemDefinition7 = new ItemDefinition(); itemDefinition7.Name = "Corewood Bolt"; itemDefinition7.Category = ItemCategory.Arrows; itemDefinition7.prefab = "VABoltCoreWood"; itemDefinition7.icon = "bolt_corewood"; itemDefinition7.craftedAt = "piece_workbench"; itemDefinition7.craftAmount = 20; itemDefinition7.modifableStats = new Dictionary { { ItemStat.pierce, new ItemStatConfig { default_value = 37f, min = 0f, max = 200f } } }; itemDefinition7.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "RoundLog", amount = 8, upgradeCost = 0 }, new RecipeIngredient { prefab = "Feathers", amount = 2, upgradeCost = 0 } } }; Loader.AddDefinition(itemDefinition7); ItemDefinition itemDefinition8 = new ItemDefinition(); itemDefinition8.Name = "Bronze Bolt"; itemDefinition8.Category = ItemCategory.Arrows; itemDefinition8.prefab = "VAbolt_bronze"; itemDefinition8.icon = "bronze_bolt"; itemDefinition8.craftedAt = "forge"; itemDefinition8.craftAmount = 20; itemDefinition8.modifableStats = new Dictionary { { ItemStat.pierce, new ItemStatConfig { default_value = 32f, min = 0f, max = 200f } } }; itemDefinition8.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "Wood", amount = 8, upgradeCost = 0 }, new RecipeIngredient { prefab = "Bronze", amount = 1, upgradeCost = 0 }, new RecipeIngredient { prefab = "Feathers", amount = 2, upgradeCost = 0 } } }; Loader.AddDefinition(itemDefinition8); ItemDefinition itemDefinition9 = new ItemDefinition(); itemDefinition9.Name = "Poison Bolt"; itemDefinition9.Category = ItemCategory.Arrows; itemDefinition9.prefab = "VAbolt_poison"; itemDefinition9.icon = "poison_bolt"; itemDefinition9.craftedAt = "forge"; itemDefinition9.craftAmount = 20; itemDefinition9.modifableStats = new Dictionary { { ItemStat.poison, new ItemStatConfig { default_value = 52f, min = 0f, max = 200f } }, { ItemStat.pierce, new ItemStatConfig { default_value = 26f, min = 0f, max = 200f } } }; itemDefinition9.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "Wood", amount = 8, upgradeCost = 0 }, new RecipeIngredient { prefab = "Iron", amount = 1, upgradeCost = 0 }, new RecipeIngredient { prefab = "Feathers", amount = 2, upgradeCost = 0 }, new RecipeIngredient { prefab = "Ooze", amount = 1, upgradeCost = 0 } } }; Loader.AddDefinition(itemDefinition9); ItemDefinition itemDefinition10 = new ItemDefinition(); itemDefinition10.Name = "Obsidian Bolt"; itemDefinition10.Category = ItemCategory.Arrows; itemDefinition10.prefab = "VAObsidianBolt"; itemDefinition10.icon = "obsidian_bolt"; itemDefinition10.craftedAt = "piece_workbench"; itemDefinition10.craftAmount = 20; itemDefinition10.modifableStats = new Dictionary { { ItemStat.pierce, new ItemStatConfig { default_value = 52f, min = 0f, max = 200f } } }; itemDefinition10.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "Wood", amount = 8, upgradeCost = 0 }, new RecipeIngredient { prefab = "Obsidian", amount = 4, upgradeCost = 0 }, new RecipeIngredient { prefab = "Feathers", amount = 2, upgradeCost = 0 } } }; Loader.AddDefinition(itemDefinition10); ItemDefinition itemDefinition11 = new ItemDefinition(); itemDefinition11.Name = "Frost Bolt"; itemDefinition11.Category = ItemCategory.Arrows; itemDefinition11.prefab = "VAbolt_frost"; itemDefinition11.icon = "ice_bolt"; itemDefinition11.craftedAt = "forge"; itemDefinition11.craftAmount = 20; itemDefinition11.modifableStats = new Dictionary { { ItemStat.frost, new ItemStatConfig { default_value = 52f, min = 0f, max = 200f } }, { ItemStat.spirit, new ItemStatConfig { default_value = 20f, min = 0f, max = 200f } }, { ItemStat.pierce, new ItemStatConfig { default_value = 26f, min = 0f, max = 200f } } }; itemDefinition11.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "Wood", amount = 8, upgradeCost = 0 }, new RecipeIngredient { prefab = "Silver", amount = 1, upgradeCost = 0 }, new RecipeIngredient { prefab = "Feathers", amount = 2, upgradeCost = 0 }, new RecipeIngredient { prefab = "FreezeGland", amount = 1, upgradeCost = 0 } } }; Loader.AddDefinition(itemDefinition11); ItemDefinition itemDefinition12 = new ItemDefinition(); itemDefinition12.Name = "Surtling Core Bolt"; itemDefinition12.Category = ItemCategory.Arrows; itemDefinition12.prefab = "VASurtlingBolt"; itemDefinition12.icon = "surtling_bolt"; itemDefinition12.craftedAt = "forge"; itemDefinition12.craftAmount = 20; itemDefinition12.modifableStats = new Dictionary { { ItemStat.fire, new ItemStatConfig { default_value = 52f, min = 0f, max = 200f } }, { ItemStat.pierce, new ItemStatConfig { default_value = 26f, min = 0f, max = 200f } } }; itemDefinition12.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "Wood", amount = 8, upgradeCost = 0 }, new RecipeIngredient { prefab = "Iron", amount = 1, upgradeCost = 0 }, new RecipeIngredient { prefab = "Feathers", amount = 2, upgradeCost = 0 }, new RecipeIngredient { prefab = "SurtlingCore", amount = 1, upgradeCost = 0 } } }; Loader.AddDefinition(itemDefinition12); ItemDefinition itemDefinition13 = new ItemDefinition(); itemDefinition13.Name = "Needle Bolt"; itemDefinition13.Category = ItemCategory.Arrows; itemDefinition13.prefab = "VABoltNeedle"; itemDefinition13.icon = "needle_bolt"; itemDefinition13.craftedAt = "piece_workbench"; itemDefinition13.craftAmount = 20; itemDefinition13.modifableStats = new Dictionary { { ItemStat.pierce, new ItemStatConfig { default_value = 56f, min = 0f, max = 200f } } }; itemDefinition13.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "Needle", amount = 8, upgradeCost = 0 }, new RecipeIngredient { prefab = "Feathers", amount = 2, upgradeCost = 0 } } }; Loader.AddDefinition(itemDefinition13); ItemDefinition itemDefinition14 = new ItemDefinition(); itemDefinition14.Name = "Fire Bolt"; itemDefinition14.Category = ItemCategory.Arrows; itemDefinition14.prefab = "VAFireBolt"; itemDefinition14.icon = "surtling_bolt"; itemDefinition14.craftedAt = "piece_workbench"; itemDefinition14.craftAmount = 20; itemDefinition14.modifableStats = new Dictionary { { ItemStat.pierce, new ItemStatConfig { default_value = 22f, min = 0f, max = 200f } }, { ItemStat.fire, new ItemStatConfig { default_value = 34f, min = 0f, max = 200f } } }; itemDefinition14.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "Wood", amount = 8, upgradeCost = 0 }, new RecipeIngredient { prefab = "Resin", amount = 8, upgradeCost = 0 }, new RecipeIngredient { prefab = "Feathers", amount = 2, upgradeCost = 0 } } }; Loader.AddDefinition(itemDefinition14); } private void LoadBows() { Logger.LogInfo("Loading Bows"); ItemDefinition itemDefinition = new ItemDefinition(); itemDefinition.Name = "Blackmetal Bow"; itemDefinition.Category = ItemCategory.Bows; itemDefinition.prefab = "VABlackmetal_bow"; itemDefinition.icon = "blackmetal_bow"; itemDefinition.craftedAt = "forge"; itemDefinition.craftAmount = 1; itemDefinition.modifableStats = new Dictionary { { ItemStat.pierce, new ItemStatConfig { default_value = 62f, min = 0f, max = 300f } }, { ItemStat.pierce_per_level, new ItemStatConfig { default_value = 3f, min = 0f, max = 50f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 3f, min = 0f, max = 150f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 20f, min = 0f, max = 300f } }, { ItemStat.draw_stamina_drain, new ItemStatConfig { default_value = 12f, min = 1f, max = 50f } }, { ItemStat.durability, new ItemStatConfig { default_value = 200f, min = 0f, max = 500f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.bow_draw_speed, new ItemStatConfig { default_value = 2f, min = 0.01f, max = 2f } }, { ItemStat.projectile_velocity, new ItemStatConfig { default_value = 60f, min = 0f, max = 120f } }, { ItemStat.projectile_accuracy_max, new ItemStatConfig { default_value = 100f, min = 0f, max = 100f } } }; itemDefinition.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "FineWood", amount = 15, upgradeCost = 5 }, new RecipeIngredient { prefab = "BlackMetal", amount = 20, upgradeCost = 10 }, new RecipeIngredient { prefab = "LinenThread", amount = 5, upgradeCost = 5 } } }; Loader.AddDefinition(itemDefinition); ItemDefinition itemDefinition2 = new ItemDefinition(); itemDefinition2.Name = "Carapace Blood Bow"; itemDefinition2.Category = ItemCategory.Bows; itemDefinition2.prefab = "VAHeavy_Blood_Bone_Bow"; itemDefinition2.icon = "blood_bone_bow_heavy"; itemDefinition2.craftedAt = "piece_magetable"; itemDefinition2.craftAmount = 1; itemDefinition2.modifableStats = new Dictionary { { ItemStat.pierce, new ItemStatConfig { default_value = 92f, min = 0f, max = 300f } }, { ItemStat.pierce_per_level, new ItemStatConfig { default_value = 3f, min = 0f, max = 50f } }, { ItemStat.spirit, new ItemStatConfig { default_value = 24f, min = 0f, max = 200f } }, { ItemStat.spirit_per_level, new ItemStatConfig { default_value = 2f, min = 0f, max = 50f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 5f, min = 0f, max = 150f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 20f, min = 0f, max = 300f } }, { ItemStat.draw_stamina_drain, new ItemStatConfig { default_value = 6f, min = 1f, max = 50f } }, { ItemStat.primary_attack_flat_health_cost, new ItemStatConfig { default_value = 12f, min = 0f, max = 50f } }, { ItemStat.primary_attack_percent_health_cost, new ItemStatConfig { default_value = 0f, min = 0f, max = 50f } }, { ItemStat.durability, new ItemStatConfig { default_value = 200f, min = 0f, max = 500f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.bow_draw_speed, new ItemStatConfig { default_value = 2f, min = 0.01f, max = 2f } }, { ItemStat.projectile_velocity, new ItemStatConfig { default_value = 60f, min = 0f, max = 120f } }, { ItemStat.projectile_accuracy_max, new ItemStatConfig { default_value = 100f, min = 0f, max = 100f } } }; itemDefinition2.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "YggdrasilWood", amount = 14, upgradeCost = 7 }, new RecipeIngredient { prefab = "Iron", amount = 10, upgradeCost = 6 }, new RecipeIngredient { prefab = "Carapace", amount = 24, upgradeCost = 10 }, new RecipeIngredient { prefab = "TrophyTick", amount = 2, upgradeCost = 0 }, new RecipeIngredient { prefab = "Eitr", amount = 0, upgradeCost = 10 } } }; Loader.AddDefinition(itemDefinition2); ItemDefinition itemDefinition3 = new ItemDefinition(); itemDefinition3.Name = "Blood Bone Bow"; itemDefinition3.Category = ItemCategory.Bows; itemDefinition3.prefab = "VABlood_bone_bow"; itemDefinition3.icon = "bone_bow"; itemDefinition3.craftedAt = "forge"; itemDefinition3.craftAmount = 1; itemDefinition3.modifableStats = new Dictionary { { ItemStat.pierce, new ItemStatConfig { default_value = 60f, min = 0f, max = 300f } }, { ItemStat.pierce_per_level, new ItemStatConfig { default_value = 3f, min = 0f, max = 50f } }, { ItemStat.spirit, new ItemStatConfig { default_value = 18f, min = 0f, max = 200f } }, { ItemStat.spirit_per_level, new ItemStatConfig { default_value = 2f, min = 0f, max = 50f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 3f, min = 0f, max = 150f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 20f, min = 0f, max = 300f } }, { ItemStat.draw_stamina_drain, new ItemStatConfig { default_value = 4f, min = 1f, max = 50f } }, { ItemStat.primary_attack_flat_health_cost, new ItemStatConfig { default_value = 8f, min = 0f, max = 50f } }, { ItemStat.primary_attack_percent_health_cost, new ItemStatConfig { default_value = 0f, min = 0f, max = 50f } }, { ItemStat.durability, new ItemStatConfig { default_value = 200f, min = 0f, max = 500f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.bow_draw_speed, new ItemStatConfig { default_value = 2f, min = 0.01f, max = 2f } }, { ItemStat.projectile_velocity, new ItemStatConfig { default_value = 60f, min = 0f, max = 120f } }, { ItemStat.projectile_accuracy_max, new ItemStatConfig { default_value = 100f, min = 0f, max = 100f } } }; itemDefinition3.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "ElderBark", amount = 10, upgradeCost = 5 }, new RecipeIngredient { prefab = "Silver", amount = 10, upgradeCost = 5 }, new RecipeIngredient { prefab = "BoneFragments", amount = 20, upgradeCost = 10 }, new RecipeIngredient { prefab = "TrophyUlv", amount = 2, upgradeCost = 0 } } }; Loader.AddDefinition(itemDefinition3); ItemDefinition itemDefinition4 = new ItemDefinition(); itemDefinition4.Name = "Bronze Arbelist"; itemDefinition4.Category = ItemCategory.Bows; itemDefinition4.prefab = "VAArbalistBronze"; itemDefinition4.icon = "bronze_crossbow_upright"; itemDefinition4.craftedAt = "forge"; itemDefinition4.craftAmount = 1; itemDefinition4.craftable = false; itemDefinition4.modifableStats = new Dictionary { { ItemStat.pierce, new ItemStatConfig { default_value = 140f, min = 0f, max = 300f } }, { ItemStat.pierce_per_level, new ItemStatConfig { default_value = 6f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 200f, min = 0f, max = 300f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 3f, min = 0f, max = 150f } }, { ItemStat.durability, new ItemStatConfig { default_value = 100f, min = 0f, max = 300f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.crossbow_reload_speed, new ItemStatConfig { default_value = 3.5f, min = 0.01f, max = 3.5f } }, { ItemStat.crossbow_reload_stamina_drain, new ItemStatConfig { default_value = 1f, min = 1f, max = 50f } }, { ItemStat.projectile_velocity, new ItemStatConfig { default_value = 200f, min = 0f, max = 300f } } }; itemDefinition4.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "ElderBark", amount = 10, upgradeCost = 5 }, new RecipeIngredient { prefab = "Bronze", amount = 20, upgradeCost = 10 }, new RecipeIngredient { prefab = "JuteRed", amount = 5, upgradeCost = 2 }, new RecipeIngredient { prefab = "Silver", amount = 2, upgradeCost = 2 } } }; Loader.AddDefinition(itemDefinition4); ItemDefinition itemDefinition5 = new ItemDefinition(); itemDefinition5.Name = "Iron Crossbow"; itemDefinition5.Category = ItemCategory.Bows; itemDefinition5.prefab = "VACrossbowIron"; itemDefinition5.icon = "iron_crossbow"; itemDefinition5.craftedAt = "forge"; itemDefinition5.craftAmount = 1; itemDefinition5.modifableStats = new Dictionary { { ItemStat.pierce, new ItemStatConfig { default_value = 120f, min = 0f, max = 300f } }, { ItemStat.pierce_per_level, new ItemStatConfig { default_value = 6f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 200f, min = 0f, max = 300f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 3f, min = 0f, max = 150f } }, { ItemStat.durability, new ItemStatConfig { default_value = 100f, min = 0f, max = 300f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.crossbow_reload_speed, new ItemStatConfig { default_value = 3.5f, min = 0.01f, max = 3.5f } }, { ItemStat.crossbow_reload_stamina_drain, new ItemStatConfig { default_value = 1f, min = 1f, max = 50f } }, { ItemStat.projectile_velocity, new ItemStatConfig { default_value = 200f, min = 0f, max = 300f } } }; itemDefinition5.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "ElderBark", amount = 5, upgradeCost = 5 }, new RecipeIngredient { prefab = "FineWood", amount = 20, upgradeCost = 10 }, new RecipeIngredient { prefab = "Iron", amount = 10, upgradeCost = 2 }, new RecipeIngredient { prefab = "IronNails", amount = 2, upgradeCost = 2 } } }; Loader.AddDefinition(itemDefinition5); ItemDefinition itemDefinition6 = new ItemDefinition(); itemDefinition6.Name = "Silver Crossbow"; itemDefinition6.Category = ItemCategory.Bows; itemDefinition6.prefab = "VACrossbowSilver"; itemDefinition6.icon = "silver_crossbow"; itemDefinition6.craftedAt = "forge"; itemDefinition6.craftAmount = 1; itemDefinition6.modifableStats = new Dictionary { { ItemStat.pierce, new ItemStatConfig { default_value = 140f, min = 0f, max = 300f } }, { ItemStat.pierce_per_level, new ItemStatConfig { default_value = 6f, min = 0f, max = 50f } }, { ItemStat.poison, new ItemStatConfig { default_value = 30f, min = 0f, max = 300f } }, { ItemStat.spirit, new ItemStatConfig { default_value = 40f, min = 0f, max = 300f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 200f, min = 0f, max = 300f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 3f, min = 0f, max = 150f } }, { ItemStat.durability, new ItemStatConfig { default_value = 100f, min = 0f, max = 300f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.crossbow_reload_speed, new ItemStatConfig { default_value = 3.5f, min = 0.01f, max = 3.5f } }, { ItemStat.crossbow_reload_stamina_drain, new ItemStatConfig { default_value = 1f, min = 1f, max = 50f } }, { ItemStat.projectile_velocity, new ItemStatConfig { default_value = 200f, min = 0f, max = 300f } } }; itemDefinition6.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "Guck", amount = 5, upgradeCost = 5 }, new RecipeIngredient { prefab = "ElderBark", amount = 20, upgradeCost = 10 }, new RecipeIngredient { prefab = "Silver", amount = 12, upgradeCost = 2 }, new RecipeIngredient { prefab = "IronNails", amount = 2, upgradeCost = 2 } } }; Loader.AddDefinition(itemDefinition6); ItemDefinition itemDefinition7 = new ItemDefinition(); itemDefinition7.Name = "Blackmetal Crossbow"; itemDefinition7.Category = ItemCategory.Bows; itemDefinition7.prefab = "VACrossbowBlackmetal"; itemDefinition7.icon = "blackmetal_crossbow"; itemDefinition7.craftedAt = "forge"; itemDefinition7.craftAmount = 1; itemDefinition7.modifableStats = new Dictionary { { ItemStat.pierce, new ItemStatConfig { default_value = 180f, min = 0f, max = 300f } }, { ItemStat.pierce_per_level, new ItemStatConfig { default_value = 3f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 200f, min = 0f, max = 300f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 3f, min = 0f, max = 150f } }, { ItemStat.durability, new ItemStatConfig { default_value = 50f, min = 0f, max = 300f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.crossbow_reload_speed, new ItemStatConfig { default_value = 3.5f, min = 0.01f, max = 3.5f } }, { ItemStat.crossbow_reload_stamina_drain, new ItemStatConfig { default_value = 1f, min = 1f, max = 50f } }, { ItemStat.projectile_velocity, new ItemStatConfig { default_value = 200f, min = 0f, max = 300f } } }; itemDefinition7.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "FineWood", amount = 16, upgradeCost = 8 }, new RecipeIngredient { prefab = "BlackMetal", amount = 20, upgradeCost = 10 }, new RecipeIngredient { prefab = "LinenThread", amount = 6, upgradeCost = 4 }, new RecipeIngredient { prefab = "Iron", amount = 4, upgradeCost = 2 } } }; Loader.AddDefinition(itemDefinition7); ItemDefinition itemDefinition8 = new ItemDefinition(); itemDefinition8.Name = "Eikthyrs Bow"; itemDefinition8.Category = ItemCategory.Bows; itemDefinition8.prefab = "VAAntler_Bow"; itemDefinition8.icon = "antler_bow"; itemDefinition8.craftedAt = "piece_workbench"; itemDefinition8.craftAmount = 1; itemDefinition8.modifableStats = new Dictionary { { ItemStat.pierce, new ItemStatConfig { default_value = 26f, min = 0f, max = 120f } }, { ItemStat.pierce_per_level, new ItemStatConfig { default_value = 2f, min = 0f, max = 50f } }, { ItemStat.lightning, new ItemStatConfig { default_value = 4f, min = 0f, max = 90f } }, { ItemStat.lightning_per_level, new ItemStatConfig { default_value = 1f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 5f, min = 0f, max = 50f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 3f, min = 0f, max = 50f } }, { ItemStat.draw_stamina_drain, new ItemStatConfig { default_value = 6f, min = 1f, max = 50f } }, { ItemStat.bow_draw_speed, new ItemStatConfig { default_value = 2.5f, min = 0.01f, max = 2.5f } }, { ItemStat.durability, new ItemStatConfig { default_value = 100f, min = 0f, max = 300f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.projectile_velocity, new ItemStatConfig { default_value = 45f, min = 0f, max = 120f } }, { ItemStat.projectile_accuracy_max, new ItemStatConfig { default_value = 100f, min = 0f, max = 100f } } }; itemDefinition8.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "FineWood", amount = 15, upgradeCost = 5 }, new RecipeIngredient { prefab = "Resin", amount = 20, upgradeCost = 10 }, new RecipeIngredient { prefab = "HardAntler", amount = 3, upgradeCost = 3 }, new RecipeIngredient { prefab = "TrophyEikthyr", amount = 1, upgradeCost = 1 } } }; Loader.AddDefinition(itemDefinition8); ItemDefinition itemDefinition9 = new ItemDefinition(); itemDefinition9.Name = "Bronze Crossbow"; itemDefinition9.Category = ItemCategory.Bows; itemDefinition9.prefab = "VACrossbowBronze"; itemDefinition9.icon = "bronze_crossbow2"; itemDefinition9.craftedAt = "forge"; itemDefinition9.craftAmount = 1; itemDefinition9.modifableStats = new Dictionary { { ItemStat.pierce, new ItemStatConfig { default_value = 80f, min = 0f, max = 300f } }, { ItemStat.pierce_per_level, new ItemStatConfig { default_value = 3f, min = 0f, max = 50f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 3f, min = 0f, max = 150f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 150f, min = 0f, max = 300f } }, { ItemStat.durability, new ItemStatConfig { default_value = 100f, min = 0f, max = 300f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.crossbow_reload_speed, new ItemStatConfig { default_value = 3.5f, min = 0.01f, max = 3.5f } }, { ItemStat.crossbow_reload_stamina_drain, new ItemStatConfig { default_value = 1f, min = 1f, max = 50f } }, { ItemStat.projectile_velocity, new ItemStatConfig { default_value = 200f, min = 0f, max = 300f } } }; itemDefinition9.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "FineWood", amount = 10, upgradeCost = 5 }, new RecipeIngredient { prefab = "RoundLog", amount = 10, upgradeCost = 5 }, new RecipeIngredient { prefab = "Bronze", amount = 4, upgradeCost = 0 }, new RecipeIngredient { prefab = "DeerHide", amount = 2, upgradeCost = 2 } } }; Loader.AddDefinition(itemDefinition9); ItemDefinition itemDefinition10 = new ItemDefinition(); itemDefinition10.Name = "Wood Crossbow"; itemDefinition10.Category = ItemCategory.Bows; itemDefinition10.prefab = "VACrossbowWood"; itemDefinition10.icon = "woodCrossbow"; itemDefinition10.craftedAt = "piece_workbench"; itemDefinition10.craftAmount = 1; itemDefinition10.modifableStats = new Dictionary { { ItemStat.pierce, new ItemStatConfig { default_value = 40f, min = 0f, max = 300f } }, { ItemStat.pierce_per_level, new ItemStatConfig { default_value = 3f, min = 0f, max = 50f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 3f, min = 0f, max = 150f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 150f, min = 0f, max = 300f } }, { ItemStat.durability, new ItemStatConfig { default_value = 50f, min = 0f, max = 300f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.crossbow_reload_speed, new ItemStatConfig { default_value = 7f, min = 0.01f, max = 10f } }, { ItemStat.crossbow_reload_stamina_drain, new ItemStatConfig { default_value = 1f, min = 1f, max = 50f } }, { ItemStat.projectile_velocity, new ItemStatConfig { default_value = 200f, min = 0f, max = 300f } } }; itemDefinition10.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "Wood", amount = 30, upgradeCost = 15 }, new RecipeIngredient { prefab = "Resin", amount = 10, upgradeCost = 5 }, new RecipeIngredient { prefab = "DeerHide", amount = 2, upgradeCost = 2 } } }; Loader.AddDefinition(itemDefinition10); ItemDefinition itemDefinition11 = new ItemDefinition(); itemDefinition11.Name = "Elders Reach"; itemDefinition11.Category = ItemCategory.Bows; itemDefinition11.prefab = "VACrossbowElder"; itemDefinition11.icon = "elder_crossbow"; itemDefinition11.craftedAt = "forge"; itemDefinition11.craftAmount = 1; itemDefinition11.modifableStats = new Dictionary { { ItemStat.pierce, new ItemStatConfig { default_value = 80f, min = 0f, max = 300f } }, { ItemStat.pierce_per_level, new ItemStatConfig { default_value = 3f, min = 0f, max = 50f } }, { ItemStat.spirit, new ItemStatConfig { default_value = 7f, min = 0f, max = 300f } }, { ItemStat.spirit_per_level, new ItemStatConfig { default_value = 2f, min = 0f, max = 50f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 3f, min = 0f, max = 150f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 150f, min = 0f, max = 300f } }, { ItemStat.durability, new ItemStatConfig { default_value = 100f, min = 0f, max = 300f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.crossbow_reload_speed, new ItemStatConfig { default_value = 3.5f, min = 0.01f, max = 3.5f } }, { ItemStat.crossbow_reload_stamina_drain, new ItemStatConfig { default_value = 1f, min = 1f, max = 50f } }, { ItemStat.projectile_velocity, new ItemStatConfig { default_value = 200f, min = 0f, max = 300f } } }; itemDefinition11.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "Bronze", amount = 4, upgradeCost = 2 }, new RecipeIngredient { prefab = "RoundLog", amount = 20, upgradeCost = 10 }, new RecipeIngredient { prefab = "CryptKey", amount = 1, upgradeCost = 0 }, new RecipeIngredient { prefab = "TrophyTheElder", amount = 1, upgradeCost = 0 } } }; Loader.AddDefinition(itemDefinition11); ItemDefinition itemDefinition12 = new ItemDefinition(); itemDefinition12.Name = "Moder Crossbow"; itemDefinition12.Category = ItemCategory.Bows; itemDefinition12.prefab = "VACrossbowModer"; itemDefinition12.icon = "moder_crossbow"; itemDefinition12.craftedAt = "forge"; itemDefinition12.craftAmount = 1; itemDefinition12.modifableStats = new Dictionary { { ItemStat.pierce, new ItemStatConfig { default_value = 150f, min = 0f, max = 300f } }, { ItemStat.pierce_per_level, new ItemStatConfig { default_value = 3f, min = 0f, max = 50f } }, { ItemStat.frost, new ItemStatConfig { default_value = 25f, min = 0f, max = 300f } }, { ItemStat.frost_per_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 50f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 3f, min = 0f, max = 150f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 200f, min = 0f, max = 300f } }, { ItemStat.durability, new ItemStatConfig { default_value = 100f, min = 0f, max = 300f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.crossbow_reload_speed, new ItemStatConfig { default_value = 3.5f, min = 0.01f, max = 3.5f } }, { ItemStat.crossbow_reload_stamina_drain, new ItemStatConfig { default_value = 1f, min = 1f, max = 50f } }, { ItemStat.projectile_velocity, new ItemStatConfig { default_value = 200f, min = 0f, max = 300f } } }; itemDefinition12.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "ElderBark", amount = 10, upgradeCost = 5 }, new RecipeIngredient { prefab = "Obsidian", amount = 20, upgradeCost = 10 }, new RecipeIngredient { prefab = "DragonTear", amount = 10, upgradeCost = 0 }, new RecipeIngredient { prefab = "TrophyDragonQueen", amount = 1, upgradeCost = 0 }, new RecipeIngredient { prefab = "Silver", amount = 0, upgradeCost = 6 } } }; Loader.AddDefinition(itemDefinition12); ItemDefinition itemDefinition13 = new ItemDefinition(); itemDefinition13.Name = "Queens Greatbow"; itemDefinition13.Category = ItemCategory.Bows; itemDefinition13.prefab = "VAQueen_bow"; itemDefinition13.icon = "queen_bow"; itemDefinition13.craftedAt = "blackforge"; itemDefinition13.craftAmount = 1; itemDefinition13.modifableStats = new Dictionary { { ItemStat.pierce, new ItemStatConfig { default_value = 72f, min = 0f, max = 200f } }, { ItemStat.pierce_per_level, new ItemStatConfig { default_value = 3f, min = 0f, max = 50f } }, { ItemStat.poison, new ItemStatConfig { default_value = 25f, min = 0f, max = 90f } }, { ItemStat.poison_per_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 50f } }, { ItemStat.lightning, new ItemStatConfig { default_value = 30f, min = 0f, max = 99f } }, { ItemStat.lightning_per_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 25f, min = 0f, max = 50f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 3f, min = 0f, max = 50f } }, { ItemStat.durability, new ItemStatConfig { default_value = 100f, min = 0f, max = 300f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.draw_stamina_drain, new ItemStatConfig { default_value = 12f, min = 1f, max = 50f } }, { ItemStat.bow_draw_speed, new ItemStatConfig { default_value = 3f, min = 0.01f, max = 3f } }, { ItemStat.projectile_velocity, new ItemStatConfig { default_value = 60f, min = 0f, max = 120f } }, { ItemStat.projectile_accuracy_max, new ItemStatConfig { default_value = 100f, min = 0f, max = 100f } } }; itemDefinition13.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "YggdrasilWood", amount = 10, upgradeCost = 5 }, new RecipeIngredient { prefab = "Eitr", amount = 20, upgradeCost = 10 }, new RecipeIngredient { prefab = "JuteBlue", amount = 4, upgradeCost = 0 }, new RecipeIngredient { prefab = "TrophySeekerQueen", amount = 1, upgradeCost = 0 }, new RecipeIngredient { prefab = "Carapace", amount = 0, upgradeCost = 4 } } }; Loader.AddDefinition(itemDefinition13); } private void LoadSwords() { Logger.LogInfo("Loading Swords"); ItemDefinition itemDefinition = new ItemDefinition(); itemDefinition.Name = "Faders Sword"; itemDefinition.Category = ItemCategory.Swords; itemDefinition.prefab = "VASwordFader"; itemDefinition.icon = "fader_sword"; itemDefinition.craftedAt = "blackforge"; itemDefinition.craftAmount = 1; itemDefinition.modifableStats = new Dictionary { { ItemStat.slash, new ItemStatConfig { default_value = 145f, min = 0f, max = 250f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 3f, min = 0f, max = 50f } }, { ItemStat.fire, new ItemStatConfig { default_value = 25f, min = 0f, max = 250f } }, { ItemStat.fire_per_level, new ItemStatConfig { default_value = 1f, min = 0f, max = 50f } }, { ItemStat.poison, new ItemStatConfig { default_value = 25f, min = 0f, max = 250f } }, { ItemStat.poison_per_level, new ItemStatConfig { default_value = 1f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 55f, min = 0f, max = 120f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 60f, min = 0f, max = 150f } }, { ItemStat.block_force, new ItemStatConfig { default_value = 50f, min = 0f, max = 120f } }, { ItemStat.durability, new ItemStatConfig { default_value = 200f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 18f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 30f, min = 1f, max = 50f } } }; itemDefinition.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "FlametalNew", amount = 30, upgradeCost = 30 }, new RecipeIngredient { prefab = "CharredBone", amount = 30, upgradeCost = 30 }, new RecipeIngredient { prefab = "TrophyFader", amount = 1, upgradeCost = 0 }, new RecipeIngredient { prefab = "FaderDrop", amount = 1, upgradeCost = 0 } } }; Loader.AddDefinition(itemDefinition); ItemDefinition itemDefinition2 = new ItemDefinition(); itemDefinition2.Name = "Faders Greatsword"; itemDefinition2.Category = ItemCategory.Swords; itemDefinition2.prefab = "VAGreatswordFader"; itemDefinition2.icon = "fader_greatsword"; itemDefinition2.craftedAt = "blackforge"; itemDefinition2.craftAmount = 1; itemDefinition2.modifableStats = new Dictionary { { ItemStat.slash, new ItemStatConfig { default_value = 180f, min = 0f, max = 250f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 3f, min = 0f, max = 50f } }, { ItemStat.fire, new ItemStatConfig { default_value = 30f, min = 0f, max = 250f } }, { ItemStat.fire_per_level, new ItemStatConfig { default_value = 1f, min = 0f, max = 50f } }, { ItemStat.poison, new ItemStatConfig { default_value = 30f, min = 0f, max = 250f } }, { ItemStat.poison_per_level, new ItemStatConfig { default_value = 1f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 55f, min = 0f, max = 120f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 60f, min = 0f, max = 150f } }, { ItemStat.block_force, new ItemStatConfig { default_value = 50f, min = 0f, max = 120f } }, { ItemStat.durability, new ItemStatConfig { default_value = 200f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 18f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 30f, min = 1f, max = 50f } } }; itemDefinition2.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "FlametalNew", amount = 40, upgradeCost = 20 }, new RecipeIngredient { prefab = "CharredBone", amount = 20, upgradeCost = 20 }, new RecipeIngredient { prefab = "TrophyFader", amount = 1, upgradeCost = 0 }, new RecipeIngredient { prefab = "FaderDrop", amount = 1, upgradeCost = 0 } } }; Loader.AddDefinition(itemDefinition2); ItemDefinition itemDefinition3 = new ItemDefinition(); itemDefinition3.Name = "Blackmetal Greatsword"; itemDefinition3.Category = ItemCategory.Swords; itemDefinition3.prefab = "VABlackmetal_greatsword"; itemDefinition3.icon = "blackmetal_greatsword"; itemDefinition3.craftedAt = "forge"; itemDefinition3.craftAmount = 1; itemDefinition3.modifableStats = new Dictionary { { ItemStat.slash, new ItemStatConfig { default_value = 125f, min = 0f, max = 250f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 55f, min = 0f, max = 120f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 52f, min = 0f, max = 150f } }, { ItemStat.block_force, new ItemStatConfig { default_value = 50f, min = 0f, max = 120f } }, { ItemStat.durability, new ItemStatConfig { default_value = 200f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 18f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 36f, min = 1f, max = 50f } } }; itemDefinition3.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "BlackMetal", amount = 30, upgradeCost = 10 }, new RecipeIngredient { prefab = "LinenThread", amount = 10, upgradeCost = 5 }, new RecipeIngredient { prefab = "FineWood", amount = 6, upgradeCost = 3 } } }; Loader.AddDefinition(itemDefinition3); ItemDefinition itemDefinition4 = new ItemDefinition(); itemDefinition4.Name = "Abyssal Sword"; itemDefinition4.Category = ItemCategory.Swords; itemDefinition4.prefab = "VASwordChitin"; itemDefinition4.icon = "chitin_sword"; itemDefinition4.craftedAt = "piece_workbench"; itemDefinition4.craftAmount = 1; itemDefinition4.modifableStats = new Dictionary { { ItemStat.blunt, new ItemStatConfig { default_value = 20f, min = 0f, max = 90f } }, { ItemStat.blunt_per_level, new ItemStatConfig { default_value = 4f, min = 0f, max = 50f } }, { ItemStat.slash, new ItemStatConfig { default_value = 25f, min = 0f, max = 120f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 2f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 40f, min = 0f, max = 120f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 18f, min = 0f, max = 150f } }, { ItemStat.block_force, new ItemStatConfig { default_value = 20f, min = 0f, max = 120f } }, { ItemStat.durability, new ItemStatConfig { default_value = 200f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 10f, min = 1f, max = 30f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 20f, min = 1f, max = 50f } } }; itemDefinition4.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "FineWood", amount = 2, upgradeCost = 1 }, new RecipeIngredient { prefab = "Chitin", amount = 30, upgradeCost = 15 }, new RecipeIngredient { prefab = "DeerHide", amount = 2, upgradeCost = 0 } } }; Loader.AddDefinition(itemDefinition4); ItemDefinition itemDefinition5 = new ItemDefinition(); itemDefinition5.Name = "Eikthyrs Sword"; itemDefinition5.Category = ItemCategory.Swords; itemDefinition5.prefab = "VAAntler_Sword"; itemDefinition5.icon = "antler_sword"; itemDefinition5.craftedAt = "piece_workbench"; itemDefinition5.craftAmount = 1; itemDefinition5.modifableStats = new Dictionary { { ItemStat.slash, new ItemStatConfig { default_value = 16f, min = 0f, max = 90f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 2f, min = 0f, max = 50f } }, { ItemStat.blunt, new ItemStatConfig { default_value = 8f, min = 0f, max = 90f } }, { ItemStat.blunt_per_level, new ItemStatConfig { default_value = 4f, min = 0f, max = 50f } }, { ItemStat.lightning, new ItemStatConfig { default_value = 6f, min = 0f, max = 120f } }, { ItemStat.lightning_per_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 40f, min = 0f, max = 120f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 8f, min = 0f, max = 150f } }, { ItemStat.block_force, new ItemStatConfig { default_value = 20f, min = 0f, max = 120f } }, { ItemStat.durability, new ItemStatConfig { default_value = 200f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 8f, min = 1f, max = 30f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 16f, min = 1f, max = 50f } } }; itemDefinition5.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "FineWood", amount = 3, upgradeCost = 1 }, new RecipeIngredient { prefab = "Resin", amount = 16, upgradeCost = 8 }, new RecipeIngredient { prefab = "HardAntler", amount = 3, upgradeCost = 3 }, new RecipeIngredient { prefab = "TrophyEikthyr", amount = 1, upgradeCost = 1 } } }; Loader.AddDefinition(itemDefinition5); ItemDefinition itemDefinition6 = new ItemDefinition(); itemDefinition6.Name = "Elders Balance"; itemDefinition6.Category = ItemCategory.Swords; itemDefinition6.prefab = "VAVine_Sword"; itemDefinition6.icon = "vine_sword"; itemDefinition6.craftedAt = "forge"; itemDefinition6.craftAmount = 1; itemDefinition6.modifableStats = new Dictionary { { ItemStat.slash, new ItemStatConfig { default_value = 40f, min = 0f, max = 90f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 6f, min = 0f, max = 50f } }, { ItemStat.spirit, new ItemStatConfig { default_value = 10f, min = 0f, max = 120f } }, { ItemStat.spirit_per_level, new ItemStatConfig { default_value = 2f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 40f, min = 0f, max = 120f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 12f, min = 0f, max = 150f } }, { ItemStat.block_force, new ItemStatConfig { default_value = 20f, min = 0f, max = 120f } }, { ItemStat.durability, new ItemStatConfig { default_value = 200f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 8f, min = 1f, max = 30f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 16f, min = 1f, max = 50f } } }; itemDefinition6.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "Bronze", amount = 2, upgradeCost = 1 }, new RecipeIngredient { prefab = "Stone", amount = 16, upgradeCost = 8 }, new RecipeIngredient { prefab = "CryptKey", amount = 1, upgradeCost = 0 }, new RecipeIngredient { prefab = "TrophyTheElder", amount = 1, upgradeCost = 0 }, new RecipeIngredient { prefab = "RoundLog", amount = 0, upgradeCost = 4 } } }; Loader.AddDefinition(itemDefinition6); ItemDefinition itemDefinition7 = new ItemDefinition(); itemDefinition7.Name = "Moders Grasp"; itemDefinition7.Category = ItemCategory.Swords; itemDefinition7.prefab = "VASwordModer"; itemDefinition7.icon = "moder_sword"; itemDefinition7.craftedAt = "forge"; itemDefinition7.craftAmount = 1; itemDefinition7.modifableStats = new Dictionary { { ItemStat.slash, new ItemStatConfig { default_value = 35f, min = 0f, max = 90f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 2f, min = 0f, max = 50f } }, { ItemStat.pierce, new ItemStatConfig { default_value = 30f, min = 0f, max = 90f } }, { ItemStat.pierce_per_level, new ItemStatConfig { default_value = 4f, min = 0f, max = 50f } }, { ItemStat.frost, new ItemStatConfig { default_value = 25f, min = 0f, max = 120f } }, { ItemStat.frost_per_level, new ItemStatConfig { default_value = 1f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 40f, min = 0f, max = 120f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 30f, min = 0f, max = 150f } }, { ItemStat.block_force, new ItemStatConfig { default_value = 20f, min = 0f, max = 120f } }, { ItemStat.durability, new ItemStatConfig { default_value = 200f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 12f, min = 1f, max = 30f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 24f, min = 1f, max = 50f } } }; itemDefinition7.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "ElderBark", amount = 4, upgradeCost = 2 }, new RecipeIngredient { prefab = "Obsidian", amount = 30, upgradeCost = 15 }, new RecipeIngredient { prefab = "DragonTear", amount = 10, upgradeCost = 0 }, new RecipeIngredient { prefab = "TrophyDragonQueen", amount = 1, upgradeCost = 0 }, new RecipeIngredient { prefab = "Silver", amount = 0, upgradeCost = 2 }, new RecipeIngredient { prefab = "JuteRed", amount = 0, upgradeCost = 2 } } }; Loader.AddDefinition(itemDefinition7); ItemDefinition itemDefinition8 = new ItemDefinition(); itemDefinition8.Name = "Moders Greatsword"; itemDefinition8.Category = ItemCategory.Swords; itemDefinition8.prefab = "VAModer_greatsword"; itemDefinition8.icon = "moder_greatsword"; itemDefinition8.craftedAt = "forge"; itemDefinition8.craftAmount = 1; itemDefinition8.modifableStats = new Dictionary { { ItemStat.slash, new ItemStatConfig { default_value = 55f, min = 0f, max = 90f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 2f, min = 0f, max = 50f } }, { ItemStat.pierce, new ItemStatConfig { default_value = 40f, min = 0f, max = 90f } }, { ItemStat.pierce_per_level, new ItemStatConfig { default_value = 4f, min = 0f, max = 50f } }, { ItemStat.frost, new ItemStatConfig { default_value = 25f, min = 0f, max = 120f } }, { ItemStat.frost_per_level, new ItemStatConfig { default_value = 1f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 55f, min = 0f, max = 120f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 48f, min = 0f, max = 150f } }, { ItemStat.block_force, new ItemStatConfig { default_value = 50f, min = 0f, max = 120f } }, { ItemStat.durability, new ItemStatConfig { default_value = 200f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 17f, min = 1f, max = 30f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 34f, min = 1f, max = 50f } } }; itemDefinition8.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "Crystal", amount = 25, upgradeCost = 10 }, new RecipeIngredient { prefab = "Obsidian", amount = 15, upgradeCost = 10 }, new RecipeIngredient { prefab = "DragonTear", amount = 10, upgradeCost = 0 }, new RecipeIngredient { prefab = "TrophyDragonQueen", amount = 1, upgradeCost = 0 }, new RecipeIngredient { prefab = "Silver", amount = 0, upgradeCost = 4 }, new RecipeIngredient { prefab = "JuteRed", amount = 0, upgradeCost = 2 } } }; Loader.AddDefinition(itemDefinition8); ItemDefinition itemDefinition9 = new ItemDefinition(); itemDefinition9.Name = "Bronze Greatsword"; itemDefinition9.Category = ItemCategory.Swords; itemDefinition9.prefab = "VAbronze_greatsword"; itemDefinition9.icon = "bronze_greatsword_reforged"; itemDefinition9.craftedAt = "forge"; itemDefinition9.craftAmount = 1; itemDefinition9.modifableStats = new Dictionary { { ItemStat.slash, new ItemStatConfig { default_value = 50f, min = 0f, max = 200f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 6f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 55f, min = 0f, max = 160f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 16f, min = 0f, max = 150f } }, { ItemStat.block_force, new ItemStatConfig { default_value = 50f, min = 0f, max = 120f } }, { ItemStat.durability, new ItemStatConfig { default_value = 200f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 12f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 24f, min = 1f, max = 50f } } }; itemDefinition9.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "RoundLog", amount = 4, upgradeCost = 0 }, new RecipeIngredient { prefab = "Bronze", amount = 20, upgradeCost = 10 }, new RecipeIngredient { prefab = "DeerHide", amount = 3, upgradeCost = 0 } } }; Loader.AddDefinition(itemDefinition9); ItemDefinition itemDefinition10 = new ItemDefinition(); itemDefinition10.Name = "Iron Greatsword"; itemDefinition10.Category = ItemCategory.Swords; itemDefinition10.prefab = "VAiron_greatsword"; itemDefinition10.icon = "iron_greatsword_reforged"; itemDefinition10.craftedAt = "forge"; itemDefinition10.craftAmount = 1; itemDefinition10.modifableStats = new Dictionary { { ItemStat.slash, new ItemStatConfig { default_value = 75f, min = 0f, max = 250f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 6f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 55f, min = 0f, max = 160f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 28f, min = 0f, max = 150f } }, { ItemStat.block_force, new ItemStatConfig { default_value = 50f, min = 0f, max = 120f } }, { ItemStat.durability, new ItemStatConfig { default_value = 200f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 14f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 28f, min = 1f, max = 50f } } }; itemDefinition10.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "ElderBark", amount = 15, upgradeCost = 5 }, new RecipeIngredient { prefab = "Iron", amount = 30, upgradeCost = 15 }, new RecipeIngredient { prefab = "LeatherScraps", amount = 4, upgradeCost = 0 } } }; Loader.AddDefinition(itemDefinition10); ItemDefinition itemDefinition11 = new ItemDefinition(); itemDefinition11.Name = "Silver Greatsword"; itemDefinition11.Category = ItemCategory.Swords; itemDefinition11.prefab = "VAsilver_greatsword"; itemDefinition11.icon = "silver_greatsword_reforged"; itemDefinition11.craftedAt = "forge"; itemDefinition11.craftAmount = 1; itemDefinition11.modifableStats = new Dictionary { { ItemStat.slash, new ItemStatConfig { default_value = 100f, min = 0f, max = 300f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 6f, min = 0f, max = 50f } }, { ItemStat.spirit, new ItemStatConfig { default_value = 30f, min = 0f, max = 120f } }, { ItemStat.spirit_per_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 55f, min = 0f, max = 160f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 40f, min = 0f, max = 150f } }, { ItemStat.block_force, new ItemStatConfig { default_value = 50f, min = 0f, max = 120f } }, { ItemStat.durability, new ItemStatConfig { default_value = 200f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 16f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 32f, min = 1f, max = 50f } } }; itemDefinition11.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "Wood", amount = 10, upgradeCost = 5 }, new RecipeIngredient { prefab = "Silver", amount = 45, upgradeCost = 10 }, new RecipeIngredient { prefab = "Iron", amount = 5, upgradeCost = 2 }, new RecipeIngredient { prefab = "LeatherScraps", amount = 3, upgradeCost = 1 } } }; Loader.AddDefinition(itemDefinition11); ItemDefinition itemDefinition12 = new ItemDefinition(); itemDefinition12.Name = "Bonemasses Sword"; itemDefinition12.Category = ItemCategory.Swords; itemDefinition12.prefab = "VABonemassSword"; itemDefinition12.icon = "bonemass_sword"; itemDefinition12.craftedAt = "forge"; itemDefinition12.craftAmount = 1; itemDefinition12.modifableStats = new Dictionary { { ItemStat.slash, new ItemStatConfig { default_value = 65f, min = 0f, max = 250f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 6f, min = 0f, max = 50f } }, { ItemStat.poison, new ItemStatConfig { default_value = 20f, min = 0f, max = 250f } }, { ItemStat.poison_per_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 55f, min = 0f, max = 160f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 30f, min = 0f, max = 150f } }, { ItemStat.block_force, new ItemStatConfig { default_value = 45f, min = 0f, max = 120f } }, { ItemStat.durability, new ItemStatConfig { default_value = 200f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 15f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 30f, min = 1f, max = 50f } } }; itemDefinition12.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "WitheredBone", amount = 10, upgradeCost = 5 }, new RecipeIngredient { prefab = "Iron", amount = 22, upgradeCost = 15 }, new RecipeIngredient { prefab = "Wishbone", amount = 1, upgradeCost = 0 }, new RecipeIngredient { prefab = "TrophyBonemass", amount = 1, upgradeCost = 0 }, new RecipeIngredient { prefab = "ElderBark", amount = 0, upgradeCost = 2 }, new RecipeIngredient { prefab = "LeatherScraps", amount = 0, upgradeCost = 2 } } }; Loader.AddDefinition(itemDefinition12); ItemDefinition itemDefinition13 = new ItemDefinition(); itemDefinition13.Name = "Bonemasses Greatsword"; itemDefinition13.Category = ItemCategory.Swords; itemDefinition13.prefab = "VABonemassGreatsword"; itemDefinition13.icon = "bonemass_greatsword"; itemDefinition13.craftedAt = "forge"; itemDefinition13.craftAmount = 1; itemDefinition13.modifableStats = new Dictionary { { ItemStat.slash, new ItemStatConfig { default_value = 75f, min = 0f, max = 250f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 6f, min = 0f, max = 50f } }, { ItemStat.poison, new ItemStatConfig { default_value = 20f, min = 0f, max = 250f } }, { ItemStat.poison_per_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 55f, min = 0f, max = 160f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 36f, min = 0f, max = 150f } }, { ItemStat.block_force, new ItemStatConfig { default_value = 50f, min = 0f, max = 120f } }, { ItemStat.durability, new ItemStatConfig { default_value = 200f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 15f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 30f, min = 1f, max = 50f } } }; itemDefinition13.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "WitheredBone", amount = 15, upgradeCost = 5 }, new RecipeIngredient { prefab = "Iron", amount = 30, upgradeCost = 15 }, new RecipeIngredient { prefab = "Wishbone", amount = 1, upgradeCost = 0 }, new RecipeIngredient { prefab = "TrophyBonemass", amount = 1, upgradeCost = 0 }, new RecipeIngredient { prefab = "ElderBark", amount = 0, upgradeCost = 2 }, new RecipeIngredient { prefab = "LeatherScraps", amount = 0, upgradeCost = 2 } } }; Loader.AddDefinition(itemDefinition13); ItemDefinition itemDefinition14 = new ItemDefinition(); itemDefinition14.Name = "Yagluths Greatsword"; itemDefinition14.Category = ItemCategory.Swords; itemDefinition14.prefab = "VAYagluth_greatsword"; itemDefinition14.icon = "yagluth_greatsword"; itemDefinition14.craftedAt = "forge"; itemDefinition14.craftAmount = 1; itemDefinition14.modifableStats = new Dictionary { { ItemStat.slash, new ItemStatConfig { default_value = 125f, min = 0f, max = 250f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 6f, min = 0f, max = 50f } }, { ItemStat.fire, new ItemStatConfig { default_value = 25f, min = 0f, max = 250f } }, { ItemStat.fire_per_level, new ItemStatConfig { default_value = 1f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 55f, min = 0f, max = 160f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 49f, min = 0f, max = 150f } }, { ItemStat.block_force, new ItemStatConfig { default_value = 50f, min = 0f, max = 120f } }, { ItemStat.durability, new ItemStatConfig { default_value = 200f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 18f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 36f, min = 1f, max = 50f } } }; itemDefinition14.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "BlackMetal", amount = 10, upgradeCost = 5 }, new RecipeIngredient { prefab = "Iron", amount = 4, upgradeCost = 2 }, new RecipeIngredient { prefab = "YagluthDrop", amount = 2, upgradeCost = 0 }, new RecipeIngredient { prefab = "TrophyGoblinKing", amount = 1, upgradeCost = 0 }, new RecipeIngredient { prefab = "Tar", amount = 0, upgradeCost = 3 }, new RecipeIngredient { prefab = "LinenThread", amount = 0, upgradeCost = 2 } } }; Loader.AddDefinition(itemDefinition14); ItemDefinition itemDefinition15 = new ItemDefinition(); itemDefinition15.Name = "Flint Sword"; itemDefinition15.Category = ItemCategory.Swords; itemDefinition15.prefab = "VAFlint_Sword"; itemDefinition15.icon = "flint_sword"; itemDefinition15.craftedAt = "piece_workbench"; itemDefinition15.craftAmount = 1; itemDefinition15.modifableStats = new Dictionary { { ItemStat.slash, new ItemStatConfig { default_value = 15f, min = 0f, max = 90f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 6f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 40f, min = 0f, max = 120f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 4f, min = 0f, max = 150f } }, { ItemStat.block_force, new ItemStatConfig { default_value = 20f, min = 0f, max = 120f } }, { ItemStat.durability, new ItemStatConfig { default_value = 200f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 6f, min = 1f, max = 30f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 12f, min = 1f, max = 50f } } }; itemDefinition15.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "Wood", amount = 2, upgradeCost = 0 }, new RecipeIngredient { prefab = "Flint", amount = 6, upgradeCost = 3 }, new RecipeIngredient { prefab = "LeatherScraps", amount = 0, upgradeCost = 2 } } }; Loader.AddDefinition(itemDefinition15); ItemDefinition itemDefinition16 = new ItemDefinition(); itemDefinition16.Name = "Flint Greatsword"; itemDefinition16.Category = ItemCategory.Swords; itemDefinition16.prefab = "VAFlint_greatsword"; itemDefinition16.icon = "flint_greatsword"; itemDefinition16.craftedAt = "piece_workbench"; itemDefinition16.craftAmount = 1; itemDefinition16.modifableStats = new Dictionary { { ItemStat.slash, new ItemStatConfig { default_value = 25f, min = 0f, max = 200f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 6f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 55f, min = 0f, max = 160f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 14f, min = 0f, max = 150f } }, { ItemStat.block_force, new ItemStatConfig { default_value = 50f, min = 0f, max = 120f } }, { ItemStat.durability, new ItemStatConfig { default_value = 200f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 10f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 20f, min = 1f, max = 50f } } }; itemDefinition16.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "Wood", amount = 4, upgradeCost = 0 }, new RecipeIngredient { prefab = "Flint", amount = 9, upgradeCost = 5 }, new RecipeIngredient { prefab = "LeatherScraps", amount = 0, upgradeCost = 2 } } }; Loader.AddDefinition(itemDefinition16); ItemDefinition itemDefinition17 = new ItemDefinition(); itemDefinition17.Name = "Queen Greatsword"; itemDefinition17.Category = ItemCategory.Swords; itemDefinition17.prefab = "VAQueen_greatsword"; itemDefinition17.icon = "queen_greatsword"; itemDefinition17.craftedAt = "blackforge"; itemDefinition17.craftAmount = 1; itemDefinition17.modifableStats = new Dictionary { { ItemStat.slash, new ItemStatConfig { default_value = 125f, min = 0f, max = 250f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 6f, min = 0f, max = 50f } }, { ItemStat.poison, new ItemStatConfig { default_value = 25f, min = 0f, max = 250f } }, { ItemStat.poison_per_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 50f } }, { ItemStat.lightning, new ItemStatConfig { default_value = 30f, min = 0f, max = 99f } }, { ItemStat.lightning_per_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 55f, min = 0f, max = 160f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 62f, min = 0f, max = 150f } }, { ItemStat.block_force, new ItemStatConfig { default_value = 50f, min = 0f, max = 120f } }, { ItemStat.durability, new ItemStatConfig { default_value = 200f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 20f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 40f, min = 1f, max = 50f } } }; itemDefinition17.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "YggdrasilWood", amount = 10, upgradeCost = 5 }, new RecipeIngredient { prefab = "Eitr", amount = 20, upgradeCost = 10 }, new RecipeIngredient { prefab = "JuteBlue", amount = 4, upgradeCost = 2 }, new RecipeIngredient { prefab = "TrophySeekerQueen", amount = 1, upgradeCost = 0 }, new RecipeIngredient { prefab = "Carapace", amount = 0, upgradeCost = 8 } } }; Loader.AddDefinition(itemDefinition17); ItemDefinition itemDefinition18 = new ItemDefinition(); itemDefinition18.Name = "Queen Sword"; itemDefinition18.Category = ItemCategory.Swords; itemDefinition18.prefab = "VASwordQueen"; itemDefinition18.icon = "queen_sword"; itemDefinition18.craftedAt = "blackforge"; itemDefinition18.craftAmount = 1; itemDefinition18.modifableStats = new Dictionary { { ItemStat.slash, new ItemStatConfig { default_value = 95f, min = 0f, max = 250f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 6f, min = 0f, max = 50f } }, { ItemStat.poison, new ItemStatConfig { default_value = 25f, min = 0f, max = 250f } }, { ItemStat.poison_per_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 50f } }, { ItemStat.lightning, new ItemStatConfig { default_value = 30f, min = 0f, max = 99f } }, { ItemStat.lightning_per_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 40f, min = 0f, max = 160f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 52f, min = 0f, max = 150f } }, { ItemStat.block_force, new ItemStatConfig { default_value = 20f, min = 0f, max = 120f } }, { ItemStat.durability, new ItemStatConfig { default_value = 200f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 16f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 32f, min = 1f, max = 50f } } }; itemDefinition18.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "YggdrasilWood", amount = 3, upgradeCost = 1 }, new RecipeIngredient { prefab = "Eitr", amount = 10, upgradeCost = 5 }, new RecipeIngredient { prefab = "JuteBlue", amount = 3, upgradeCost = 1 }, new RecipeIngredient { prefab = "TrophySeekerQueen", amount = 1, upgradeCost = 0 }, new RecipeIngredient { prefab = "Carapace", amount = 0, upgradeCost = 6 } } }; Loader.AddDefinition(itemDefinition18); } private void LoadAxes() { Logger.LogInfo("Loading Axes"); ItemDefinition itemDefinition = new ItemDefinition(); itemDefinition.Name = "Flint axe"; itemDefinition.Category = ItemCategory.Axes; itemDefinition.prefab = "VAFlint_Axe"; itemDefinition.icon = "flint_axe"; itemDefinition.craftedAt = "piece_workbench"; itemDefinition.craftAmount = 1; itemDefinition.modifableStats = new Dictionary { { ItemStat.tool_level, new ItemStatConfig { default_value = 1f, min = 0f, max = 6f, isInt = true } }, { ItemStat.slash, new ItemStatConfig { default_value = 20f, min = 0f, max = 200f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 50f } }, { ItemStat.chop, new ItemStatConfig { default_value = 30f, min = 0f, max = 200f } }, { ItemStat.chop_per_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 50f, min = 0f, max = 200f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 4f, min = 0f, max = 150f } }, { ItemStat.block_force, new ItemStatConfig { default_value = 50f, min = 0f, max = 120f } }, { ItemStat.durability, new ItemStatConfig { default_value = 100f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 6f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 12f, min = 1f, max = 50f } }, { ItemStat.movement_speed, new ItemStatConfig { default_value = -0.05f, min = -0.15f, max = 0f } } }; itemDefinition.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "Wood", amount = 4, upgradeCost = 0 }, new RecipeIngredient { prefab = "Flint", amount = 6, upgradeCost = 3 }, new RecipeIngredient { prefab = "LeatherScraps", amount = 0, upgradeCost = 2 } } }; Loader.AddDefinition(itemDefinition); ItemDefinition itemDefinition2 = new ItemDefinition(); itemDefinition2.Name = "Flint greataxe"; itemDefinition2.Category = ItemCategory.Axes; itemDefinition2.prefab = "VAFlint_greataxe"; itemDefinition2.icon = "flint_greataxe"; itemDefinition2.craftedAt = "piece_workbench"; itemDefinition2.craftAmount = 1; itemDefinition2.modifableStats = new Dictionary { { ItemStat.tool_level, new ItemStatConfig { default_value = 1f, min = 0f, max = 6f, isInt = true } }, { ItemStat.slash, new ItemStatConfig { default_value = 25f, min = 0f, max = 200f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 50f } }, { ItemStat.chop, new ItemStatConfig { default_value = 45f, min = 0f, max = 200f } }, { ItemStat.chop_per_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 70f, min = 0f, max = 200f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 14f, min = 0f, max = 150f } }, { ItemStat.block_force, new ItemStatConfig { default_value = 70f, min = 0f, max = 120f } }, { ItemStat.durability, new ItemStatConfig { default_value = 200f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 12f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 6f, min = 1f, max = 50f } }, { ItemStat.movement_speed, new ItemStatConfig { default_value = -0.15f, min = -0.15f, max = 0f } } }; itemDefinition2.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "Wood", amount = 8, upgradeCost = 0 }, new RecipeIngredient { prefab = "Flint", amount = 9, upgradeCost = 5 }, new RecipeIngredient { prefab = "LeatherScraps", amount = 0, upgradeCost = 2 } } }; Loader.AddDefinition(itemDefinition2); ItemDefinition itemDefinition3 = new ItemDefinition(); itemDefinition3.Name = "Flint dualaxes"; itemDefinition3.Category = ItemCategory.Axes; itemDefinition3.prefab = "VAFlint_dualaxes"; itemDefinition3.icon = "flint_dualaxes"; itemDefinition3.craftedAt = "piece_workbench"; itemDefinition3.craftAmount = 1; itemDefinition3.modifableStats = new Dictionary { { ItemStat.tool_level, new ItemStatConfig { default_value = 1f, min = 0f, max = 6f, isInt = true } }, { ItemStat.slash, new ItemStatConfig { default_value = 20f, min = 0f, max = 200f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 50f } }, { ItemStat.chop, new ItemStatConfig { default_value = 30f, min = 0f, max = 200f } }, { ItemStat.chop_per_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 20f, min = 0f, max = 200f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 12f, min = 0f, max = 150f } }, { ItemStat.block_force, new ItemStatConfig { default_value = 20f, min = 0f, max = 150f } }, { ItemStat.durability, new ItemStatConfig { default_value = 175f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 6f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 14f, min = 1f, max = 50f } }, { ItemStat.movement_speed, new ItemStatConfig { default_value = -0.05f, min = -0.2f, max = 0f } } }; itemDefinition3.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "Wood", amount = 10, upgradeCost = 2 }, new RecipeIngredient { prefab = "Flint", amount = 12, upgradeCost = 6 }, new RecipeIngredient { prefab = "LeatherScraps", amount = 0, upgradeCost = 2 } } }; Loader.AddDefinition(itemDefinition3); ItemDefinition itemDefinition4 = new ItemDefinition(); itemDefinition4.Name = "Bronze Lumber Axe"; itemDefinition4.Category = ItemCategory.Axes; itemDefinition4.prefab = "VAbronze_battleaxe"; itemDefinition4.icon = "bronze_axe_rebuild"; itemDefinition4.craftedAt = "forge"; itemDefinition4.craftAmount = 1; itemDefinition4.modifableStats = new Dictionary { { ItemStat.tool_level, new ItemStatConfig { default_value = 2f, min = 0f, max = 6f, isInt = true } }, { ItemStat.slash, new ItemStatConfig { default_value = 50f, min = 0f, max = 200f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 6f, min = 0f, max = 50f } }, { ItemStat.chop, new ItemStatConfig { default_value = 30f, min = 0f, max = 200f } }, { ItemStat.chop_per_level, new ItemStatConfig { default_value = 2.5f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 70f, min = 0f, max = 200f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 18f, min = 0f, max = 150f } }, { ItemStat.block_force, new ItemStatConfig { default_value = 70f, min = 0f, max = 120f } }, { ItemStat.durability, new ItemStatConfig { default_value = 200f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 14f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 7f, min = 1f, max = 50f } }, { ItemStat.movement_speed, new ItemStatConfig { default_value = -0.15f, min = -0.15f, max = 0f } } }; itemDefinition4.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "RoundLog", amount = 20, upgradeCost = 5 }, new RecipeIngredient { prefab = "Bronze", amount = 10, upgradeCost = 5 }, new RecipeIngredient { prefab = "DeerHide", amount = 2, upgradeCost = 0 } } }; Loader.AddDefinition(itemDefinition4); ItemDefinition itemDefinition5 = new ItemDefinition(); itemDefinition5.Name = "Bronze dualaxes"; itemDefinition5.Category = ItemCategory.Axes; itemDefinition5.prefab = "VABronze_dualaxes"; itemDefinition5.icon = "bronze_dualaxes"; itemDefinition5.craftedAt = "forge"; itemDefinition5.craftAmount = 1; itemDefinition5.modifableStats = new Dictionary { { ItemStat.tool_level, new ItemStatConfig { default_value = 2f, min = 0f, max = 6f, isInt = true } }, { ItemStat.slash, new ItemStatConfig { default_value = 40f, min = 0f, max = 200f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 50f } }, { ItemStat.chop, new ItemStatConfig { default_value = 30f, min = 0f, max = 200f } }, { ItemStat.chop_per_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 20f, min = 0f, max = 200f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 16f, min = 0f, max = 150f } }, { ItemStat.block_force, new ItemStatConfig { default_value = 20f, min = 0f, max = 150f } }, { ItemStat.durability, new ItemStatConfig { default_value = 175f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 10f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 16f, min = 1f, max = 50f } }, { ItemStat.movement_speed, new ItemStatConfig { default_value = -0.05f, min = -0.2f, max = 0f } } }; itemDefinition5.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "Wood", amount = 8, upgradeCost = 0 }, new RecipeIngredient { prefab = "Bronze", amount = 16, upgradeCost = 8 }, new RecipeIngredient { prefab = "LeatherScraps", amount = 4, upgradeCost = 1 } } }; Loader.AddDefinition(itemDefinition5); ItemDefinition itemDefinition6 = new ItemDefinition(); itemDefinition6.Name = "Iron dualaxes"; itemDefinition6.Category = ItemCategory.Axes; itemDefinition6.prefab = "VAIron_dualaxes"; itemDefinition6.icon = "iron_dualaxes"; itemDefinition6.craftedAt = "forge"; itemDefinition6.craftAmount = 1; itemDefinition6.modifableStats = new Dictionary { { ItemStat.tool_level, new ItemStatConfig { default_value = 3f, min = 0f, max = 6f, isInt = true } }, { ItemStat.slash, new ItemStatConfig { default_value = 60f, min = 0f, max = 200f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 50f } }, { ItemStat.chop, new ItemStatConfig { default_value = 50f, min = 0f, max = 200f } }, { ItemStat.chop_per_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 20f, min = 0f, max = 200f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 21f, min = 0f, max = 150f } }, { ItemStat.block_force, new ItemStatConfig { default_value = 20f, min = 0f, max = 150f } }, { ItemStat.durability, new ItemStatConfig { default_value = 175f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 12f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 18f, min = 1f, max = 50f } }, { ItemStat.movement_speed, new ItemStatConfig { default_value = -0.05f, min = -0.2f, max = 0f } } }; itemDefinition6.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "ElderBark", amount = 8, upgradeCost = 0 }, new RecipeIngredient { prefab = "Iron", amount = 40, upgradeCost = 20 }, new RecipeIngredient { prefab = "LeatherScraps", amount = 4, upgradeCost = 2 } } }; Loader.AddDefinition(itemDefinition6); ItemDefinition itemDefinition7 = new ItemDefinition(); itemDefinition7.Name = "Bonemasses Axe"; itemDefinition7.Category = ItemCategory.Axes; itemDefinition7.prefab = "VABone_axe"; itemDefinition7.icon = "bonemass_axe"; itemDefinition7.craftedAt = "forge"; itemDefinition7.craftAmount = 1; itemDefinition7.modifableStats = new Dictionary { { ItemStat.tool_level, new ItemStatConfig { default_value = 3f, min = 0f, max = 6f, isInt = true } }, { ItemStat.slash, new ItemStatConfig { default_value = 70f, min = 0f, max = 200f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 50f } }, { ItemStat.poison, new ItemStatConfig { default_value = 30f, min = 0f, max = 200f } }, { ItemStat.poison_per_level, new ItemStatConfig { default_value = 0f, min = 0f, max = 50f } }, { ItemStat.chop, new ItemStatConfig { default_value = 45f, min = 0f, max = 200f } }, { ItemStat.chop_per_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 80f, min = 0f, max = 200f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 26f, min = 0f, max = 150f } }, { ItemStat.block_force, new ItemStatConfig { default_value = 20f, min = 0f, max = 150f } }, { ItemStat.durability, new ItemStatConfig { default_value = 175f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 12f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 24f, min = 1f, max = 50f } }, { ItemStat.movement_speed, new ItemStatConfig { default_value = -0.05f, min = -0.2f, max = 0f } } }; itemDefinition7.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "WitheredBone", amount = 6, upgradeCost = 5 }, new RecipeIngredient { prefab = "Iron", amount = 20, upgradeCost = 10 }, new RecipeIngredient { prefab = "Wishbone", amount = 1, upgradeCost = 0 }, new RecipeIngredient { prefab = "TrophyBonemass", amount = 1, upgradeCost = 0 }, new RecipeIngredient { prefab = "LeatherScraps", amount = 0, upgradeCost = 2 } } }; Loader.AddDefinition(itemDefinition7); ItemDefinition itemDefinition8 = new ItemDefinition(); itemDefinition8.Name = "Bonemasses Dualaxes"; itemDefinition8.Category = ItemCategory.Axes; itemDefinition8.prefab = "VABone_dualaxes"; itemDefinition8.icon = "bonerot_dualaxes"; itemDefinition8.craftedAt = "forge"; itemDefinition8.craftAmount = 1; itemDefinition8.modifableStats = new Dictionary { { ItemStat.tool_level, new ItemStatConfig { default_value = 3f, min = 0f, max = 6f, isInt = true } }, { ItemStat.slash, new ItemStatConfig { default_value = 70f, min = 0f, max = 200f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 50f } }, { ItemStat.poison, new ItemStatConfig { default_value = 30f, min = 0f, max = 200f } }, { ItemStat.poison_per_level, new ItemStatConfig { default_value = 0f, min = 0f, max = 50f } }, { ItemStat.chop, new ItemStatConfig { default_value = 45f, min = 0f, max = 200f } }, { ItemStat.chop_per_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 20f, min = 0f, max = 200f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 26f, min = 0f, max = 150f } }, { ItemStat.block_force, new ItemStatConfig { default_value = 20f, min = 0f, max = 150f } }, { ItemStat.durability, new ItemStatConfig { default_value = 175f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 12f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 19f, min = 1f, max = 50f } }, { ItemStat.movement_speed, new ItemStatConfig { default_value = -0.05f, min = -0.2f, max = 0f } } }; itemDefinition8.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "WitheredBone", amount = 12, upgradeCost = 10 }, new RecipeIngredient { prefab = "Iron", amount = 40, upgradeCost = 20 }, new RecipeIngredient { prefab = "Wishbone", amount = 1, upgradeCost = 0 }, new RecipeIngredient { prefab = "TrophyBonemass", amount = 1, upgradeCost = 0 }, new RecipeIngredient { prefab = "LeatherScraps", amount = 0, upgradeCost = 4 } } }; Loader.AddDefinition(itemDefinition8); ItemDefinition itemDefinition9 = new ItemDefinition(); itemDefinition9.Name = "Crystal Axe"; itemDefinition9.Category = ItemCategory.Axes; itemDefinition9.prefab = "VAcrystal_axe"; itemDefinition9.icon = "silver_axe_1h_icon"; itemDefinition9.craftedAt = "forge"; itemDefinition9.craftAmount = 1; itemDefinition9.modifableStats = new Dictionary { { ItemStat.tool_level, new ItemStatConfig { default_value = 4f, min = 0f, max = 6f, isInt = true } }, { ItemStat.slash, new ItemStatConfig { default_value = 80f, min = 0f, max = 200f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 50f } }, { ItemStat.spirit, new ItemStatConfig { default_value = 30f, min = 0f, max = 200f } }, { ItemStat.spirit_per_level, new ItemStatConfig { default_value = 0f, min = 0f, max = 50f } }, { ItemStat.chop, new ItemStatConfig { default_value = 45f, min = 0f, max = 200f } }, { ItemStat.chop_per_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 80f, min = 0f, max = 200f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 26f, min = 0f, max = 150f } }, { ItemStat.block_force, new ItemStatConfig { default_value = 20f, min = 0f, max = 150f } }, { ItemStat.durability, new ItemStatConfig { default_value = 175f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 12f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 24f, min = 1f, max = 50f } }, { ItemStat.movement_speed, new ItemStatConfig { default_value = -0.05f, min = -0.2f, max = 0f } } }; itemDefinition9.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "ElderBark", amount = 15, upgradeCost = 4 }, new RecipeIngredient { prefab = "Silver", amount = 20, upgradeCost = 10 }, new RecipeIngredient { prefab = "Crystal", amount = 8, upgradeCost = 0 } } }; Loader.AddDefinition(itemDefinition9); ItemDefinition itemDefinition10 = new ItemDefinition(); itemDefinition10.Name = "Crystal dualaxes"; itemDefinition10.Category = ItemCategory.Axes; itemDefinition10.prefab = "VACrystal_dualaxes"; itemDefinition10.icon = "crystal_dualaxes"; itemDefinition10.craftedAt = "forge"; itemDefinition10.craftAmount = 1; itemDefinition10.modifableStats = new Dictionary { { ItemStat.tool_level, new ItemStatConfig { default_value = 4f, min = 0f, max = 6f, isInt = true } }, { ItemStat.slash, new ItemStatConfig { default_value = 80f, min = 0f, max = 200f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 50f } }, { ItemStat.spirit, new ItemStatConfig { default_value = 30f, min = 0f, max = 200f } }, { ItemStat.spirit_per_level, new ItemStatConfig { default_value = 0f, min = 0f, max = 50f } }, { ItemStat.chop, new ItemStatConfig { default_value = 50f, min = 0f, max = 200f } }, { ItemStat.chop_per_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 20f, min = 0f, max = 200f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 30f, min = 0f, max = 150f } }, { ItemStat.block_force, new ItemStatConfig { default_value = 20f, min = 0f, max = 150f } }, { ItemStat.durability, new ItemStatConfig { default_value = 175f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 12f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 20f, min = 1f, max = 50f } }, { ItemStat.movement_speed, new ItemStatConfig { default_value = -0.05f, min = -0.2f, max = 0f } } }; itemDefinition10.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "ElderBark", amount = 30, upgradeCost = 8 }, new RecipeIngredient { prefab = "Silver", amount = 50, upgradeCost = 20 }, new RecipeIngredient { prefab = "Crystal", amount = 16, upgradeCost = 0 } } }; Loader.AddDefinition(itemDefinition10); ItemDefinition itemDefinition11 = new ItemDefinition(); itemDefinition11.Name = "Dragonfrost Axe"; itemDefinition11.Category = ItemCategory.Axes; itemDefinition11.prefab = "VAModer_Axe"; itemDefinition11.icon = "moder_axe_1h"; itemDefinition11.craftedAt = "forge"; itemDefinition11.craftAmount = 1; itemDefinition11.modifableStats = new Dictionary { { ItemStat.tool_level, new ItemStatConfig { default_value = 4f, min = 0f, max = 6f, isInt = true } }, { ItemStat.slash, new ItemStatConfig { default_value = 80f, min = 0f, max = 200f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 50f } }, { ItemStat.frost, new ItemStatConfig { default_value = 30f, min = 0f, max = 200f } }, { ItemStat.frost_per_level, new ItemStatConfig { default_value = 0f, min = 0f, max = 50f } }, { ItemStat.chop, new ItemStatConfig { default_value = 45f, min = 0f, max = 200f } }, { ItemStat.chop_per_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 80f, min = 0f, max = 200f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 26f, min = 0f, max = 150f } }, { ItemStat.block_force, new ItemStatConfig { default_value = 20f, min = 0f, max = 150f } }, { ItemStat.durability, new ItemStatConfig { default_value = 175f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 12f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 24f, min = 1f, max = 50f } }, { ItemStat.movement_speed, new ItemStatConfig { default_value = -0.05f, min = -0.2f, max = 0f } } }; itemDefinition11.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "DragonTear", amount = 10, upgradeCost = 0 }, new RecipeIngredient { prefab = "TrophyDragonQueen", amount = 1, upgradeCost = 0 }, new RecipeIngredient { prefab = "Silver", amount = 15, upgradeCost = 15 }, new RecipeIngredient { prefab = "FineWood", amount = 8, upgradeCost = 4 } } }; Loader.AddDefinition(itemDefinition11); ItemDefinition itemDefinition12 = new ItemDefinition(); itemDefinition12.Name = "Moder dualaxes"; itemDefinition12.Category = ItemCategory.Axes; itemDefinition12.prefab = "VAModer_dualaxes"; itemDefinition12.icon = "moder_dualaxes"; itemDefinition12.craftedAt = "forge"; itemDefinition12.craftAmount = 1; itemDefinition12.modifableStats = new Dictionary { { ItemStat.tool_level, new ItemStatConfig { default_value = 4f, min = 0f, max = 6f, isInt = true } }, { ItemStat.slash, new ItemStatConfig { default_value = 80f, min = 0f, max = 200f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 50f } }, { ItemStat.frost, new ItemStatConfig { default_value = 30f, min = 0f, max = 200f } }, { ItemStat.frost_per_level, new ItemStatConfig { default_value = 0f, min = 0f, max = 50f } }, { ItemStat.chop, new ItemStatConfig { default_value = 50f, min = 0f, max = 200f } }, { ItemStat.chop_per_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 20f, min = 0f, max = 200f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 30f, min = 0f, max = 150f } }, { ItemStat.block_force, new ItemStatConfig { default_value = 20f, min = 0f, max = 150f } }, { ItemStat.durability, new ItemStatConfig { default_value = 175f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 12f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 20f, min = 1f, max = 50f } }, { ItemStat.movement_speed, new ItemStatConfig { default_value = -0.05f, min = -0.2f, max = 0f } } }; itemDefinition12.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "DragonTear", amount = 10, upgradeCost = 0 }, new RecipeIngredient { prefab = "TrophyDragonQueen", amount = 1, upgradeCost = 0 }, new RecipeIngredient { prefab = "Silver", amount = 30, upgradeCost = 30 }, new RecipeIngredient { prefab = "FineWood", amount = 16, upgradeCost = 8 } } }; Loader.AddDefinition(itemDefinition12); ItemDefinition itemDefinition13 = new ItemDefinition(); itemDefinition13.Name = "Blackmetal dualaxes"; itemDefinition13.Category = ItemCategory.Axes; itemDefinition13.prefab = "VABlackmetal_dualaxes"; itemDefinition13.icon = "blackmetal_dualaxes"; itemDefinition13.craftedAt = "forge"; itemDefinition13.craftAmount = 1; itemDefinition13.modifableStats = new Dictionary { { ItemStat.tool_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 6f, isInt = true } }, { ItemStat.slash, new ItemStatConfig { default_value = 100f, min = 0f, max = 200f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 50f } }, { ItemStat.chop, new ItemStatConfig { default_value = 60f, min = 0f, max = 200f } }, { ItemStat.chop_per_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 20f, min = 0f, max = 200f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 39f, min = 0f, max = 150f } }, { ItemStat.block_force, new ItemStatConfig { default_value = 20f, min = 0f, max = 150f } }, { ItemStat.durability, new ItemStatConfig { default_value = 175f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 14f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 22f, min = 1f, max = 50f } }, { ItemStat.movement_speed, new ItemStatConfig { default_value = -0.05f, min = -0.2f, max = 0f } } }; itemDefinition13.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "BlackMetal", amount = 50, upgradeCost = 20 }, new RecipeIngredient { prefab = "FineWood", amount = 14, upgradeCost = 5 }, new RecipeIngredient { prefab = "LinenThread", amount = 8, upgradeCost = 0 } } }; Loader.AddDefinition(itemDefinition13); ItemDefinition itemDefinition14 = new ItemDefinition(); itemDefinition14.Name = "Blackmetal Greataxe (Legacy)"; itemDefinition14.Category = ItemCategory.Axes; itemDefinition14.prefab = "VAblackmetal_2h_axe"; itemDefinition14.icon = "blackmetal_2h_axe"; itemDefinition14.craftedAt = "forge"; itemDefinition14.craftAmount = 1; itemDefinition14.modifableStats = new Dictionary { { ItemStat.tool_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 6f, isInt = true } }, { ItemStat.slash, new ItemStatConfig { default_value = 130f, min = 0f, max = 300f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 50f } }, { ItemStat.chop, new ItemStatConfig { default_value = 60f, min = 0f, max = 300f } }, { ItemStat.chop_per_level, new ItemStatConfig { default_value = 2.5f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 70f, min = 0f, max = 200f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 52f, min = 0f, max = 150f } }, { ItemStat.block_force, new ItemStatConfig { default_value = 70f, min = 0f, max = 120f } }, { ItemStat.durability, new ItemStatConfig { default_value = 200f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 20f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 10f, min = 1f, max = 50f } }, { ItemStat.movement_speed, new ItemStatConfig { default_value = -0.15f, min = -0.15f, max = 0f } } }; itemDefinition14.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "FineWood", amount = 10, upgradeCost = 5 }, new RecipeIngredient { prefab = "BlackMetal", amount = 35, upgradeCost = 15 }, new RecipeIngredient { prefab = "LinenThread", amount = 5, upgradeCost = 1 } } }; Loader.AddDefinition(itemDefinition14); ItemDefinition itemDefinition15 = new ItemDefinition(); itemDefinition15.Name = "Jotun dualaxes"; itemDefinition15.Category = ItemCategory.Axes; itemDefinition15.prefab = "VAJotunn_dualaxes"; itemDefinition15.icon = "jotun_dualaxes"; itemDefinition15.craftedAt = "blackforge"; itemDefinition15.craftAmount = 1; itemDefinition15.modifableStats = new Dictionary { { ItemStat.tool_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 6f, isInt = true } }, { ItemStat.slash, new ItemStatConfig { default_value = 120f, min = 0f, max = 200f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 50f } }, { ItemStat.poison, new ItemStatConfig { default_value = 30f, min = 0f, max = 200f } }, { ItemStat.poison_per_level, new ItemStatConfig { default_value = 0f, min = 0f, max = 50f } }, { ItemStat.chop, new ItemStatConfig { default_value = 80f, min = 0f, max = 200f } }, { ItemStat.chop_per_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 20f, min = 0f, max = 200f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 48f, min = 0f, max = 150f } }, { ItemStat.block_force, new ItemStatConfig { default_value = 20f, min = 0f, max = 150f } }, { ItemStat.durability, new ItemStatConfig { default_value = 175f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 15f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 24f, min = 1f, max = 50f } }, { ItemStat.movement_speed, new ItemStatConfig { default_value = -0.05f, min = -0.2f, max = 0f } } }; itemDefinition15.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "Eitr", amount = 35, upgradeCost = 30 }, new RecipeIngredient { prefab = "Iron", amount = 25, upgradeCost = 20 }, new RecipeIngredient { prefab = "YggdrasilWood", amount = 14, upgradeCost = 5 }, new RecipeIngredient { prefab = "Bilebag", amount = 6, upgradeCost = 2 } } }; Loader.AddDefinition(itemDefinition15); ItemDefinition itemDefinition16 = new ItemDefinition(); itemDefinition16.Name = "Jotun battleaxe"; itemDefinition16.Category = ItemCategory.Axes; itemDefinition16.prefab = "VAJotunn_2h_axe"; itemDefinition16.icon = "jotun_2h_axe"; itemDefinition16.craftedAt = "blackforge"; itemDefinition16.craftAmount = 1; itemDefinition16.modifableStats = new Dictionary { { ItemStat.tool_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 6f, isInt = true } }, { ItemStat.slash, new ItemStatConfig { default_value = 140f, min = 0f, max = 200f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 50f } }, { ItemStat.poison, new ItemStatConfig { default_value = 13f, min = 0f, max = 200f } }, { ItemStat.poison_per_level, new ItemStatConfig { default_value = 1f, min = 0f, max = 50f } }, { ItemStat.chop, new ItemStatConfig { default_value = 90f, min = 0f, max = 200f } }, { ItemStat.chop_per_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 50f, min = 0f, max = 200f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 72f, min = 0f, max = 150f } }, { ItemStat.block_force, new ItemStatConfig { default_value = 20f, min = 0f, max = 150f } }, { ItemStat.durability, new ItemStatConfig { default_value = 175f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 22f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 11f, min = 1f, max = 50f } }, { ItemStat.movement_speed, new ItemStatConfig { default_value = -0.05f, min = -0.2f, max = 0f } } }; itemDefinition16.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "Eitr", amount = 30, upgradeCost = 20 }, new RecipeIngredient { prefab = "Iron", amount = 20, upgradeCost = 15 }, new RecipeIngredient { prefab = "YggdrasilWood", amount = 14, upgradeCost = 5 }, new RecipeIngredient { prefab = "Bilebag", amount = 6, upgradeCost = 2 } } }; Loader.AddDefinition(itemDefinition16); ItemDefinition itemDefinition17 = new ItemDefinition(); itemDefinition17.Name = "Jotun halfblade"; itemDefinition17.Category = ItemCategory.Axes; itemDefinition17.prefab = "VAJotunn_single_axe"; itemDefinition17.icon = "jotunn_halfblade"; itemDefinition17.craftedAt = "blackforge"; itemDefinition17.craftAmount = 1; itemDefinition17.modifableStats = new Dictionary { { ItemStat.tool_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 6f, isInt = true } }, { ItemStat.slash, new ItemStatConfig { default_value = 80f, min = 0f, max = 200f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 50f } }, { ItemStat.poison, new ItemStatConfig { default_value = 40f, min = 0f, max = 200f } }, { ItemStat.poison_per_level, new ItemStatConfig { default_value = 0f, min = 0f, max = 50f } }, { ItemStat.chop, new ItemStatConfig { default_value = 70f, min = 0f, max = 200f } }, { ItemStat.chop_per_level, new ItemStatConfig { default_value = 3f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 50f, min = 0f, max = 200f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 48f, min = 0f, max = 150f } }, { ItemStat.block_force, new ItemStatConfig { default_value = 20f, min = 0f, max = 150f } }, { ItemStat.durability, new ItemStatConfig { default_value = 175f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 16f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 32f, min = 1f, max = 50f } }, { ItemStat.movement_speed, new ItemStatConfig { default_value = -0.05f, min = -0.2f, max = 0f } } }; itemDefinition17.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "Eitr", amount = 10, upgradeCost = 1 }, new RecipeIngredient { prefab = "Iron", amount = 15, upgradeCost = 10 }, new RecipeIngredient { prefab = "YggdrasilWood", amount = 5, upgradeCost = 0 }, new RecipeIngredient { prefab = "Bilebag", amount = 3, upgradeCost = 1 } } }; Loader.AddDefinition(itemDefinition17); ItemDefinition itemDefinition18 = new ItemDefinition(); itemDefinition18.Name = "Eikthyrs Greataxe"; itemDefinition18.Category = ItemCategory.Axes; itemDefinition18.prefab = "VAAntler_greataxe"; itemDefinition18.icon = "antler_greataxe"; itemDefinition18.craftedAt = "piece_workbench"; itemDefinition18.craftAmount = 1; itemDefinition18.modifableStats = new Dictionary { { ItemStat.tool_level, new ItemStatConfig { default_value = 1f, min = 0f, max = 6f, isInt = true } }, { ItemStat.blunt, new ItemStatConfig { default_value = 10f, min = 0f, max = 200f } }, { ItemStat.blunt_per_level, new ItemStatConfig { default_value = 2f, min = 0f, max = 50f } }, { ItemStat.slash, new ItemStatConfig { default_value = 25f, min = 0f, max = 200f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 2f, min = 0f, max = 50f } }, { ItemStat.lightning, new ItemStatConfig { default_value = 10f, min = 0f, max = 200f } }, { ItemStat.lightning_per_level, new ItemStatConfig { default_value = 2f, min = 0f, max = 50f } }, { ItemStat.chop, new ItemStatConfig { default_value = 30f, min = 0f, max = 200f } }, { ItemStat.chop_per_level, new ItemStatConfig { default_value = 2.5f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 70f, min = 0f, max = 200f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 18f, min = 0f, max = 150f } }, { ItemStat.block_force, new ItemStatConfig { default_value = 70f, min = 0f, max = 120f } }, { ItemStat.durability, new ItemStatConfig { default_value = 200f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 14f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 7f, min = 1f, max = 50f } }, { ItemStat.movement_speed, new ItemStatConfig { default_value = -0.15f, min = -0.15f, max = 0f } } }; itemDefinition18.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "FineWood", amount = 15, upgradeCost = 0 }, new RecipeIngredient { prefab = "Resin", amount = 30, upgradeCost = 15 }, new RecipeIngredient { prefab = "HardAntler", amount = 3, upgradeCost = 3 }, new RecipeIngredient { prefab = "TrophyEikthyr", amount = 1, upgradeCost = 1 } } }; Loader.AddDefinition(itemDefinition18); ItemDefinition itemDefinition19 = new ItemDefinition(); itemDefinition19.Name = "Blackmetal Battleaxe"; itemDefinition19.Category = ItemCategory.Axes; itemDefinition19.prefab = "VAblackmetal_battleaxe"; itemDefinition19.icon = "blackmetal_battleaxe"; itemDefinition19.craftedAt = "forge"; itemDefinition19.craftAmount = 1; itemDefinition19.modifableStats = new Dictionary { { ItemStat.tool_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 6f, isInt = true } }, { ItemStat.slash, new ItemStatConfig { default_value = 120f, min = 0f, max = 300f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 50f } }, { ItemStat.chop, new ItemStatConfig { default_value = 60f, min = 0f, max = 300f } }, { ItemStat.chop_per_level, new ItemStatConfig { default_value = 2.5f, min = 0f, max = 50f } }, { ItemStat.fire, new ItemStatConfig { default_value = 20f, min = 0f, max = 160f } }, { ItemStat.fire_per_level, new ItemStatConfig { default_value = 0f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 70f, min = 0f, max = 200f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 52f, min = 0f, max = 150f } }, { ItemStat.block_force, new ItemStatConfig { default_value = 70f, min = 0f, max = 120f } }, { ItemStat.durability, new ItemStatConfig { default_value = 200f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 22f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 10f, min = 1f, max = 50f } }, { ItemStat.movement_speed, new ItemStatConfig { default_value = -0.15f, min = -0.15f, max = 0f } } }; itemDefinition19.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "FineWood", amount = 10, upgradeCost = 5 }, new RecipeIngredient { prefab = "BlackMetal", amount = 35, upgradeCost = 15 }, new RecipeIngredient { prefab = "LinenThread", amount = 5, upgradeCost = 0 }, new RecipeIngredient { prefab = "SurtlingCore", amount = 4, upgradeCost = 0 } } }; Loader.AddDefinition(itemDefinition19); ItemDefinition itemDefinition20 = new ItemDefinition(); itemDefinition20.Name = "Flametal Battleaxe"; itemDefinition20.Category = ItemCategory.Axes; itemDefinition20.prefab = "VAFlametalAxe_2h"; itemDefinition20.icon = "flametal_battleaxe"; itemDefinition20.craftedAt = "blackforge"; itemDefinition20.craftAmount = 1; itemDefinition20.modifableStats = new Dictionary { { ItemStat.tool_level, new ItemStatConfig { default_value = 6f, min = 0f, max = 6f, isInt = true } }, { ItemStat.slash, new ItemStatConfig { default_value = 150f, min = 0f, max = 300f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 50f } }, { ItemStat.chop, new ItemStatConfig { default_value = 90f, min = 0f, max = 300f } }, { ItemStat.chop_per_level, new ItemStatConfig { default_value = 2.5f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 70f, min = 0f, max = 200f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 78f, min = 0f, max = 150f } }, { ItemStat.block_force, new ItemStatConfig { default_value = 70f, min = 0f, max = 120f } }, { ItemStat.durability, new ItemStatConfig { default_value = 200f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 28f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 14f, min = 1f, max = 50f } }, { ItemStat.movement_speed, new ItemStatConfig { default_value = -0.15f, min = -0.15f, max = 0f } } }; itemDefinition20.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "Blackwood", amount = 10, upgradeCost = 5 }, new RecipeIngredient { prefab = "FlametalNew", amount = 20, upgradeCost = 10 }, new RecipeIngredient { prefab = "CharredBone", amount = 20, upgradeCost = 15 }, new RecipeIngredient { prefab = "AskHide", amount = 4, upgradeCost = 0 } } }; Loader.AddDefinition(itemDefinition20); ItemDefinition itemDefinition21 = new ItemDefinition(); itemDefinition21.Name = "Flametal Primal Battleaxe"; itemDefinition21.Category = ItemCategory.Axes; itemDefinition21.prefab = "VAFlametalAxe_primal_2h"; itemDefinition21.icon = "flametal_battleaxe_primal"; itemDefinition21.craftedAt = "blackforge"; itemDefinition21.craftAmount = 1; itemDefinition21.modifableStats = new Dictionary { { ItemStat.tool_level, new ItemStatConfig { default_value = 6f, min = 0f, max = 6f, isInt = true } }, { ItemStat.slash, new ItemStatConfig { default_value = 150f, min = 0f, max = 300f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 50f } }, { ItemStat.poison, new ItemStatConfig { default_value = 25f, min = 0f, max = 300f } }, { ItemStat.poison_per_level, new ItemStatConfig { default_value = 3f, min = 0f, max = 50f } }, { ItemStat.chop, new ItemStatConfig { default_value = 90f, min = 0f, max = 300f } }, { ItemStat.chop_per_level, new ItemStatConfig { default_value = 2.5f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 70f, min = 0f, max = 200f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 78f, min = 0f, max = 150f } }, { ItemStat.block_force, new ItemStatConfig { default_value = 70f, min = 0f, max = 120f } }, { ItemStat.durability, new ItemStatConfig { default_value = 200f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 28f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 14f, min = 1f, max = 50f } }, { ItemStat.movement_speed, new ItemStatConfig { default_value = -0.15f, min = -0.15f, max = 0f } } }; itemDefinition21.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "VAFlametalAxe_2h", amount = 1, upgradeCost = 0 }, new RecipeIngredient { prefab = "Blackwood", amount = 5, upgradeCost = 0 }, new RecipeIngredient { prefab = "FlametalNew", amount = 10, upgradeCost = 5 }, new RecipeIngredient { prefab = "GemstoneGreen", amount = 1, upgradeCost = 1 } } }; Loader.AddDefinition(itemDefinition21); ItemDefinition itemDefinition22 = new ItemDefinition(); itemDefinition22.Name = "Flametal Lightning Battleaxe"; itemDefinition22.Category = ItemCategory.Axes; itemDefinition22.prefab = "VAFlametalAxe_lightning_2h"; itemDefinition22.icon = "flametal_battleaxe_lightning"; itemDefinition22.craftedAt = "blackforge"; itemDefinition22.craftAmount = 1; itemDefinition22.modifableStats = new Dictionary { { ItemStat.tool_level, new ItemStatConfig { default_value = 6f, min = 0f, max = 6f, isInt = true } }, { ItemStat.slash, new ItemStatConfig { default_value = 150f, min = 0f, max = 300f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 50f } }, { ItemStat.lightning, new ItemStatConfig { default_value = 20f, min = 0f, max = 300f } }, { ItemStat.lightning_per_level, new ItemStatConfig { default_value = 2f, min = 0f, max = 50f } }, { ItemStat.chop, new ItemStatConfig { default_value = 90f, min = 0f, max = 300f } }, { ItemStat.chop_per_level, new ItemStatConfig { default_value = 2.5f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 70f, min = 0f, max = 200f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 78f, min = 0f, max = 150f } }, { ItemStat.block_force, new ItemStatConfig { default_value = 70f, min = 0f, max = 120f } }, { ItemStat.durability, new ItemStatConfig { default_value = 200f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 28f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 14f, min = 1f, max = 50f } }, { ItemStat.movement_speed, new ItemStatConfig { default_value = -0.15f, min = -0.15f, max = 0f } } }; itemDefinition22.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "VAFlametalAxe_2h", amount = 1, upgradeCost = 0 }, new RecipeIngredient { prefab = "Blackwood", amount = 5, upgradeCost = 0 }, new RecipeIngredient { prefab = "FlametalNew", amount = 10, upgradeCost = 5 }, new RecipeIngredient { prefab = "GemstoneBlue", amount = 1, upgradeCost = 1 } } }; Loader.AddDefinition(itemDefinition22); ItemDefinition itemDefinition23 = new ItemDefinition(); itemDefinition23.Name = "Flametal Blood Battleaxe"; itemDefinition23.Category = ItemCategory.Axes; itemDefinition23.prefab = "VAFlametalAxe_blood_2h"; itemDefinition23.icon = "flametal_battleaxe_blood"; itemDefinition23.craftedAt = "blackforge"; itemDefinition23.craftAmount = 1; itemDefinition23.modifableStats = new Dictionary { { ItemStat.tool_level, new ItemStatConfig { default_value = 6f, min = 0f, max = 6f, isInt = true } }, { ItemStat.slash, new ItemStatConfig { default_value = 150f, min = 0f, max = 300f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 50f } }, { ItemStat.chop, new ItemStatConfig { default_value = 90f, min = 0f, max = 300f } }, { ItemStat.chop_per_level, new ItemStatConfig { default_value = 2.5f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 70f, min = 0f, max = 200f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 78f, min = 0f, max = 150f } }, { ItemStat.block_force, new ItemStatConfig { default_value = 70f, min = 0f, max = 120f } }, { ItemStat.durability, new ItemStatConfig { default_value = 200f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 28f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 14f, min = 1f, max = 50f } }, { ItemStat.movement_speed, new ItemStatConfig { default_value = -0.15f, min = -0.15f, max = 0f } } }; itemDefinition23.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "VAFlametalAxe_2h", amount = 1, upgradeCost = 0 }, new RecipeIngredient { prefab = "Blackwood", amount = 5, upgradeCost = 0 }, new RecipeIngredient { prefab = "FlametalNew", amount = 10, upgradeCost = 5 }, new RecipeIngredient { prefab = "GemstoneRed", amount = 1, upgradeCost = 1 } } }; Loader.AddDefinition(itemDefinition23); ItemDefinition itemDefinition24 = new ItemDefinition(); itemDefinition24.Name = "Flametal Axe"; itemDefinition24.Category = ItemCategory.Axes; itemDefinition24.prefab = "VAFlametal_Axe"; itemDefinition24.icon = "flametalAxeBase"; itemDefinition24.craftedAt = "blackforge"; itemDefinition24.craftAmount = 1; itemDefinition24.modifableStats = new Dictionary { { ItemStat.tool_level, new ItemStatConfig { default_value = 6f, min = 0f, max = 6f, isInt = true } }, { ItemStat.slash, new ItemStatConfig { default_value = 140f, min = 0f, max = 200f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 50f } }, { ItemStat.chop, new ItemStatConfig { default_value = 80f, min = 0f, max = 200f } }, { ItemStat.chop_per_level, new ItemStatConfig { default_value = 3f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 50f, min = 0f, max = 200f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 84f, min = 0f, max = 150f } }, { ItemStat.block_force, new ItemStatConfig { default_value = 20f, min = 0f, max = 150f } }, { ItemStat.durability, new ItemStatConfig { default_value = 175f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 18f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 36f, min = 1f, max = 50f } }, { ItemStat.movement_speed, new ItemStatConfig { default_value = -0.05f, min = -0.2f, max = 0f } } }; itemDefinition24.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "FlametalNew", amount = 12, upgradeCost = 6 }, new RecipeIngredient { prefab = "AskHide", amount = 4, upgradeCost = 1 }, new RecipeIngredient { prefab = "CharredBone", amount = 10, upgradeCost = 0 } } }; Loader.AddDefinition(itemDefinition24); ItemDefinition itemDefinition25 = new ItemDefinition(); itemDefinition25.Name = "Flametal Primal Axe"; itemDefinition25.Category = ItemCategory.Axes; itemDefinition25.prefab = "VAFlametal_Axe_Primal"; itemDefinition25.icon = "flametal_axe_1h_primal"; itemDefinition25.craftedAt = "blackforge"; itemDefinition25.craftAmount = 1; itemDefinition25.modifableStats = new Dictionary { { ItemStat.tool_level, new ItemStatConfig { default_value = 6f, min = 0f, max = 6f, isInt = true } }, { ItemStat.slash, new ItemStatConfig { default_value = 140f, min = 0f, max = 200f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 50f } }, { ItemStat.poison, new ItemStatConfig { default_value = 25f, min = 0f, max = 300f } }, { ItemStat.poison_per_level, new ItemStatConfig { default_value = 3f, min = 0f, max = 50f } }, { ItemStat.chop, new ItemStatConfig { default_value = 80f, min = 0f, max = 200f } }, { ItemStat.chop_per_level, new ItemStatConfig { default_value = 3f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 50f, min = 0f, max = 200f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 84f, min = 0f, max = 150f } }, { ItemStat.block_force, new ItemStatConfig { default_value = 20f, min = 0f, max = 150f } }, { ItemStat.durability, new ItemStatConfig { default_value = 175f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 18f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 36f, min = 1f, max = 50f } }, { ItemStat.movement_speed, new ItemStatConfig { default_value = -0.05f, min = -0.2f, max = 0f } } }; itemDefinition25.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "FlametalNew", amount = 12, upgradeCost = 6 }, new RecipeIngredient { prefab = "GemstoneGreen", amount = 4, upgradeCost = 1 }, new RecipeIngredient { prefab = "CharredBone", amount = 10, upgradeCost = 0 }, new RecipeIngredient { prefab = "VAFlametal_Axe", amount = 1, upgradeCost = 0 } } }; Loader.AddDefinition(itemDefinition25); ItemDefinition itemDefinition26 = new ItemDefinition(); itemDefinition26.Name = "Flametal Lightning Axe"; itemDefinition26.Category = ItemCategory.Axes; itemDefinition26.prefab = "VAFlametal_Axe_Lightning"; itemDefinition26.icon = "flametal_axe_1h_lightning"; itemDefinition26.craftedAt = "blackforge"; itemDefinition26.craftAmount = 1; itemDefinition26.modifableStats = new Dictionary { { ItemStat.tool_level, new ItemStatConfig { default_value = 6f, min = 0f, max = 6f, isInt = true } }, { ItemStat.slash, new ItemStatConfig { default_value = 140f, min = 0f, max = 200f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 50f } }, { ItemStat.lightning, new ItemStatConfig { default_value = 20f, min = 0f, max = 300f } }, { ItemStat.lightning_per_level, new ItemStatConfig { default_value = 2f, min = 0f, max = 50f } }, { ItemStat.chop, new ItemStatConfig { default_value = 80f, min = 0f, max = 200f } }, { ItemStat.chop_per_level, new ItemStatConfig { default_value = 3f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 50f, min = 0f, max = 200f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 84f, min = 0f, max = 150f } }, { ItemStat.block_force, new ItemStatConfig { default_value = 20f, min = 0f, max = 150f } }, { ItemStat.durability, new ItemStatConfig { default_value = 175f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 18f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 36f, min = 1f, max = 50f } }, { ItemStat.movement_speed, new ItemStatConfig { default_value = -0.05f, min = -0.2f, max = 0f } } }; itemDefinition26.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "FlametalNew", amount = 12, upgradeCost = 6 }, new RecipeIngredient { prefab = "GemstoneBlue", amount = 4, upgradeCost = 1 }, new RecipeIngredient { prefab = "CharredBone", amount = 10, upgradeCost = 0 }, new RecipeIngredient { prefab = "VAFlametal_Axe", amount = 1, upgradeCost = 0 } } }; Loader.AddDefinition(itemDefinition26); ItemDefinition itemDefinition27 = new ItemDefinition(); itemDefinition27.Name = "Flametal Blood Axe"; itemDefinition27.Category = ItemCategory.Axes; itemDefinition27.prefab = "VAFlametal_Axe_Blood"; itemDefinition27.icon = "flametal_axe_1h_blood"; itemDefinition27.craftedAt = "blackforge"; itemDefinition27.craftAmount = 1; itemDefinition27.modifableStats = new Dictionary { { ItemStat.tool_level, new ItemStatConfig { default_value = 6f, min = 0f, max = 6f, isInt = true } }, { ItemStat.slash, new ItemStatConfig { default_value = 140f, min = 0f, max = 200f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 50f } }, { ItemStat.chop, new ItemStatConfig { default_value = 80f, min = 0f, max = 200f } }, { ItemStat.chop_per_level, new ItemStatConfig { default_value = 3f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 50f, min = 0f, max = 200f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 84f, min = 0f, max = 150f } }, { ItemStat.block_force, new ItemStatConfig { default_value = 20f, min = 0f, max = 150f } }, { ItemStat.durability, new ItemStatConfig { default_value = 175f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 18f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 36f, min = 1f, max = 50f } }, { ItemStat.movement_speed, new ItemStatConfig { default_value = -0.05f, min = -0.2f, max = 0f } } }; itemDefinition27.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "FlametalNew", amount = 12, upgradeCost = 6 }, new RecipeIngredient { prefab = "GemstoneRed", amount = 4, upgradeCost = 1 }, new RecipeIngredient { prefab = "CharredBone", amount = 10, upgradeCost = 0 }, new RecipeIngredient { prefab = "VAFlametal_Axe", amount = 1, upgradeCost = 0 } } }; Loader.AddDefinition(itemDefinition27); } private void LoadHammers() { Logger.LogInfo("Loading Hammers"); ItemDefinition itemDefinition = new ItemDefinition(); itemDefinition.Name = "Flametal nature sledge"; itemDefinition.Category = ItemCategory.Hammers; itemDefinition.prefab = "VAflametal_sledge_nature"; itemDefinition.icon = "flametal_sledge_nature"; itemDefinition.craftedAt = "blackforge"; itemDefinition.craftAmount = 1; itemDefinition.modifableStats = new Dictionary { { ItemStat.blunt, new ItemStatConfig { default_value = 165f, min = 0f, max = 300f } }, { ItemStat.blunt_per_level, new ItemStatConfig { default_value = 6f, min = 0f, max = 50f } }, { ItemStat.poison, new ItemStatConfig { default_value = 25f, min = 0f, max = 300f } }, { ItemStat.poison_per_level, new ItemStatConfig { default_value = 3f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 100f, min = 0f, max = 400f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 64f, min = 0f, max = 150f } }, { ItemStat.block_force, new ItemStatConfig { default_value = 50f, min = 0f, max = 120f } }, { ItemStat.durability, new ItemStatConfig { default_value = 100f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 24f, min = 1f, max = 50f } }, { ItemStat.primary_attack_force_multiply, new ItemStatConfig { default_value = 1f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 30f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_force_multiply, new ItemStatConfig { default_value = 2.5f, min = 1f, max = 50f } }, { ItemStat.movement_speed, new ItemStatConfig { default_value = -0.15f, min = -0.15f, max = 0f } } }; itemDefinition.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "VAflametal_sledge", amount = 1, upgradeCost = 0 }, new RecipeIngredient { prefab = "FlametalNew", amount = 8, upgradeCost = 8 }, new RecipeIngredient { prefab = "Blackwood", amount = 5, upgradeCost = 0 }, new RecipeIngredient { prefab = "GemstoneGreen", amount = 1, upgradeCost = 1 } } }; Loader.AddDefinition(itemDefinition); ItemDefinition itemDefinition2 = new ItemDefinition(); itemDefinition2.Name = "Flametal lightning sledge"; itemDefinition2.Category = ItemCategory.Hammers; itemDefinition2.prefab = "VAflametal_sledge_lightning"; itemDefinition2.icon = "flametal_sledge_lightning"; itemDefinition2.craftedAt = "blackforge"; itemDefinition2.craftAmount = 1; itemDefinition2.modifableStats = new Dictionary { { ItemStat.blunt, new ItemStatConfig { default_value = 165f, min = 0f, max = 300f } }, { ItemStat.blunt_per_level, new ItemStatConfig { default_value = 6f, min = 0f, max = 50f } }, { ItemStat.lightning, new ItemStatConfig { default_value = 20f, min = 0f, max = 300f } }, { ItemStat.lightning_per_level, new ItemStatConfig { default_value = 2f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 100f, min = 0f, max = 400f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 64f, min = 0f, max = 150f } }, { ItemStat.block_force, new ItemStatConfig { default_value = 50f, min = 0f, max = 120f } }, { ItemStat.durability, new ItemStatConfig { default_value = 100f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 24f, min = 1f, max = 50f } }, { ItemStat.primary_attack_force_multiply, new ItemStatConfig { default_value = 1f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 30f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_force_multiply, new ItemStatConfig { default_value = 2.5f, min = 1f, max = 50f } }, { ItemStat.movement_speed, new ItemStatConfig { default_value = -0.15f, min = -0.15f, max = 0f } } }; itemDefinition2.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "VAflametal_sledge", amount = 1, upgradeCost = 0 }, new RecipeIngredient { prefab = "FlametalNew", amount = 8, upgradeCost = 8 }, new RecipeIngredient { prefab = "Blackwood", amount = 5, upgradeCost = 0 }, new RecipeIngredient { prefab = "GemstoneBlue", amount = 1, upgradeCost = 1 } } }; Loader.AddDefinition(itemDefinition2); ItemDefinition itemDefinition3 = new ItemDefinition(); itemDefinition3.Name = "Flametal blood sledge"; itemDefinition3.Category = ItemCategory.Hammers; itemDefinition3.prefab = "VAflametal_sledge_blood"; itemDefinition3.icon = "flametal_sledge_blood"; itemDefinition3.craftedAt = "blackforge"; itemDefinition3.craftAmount = 1; itemDefinition3.modifableStats = new Dictionary { { ItemStat.blunt, new ItemStatConfig { default_value = 175f, min = 0f, max = 300f } }, { ItemStat.blunt_per_level, new ItemStatConfig { default_value = 10f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 100f, min = 0f, max = 400f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 64f, min = 0f, max = 150f } }, { ItemStat.block_force, new ItemStatConfig { default_value = 50f, min = 0f, max = 120f } }, { ItemStat.durability, new ItemStatConfig { default_value = 100f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 24f, min = 1f, max = 50f } }, { ItemStat.primary_attack_force_multiply, new ItemStatConfig { default_value = 1f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 30f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_force_multiply, new ItemStatConfig { default_value = 2.5f, min = 1f, max = 50f } }, { ItemStat.movement_speed, new ItemStatConfig { default_value = -0.15f, min = -0.15f, max = 0f } } }; itemDefinition3.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "VAflametal_sledge", amount = 1, upgradeCost = 0 }, new RecipeIngredient { prefab = "FlametalNew", amount = 8, upgradeCost = 8 }, new RecipeIngredient { prefab = "Blackwood", amount = 5, upgradeCost = 0 }, new RecipeIngredient { prefab = "GemstoneRed", amount = 1, upgradeCost = 1 } } }; Loader.AddDefinition(itemDefinition3); ItemDefinition itemDefinition4 = new ItemDefinition(); itemDefinition4.Name = "Flametal sledge"; itemDefinition4.Category = ItemCategory.Hammers; itemDefinition4.prefab = "VAflametal_sledge"; itemDefinition4.icon = "flametal_sledge"; itemDefinition4.craftedAt = "blackforge"; itemDefinition4.craftAmount = 1; itemDefinition4.modifableStats = new Dictionary { { ItemStat.blunt, new ItemStatConfig { default_value = 165f, min = 0f, max = 300f } }, { ItemStat.blunt_per_level, new ItemStatConfig { default_value = 6f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 100f, min = 0f, max = 400f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 64f, min = 0f, max = 150f } }, { ItemStat.block_force, new ItemStatConfig { default_value = 50f, min = 0f, max = 120f } }, { ItemStat.durability, new ItemStatConfig { default_value = 100f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 24f, min = 1f, max = 50f } }, { ItemStat.primary_attack_force_multiply, new ItemStatConfig { default_value = 1f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 30f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_force_multiply, new ItemStatConfig { default_value = 2.5f, min = 1f, max = 50f } }, { ItemStat.movement_speed, new ItemStatConfig { default_value = -0.15f, min = -0.15f, max = 0f } } }; itemDefinition4.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "FlametalNew", amount = 30, upgradeCost = 15 }, new RecipeIngredient { prefab = "Iron", amount = 4, upgradeCost = 0 }, new RecipeIngredient { prefab = "Eitr", amount = 6, upgradeCost = 3 }, new RecipeIngredient { prefab = "Blackwood", amount = 12, upgradeCost = 6 } } }; Loader.AddDefinition(itemDefinition4); ItemDefinition itemDefinition5 = new ItemDefinition(); itemDefinition5.Name = "Blackmarble mace"; itemDefinition5.Category = ItemCategory.Hammers; itemDefinition5.prefab = "VAmistland_mace"; itemDefinition5.icon = "mist_mace"; itemDefinition5.craftedAt = "blackforge"; itemDefinition5.craftAmount = 1; itemDefinition5.modifableStats = new Dictionary { { ItemStat.blunt, new ItemStatConfig { default_value = 115f, min = 0f, max = 300f } }, { ItemStat.blunt_per_level, new ItemStatConfig { default_value = 6f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 40f, min = 0f, max = 400f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 48f, min = 0f, max = 150f } }, { ItemStat.block_force, new ItemStatConfig { default_value = 20f, min = 0f, max = 120f } }, { ItemStat.durability, new ItemStatConfig { default_value = 100f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 15f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 28f, min = 1f, max = 50f } }, { ItemStat.movement_speed, new ItemStatConfig { default_value = -0.05f, min = -0.05f, max = 0f } } }; itemDefinition5.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "YggdrasilWood", amount = 6, upgradeCost = 4 }, new RecipeIngredient { prefab = "Bronze", amount = 10, upgradeCost = 5 }, new RecipeIngredient { prefab = "Eitr", amount = 8, upgradeCost = 2 }, new RecipeIngredient { prefab = "BlackMarble", amount = 20, upgradeCost = 10 } } }; Loader.AddDefinition(itemDefinition5); ItemDefinition itemDefinition6 = new ItemDefinition(); itemDefinition6.Name = "Blackmetal Sledge"; itemDefinition6.Category = ItemCategory.Hammers; itemDefinition6.prefab = "VAblackmetal_sledge"; itemDefinition6.icon = "blackmetal_hammer"; itemDefinition6.craftedAt = "forge"; itemDefinition6.craftAmount = 1; itemDefinition6.modifableStats = new Dictionary { { ItemStat.blunt, new ItemStatConfig { default_value = 120f, min = 0f, max = 300f } }, { ItemStat.blunt_per_level, new ItemStatConfig { default_value = 6f, min = 0f, max = 50f } }, { ItemStat.lightning, new ItemStatConfig { default_value = 20f, min = 0f, max = 120f } }, { ItemStat.lightning_per_level, new ItemStatConfig { default_value = 0f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 100f, min = 0f, max = 400f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 49f, min = 0f, max = 150f } }, { ItemStat.block_force, new ItemStatConfig { default_value = 50f, min = 0f, max = 120f } }, { ItemStat.durability, new ItemStatConfig { default_value = 200f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 20f, min = 1f, max = 50f } }, { ItemStat.primary_attack_force_multiply, new ItemStatConfig { default_value = 1f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 40f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_force_multiply, new ItemStatConfig { default_value = 2.5f, min = 1f, max = 50f } }, { ItemStat.movement_speed, new ItemStatConfig { default_value = -0.15f, min = -0.15f, max = 0f } } }; itemDefinition6.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "FineWood", amount = 10, upgradeCost = 5 }, new RecipeIngredient { prefab = "BlackMetal", amount = 30, upgradeCost = 10 }, new RecipeIngredient { prefab = "LinenThread", amount = 5, upgradeCost = 0 }, new RecipeIngredient { prefab = "Thunderstone", amount = 4, upgradeCost = 0 } } }; Loader.AddDefinition(itemDefinition6); ItemDefinition itemDefinition7 = new ItemDefinition(); itemDefinition7.Name = "Elders Rock"; itemDefinition7.Category = ItemCategory.Hammers; itemDefinition7.prefab = "VAElderHammer"; itemDefinition7.icon = "elder_hammer"; itemDefinition7.craftedAt = "forge"; itemDefinition7.craftAmount = 1; itemDefinition7.modifableStats = new Dictionary { { ItemStat.blunt, new ItemStatConfig { default_value = 35f, min = 0f, max = 300f } }, { ItemStat.blunt_per_level, new ItemStatConfig { default_value = 6f, min = 0f, max = 50f } }, { ItemStat.spirit, new ItemStatConfig { default_value = 10f, min = 0f, max = 99f } }, { ItemStat.spirit_per_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 80f, min = 0f, max = 400f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 22f, min = 0f, max = 150f } }, { ItemStat.block_force, new ItemStatConfig { default_value = 50f, min = 0f, max = 120f } }, { ItemStat.durability, new ItemStatConfig { default_value = 200f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 12f, min = 1f, max = 50f } }, { ItemStat.primary_attack_force_multiply, new ItemStatConfig { default_value = 1f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 22f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_force_multiply, new ItemStatConfig { default_value = 2.5f, min = 1f, max = 50f } }, { ItemStat.movement_speed, new ItemStatConfig { default_value = -0.15f, min = -0.15f, max = 0f } } }; itemDefinition7.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "Bronze", amount = 4, upgradeCost = 2 }, new RecipeIngredient { prefab = "Stone", amount = 30, upgradeCost = 15 }, new RecipeIngredient { prefab = "CryptKey", amount = 1, upgradeCost = 0 }, new RecipeIngredient { prefab = "TrophyTheElder", amount = 1, upgradeCost = 0 }, new RecipeIngredient { prefab = "RoundLog", amount = 0, upgradeCost = 8 } } }; Loader.AddDefinition(itemDefinition7); ItemDefinition itemDefinition8 = new ItemDefinition(); itemDefinition8.Name = "Bronze Sledge"; itemDefinition8.Category = ItemCategory.Hammers; itemDefinition8.prefab = "VABronzeSledge"; itemDefinition8.icon = "bronze_sledge"; itemDefinition8.craftedAt = "forge"; itemDefinition8.craftAmount = 1; itemDefinition8.modifableStats = new Dictionary { { ItemStat.blunt, new ItemStatConfig { default_value = 35f, min = 0f, max = 300f } }, { ItemStat.blunt_per_level, new ItemStatConfig { default_value = 6f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 80f, min = 0f, max = 400f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 22f, min = 0f, max = 150f } }, { ItemStat.durability, new ItemStatConfig { default_value = 200f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 12f, min = 1f, max = 50f } }, { ItemStat.primary_attack_force_multiply, new ItemStatConfig { default_value = 1f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 22f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_force_multiply, new ItemStatConfig { default_value = 2.5f, min = 1f, max = 50f } }, { ItemStat.movement_speed, new ItemStatConfig { default_value = -0.15f, min = -0.15f, max = 0f } } }; itemDefinition8.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "Bronze", amount = 8, upgradeCost = 4 }, new RecipeIngredient { prefab = "Stone", amount = 25, upgradeCost = 15 }, new RecipeIngredient { prefab = "TrollHide", amount = 6, upgradeCost = 3 }, new RecipeIngredient { prefab = "RoundLog", amount = 4, upgradeCost = 4 } } }; Loader.AddDefinition(itemDefinition8); ItemDefinition itemDefinition9 = new ItemDefinition(); itemDefinition9.Name = "Bonemasses Rage"; itemDefinition9.Category = ItemCategory.Hammers; itemDefinition9.prefab = "VABonemassWarhammer"; itemDefinition9.icon = "bonemass_warhammer"; itemDefinition9.craftedAt = "forge"; itemDefinition9.craftAmount = 1; itemDefinition9.modifableStats = new Dictionary { { ItemStat.blunt, new ItemStatConfig { default_value = 70f, min = 0f, max = 300f } }, { ItemStat.blunt_per_level, new ItemStatConfig { default_value = 6f, min = 0f, max = 50f } }, { ItemStat.poison, new ItemStatConfig { default_value = 20f, min = 0f, max = 99f } }, { ItemStat.poison_per_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 90f, min = 0f, max = 400f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 31f, min = 0f, max = 150f } }, { ItemStat.durability, new ItemStatConfig { default_value = 200f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 14f, min = 1f, max = 50f } }, { ItemStat.primary_attack_force_multiply, new ItemStatConfig { default_value = 1f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 24f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_force_multiply, new ItemStatConfig { default_value = 2.5f, min = 1f, max = 50f } }, { ItemStat.movement_speed, new ItemStatConfig { default_value = -0.15f, min = -0.15f, max = 0f } } }; itemDefinition9.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "WitheredBone", amount = 10, upgradeCost = 5 }, new RecipeIngredient { prefab = "Iron", amount = 30, upgradeCost = 10 }, new RecipeIngredient { prefab = "Wishbone", amount = 1, upgradeCost = 0 }, new RecipeIngredient { prefab = "TrophyBonemass", amount = 1, upgradeCost = 0 }, new RecipeIngredient { prefab = "ElderBark", amount = 0, upgradeCost = 2 }, new RecipeIngredient { prefab = "LeatherScraps", amount = 0, upgradeCost = 2 } } }; Loader.AddDefinition(itemDefinition9); ItemDefinition itemDefinition10 = new ItemDefinition(); itemDefinition10.Name = "Silver Sledge"; itemDefinition10.Category = ItemCategory.Hammers; itemDefinition10.prefab = "VASilverSledge"; itemDefinition10.icon = "silver_sledge"; itemDefinition10.craftedAt = "forge"; itemDefinition10.craftAmount = 1; itemDefinition10.modifableStats = new Dictionary { { ItemStat.blunt, new ItemStatConfig { default_value = 85f, min = 0f, max = 300f } }, { ItemStat.blunt_per_level, new ItemStatConfig { default_value = 6f, min = 0f, max = 50f } }, { ItemStat.spirit, new ItemStatConfig { default_value = 25f, min = 0f, max = 99f } }, { ItemStat.spirit_per_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 100f, min = 0f, max = 400f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 31f, min = 0f, max = 150f } }, { ItemStat.durability, new ItemStatConfig { default_value = 200f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 15f, min = 1f, max = 50f } }, { ItemStat.primary_attack_force_multiply, new ItemStatConfig { default_value = 1f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 24f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_force_multiply, new ItemStatConfig { default_value = 2.5f, min = 1f, max = 50f } }, { ItemStat.movement_speed, new ItemStatConfig { default_value = -0.15f, min = -0.15f, max = 0f } } }; itemDefinition10.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "RoundLog", amount = 10, upgradeCost = 5 }, new RecipeIngredient { prefab = "Silver", amount = 30, upgradeCost = 15 }, new RecipeIngredient { prefab = "YmirRemains", amount = 4, upgradeCost = 2 }, new RecipeIngredient { prefab = "TrophyFenring", amount = 1, upgradeCost = 1 } } }; Loader.AddDefinition(itemDefinition10); } private void LoadAtgeirs() { Logger.LogInfo("Loading Atgeirs"); ItemDefinition itemDefinition = new ItemDefinition(); itemDefinition.Name = "Flint Atgeir"; itemDefinition.Category = ItemCategory.Atgeirs; itemDefinition.prefab = "VAAtgeir_Flint"; itemDefinition.icon = "flint_atgeir"; itemDefinition.craftedAt = "piece_workbench"; itemDefinition.craftAmount = 1; itemDefinition.modifableStats = new Dictionary { { ItemStat.pierce, new ItemStatConfig { default_value = 25f, min = 0f, max = 90f } }, { ItemStat.pierce_per_level, new ItemStatConfig { default_value = 6f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 30f, min = 0f, max = 120f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 11f, min = 0f, max = 150f } }, { ItemStat.durability, new ItemStatConfig { default_value = 125f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 10f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 20f, min = 1f, max = 50f } } }; itemDefinition.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "Wood", amount = 10, upgradeCost = 0 }, new RecipeIngredient { prefab = "Flint", amount = 6, upgradeCost = 3 }, new RecipeIngredient { prefab = "LeatherScraps", amount = 0, upgradeCost = 2 } } }; Loader.AddDefinition(itemDefinition); ItemDefinition itemDefinition2 = new ItemDefinition(); itemDefinition2.Name = "Eikthyrs Atgeir"; itemDefinition2.Category = ItemCategory.Atgeirs; itemDefinition2.prefab = "VAatgeir_antler"; itemDefinition2.icon = "antler_atgeir"; itemDefinition2.craftedAt = "piece_workbench"; itemDefinition2.craftAmount = 1; itemDefinition2.modifableStats = new Dictionary { { ItemStat.pierce, new ItemStatConfig { default_value = 35f, min = 0f, max = 90f } }, { ItemStat.pierce_per_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 50f } }, { ItemStat.lightning, new ItemStatConfig { default_value = 10f, min = 0f, max = 50f } }, { ItemStat.lightning_per_level, new ItemStatConfig { default_value = 1f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 30f, min = 0f, max = 120f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 14f, min = 0f, max = 150f } }, { ItemStat.durability, new ItemStatConfig { default_value = 175f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 12f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 24f, min = 1f, max = 50f } } }; itemDefinition2.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "FineWood", amount = 15, upgradeCost = 0 }, new RecipeIngredient { prefab = "Resin", amount = 30, upgradeCost = 15 }, new RecipeIngredient { prefab = "HardAntler", amount = 3, upgradeCost = 3 }, new RecipeIngredient { prefab = "TrophyEikthyr", amount = 1, upgradeCost = 1 } } }; Loader.AddDefinition(itemDefinition2); ItemDefinition itemDefinition3 = new ItemDefinition(); itemDefinition3.Name = "Abyssal Atgeir"; itemDefinition3.Category = ItemCategory.Atgeirs; itemDefinition3.prefab = "VAAtgeirChitin"; itemDefinition3.icon = "chitin_heavy_atgeir_small2"; itemDefinition3.craftedAt = "piece_workbench"; itemDefinition3.craftAmount = 1; itemDefinition3.modifableStats = new Dictionary { { ItemStat.pierce, new ItemStatConfig { default_value = 35f, min = 0f, max = 140f } }, { ItemStat.pierce_per_level, new ItemStatConfig { default_value = 2f, min = 0f, max = 50f } }, { ItemStat.blunt, new ItemStatConfig { default_value = 20f, min = 0f, max = 120f } }, { ItemStat.blunt_per_level, new ItemStatConfig { default_value = 4f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 30f, min = 0f, max = 120f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 21f, min = 0f, max = 150f } }, { ItemStat.durability, new ItemStatConfig { default_value = 175f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 14f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 28f, min = 1f, max = 50f } } }; itemDefinition3.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "FineWood", amount = 10, upgradeCost = 0 }, new RecipeIngredient { prefab = "Chitin", amount = 30, upgradeCost = 15 }, new RecipeIngredient { prefab = "DeerHide", amount = 2, upgradeCost = 1 } } }; Loader.AddDefinition(itemDefinition3); ItemDefinition itemDefinition4 = new ItemDefinition(); itemDefinition4.Name = "Silver Atgeir"; itemDefinition4.Category = ItemCategory.Atgeirs; itemDefinition4.prefab = "VASilverAtgeir"; itemDefinition4.icon = "silver_atgeir"; itemDefinition4.craftedAt = "forge"; itemDefinition4.craftAmount = 1; itemDefinition4.modifableStats = new Dictionary { { ItemStat.pierce, new ItemStatConfig { default_value = 85f, min = 0f, max = 250f } }, { ItemStat.pierce_per_level, new ItemStatConfig { default_value = 6f, min = 0f, max = 50f } }, { ItemStat.spirit, new ItemStatConfig { default_value = 30f, min = 0f, max = 120f } }, { ItemStat.spirit_per_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 30f, min = 0f, max = 120f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 40f, min = 0f, max = 150f } }, { ItemStat.durability, new ItemStatConfig { default_value = 175f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 16f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 32f, min = 1f, max = 50f } } }; itemDefinition4.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "Wood", amount = 10, upgradeCost = 0 }, new RecipeIngredient { prefab = "Silver", amount = 25, upgradeCost = 10 }, new RecipeIngredient { prefab = "Iron", amount = 4, upgradeCost = 2 }, new RecipeIngredient { prefab = "LeatherScraps", amount = 3, upgradeCost = 1 } } }; Loader.AddDefinition(itemDefinition4); ItemDefinition itemDefinition5 = new ItemDefinition(); itemDefinition5.Name = "Yagluths Reach"; itemDefinition5.Category = ItemCategory.Atgeirs; itemDefinition5.prefab = "VAYagluthAtgeir"; itemDefinition5.icon = "yagluth_atgeir"; itemDefinition5.craftedAt = "forge"; itemDefinition5.craftAmount = 1; itemDefinition5.modifableStats = new Dictionary { { ItemStat.pierce, new ItemStatConfig { default_value = 105f, min = 0f, max = 250f } }, { ItemStat.pierce_per_level, new ItemStatConfig { default_value = 3f, min = 0f, max = 50f } }, { ItemStat.fire, new ItemStatConfig { default_value = 25f, min = 0f, max = 120f } }, { ItemStat.fire_per_level, new ItemStatConfig { default_value = 3f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 30f, min = 0f, max = 120f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 52f, min = 0f, max = 120f } }, { ItemStat.durability, new ItemStatConfig { default_value = 175f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 18f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 36f, min = 1f, max = 50f } } }; itemDefinition5.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "BlackMetal", amount = 10, upgradeCost = 0 }, new RecipeIngredient { prefab = "Iron", amount = 4, upgradeCost = 2 }, new RecipeIngredient { prefab = "YagluthDrop", amount = 2, upgradeCost = 0 }, new RecipeIngredient { prefab = "TrophyGoblinKing", amount = 1, upgradeCost = 0 }, new RecipeIngredient { prefab = "Tar", amount = 0, upgradeCost = 3 }, new RecipeIngredient { prefab = "LinenThread", amount = 0, upgradeCost = 2 } } }; Loader.AddDefinition(itemDefinition5); ItemDefinition itemDefinition6 = new ItemDefinition(); itemDefinition6.Name = "Flametal Atgeir"; itemDefinition6.Category = ItemCategory.Atgeirs; itemDefinition6.prefab = "VAMeteorAtgeir"; itemDefinition6.icon = "meteor_atgeir"; itemDefinition6.craftedAt = "blackforge"; itemDefinition6.craftAmount = 1; itemDefinition6.modifableStats = new Dictionary { { ItemStat.pierce, new ItemStatConfig { default_value = 145f, min = 0f, max = 300f } }, { ItemStat.pierce_per_level, new ItemStatConfig { default_value = 6f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 30f, min = 0f, max = 120f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 64f, min = 0f, max = 120f } }, { ItemStat.durability, new ItemStatConfig { default_value = 175f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 22f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 42f, min = 1f, max = 50f } } }; itemDefinition6.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "FlametalNew", amount = 15, upgradeCost = 10 }, new RecipeIngredient { prefab = "Iron", amount = 4, upgradeCost = 2 }, new RecipeIngredient { prefab = "Blackwood", amount = 10, upgradeCost = 0 }, new RecipeIngredient { prefab = "MorgenSinew", amount = 2, upgradeCost = 2 } } }; Loader.AddDefinition(itemDefinition6); ItemDefinition itemDefinition7 = new ItemDefinition(); itemDefinition7.Name = "Flametal primal Atgeir"; itemDefinition7.Category = ItemCategory.Atgeirs; itemDefinition7.prefab = "VAMeteorAtgeir_nature"; itemDefinition7.icon = "meteor_atgeir_nature"; itemDefinition7.craftedAt = "blackforge"; itemDefinition7.craftAmount = 1; itemDefinition7.modifableStats = new Dictionary { { ItemStat.pierce, new ItemStatConfig { default_value = 145f, min = 0f, max = 300f } }, { ItemStat.pierce_per_level, new ItemStatConfig { default_value = 6f, min = 0f, max = 50f } }, { ItemStat.poison, new ItemStatConfig { default_value = 10f, min = 0f, max = 300f } }, { ItemStat.poison_per_level, new ItemStatConfig { default_value = 1f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 30f, min = 0f, max = 120f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 64f, min = 0f, max = 120f } }, { ItemStat.durability, new ItemStatConfig { default_value = 175f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 22f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 42f, min = 1f, max = 50f } } }; itemDefinition7.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "VAMeteorAtgeir", amount = 1, upgradeCost = 0 }, new RecipeIngredient { prefab = "FlametalNew", amount = 8, upgradeCost = 8 }, new RecipeIngredient { prefab = "Blackwood", amount = 5, upgradeCost = 0 }, new RecipeIngredient { prefab = "GemstoneGreen", amount = 1, upgradeCost = 1 } } }; Loader.AddDefinition(itemDefinition7); ItemDefinition itemDefinition8 = new ItemDefinition(); itemDefinition8.Name = "Flametal lightning Atgeir"; itemDefinition8.Category = ItemCategory.Atgeirs; itemDefinition8.prefab = "VAMeteorAtgeir_lightning"; itemDefinition8.icon = "meteor_atgeir_lightning"; itemDefinition8.craftedAt = "blackforge"; itemDefinition8.craftAmount = 1; itemDefinition8.modifableStats = new Dictionary { { ItemStat.pierce, new ItemStatConfig { default_value = 145f, min = 0f, max = 300f } }, { ItemStat.pierce_per_level, new ItemStatConfig { default_value = 6f, min = 0f, max = 50f } }, { ItemStat.lightning, new ItemStatConfig { default_value = 10f, min = 0f, max = 300f } }, { ItemStat.lightning_per_level, new ItemStatConfig { default_value = 0f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 30f, min = 0f, max = 120f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 64f, min = 0f, max = 120f } }, { ItemStat.durability, new ItemStatConfig { default_value = 175f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 22f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 42f, min = 1f, max = 50f } } }; itemDefinition8.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "VAMeteorAtgeir", amount = 1, upgradeCost = 0 }, new RecipeIngredient { prefab = "FlametalNew", amount = 8, upgradeCost = 8 }, new RecipeIngredient { prefab = "Blackwood", amount = 5, upgradeCost = 0 }, new RecipeIngredient { prefab = "GemstoneBlue", amount = 1, upgradeCost = 1 } } }; Loader.AddDefinition(itemDefinition8); ItemDefinition itemDefinition9 = new ItemDefinition(); itemDefinition9.Name = "Flametal blood Atgeir"; itemDefinition9.Category = ItemCategory.Atgeirs; itemDefinition9.prefab = "VAMeteorAtgeir_blood"; itemDefinition9.icon = "meteor_atgeir_blood"; itemDefinition9.craftedAt = "blackforge"; itemDefinition9.craftAmount = 1; itemDefinition9.modifableStats = new Dictionary { { ItemStat.pierce, new ItemStatConfig { default_value = 145f, min = 0f, max = 300f } }, { ItemStat.pierce_per_level, new ItemStatConfig { default_value = 6f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 30f, min = 0f, max = 120f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 52f, min = 0f, max = 120f } }, { ItemStat.durability, new ItemStatConfig { default_value = 175f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 22f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 42f, min = 1f, max = 50f } } }; itemDefinition9.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "VAMeteorAtgeir", amount = 1, upgradeCost = 0 }, new RecipeIngredient { prefab = "FlametalNew", amount = 8, upgradeCost = 8 }, new RecipeIngredient { prefab = "Blackwood", amount = 5, upgradeCost = 0 }, new RecipeIngredient { prefab = "GemstoneRed", amount = 1, upgradeCost = 1 } } }; Loader.AddDefinition(itemDefinition9); } private void LoadShields() { Logger.LogInfo("Loading Shields"); ItemDefinition itemDefinition = new ItemDefinition(); itemDefinition.Name = "Serpent Scale Buckler"; itemDefinition.Category = ItemCategory.Shields; itemDefinition.prefab = "VAserpent_buckler"; itemDefinition.icon = "serpentscale_shield2"; itemDefinition.craftedAt = "forge"; itemDefinition.craftAmount = 1; itemDefinition.modifableStats = new Dictionary { { ItemStat.block_armor, new ItemStatConfig { default_value = 48f, min = 0f, max = 120f } }, { ItemStat.block_armor_per_level, new ItemStatConfig { default_value = 6f, min = 0f, max = 50f } }, { ItemStat.block_force, new ItemStatConfig { default_value = 40f, min = 0f, max = 120f } }, { ItemStat.parry, new ItemStatConfig { default_value = 2.5f, min = 0f, max = 3f } }, { ItemStat.durability, new ItemStatConfig { default_value = 250f, min = 0f, max = 500f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.movement_speed, new ItemStatConfig { default_value = -0.05f, min = -0.3f, max = 0f } } }; itemDefinition.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "FineWood", amount = 8, upgradeCost = 8 }, new RecipeIngredient { prefab = "Iron", amount = 2, upgradeCost = 2 }, new RecipeIngredient { prefab = "SerpentScale", amount = 6, upgradeCost = 3 } } }; itemDefinition.damageMods = new Dictionary { { (DamageType)4, new HitCustomDamageMod { damageModifier = (DamageModifier)1 } } }; Loader.AddDefinition(itemDefinition); ItemDefinition itemDefinition2 = new ItemDefinition(); itemDefinition2.Name = "Elders Bulwark"; itemDefinition2.Category = ItemCategory.Shields; itemDefinition2.prefab = "VAElderRoundShield"; itemDefinition2.icon = "elder_roundshield"; itemDefinition2.craftedAt = "forge"; itemDefinition2.craftAmount = 1; itemDefinition2.modifableStats = new Dictionary { { ItemStat.block_armor, new ItemStatConfig { default_value = 28f, min = 0f, max = 120f } }, { ItemStat.block_armor_per_level, new ItemStatConfig { default_value = 6f, min = 0f, max = 50f } }, { ItemStat.block_force, new ItemStatConfig { default_value = 30f, min = 0f, max = 120f } }, { ItemStat.block_force_per_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 30f } }, { ItemStat.parry, new ItemStatConfig { default_value = 1.5f, min = 0f, max = 3f } }, { ItemStat.durability, new ItemStatConfig { default_value = 250f, min = 0f, max = 500f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.movement_speed, new ItemStatConfig { default_value = -0.05f, min = -0.3f, max = 0f } } }; itemDefinition2.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "Wood", amount = 16, upgradeCost = 8 }, new RecipeIngredient { prefab = "Bronze", amount = 8, upgradeCost = 4 }, new RecipeIngredient { prefab = "CryptKey", amount = 1, upgradeCost = 1 }, new RecipeIngredient { prefab = "TrophyTheElder", amount = 1, upgradeCost = 1 } } }; itemDefinition2.damageMods = new Dictionary { { (DamageType)1, new HitCustomDamageMod { damageModifier = (DamageModifier)1 } } }; Loader.AddDefinition(itemDefinition2); ItemDefinition itemDefinition3 = new ItemDefinition(); itemDefinition3.Name = "Moders Roundshield"; itemDefinition3.Category = ItemCategory.Shields; itemDefinition3.prefab = "VAModer_RoundShield"; itemDefinition3.icon = "moder_roundshield"; itemDefinition3.craftedAt = "forge"; itemDefinition3.craftAmount = 1; itemDefinition3.modifableStats = new Dictionary { { ItemStat.block_armor, new ItemStatConfig { default_value = 62f, min = 0f, max = 120f } }, { ItemStat.block_armor_per_level, new ItemStatConfig { default_value = 6f, min = 0f, max = 50f } }, { ItemStat.block_force, new ItemStatConfig { default_value = 40f, min = 0f, max = 120f } }, { ItemStat.block_force_per_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 30f } }, { ItemStat.parry, new ItemStatConfig { default_value = 1.5f, min = 0f, max = 3f } }, { ItemStat.durability, new ItemStatConfig { default_value = 250f, min = 0f, max = 500f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.movement_speed, new ItemStatConfig { default_value = -0.05f, min = -0.3f, max = 0f } } }; itemDefinition3.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "FineWood", amount = 24, upgradeCost = 12 }, new RecipeIngredient { prefab = "Silver", amount = 16, upgradeCost = 8 }, new RecipeIngredient { prefab = "DragonTear", amount = 10, upgradeCost = 0 }, new RecipeIngredient { prefab = "TrophyDragonQueen", amount = 1, upgradeCost = 0 }, new RecipeIngredient { prefab = "Obsidian", amount = 0, upgradeCost = 2 }, new RecipeIngredient { prefab = "JuteRed", amount = 0, upgradeCost = 2 } } }; itemDefinition3.damageMods = new Dictionary { { (DamageType)64, new HitCustomDamageMod { damageModifier = (DamageModifier)1 } } }; Loader.AddDefinition(itemDefinition3); ItemDefinition itemDefinition4 = new ItemDefinition(); itemDefinition4.Name = "Moders Shield"; itemDefinition4.Category = ItemCategory.Shields; itemDefinition4.prefab = "VAModer_shield"; itemDefinition4.icon = "modershiled_v2"; itemDefinition4.craftedAt = "forge"; itemDefinition4.craftAmount = 1; itemDefinition4.modifableStats = new Dictionary { { ItemStat.block_armor, new ItemStatConfig { default_value = 100f, min = 0f, max = 180f } }, { ItemStat.block_armor_per_level, new ItemStatConfig { default_value = 6f, min = 0f, max = 50f } }, { ItemStat.block_force, new ItemStatConfig { default_value = 120f, min = 0f, max = 200f } }, { ItemStat.block_force_per_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 30f } }, { ItemStat.durability, new ItemStatConfig { default_value = 250f, min = 0f, max = 500f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.movement_speed, new ItemStatConfig { default_value = -0.15f, min = -0.15f, max = 0f } } }; itemDefinition4.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "FineWood", amount = 24, upgradeCost = 12 }, new RecipeIngredient { prefab = "Silver", amount = 16, upgradeCost = 8 }, new RecipeIngredient { prefab = "DragonTear", amount = 10, upgradeCost = 0 }, new RecipeIngredient { prefab = "TrophyDragonQueen", amount = 1, upgradeCost = 0 }, new RecipeIngredient { prefab = "Obsidian", amount = 0, upgradeCost = 2 }, new RecipeIngredient { prefab = "JuteRed", amount = 0, upgradeCost = 2 } } }; itemDefinition4.damageMods = new Dictionary { { (DamageType)64, new HitCustomDamageMod { damageModifier = (DamageModifier)1 } } }; Loader.AddDefinition(itemDefinition4); ItemDefinition itemDefinition5 = new ItemDefinition(); itemDefinition5.Name = "Silver Wolf Towershield"; itemDefinition5.Category = ItemCategory.Shields; itemDefinition5.prefab = "VAsilver_tower"; itemDefinition5.icon = "silver_tower_shield"; itemDefinition5.craftedAt = "forge"; itemDefinition5.craftAmount = 1; itemDefinition5.modifableStats = new Dictionary { { ItemStat.block_armor, new ItemStatConfig { default_value = 78f, min = 0f, max = 120f } }, { ItemStat.block_armor_per_level, new ItemStatConfig { default_value = 6f, min = 0f, max = 50f } }, { ItemStat.block_force, new ItemStatConfig { default_value = 120f, min = 0f, max = 200f } }, { ItemStat.block_force_per_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 30f } }, { ItemStat.movement_speed, new ItemStatConfig { default_value = -0.15f, min = -0.15f, max = 0f } }, { ItemStat.durability, new ItemStatConfig { default_value = 250f, min = 0f, max = 500f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } } }; itemDefinition5.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "FineWood", amount = 15, upgradeCost = 10 }, new RecipeIngredient { prefab = "Silver", amount = 10, upgradeCost = 6 }, new RecipeIngredient { prefab = "TrophyUlv", amount = 1, upgradeCost = 1 } } }; Loader.AddDefinition(itemDefinition5); ItemDefinition itemDefinition6 = new ItemDefinition(); itemDefinition6.Name = "Dverger Towershield"; itemDefinition6.Category = ItemCategory.Shields; itemDefinition6.prefab = "VAdverger_tower"; itemDefinition6.icon = "dverger_towershield"; itemDefinition6.craftedAt = "blackforge"; itemDefinition6.craftAmount = 1; itemDefinition6.modifableStats = new Dictionary { { ItemStat.block_armor, new ItemStatConfig { default_value = 122f, min = 0f, max = 200f } }, { ItemStat.block_armor_per_level, new ItemStatConfig { default_value = 6f, min = 0f, max = 50f } }, { ItemStat.block_force, new ItemStatConfig { default_value = 150f, min = 0f, max = 200f } }, { ItemStat.block_force_per_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 30f } }, { ItemStat.movement_speed, new ItemStatConfig { default_value = -0.15f, min = -0.15f, max = 0f } }, { ItemStat.durability, new ItemStatConfig { default_value = 200f, min = 0f, max = 500f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } } }; itemDefinition6.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "BlackMarble", amount = 20, upgradeCost = 10 }, new RecipeIngredient { prefab = "YggdrasilWood", amount = 12, upgradeCost = 6 }, new RecipeIngredient { prefab = "BlackCore", amount = 1, upgradeCost = 0 }, new RecipeIngredient { prefab = "Copper", amount = 14, upgradeCost = 10 } } }; Loader.AddDefinition(itemDefinition6); } private void LoadDaggers() { Logger.LogInfo("Loading Daggers"); ItemDefinition itemDefinition = new ItemDefinition(); itemDefinition.Name = "Hati Knife"; itemDefinition.Category = ItemCategory.Knives; itemDefinition.prefab = "VAdagger_blackmetal_mistlands"; itemDefinition.icon = "hatti_knife"; itemDefinition.craftedAt = "blackforge"; itemDefinition.craftAmount = 1; itemDefinition.modifableStats = new Dictionary { { ItemStat.block_armor, new ItemStatConfig { default_value = 4f, min = 0f, max = 48f } }, { ItemStat.slash, new ItemStatConfig { default_value = 39f, min = 0f, max = 99f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 1f, min = 0f, max = 50f } }, { ItemStat.pierce, new ItemStatConfig { default_value = 39f, min = 0f, max = 99f } }, { ItemStat.pierce_per_level, new ItemStatConfig { default_value = 1f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 10f, min = 0f, max = 40f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 14f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 38f, min = 1f, max = 50f } }, { ItemStat.durability, new ItemStatConfig { default_value = 200f, min = 0f, max = 500f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } } }; itemDefinition.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "FineWood", amount = 4, upgradeCost = 4 }, new RecipeIngredient { prefab = "BlackMetal", amount = 8, upgradeCost = 4 }, new RecipeIngredient { prefab = "Iron", amount = 2, upgradeCost = 2 } } }; Loader.AddDefinition(itemDefinition); ItemDefinition itemDefinition2 = new ItemDefinition(); itemDefinition2.Name = "Blackmetal knives"; itemDefinition2.Category = ItemCategory.Knives; itemDefinition2.prefab = "VAknife_blackmetal"; itemDefinition2.icon = "2h_blackmetal_knives"; itemDefinition2.craftedAt = "forge"; itemDefinition2.craftAmount = 1; itemDefinition2.modifableStats = new Dictionary { { ItemStat.block_armor, new ItemStatConfig { default_value = 20f, min = 0f, max = 48f } }, { ItemStat.slash, new ItemStatConfig { default_value = 39f, min = 0f, max = 99f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 1f, min = 0f, max = 50f } }, { ItemStat.pierce, new ItemStatConfig { default_value = 39f, min = 0f, max = 99f } }, { ItemStat.pierce_per_level, new ItemStatConfig { default_value = 1f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 10f, min = 0f, max = 40f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 12f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 12f, min = 1f, max = 50f } }, { ItemStat.durability, new ItemStatConfig { default_value = 200f, min = 0f, max = 500f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } } }; itemDefinition2.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "FineWood", amount = 8, upgradeCost = 4 }, new RecipeIngredient { prefab = "BlackMetal", amount = 20, upgradeCost = 10 }, new RecipeIngredient { prefab = "LinenThread", amount = 10, upgradeCost = 5 } } }; Loader.AddDefinition(itemDefinition2); ItemDefinition itemDefinition3 = new ItemDefinition(); itemDefinition3.Name = "Flint knives"; itemDefinition3.Category = ItemCategory.Knives; itemDefinition3.prefab = "VADagger_Flint_2h"; itemDefinition3.icon = "2h_flint_knives"; itemDefinition3.craftedAt = "piece_workbench"; itemDefinition3.craftAmount = 1; itemDefinition3.modifableStats = new Dictionary { { ItemStat.block_armor, new ItemStatConfig { default_value = 4f, min = 0f, max = 48f } }, { ItemStat.slash, new ItemStatConfig { default_value = 12f, min = 0f, max = 99f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 1f, min = 0f, max = 50f } }, { ItemStat.pierce, new ItemStatConfig { default_value = 12f, min = 0f, max = 99f } }, { ItemStat.pierce_per_level, new ItemStatConfig { default_value = 1f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 10f, min = 0f, max = 40f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 4f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 12f, min = 1f, max = 50f } }, { ItemStat.durability, new ItemStatConfig { default_value = 200f, min = 0f, max = 500f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } } }; itemDefinition3.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "Wood", amount = 4, upgradeCost = 0 }, new RecipeIngredient { prefab = "Flint", amount = 6, upgradeCost = 3 }, new RecipeIngredient { prefab = "LeatherScraps", amount = 2, upgradeCost = 1 } } }; Loader.AddDefinition(itemDefinition3); ItemDefinition itemDefinition4 = new ItemDefinition(); itemDefinition4.Name = "Eikthyrs knife"; itemDefinition4.Category = ItemCategory.Knives; itemDefinition4.prefab = "VAAntler_dagger"; itemDefinition4.icon = "antler_dagger"; itemDefinition4.craftedAt = "piece_workbench"; itemDefinition4.craftAmount = 1; itemDefinition4.modifableStats = new Dictionary { { ItemStat.block_armor, new ItemStatConfig { default_value = 2f, min = 0f, max = 48f } }, { ItemStat.slash, new ItemStatConfig { default_value = 8f, min = 0f, max = 99f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 1f, min = 0f, max = 50f } }, { ItemStat.pierce, new ItemStatConfig { default_value = 8f, min = 0f, max = 99f } }, { ItemStat.pierce_per_level, new ItemStatConfig { default_value = 1f, min = 0f, max = 50f } }, { ItemStat.lightning, new ItemStatConfig { default_value = 4f, min = 0f, max = 99f } }, { ItemStat.lightning_per_level, new ItemStatConfig { default_value = 1f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 10f, min = 0f, max = 30f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 6f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 18f, min = 1f, max = 50f } }, { ItemStat.durability, new ItemStatConfig { default_value = 200f, min = 0f, max = 500f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } } }; itemDefinition4.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "FineWood", amount = 3, upgradeCost = 0 }, new RecipeIngredient { prefab = "Resin", amount = 16, upgradeCost = 8 }, new RecipeIngredient { prefab = "HardAntler", amount = 3, upgradeCost = 3 }, new RecipeIngredient { prefab = "TrophyEikthyr", amount = 1, upgradeCost = 1 } } }; Loader.AddDefinition(itemDefinition4); ItemDefinition itemDefinition5 = new ItemDefinition(); itemDefinition5.Name = "Rascals knives"; itemDefinition5.Category = ItemCategory.Knives; itemDefinition5.prefab = "VAdagger_copper_2h"; itemDefinition5.icon = "copper_knives_2h"; itemDefinition5.craftedAt = "forge"; itemDefinition5.craftAmount = 1; itemDefinition5.modifableStats = new Dictionary { { ItemStat.block_armor, new ItemStatConfig { default_value = 8f, min = 0f, max = 48f } }, { ItemStat.slash, new ItemStatConfig { default_value = 20f, min = 0f, max = 99f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 1f, min = 0f, max = 50f } }, { ItemStat.pierce, new ItemStatConfig { default_value = 20f, min = 0f, max = 99f } }, { ItemStat.pierce_per_level, new ItemStatConfig { default_value = 1f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 10f, min = 0f, max = 40f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 6f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 18f, min = 1f, max = 50f } }, { ItemStat.durability, new ItemStatConfig { default_value = 200f, min = 0f, max = 500f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } } }; itemDefinition5.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "RoundLog", amount = 4, upgradeCost = 0 }, new RecipeIngredient { prefab = "Copper", amount = 16, upgradeCost = 4 }, new RecipeIngredient { prefab = "LeatherScraps", amount = 4, upgradeCost = 2 } } }; Loader.AddDefinition(itemDefinition5); ItemDefinition itemDefinition6 = new ItemDefinition(); itemDefinition6.Name = "Abyssal knives"; itemDefinition6.Category = ItemCategory.Knives; itemDefinition6.prefab = "VAdagger_chitin_2h"; itemDefinition6.icon = "chitin_knives"; itemDefinition6.craftedAt = "piece_workbench"; itemDefinition6.craftAmount = 1; itemDefinition6.modifableStats = new Dictionary { { ItemStat.block_armor, new ItemStatConfig { default_value = 12f, min = 0f, max = 48f } }, { ItemStat.slash, new ItemStatConfig { default_value = 24f, min = 0f, max = 99f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 1f, min = 0f, max = 50f } }, { ItemStat.pierce, new ItemStatConfig { default_value = 0f, min = 0f, max = 99f } }, { ItemStat.pierce_per_level, new ItemStatConfig { default_value = 0f, min = 0f, max = 50f } }, { ItemStat.blunt, new ItemStatConfig { default_value = 24f, min = 0f, max = 99f } }, { ItemStat.blunt_per_level, new ItemStatConfig { default_value = 0f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 10f, min = 0f, max = 40f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 8f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 24f, min = 1f, max = 50f } }, { ItemStat.durability, new ItemStatConfig { default_value = 200f, min = 0f, max = 500f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } } }; itemDefinition6.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "FineWood", amount = 6, upgradeCost = 4 }, new RecipeIngredient { prefab = "Chitin", amount = 32, upgradeCost = 12 }, new RecipeIngredient { prefab = "LeatherScraps", amount = 8, upgradeCost = 4 } } }; Loader.AddDefinition(itemDefinition6); ItemDefinition itemDefinition7 = new ItemDefinition(); itemDefinition7.Name = "Rogue knives"; itemDefinition7.Category = ItemCategory.Knives; itemDefinition7.prefab = "VAdagger_iron_2h"; itemDefinition7.icon = "iron_dagger_2h"; itemDefinition7.craftedAt = "forge"; itemDefinition7.craftAmount = 1; itemDefinition7.modifableStats = new Dictionary { { ItemStat.block_armor, new ItemStatConfig { default_value = 12f, min = 0f, max = 48f } }, { ItemStat.slash, new ItemStatConfig { default_value = 25f, min = 0f, max = 99f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 1f, min = 0f, max = 50f } }, { ItemStat.pierce, new ItemStatConfig { default_value = 25f, min = 0f, max = 99f } }, { ItemStat.pierce_per_level, new ItemStatConfig { default_value = 1f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 10f, min = 0f, max = 40f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 8f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 24f, min = 1f, max = 50f } }, { ItemStat.durability, new ItemStatConfig { default_value = 200f, min = 0f, max = 500f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } } }; itemDefinition7.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "Wood", amount = 4, upgradeCost = 2 }, new RecipeIngredient { prefab = "Iron", amount = 16, upgradeCost = 8 }, new RecipeIngredient { prefab = "LeatherScraps", amount = 6, upgradeCost = 3 } } }; Loader.AddDefinition(itemDefinition7); ItemDefinition itemDefinition8 = new ItemDefinition(); itemDefinition8.Name = "Iron knives"; itemDefinition8.Category = ItemCategory.Knives; itemDefinition8.prefab = "VAdagger_iron"; itemDefinition8.icon = "iron_dagger"; itemDefinition8.craftedAt = "forge"; itemDefinition8.craftAmount = 1; itemDefinition8.modifableStats = new Dictionary { { ItemStat.block_armor, new ItemStatConfig { default_value = 2f, min = 0f, max = 48f } }, { ItemStat.slash, new ItemStatConfig { default_value = 22f, min = 0f, max = 99f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 1f, min = 0f, max = 50f } }, { ItemStat.pierce, new ItemStatConfig { default_value = 22f, min = 0f, max = 99f } }, { ItemStat.pierce_per_level, new ItemStatConfig { default_value = 1f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 10f, min = 0f, max = 30f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 8f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 24f, min = 1f, max = 50f } }, { ItemStat.durability, new ItemStatConfig { default_value = 200f, min = 0f, max = 500f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } } }; itemDefinition8.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "Wood", amount = 2, upgradeCost = 1 }, new RecipeIngredient { prefab = "Iron", amount = 12, upgradeCost = 6 }, new RecipeIngredient { prefab = "LeatherScraps", amount = 4, upgradeCost = 2 } } }; Loader.AddDefinition(itemDefinition8); ItemDefinition itemDefinition9 = new ItemDefinition(); itemDefinition9.Name = "Silver knives"; itemDefinition9.Category = ItemCategory.Knives; itemDefinition9.prefab = "VAdagger_silver_2h"; itemDefinition9.icon = "silver_dagger_2h"; itemDefinition9.craftedAt = "forge"; itemDefinition9.craftAmount = 1; itemDefinition9.modifableStats = new Dictionary { { ItemStat.block_armor, new ItemStatConfig { default_value = 16f, min = 0f, max = 48f } }, { ItemStat.slash, new ItemStatConfig { default_value = 34f, min = 0f, max = 99f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 1f, min = 0f, max = 50f } }, { ItemStat.pierce, new ItemStatConfig { default_value = 34f, min = 0f, max = 99f } }, { ItemStat.pierce_per_level, new ItemStatConfig { default_value = 1f, min = 0f, max = 50f } }, { ItemStat.spirit, new ItemStatConfig { default_value = 12f, min = 0f, max = 99f } }, { ItemStat.spirit_per_level, new ItemStatConfig { default_value = 0f, min = 0f, max = 50f } }, { ItemStat.frost, new ItemStatConfig { default_value = 0f, min = 0f, max = 99f } }, { ItemStat.frost_per_level, new ItemStatConfig { default_value = 0f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 10f, min = 0f, max = 40f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 10f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 30f, min = 1f, max = 50f } }, { ItemStat.durability, new ItemStatConfig { default_value = 200f, min = 0f, max = 500f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } } }; itemDefinition9.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "Wood", amount = 4, upgradeCost = 2 }, new RecipeIngredient { prefab = "Silver", amount = 12, upgradeCost = 6 }, new RecipeIngredient { prefab = "Iron", amount = 4, upgradeCost = 2 }, new RecipeIngredient { prefab = "LeatherScraps", amount = 6, upgradeCost = 3 } } }; Loader.AddDefinition(itemDefinition9); ItemDefinition itemDefinition10 = new ItemDefinition(); itemDefinition10.Name = "Moders knife"; itemDefinition10.Category = ItemCategory.Knives; itemDefinition10.prefab = "VAdagger_moder"; itemDefinition10.icon = "moder_dagger"; itemDefinition10.craftedAt = "forge"; itemDefinition10.craftAmount = 1; itemDefinition10.modifableStats = new Dictionary { { ItemStat.block_armor, new ItemStatConfig { default_value = 2f, min = 0f, max = 48f } }, { ItemStat.slash, new ItemStatConfig { default_value = 28f, min = 0f, max = 99f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 1f, min = 0f, max = 50f } }, { ItemStat.pierce, new ItemStatConfig { default_value = 28f, min = 0f, max = 99f } }, { ItemStat.pierce_per_level, new ItemStatConfig { default_value = 1f, min = 0f, max = 50f } }, { ItemStat.spirit, new ItemStatConfig { default_value = 0f, min = 0f, max = 99f } }, { ItemStat.spirit_per_level, new ItemStatConfig { default_value = 0f, min = 0f, max = 50f } }, { ItemStat.frost, new ItemStatConfig { default_value = 8f, min = 0f, max = 99f } }, { ItemStat.frost_per_level, new ItemStatConfig { default_value = 1f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 10f, min = 0f, max = 30f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 10f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 30f, min = 1f, max = 50f } }, { ItemStat.durability, new ItemStatConfig { default_value = 200f, min = 0f, max = 500f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } } }; itemDefinition10.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "ElderBark", amount = 4, upgradeCost = 2 }, new RecipeIngredient { prefab = "Obsidian", amount = 15, upgradeCost = 5 }, new RecipeIngredient { prefab = "DragonTear", amount = 10, upgradeCost = 0 }, new RecipeIngredient { prefab = "TrophyDragonQueen", amount = 1, upgradeCost = 0 }, new RecipeIngredient { prefab = "Silver", amount = 0, upgradeCost = 2 }, new RecipeIngredient { prefab = "JuteRed", amount = 0, upgradeCost = 2 } } }; Loader.AddDefinition(itemDefinition10); ItemDefinition itemDefinition11 = new ItemDefinition(); itemDefinition11.Name = "Moders dualknives"; itemDefinition11.Category = ItemCategory.Knives; itemDefinition11.prefab = "VAdagger_moder_2h"; itemDefinition11.icon = "moder_dagger_2h"; itemDefinition11.craftedAt = "forge"; itemDefinition11.craftAmount = 1; itemDefinition11.modifableStats = new Dictionary { { ItemStat.block_armor, new ItemStatConfig { default_value = 18f, min = 0f, max = 48f } }, { ItemStat.slash, new ItemStatConfig { default_value = 32f, min = 0f, max = 99f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 1f, min = 0f, max = 50f } }, { ItemStat.pierce, new ItemStatConfig { default_value = 32f, min = 0f, max = 99f } }, { ItemStat.pierce_per_level, new ItemStatConfig { default_value = 1f, min = 0f, max = 50f } }, { ItemStat.spirit, new ItemStatConfig { default_value = 0f, min = 0f, max = 99f } }, { ItemStat.spirit_per_level, new ItemStatConfig { default_value = 0f, min = 0f, max = 50f } }, { ItemStat.frost, new ItemStatConfig { default_value = 8f, min = 0f, max = 99f } }, { ItemStat.frost_per_level, new ItemStatConfig { default_value = 1f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 10f, min = 0f, max = 30f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 10f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 30f, min = 1f, max = 50f } }, { ItemStat.durability, new ItemStatConfig { default_value = 200f, min = 0f, max = 500f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } } }; itemDefinition11.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "DragonTear", amount = 10, upgradeCost = 0 }, new RecipeIngredient { prefab = "TrophyDragonQueen", amount = 1, upgradeCost = 0 }, new RecipeIngredient { prefab = "Silver", amount = 15, upgradeCost = 4 }, new RecipeIngredient { prefab = "ElderBark", amount = 6, upgradeCost = 3 }, new RecipeIngredient { prefab = "JuteRed", amount = 0, upgradeCost = 4 } } }; Loader.AddDefinition(itemDefinition11); ItemDefinition itemDefinition12 = new ItemDefinition(); itemDefinition12.Name = "Bonemasses knife"; itemDefinition12.Category = ItemCategory.Knives; itemDefinition12.prefab = "VABonemassDagger"; itemDefinition12.icon = "bonemass_dagger"; itemDefinition12.craftedAt = "forge"; itemDefinition12.craftAmount = 1; itemDefinition12.modifableStats = new Dictionary { { ItemStat.block_armor, new ItemStatConfig { default_value = 2f, min = 0f, max = 48f } }, { ItemStat.pierce, new ItemStatConfig { default_value = 22f, min = 0f, max = 99f } }, { ItemStat.pierce_per_level, new ItemStatConfig { default_value = 1f, min = 0f, max = 50f } }, { ItemStat.slash, new ItemStatConfig { default_value = 22f, min = 0f, max = 99f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 1f, min = 0f, max = 50f } }, { ItemStat.poison, new ItemStatConfig { default_value = 7f, min = 0f, max = 99f } }, { ItemStat.poison_per_level, new ItemStatConfig { default_value = 2f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 10f, min = 0f, max = 30f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 9f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 28f, min = 1f, max = 50f } }, { ItemStat.durability, new ItemStatConfig { default_value = 200f, min = 0f, max = 500f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } } }; itemDefinition12.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "WitheredBone", amount = 2, upgradeCost = 1 }, new RecipeIngredient { prefab = "Iron", amount = 12, upgradeCost = 6 }, new RecipeIngredient { prefab = "Wishbone", amount = 1, upgradeCost = 0 }, new RecipeIngredient { prefab = "TrophyBonemass", amount = 1, upgradeCost = 0 }, new RecipeIngredient { prefab = "ElderBark", amount = 0, upgradeCost = 2 }, new RecipeIngredient { prefab = "LeatherScraps", amount = 0, upgradeCost = 2 } } }; Loader.AddDefinition(itemDefinition12); ItemDefinition itemDefinition13 = new ItemDefinition(); itemDefinition13.Name = "Queens knife"; itemDefinition13.Category = ItemCategory.Knives; itemDefinition13.prefab = "VAdagger_queen"; itemDefinition13.icon = "dagger_queen"; itemDefinition13.craftedAt = "blackforge"; itemDefinition13.craftAmount = 1; itemDefinition13.modifableStats = new Dictionary { { ItemStat.block_armor, new ItemStatConfig { default_value = 2f, min = 0f, max = 48f } }, { ItemStat.pierce, new ItemStatConfig { default_value = 34f, min = 0f, max = 99f } }, { ItemStat.pierce_per_level, new ItemStatConfig { default_value = 1f, min = 0f, max = 50f } }, { ItemStat.slash, new ItemStatConfig { default_value = 34f, min = 0f, max = 99f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 1f, min = 0f, max = 50f } }, { ItemStat.poison, new ItemStatConfig { default_value = 18f, min = 0f, max = 99f } }, { ItemStat.poison_per_level, new ItemStatConfig { default_value = 3f, min = 0f, max = 50f } }, { ItemStat.lightning, new ItemStatConfig { default_value = 18f, min = 0f, max = 99f } }, { ItemStat.lightning_per_level, new ItemStatConfig { default_value = 3f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 10f, min = 0f, max = 30f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 14f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 42f, min = 1f, max = 80f } }, { ItemStat.durability, new ItemStatConfig { default_value = 200f, min = 0f, max = 500f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } } }; itemDefinition13.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "YggdrasilWood", amount = 2, upgradeCost = 2 }, new RecipeIngredient { prefab = "Eitr", amount = 10, upgradeCost = 5 }, new RecipeIngredient { prefab = "JuteBlue", amount = 2, upgradeCost = 1 }, new RecipeIngredient { prefab = "TrophySeekerQueen", amount = 1, upgradeCost = 0 }, new RecipeIngredient { prefab = "Carapace", amount = 0, upgradeCost = 4 } } }; Loader.AddDefinition(itemDefinition13); ItemDefinition itemDefinition14 = new ItemDefinition(); itemDefinition14.Name = "Flametal knife"; itemDefinition14.Category = ItemCategory.Knives; itemDefinition14.prefab = "VAdagger_meteor"; itemDefinition14.icon = "meteor_dagger"; itemDefinition14.craftedAt = "blackforge"; itemDefinition14.craftAmount = 1; itemDefinition14.modifableStats = new Dictionary { { ItemStat.block_armor, new ItemStatConfig { default_value = 2f, min = 0f, max = 48f } }, { ItemStat.pierce, new ItemStatConfig { default_value = 45f, min = 0f, max = 99f } }, { ItemStat.pierce_per_level, new ItemStatConfig { default_value = 1f, min = 0f, max = 50f } }, { ItemStat.slash, new ItemStatConfig { default_value = 45f, min = 0f, max = 99f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 1f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 10f, min = 0f, max = 30f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 14f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 42f, min = 1f, max = 80f } }, { ItemStat.durability, new ItemStatConfig { default_value = 200f, min = 0f, max = 500f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } } }; itemDefinition14.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "FlametalNew", amount = 10, upgradeCost = 4 }, new RecipeIngredient { prefab = "Iron", amount = 2, upgradeCost = 1 }, new RecipeIngredient { prefab = "Blackwood", amount = 4, upgradeCost = 0 }, new RecipeIngredient { prefab = "MorgenSinew", amount = 4, upgradeCost = 2 } } }; Loader.AddDefinition(itemDefinition14); ItemDefinition itemDefinition15 = new ItemDefinition(); itemDefinition15.Name = "Flametal primal knife"; itemDefinition15.Category = ItemCategory.Knives; itemDefinition15.prefab = "VAdagger_meteor_nature"; itemDefinition15.icon = "meteor_dagger_primal"; itemDefinition15.craftedAt = "blackforge"; itemDefinition15.craftAmount = 1; itemDefinition15.modifableStats = new Dictionary { { ItemStat.block_armor, new ItemStatConfig { default_value = 2f, min = 0f, max = 48f } }, { ItemStat.pierce, new ItemStatConfig { default_value = 45f, min = 0f, max = 99f } }, { ItemStat.pierce_per_level, new ItemStatConfig { default_value = 1f, min = 0f, max = 50f } }, { ItemStat.slash, new ItemStatConfig { default_value = 45f, min = 0f, max = 99f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 1f, min = 0f, max = 50f } }, { ItemStat.poison, new ItemStatConfig { default_value = 10f, min = 0f, max = 99f } }, { ItemStat.poison_per_level, new ItemStatConfig { default_value = 2f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 10f, min = 0f, max = 30f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 14f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 42f, min = 1f, max = 80f } }, { ItemStat.durability, new ItemStatConfig { default_value = 200f, min = 0f, max = 500f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } } }; itemDefinition15.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "VAdagger_meteor", amount = 1, upgradeCost = 0 }, new RecipeIngredient { prefab = "FlametalNew", amount = 4, upgradeCost = 4 }, new RecipeIngredient { prefab = "GemstoneGreen", amount = 1, upgradeCost = 1 } } }; Loader.AddDefinition(itemDefinition15); ItemDefinition itemDefinition16 = new ItemDefinition(); itemDefinition16.Name = "Flametal lightning knife"; itemDefinition16.Category = ItemCategory.Knives; itemDefinition16.prefab = "VAdagger_meteor_lightning"; itemDefinition16.icon = "meteor_dagger_lightning"; itemDefinition16.craftedAt = "blackforge"; itemDefinition16.craftAmount = 1; itemDefinition16.modifableStats = new Dictionary { { ItemStat.block_armor, new ItemStatConfig { default_value = 2f, min = 0f, max = 48f } }, { ItemStat.pierce, new ItemStatConfig { default_value = 45f, min = 0f, max = 99f } }, { ItemStat.pierce_per_level, new ItemStatConfig { default_value = 1f, min = 0f, max = 50f } }, { ItemStat.slash, new ItemStatConfig { default_value = 45f, min = 0f, max = 99f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 1f, min = 0f, max = 50f } }, { ItemStat.lightning, new ItemStatConfig { default_value = 10f, min = 0f, max = 99f } }, { ItemStat.lightning_per_level, new ItemStatConfig { default_value = 2f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 10f, min = 0f, max = 30f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 14f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 42f, min = 1f, max = 80f } }, { ItemStat.durability, new ItemStatConfig { default_value = 200f, min = 0f, max = 500f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } } }; itemDefinition16.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "VAdagger_meteor", amount = 1, upgradeCost = 0 }, new RecipeIngredient { prefab = "FlametalNew", amount = 4, upgradeCost = 4 }, new RecipeIngredient { prefab = "GemstoneBlue", amount = 1, upgradeCost = 1 } } }; Loader.AddDefinition(itemDefinition16); ItemDefinition itemDefinition17 = new ItemDefinition(); itemDefinition17.Name = "Flametal blood knife"; itemDefinition17.Category = ItemCategory.Knives; itemDefinition17.prefab = "VAdagger_meteor_blood"; itemDefinition17.icon = "meteor_dagger_blood"; itemDefinition17.craftedAt = "blackforge"; itemDefinition17.craftAmount = 1; itemDefinition17.modifableStats = new Dictionary { { ItemStat.block_armor, new ItemStatConfig { default_value = 2f, min = 0f, max = 48f } }, { ItemStat.pierce, new ItemStatConfig { default_value = 45f, min = 0f, max = 99f } }, { ItemStat.pierce_per_level, new ItemStatConfig { default_value = 1f, min = 0f, max = 50f } }, { ItemStat.slash, new ItemStatConfig { default_value = 45f, min = 0f, max = 99f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 1f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 10f, min = 0f, max = 30f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 14f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 42f, min = 1f, max = 80f } }, { ItemStat.durability, new ItemStatConfig { default_value = 200f, min = 0f, max = 500f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } } }; itemDefinition17.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "VAdagger_meteor", amount = 1, upgradeCost = 0 }, new RecipeIngredient { prefab = "FlametalNew", amount = 4, upgradeCost = 4 }, new RecipeIngredient { prefab = "GemstoneRed", amount = 1, upgradeCost = 1 } } }; Loader.AddDefinition(itemDefinition17); ItemDefinition itemDefinition18 = new ItemDefinition(); itemDefinition18.Name = "Assassins knives"; itemDefinition18.Category = ItemCategory.Knives; itemDefinition18.prefab = "VAdagger_meteor_2h"; itemDefinition18.icon = "2h_meteor_daggers"; itemDefinition18.craftedAt = "blackforge"; itemDefinition18.craftAmount = 1; itemDefinition18.modifableStats = new Dictionary { { ItemStat.block_armor, new ItemStatConfig { default_value = 28f, min = 0f, max = 48f } }, { ItemStat.pierce, new ItemStatConfig { default_value = 52f, min = 0f, max = 99f } }, { ItemStat.pierce_per_level, new ItemStatConfig { default_value = 1f, min = 0f, max = 50f } }, { ItemStat.slash, new ItemStatConfig { default_value = 52f, min = 0f, max = 99f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 1f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 10f, min = 0f, max = 30f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 15f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 45f, min = 1f, max = 80f } }, { ItemStat.durability, new ItemStatConfig { default_value = 200f, min = 0f, max = 500f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } } }; itemDefinition18.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "FlametalNew", amount = 14, upgradeCost = 6 }, new RecipeIngredient { prefab = "Iron", amount = 2, upgradeCost = 1 }, new RecipeIngredient { prefab = "Blackwood", amount = 6, upgradeCost = 0 }, new RecipeIngredient { prefab = "MorgenSinew", amount = 4, upgradeCost = 2 } } }; Loader.AddDefinition(itemDefinition18); ItemDefinition itemDefinition19 = new ItemDefinition(); itemDefinition19.Name = "Assassins primal knives"; itemDefinition19.Category = ItemCategory.Knives; itemDefinition19.prefab = "VAdagger_meteor_2h_nature"; itemDefinition19.icon = "meteor_dagger_primal_2h"; itemDefinition19.craftedAt = "blackforge"; itemDefinition19.craftAmount = 1; itemDefinition19.modifableStats = new Dictionary { { ItemStat.block_armor, new ItemStatConfig { default_value = 28f, min = 0f, max = 48f } }, { ItemStat.pierce, new ItemStatConfig { default_value = 52f, min = 0f, max = 99f } }, { ItemStat.pierce_per_level, new ItemStatConfig { default_value = 1f, min = 0f, max = 50f } }, { ItemStat.slash, new ItemStatConfig { default_value = 52f, min = 0f, max = 99f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 1f, min = 0f, max = 50f } }, { ItemStat.poison, new ItemStatConfig { default_value = 14f, min = 0f, max = 99f } }, { ItemStat.poison_per_level, new ItemStatConfig { default_value = 2f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 10f, min = 0f, max = 30f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 15f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 45f, min = 1f, max = 80f } }, { ItemStat.durability, new ItemStatConfig { default_value = 200f, min = 0f, max = 500f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } } }; itemDefinition19.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "VAdagger_meteor_2h", amount = 1, upgradeCost = 0 }, new RecipeIngredient { prefab = "FlametalNew", amount = 8, upgradeCost = 8 }, new RecipeIngredient { prefab = "GemstoneGreen", amount = 1, upgradeCost = 1 } } }; Loader.AddDefinition(itemDefinition19); ItemDefinition itemDefinition20 = new ItemDefinition(); itemDefinition20.Name = "Assassins lightning knives"; itemDefinition20.Category = ItemCategory.Knives; itemDefinition20.prefab = "VAdagger_meteor_2h_lightning"; itemDefinition20.icon = "meteor_dagger_lightning_2h"; itemDefinition20.craftedAt = "blackforge"; itemDefinition20.craftAmount = 1; itemDefinition20.modifableStats = new Dictionary { { ItemStat.block_armor, new ItemStatConfig { default_value = 28f, min = 0f, max = 48f } }, { ItemStat.pierce, new ItemStatConfig { default_value = 52f, min = 0f, max = 99f } }, { ItemStat.pierce_per_level, new ItemStatConfig { default_value = 1f, min = 0f, max = 50f } }, { ItemStat.slash, new ItemStatConfig { default_value = 52f, min = 0f, max = 99f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 1f, min = 0f, max = 50f } }, { ItemStat.lightning, new ItemStatConfig { default_value = 14f, min = 0f, max = 99f } }, { ItemStat.lightning_per_level, new ItemStatConfig { default_value = 2f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 10f, min = 0f, max = 30f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 15f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 45f, min = 1f, max = 80f } }, { ItemStat.durability, new ItemStatConfig { default_value = 200f, min = 0f, max = 500f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } } }; itemDefinition20.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "VAdagger_meteor_2h", amount = 1, upgradeCost = 0 }, new RecipeIngredient { prefab = "FlametalNew", amount = 8, upgradeCost = 8 }, new RecipeIngredient { prefab = "GemstoneBlue", amount = 1, upgradeCost = 1 } } }; Loader.AddDefinition(itemDefinition20); ItemDefinition itemDefinition21 = new ItemDefinition(); itemDefinition21.Name = "Assassins blood knives"; itemDefinition21.Category = ItemCategory.Knives; itemDefinition21.prefab = "VAdagger_meteor_2h_blood"; itemDefinition21.icon = "meteor_dagger_blood_2h"; itemDefinition21.craftedAt = "blackforge"; itemDefinition21.craftAmount = 1; itemDefinition21.modifableStats = new Dictionary { { ItemStat.block_armor, new ItemStatConfig { default_value = 28f, min = 0f, max = 48f } }, { ItemStat.pierce, new ItemStatConfig { default_value = 52f, min = 0f, max = 99f } }, { ItemStat.pierce_per_level, new ItemStatConfig { default_value = 1f, min = 0f, max = 50f } }, { ItemStat.slash, new ItemStatConfig { default_value = 52f, min = 0f, max = 99f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 1f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 10f, min = 0f, max = 30f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 15f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 45f, min = 1f, max = 80f } }, { ItemStat.durability, new ItemStatConfig { default_value = 200f, min = 0f, max = 500f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } } }; itemDefinition21.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "VAdagger_meteor_2h", amount = 1, upgradeCost = 0 }, new RecipeIngredient { prefab = "FlametalNew", amount = 8, upgradeCost = 8 }, new RecipeIngredient { prefab = "GemstoneRed", amount = 1, upgradeCost = 1 } } }; Loader.AddDefinition(itemDefinition21); } private void LoadSpears() { Logger.LogInfo("Loading Spears"); ItemDefinition itemDefinition = new ItemDefinition(); itemDefinition.Name = "Flint Spear"; itemDefinition.Category = ItemCategory.Spears; itemDefinition.prefab = "VASpearFlint"; itemDefinition.icon = "flint_spear"; itemDefinition.craftedAt = "piece_workbench"; itemDefinition.craftAmount = 1; itemDefinition.modifableStats = new Dictionary { { ItemStat.block_armor, new ItemStatConfig { default_value = 4f, min = 0f, max = 48f } }, { ItemStat.pierce, new ItemStatConfig { default_value = 20f, min = 0f, max = 120f } }, { ItemStat.pierce_per_level, new ItemStatConfig { default_value = 6f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 30f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 6f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 8f, min = 1f, max = 50f } }, { ItemStat.durability, new ItemStatConfig { default_value = 100f, min = 0f, max = 300f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } } }; itemDefinition.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "Wood", amount = 5, upgradeCost = 3 }, new RecipeIngredient { prefab = "Flint", amount = 10, upgradeCost = 5 }, new RecipeIngredient { prefab = "LeatherScraps", amount = 2, upgradeCost = 1 } } }; Loader.AddDefinition(itemDefinition); ItemDefinition itemDefinition2 = new ItemDefinition(); itemDefinition2.Name = "Moders Strike"; itemDefinition2.Category = ItemCategory.Spears; itemDefinition2.prefab = "VASpearModer"; itemDefinition2.icon = "moder_spear"; itemDefinition2.craftedAt = "forge"; itemDefinition2.craftAmount = 1; itemDefinition2.modifableStats = new Dictionary { { ItemStat.block_armor, new ItemStatConfig { default_value = 30f, min = 0f, max = 48f } }, { ItemStat.pierce, new ItemStatConfig { default_value = 45f, min = 0f, max = 120f } }, { ItemStat.pierce_per_level, new ItemStatConfig { default_value = 2f, min = 0f, max = 50f } }, { ItemStat.slash, new ItemStatConfig { default_value = 30f, min = 0f, max = 99f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 4f, min = 0f, max = 50f } }, { ItemStat.frost, new ItemStatConfig { default_value = 25f, min = 0f, max = 99f } }, { ItemStat.frost_per_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 20f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 12f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 14f, min = 1f, max = 50f } }, { ItemStat.durability, new ItemStatConfig { default_value = 100f, min = 0f, max = 300f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } } }; itemDefinition2.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "ElderBark", amount = 15, upgradeCost = 10 }, new RecipeIngredient { prefab = "Obsidian", amount = 8, upgradeCost = 4 }, new RecipeIngredient { prefab = "DragonTear", amount = 10, upgradeCost = 0 }, new RecipeIngredient { prefab = "TrophyDragonQueen", amount = 1, upgradeCost = 0 }, new RecipeIngredient { prefab = "Silver", amount = 0, upgradeCost = 2 }, new RecipeIngredient { prefab = "JuteRed", amount = 0, upgradeCost = 2 } } }; Loader.AddDefinition(itemDefinition2); ItemDefinition itemDefinition3 = new ItemDefinition(); itemDefinition3.Name = "Blackmetal Spear"; itemDefinition3.Category = ItemCategory.Spears; itemDefinition3.prefab = "VASpearBlackmetal"; itemDefinition3.icon = "blackmetal_spear"; itemDefinition3.craftedAt = "forge"; itemDefinition3.craftAmount = 1; itemDefinition3.modifableStats = new Dictionary { { ItemStat.block_armor, new ItemStatConfig { default_value = 30f, min = 0f, max = 48f } }, { ItemStat.pierce, new ItemStatConfig { default_value = 95f, min = 0f, max = 120f } }, { ItemStat.pierce_per_level, new ItemStatConfig { default_value = 2f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 20f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 14f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 18f, min = 1f, max = 50f } }, { ItemStat.durability, new ItemStatConfig { default_value = 100f, min = 0f, max = 300f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } } }; itemDefinition3.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "BlackMetal", amount = 6, upgradeCost = 6 }, new RecipeIngredient { prefab = "FineWood", amount = 10, upgradeCost = 5 }, new RecipeIngredient { prefab = "Chain", amount = 2, upgradeCost = 1 }, new RecipeIngredient { prefab = "JuteRed", amount = 2, upgradeCost = 1 } } }; Loader.AddDefinition(itemDefinition3); ItemDefinition itemDefinition4 = new ItemDefinition(); itemDefinition4.Name = "Fader Spear"; itemDefinition4.Category = ItemCategory.Spears; itemDefinition4.prefab = "VASpearFader"; itemDefinition4.icon = "fader_spear"; itemDefinition4.craftedAt = "blackforge"; itemDefinition4.craftAmount = 1; itemDefinition4.modifableStats = new Dictionary { { ItemStat.block_armor, new ItemStatConfig { default_value = 30f, min = 0f, max = 48f } }, { ItemStat.pierce, new ItemStatConfig { default_value = 150f, min = 0f, max = 300f } }, { ItemStat.pierce_per_level, new ItemStatConfig { default_value = 3f, min = 0f, max = 50f } }, { ItemStat.poison, new ItemStatConfig { default_value = 25f, min = 0f, max = 300f } }, { ItemStat.poison_per_level, new ItemStatConfig { default_value = 1f, min = 0f, max = 50f } }, { ItemStat.fire, new ItemStatConfig { default_value = 25f, min = 0f, max = 300f } }, { ItemStat.fire_per_level, new ItemStatConfig { default_value = 1f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 20f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 18f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 20f, min = 1f, max = 50f } }, { ItemStat.durability, new ItemStatConfig { default_value = 100f, min = 0f, max = 300f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } } }; itemDefinition4.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "FlametalNew", amount = 24, upgradeCost = 24 }, new RecipeIngredient { prefab = "Blackwood", amount = 10, upgradeCost = 10 }, new RecipeIngredient { prefab = "TrophyFader", amount = 1, upgradeCost = 0 }, new RecipeIngredient { prefab = "FaderDrop", amount = 1, upgradeCost = 0 } } }; Loader.AddDefinition(itemDefinition4); } private void LoadFists() { Logger.LogInfo("Loading Fists"); ItemDefinition itemDefinition = new ItemDefinition(); itemDefinition.Name = "Flint knuckles"; itemDefinition.Category = ItemCategory.Fists; itemDefinition.prefab = "VAFist_Flint"; itemDefinition.icon = "flint_fists"; itemDefinition.craftedAt = "piece_workbench"; itemDefinition.craftAmount = 1; itemDefinition.modifableStats = new Dictionary { { ItemStat.block_armor, new ItemStatConfig { default_value = 5f, min = 0f, max = 48f } }, { ItemStat.slash, new ItemStatConfig { default_value = 6f, min = 0f, max = 120f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 4f, min = 0f, max = 50f } }, { ItemStat.blunt, new ItemStatConfig { default_value = 0f, min = 0f, max = 120f } }, { ItemStat.blunt_per_level, new ItemStatConfig { default_value = 0f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 20f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 4f, min = 1f, max = 50f } }, { ItemStat.durability, new ItemStatConfig { default_value = 300f, min = 0f, max = 600f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } } }; itemDefinition.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "Wood", amount = 4, upgradeCost = 0 }, new RecipeIngredient { prefab = "Flint", amount = 4, upgradeCost = 2 }, new RecipeIngredient { prefab = "LeatherScraps", amount = 2, upgradeCost = 2 } } }; Loader.AddDefinition(itemDefinition); ItemDefinition itemDefinition2 = new ItemDefinition(); itemDefinition2.Name = "Bronze knuckles"; itemDefinition2.Category = ItemCategory.Fists; itemDefinition2.prefab = "VAFist_Bronze"; itemDefinition2.icon = "bronze_fists"; itemDefinition2.craftedAt = "forge"; itemDefinition2.craftAmount = 1; itemDefinition2.modifableStats = new Dictionary { { ItemStat.block_armor, new ItemStatConfig { default_value = 5f, min = 0f, max = 48f } }, { ItemStat.slash, new ItemStatConfig { default_value = 20f, min = 0f, max = 120f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 4f, min = 0f, max = 50f } }, { ItemStat.blunt, new ItemStatConfig { default_value = 0f, min = 0f, max = 120f } }, { ItemStat.blunt_per_level, new ItemStatConfig { default_value = 0f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 20f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 6f, min = 1f, max = 50f } }, { ItemStat.durability, new ItemStatConfig { default_value = 300f, min = 0f, max = 600f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } } }; itemDefinition2.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "RoundLog", amount = 4, upgradeCost = 0 }, new RecipeIngredient { prefab = "Bronze", amount = 6, upgradeCost = 3 }, new RecipeIngredient { prefab = "LeatherScraps", amount = 4, upgradeCost = 4 } } }; Loader.AddDefinition(itemDefinition2); ItemDefinition itemDefinition3 = new ItemDefinition(); itemDefinition3.Name = "Iron knuckles"; itemDefinition3.Category = ItemCategory.Fists; itemDefinition3.prefab = "VAFist_Iron"; itemDefinition3.icon = "iron_fists"; itemDefinition3.craftedAt = "forge"; itemDefinition3.craftAmount = 1; itemDefinition3.modifableStats = new Dictionary { { ItemStat.block_armor, new ItemStatConfig { default_value = 5f, min = 0f, max = 48f } }, { ItemStat.slash, new ItemStatConfig { default_value = 35f, min = 0f, max = 120f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 4f, min = 0f, max = 50f } }, { ItemStat.blunt, new ItemStatConfig { default_value = 0f, min = 0f, max = 120f } }, { ItemStat.blunt_per_level, new ItemStatConfig { default_value = 0f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 20f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 8f, min = 1f, max = 50f } }, { ItemStat.durability, new ItemStatConfig { default_value = 300f, min = 0f, max = 600f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } } }; itemDefinition3.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "Wood", amount = 4, upgradeCost = 2 }, new RecipeIngredient { prefab = "Iron", amount = 12, upgradeCost = 6 }, new RecipeIngredient { prefab = "LeatherScraps", amount = 6, upgradeCost = 6 } } }; Loader.AddDefinition(itemDefinition3); ItemDefinition itemDefinition4 = new ItemDefinition(); itemDefinition4.Name = "Goblin king knuckles"; itemDefinition4.Category = ItemCategory.Fists; itemDefinition4.prefab = "VAFist_Yagluth"; itemDefinition4.icon = "yagluth_fists"; itemDefinition4.craftedAt = "forge"; itemDefinition4.craftAmount = 1; itemDefinition4.modifableStats = new Dictionary { { ItemStat.block_armor, new ItemStatConfig { default_value = 5f, min = 0f, max = 48f } }, { ItemStat.slash, new ItemStatConfig { default_value = 80f, min = 0f, max = 120f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 4f, min = 0f, max = 50f } }, { ItemStat.blunt, new ItemStatConfig { default_value = 0f, min = 0f, max = 120f } }, { ItemStat.blunt_per_level, new ItemStatConfig { default_value = 0f, min = 0f, max = 50f } }, { ItemStat.fire, new ItemStatConfig { default_value = 25f, min = 0f, max = 120f } }, { ItemStat.fire_per_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 20f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 12f, min = 1f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 36f, min = 1f, max = 50f } }, { ItemStat.durability, new ItemStatConfig { default_value = 300f, min = 0f, max = 600f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } } }; itemDefinition4.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "BlackMetal", amount = 4, upgradeCost = 2 }, new RecipeIngredient { prefab = "Iron", amount = 6, upgradeCost = 3 }, new RecipeIngredient { prefab = "YagluthDrop", amount = 2, upgradeCost = 0 }, new RecipeIngredient { prefab = "TrophyGoblinKing", amount = 1, upgradeCost = 0 }, new RecipeIngredient { prefab = "Tar", amount = 0, upgradeCost = 3 }, new RecipeIngredient { prefab = "LinenThread", amount = 0, upgradeCost = 2 } } }; Loader.AddDefinition(itemDefinition4); } private void LoadMaces() { Logger.LogInfo("Loading Maces"); ItemDefinition itemDefinition = new ItemDefinition(); itemDefinition.Name = "Elders Fist"; itemDefinition.Category = ItemCategory.Maces; itemDefinition.prefab = "VAElder_mace"; itemDefinition.icon = "elder_mace"; itemDefinition.craftedAt = "forge"; itemDefinition.craftAmount = 1; itemDefinition.modifableStats = new Dictionary { { ItemStat.blunt, new ItemStatConfig { default_value = 35f, min = 0f, max = 90f } }, { ItemStat.blunt_per_level, new ItemStatConfig { default_value = 6f, min = 0f, max = 50f } }, { ItemStat.spirit, new ItemStatConfig { default_value = 20f, min = 0f, max = 120f } }, { ItemStat.spirit_per_level, new ItemStatConfig { default_value = 5f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 80f, min = 0f, max = 120f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 12f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 8f, min = 1f, max = 30f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 16f, min = 1f, max = 50f } }, { ItemStat.durability, new ItemStatConfig { default_value = 200f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } } }; itemDefinition.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "Bronze", amount = 2, upgradeCost = 1 }, new RecipeIngredient { prefab = "Stone", amount = 16, upgradeCost = 8 }, new RecipeIngredient { prefab = "CryptKey", amount = 1, upgradeCost = 0 }, new RecipeIngredient { prefab = "TrophyTheElder", amount = 1, upgradeCost = 0 }, new RecipeIngredient { prefab = "RoundLog", amount = 0, upgradeCost = 6 } } }; Loader.AddDefinition(itemDefinition); ItemDefinition itemDefinition2 = new ItemDefinition(); itemDefinition2.Name = "Flint Mace"; itemDefinition2.Category = ItemCategory.Maces; itemDefinition2.prefab = "VAFlintMace"; itemDefinition2.icon = "flintMace"; itemDefinition2.craftedAt = "piece_workbench"; itemDefinition2.craftAmount = 1; itemDefinition2.modifableStats = new Dictionary { { ItemStat.blunt, new ItemStatConfig { default_value = 16f, min = 0f, max = 90f } }, { ItemStat.blunt_per_level, new ItemStatConfig { default_value = 6f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 30f, min = 0f, max = 120f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 4f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 7f, min = 1f, max = 30f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 14f, min = 1f, max = 50f } }, { ItemStat.durability, new ItemStatConfig { default_value = 200f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } } }; itemDefinition2.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "Wood", amount = 4, upgradeCost = 8 }, new RecipeIngredient { prefab = "Flint", amount = 8, upgradeCost = 8 }, new RecipeIngredient { prefab = "LeatherScraps", amount = 2, upgradeCost = 0 }, new RecipeIngredient { prefab = "BoneFragments", amount = 0, upgradeCost = 5 } } }; Loader.AddDefinition(itemDefinition2); } private void LoadMagic() { Logger.LogInfo("Loading Magic Weapons"); ItemDefinition itemDefinition = new ItemDefinition(); itemDefinition.Name = "Staff of poison"; itemDefinition.Category = ItemCategory.Magics; itemDefinition.prefab = "VAStaff_Poison"; itemDefinition.icon = "poison_staff"; itemDefinition.craftedAt = "piece_magetable"; itemDefinition.craftAmount = 1; itemDefinition.modifableStats = new Dictionary { { ItemStat.block_armor, new ItemStatConfig { default_value = 48f, min = 0f, max = 90f } }, { ItemStat.poison, new ItemStatConfig { default_value = 120f, min = 0f, max = 200f } }, { ItemStat.poison_per_level, new ItemStatConfig { default_value = 6f, min = 0f, max = 50f } }, { ItemStat.blunt, new ItemStatConfig { default_value = 120f, min = 0f, max = 200f } }, { ItemStat.blunt_per_level, new ItemStatConfig { default_value = 0f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 20f, min = 0f, max = 150f } }, { ItemStat.primary_attack_eitr, new ItemStatConfig { default_value = 35f, min = 0f, max = 50f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 0f, min = 0f, max = 50f } }, { ItemStat.durability, new ItemStatConfig { default_value = 200f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } } }; itemDefinition.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "YggdrasilWood", amount = 20, upgradeCost = 10 }, new RecipeIngredient { prefab = "Guck", amount = 4, upgradeCost = 2 }, new RecipeIngredient { prefab = "Eitr", amount = 16, upgradeCost = 8 } } }; Loader.AddDefinition(itemDefinition); ItemDefinition itemDefinition2 = new ItemDefinition(); itemDefinition2.Name = "Staff of Spirit"; itemDefinition2.Category = ItemCategory.Magics; itemDefinition2.prefab = "VAStaff_Spirit"; itemDefinition2.icon = "spirit_staff"; itemDefinition2.craftedAt = "piece_magetable"; itemDefinition2.craftAmount = 1; itemDefinition2.modifableStats = new Dictionary { { ItemStat.block_armor, new ItemStatConfig { default_value = 48f, min = 0f, max = 90f } }, { ItemStat.spirit, new ItemStatConfig { default_value = 90f, min = 0f, max = 200f } }, { ItemStat.spirit_per_level, new ItemStatConfig { default_value = 3f, min = 0f, max = 50f } }, { ItemStat.blunt, new ItemStatConfig { default_value = 0f, min = 0f, max = 200f } }, { ItemStat.blunt_per_level, new ItemStatConfig { default_value = 0f, min = 0f, max = 50f } }, { ItemStat.slash, new ItemStatConfig { default_value = 120f, min = 0f, max = 200f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 3f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 20f, min = 0f, max = 150f } }, { ItemStat.primary_attack_eitr, new ItemStatConfig { default_value = 35f, min = 0f, max = 50f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 0f, min = 0f, max = 50f } }, { ItemStat.durability, new ItemStatConfig { default_value = 200f, min = 0f, max = 400f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } } }; itemDefinition2.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "YggdrasilWood", amount = 20, upgradeCost = 10 }, new RecipeIngredient { prefab = "GreydwarfEye", amount = 8, upgradeCost = 8 }, new RecipeIngredient { prefab = "Eitr", amount = 16, upgradeCost = 8 }, new RecipeIngredient { prefab = "TrophyDvergr", amount = 2, upgradeCost = 0 } } }; Loader.AddDefinition(itemDefinition2); ItemDefinition itemDefinition3 = new ItemDefinition(); itemDefinition3.Name = "Druidic Staff of Poison"; itemDefinition3.Category = ItemCategory.Magics; itemDefinition3.prefab = "VAStaff_Druid_Poison"; itemDefinition3.icon = "poison_staff_druidic"; itemDefinition3.craftedAt = "piece_workbench"; itemDefinition3.craftAmount = 1; itemDefinition3.modifableStats = new Dictionary { { ItemStat.block_armor, new ItemStatConfig { default_value = 24f, min = 0f, max = 48f } }, { ItemStat.poison, new ItemStatConfig { default_value = 50f, min = 0f, max = 120f } }, { ItemStat.poison_per_level, new ItemStatConfig { default_value = 6f, min = 0f, max = 50f } }, { ItemStat.blunt, new ItemStatConfig { default_value = 50f, min = 0f, max = 200f } }, { ItemStat.blunt_per_level, new ItemStatConfig { default_value = 0f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 20f, min = 0f, max = 150f } }, { ItemStat.durability, new ItemStatConfig { default_value = 50f, min = 0f, max = 500f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 10f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 35f, min = 0f, max = 50f } }, { ItemStat.primary_attack_eitr, new ItemStatConfig { default_value = 0f, min = 0f, max = 50f } } }; itemDefinition3.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "ElderBark", amount = 20, upgradeCost = 10 }, new RecipeIngredient { prefab = "Guck", amount = 4, upgradeCost = 2 }, new RecipeIngredient { prefab = "TrophyBlob", amount = 2, upgradeCost = 1 } } }; Loader.AddDefinition(itemDefinition3); ItemDefinition itemDefinition4 = new ItemDefinition(); itemDefinition4.Name = "Druidic Staff of Spirit"; itemDefinition4.Category = ItemCategory.Magics; itemDefinition4.prefab = "VAStaff_Druid_Spirit"; itemDefinition4.icon = "spirit_staff_druid"; itemDefinition4.craftedAt = "piece_workbench"; itemDefinition4.craftAmount = 1; itemDefinition4.modifableStats = new Dictionary { { ItemStat.block_armor, new ItemStatConfig { default_value = 24f, min = 0f, max = 48f } }, { ItemStat.spirit, new ItemStatConfig { default_value = 20f, min = 0f, max = 120f } }, { ItemStat.spirit_per_level, new ItemStatConfig { default_value = 3f, min = 0f, max = 50f } }, { ItemStat.blunt, new ItemStatConfig { default_value = 0f, min = 0f, max = 200f } }, { ItemStat.blunt_per_level, new ItemStatConfig { default_value = 0f, min = 0f, max = 50f } }, { ItemStat.slash, new ItemStatConfig { default_value = 40f, min = 0f, max = 200f } }, { ItemStat.slash_per_level, new ItemStatConfig { default_value = 3f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 20f, min = 0f, max = 150f } }, { ItemStat.durability, new ItemStatConfig { default_value = 50f, min = 0f, max = 500f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 10f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 35f, min = 0f, max = 50f } }, { ItemStat.primary_attack_eitr, new ItemStatConfig { default_value = 0f, min = 0f, max = 50f } } }; itemDefinition4.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "ElderBark", amount = 20, upgradeCost = 10 }, new RecipeIngredient { prefab = "GreydwarfEye", amount = 4, upgradeCost = 2 }, new RecipeIngredient { prefab = "TrophyGreydwarfShaman", amount = 2, upgradeCost = 1 } } }; Loader.AddDefinition(itemDefinition4); ItemDefinition itemDefinition5 = new ItemDefinition(); itemDefinition5.Name = "Druidic Staff of Ice"; itemDefinition5.Category = ItemCategory.Magics; itemDefinition5.prefab = "VAStaff_Druid_Ice"; itemDefinition5.icon = "ice_staff_druidic"; itemDefinition5.craftedAt = "piece_workbench"; itemDefinition5.craftAmount = 1; itemDefinition5.modifableStats = new Dictionary { { ItemStat.block_armor, new ItemStatConfig { default_value = 24f, min = 0f, max = 48f } }, { ItemStat.frost, new ItemStatConfig { default_value = 12f, min = 0f, max = 120f } }, { ItemStat.frost_per_level, new ItemStatConfig { default_value = 2f, min = 0f, max = 50f } }, { ItemStat.blunt, new ItemStatConfig { default_value = 12f, min = 0f, max = 200f } }, { ItemStat.blunt_per_level, new ItemStatConfig { default_value = 0f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 20f, min = 0f, max = 150f } }, { ItemStat.durability, new ItemStatConfig { default_value = 50f, min = 0f, max = 500f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 10f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 5f, min = 0f, max = 50f } }, { ItemStat.primary_attack_eitr, new ItemStatConfig { default_value = 0f, min = 0f, max = 50f } } }; itemDefinition5.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "ElderBark", amount = 20, upgradeCost = 10 }, new RecipeIngredient { prefab = "FreezeGland", amount = 4, upgradeCost = 2 }, new RecipeIngredient { prefab = "TrophyHatchling", amount = 2, upgradeCost = 1 } } }; Loader.AddDefinition(itemDefinition5); ItemDefinition itemDefinition6 = new ItemDefinition(); itemDefinition6.Name = "Druidic Staff of Fire"; itemDefinition6.Category = ItemCategory.Magics; itemDefinition6.prefab = "VAStaff_Druid_Fire"; itemDefinition6.icon = "fire_staff_druidic"; itemDefinition6.craftedAt = "piece_workbench"; itemDefinition6.craftAmount = 1; itemDefinition6.modifableStats = new Dictionary { { ItemStat.block_armor, new ItemStatConfig { default_value = 24f, min = 0f, max = 48f } }, { ItemStat.fire, new ItemStatConfig { default_value = 50f, min = 0f, max = 120f } }, { ItemStat.fire_per_level, new ItemStatConfig { default_value = 6f, min = 0f, max = 50f } }, { ItemStat.blunt, new ItemStatConfig { default_value = 50f, min = 0f, max = 200f } }, { ItemStat.blunt_per_level, new ItemStatConfig { default_value = 0f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 20f, min = 0f, max = 150f } }, { ItemStat.durability, new ItemStatConfig { default_value = 50f, min = 0f, max = 500f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 10f, min = 0f, max = 150f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 35f, min = 0f, max = 50f } }, { ItemStat.primary_attack_eitr, new ItemStatConfig { default_value = 0f, min = 0f, max = 50f } } }; itemDefinition6.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "ElderBark", amount = 20, upgradeCost = 10 }, new RecipeIngredient { prefab = "SurtlingCore", amount = 4, upgradeCost = 2 }, new RecipeIngredient { prefab = "TrophySurtling", amount = 2, upgradeCost = 1 } } }; Loader.AddDefinition(itemDefinition6); ItemDefinition itemDefinition7 = new ItemDefinition(); itemDefinition7.Name = "Soulstealer"; itemDefinition7.Category = ItemCategory.Magics; itemDefinition7.prefab = "VASoulStealer"; itemDefinition7.icon = "soulstealer"; itemDefinition7.craftedAt = "piece_magetable"; itemDefinition7.craftAmount = 1; itemDefinition7.modifableStats = new Dictionary { { ItemStat.pierce, new ItemStatConfig { default_value = 200f, min = 0f, max = 300f } }, { ItemStat.pierce_per_level, new ItemStatConfig { default_value = 3f, min = 0f, max = 50f } }, { ItemStat.spirit, new ItemStatConfig { default_value = 100f, min = 0f, max = 300f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 200f, min = 0f, max = 300f } }, { ItemStat.block_armor, new ItemStatConfig { default_value = 3f, min = 0f, max = 150f } }, { ItemStat.durability, new ItemStatConfig { default_value = 100f, min = 0f, max = 300f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 150f } }, { ItemStat.crossbow_reload_speed, new ItemStatConfig { default_value = 2f, min = 0.01f, max = 3.5f } }, { ItemStat.crossbow_reload_stamina_drain, new ItemStatConfig { default_value = 0f, min = 0f, max = 50f } }, { ItemStat.primary_attack_percent_health_cost, new ItemStatConfig { default_value = 12f, min = 0f, max = 50f } }, { ItemStat.primary_attack_flat_health_cost, new ItemStatConfig { default_value = 10f, min = 0f, max = 120f } }, { ItemStat.primary_attack_health_returned, new ItemStatConfig { default_value = 10f, min = 0f, max = 50f } }, { ItemStat.primary_attack_projectile_count, new ItemStatConfig { default_value = 2f, min = 1f, max = 10f, isInt = true } }, { ItemStat.projectile_velocity, new ItemStatConfig { default_value = 200f, min = 0f, max = 300f } } }; itemDefinition7.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "FlametalNew", amount = 18, upgradeCost = 10 }, new RecipeIngredient { prefab = "Blackwood", amount = 24, upgradeCost = 12 }, new RecipeIngredient { prefab = "GemstoneRed", amount = 2, upgradeCost = 2 }, new RecipeIngredient { prefab = "DvergrNeedle", amount = 1, upgradeCost = 0 }, new RecipeIngredient { prefab = "Bronze", amount = 0, upgradeCost = 6 } } }; Loader.AddDefinition(itemDefinition7); } private void LoadPickaxes() { ItemDefinition itemDefinition = new ItemDefinition(); itemDefinition.Name = "Bone Blood Pickaxe"; itemDefinition.Category = ItemCategory.Pickaxes; itemDefinition.prefab = "VABlood_Bones_pickaxe"; itemDefinition.icon = "blood_bone_pickaxe"; itemDefinition.craftedAt = "forge"; itemDefinition.craftAmount = 1; itemDefinition.reqStationlevel = 1; itemDefinition.modifableStats = new Dictionary { { ItemStat.pierce, new ItemStatConfig { default_value = 26f, min = 0f, max = 200f } }, { ItemStat.pierce_per_level, new ItemStatConfig { default_value = 4f, min = 0f, max = 50f } }, { ItemStat.spirit, new ItemStatConfig { default_value = 6f, min = 0f, max = 200f } }, { ItemStat.spirit_per_level, new ItemStatConfig { default_value = 2f, min = 0f, max = 50f } }, { ItemStat.pickaxe, new ItemStatConfig { default_value = 32f, min = 0f, max = 200f } }, { ItemStat.pickaxe_per_level, new ItemStatConfig { default_value = 6f, min = 0f, max = 50f } }, { ItemStat.attack_force, new ItemStatConfig { default_value = 50f, min = 0f, max = 100f } }, { ItemStat.primary_attack_stamina, new ItemStatConfig { default_value = 6f, min = 0f, max = 50f } }, { ItemStat.primary_attack_flat_health_cost, new ItemStatConfig { default_value = 4f, min = 0f, max = 50f } }, { ItemStat.primary_attack_percent_health_cost, new ItemStatConfig { default_value = 0f, min = 0f, max = 50f } }, { ItemStat.secondary_attack_stamina, new ItemStatConfig { default_value = 4f, min = 0f, max = 50f } }, { ItemStat.secondary_attack_flat_health_cost, new ItemStatConfig { default_value = 6f, min = 0f, max = 50f } }, { ItemStat.secondary_attack_percent_health_cost, new ItemStatConfig { default_value = 0f, min = 0f, max = 100f } }, { ItemStat.tool_level, new ItemStatConfig { default_value = 1f, min = 0f, max = 5f, isInt = true } }, { ItemStat.durability, new ItemStatConfig { default_value = 200f, min = 0f, max = 800f } }, { ItemStat.durability_per_level, new ItemStatConfig { default_value = 50f, min = 0f, max = 200f } } }; itemDefinition.recipe = new RecipeDefinition { recipeItems = new List { new RecipeIngredient { prefab = "RoundLog", amount = 12, upgradeCost = 8 }, new RecipeIngredient { prefab = "BoneFragments", amount = 20, upgradeCost = 14 }, new RecipeIngredient { prefab = "Bronze", amount = 4, upgradeCost = 2 }, new RecipeIngredient { prefab = "TrophySkeleton", amount = 2, upgradeCost = 0 } } }; Loader.AddDefinition(itemDefinition); } private void LoadNonCraftables() { NonCraftablePrefab("Assets/Custom/Weapons/Arrows/VAbow_projectile_ancient.prefab"); NonCraftablePrefab("Assets/Custom/Weapons/Arrows/VAbow_projectile_bone.prefab"); NonCraftablePrefab("Assets/Custom/Weapons/Bows/projectiles/blood_projectile.prefab"); NonCraftablePrefab("Assets/Custom/Weapons/Arrows/VAbow_projectile_boltBronze.prefab"); NonCraftablePrefab("Assets/Custom/Weapons/Arrows/VAbow_projectile_boltFrost.prefab"); NonCraftablePrefab("Assets/Custom/Weapons/Arrows/VAbow_projectile_boltObsidian.prefab"); NonCraftablePrefab("Assets/Custom/Weapons/Arrows/VAbow_projectile_boltPoison.prefab"); NonCraftablePrefab("Assets/Custom/Weapons/Arrows/VAbow_projectile_boltSurtling.prefab"); NonCraftablePrefab("Assets/Custom/Weapons/Arrows/VAbow_projectile_greenmetal.prefab"); NonCraftablePrefab("Assets/Custom/Weapons/Arrows/VAbow_projectile_surtlingfire.prefab"); NonCraftablePrefab("Assets/Custom/Weapons/Arrows/VAbow_projectile_boltWood.prefab"); NonCraftablePrefab("Assets/Custom/Weapons/Arrows/VAbow_projectile_boltCorewood.prefab"); NonCraftablePrefab("Assets/Custom/Weapons/Arrows/VAbow_projectile_chitin.prefab"); NonCraftablePrefab("Assets/Custom/Weapons/Arrows/VAbow_projectile_needle.prefab"); NonCraftablePrefab("Assets/Custom/Weapons/Spears/VAspearblackmetal_projectile.prefab"); NonCraftablePrefab("Assets/Custom/Weapons/Spears/VAspearmoder_projectile.prefab"); NonCraftablePrefab("Assets/Custom/Weapons/Magics/projectiles/staff_poison_projectile.prefab"); NonCraftablePrefab("Assets/Custom/Weapons/Magics/projectiles/staff_spirit_projectile.prefab"); NonCraftablePrefab("Assets/Custom/Weapons/Magics/projectiles/vfx_spirit_explosion.prefab"); NonCraftableItem("Assets/Custom/statuses/VABloodBuff.asset"); NonCraftableItem("Assets/Custom/statuses/VAModerShield.asset"); NonCraftableItem("Assets/Custom/statuses/VAQueen_buff.asset"); NonCraftableItem("Assets/Custom/statuses/VAVineshield_resistance.asset"); } private static void NonCraftableItem(string full_path) { //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Expected O, but got Unknown CustomStatusEffect val = new CustomStatusEffect((StatusEffect)(object)ValheimArmory.EmbeddedResourceBundle.LoadAsset(full_path ?? ""), false); ItemManager.Instance.AddStatusEffect(val); } public static void NonCraftablePrefab(string full_path) { //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Expected O, but got Unknown CustomPrefab val = new CustomPrefab(ValheimArmory.EmbeddedResourceBundle.LoadAsset(full_path ?? ""), true); PrefabManager.Instance.AddPrefab(val); } } [BepInPlugin("MidnightsFX.ValheimArmory", "ValheimArmory", "1.27.0")] [BepInDependency(/*Could not decode attribute arguments.*/)] [NetworkCompatibility(/*Could not decode attribute arguments.*/)] internal class ValheimArmory : BaseUnityPlugin { public const string PluginGUID = "MidnightsFX.ValheimArmory"; public const string PluginName = "ValheimArmory"; public const string PluginVersion = "1.27.0"; internal static AssetBundle EmbeddedResourceBundle; private CustomLocalization Localization; public static ManualLogSource Log; public void Awake() { //IL_00d6: Unknown result type (might be due to invalid IL or missing references) new VAConfig(((BaseUnityPlugin)this).Config); Log = ((BaseUnityPlugin)this).Logger; LoadAssets(); new ValheimArmoryItems(); PrefabManager.OnVanillaPrefabsAvailable += WeaponModifier.SetupEffects; PrefabManager.OnVanillaPrefabsAvailable += WeaponModifier.ModifyVanillaHammersToWarhammers; PrefabManager.OnVanillaPrefabsAvailable += WeaponModifier.ModifyVanillaKnife; MinimapManager.OnVanillaMapDataLoaded += WeaponModifier.ToggleVanillaFlintAxe; MinimapManager.OnVanillaMapDataLoaded += WeaponModifier.ToggleVanillaFlintSpear; PrefabManager.OnPrefabsRegistered += StatusModifiers.SyncStatusEffectsToConfig; VAConfig.VanillaHammersHavePrimaryAttack.SettingChanged += WeaponModifier.OnConfigChangeModifyHammers; VAConfig.ModHammersHavePrimaryAttack.SettingChanged += WeaponModifier.OnConfigChangeModifyModHammers; VAConfig.VanillaAbyssalKnifeBluntDamageConvert.SettingChanged += WeaponModifier.OnConfigChangeModifyVanillaKnife; Assembly executingAssembly = Assembly.GetExecutingAssembly(); new Harmony("MidnightsFX.ValheimArmory").PatchAll(executingAssembly); VAConfig.SaveOnSet(enabled: true); VAConfig.SetupMainFileWatcher(); AddLocalizations(); } private void AddLocalizations() { Localization = LocalizationManager.Instance.GetLocalization(); Directory.CreateDirectory(Path.Combine(Paths.ConfigPath, "ValheimArmory", "localizations")); string[] manifestResourceNames = typeof(ValheimArmory).Assembly.GetManifestResourceNames(); foreach (string text in manifestResourceNames) { if (!text.Contains("localizations")) { continue; } string text2 = Regex.Replace(ReadEmbeddedResourceFile(text), "\\/\\/.*", ""); Dictionary internal_localization = SimpleJson.DeserializeObject>(text2); string[] array = text.Split('.'); string path = Path.Combine(Paths.ConfigPath, "ValheimArmory", "localizations", array[2] + ".json"); if (File.Exists(path)) { string text3 = File.ReadAllText(path); try { Dictionary cached_localization = SimpleJson.DeserializeObject>(text3); cached_localization = UpdateLocalizationWithMissingKeys(internal_localization, cached_localization); File.WriteAllText(path, SimpleJson.SerializeObject((object)cached_localization)); string text4 = File.ReadAllText(path); Localization.AddJsonFile(array[2], text4); } catch { ((BaseUnityPlugin)this).Logger.LogWarning((object)"Failed to update on-disk localization, it will be overwritten."); File.WriteAllText(path, text2); Localization.AddJsonFile(array[2], text2); } } else { File.WriteAllText(path, text2); Localization.AddJsonFile(array[2], text2); } ((BaseUnityPlugin)this).Logger.LogDebug((object)("Added localization: '" + array[2] + "'")); } } private Dictionary UpdateLocalizationWithMissingKeys(Dictionary internal_localization, Dictionary cached_localization) { if (internal_localization.Keys != cached_localization.Keys) { List list = cached_localization.Keys.ToList(); foreach (KeyValuePair item in internal_localization) { list.Remove(item.Key); if (!cached_localization.ContainsKey(item.Key)) { ((BaseUnityPlugin)this).Logger.LogDebug((object)("Adding missing localization key " + item.Key)); cached_localization.Add(item.Key, item.Value); } } if (list.Count > 0) { ((BaseUnityPlugin)this).Logger.LogDebug((object)("Removing extra keys " + string.Join(",", list) + ".")); foreach (string item2 in list) { cached_localization.Remove(item2); } } } return cached_localization; } private void LoadAssets() { if (VAConfig.EnableDebugMode.Value) { ((BaseUnityPlugin)this).Logger.LogInfo((object)("Embedded resources: " + string.Join(",", typeof(ValheimArmory).Assembly.GetManifestResourceNames()))); } EmbeddedResourceBundle = AssetUtils.LoadAssetBundleFromResources("ValheimArmory.AssetsEmbedded.vabundle", typeof(ValheimArmory).Assembly); if (VAConfig.EnableDebugMode.Value) { ((BaseUnityPlugin)this).Logger.LogInfo((object)("Asset Names: " + string.Join(",", EmbeddedResourceBundle.GetAllAssetNames()))); } } private void UnloadAssets() { EmbeddedResourceBundle.Unload(false); } private string ReadEmbeddedResourceFile(string filename) { using Stream stream = typeof(ValheimArmory).Assembly.GetManifestResourceStream(filename); using StreamReader streamReader = new StreamReader(stream); return streamReader.ReadToEnd(); } } internal class VAConfig { public static ConfigFile cfg; public static ConfigEntry EnableDebugMode; public static ConfigEntry HybridWeaponBloodMagicSkillIncrease; public static ConfigEntry VanillaHammersHavePrimaryAttack; public static ConfigEntry ModHammersHavePrimaryAttack; public static ConfigEntry StagbreakerPrimaryAttackStamina; public static ConfigEntry IronSledgePrimaryAttackStamina; public static ConfigEntry DemolisherPrimaryAttackStamina; public static ConfigEntry VanillaAbyssalKnifeBluntDamageConvert; public static ConfigEntry EnableVanillaSpear; public static ConfigEntry EnableVanillaFlintAxe; public static ConfigEntry AbyssalKnifeBlunt; public static ConfigEntry AbyssalKnifeBluntPerLevel; public static ConfigEntry BloodHungerRegen; public static ConfigEntry QueenHealthRegen; public static ConfigEntry QueenEitrRegen; public static ConfigEntry InMemoryModificationsPerTick; public VAConfig(ConfigFile Config) { cfg = Config; cfg.SaveOnConfigSet = false; CreateConfigValues(Config); Logger.toggleDebug(); } public static void SaveOnSet(bool enabled) { cfg.SaveOnConfigSet = enabled; cfg.Save(); } private void CreateConfigValues(ConfigFile Config) { //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Expected O, but got Unknown //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Expected O, but got Unknown EnableDebugMode = Config.Bind("Client config", "EnableDebugMode", false, new ConfigDescription("Enables Debug logging for Valheim Armory.", (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes { IsAdvanced = true } })); EnableDebugMode.SettingChanged += Logger.enableDebugLogging; HybridWeaponBloodMagicSkillIncrease = BindServerConfig("Blood Magic Hybrid Weapons", "HybridWeaponBloodMagicSkillIncrease", 1f, "How much experiance should one usage of a blood magic hybrid weapon provide?", advanced: true, 0f, 4f); VanillaHammersHavePrimaryAttack = BindServerConfig("Vanilla Weapons", "VanillaHammersHavePrimaryAttack", value: true, "Enables a primary swing for vanilla sledges. Moves the slam to a secondary attack."); ModHammersHavePrimaryAttack = BindServerConfig("Vanilla Weapons", "ModHammersHavePrimaryAttack", value: true, "Enables a primary swing for mod weapons, disabling makes mod added hammers like vanilla sledges."); StagbreakerPrimaryAttackStamina = BindServerConfig("Vanilla Weapons", "StagbreakerPrimaryAttackStamina", 6f, "Stamina cost of the basic attack when enabled for the stagbreaker.", advanced: true, 1f, 30f); StagbreakerPrimaryAttackStamina.SettingChanged += WeaponModifier.OnConfigStagbreakerValueChanged; IronSledgePrimaryAttackStamina = BindServerConfig("Vanilla Weapons", "IronSledgePrimaryAttackStamina", 10f, "Stamina cost of the basic attack when enabled for the iron sledge.", advanced: true, 1f, 30f); IronSledgePrimaryAttackStamina.SettingChanged += WeaponModifier.OnConfigIronSledgeValueChanged; DemolisherPrimaryAttackStamina = BindServerConfig("Vanilla Weapons", "DemolisherPrimaryAttackStamina", 14f, "Stamina cost of the basic attack when enabled for the demolisher.", advanced: true, 1f, 30f); DemolisherPrimaryAttackStamina.SettingChanged += WeaponModifier.OnConfigDemolisherValueChanged; VanillaAbyssalKnifeBluntDamageConvert = BindServerConfig("Vanilla Weapons", "VanillaAbyssalKnifeBluntDamageConvert", value: true, "Removes slash damage from the abyssal knife and adds blunt damage instead."); AbyssalKnifeBlunt = BindServerConfig("Vanilla Weapons", "AbyssalKnifeBlunt", 20f, "Blunt damage for the abyssal knife", advanced: true, 0f, 40f); AbyssalKnifeBluntPerLevel = BindServerConfig("Vanilla Weapons", "AbyssalKnifeBluntPerLevel", 1f, "Blunt damage per level for the abyssal knife", advanced: true, 0f, 10f); AbyssalKnifeBlunt.SettingChanged += WeaponModifier.OnConfigAbyssalKnifeValueChanged; AbyssalKnifeBluntPerLevel.SettingChanged += WeaponModifier.OnConfigAbyssalKnifeValueChanged; EnableVanillaSpear = BindServerConfig("Vanilla Weapons", "VanillaFlintSpearCraftable", value: false, "Disables or enables crafting of the vanilla spear, to be used in conjuction with the VA flint spear."); EnableVanillaSpear.SettingChanged += WeaponModifier.OnConfigChangeModifyVanillaFlintSpear; EnableVanillaFlintAxe = BindServerConfig("Vanilla Weapons", "VanillaFlintAxeCraftable", value: false, "Disables or enables crafting of the vanilla flint axe, to be used in conuction with the VA flint axe."); EnableVanillaFlintAxe.SettingChanged += WeaponModifier.OnConfigChangeModifyVanillaFlintAxe; BloodHungerRegen = BindServerConfig("Status Effects", "BloodHungerRegen", 2f, "How strong the hp regen effect for blood weapons is (2 is 200% regen).", advanced: true, 0f, 5f); BloodHungerRegen.SettingChanged += StatusModifiers.OnConfigBloodChanged; QueenHealthRegen = BindServerConfig("Status Effects", "QueenHealthRegen", 1.3f, "How strong the hp regen effect for the queen is (1 is 100% additional regen).", advanced: true, 0f, 5f); QueenHealthRegen.SettingChanged += StatusModifiers.OnConfigQueenHealthRegenChanged; QueenEitrRegen = BindServerConfig("Status Effects", "QueenEitrRegen", 2.5f, "How strong the eitr regen effect for the queen is (2 is 200% additional regen).", advanced: true, 0f, 5f); QueenEitrRegen.SettingChanged += StatusModifiers.OnConfigQueenHealthRegenChanged; InMemoryModificationsPerTick = BindServerConfig("General", "InMemoryModificationsPerTick", 10, "How many modifications should be processed per tick.", advanced: true, 1, 100); } internal static void SetupMainFileWatcher() { FileSystemWatcher fileSystemWatcher = new FileSystemWatcher(); fileSystemWatcher.NotifyFilter = NotifyFilters.LastWrite; fileSystemWatcher.Path = Path.GetDirectoryName(cfg.ConfigFilePath); fileSystemWatcher.Filter = "MidnightsFX.ValheimArmory.cfg"; fileSystemWatcher.Changed += OnConfigFileChanged; fileSystemWatcher.SynchronizingObject = ThreadingHelper.SynchronizingObject; fileSystemWatcher.EnableRaisingEvents = true; } private static void OnConfigFileChanged(object sender, FileSystemEventArgs e) { if (ZNet.instance.IsServer()) { Logger.LogInfo("Configuration file has been changed, reloading settings."); cfg.Reload(); } } public static ConfigEntry BindServerConfig(string catagory, string key, bool value, string description, bool advanced = false) { //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Expected O, but got Unknown //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Expected O, but got Unknown return cfg.Bind(catagory, key, value, new ConfigDescription(description, (AcceptableValueBase)null, new object[1] { (object)new ConfigurationManagerAttributes { IsAdminOnly = true, IsAdvanced = advanced } })); } public static ConfigEntry BindServerConfig(string catagory, string key, int value, string description, bool advanced = false, int valmin = 0, int valmax = 150) { //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Expected O, but got Unknown //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Expected O, but got Unknown return cfg.Bind(catagory, key, value, new ConfigDescription(description, (AcceptableValueBase)(object)new AcceptableValueRange(valmin, valmax), new object[1] { (object)new ConfigurationManagerAttributes { IsAdminOnly = true, IsAdvanced = advanced } })); } public static ConfigEntry BindServerConfig(string catagory, string key, float value, string description, bool advanced = false, float valmin = 0f, float valmax = 150f) { //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Expected O, but got Unknown //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Expected O, but got Unknown return cfg.Bind(catagory, key, value, new ConfigDescription(description, (AcceptableValueBase)(object)new AcceptableValueRange(valmin, valmax), new object[1] { (object)new ConfigurationManagerAttributes { IsAdminOnly = true, IsAdvanced = advanced } })); } public static ConfigEntry BindServerConfig(string catagory, string key, string value, string description, bool advanced = false, AcceptableValueList allowed_values = null) { //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Expected O, but got Unknown //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Expected O, but got Unknown return cfg.Bind(catagory, key, value, new ConfigDescription(description, (AcceptableValueBase)(object)allowed_values, new object[1] { (object)new ConfigurationManagerAttributes { IsAdminOnly = true, IsAdvanced = advanced } })); } } } namespace ValheimArmory.patches { public static class HybridBloodWeapon { [HarmonyPatch(typeof(Skills), "RaiseSkill")] public static class BloodHybridWeaponsRaiseSkills { private static List HybridWeapons = new List { "VABlood_bone_bow", "VABlood_Bones_pickaxe", "VAHeavy_Blood_Bone_Bow" }; private static string SoulStealer = "VASoulStealer"; public static void Postfix(SkillType skillType, float factor) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0002: Invalid comparison between Unknown and I4 //IL_0004: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Invalid comparison between Unknown and I4 if (((int)skillType != 8 && (int)skillType != 12) || (Object)(object)Player.m_localPlayer == (Object)null) { return; } ItemData currentWeapon = ((Humanoid)Player.m_localPlayer).GetCurrentWeapon(); if (currentWeapon != null && !((Object)(object)currentWeapon.m_dropPrefab == (Object)null)) { string name = ((Object)((Humanoid)Player.m_localPlayer).GetCurrentWeapon().m_dropPrefab).name; if (HybridWeapons.Contains(name)) { ((Character)Player.m_localPlayer).RaiseSkill((SkillType)10, VAConfig.HybridWeaponBloodMagicSkillIncrease.Value); } if (SoulStealer == name) { ((Character)Player.m_localPlayer).RaiseSkill((SkillType)14, VAConfig.HybridWeaponBloodMagicSkillIncrease.Value); } } } } } } namespace ValheimArmory.common { internal enum ItemStat { slash, slash_per_level, blunt, blunt_per_level, pierce, pierce_per_level, pickaxe, pickaxe_per_level, chop, chop_per_level, attack_force, fire, fire_per_level, lightning, lightning_per_level, frost, frost_per_level, poison, poison_per_level, spirit, spirit_per_level, block_armor, block_armor_per_level, parry, block_force, block_force_per_level, primary_attack_stamina, primary_attack_eitr, primary_attack_flat_health_cost, primary_attack_percent_health_cost, primary_attack_health_returned, primary_attack_damage_bonus_per_missing_hp, primary_attack_projectile_count, primary_attack_force_multiply, secondary_attack_stamina, secondary_attack_eitr, secondary_attack_force_multiply, secondary_attack_flat_health_cost, secondary_attack_percent_health_cost, movement_speed, bow_draw_speed, crossbow_reload_speed, crossbow_reload_stamina_drain, draw_stamina_drain, projectile_velocity, projectile_accuracy_max, durability, durability_per_level, max_item_level, amount, tool_level } internal enum ItemCategory { Arrows, Atgeirs, Axes, Hammers, Shields, Swords, Bows, Spears, Knives, Maces, Fists, Pickaxes, Magics } internal class ItemDefinition { public string Name { get; set; } public string DisplayName { get; set; } public ItemCategory Category { get; set; } public string prefab { get; set; } public string icon { get; set; } public string craftedAt { get; set; } public ConfigEntry craftedAt_cfg { get; set; } public bool craftable { get; set; } = true; public ConfigEntry craftable_cfg { get; set; } public int reqStationlevel { get; set; } public ConfigEntry stationlvl_cfg { get; set; } public int craftAmount { get; set; } public ConfigEntry craftAmount_cfg { get; set; } public Dictionary modifableStats { get; set; } public Dictionary damageMods { get; set; } public RecipeDefinition recipe { get; set; } } internal class HitCustomDamageMod { public bool configurable { get; set; } = true; public DamageModifier damageModifier { get; set; } public ConfigEntry dmgModcfg { get; set; } } internal class ItemStatConfig { public bool configurable { get; set; } = true; public bool isInt { get; set; } public float default_value { get; set; } public ConfigEntry cfg { get; set; } public ConfigEntry cfgInt { get; set; } public float min { get; set; } public float max { get; set; } = 400f; } internal class RecipeDefinition { public ConfigEntry recipeConfig { get; set; } public List recipeItems { get; set; } public List recipeReqs { get; set; } public Recipe resolvedRecipe { get; set; } } internal class RecipeIngredient { public string prefab { get; set; } public int amount { get; set; } public int upgradeCost { get; set; } } internal class JotunBatchLoader { internal static List resourceDefinitions = new List(); internal static bool runningQueuedChanges = false; internal static AssetBundle Assets; internal static Dictionary AddedItems = new Dictionary(); internal static List ArcheryAmmoToAdd = new List(); internal static readonly AcceptableValueList allowedModifiers; public bool BatchSetup(AssetBundle assetBundle, bool reverse_order = true) { Assets = assetBundle; if (reverse_order) { resourceDefinitions.Reverse(); } WireConfigDefs(); bool flag = false; if ((Object)(object)ZNet.instance != (Object)null && ZNetExtension.IsServerInstance(ZNet.instance)) { flag = true; } if (!flag) { BatchAddItems(); SetupOnChange(); ItemManager.OnItemsRegistered += AddAmmoItemsToArcheryTarget; } VAConfig.cfg.Save(); VAConfig.SaveOnSet(enabled: true); return true; } public bool AddDefinition(ItemDefinition itemdef) { resourceDefinitions.Add(itemdef); return true; } private static bool WireConfigDefs() { //IL_035a: Unknown result type (might be due to invalid IL or missing references) //IL_0370: Unknown result type (might be due to invalid IL or missing references) //IL_0375: Unknown result type (might be due to invalid IL or missing references) //IL_038b: Unknown result type (might be due to invalid IL or missing references) foreach (ItemDefinition resourceDefinition in resourceDefinitions) { resourceDefinition.DisplayName = string.Join("", resourceDefinition.Name.Split((string[]?)null, StringSplitOptions.RemoveEmptyEntries)); AddedItems.Add(resourceDefinition.DisplayName, resourceDefinition.prefab); resourceDefinition.craftable_cfg = VAConfig.BindServerConfig($"{resourceDefinition.Category} - {resourceDefinition.Name}", resourceDefinition.DisplayName + "-craftable", resourceDefinition.craftable, "Enable/Disable the crafting recipe for " + resourceDefinition.Name + "."); resourceDefinition.stationlvl_cfg = VAConfig.BindServerConfig($"{resourceDefinition.Category} - {resourceDefinition.Name}", resourceDefinition.DisplayName + "-stationRequiredLevel", resourceDefinition.reqStationlevel, "Sets the required minimum crafting station level to craft " + resourceDefinition.Name, advanced: true, 1, 4); resourceDefinition.craftAmount_cfg = VAConfig.BindServerConfig($"{resourceDefinition.Category} - {resourceDefinition.Name}", resourceDefinition.DisplayName + "-craftAmount", resourceDefinition.craftAmount, "Sets the amount of " + resourceDefinition.Name + " crafted per recipe.", advanced: true, 1, 50); resourceDefinition.craftedAt_cfg = VAConfig.BindServerConfig($"{resourceDefinition.Category} - {resourceDefinition.Name}", resourceDefinition.DisplayName + "-craftedAt", resourceDefinition.craftedAt, "Sets the crafting station for " + resourceDefinition.Name + "."); foreach (KeyValuePair modifableStat in resourceDefinition.modifableStats) { if (modifableStat.Value.configurable) { if (modifableStat.Value.isInt) { modifableStat.Value.cfgInt = VAConfig.BindServerConfig($"{resourceDefinition.Category} - {resourceDefinition.Name}", $"{resourceDefinition.DisplayName}-{modifableStat.Key}", (int)modifableStat.Value.default_value, $"Value for {modifableStat.Key} on {resourceDefinition.Name}", advanced: true, (int)modifableStat.Value.min, (int)modifableStat.Value.max); } else { modifableStat.Value.cfg = VAConfig.BindServerConfig($"{resourceDefinition.Category} - {resourceDefinition.Name}", $"{resourceDefinition.DisplayName}-{modifableStat.Key}", modifableStat.Value.default_value, $"Value for {modifableStat.Key} on {resourceDefinition.Name}", advanced: true, modifableStat.Value.min, modifableStat.Value.max); } } } if (resourceDefinition.damageMods != null) { foreach (KeyValuePair damageMod in resourceDefinition.damageMods) { HitCustomDamageMod value = damageMod.Value; string catagory = $"{resourceDefinition.Category} - {resourceDefinition.Name}"; string key = $"{resourceDefinition.DisplayName}-{damageMod.Key}-DamageModifier"; DamageModifier damageModifier = damageMod.Value.damageModifier; value.dmgModcfg = VAConfig.BindServerConfig(catagory, key, ((object)(DamageModifier)(ref damageModifier)).ToString(), $"Damage modifier for {damageMod.Key} on {resourceDefinition.Name}", advanced: true, allowedModifiers); } } resourceDefinition.recipe.recipeConfig = VAConfig.BindServerConfig($"{resourceDefinition.Category} - {resourceDefinition.Name}", resourceDefinition.DisplayName + "-recipe", BuildStringRecipeFromItemDef(resourceDefinition), "Recipe for " + resourceDefinition.Name + ". Should be in the format of Prefab,Amount,AmountPerLevel|Prefab,Amount,AmountPerLevel eg: Wood,12,2|Stone,2,0"); if (!ValidateRecipeConfig(resourceDefinition)) { BuildRecipeReqsFromDefault(resourceDefinition); } } return true; } private bool SetupOnChange() { foreach (ItemDefinition resourceDefinition in resourceDefinitions) { ItemDefinition itemdef = resourceDefinition; itemdef.craftable_cfg.SettingChanged += delegate { EnableDisableItemInDB(itemdef, itemdef.craftable_cfg.Value); }; itemdef.stationlvl_cfg.SettingChanged += delegate { ModifyItemRecipeLevel(itemdef, itemdef.stationlvl_cfg.Value); }; itemdef.craftedAt_cfg.SettingChanged += delegate { ModifyItemRecipeCraftedAt(itemdef, itemdef.craftedAt_cfg.Value); }; foreach (KeyValuePair modifableStat in itemdef.modifableStats) { KeyValuePair stat = modifableStat; if (stat.Value.configurable) { if (stat.Value.isInt) { stat.Value.cfgInt.SettingChanged += UpdateFromConfig; } else { stat.Value.cfg.SettingChanged += UpdateFromConfig; } } void UpdateFromConfig(object sender, EventArgs args) { if (((Behaviour)ZNet.instance).enabled) { if (stat.Value.isInt) { stat.Value.default_value = stat.Value.cfgInt.Value; } else { stat.Value.default_value = stat.Value.cfg.Value; } UpdateItemInPlayerInventory(itemdef.prefab, delegate(ItemData item) { ItemDataConfigModifier(stat.Key, stat.Value.default_value, item); }); UpdateItemInWorldSynchronize(from obj in Resources.FindObjectsOfTypeAll() where ((Object)obj).name.StartsWith(itemdef.prefab) select obj, start_sleep: true, delegate(ItemData item) { ItemDataConfigModifier(stat.Key, stat.Value.default_value, item); }); } } } itemdef.recipe.recipeConfig.SettingChanged += delegate { if (ValidateRecipeConfig(itemdef)) { ModifyItemRecipeInODB(itemdef); } }; if (itemdef.damageMods == null) { continue; } foreach (KeyValuePair dmgmod in itemdef.damageMods) { dmgmod.Value.dmgModcfg.SettingChanged += delegate { //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) if (((Behaviour)ZNet.instance).enabled) { DamageModifier modifier = (DamageModifier)Enum.Parse(typeof(DamageModifier), dmgmod.Value.dmgModcfg.Value); UpdateItemInPlayerInventory(itemdef.prefab, delegate(ItemData item) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) SetItemDamageModifier(modifier, dmgmod.Key, item); }); UpdateItemInWorldSynchronize(from obj in Resources.FindObjectsOfTypeAll() where ((Object)obj).name.StartsWith(itemdef.prefab) select obj, start_sleep: false, delegate(ItemData item) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) SetItemDamageModifier(modifier, dmgmod.Key, item); }); } }; } } return true; } private static bool BatchAddItems() { //IL_01b5: Unknown result type (might be due to invalid IL or missing references) //IL_01bc: Expected O, but got Unknown //IL_0242: Unknown result type (might be due to invalid IL or missing references) //IL_024c: Expected O, but got Unknown //IL_0184: Unknown result type (might be due to invalid IL or missing references) //IL_018b: Unknown result type (might be due to invalid IL or missing references) foreach (ItemDefinition resourceDefinition in resourceDefinitions) { GameObject val = Assets.LoadAsset($"Assets/Custom/Weapons/{resourceDefinition.Category}/{resourceDefinition.prefab}.prefab"); Sprite val2 = Assets.LoadAsset("Assets/Custom/Icons/" + resourceDefinition.icon + ".png"); ItemDrop component = val.GetComponent(); foreach (KeyValuePair modifableStat in resourceDefinition.modifableStats) { if (!modifableStat.Value.configurable) { ItemDataConfigModifier(modifableStat.Key, modifableStat.Value.default_value, component.m_itemData); } else if (modifableStat.Value.isInt) { ItemDataConfigModifier(modifableStat.Key, modifableStat.Value.cfgInt.Value, component.m_itemData); } else { ItemDataConfigModifier(modifableStat.Key, modifableStat.Value.cfg.Value, component.m_itemData); } } if (resourceDefinition.damageMods != null) { foreach (KeyValuePair damageMod in resourceDefinition.damageMods) { if (damageMod.Value.configurable && damageMod.Value.dmgModcfg != null) { SetItemDamageModifier((DamageModifier)Enum.Parse(typeof(DamageModifier), damageMod.Value.dmgModcfg.Value), damageMod.Key, component.m_itemData); } } } ItemConfig val3 = new ItemConfig(); val3.Amount = resourceDefinition.craftAmount_cfg.Value; val3.CraftingStation = resourceDefinition.craftedAt_cfg.Value ?? ""; val3.MinStationLevel = resourceDefinition.stationlvl_cfg.Value; val3.Enabled = resourceDefinition.craftable_cfg.Value; val3.Icons = (Sprite[])(object)new Sprite[1] { val2 }; val3.Requirements = resourceDefinition.recipe.recipeReqs.ToArray(); ItemConfig val4 = val3; ItemManager.Instance.AddItem(new CustomItem(val, true, val4)); if (resourceDefinition.Category == ItemCategory.Arrows) { ArcheryAmmoToAdd.Add(resourceDefinition.prefab); } } return true; } private static void ItemDataConfigModifier(ItemStat target_attribute, float updatedValue, ItemData itemData) { if (itemData != null) { switch (target_attribute) { case ItemStat.slash: itemData.m_shared.m_damages.m_slash = updatedValue; break; case ItemStat.slash_per_level: itemData.m_shared.m_damagesPerLevel.m_slash = updatedValue; break; case ItemStat.blunt: itemData.m_shared.m_damages.m_blunt = updatedValue; break; case ItemStat.blunt_per_level: itemData.m_shared.m_damagesPerLevel.m_blunt = updatedValue; break; case ItemStat.pierce: itemData.m_shared.m_damages.m_pierce = updatedValue; break; case ItemStat.pierce_per_level: itemData.m_shared.m_damagesPerLevel.m_pierce = updatedValue; break; case ItemStat.pickaxe: itemData.m_shared.m_damages.m_pickaxe = updatedValue; break; case ItemStat.pickaxe_per_level: itemData.m_shared.m_damagesPerLevel.m_pickaxe = updatedValue; break; case ItemStat.chop: itemData.m_shared.m_damages.m_chop = updatedValue; break; case ItemStat.chop_per_level: itemData.m_shared.m_damagesPerLevel.m_chop = updatedValue; break; case ItemStat.attack_force: itemData.m_shared.m_attackForce = updatedValue; break; case ItemStat.secondary_attack_force_multiply: itemData.m_shared.m_secondaryAttack.m_forceMultiplier = updatedValue; break; case ItemStat.primary_attack_force_multiply: itemData.m_shared.m_attack.m_forceMultiplier = updatedValue; break; case ItemStat.fire: itemData.m_shared.m_damages.m_fire = updatedValue; break; case ItemStat.fire_per_level: itemData.m_shared.m_damagesPerLevel.m_fire = updatedValue; break; case ItemStat.lightning: itemData.m_shared.m_damages.m_lightning = updatedValue; break; case ItemStat.lightning_per_level: itemData.m_shared.m_damagesPerLevel.m_lightning = updatedValue; break; case ItemStat.frost: itemData.m_shared.m_damages.m_frost = updatedValue; break; case ItemStat.frost_per_level: itemData.m_shared.m_damagesPerLevel.m_frost = updatedValue; break; case ItemStat.poison: itemData.m_shared.m_damages.m_poison = updatedValue; break; case ItemStat.poison_per_level: itemData.m_shared.m_damagesPerLevel.m_poison = updatedValue; break; case ItemStat.spirit: itemData.m_shared.m_damages.m_spirit = updatedValue; break; case ItemStat.spirit_per_level: itemData.m_shared.m_damagesPerLevel.m_spirit = updatedValue; break; case ItemStat.block_armor: itemData.m_shared.m_blockPower = updatedValue; break; case ItemStat.block_armor_per_level: itemData.m_shared.m_blockPowerPerLevel = updatedValue; break; case ItemStat.parry: itemData.m_shared.m_timedBlockBonus = updatedValue; break; case ItemStat.block_force: itemData.m_shared.m_deflectionForce = updatedValue; break; case ItemStat.block_force_per_level: itemData.m_shared.m_deflectionForcePerLevel = updatedValue; break; case ItemStat.primary_attack_stamina: itemData.m_shared.m_attack.m_attackStamina = updatedValue; break; case ItemStat.primary_attack_eitr: itemData.m_shared.m_attack.m_attackEitr = updatedValue; break; case ItemStat.primary_attack_flat_health_cost: itemData.m_shared.m_attack.m_attackHealth = updatedValue; break; case ItemStat.primary_attack_percent_health_cost: itemData.m_shared.m_attack.m_attackHealthPercentage = updatedValue; break; case ItemStat.primary_attack_health_returned: itemData.m_shared.m_attack.m_attackHealthReturnHit = updatedValue; break; case ItemStat.primary_attack_damage_bonus_per_missing_hp: itemData.m_shared.m_attack.m_damageMultiplierPerMissingHP = updatedValue; break; case ItemStat.primary_attack_projectile_count: itemData.m_shared.m_attack.m_projectiles = (int)updatedValue; break; case ItemStat.secondary_attack_stamina: itemData.m_shared.m_secondaryAttack.m_attackStamina = updatedValue; break; case ItemStat.secondary_attack_eitr: itemData.m_shared.m_secondaryAttack.m_attackEitr = updatedValue; break; case ItemStat.secondary_attack_flat_health_cost: itemData.m_shared.m_secondaryAttack.m_attackHealth = updatedValue; break; case ItemStat.secondary_attack_percent_health_cost: itemData.m_shared.m_secondaryAttack.m_attackHealthPercentage = updatedValue; break; case ItemStat.movement_speed: itemData.m_shared.m_movementModifier = updatedValue; break; case ItemStat.bow_draw_speed: itemData.m_shared.m_attack.m_drawDurationMin = updatedValue; break; case ItemStat.crossbow_reload_speed: itemData.m_shared.m_attack.m_reloadTime = updatedValue; break; case ItemStat.crossbow_reload_stamina_drain: itemData.m_shared.m_attack.m_reloadStaminaDrain = updatedValue; break; case ItemStat.draw_stamina_drain: itemData.m_shared.m_attack.m_drawStaminaDrain = updatedValue; break; case ItemStat.projectile_velocity: itemData.m_shared.m_attack.m_projectileVel = updatedValue; break; case ItemStat.projectile_accuracy_max: itemData.m_shared.m_attack.m_projectileAccuracy = 100f - updatedValue; break; case ItemStat.durability: itemData.m_shared.m_maxDurability = updatedValue; break; case ItemStat.durability_per_level: itemData.m_shared.m_durabilityPerLevel = updatedValue; break; case ItemStat.max_item_level: itemData.m_shared.m_maxQuality = (int)updatedValue; break; case ItemStat.tool_level: itemData.m_shared.m_toolTier = (int)updatedValue; break; default: Logger.LogWarning($"Unknown item stat {target_attribute} for {itemData.m_shared.m_name}"); break; } } } private static bool ValidateRecipeConfig(ItemDefinition itemdef) { //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Expected O, but got Unknown List list = new List(); try { string[] array = itemdef.recipe.recipeConfig.Value.Split('|'); foreach (string text in array) { string[] array2 = text.Split(','); if (array2.Length == 1) { return false; } if (array2.Length != 3) { Logger.LogWarning("Invalid (" + itemdef.Name + ") recipe config detected: " + text + ". Needs three entries eg: Wood,1,1"); return false; } list.Add(new RequirementConfig { Item = array2[0], Amount = int.Parse(array2[1]), AmountPerLevel = int.Parse(array2[2]) }); } itemdef.recipe.recipeReqs = list; return true; } catch { Logger.LogWarning("Recipe is Invalid. Should have the format of Wood,1,1|Stone,2,0 - Prefab,cost,upgrade."); return false; } } private static void BuildRecipeReqsFromDefault(ItemDefinition itemdef) { //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Expected O, but got Unknown List list = new List(); foreach (RecipeIngredient recipeItem in itemdef.recipe.recipeItems) { list.Add(new RequirementConfig { Item = recipeItem.prefab, Amount = recipeItem.amount, AmountPerLevel = recipeItem.upgradeCost }); } itemdef.recipe.recipeReqs = list; } private static string BuildStringRecipeFromItemDef(ItemDefinition itemdef) { List list = new List(); foreach (RecipeIngredient recipeItem in itemdef.recipe.recipeItems) { list.Add($"{recipeItem.prefab},{recipeItem.amount},{recipeItem.upgradeCost}"); } return string.Join("|", list); } private static bool ModifyItemRecipeCraftedAt(ItemDefinition itemdef, string craftedAt) { int recipeIndexByPrefab = GetRecipeIndexByPrefab(itemdef.prefab); if (recipeIndexByPrefab == -1) { Logger.LogWarning("Recipe of " + itemdef.prefab + " not found in ObjectDB, recipe will not be modified."); return false; } GameObject prefab = PrefabManager.Instance.GetPrefab(itemdef.craftedAt_cfg.Value); CraftingStation val = ((prefab != null) ? prefab.GetComponent() : null); if ((Object)(object)val == (Object)null) { Logger.LogWarning("Crafting Station " + itemdef.craftedAt_cfg.Value + " prefab not found, or does not have a crafting station componet."); return false; } ObjectDB.instance.m_recipes[recipeIndexByPrefab].m_craftingStation = val; ObjectDB.instance.m_recipes[recipeIndexByPrefab].m_repairStation = val; return true; } private static void ModifyItemRecipeInODB(ItemDefinition itemdef) { //IL_00cc: Unknown result type (might be due to invalid IL or missing references) //IL_00d1: Unknown result type (might be due to invalid IL or missing references) //IL_00de: Unknown result type (might be due to invalid IL or missing references) //IL_00eb: Unknown result type (might be due to invalid IL or missing references) //IL_00fd: Expected O, but got Unknown int recipeIndexByPrefab = GetRecipeIndexByPrefab(itemdef.prefab); if (recipeIndexByPrefab == -1) { Logger.LogWarning("Recipe of " + itemdef.prefab + " not found in ObjectDB, Recipe will not be modified."); return; } Recipe val = ObjectDB.instance.m_recipes[recipeIndexByPrefab]; Recipe val2 = val; List list = new List(); foreach (RequirementConfig recipeReq in itemdef.recipe.recipeReqs) { GameObject itemPrefab = ObjectDB.instance.GetItemPrefab(recipeReq.Item); if ((Object)(object)itemPrefab == (Object)null) { Logger.LogWarning("Recipe " + ((Object)itemdef.recipe.resolvedRecipe).name + " has an invalid requirement " + recipeReq.Item + "."); return; } list.Add(new Requirement { m_resItem = itemPrefab.GetComponent(), m_amount = recipeReq.Amount, m_amountPerLevel = recipeReq.AmountPerLevel }); } val2.m_resources = list.ToArray(); int num = ObjectDB.instance.m_recipes.IndexOf(val); if (num > -1) { ObjectDB.instance.m_recipes[num] = val2; itemdef.recipe.resolvedRecipe = val2; } else { Logger.LogWarning("Recipe " + ((Object)val).name + " not found in ObjectDB."); } } private static void EnableDisableItemInDB(ItemDefinition itemdef, bool enable) { int recipeIndexByPrefab = GetRecipeIndexByPrefab(itemdef.prefab); if (recipeIndexByPrefab == -1 && !enable) { return; } if (recipeIndexByPrefab == -1 && enable) { if ((Object)(object)itemdef.recipe.resolvedRecipe != (Object)null) { ObjectDB.instance.m_recipes.Add(itemdef.recipe.resolvedRecipe); } else { Logger.LogWarning("Recipe of " + itemdef.prefab + " not found in ObjectDB, recipe wont be set to enabled."); } return; } if (enable) { ObjectDB.instance.m_recipes[recipeIndexByPrefab].m_enabled = true; } else { ObjectDB.instance.m_recipes[recipeIndexByPrefab].m_enabled = false; } itemdef.recipe.resolvedRecipe = ObjectDB.instance.m_recipes[recipeIndexByPrefab]; } private static void ModifyItemRecipeLevel(ItemDefinition itemdef, int level) { int recipeIndexByPrefab = GetRecipeIndexByPrefab(itemdef.prefab); if (recipeIndexByPrefab == -1) { Logger.LogWarning("Recipe of " + itemdef.prefab + " not found in ObjectDB, required level will not be modified."); return; } ObjectDB.instance.m_recipes[recipeIndexByPrefab].m_minStationLevel = level; itemdef.recipe.resolvedRecipe = ObjectDB.instance.m_recipes[recipeIndexByPrefab]; } private static int GetRecipeIndexByPrefab(string prefab) { return ObjectDB.instance.m_recipes.FindIndex((Recipe m) => (Object)(object)m.m_item != (Object)null && ((Object)m.m_item).name == prefab); } private static void SetItemDamageModifier(DamageModifier modifier, DamageType type, ItemData itemData) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0079: 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_0082: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Unknown result type (might be due to invalid IL or missing references) //IL_0094: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) List list = itemData.m_shared.m_damageModifiers.Where((DamageModPair entry) => entry.m_type != type).ToList(); if (list.Count == 0) { itemData.m_shared.m_damageModifiers.Clear(); itemData.m_shared.m_damageModifiers.Add(new DamageModPair { m_modifier = modifier, m_type = type }); } else { list.Add(new DamageModPair { m_modifier = modifier, m_type = type }); itemData.m_shared.m_damageModifiers = list; } } private static void UpdateItemInPlayerInventory(string prefab, Action callback) { if ((Object)(object)Player.m_localPlayer == (Object)null) { return; } foreach (ItemData allItem in ((Humanoid)Player.m_localPlayer).m_inventory.GetAllItems()) { if (allItem != null && !(((Object)allItem.m_dropPrefab).name != prefab)) { callback(allItem); } } } private static void UpdateItemInWorldSynchronize(IEnumerable objects, bool start_sleep, Action callback) { if (objects == null || objects.Count() == 0) { return; } int value = VAConfig.InMemoryModificationsPerTick.Value; int num = 0; foreach (GameObject @object in objects) { if (num >= value) { num = 0; } ItemDrop val = null; if (@object.TryGetComponent(ref val)) { callback(val.m_itemData); } } } private static void AddAmmoItemsToArcheryTarget() { ArcheryTarget componentInChildren = PrefabManager.Instance.GetPrefab("piece_ArcheryTarget").GetComponentInChildren(true); foreach (string item in ArcheryAmmoToAdd) { Logger.LogDebug("Adding " + item + " to Archery Target Ammo Return."); ItemDrop component = PrefabManager.Instance.GetPrefab(item).GetComponent(); if ((Object)(object)component != (Object)null && !componentInChildren.m_returnAmmo.Contains(component)) { componentInChildren.m_returnAmmo.Add(component); } } } static JotunBatchLoader() { //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Unknown result type (might be due to invalid IL or missing references) string[] array = new string[7]; DamageModifier val = (DamageModifier)0; array[0] = ((object)(DamageModifier)(ref val)).ToString(); val = (DamageModifier)6; array[1] = ((object)(DamageModifier)(ref val)).ToString(); val = (DamageModifier)2; array[2] = ((object)(DamageModifier)(ref val)).ToString(); val = (DamageModifier)6; array[3] = ((object)(DamageModifier)(ref val)).ToString(); val = (DamageModifier)1; array[4] = ((object)(DamageModifier)(ref val)).ToString(); val = (DamageModifier)5; array[5] = ((object)(DamageModifier)(ref val)).ToString(); val = (DamageModifier)3; array[6] = ((object)(DamageModifier)(ref val)).ToString(); allowedModifiers = new AcceptableValueList(array); } } internal static class Logger { public static LogLevel Level = (LogLevel)16; public static void enableDebugLogging(object sender, EventArgs e) { toggleDebug(); } public static void toggleDebug() { //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) if (VAConfig.EnableDebugMode.Value) { Level = (LogLevel)32; } else { Level = (LogLevel)16; } } public static void LogDebug(string message) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Invalid comparison between Unknown and I4 if ((int)Level >= 32) { ValheimArmory.Log.LogInfo((object)message); } } public static void LogInfo(string message) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Invalid comparison between Unknown and I4 if ((int)Level >= 16) { ValheimArmory.Log.LogInfo((object)message); } } public static void LogWarning(string message) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Invalid comparison between Unknown and I4 if ((int)Level >= 4) { ValheimArmory.Log.LogWarning((object)message); } } public static void LogError(string message) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Invalid comparison between Unknown and I4 if ((int)Level >= 2) { ValheimArmory.Log.LogError((object)message); } } } internal class StatusModifiers { private static List bloodBuffPrefabs = new List { "VABlood_bone_bow", "VABlood_bone_bow(Clone)", "VAHeavy_Blood_Bone_Bow", "VAHeavy_Blood_Bone_Bow(Clone)", "VABlood_Bones_pickaxe", "VABlood_Bones_pickaxe(Clone)" }; private static List queenBuffPrefabs = new List { "VAQueen_greatsword", "VAQueen_greatsword(Clone)", "VASwordQueen", "VASwordQueen(Clone)", "VAQueen_bow", "VAQueen_bow(Clone)", "VAdagger_queen", "VAdagger_queen(Clone)" }; public static void OnConfigBloodChanged(object sender, EventArgs e) { SE_Stats equipStatusEffect = null; foreach (SE_Stats item in (from se in Resources.FindObjectsOfTypeAll() where ((Object)se).name == "VABloodBuff" select se).ToList()) { item.m_healthRegenMultiplier = VAConfig.BloodHungerRegen.Value; equipStatusEffect = item; } foreach (GameObject item2 in from obj in Resources.FindObjectsOfTypeAll() where bloodBuffPrefabs.Contains(((Object)obj).name) select obj) { ItemDrop val = null; if (item2.TryGetComponent(ref val)) { val.m_itemData.m_shared.m_equipStatusEffect = (StatusEffect)(object)equipStatusEffect; } } if ((Object)(object)Player.m_localPlayer == (Object)null) { return; } foreach (ItemData allItem in ((Humanoid)Player.m_localPlayer).m_inventory.GetAllItems()) { if (allItem != null && !bloodBuffPrefabs.Contains(((Object)allItem.m_dropPrefab).name)) { allItem.m_shared.m_equipStatusEffect = (StatusEffect)(object)equipStatusEffect; } } } public static void OnConfigQueenHealthRegenChanged(object sender, EventArgs e) { SE_Stats equipStatusEffect = null; foreach (SE_Stats item in (from se in Resources.FindObjectsOfTypeAll() where ((Object)se).name == "VAQueen_buff" select se).ToList()) { item.m_healthRegenMultiplier = VAConfig.QueenHealthRegen.Value; item.m_eitrRegenMultiplier = VAConfig.QueenEitrRegen.Value; equipStatusEffect = item; } foreach (GameObject item2 in from obj in Resources.FindObjectsOfTypeAll() where queenBuffPrefabs.Contains(((Object)obj).name) select obj) { ItemDrop val = null; if (item2.TryGetComponent(ref val)) { val.m_itemData.m_shared.m_equipStatusEffect = (StatusEffect)(object)equipStatusEffect; } } if ((Object)(object)Player.m_localPlayer == (Object)null) { return; } foreach (ItemData allItem in ((Humanoid)Player.m_localPlayer).m_inventory.GetAllItems()) { if (allItem != null && !queenBuffPrefabs.Contains(((Object)allItem.m_dropPrefab).name)) { allItem.m_shared.m_equipStatusEffect = (StatusEffect)(object)equipStatusEffect; } } } public static void SyncStatusEffectsToConfig() { OnConfigBloodChanged(null, null); OnConfigQueenHealthRegenChanged(null, null); } } internal static class WeaponModifier { internal class WeaponAttackData { public Attack primary_attack { get; set; } public Attack secondary_attack { get; set; } } private static GameObject vfx_sledge_hit; private static GameObject fx_camshake; private static GameObject sfx_sledge_hit; private static GameObject sfx_sledge_swing; private static GameObject fx_demolisher_hit; private static GameObject vfx_clubhit; private static GameObject sfx_clubhit; private static GameObject sfx_swing_wosh; private static Dictionary OriginalWeaponAttackCache = new Dictionary(); internal static WeaponAttackData CheckForWeaponData(string weapon_name) { if (OriginalWeaponAttackCache.ContainsKey(weapon_name)) { return OriginalWeaponAttackCache[weapon_name]; } foreach (GameObject item in from obj in Resources.FindObjectsOfTypeAll() where ((Object)obj).name.StartsWith(weapon_name) select obj) { ItemDrop val = null; if (item.TryGetComponent(ref val) && val.m_itemData.m_shared.m_attack.m_attackAnimation != null && val.m_itemData.m_shared.m_secondaryAttack.m_attackAnimation != null) { OriginalWeaponAttackCache.Add(weapon_name, new WeaponAttackData { primary_attack = val.m_itemData.m_shared.m_attack, secondary_attack = val.m_itemData.m_shared.m_secondaryAttack }); break; } } return OriginalWeaponAttackCache[weapon_name]; } public static void SetupEffects() { vfx_sledge_hit = PrefabManager.Instance.GetPrefab("vfx_sledge_hit"); fx_camshake = PrefabManager.Instance.GetPrefab("fx_swing_camshake"); sfx_sledge_hit = PrefabManager.Instance.GetPrefab("sfx_sledge_hit"); sfx_sledge_swing = PrefabManager.Instance.GetPrefab("sfx_sledge_swing"); fx_demolisher_hit = PrefabManager.Instance.GetPrefab("fx_sledge_demolisher_hit"); vfx_clubhit = PrefabManager.Instance.GetPrefab("vfx_clubhit"); sfx_clubhit = PrefabManager.Instance.GetPrefab("sfx_club_hit"); sfx_swing_wosh = PrefabManager.Instance.GetPrefab("sfx_battleaxe_swing_wosh"); Logger.LogDebug($"Set Effect Prefabs: vfx_sledge_hit:{vfx_sledge_hit} fx_camshake:{fx_camshake} sfx_sledge_hit:{sfx_sledge_hit} sfx_sledge_swing:{sfx_sledge_swing} fx_demolisher_hit:{fx_demolisher_hit} vfx_clubhit:{vfx_clubhit} sfx_clubhit:{sfx_clubhit} sfx_swing_wosh: {sfx_swing_wosh}"); } public static Attack SetWarhammerPrimaryAttack(float stamina_cost = 22f) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0046: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00c9: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: Unknown result type (might be due to invalid IL or missing references) //IL_00d0: Unknown result type (might be due to invalid IL or missing references) //IL_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: Unknown result type (might be due to invalid IL or missing references) //IL_00de: Unknown result type (might be due to invalid IL or missing references) //IL_00e5: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: Expected O, but got Unknown return new Attack { m_attackChainLevels = 3, m_attackRandomAnimations = 0, m_hitTerrain = true, m_speedFactor = 0.3f, m_speedFactorRotation = 0.3f, m_attackStartNoise = 20f, m_attackHitNoise = 30f, m_forceMultiplier = 1f, m_staggerMultiplier = 1.5f, m_damageMultiplier = 1f, m_attackAnimation = "battleaxe_attack", m_attackType = (AttackType)0, m_attackRange = 2.5f, m_attackHeight = 1f, m_skillHitType = (DestructibleType)4, m_attackAngle = 90f, m_attackRayWidth = 0.5f, m_multiHit = true, m_raiseSkillAmount = 1f, m_lastChainDamageMultiplier = 2f, m_hitPointtype = (HitPointType)0, m_lowerDamagePerHit = true, m_resetChainIfHit = (DestructibleType)2, m_attackStamina = stamina_cost, m_lastChainDamageMultiplier = 2f }; } public static Attack SetSledgeSmash(float stamina_cost = 14f) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0046: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00c9: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: Unknown result type (might be due to invalid IL or missing references) //IL_00d0: Unknown result type (might be due to invalid IL or missing references) //IL_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: Unknown result type (might be due to invalid IL or missing references) //IL_00de: Unknown result type (might be due to invalid IL or missing references) //IL_00e5: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: Expected O, but got Unknown return new Attack { m_attackChainLevels = 0, m_attackRandomAnimations = 0, m_hitTerrain = true, m_speedFactor = 0.3f, m_speedFactorRotation = 0.1f, m_attackStartNoise = 10f, m_attackHitNoise = 60f, m_forceMultiplier = 1f, m_staggerMultiplier = 1.5f, m_damageMultiplier = 1f, m_attackAnimation = "swing_sledge", m_attackType = (AttackType)4, m_attackRange = 2f, m_attackHeight = 0f, m_skillHitType = (DestructibleType)4, m_attackAngle = 90f, m_attackRayWidth = 4f, m_multiHit = true, m_raiseSkillAmount = 1f, m_lastChainDamageMultiplier = 2f, m_hitPointtype = (HitPointType)0, m_lowerDamagePerHit = true, m_resetChainIfHit = (DestructibleType)0, m_attackStamina = stamina_cost, m_lastChainDamageMultiplier = 2f }; } public static EffectList SledgeTriggerEffects(bool demolisher = false) { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Expected O, but got Unknown //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Expected O, but got Unknown //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_005a: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Expected O, but got Unknown //IL_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Expected O, but got Unknown //IL_0093: Unknown result type (might be due to invalid IL or missing references) //IL_0098: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_00b2: Expected O, but got Unknown //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) //IL_00c5: Expected O, but got Unknown EffectData[] effectPrefabs = (EffectData[])(object)new EffectData[3] { new EffectData { m_prefab = fx_camshake, m_enabled = true, m_variant = -1 }, new EffectData { m_prefab = vfx_sledge_hit, m_enabled = true, m_variant = -1 }, new EffectData { m_prefab = sfx_sledge_hit, m_enabled = true, m_variant = -1 } }; EffectData[] array = (EffectData[])(object)new EffectData[2] { new EffectData { m_prefab = fx_camshake, m_enabled = true, m_variant = -1 }, new EffectData { m_prefab = fx_demolisher_hit, m_enabled = true, m_variant = -1 } }; if (demolisher) { effectPrefabs = array; } return new EffectList { m_effectPrefabs = effectPrefabs }; } public static EffectList SledgeStartEffects() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Expected O, but got Unknown //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Expected O, but got Unknown EffectData[] effectPrefabs = (EffectData[])(object)new EffectData[1] { new EffectData { m_prefab = sfx_sledge_swing, m_enabled = true, m_variant = -1 } }; return new EffectList { m_effectPrefabs = effectPrefabs }; } public static EffectList SledgeComboSwingSFX() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Expected O, but got Unknown //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Expected O, but got Unknown EffectData[] effectPrefabs = (EffectData[])(object)new EffectData[1] { new EffectData { m_prefab = sfx_swing_wosh, m_enabled = true, m_variant = -1 } }; return new EffectList { m_effectPrefabs = effectPrefabs }; } public static EffectList SetWarhammerAttackVFX() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Expected O, but got Unknown //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Expected O, but got Unknown //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Expected O, but got Unknown EffectData[] effectPrefabs = (EffectData[])(object)new EffectData[2] { new EffectData { m_prefab = vfx_clubhit, m_enabled = true, m_variant = -1 }, new EffectData { m_prefab = sfx_clubhit, m_enabled = true, m_variant = -1 } }; return new EffectList { m_effectPrefabs = effectPrefabs }; } public static void ClearSecondaryAttack(ItemData id) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Expected O, but got Unknown id.m_shared.m_secondaryAttack = new Attack(); } public static void ClearSharedVFX(ItemData id) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Expected O, but got Unknown //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Expected O, but got Unknown //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Expected O, but got Unknown //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Expected O, but got Unknown id.m_shared.m_startEffect = new EffectList(); id.m_shared.m_triggerEffect = new EffectList(); id.m_shared.m_hitEffect = new EffectList(); id.m_shared.m_hitTerrainEffect = new EffectList(); } public static void SledgeToWarhammer(string weapon_prefab, float primary_stamina, float secondary_stamina) { bool demolisher = false; if (weapon_prefab == "SledgeDemolisher") { demolisher = true; } Attack attack = SetWarhammerPrimaryAttack(primary_stamina); Attack secondaryAttack = SetSledgeSmash(secondary_stamina); EffectList hitEffect = SetWarhammerAttackVFX(); EffectList triggerEffect = SledgeTriggerEffects(demolisher); EffectList startEffect = SledgeStartEffects(); EffectList trailStartEffect = SledgeComboSwingSFX(); foreach (GameObject item in from obj in Resources.FindObjectsOfTypeAll() where ((Object)obj).name.StartsWith(weapon_prefab) select obj) { ItemDrop val = null; if (item.TryGetComponent(ref val)) { val.m_itemData.m_shared.m_attack = attack; val.m_itemData.m_shared.m_secondaryAttack = secondaryAttack; val.m_itemData.m_shared.m_attack.m_hitEffect = hitEffect; val.m_itemData.m_shared.m_attack.m_trailStartEffect = trailStartEffect; val.m_itemData.m_shared.m_secondaryAttack.m_triggerEffect = triggerEffect; val.m_itemData.m_shared.m_secondaryAttack.m_startEffect = startEffect; ClearSharedVFX(val.m_itemData); } } if (!((Object)(object)Player.m_localPlayer != (Object)null)) { return; } Logger.LogDebug("Modifying items within the players inventory."); foreach (ItemData allItem in ((Humanoid)Player.m_localPlayer).m_inventory.GetAllItems()) { if (allItem != null && !(((Object)allItem.m_dropPrefab).name != weapon_prefab)) { Logger.LogDebug(allItem.m_shared.m_name + " found in the players backpack, updating."); allItem.m_shared.m_attack = attack; allItem.m_shared.m_secondaryAttack = secondaryAttack; allItem.m_shared.m_attack.m_hitEffect = hitEffect; allItem.m_shared.m_attack.m_trailStartEffect = trailStartEffect; allItem.m_shared.m_secondaryAttack.m_triggerEffect = triggerEffect; allItem.m_shared.m_secondaryAttack.m_startEffect = startEffect; ClearSharedVFX(allItem); } } } public static void ToSledge(string weapon_prefab, float sledge_stamina) { bool demolisher = false; if (weapon_prefab == "SledgeDemolisher") { demolisher = true; } Attack attack = SetSledgeSmash(sledge_stamina); EffectList triggerEffect = SledgeTriggerEffects(demolisher); EffectList startEffect = SledgeStartEffects(); foreach (GameObject item in from obj in Resources.FindObjectsOfTypeAll() where ((Object)obj).name.StartsWith(weapon_prefab) select obj) { ItemDrop val = null; if (item.TryGetComponent(ref val)) { val.m_itemData.m_shared.m_attack = attack; ClearSharedVFX(val.m_itemData); ClearSecondaryAttack(val.m_itemData); val.m_itemData.m_shared.m_triggerEffect = triggerEffect; val.m_itemData.m_shared.m_startEffect = startEffect; val.m_itemData.m_shared.m_attack.m_trailStartEffect = null; } } if (!((Object)(object)Player.m_localPlayer != (Object)null)) { return; } Logger.LogDebug("Modifying items within the players inventory."); foreach (ItemData allItem in ((Humanoid)Player.m_localPlayer).m_inventory.GetAllItems()) { if (allItem != null && !(((Object)allItem.m_dropPrefab).name != weapon_prefab)) { Logger.LogDebug(allItem.m_shared.m_name + " found in the players backpack, updating."); allItem.m_shared.m_attack = attack; ClearSharedVFX(allItem); ClearSecondaryAttack(allItem); allItem.m_shared.m_triggerEffect = triggerEffect; allItem.m_shared.m_startEffect = startEffect; allItem.m_shared.m_attack.m_trailStartEffect = null; } } } public static void ModifyStamina(string weapon_prefab, float sledge_stamina) { foreach (GameObject item in from obj in Resources.FindObjectsOfTypeAll() where ((Object)obj).name.StartsWith(weapon_prefab) select obj) { ItemDrop val = null; if (item.TryGetComponent(ref val)) { val.m_itemData.m_shared.m_attack.m_attackStamina = sledge_stamina; } } if (!((Object)(object)Player.m_localPlayer != (Object)null)) { return; } Logger.LogDebug("Modifying items within the players inventory."); foreach (ItemData allItem in ((Humanoid)Player.m_localPlayer).m_inventory.GetAllItems()) { if (allItem != null && !(((Object)allItem.m_dropPrefab).name != weapon_prefab)) { Logger.LogDebug(allItem.m_shared.m_name + " found in the players backpack, updating."); allItem.m_shared.m_attack.m_attackStamina = sledge_stamina; } } } public static void SetWeaponPrimaryAndSecondary(string weapon_prefab, Attack primary, Attack secondary) { foreach (GameObject item in from obj in Resources.FindObjectsOfTypeAll() where ((Object)obj).name.StartsWith(weapon_prefab) select obj) { ItemDrop val = null; if (item.TryGetComponent(ref val)) { val.m_itemData.m_shared.m_attack = primary; val.m_itemData.m_shared.m_secondaryAttack = secondary; } } if (!((Object)(object)Player.m_localPlayer != (Object)null)) { return; } Logger.LogDebug("Modifying items within the players inventory."); foreach (ItemData allItem in ((Humanoid)Player.m_localPlayer).m_inventory.GetAllItems()) { if (allItem != null && !(((Object)allItem.m_dropPrefab).name != weapon_prefab)) { Logger.LogDebug(allItem.m_shared.m_name + " found in the players backpack, updating."); allItem.m_shared.m_attack = primary; allItem.m_shared.m_secondaryAttack = secondary; } } } public static void ModifyVanillaHammersToWarhammers() { if (VAConfig.VanillaHammersHavePrimaryAttack.Value) { SledgeToWarhammer("SledgeStagbreaker", VAConfig.StagbreakerPrimaryAttackStamina.Value, 12f); SledgeToWarhammer("SledgeIron", VAConfig.IronSledgePrimaryAttackStamina.Value, 20f); SledgeToWarhammer("SledgeDemolisher", VAConfig.DemolisherPrimaryAttackStamina.Value, 28f); } } public static void ModifyVanillaHammersToSledges() { ToSledge("SledgeStagbreaker", 12f); ToSledge("SledgeIron", 20f); ToSledge("SledgeDemolisher", 28f); } public static void ModifyModHammersToSledges() { //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Expected O, but got Unknown //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Expected O, but got Unknown //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_005a: Expected O, but got Unknown //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Expected O, but got Unknown //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Expected O, but got Unknown //IL_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: Expected O, but got Unknown //IL_00c8: Unknown result type (might be due to invalid IL or missing references) //IL_00d2: Expected O, but got Unknown //IL_00e6: Unknown result type (might be due to invalid IL or missing references) //IL_00f0: Expected O, but got Unknown //IL_0104: Unknown result type (might be due to invalid IL or missing references) //IL_010e: Expected O, but got Unknown SetWeaponPrimaryAndSecondary("VAflametal_sledge_nature", CheckForWeaponData("VAflametal_sledge_nature").secondary_attack, new Attack()); SetWeaponPrimaryAndSecondary("VAflametal_sledge_lightning", CheckForWeaponData("VAflametal_sledge_lightning").secondary_attack, new Attack()); SetWeaponPrimaryAndSecondary("VAflametal_sledge_blood", CheckForWeaponData("VAflametal_sledge_blood").secondary_attack, new Attack()); SetWeaponPrimaryAndSecondary("VAflametal_sledge", CheckForWeaponData("VAflametal_sledge").secondary_attack, new Attack()); SetWeaponPrimaryAndSecondary("VAblackmetal_sledge", CheckForWeaponData("VAblackmetal_sledge").secondary_attack, new Attack()); SetWeaponPrimaryAndSecondary("VAElderHammer", CheckForWeaponData("VAElderHammer").secondary_attack, new Attack()); SetWeaponPrimaryAndSecondary("VABronzeSledge", CheckForWeaponData("VABronzeSledge").secondary_attack, new Attack()); SetWeaponPrimaryAndSecondary("VABonemassWarhammer", CheckForWeaponData("VABonemassWarhammer").secondary_attack, new Attack()); SetWeaponPrimaryAndSecondary("VASilverSledge", CheckForWeaponData("VASilverSledge").secondary_attack, new Attack()); } public static void ModifyModHammersToWarhammers() { SetWeaponPrimaryAndSecondary("VAflametal_sledge_nature", CheckForWeaponData("VAflametal_sledge_nature").primary_attack, CheckForWeaponData("VAflametal_sledge_nature").secondary_attack); SetWeaponPrimaryAndSecondary("VAflametal_sledge_lightning", CheckForWeaponData("VAflametal_sledge_lightning").primary_attack, CheckForWeaponData("VAflametal_sledge_lightning").secondary_attack); SetWeaponPrimaryAndSecondary("VAflametal_sledge_blood", CheckForWeaponData("VAflametal_sledge_blood").primary_attack, CheckForWeaponData("VAflametal_sledge_blood").secondary_attack); SetWeaponPrimaryAndSecondary("VAflametal_sledge", CheckForWeaponData("VAflametal_sledge").primary_attack, CheckForWeaponData("VAflametal_sledge").secondary_attack); SetWeaponPrimaryAndSecondary("VAblackmetal_sledge", CheckForWeaponData("VAblackmetal_sledge").primary_attack, CheckForWeaponData("VAblackmetal_sledge").secondary_attack); SetWeaponPrimaryAndSecondary("VAElderHammer", CheckForWeaponData("VAElderHammer").primary_attack, CheckForWeaponData("VAElderHammer").secondary_attack); SetWeaponPrimaryAndSecondary("VABronzeSledge", CheckForWeaponData("VABronzeSledge").primary_attack, CheckForWeaponData("VABronzeSledge").secondary_attack); SetWeaponPrimaryAndSecondary("VABonemassWarhammer", CheckForWeaponData("VABonemassWarhammer").primary_attack, CheckForWeaponData("VABonemassWarhammer").secondary_attack); SetWeaponPrimaryAndSecondary("VASilverSledge", CheckForWeaponData("VASilverSledge").primary_attack, CheckForWeaponData("VASilverSledge").secondary_attack); } public static void OnConfigChangeModifyHammers(object sender, EventArgs e) { if (!Game.instance.IsShuttingDown()) { if (VAConfig.VanillaHammersHavePrimaryAttack.Value) { ModifyVanillaHammersToWarhammers(); } else { ModifyVanillaHammersToSledges(); } } } public static void OnConfigChangeModifyModHammers(object sender, EventArgs e) { if (!Game.instance.IsShuttingDown()) { if (VAConfig.ModHammersHavePrimaryAttack.Value) { ModifyModHammersToWarhammers(); } else { ModifyModHammersToSledges(); } } } public static void OnConfigStagbreakerValueChanged(object sender, EventArgs e) { if (VAConfig.VanillaHammersHavePrimaryAttack.Value) { ModifyStamina("SledgeStagbreaker", VAConfig.StagbreakerPrimaryAttackStamina.Value); } } public static void OnConfigIronSledgeValueChanged(object sender, EventArgs e) { if (VAConfig.VanillaHammersHavePrimaryAttack.Value) { ModifyStamina("SledgeIron", VAConfig.IronSledgePrimaryAttackStamina.Value); } } public static void OnConfigDemolisherValueChanged(object sender, EventArgs e) { if (VAConfig.VanillaHammersHavePrimaryAttack.Value) { ModifyStamina("SledgeDemolisher", VAConfig.DemolisherPrimaryAttackStamina.Value); } } public static void ModifyVanillaKnife() { if (VAConfig.VanillaAbyssalKnifeBluntDamageConvert.Value) { KnifeToAbyssal("KnifeChitin"); } } public static void OnConfigChangeModifyVanillaKnife(object sender, EventArgs e) { if (VAConfig.VanillaAbyssalKnifeBluntDamageConvert.Value) { KnifeToAbyssal("KnifeChitin"); } else { KnifeToVanilla("KnifeChitin"); } } public static void OnConfigAbyssalKnifeValueChanged(object sender, EventArgs e) { if (VAConfig.VanillaHammersHavePrimaryAttack.Value) { KnifeToAbyssal("KnifeChitin"); } } public static void KnifeToAbyssal(string weapon_prefab) { foreach (GameObject item in from obj in Resources.FindObjectsOfTypeAll() where ((Object)obj).name.StartsWith(weapon_prefab) select obj) { ItemDrop val = null; if (item.TryGetComponent(ref val)) { val.m_itemData.m_shared.m_damages.m_slash = 0f; val.m_itemData.m_shared.m_damages.m_blunt = VAConfig.AbyssalKnifeBlunt.Value; val.m_itemData.m_shared.m_damagesPerLevel.m_slash = 0f; val.m_itemData.m_shared.m_damagesPerLevel.m_blunt = VAConfig.AbyssalKnifeBluntPerLevel.Value; } } if (!((Object)(object)Player.m_localPlayer != (Object)null)) { return; } Logger.LogDebug("Modifying items within the players inventory."); foreach (ItemData allItem in ((Humanoid)Player.m_localPlayer).m_inventory.GetAllItems()) { if (allItem != null && !(((Object)allItem.m_dropPrefab).name != weapon_prefab)) { Logger.LogDebug(allItem.m_shared.m_name + " found in the players backpack, updating."); allItem.m_shared.m_damages.m_slash = 0f; allItem.m_shared.m_damages.m_blunt = VAConfig.AbyssalKnifeBlunt.Value; allItem.m_shared.m_damagesPerLevel.m_slash = 0f; allItem.m_shared.m_damagesPerLevel.m_blunt = VAConfig.AbyssalKnifeBluntPerLevel.Value; } } } public static void KnifeToVanilla(string weapon_prefab) { foreach (GameObject item in from obj in Resources.FindObjectsOfTypeAll() where ((Object)obj).name.StartsWith(weapon_prefab) select obj) { ItemDrop val = null; if (item.TryGetComponent(ref val)) { val.m_itemData.m_shared.m_damages.m_blunt = 0f; val.m_itemData.m_shared.m_damages.m_slash = 20f; val.m_itemData.m_shared.m_damagesPerLevel.m_blunt = 0f; val.m_itemData.m_shared.m_damagesPerLevel.m_slash = 1f; } } if (!((Object)(object)Player.m_localPlayer != (Object)null)) { return; } Logger.LogDebug("Modifying items within the players inventory."); foreach (ItemData allItem in ((Humanoid)Player.m_localPlayer).m_inventory.GetAllItems()) { if (allItem != null && !(((Object)allItem.m_dropPrefab).name != weapon_prefab)) { Logger.LogDebug(allItem.m_shared.m_name + " found in the players backpack, updating."); allItem.m_shared.m_damages.m_blunt = 0f; allItem.m_shared.m_damages.m_slash = 20f; allItem.m_shared.m_damagesPerLevel.m_blunt = 0f; allItem.m_shared.m_damagesPerLevel.m_slash = 1f; } } } public static void OnConfigChangeModifyVanillaFlintAxe(object sender, EventArgs e) { ToggleVanillaFlintAxe(); } public static void ToggleVanillaFlintAxe() { if (!((Object)(object)ObjectDB.m_instance == (Object)null)) { int num = RecipeIndexForPrefab("AxeFlint"); if (num != -1) { ObjectDB.instance.m_recipes[num].m_enabled = VAConfig.EnableVanillaFlintAxe.Value; } } } public static void OnConfigChangeModifyVanillaFlintSpear(object sender, EventArgs e) { ToggleVanillaFlintSpear(); } public static void ToggleVanillaFlintSpear() { if (!((Object)(object)ObjectDB.m_instance == (Object)null)) { int num = RecipeIndexForPrefab("SpearFlint"); if (num != -1) { ObjectDB.instance.m_recipes[num].m_enabled = VAConfig.EnableVanillaSpear.Value; } } } public static int RecipeIndexForPrefab(string prefab) { return ObjectDB.instance.m_recipes.FindIndex((Recipe m) => (Object)(object)m.m_item != (Object)null && ((Object)m.m_item).name == prefab); } } }