From d584c4e94724b8606a5d15a5f25b4927c12a2269 Mon Sep 17 00:00:00 2001 From: LamaMega Date: Tue, 1 Apr 2025 19:34:23 +0200 Subject: [PATCH 01/27] Balance WIP --- ChampionsOfForest.csproj | 394 +- Effects/BlackHole.cs | 14 +- Effects/Cataclysm.cs | 4 +- Effects/Flare.cs | 2 +- Enemies/EnemyAbilities/EnemyLaserBeam.cs | 2 +- Enemies/EnemyAbilities/FireAura.cs | 2 +- .../EnemyProgression_Damage.cs | 5 +- Items/ItemDataBase_ItemDefinitions.cs | 16199 ++++++++-------- Items/ItemDataBase_StatDefinitions.cs | 12 +- Items/StatActions.cs | 8 +- Player/Main Menu/MainMenu_Guide.cs | 6 +- .../ModdedPlayer.ModdedPlayerStats.cs | 4 +- Player/ModdedPlayer/ModdedPlayer.cs | 25 +- Player/Perks/PerkDatabase.cs | 46 +- Translations.cs | 4 - 15 files changed, 8487 insertions(+), 8240 deletions(-) diff --git a/ChampionsOfForest.csproj b/ChampionsOfForest.csproj index f00ac0c..c7b6781 100644 --- a/ChampionsOfForest.csproj +++ b/ChampionsOfForest.csproj @@ -22,310 +22,310 @@ 4 - ../../../libs/BaseModLib.dll False - + ../../../modlib/TheForest/TheForest_data/Managed/Assembly-CSharp-firstpass.dll False - + ../../../modlib/TheForest/TheForest_data/Managed/Assembly-CSharp.dll False - + ../../../modlib/TheForest/TheForest_data/Managed/Assembly-UnityScript-firstpass.dll False - + ../../../modlib/TheForest/TheForest_data/Managed/Assembly-UnityScript.dll False - + ../../../modlib/TheForest/TheForest_data/Managed/bolt.dll False - + ../../../modlib/TheForest/TheForest_data/Managed/bolt.user.dll False - + + ..\..\..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\The Forest\TheForest_Data\Managed\BuilderCore.dll + + ../../../modlib/TheForest/TheForest_data/Managed/SteamworksManaged.dll False - + ../../../modlib/TheForest/TheForest_data/Managed/Boo.Lang.dll False - + ../../../modlib/TheForest/TheForest_data/Managed/Mono.Security.dll False - + ../../../modlib/TheForest/TheForest_data/Managed/UnityScript.Lang.dll False - + ../../../modlib/TheForest/TheForest_data/Managed/Boo.Lang.dll False - + ../../../modlib/TheForest/TheForest_data/Managed/Mono.Posix.dll False - + ../../../modlib/TheForest/TheForest_data/Managed/Mono.Security.dll False - + ../../../modlib/TheForest/TheForest_data/Managed/mscorlib.dll False - + ../../../modlib/TheForest/TheForest_data/Managed/Pathfinding.ClipperLib.dll False - + ../../../modlib/TheForest/TheForest_data/Managed/Pathfinding.Ionic.Zip.Reduced.dll False - + ../../../modlib/TheForest/TheForest_data/Managed/Pathfinding.JsonFx.dll False - + ../../../modlib/TheForest/TheForest_data/Managed/Pathfinding.Poly2Tri.dll False - + ../../../modlib/TheForest/TheForest_data/Managed/PlayMaker.dll False - + ../../../modlib/TheForest/TheForest_data/Managed/Rewired_Core.dll False - + ../../../modlib/TheForest/TheForest_data/Managed/System.Configuration.dll False - + ../../../modlib/TheForest/TheForest_data/Managed/System.Core.dll False - + ../../../modlib/TheForest/TheForest_data/Managed/System.dll False - + ../../../modlib/TheForest/TheForest_data/Managed/System.Security.dll False - + ../../../modlib/TheForest/TheForest_data/Managed/System.Xml.dll False - + ../../../modlib/TheForest/TheForest_data/Managed/TheForest.Commons.dll False - + ../../../modlib/TheForest/TheForest_data/Managed/TheForest.Modding.dll False - + ../../../modlib/TheForest/TheForest_data/Managed/UnityEngine.dll False - + ../../../modlib/TheForest/TheForest_data/Managed/UnityEngine.Networking.dll False - + ../../../modlib/TheForest/TheForest_data/Managed/UnityEngine.UI.dll False - + ../../../modlib/TheForest/TheForest_data/Managed/UnityScript.Lang.dll False - + ../../../modlib/TheForest/TheForest_data/Managed/udpkit.dll False - + ../../../modlib/TheForest/TheForest_data/Managed/udpkit.common.dll False - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Effects/BlackHole.cs b/Effects/BlackHole.cs index aac16a8..642f907 100644 --- a/Effects/BlackHole.cs +++ b/Effects/BlackHole.cs @@ -62,7 +62,7 @@ private IEnumerator Start() { AudioSource source = gameObject.AddComponent(); source.clip = Res.ResourceLoader.instance.LoadedAudio[1000]; - source.volume = 16; + source.volume = 5; source.spatialBlend = 1f; source.rolloffMode = AudioRolloffMode.Linear; source.maxDistance = 150f; @@ -203,12 +203,9 @@ private IEnumerator HitEverySecond() } while (FromEnemy) { - if ((LocalPlayer.Transform.position - transform.position).sqrMagnitude < scale * 4 * scale * 4) + if ((LocalPlayer.Transform.position - transform.position).sqrMagnitude < scale * scale * 2) { - if (Random.value <= ModdedPlayer.Stats.getHitChance) - LocalPlayer.Stats.HealthChange(-damage * ModdedPlayer.Stats.allDamageTaken * ModdedPlayer.Stats.magicDamageTaken * 0.5f); - else - COTFEvents.Instance.OnDodge.Invoke(); + LocalPlayer.Stats.HealthChange(-damage * ModdedPlayer.Stats.allDamageTaken * ModdedPlayer.Stats.damageFromElite * 0.5f); yield return new WaitForSeconds(0.5f); } else @@ -224,9 +221,8 @@ private IEnumerator HitEnemies() { if (t.Value != null) { - t.Value.HitMagic(damage); - yield return null; - + t.Value.HitMagic(damage); + yield return null; } } } diff --git a/Effects/Cataclysm.cs b/Effects/Cataclysm.cs index a10e05b..c0b0b98 100644 --- a/Effects/Cataclysm.cs +++ b/Effects/Cataclysm.cs @@ -176,7 +176,7 @@ private void SendHitFromEnemy() float sqrMagnitude = (LocalPlayer.Transform.position - transform.position).sqrMagnitude; if (sqrMagnitude < radius * radius) { - int dmg = (int)(damage * (1 - ModdedPlayer.Stats.magicDamageTaken)); + int dmg = (int)(damage * (ModdedPlayer.Stats.damageFromElite)); if (isArcane) { @@ -192,7 +192,7 @@ private void SendHitFromEnemy() BuffDB.AddBuff(2, 65, 0.7f, 6); LocalPlayer.Stats.Burn(); } - LocalPlayer.Stats.Hit((int)(dmg * (1 - ModdedPlayer.Stats.magicDamageTaken)), false, PlayerStats.DamageType.Drowning); + LocalPlayer.Stats.Hit((int)(dmg * (ModdedPlayer.Stats.damageFromElite)), false, PlayerStats.DamageType.Drowning); } } diff --git a/Effects/Flare.cs b/Effects/Flare.cs index f6d9378..59b6c66 100644 --- a/Effects/Flare.cs +++ b/Effects/Flare.cs @@ -229,7 +229,7 @@ private void Update() { if (Random.value <= ModdedPlayer.Stats.getHitChance) { - LocalPlayer.Stats.HealthChange(-damageAmount * Time.deltaTime * ( ModdedPlayer.Stats.magicDamageTaken) * ModdedPlayer.Stats.allDamageTaken); + LocalPlayer.Stats.HealthChange(-damageAmount * Time.deltaTime * ( ModdedPlayer.Stats.damageFromElite) * ModdedPlayer.Stats.allDamageTaken); BuffDB.AddBuff(1, 5, slowAmount, 20); LocalPlayer.Stats.Burn(); } diff --git a/Enemies/EnemyAbilities/EnemyLaserBeam.cs b/Enemies/EnemyAbilities/EnemyLaserBeam.cs index 197bb32..f169564 100644 --- a/Enemies/EnemyAbilities/EnemyLaserBeam.cs +++ b/Enemies/EnemyAbilities/EnemyLaserBeam.cs @@ -32,7 +32,7 @@ public IEnumerator DoAction() { if (hit.transform.root == LocalPlayer.Transform.root) { - LocalPlayer.Stats.Hit((int)(dmg * 0.3f * (1 - ModdedPlayer.Stats.magicDamageTaken)), false, PlayerStats.DamageType.Fire); + LocalPlayer.Stats.Hit((int)(dmg * 0.3f * (ModdedPlayer.Stats.damageFromElite)), false, PlayerStats.DamageType.Fire); BuffDB.AddBuff(10, 67, 0.5f, 15); BuffDB.AddBuff(2, 66, 0.5f, 15); BuffDB.AddBuff(3, 68, dmg / 13, 5); diff --git a/Enemies/EnemyAbilities/FireAura.cs b/Enemies/EnemyAbilities/FireAura.cs index ea24dbd..23f0ce6 100644 --- a/Enemies/EnemyAbilities/FireAura.cs +++ b/Enemies/EnemyAbilities/FireAura.cs @@ -51,7 +51,7 @@ private void Update() { if ((LocalPlayer.Transform.position - transform.position).sqrMagnitude < 49) { - float dmgPerTick = Time.deltaTime * damage * ModdedPlayer.Stats.allDamageTaken * ModdedPlayer.Stats.magicDamageTaken * ModReferences.DamageReduction((int)ModdedPlayer.Stats.TotalArmor); + float dmgPerTick = Time.deltaTime * damage * ModdedPlayer.Stats.allDamageTaken * ModdedPlayer.Stats.damageFromElite * ModReferences.DamageReduction((int)ModdedPlayer.Stats.TotalArmor); if (LocalPlayer.Stats.Health - 1 > dmgPerTick) LocalPlayer.Stats.Health -= dmgPerTick; diff --git a/Enemies/EnemyProgression/EnemyProgression_Damage.cs b/Enemies/EnemyProgression/EnemyProgression_Damage.cs index 305898d..8ec0f07 100644 --- a/Enemies/EnemyProgression/EnemyProgression_Damage.cs +++ b/Enemies/EnemyProgression/EnemyProgression_Damage.cs @@ -138,7 +138,7 @@ public float ClampDamage(bool pure, float damage, bool magic) reduction /= 1.5f; } - float dmg = damage * (1 - reduction); + float dmg = damage * (1f - reduction); if (Steadfast != 100) { dmg = Mathf.Min(dmg, steadfastCap); @@ -254,7 +254,8 @@ public int ClampDamage(bool pure, int damage) { dmg = Mathf.Min(dmg, (int)steadfastCap); } - + if (dmg < 0) + return -dmg; return dmg; } diff --git a/Items/ItemDataBase_ItemDefinitions.cs b/Items/ItemDataBase_ItemDefinitions.cs index 4bab350..89e39b6 100644 --- a/Items/ItemDataBase_ItemDefinitions.cs +++ b/Items/ItemDataBase_ItemDefinitions.cs @@ -1,5 +1,5 @@ using System.Linq; - +using System.Collections.Generic; using ChampionsOfForest.Items; using ChampionsOfForest.Items.Sets; using ChampionsOfForest.Localization; @@ -9,7974 +9,8251 @@ namespace ChampionsOfForest { - public static partial class ItemDataBase - { - public static void PopulateItems() - { - new BaseItem(new int[][] - { - new int[] { 34 }, - new int[] {43,0,39,59,67 }, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_1/*Broken Flip-Flops*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_2/*A pair of damaged shoes. Judging by their condition, i can imagine what happened to their owner.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_3/*Worn by one of the passengers of the plane that Eric also flew in.*/, //tr - Rarity = 0, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Boot, - icon = Res.ResourceLoader.GetTexture(85), - }; - new BaseItem(new int[][] - { - new int[] {34 }, - new int[] {34,0,40,41 }, - new int[] {43 }, - new int[] {43,0 ,67 }, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_4/*Old Boots*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_5/*A pair of old boots. They must have been lying here for ages.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_6/*Found on the Peninsula, but judging by their condition, they belong neither to a plane passenger nor a cannibal.*/, //tr - Rarity = 0, - minLevel = 1, - maxLevel = 2, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Boot, - icon = Res.ResourceLoader.GetTexture(85), - }; - new BaseItem(new int[][] - { - new int[] {34 }, - new int[] {34,40,41 }, - new int[] {43,3,2 }, - new int[] {43,65,67 }, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_7/*Damaged Leather Boots*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_8/*A pair of leather boots. They look good and have only some scratches.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_9/*They arrived to the Peninsula the same way Eric did. Since they were in a baggage, they avoided a lot of damage.*/, //tr - Rarity = 1, - minLevel = 1, - maxLevel = 6, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Boot, - icon = Res.ResourceLoader.GetTexture(85), - }; - new BaseItem(new int[][] - { - new int[] {34 }, - new int[] {3,2 }, - new int[] {43,3,2,1,4 }, - new int[] {43,65,67 }, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_10/*Sturdy Leather Boots*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_11/*A pair of leather boots. They are in a very good condition.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_12/*They arrived to the Peninsula the same way Eric did. Eric found them undamaged in their original box. They still had a pricetag - $419,99.*/, //tr - Rarity = 2, - minLevel = 7, - maxLevel = 12, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Boot, - icon = Res.ResourceLoader.GetTexture(85), - }; - new BaseItem(new int[][] - { - new int[] {34 }, - new int[] {34,39,41,11,57 }, - new int[] {-1}, - new int[] {16,7,8 }, - new int[] {43,65,67 }, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_13/*Damaged Army Boots*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_14/*Sturdy, hard, resistant but damaged boots.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_15/*They look modern, almost too modern for everything here.*/, //tr - Rarity = 3, - minLevel = 4, - maxLevel = 9, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Boot, - icon = Res.ResourceLoader.GetTexture(85), - }; - new BaseItem(new int[][] - { - new int[] {34 }, - new int[] {34,3,2,11 }, - new int[] {-1}, - new int[] {16,7,8 }, - new int[] {43,65,67 }, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_16/*Army Boots*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_17/*Sturdy, hard, resistant boots.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_15/*They look modern, almost too modern for everything here.*/, //tr - Rarity = 4, - minLevel = 10, - maxLevel = 14, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Boot, - icon = Res.ResourceLoader.GetTexture(85), - }; - new BaseItem(new int[][] - { - new int[] {25,22 }, - new int[] {11,1,3,17 }, - new int[] {22,1,3,17 }, - new int[] {28,1,65 }, - new int[] {-1 }, - new int[] {5,6,16,31,7,8,9,10 }, - new int[] {5,6,16,31,7,8,9,10 }, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_18/*Armsy Skin Footwear*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_19/*Severed armsy legs, with all of their insides removed. All thats left is dried mutated skin.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_20/*Armsy, the second heaviest of the mutants needs very resistant skin. It often drags its legs on the ground when it moves. The skin on their legs grew very thick, and has bone tissue mixed with skin tissue.*/, //tr - Rarity = 6, - minLevel = 5, - maxLevel = 8, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Boot, - icon = Res.ResourceLoader.GetTexture(85), - }.DropSettings_OnlyArmsy(); - new BaseItem(new int[][] - { - new int[] {42,0 }, - new int[] {40,41,26,25,67 }, - new int[] {43,65,0 }, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_21/*Finger Warmer*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_22/*A little glove to keep your fingers warm and cozy.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_23/*Made of wool.*/, //tr - Rarity = 0, - minLevel = 1, - maxLevel = 2, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Glove, - icon = Res.ResourceLoader.GetTexture(86), - }; - new BaseItem(new int[][] - { - new int[] {39,40,41,42,43,24,25,26 }, - new int[] {39,40,41,42,43,24,25,26,44 }, - new int[] {43,0,7,0,5,6,8,0,21,22,23,16,67 }, - new int[] {43,0,7,0,5,6,8,0,0,0,0,21,22,23,65,66,67 }, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_24/*Thick Rubber Glove*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_25/*A glove that helps get a better grip.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_23/*Made of wool.*/, //tr - Rarity = 1, - minLevel = 1, - maxLevel = 2, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Glove, - icon = Res.ResourceLoader.GetTexture(86), - }; - new BaseItem(new int[][] - { - new int[] {39,40,41,42}, - new int[] {39,40,41,42}, - new int[] {1,2,3,4,5,6,7}, - new int[] {0,18,14}, - new int[] {-1 }, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_26/*Tribal Glove*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_27/*Offers medicore protection.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_28/*Glove made out of thin bones, some may possibly be from a human.*/, //tr - Rarity = 3, - minLevel = 1, - maxLevel = 2, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Glove, - icon = Res.ResourceLoader.GetTexture(86), - }; - new BaseItem(new int[][] - { - new int[] {1,2,4,6,8,9}, - new int[] {1,11,65}, - new int[] {21,22,23}, - new int[] {12,13,15}, - new int[] {12,13,24,25,26}, - new int[] {24,25,26,44,35}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_29/*Tribe Leader Glove*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_30/*A glove that offers little protection but a lot of offensive stats.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_31/*A glove made of bones, some have engravings of crosses.*/, //tr - Rarity = 4, - minLevel = 1, - maxLevel = 4, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Glove, - icon = Res.ResourceLoader.GetTexture(86), - }; - new BaseItem(new int[][] - { - new int[] {43,0 }, - new int[] {43,39,40,41,42 }, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_32/*Worn Shorts*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_33/*Some protection for legs.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_34/*Short, made out of cheap thin fabric, and on top of that they are damaged. But its better than nothing.*/, //tr - Rarity = 0, - minLevel = 1, - maxLevel = 4, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Pants, - icon = Res.ResourceLoader.GetTexture(87), - }; - new BaseItem(new int[][] - { - new int[] {1000,1001,1002}, - new int[] {1000,1001,1002,1003,1004,0,0,0,0}, - new int[] {8,9,0,0,0,0 }, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_35/*Cargo Shorts*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_36/*No protection at all but they allow to carry more items.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_37/*They are ugly as hell tho*/, //tr - Rarity = 1, - minLevel = 1, - maxLevel = 4, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Pants, - icon = Res.ResourceLoader.GetTexture(87), - }; - new BaseItem(new int[][] - { - new int[] {5 }, - new int[] {43,16,0,41 }, - new int[] {39,40,41,42,43,44,0,0,0,0,0,0,1003,1004}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_38/*Passenger's Jacket*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_39/*It's a little torn. */, //tr - lore = Translations.ItemDataBase_ItemDefinitions_40/*This jacket was worn by Preston A. the 34th passenger on the plane. Eric talked to him at the airport. Guy was odd, and now he's dead.*/, //tr - Rarity = 0, - minLevel = 1, - maxLevel = 4, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.ChestArmor, - icon = Res.ResourceLoader.GetTexture(96), - }; - new BaseItem(new int[][] - { - new int[] {5 }, - new int[] {1,2,3,4,5,6,65}, - new int[] {43,16,0,41,3,2,1 }, - new int[] {6,7,8,9,10,16,17,31, }, - new int[] {39,40,41,42,43,44,0,0,0,0,0,0,1003,1004}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_41/*Leather Jacket*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_42/*Offers little protection*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_43/*This jacket was in a baggage of one of the plane passengers*/, //tr - Rarity = 1, - minLevel = 4, - maxLevel = 7, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.ChestArmor, - icon = Res.ResourceLoader.GetTexture(96), - }; - new BaseItem(new int[][] - { - new int[] {5,3,1 }, - new int[] {5 }, - new int[] {16}, - new int[] {7,11 }, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_44/*Boar Skin Armor*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_45/*It's made from a skin of a huge individual. It's heavy and thick, and surely can protect from attacks of weaker enemies.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_46/*Boar, one of the animals on the peninsula, is rather rare and it's skin is very durable.*/, //tr - Rarity = 1, - minLevel = 4, - maxLevel = 8, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.ChestArmor, - icon = Res.ResourceLoader.GetTexture(96), - }; - new BaseItem(new int[][] - { - new int[] {5 }, - new int[] {5,3,4,2,1 }, - new int[] {14,0,0,0 }, - new int[] {6,8,9}, - new int[] {6,8,9}, - new int[] {12,13,0,65,66 }, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_47/*Crocodile Skin Armor*/, //tr - Rarity = 2, - minLevel = 7, - maxLevel = 9, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.ChestArmor, - icon = Res.ResourceLoader.GetTexture(96), - }; - BaseItem baseItem1 = new BaseItem(new int[][] - { - new int[] {5 }, - new int[] {16 }, - new int[] {18,17,16}, - new int[] {11}, - new int[] {65,0}, - new int[] {12,13,1,2,3,4}, - new int[] {25,22,0}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_48/*Plate armour*/, //tr - Rarity = 4, - minLevel = 1, - maxLevel = 5, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.ChestArmor, - icon = Res.ResourceLoader.GetTexture(96), - }; - baseItem1.PossibleStats[1][0].Multipier = 2.5f; - new BaseItem(new int[][] - { - new int[] {5 }, - new int[] {65 }, - new int[] {16}, - new int[] {16,43}, - new int[] {16,0,43}, - new int[] {6,8,9}, - new int[] {45,43,39,42}, - new int[] {7,10,11,17,18,31,66}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_49/*Bear Skin Armor*/, //tr - Rarity = 3, - minLevel = 7, - maxLevel = 8, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.ChestArmor, - icon = Res.ResourceLoader.GetTexture(96), - }; - new BaseItem(new int[][] - { - new int[] {5 }, - new int[] {12,13}, - new int[] {13,23,26}, - new int[] {23,26}, - new int[] {34,2,2}, - new int[] {15,14}, - new int[] {16,23,4,5,6,66}, - new int[] {16,23,4,5,6,0,0,0,0}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_50/*Archer's Gear*/, //tr - Rarity = 5, - minLevel = 7, - maxLevel = 9, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.ChestArmor, - icon = Res.ResourceLoader.GetTexture(96), - }; - new BaseItem(new int[][] - { - new int[] {5 }, - new int[] {23,26,2 }, - new int[] {23,26 }, - new int[] {12,13}, - new int[] {13,23,26}, - new int[] {23,26}, - new int[] {34,2,2}, - new int[] {15,14}, - new int[] {16,23,4,5,6}, - new int[] {45,46,66}, - new int[] {27,48}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_51/*Hazard's Gear*/, //tr - Rarity = 6, - minLevel = 5, - maxLevel = 6, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.ChestArmor, - icon = Res.ResourceLoader.GetTexture(96), - }; - new BaseItem(new int[][] - { - new int[] {47 }, - new int[] {4,29 }, - new int[] {4,29 }, - new int[] {4,29 }, - new int[] {4,17,6,44,38,21,24,8,9}, - new int[] {4,17,6,44,38,21,24,8,9}, - new int[] {4,17,6,44,38,21,24,8,9}, - new int[] {4,17,6,44,38,21,24,8,9}, - new int[] {4,17,6,44,38,21,24,8,9}, - new int[] {4,17,6,44,38,21,24,8,9}, - new int[] {4,17,6,44,38,21,24,8,9}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_52/*Mysterious robe*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_53/*Magic flows through the entirety of this object. It's made out of unknown material*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_54/*Robe looks like it was created yesterday, but its older than the oldest of mankinds' civilizations. Simply looking at it sends chills down the spine.*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_55/*Empowers cataclysm. The vortex turns blue, damage is increased, freezes enemies */, //tr - Rarity = 7, - minLevel = 15, - maxLevel = 20, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.ChestArmor, - icon = Res.ResourceLoader.GetTexture(96), - onEquip = () => ModdedPlayer.Stats.spell_cataclysmArcane.value = true, - onUnequip = () => ModdedPlayer.Stats.spell_cataclysmArcane.value = false - }; - new BaseItem(new int[][] - { - new int[] {39,40,41,42,44,8,14,49 }, - new int[] {39,40,41,42,44,8,14,49 }, - new int[] {0,62,63,64}, - new int[] {1,0,65}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_56/*Rusty Longsword*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_57/*A long, very heavy sword. Edge got dull over time. Still, it's in a condition that allows me to slice some enemies in half.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_58/*The sword appears to be from medieval ages, through it's not. It was made a lot later. It never was used as a weapon in battles, because it was merely a decoration.*/, //tr - Rarity = 3, - minLevel = 13, - maxLevel = 15, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.LongSword, - icon = Res.ResourceLoader.GetTexture(89), - }; - new BaseItem(new int[][] - { - new int[] {25 }, - new int[] {25 ,62,63,64}, - new int[] {6,49}, - new int[] {22,0,25,1,2,3,4}, - new int[] {1,2,3,4}, - new int[] {39,40,41,42,44,8,18,65 }, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_59/*Longsword*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_60/*Sharp and long*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_61/*The sword is in perfect contidion.*/, //tr - Rarity = 4, - minLevel = 20, - maxLevel = 27, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.LongSword, - icon = Res.ResourceLoader.GetTexture(89), - }; - new BaseItem(new int[][] - { - new int[] {25 }, - new int[] {6,49}, - new int[] {22,0,25,1,2,3,4}, - new int[] {1,2,3,4,8}, - new int[] {1,2,3,4,8}, - new int[] {5,6,45,46,16,8}, - new int[] {39,40,41,42,44,8 }, - new int[] {39,40,41,42,44,8,62,63,64 }, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_62/*Full Metal Sword*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_63/*It's sooo big...*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_64/*A normal human cannot lift this.*/, //tr - Rarity = 6, - minLevel = 50, - maxLevel = 52, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.GreatSword, - icon = Res.ResourceLoader.GetTexture(88), - }; - new BaseItem(new int[][] - { - new int[] {25,1,3 }, - new int[] {25,22,1,3 }, - new int[] {25,22,0,0,0,0 }, - new int[] {49 }, - new int[] {14 }, - new int[] {14,1 }, - new int[] {14,31,49 }, - new int[] {14,18,49 }, - new int[] {38,36,1,3,4,5,6,16 ,62,63,64}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_65/*The Leech*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_66/*Hey where did my health g- oh it's back...*/, //tr - Rarity = 6, - minLevel = 60, - maxLevel = 61, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.GreatSword, - icon = Res.ResourceLoader.GetTexture(88), - }; - new BaseItem(new int[][] - { - new int[] {1,2,3,4 }, - new int[] {1,2,3,15,4,0,0,0 }, - new int[] {12,13,1,2,3,4,5, }, - new int[] {18,16,23,26,19 }, - new int[] {18,16,23,26 }, - new int[] {34,44,45,46 }, - new int[] {2,23,26}, - new int[] {2,23,26,51}, - new int[] {2,23,26,20,16,15,60}, - new int[] {52,66,60,0,0}, - new int[] {66}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_67/*Smokey's Sacred Quiver*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_68/*SmokeyTheBear died because he never used this item.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_69/*Smokey was the friend of allmighty Hazard, who can materialize any kind of weapon at the snap of his fingers. Hazard remebered Smokey's favourite playstyle and he gave him this as a gift to purge the sh** out of mutants.*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_70("250%", "500%")/*Crossbows operate at 250% speed and deal 400% increased damage*/, //tr - Rarity = 7, - minLevel = 5, - maxLevel = 8, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Quiver, - icon = Res.ResourceLoader.GetTexture(98), - onEquip = () => { ModdedPlayer.Stats.i_SmokeyCrossbowQuiver.value = true; ModdedPlayer.Stats.perk_crossbowDamageMult.Multiply(5); }, - onUnequip = () => - { - ModdedPlayer.Stats.i_SmokeyCrossbowQuiver.value = false; - ModdedPlayer.Stats.perk_crossbowDamageMult.Divide(5); - }, - }; - new BaseItem(new int[][] - { - new int[] {0,42 }, - new int[] {50 }, - new int[] {43,16 }, - new int[] {1,0 }, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_71/*Broken shield*/, //tr - Rarity = 0, - minLevel = 1, - maxLevel = 2, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Shield, - icon = Res.ResourceLoader.GetTexture(99), - }; - new BaseItem(new int[][] - { - new int[] {1,2,3,4,0,42 }, - new int[] {0,42 }, - new int[] {50 }, - new int[] {1,0 }, - new int[] {43,16 }, - new int[] {43,16,0,0 }, - }) - { - name = Translations.Item_1/*Shield*/, //tr - Rarity = 1, - minLevel = 3, - maxLevel = 6, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Shield, - icon = Res.ResourceLoader.GetTexture(99), - }; - new BaseItem(new int[][] - { - new int[] {16}, - new int[] {16}, - new int[] {16}, - new int[] {16,0}, - new int[] {16,0,45,46}, - new int[] {0,42,11 }, - new int[] {50 }, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_72/*Tower Shield*/, //tr - Rarity = 3, - minLevel = 5, - maxLevel = 8, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Shield, - icon = Res.ResourceLoader.GetTexture(99), - }; - new BaseItem(new int[][] - { - new int[] {5,6,7,8,0,0,0}, - new int[] {43}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_73/*Broken Leather Shoulder Armor*/, //tr - Rarity = 0, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.ShoulderArmor, - icon = Res.ResourceLoader.GetTexture(95), - }; - new BaseItem(new int[][] - { - new int[] {5,6,7,8}, - new int[] {43}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_74/*Leather Shoulder Armor*/, //tr - Rarity = 1, - minLevel = 2, - maxLevel = 5, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.ShoulderArmor, - icon = Res.ResourceLoader.GetTexture(95), - }; - new BaseItem(new int[][] - { - new int[] {16}, - new int[] {1,2,3,4}, - new int[] {17}, - new int[] {17}, - new int[] {8,9,49,47}, - new int[] {8,9,49,47}, - new int[] {16,18,11,34}, - new int[] {37,34}, - new int[] {-1}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_75/*Phase Pauldrons*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_76/*The distance of blink is increased by 40 meters, and blink now hits everything that you teleported through*/, //tr - Rarity = 7, - minLevel = 5, - maxLevel = 9, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.ShoulderArmor, - icon = Res.ResourceLoader.GetTexture(95), - onEquip = () => { ModdedPlayer.Stats.spell_blinkRange.Add(40); ModdedPlayer.Stats.spell_blinkDamage.Add(60); }, - onUnequip = () => { ModdedPlayer.Stats.spell_blinkRange.Substract(40); ModdedPlayer.Stats.spell_blinkDamage.Substract(60); }, - }; - new BaseItem(new int[][] - { - new int[] {39,49,5,6,7,8,0,0,0}, - new int[] {43,0}, - new int[] {43}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_77/*MAGA Cap*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_78/*Wearing this item channels the power of D.Trump to you*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_79/*... or does it?*/, //tr - Rarity = 1, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Helmet, - icon = Res.ResourceLoader.GetTexture(91), - }; - new BaseItem(new int[][] - { - new int[] {2000}, - new int[] {2001}, - new int[] {2002}, - new int[] {2003}, - new int[] {16}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {1,2,3,4}, - new int[] {21,6}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_80/*Hubble's Vision*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_81/*Wearing this item empowers your black hole spell*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_82/*Man, fuck gravity.*/, //tr - Rarity = 6, - minLevel = 10, - maxLevel = 11, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Helmet, - icon = Res.ResourceLoader.GetTexture(91), - }; - new BaseItem(new int[][] - { - new int[] {39,40,41,42,43,12,13}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_83/*Broken Loop*/, //tr - Rarity = 0, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Ring, - icon = Res.ResourceLoader.GetTexture(90), - }; - new BaseItem(new int[][] - { - new int[] {-1}, - new int[] {39,40,41,42,43,12,13}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_84/*Loop*/, //tr - Rarity = 1, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Ring, - icon = Res.ResourceLoader.GetTexture(90), - }; - new BaseItem(new int[][] - { - new int[] {63}, - new int[] {-1}, - new int[] {39,40,41,42,43,12,13,5,6,7,8,9,12,13,15,16,17,18,10,11}, - new int[] {1,2,3,4,21,22,23,24,25,26,43,12,13}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_85/*Toxic Ring*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_87/*What the fuck did you just fucking say about me, you little bitch? I'll have you know I graduated top of my class in the Navy Seals, and I've been involved in numerous secret raids on Al-Quaeda, and I have over 300 confirmed kills. I am trained in gorilla warfare and I'm the top sniper in the entire US armed forces. You are nothing to me but just another target. I will wipe you the fuck out with precision the likes of which has never been seen before on this Earth, mark my fucking words. You think you can get away with saying that shit to me over the Internet? Think again, fucker. As we speak I am contacting my secret network of spies across the USA and your IP is being traced right now so you better prepare for the storm, maggot. The storm that wipes out the pathetic little thing you call your life. You're fucking dead, kid. I can be anywhere, anytime, and I can kill you in over seven hundred ways, and that's just with my bare hands. Not only am I extensively trained in unarmed combat, but I have access to the entire arsenal of the United States Marine Corps and I will use it to its full extent to wipe your miserable ass off the face of the continent, you little shit. If only you could have known what unholy retribution your little /'clever\' comment was about to bring down upon you, maybe you would have held your fucking tongue. But you couldn't, you didn't, and now you're paying the price, you goddamn idiot. I will shit fury all over you and you will drown in it. You're fucking dead, kiddo."*/, //tr - Rarity = 3, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Ring, - icon = Res.ResourceLoader.GetTexture(90), - }; - new BaseItem(new int[][] - { - new int[] {39,40,41,42,43}, - new int[] {-1}, - new int[] {-1}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_88/*Scarf*/, //tr - Rarity = 1, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(100), - }; - new BaseItem(new int[][] - { - new int[] {39,40,41,42,43}, - new int[] {43}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_89/*Damaged Bracer*/, //tr - Rarity = 0, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Bracer, - icon = Res.ResourceLoader.GetTexture(93), - }; - new BaseItem(new int[][] - { - new int[] {39,40,41,42,43}, - new int[] {43}, - new int[] {16}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_90/*Worn Bracer*/, //tr - Rarity = 1, - minLevel = 3, - maxLevel = 10, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Bracer, - icon = Res.ResourceLoader.GetTexture(93), - }; - new BaseItem(new int[][] - { - new int[] {39,40,41,42,43}, - new int[] {16}, - new int[] {-1}, - new int[] {5,6,7,8,9,10}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_91/*Leather Bracer*/, //tr - Rarity = 2, - minLevel = 4, - maxLevel = 10, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Bracer, - icon = Res.ResourceLoader.GetTexture(94), - }; - new BaseItem(new int[][] - { - new int[] {32}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_92/*Greater Mutated Heart*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_93/*Can be consumed by right clicking it*/, //tr - Rarity = 7, - minLevel = 1, - maxLevel = 3, - CanConsume = true, - StackSize = 100, - type = BaseItem.ItemType.Other, - icon = Res.ResourceLoader.GetTexture(105), - }; - new BaseItem(new int[][] - { - new int[] {33}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_94/*Lesser Mutated Heart*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_93/*Can be consumed by right clicking it*/, //tr - Rarity = 5, - minLevel = 1, - maxLevel = 6, - CanConsume = true, - StackSize = 1, - type = BaseItem.ItemType.Other, - icon = Res.ResourceLoader.GetTexture(105), - }; - new BaseItem(new int[][] - { - new int[] {1,2}, - new int[] {1,2,3,5,6}, - new int[] {65}, - new int[] {-1}, - new int[] {-1}, - new int[] {53,54}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_95/*Spiked ring*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_96/*Armor piercing for either melee or ranged weapons*/, //tr - Rarity = 4, - minLevel = 10, - maxLevel = 16, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Ring, - icon = Res.ResourceLoader.GetTexture(90), - }; - - new BaseItem(new int[][] - { - new int[] {1,2,3,4,5,6}, - new int[] {1,2,3,4,5,6,65}, - new int[] {-1}, - new int[] {-1 }, - new int[] {1,2,3,4,21,22,23,24,25,26,18,16}, - new int[] {55}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_97/*Piercer*/, //tr - Rarity = 4, - minLevel = 11, - maxLevel = 15, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(101), - }; - new BaseItem(new int[][] - { - new int[] {59 }, - new int[] {21 }, - new int[] {34,0,40,41 }, - new int[] {16,34}, - new int[] {12 }, - new int[] {-1 }, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_98/*Moon Boots*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_99/*A pair of boots from the moon.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_100/*It is said that the wearer will not take fall damage while wearing these boots and will jump like on the moon, I wouldn't trust it tough.*/, //tr - Rarity = 4, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 10, - maxLevel = 14, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Boot, - icon = Res.ResourceLoader.GetTexture(85), //icon ids, don't worry about that - }; - new BaseItem(new int[][] - { - new int[] {1}, - new int[] {1,57,18,36}, - new int[] {12,13,1}, - new int[] {22,25,1}, - new int[] {22,25,1}, - new int[] {50,53,35}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_101/*Golden Ring of Strength*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_103/*A Golden Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - Rarity = 5, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 10, - maxLevel = 14, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Ring, - icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that - }; - new BaseItem(new int[][] - { - new int[] {3}, - new int[] {3,31,6,7,8,9}, - new int[] {5,3,41,45}, - new int[] {7,10,31,14}, - new int[] {14,16,11,17}, - new int[] {65,57,45,46}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_104/*Golden Ring of Vitality*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_103/*A Golden Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - Rarity = 5, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 10, - maxLevel = 14, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Ring, - icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that - }; - - new BaseItem(new int[][] - { - new int[] {2}, - new int[] {12,13,8,9, }, - new int[] {15,18,34,36}, - new int[] {23,48,54,26,59,55,16}, - new int[] {6,57,2,34,}, - new int[] {52,66,51,2,23} - }) - { - name = Translations.ItemDataBase_ItemDefinitions_105/*Golden Ring of Agility*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_103/*A Golden Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - Rarity = 5, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 10, - maxLevel = 20, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Ring, - icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that - }; - new BaseItem(new int[][] - { - new int[] {4}, - new int[] {12,13,21,24,6}, - new int[] {12,13,21,24}, - new int[] {19,47,49}, - new int[] { 37,38,4,24,61,44}, - new int[] { 57,44,6,24,21,47} - }) - { - name = Translations.ItemDataBase_ItemDefinitions_106/*Golden Ring of Intelligence*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_103/*A Golden Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - Rarity = 5, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 10, - maxLevel = 20, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Ring, - icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that - }; - //Silver Rings--------------------------------------------------------------------------- - new BaseItem(new int[][] - { - new int[] {1}, - new int[] {22,25,12,13}, - new int[] {35,50,53}, - new int[] {20,0,0,0} - }) - { - name = Translations.ItemDataBase_ItemDefinitions_107/*Silver Ring of Strength*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_108/*A Silver Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - Rarity = 4, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 5, - maxLevel = 20, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Ring, - icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that - }; - - new BaseItem(new int[][] - { - new int[] {3}, - new int[] {7,10,31,5, }, - new int[] {11,17,0}, - new int[] {14,16,45}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_109/*Silver Ring of Vitality*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_108/*A Silver Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - Rarity = 4, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 5, - maxLevel = 8, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Ring, - icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that - }; - - new BaseItem(new int[][] - { - new int[] {2}, - new int[] {12,13,51,8,9, }, - new int[] {15,18,34,36,0}, - new int[] {23,48,54,26,6,57,0,0,0 } - }) - { - name = Translations.ItemDataBase_ItemDefinitions_110/*Silver Ring of Agility*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_108/*A Silver Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - Rarity = 4, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 5, - maxLevel = 20, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Ring, - icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that - }; - - new BaseItem(new int[][] - { - new int[] {4}, - new int[] { 12, 13, 21, 24,12, 13,21,24,0}, - new int[] {19,47,49,6}, - new int[] { 57,37,38,0}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_111/*Silver Ring of Intelligence*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_108/*A Silver Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - Rarity = 4, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 5, - maxLevel = 20, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Ring, - icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that - }; - - //Steel Rings------------------------------------------------------------------- - new BaseItem(new int[][] - { - new int[] {1}, - new int[] {12,13,65}, - new int[] {22,25, 57,35,50,53,20}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_112/*Steel Ring of Strength*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_113/*A Steel Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - Rarity = 2, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 1, - maxLevel = 6, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Ring, - icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that - }; - - new BaseItem(new int[][] - { - new int[] {3}, - new int[] {7,10,31,5,65}, - new int[] {14,16, 45,11,17,0}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_114/*Steel Ring of Vitality*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_113/*A Steel Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - Rarity = 2, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 1, - maxLevel = 6, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Ring, - icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that - }; - - new BaseItem(new int[][] - { - new int[] {2}, - new int[] {8,9, 12,13,51,57}, - new int[] {23,54,26,59,18,34}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_115/*Steel Ring of Agility*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_113/*A Steel Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - Rarity = 2, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 1, - maxLevel = 10, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Ring, - icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that - }; - - new BaseItem(new int[][] - { - new int[] {4}, - new int[] {12,13,21,24,6}, - new int[] {19,47,49,57,37,38,21,24}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_116/*Steel Ring of Intelligence*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_113/*A Steel Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - Rarity = 2, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 1, - maxLevel = 6, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Ring, - icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that - }; - - //One Ring to rule them all---------------------------------------------------------- - - new BaseItem(new int[][] - { - new int[] {1,3,2,4}, - new int[] {12,13}, - new int[] {22,25,30,}, - new int[] {35,50,53,20}, - new int[] {5,28}, - new int[] {7,10,31}, - new int[] {11,17,14,16 }, - new int[] {8,9,27,45}, - new int[] {51,52,66}, - new int[] {15,18,34,36,57}, - new int[] {23,48,54,26}, - new int[] {21,24}, - new int[] {19,47,49,57,6}, - new int[] {29,37,38,57}, - new int[] {65}, - new int[] {-1}, - new int[] {-1}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_117/*The One Ring To Rule Them All*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_118/*An Ancient magical Ring of great power.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_119/*It looks like and ordinay ring, but a strange energy is surrounding it. The Ring is said to have been found inside a volcanic rock by an archeologist, who went mad and isolated himself on the peninsula many years ago. But that's just a fairy tale, ring?*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_120/*Attracts unwanted attention of an unknown entity.*/, //tr - Rarity = 7, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 20, - maxLevel = 30, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Ring, - icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that - }; - - //Golden Lockets--------------------------------------------------------------------- - - new BaseItem(new int[][] - { - new int[] {1}, - new int[] {12,13}, - new int[] {22,25,57,}, - new int[] {35,50,53}, - new int[] {65,1,57,47,34,36,18} - }) - { - name = Translations.ItemDataBase_ItemDefinitions_121/*Golden Locket of Strength*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_122/*A Locket of ancient times.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_123/*A Golden Locket that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - Rarity = 3, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 15, - maxLevel = 20, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that - }; - - new BaseItem(new int[][] - { - new int[] {3}, - new int[] {5,6,7}, - new int[] {7,10,31}, - new int[] {11,17}, - new int[] {14,16,45}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_124/*Golden Locket of Vitality*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_122/*A Locket of ancient times.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_123/*A Golden Locket that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - Rarity = 3, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 15, - maxLevel = 20, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that - }; - - new BaseItem(new int[][] - { - new int[] {2}, - new int[] {12,13,51,52,66,8,9,}, - new int[] {12,13,51,52,66}, - new int[] {23,48,54,26}, - new int[] {57,18,47} - }) - { - name = Translations.ItemDataBase_ItemDefinitions_125/*Golden Locket of Agility*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_122/*A Locket of ancient times.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_123/*A Golden Locket that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - Rarity = 3, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 15, - maxLevel = 20, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that - }; - - new BaseItem(new int[][] - { - new int[] {4}, - new int[] {12,13,21,24}, - new int[] {12,13,21,24,19,47,49,}, - new int[] {57,37,38,6}, - new int[] {4,37,38,} - }) - { - name = Translations.ItemDataBase_ItemDefinitions_126/*Golden Locket of Intelligence*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_122/*A Locket of ancient times.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_123/*A Golden Locket that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - Rarity = 3, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 15, - maxLevel = 20, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that - }; - - //Silver Lockets--------------------------------------------------------------------------- - - new BaseItem(new int[][] - { - new int[] {1}, - new int[] {12,13}, - new int[] {22,25,57,}, - new int[] {35,50,53,0}, - new int[] {20,0,0,0} - }) - { - name = Translations.ItemDataBase_ItemDefinitions_127/*Silver Locket of Strength*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_122/*A Locket of ancient times.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_128/*A Silver Locket that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - Rarity = 2, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 5, - maxLevel = 20, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that - }; + public static partial class ItemDataBase + { + static Dictionary>> randomitemNamesPool; - new BaseItem(new int[][] - { - new int[] {3}, - new int[] {7,10,31,5,}, - new int[] {11,17,0}, - new int[] {14,16,0}, - new int[] {45,0,0,0} - }) - { - name = Translations.ItemDataBase_ItemDefinitions_129/*Silver Locket of Vitality*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_122/*A Locket of ancient times.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_128/*A Silver Locket that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - Rarity = 2, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 5, - maxLevel = 20, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that - }; + static void SetNamesPool() + { + randomitemNamesPool = new Dictionary>>(); - new BaseItem(new int[][] - { - new int[] {2}, - new int[] {12,13,51,52,66,8,9,6,}, - new int[] {12,13,51,52,66,0}, - new int[] {15,18,34,36,0}, - new int[] {23,48,54,26}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_130/*Silver Locket of Agility*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_122/*A Locket of ancient times.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_128/*A Silver Locket that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - Rarity = 2, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 5, - maxLevel = 8, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that - }; - new BaseItem(new int[][] - { - new int[] {4}, - new int[] {12,13,21,24}, - new int[] {12,13,21,24,6}, - new int[] {19,47,49,0}, - new int[] {57,37,38,0}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_131/*Silver Locket of Intelligence*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_122/*A Locket of ancient times.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_128/*A Silver Locket that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - Rarity = 2, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 5, - maxLevel = 8, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that - }; + //Shield, Quiver, Helmet, Boot, Pants, ChestArmor, ShoulderArmor, Glove, Bracer, Amulet, Ring, SpellScroll - // Emerald Pendant----------------------------------------------------------- - new BaseItem(new int[][] - { - new int[] {1}, - new int[] {12,13}, - new int[] {22,25,57,1}, - new int[] {35,50,53}, - new int[] {36,65,22,25}, - new int[] {11,18,37,6,8}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_132/*Emerald Pendant of Strength*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_133/*A Pendant of ancient times.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_134/*An Emerald Pendant that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - Rarity = 5, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 10, - maxLevel = 12, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that - }; - new BaseItem(new int[][] - { - new int[] {3}, - new int[] {7,10,31,5}, - new int[] {11,17}, - new int[] {14,16,57,55}, - new int[] {5,7,10,3,31}, - new int[] {57,65}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_135/*Emerald Pendant of Vitality*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_133/*A Pendant of ancient times.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_134/*An Emerald Pendant that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - Rarity = 5, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 10, - maxLevel = 12, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that - }; + //Weapon, Other, Material + //} + } - new BaseItem(new int[][] - { - new int[] {2}, - new int[] {8,9,12,13,51,52,66}, - new int[] {12,13,51,52,66}, - new int[] {15,18,34,36}, - new int[] {23,48,54,26}, - new int[] {52,66,23,26,2}, - new int[] {-1}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_136/*Emerald Pendant of Agility*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_133/*A Pendant of ancient times.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_134/*An Emerald Pendant that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - Rarity = 5, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 10, - maxLevel = 12, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that - }; + static List> GetQuiverNames() + { + List brokenQualityNames = new List() + { + "Potato Sack", + "Cracked Buckler", + "Fractured Aegis", + "Rusted Battered Shield", + "Shattered Guard", + "Tattered Protector", + "Warped Kite Shield", + "Decayed Bulwark", + "Dilapidated Defender", + "Fragmented Ward", + }; + + List commonQualityNames = new List() + { + "Iron Shield", + "Wooden Buckler", + "Militia Guard", + "Footman's Protection", + "Simple Protector", + "Recruit's Shield", + "Basic Bulwark", + "Ordinary Defender", + "Standard Kite Shield", + "Copper Guard", + }; + + List uncommonQualityNames = new List() + { + "Reinforced Buckler", + "Knight's Guard", + "Polished Defender", + "Steel Bulwark", + "Hardwood Shield", + "Sentinel's Guard", + "Reliable Protector", + "Sturdy Aegis", + "Shieldbearer's Wall", + "Bronze-Rimmed Ward", + }; + + List magicQualityNames = new List() + { + "Frostbound Shield", + "Ember Ward", + "Arcane Defender", + "Enchanted Bulwark", + "Whispering Protector", + "Shield of Runes", + "Spellguard Barrier", + "Gleaming Aegis", + "Stormcaller's Shield", + "Mystic Bulwark", + }; + + List rareQualityNames = new List() + { + "Dragonscale Shield", + "Sunfire Aegis", + "Warden's Resolve", + "Shadowforged Bulwark", + "Astral Defender", + "Thunderous Guard", + "Shield of Ancient Kings", + "Celestial Protection", + "Mithril-Bound Guardian", + "Wyvern Wing Shield", + }; + + List uniqueQualityNames = new List() + { + "Bastion of the Fallen Hero", + "Moonlight Reflection", + "Stormheart Shield", + "Guardian of Lost Souls", + "The Unbroken Vow", + "Earthshaker's Wall", + "Twilight's Embrace", + "Dawnbreaker Shield", + "Defiance of the Phoenix", + "The Immovable Object", + }; + + List legendaryQualityNames = new List() + { + "Aegis of the Immortal Emperor", + "Bulwark of the Star Forger", + "The Divine Protector", + "Shield of Eternal Victory", + "Godslayer's Defender", + "Dragonlord's Guardian", + "The Titanic Wall", + "Salvation's Embrace", + "Avatar of Protection", + "The World's Edge", + }; + + List mythicQualityNames = new List() + { + "Cosmos Barrier", + "The Void's Edge", + "Shield of Infinite Worlds", + "Reality's Guardian", + "Divinity's Embrace", + "The Primordial Aegis", + "Eternity's Bulwark", + "Celestial Embodiment", + "The Universal Constant", + "Transcendence", + }; + + + // put all the names into a single list + List> rarityNames = new List>() + { + brokenQualityNames, + commonQualityNames, + uncommonQualityNames, + magicQualityNames, + rareQualityNames, + uniqueQualityNames, + legendaryQualityNames, + mythicQualityNames + }; + return rarityNames; + } - new BaseItem(new int[][] - { - new int[] {4}, - new int[] {29,37,21,24,46,56,19}, - new int[] {12,13,21,24,6}, - new int[] {21,4,47,49}, - new int[] {4,57,47,24}, - new int[] {-1}, - new int[] {-1}, + static List> GetShieldNames() + { + // define names for each of the rarities + List brokenQualityNames = new List() + { + "Splintered Barrier", + "Cracked Buckler", + "Fractured Aegis", + "Rusted Battered Shield", + "Shattered Guard", + "Tattered Protector", + "Warped Kite Shield", + "Decayed Bulwark", + "Dilapidated Defender", + "Fragmented Ward", + }; + + List commonQualityNames = new List() + { + "Iron Shield", + "Wooden Buckler", + "Militia Guard", + "Footman's Protection", + "Simple Protector", + "Recruit's Shield", + "Basic Bulwark", + "Ordinary Defender", + "Standard Kite Shield", + "Copper Guard", + }; + + List uncommonQualityNames = new List() + { + "Reinforced Buckler", + "Knight's Guard", + "Polished Defender", + "Steel Bulwark", + "Hardwood Shield", + "Sentinel's Guard", + "Reliable Protector", + "Sturdy Aegis", + "Shieldbearer's Wall", + "Bronze-Rimmed Ward", + }; + + List magicQualityNames = new List() + { + "Frostbound Shield", + "Ember Ward", + "Arcane Defender", + "Enchanted Bulwark", + "Whispering Protector", + "Shield of Runes", + "Spellguard Barrier", + "Gleaming Aegis", + "Stormcaller's Shield", + "Mystic Bulwark", + }; + + List rareQualityNames = new List() + { + "Dragonscale Shield", + "Sunfire Aegis", + "Warden's Resolve", + "Shadowforged Bulwark", + "Astral Defender", + "Thunderous Guard", + "Shield of Ancient Kings", + "Celestial Protection", + "Mithril-Bound Guardian", + "Wyvern Wing Shield", + }; + + List uniqueQualityNames = new List() + { + "Bastion of the Fallen Hero", + "Moonlight Reflection", + "Stormheart Shield", + "Guardian of Lost Souls", + "The Unbroken Vow", + "Earthshaker's Wall", + "Twilight's Embrace", + "Dawnbreaker Shield", + "Defiance of the Phoenix", + "The Immovable Object", + }; + + List legendaryQualityNames = new List() + { + "Aegis of the Immortal Emperor", + "Bulwark of the Star Forger", + "The Divine Protector", + "Shield of Eternal Victory", + "Godslayer's Defender", + "Dragonlord's Guardian", + "The Titanic Wall", + "Salvation's Embrace", + "Avatar of Protection", + "The World's Edge", + }; + + List mythicQualityNames = new List() + { + "Cosmos Barrier", + "The Void's Edge", + "Shield of Infinite Worlds", + "Reality's Guardian", + "Divinity's Embrace", + "The Primordial Aegis", + "Eternity's Bulwark", + "Celestial Embodiment", + "The Universal Constant", + "Transcendence", + }; + + + // put all the names into a single list + List> rarityNames = new List>() + { + brokenQualityNames, + commonQualityNames, + uncommonQualityNames, + magicQualityNames, + rareQualityNames, + uniqueQualityNames, + legendaryQualityNames, + mythicQualityNames + }; + return rarityNames; + } + + + public static void PopulateItems() + { + new BaseItem(new int[][] + { + new int[] { 34 }, + new int[] {43,0,39,59,67 }, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_1/*Broken Flip-Flops*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_2/*A pair of damaged shoes. Judging by their condition, i can imagine what happened to their owner.*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_3/*Worn by one of the passengers of the plane that Eric also flew in.*/, //tr + Rarity = 0, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Boot, + icon = Res.ResourceLoader.GetTexture(85), + }; + new BaseItem(new int[][] + { + new int[] {34 }, + new int[] {34,0,40,41 }, + new int[] {43 }, + new int[] {43,0 ,67 }, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_4/*Old Boots*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_5/*A pair of old boots. They must have been lying here for ages.*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_6/*Found on the Peninsula, but judging by their condition, they belong neither to a plane passenger nor a cannibal.*/, //tr + Rarity = 0, + minLevel = 1, + maxLevel = 2, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Boot, + icon = Res.ResourceLoader.GetTexture(85), + }; + new BaseItem(new int[][] + { + new int[] {34 }, + new int[] {34,40,41 }, + new int[] {43,3,2 }, + new int[] {43,65,67 }, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_7/*Damaged Leather Boots*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_8/*A pair of leather boots. They look good and have only some scratches.*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_9/*They arrived to the Peninsula the same way Eric did. Since they were in a baggage, they avoided a lot of damage.*/, //tr + Rarity = 1, + minLevel = 1, + maxLevel = 6, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Boot, + icon = Res.ResourceLoader.GetTexture(85), + }; + new BaseItem(new int[][] + { + new int[] {34 }, + new int[] {3,2 }, + new int[] {43,3,2,1,4 }, + new int[] {43,65,67 }, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_10/*Sturdy Leather Boots*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_11/*A pair of leather boots. They are in a very good condition.*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_12/*They arrived to the Peninsula the same way Eric did. Eric found them undamaged in their original box. They still had a pricetag - $419,99.*/, //tr + Rarity = 2, + minLevel = 7, + maxLevel = 12, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Boot, + icon = Res.ResourceLoader.GetTexture(85), + }; + new BaseItem(new int[][] + { + new int[] {34 }, + new int[] {34,39,41,11,57 }, + new int[] {-1}, + new int[] {16,7,8 }, + new int[] {43,65,67 }, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_13/*Damaged Army Boots*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_14/*Sturdy, hard, resistant but damaged boots.*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_15/*They look modern, almost too modern for everything here.*/, //tr + Rarity = 3, + minLevel = 4, + maxLevel = 9, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Boot, + icon = Res.ResourceLoader.GetTexture(85), + }; + new BaseItem(new int[][] + { + new int[] {34 }, + new int[] {34,3,2,11 }, + new int[] {-1}, + new int[] {16,7,8 }, + new int[] {43,65,67 }, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_16/*Army Boots*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_17/*Sturdy, hard, resistant boots.*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_15/*They look modern, almost too modern for everything here.*/, //tr + Rarity = 4, + minLevel = 10, + maxLevel = 14, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Boot, + icon = Res.ResourceLoader.GetTexture(85), + }; + new BaseItem(new int[][] + { + new int[] {25,22 }, + new int[] {11,1,3,17 }, + new int[] {22,1,3,17 }, + new int[] {28,1,65 }, + new int[] {-1 }, + new int[] {5,6,16,31,7,8,9,10 }, + new int[] {5,6,16,31,7,8,9,10 }, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_18/*Armsy Skin Footwear*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_19/*Severed armsy legs, with all of their insides removed. All thats left is dried mutated skin.*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_20/*Armsy, the second heaviest of the mutants needs very resistant skin. It often drags its legs on the ground when it moves. The skin on their legs grew very thick, and has bone tissue mixed with skin tissue.*/, //tr + Rarity = 6, + minLevel = 5, + maxLevel = 8, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Boot, + icon = Res.ResourceLoader.GetTexture(85), + }.DropSettings_OnlyArmsy(); + new BaseItem(new int[][] + { + new int[] {42,0 }, + new int[] {40,41,26,25,67 }, + new int[] {43,65,0 }, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_21/*Finger Warmer*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_22/*A little glove to keep your fingers warm and cozy.*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_23/*Made of wool.*/, //tr + Rarity = 0, + minLevel = 1, + maxLevel = 2, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Glove, + icon = Res.ResourceLoader.GetTexture(86), + }; + new BaseItem(new int[][] + { + new int[] {39,40,41,42,43,24,25,26 }, + new int[] {39,40,41,42,43,24,25,26,44 }, + new int[] {43,0,7,0,5,6,8,0,21,22,23,16,67 }, + new int[] {43,0,7,0,5,6,8,0,0,0,0,21,22,23,65,66,67 }, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_24/*Thick Rubber Glove*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_25/*A glove that helps get a better grip.*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_23/*Made of wool.*/, //tr + Rarity = 1, + minLevel = 1, + maxLevel = 2, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Glove, + icon = Res.ResourceLoader.GetTexture(86), + }; + new BaseItem(new int[][] + { + new int[] {39,40,41,42}, + new int[] {39,40,41,42}, + new int[] {1,2,3,4,5,6,7}, + new int[] {0,18,14}, + new int[] {-1 }, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_26/*Tribal Glove*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_27/*Offers medicore protection.*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_28/*Glove made out of thin bones, some may possibly be from a human.*/, //tr + Rarity = 3, + minLevel = 1, + maxLevel = 2, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Glove, + icon = Res.ResourceLoader.GetTexture(86), + }; + new BaseItem(new int[][] + { + new int[] {1,2,4,6,8,9}, + new int[] {1,11,65}, + new int[] {21,22,23}, + new int[] {12,13,15}, + new int[] {12,13,24,25,26}, + new int[] {24,25,26,44,35}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_29/*Tribe Leader Glove*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_30/*A glove that offers little protection but a lot of offensive stats.*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_31/*A glove made of bones, some have engravings of crosses.*/, //tr + Rarity = 4, + minLevel = 1, + maxLevel = 4, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Glove, + icon = Res.ResourceLoader.GetTexture(86), + }; + new BaseItem(new int[][] + { + new int[] {43,0 }, + new int[] {43,39,40,41,42 }, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_32/*Worn Shorts*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_33/*Some protection for legs.*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_34/*Short, made out of cheap thin fabric, and on top of that they are damaged. But its better than nothing.*/, //tr + Rarity = 0, + minLevel = 1, + maxLevel = 4, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Pants, + icon = Res.ResourceLoader.GetTexture(87), + }; + new BaseItem(new int[][] + { + new int[] {1000,1001,1002}, + new int[] {1000,1001,1002,1003,1004,0,0,0,0}, + new int[] {8,9,0,0,0,0 }, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_35/*Cargo Shorts*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_36/*No protection at all but they allow to carry more items.*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_37/*They are ugly as hell tho*/, //tr + Rarity = 1, + minLevel = 1, + maxLevel = 4, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Pants, + icon = Res.ResourceLoader.GetTexture(87), + }; + new BaseItem(new int[][] + { + new int[] {5 }, + new int[] {43,16,0,41 }, + new int[] {39,40,41,42,43,44,0,0,0,0,0,0,1003,1004}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_38/*Passenger's Jacket*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_39/*It's a little torn. */, //tr + lore = Translations.ItemDataBase_ItemDefinitions_40/*This jacket was worn by Preston A. the 34th passenger on the plane. Eric talked to him at the airport. Guy was odd, and now he's dead.*/, //tr + Rarity = 0, + minLevel = 1, + maxLevel = 4, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.ChestArmor, + icon = Res.ResourceLoader.GetTexture(96), + }; + new BaseItem(new int[][] + { + new int[] {5 }, + new int[] {1,2,3,4,5,6,65}, + new int[] {43,16,0,41,3,2,1 }, + new int[] {6,7,8,9,10,16,17,31, }, + new int[] {39,40,41,42,43,44,0,0,0,0,0,0,1003,1004}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_41/*Leather Jacket*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_42/*Offers little protection*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_43/*This jacket was in a baggage of one of the plane passengers*/, //tr + Rarity = 1, + minLevel = 4, + maxLevel = 7, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.ChestArmor, + icon = Res.ResourceLoader.GetTexture(96), + }; + new BaseItem(new int[][] + { + new int[] {5,3,1 }, + new int[] {5 }, + new int[] {16}, + new int[] {7,11 }, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_44/*Boar Skin Armor*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_45/*It's made from a skin of a huge individual. It's heavy and thick, and surely can protect from attacks of weaker enemies.*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_46/*Boar, one of the animals on the peninsula, is rather rare and it's skin is very durable.*/, //tr + Rarity = 1, + minLevel = 4, + maxLevel = 8, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.ChestArmor, + icon = Res.ResourceLoader.GetTexture(96), + }; + new BaseItem(new int[][] + { + new int[] {5 }, + new int[] {5,3,4,2,1 }, + new int[] {14,0,0,0 }, + new int[] {6,8,9}, + new int[] {6,8,9}, + new int[] {12,13,0,65,66 }, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_47/*Crocodile Skin Armor*/, //tr + Rarity = 2, + minLevel = 7, + maxLevel = 9, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.ChestArmor, + icon = Res.ResourceLoader.GetTexture(96), + }; + BaseItem baseItem1 = new BaseItem(new int[][] + { + new int[] {5 }, + new int[] {16 }, + new int[] {18,17,16}, + new int[] {11}, + new int[] {65,0}, + new int[] {12,13,1,2,3,4}, + new int[] {25,22,0}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_48/*Plate armour*/, //tr + Rarity = 4, + minLevel = 1, + maxLevel = 5, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.ChestArmor, + icon = Res.ResourceLoader.GetTexture(96), + }; + baseItem1.PossibleStats[1][0].Multipier = 2.5f; + new BaseItem(new int[][] + { + new int[] {5 }, + new int[] {65 }, + new int[] {16}, + new int[] {16,43}, + new int[] {16,0,43}, + new int[] {6,8,9}, + new int[] {45,43,39,42}, + new int[] {7,10,11,17,18,31,66}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_49/*Bear Skin Armor*/, //tr + Rarity = 3, + minLevel = 7, + maxLevel = 8, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.ChestArmor, + icon = Res.ResourceLoader.GetTexture(96), + }; + new BaseItem(new int[][] + { + new int[] {5 }, + new int[] {12,13}, + new int[] {13,23,26}, + new int[] {23,26}, + new int[] {34,2,2}, + new int[] {15,14}, + new int[] {16,23,4,5,6,66}, + new int[] {16,23,4,5,6,0,0,0,0}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_50/*Archer's Gear*/, //tr + Rarity = 5, + minLevel = 7, + maxLevel = 9, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.ChestArmor, + icon = Res.ResourceLoader.GetTexture(96), + }; + new BaseItem(new int[][] + { + new int[] {5 }, + new int[] {23,26,2 }, + new int[] {23,26 }, + new int[] {12,13}, + new int[] {13,23,26}, + new int[] {23,26}, + new int[] {34,2,2}, + new int[] {15,14}, + new int[] {16,23,4,5,6}, + new int[] {45,46,66}, + new int[] {27,48}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_51/*Hazard's Gear*/, //tr + Rarity = 6, + minLevel = 5, + maxLevel = 6, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.ChestArmor, + icon = Res.ResourceLoader.GetTexture(96), + }; + new BaseItem(new int[][] + { + new int[] {47 }, + new int[] {4,29 }, + new int[] {4,29 }, + new int[] {4,29 }, + new int[] {4,17,6,44,38,21,24,8,9}, + new int[] {4,17,6,44,38,21,24,8,9}, + new int[] {4,17,6,44,38,21,24,8,9}, + new int[] {4,17,6,44,38,21,24,8,9}, + new int[] {4,17,6,44,38,21,24,8,9}, + new int[] {4,17,6,44,38,21,24,8,9}, + new int[] {4,17,6,44,38,21,24,8,9}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_52/*Mysterious robe*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_53/*Magic flows through the entirety of this object. It's made out of unknown material*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_54/*Robe looks like it was created yesterday, but its older than the oldest of mankinds' civilizations. Simply looking at it sends chills down the spine.*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_55/*Empowers cataclysm. The vortex turns blue, damage is increased, freezes enemies */, //tr + Rarity = 7, + minLevel = 15, + maxLevel = 20, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.ChestArmor, + icon = Res.ResourceLoader.GetTexture(96), + onEquip = () => ModdedPlayer.Stats.spell_cataclysmArcane.value = true, + onUnequip = () => ModdedPlayer.Stats.spell_cataclysmArcane.value = false + }; + new BaseItem(new int[][] + { + new int[] {39,40,41,42,44,8,14,49 }, + new int[] {39,40,41,42,44,8,14,49 }, + new int[] {0,62,63,64}, + new int[] {1,0,65}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_56/*Rusty Longsword*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_57/*A long, very heavy sword. Edge got dull over time. Still, it's in a condition that allows me to slice some enemies in half.*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_58/*The sword appears to be from medieval ages, through it's not. It was made a lot later. It never was used as a weapon in battles, because it was merely a decoration.*/, //tr + Rarity = 3, + minLevel = 13, + maxLevel = 15, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Weapon, + weaponModel = BaseItem.WeaponModelType.LongSword, + icon = Res.ResourceLoader.GetTexture(89), + }; + new BaseItem(new int[][] + { + new int[] {25 }, + new int[] {25 ,62,63,64}, + new int[] {6,49}, + new int[] {22,0,25,1,2,3,4}, + new int[] {1,2,3,4}, + new int[] {39,40,41,42,44,8,18,65 }, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_59/*Longsword*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_60/*Sharp and long*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_61/*The sword is in perfect contidion.*/, //tr + Rarity = 4, + minLevel = 20, + maxLevel = 27, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Weapon, + weaponModel = BaseItem.WeaponModelType.LongSword, + icon = Res.ResourceLoader.GetTexture(89), + }; + new BaseItem(new int[][] + { + new int[] {25 }, + new int[] {6,49}, + new int[] {22,0,25,1,2,3,4}, + new int[] {1,2,3,4,8}, + new int[] {1,2,3,4,8}, + new int[] {5,6,45,46,16,8}, + new int[] {39,40,41,42,44,8 }, + new int[] {39,40,41,42,44,8,62,63,64 }, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_62/*Full Metal Sword*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_63/*It's sooo big...*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_64/*A normal human cannot lift this.*/, //tr + Rarity = 6, + minLevel = 50, + maxLevel = 52, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Weapon, + weaponModel = BaseItem.WeaponModelType.GreatSword, + icon = Res.ResourceLoader.GetTexture(88), + }; + new BaseItem(new int[][] + { + new int[] {25,1,3 }, + new int[] {25,22,1,3 }, + new int[] {25,22,0,0,0,0 }, + new int[] {49 }, + new int[] {14 }, + new int[] {14,1 }, + new int[] {14,31,49 }, + new int[] {14,18,49 }, + new int[] {38,36,1,3,4,5,6,16 ,62,63,64}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_65/*The Leech*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_66/*Hey where did my health g- oh it's back...*/, //tr + Rarity = 6, + minLevel = 60, + maxLevel = 61, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Weapon, + weaponModel = BaseItem.WeaponModelType.GreatSword, + icon = Res.ResourceLoader.GetTexture(88), + }; + new BaseItem(new int[][] + { + new int[] {1,2,3,4 }, + new int[] {1,2,3,15,4,0,0,0 }, + new int[] {12,13,1,2,3,4,5, }, + new int[] {18,16,23,26,19 }, + new int[] {18,16,23,26 }, + new int[] {34,44,45,46 }, + new int[] {2,23,26}, + new int[] {2,23,26,51}, + new int[] {2,23,26,20,16,15,60}, + new int[] {52,66,60,0,0}, + new int[] {66}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_67/*Smokey's Sacred Quiver*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_68/*SmokeyTheBear died because he never used this item.*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_69/*Smokey was the friend of allmighty Hazard, who can materialize any kind of weapon at the snap of his fingers. Hazard remebered Smokey's favourite playstyle and he gave him this as a gift to purge the sh** out of mutants.*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_70("250%", "500%")/*Crossbows operate at 250% speed and deal 400% increased damage*/, //tr + Rarity = 7, + minLevel = 5, + maxLevel = 8, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Quiver, + icon = Res.ResourceLoader.GetTexture(98), + onEquip = () => { ModdedPlayer.Stats.i_SmokeyCrossbowQuiver.value = true; ModdedPlayer.Stats.perk_crossbowDamageMult.Multiply(5); }, + onUnequip = () => + { + ModdedPlayer.Stats.i_SmokeyCrossbowQuiver.value = false; + ModdedPlayer.Stats.perk_crossbowDamageMult.Divide(5); + }, + }; + new BaseItem(new int[][] + { + new int[] {0,42 }, + new int[] {50 }, + new int[] {43,16 }, + new int[] {1,0 }, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_71/*Broken shield*/, //tr + Rarity = 0, + minLevel = 1, + maxLevel = 2, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Shield, + icon = Res.ResourceLoader.GetTexture(99), + }; + new BaseItem(new int[][] + { + new int[] {1,2,3,4,0,42 }, + new int[] {0,42 }, + new int[] {50 }, + new int[] {1,0 }, + new int[] {43,16 }, + new int[] {43,16,0,0 }, + }) + { + name = Translations.Item_1/*Shield*/, //tr + Rarity = 1, + minLevel = 3, + maxLevel = 6, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Shield, + icon = Res.ResourceLoader.GetTexture(99), + }; + new BaseItem(new int[][] + { + new int[] {16}, + new int[] {16}, + new int[] {16}, + new int[] {16,0}, + new int[] {16,0,45,46}, + new int[] {0,42,11 }, + new int[] {50 }, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_72/*Tower Shield*/, //tr + Rarity = 3, + minLevel = 5, + maxLevel = 8, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Shield, + icon = Res.ResourceLoader.GetTexture(99), + }; + new BaseItem(new int[][] + { + new int[] {5,6,7,8,0,0,0}, + new int[] {43}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_73/*Broken Leather Shoulder Armor*/, //tr + Rarity = 0, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.ShoulderArmor, + icon = Res.ResourceLoader.GetTexture(95), + }; + new BaseItem(new int[][] + { + new int[] {5,6,7,8}, + new int[] {43}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_74/*Leather Shoulder Armor*/, //tr + Rarity = 1, + minLevel = 2, + maxLevel = 5, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.ShoulderArmor, + icon = Res.ResourceLoader.GetTexture(95), + }; + new BaseItem(new int[][] + { + new int[] {16}, + new int[] {1,2,3,4}, + new int[] {17}, + new int[] {17}, + new int[] {8,9,49,47}, + new int[] {8,9,49,47}, + new int[] {16,18,11,34}, + new int[] {37,34}, + new int[] {-1}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_75/*Phase Pauldrons*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_76/*The distance of blink is increased by 40 meters, and blink now hits everything that you teleported through*/, //tr + Rarity = 7, + minLevel = 5, + maxLevel = 9, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.ShoulderArmor, + icon = Res.ResourceLoader.GetTexture(95), + onEquip = () => { ModdedPlayer.Stats.spell_blinkRange.Add(40); ModdedPlayer.Stats.spell_blinkDamage.Add(60); }, + onUnequip = () => { ModdedPlayer.Stats.spell_blinkRange.Substract(40); ModdedPlayer.Stats.spell_blinkDamage.Substract(60); }, + }; + new BaseItem(new int[][] + { + new int[] {39,49,5,6,7,8,0,0,0}, + new int[] {43,0}, + new int[] {43}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_77/*MAGA Cap*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_78/*Wearing this item channels the power of D.Trump to you*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_79/*... or does it?*/, //tr + Rarity = 1, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Helmet, + icon = Res.ResourceLoader.GetTexture(91), + }; + new BaseItem(new int[][] + { + new int[] {2000}, + new int[] {2001}, + new int[] {2002}, + new int[] {2003}, + new int[] {16}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + new int[] {1,2,3,4}, + new int[] {21,6}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_80/*Hubble's Vision*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_81/*Wearing this item empowers your black hole spell*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_82/*Man, fuck gravity.*/, //tr + Rarity = 6, + minLevel = 10, + maxLevel = 11, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Helmet, + icon = Res.ResourceLoader.GetTexture(91), + }; + new BaseItem(new int[][] + { + new int[] {39,40,41,42,43,12,13}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_83/*Broken Loop*/, //tr + Rarity = 0, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Ring, + icon = Res.ResourceLoader.GetTexture(90), + }; + new BaseItem(new int[][] + { + new int[] {-1}, + new int[] {39,40,41,42,43,12,13}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_84/*Loop*/, //tr + Rarity = 1, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Ring, + icon = Res.ResourceLoader.GetTexture(90), + }; + new BaseItem(new int[][] + { + new int[] {63}, + new int[] {-1}, + new int[] {39,40,41,42,43,12,13,5,6,7,8,9,12,13,15,16,17,18,10,11}, + new int[] {1,2,3,4,21,22,23,24,25,26,43,12,13}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_85/*Toxic Ring*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_87/*What the fuck did you just fucking say about me, you little bitch? I'll have you know I graduated top of my class in the Navy Seals, and I've been involved in numerous secret raids on Al-Quaeda, and I have over 300 confirmed kills. I am trained in gorilla warfare and I'm the top sniper in the entire US armed forces. You are nothing to me but just another target. I will wipe you the fuck out with precision the likes of which has never been seen before on this Earth, mark my fucking words. You think you can get away with saying that shit to me over the Internet? Think again, fucker. As we speak I am contacting my secret network of spies across the USA and your IP is being traced right now so you better prepare for the storm, maggot. The storm that wipes out the pathetic little thing you call your life. You're fucking dead, kid. I can be anywhere, anytime, and I can kill you in over seven hundred ways, and that's just with my bare hands. Not only am I extensively trained in unarmed combat, but I have access to the entire arsenal of the United States Marine Corps and I will use it to its full extent to wipe your miserable ass off the face of the continent, you little shit. If only you could have known what unholy retribution your little /'clever\' comment was about to bring down upon you, maybe you would have held your fucking tongue. But you couldn't, you didn't, and now you're paying the price, you goddamn idiot. I will shit fury all over you and you will drown in it. You're fucking dead, kiddo."*/, //tr + Rarity = 3, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Ring, + icon = Res.ResourceLoader.GetTexture(90), + }; + new BaseItem(new int[][] + { + new int[] {39,40,41,42,43}, + new int[] {-1}, + new int[] {-1}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_88/*Scarf*/, //tr + Rarity = 1, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Amulet, + icon = Res.ResourceLoader.GetTexture(100), + }; + new BaseItem(new int[][] + { + new int[] {39,40,41,42,43}, + new int[] {43}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_89/*Damaged Bracer*/, //tr + Rarity = 0, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Bracer, + icon = Res.ResourceLoader.GetTexture(93), + }; + new BaseItem(new int[][] + { + new int[] {39,40,41,42,43}, + new int[] {43}, + new int[] {16}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_90/*Worn Bracer*/, //tr + Rarity = 1, + minLevel = 3, + maxLevel = 10, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Bracer, + icon = Res.ResourceLoader.GetTexture(93), + }; + new BaseItem(new int[][] + { + new int[] {39,40,41,42,43}, + new int[] {16}, + new int[] {-1}, + new int[] {5,6,7,8,9,10}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_91/*Leather Bracer*/, //tr + Rarity = 2, + minLevel = 4, + maxLevel = 10, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Bracer, + icon = Res.ResourceLoader.GetTexture(94), + }; + new BaseItem(new int[][] + { + new int[] {32}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_92/*Greater Mutated Heart*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_93/*Can be consumed by right clicking it*/, //tr + Rarity = 7, + minLevel = 1, + maxLevel = 3, + CanConsume = true, + StackSize = 100, + type = BaseItem.ItemType.Other, + icon = Res.ResourceLoader.GetTexture(105), + }; + new BaseItem(new int[][] + { + new int[] {33}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_94/*Lesser Mutated Heart*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_93/*Can be consumed by right clicking it*/, //tr + Rarity = 5, + minLevel = 1, + maxLevel = 6, + CanConsume = true, + StackSize = 1, + type = BaseItem.ItemType.Other, + icon = Res.ResourceLoader.GetTexture(105), + }; + new BaseItem(new int[][] + { + new int[] {1,2}, + new int[] {1,2,3,5,6}, + new int[] {65}, + new int[] {-1}, + new int[] {-1}, + new int[] {53,54}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_95/*Spiked ring*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_96/*Armor piercing for either melee or ranged weapons*/, //tr + Rarity = 4, + minLevel = 10, + maxLevel = 16, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Ring, + icon = Res.ResourceLoader.GetTexture(90), + }; + + new BaseItem(new int[][] + { + new int[] {1,2,3,4,5,6}, + new int[] {1,2,3,4,5,6,65}, + new int[] {-1}, + new int[] {-1 }, + new int[] {1,2,3,4,21,22,23,24,25,26,18,16}, + new int[] {55}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_97/*Piercer*/, //tr + Rarity = 4, + minLevel = 11, + maxLevel = 15, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Amulet, + icon = Res.ResourceLoader.GetTexture(101), + }; + new BaseItem(new int[][] + { + new int[] {59 }, + new int[] {21 }, + new int[] {34,0,40,41 }, + new int[] {16,34}, + new int[] {12 }, + new int[] {-1 }, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_98/*Moon Boots*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_99/*A pair of boots from the moon.*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_100/*It is said that the wearer will not take fall damage while wearing these boots and will jump like on the moon, I wouldn't trust it tough.*/, //tr + Rarity = 4, //range 0-7, 0 is most common, 7 is ultra rare + minLevel = 10, + maxLevel = 14, + CanConsume = false, + StackSize = 1, //stacking in inventory like in mc, one means single item + type = BaseItem.ItemType.Boot, + icon = Res.ResourceLoader.GetTexture(85), //icon ids, don't worry about that + }; + new BaseItem(new int[][] + { + new int[] {1}, + new int[] {1,57,18,36}, + new int[] {12,13,1}, + new int[] {22,25,1}, + new int[] {22,25,1}, + new int[] {50,53,35}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_101/*Golden Ring of Strength*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_103/*A Golden Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr + Rarity = 5, //range 0-7, 0 is most common, 7 is ultra rare + minLevel = 10, + maxLevel = 14, + CanConsume = false, + StackSize = 1, //stacking in inventory like in mc, one means single item + type = BaseItem.ItemType.Ring, + icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that + }; + new BaseItem(new int[][] + { + new int[] {3}, + new int[] {3,31,6,7,8,9}, + new int[] {5,3,41,45}, + new int[] {7,10,31,14}, + new int[] {14,16,11,17}, + new int[] {65,57,45,46}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_104/*Golden Ring of Vitality*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_103/*A Golden Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr + Rarity = 5, //range 0-7, 0 is most common, 7 is ultra rare + minLevel = 10, + maxLevel = 14, + CanConsume = false, + StackSize = 1, //stacking in inventory like in mc, one means single item + type = BaseItem.ItemType.Ring, + icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that + }; + + new BaseItem(new int[][] + { + new int[] {2}, + new int[] {12,13,8,9, }, + new int[] {15,18,34,36}, + new int[] {23,48,54,26,59,55,16}, + new int[] {6,57,2,34,}, + new int[] {52,66,51,2,23} + }) + { + name = Translations.ItemDataBase_ItemDefinitions_105/*Golden Ring of Agility*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_103/*A Golden Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr + Rarity = 5, //range 0-7, 0 is most common, 7 is ultra rare + minLevel = 10, + maxLevel = 20, + CanConsume = false, + StackSize = 1, //stacking in inventory like in mc, one means single item + type = BaseItem.ItemType.Ring, + icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that + }; + new BaseItem(new int[][] + { + new int[] {4}, + new int[] {12,13,21,24,6}, + new int[] {12,13,21,24}, + new int[] {19,47,49}, + new int[] { 37,38,4,24,61,44}, + new int[] { 57,44,6,24,21,47} + }) + { + name = Translations.ItemDataBase_ItemDefinitions_106/*Golden Ring of Intelligence*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_103/*A Golden Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr + Rarity = 5, //range 0-7, 0 is most common, 7 is ultra rare + minLevel = 10, + maxLevel = 20, + CanConsume = false, + StackSize = 1, //stacking in inventory like in mc, one means single item + type = BaseItem.ItemType.Ring, + icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that + }; + //Silver Rings--------------------------------------------------------------------------- + new BaseItem(new int[][] + { + new int[] {1}, + new int[] {22,25,12,13}, + new int[] {35,50,53}, + new int[] {20,0,0,0} + }) + { + name = Translations.ItemDataBase_ItemDefinitions_107/*Silver Ring of Strength*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_108/*A Silver Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr + Rarity = 4, //range 0-7, 0 is most common, 7 is ultra rare + minLevel = 5, + maxLevel = 20, + CanConsume = false, + StackSize = 1, //stacking in inventory like in mc, one means single item + type = BaseItem.ItemType.Ring, + icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that + }; + + new BaseItem(new int[][] + { + new int[] {3}, + new int[] {7,10,31,5, }, + new int[] {11,17,0}, + new int[] {14,16,45}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_109/*Silver Ring of Vitality*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_108/*A Silver Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr + Rarity = 4, //range 0-7, 0 is most common, 7 is ultra rare + minLevel = 5, + maxLevel = 8, + CanConsume = false, + StackSize = 1, //stacking in inventory like in mc, one means single item + type = BaseItem.ItemType.Ring, + icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that + }; + + new BaseItem(new int[][] + { + new int[] {2}, + new int[] {12,13,51,8,9, }, + new int[] {15,18,34,36,0}, + new int[] {23,48,54,26,6,57,0,0,0 } + }) + { + name = Translations.ItemDataBase_ItemDefinitions_110/*Silver Ring of Agility*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_108/*A Silver Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr + Rarity = 4, //range 0-7, 0 is most common, 7 is ultra rare + minLevel = 5, + maxLevel = 20, + CanConsume = false, + StackSize = 1, //stacking in inventory like in mc, one means single item + type = BaseItem.ItemType.Ring, + icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that + }; + + new BaseItem(new int[][] + { + new int[] {4}, + new int[] { 12, 13, 21, 24,12, 13,21,24,0}, + new int[] {19,47,49,6}, + new int[] { 57,37,38,0}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_111/*Silver Ring of Intelligence*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_108/*A Silver Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr + Rarity = 4, //range 0-7, 0 is most common, 7 is ultra rare + minLevel = 5, + maxLevel = 20, + CanConsume = false, + StackSize = 1, //stacking in inventory like in mc, one means single item + type = BaseItem.ItemType.Ring, + icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that + }; + + //Steel Rings------------------------------------------------------------------- + new BaseItem(new int[][] + { + new int[] {1}, + new int[] {12,13,65}, + new int[] {22,25, 57,35,50,53,20}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_112/*Steel Ring of Strength*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_113/*A Steel Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr + Rarity = 2, //range 0-7, 0 is most common, 7 is ultra rare + minLevel = 1, + maxLevel = 6, + CanConsume = false, + StackSize = 1, //stacking in inventory like in mc, one means single item + type = BaseItem.ItemType.Ring, + icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that + }; + + new BaseItem(new int[][] + { + new int[] {3}, + new int[] {7,10,31,5,65}, + new int[] {14,16, 45,11,17,0}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_114/*Steel Ring of Vitality*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_113/*A Steel Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr + Rarity = 2, //range 0-7, 0 is most common, 7 is ultra rare + minLevel = 1, + maxLevel = 6, + CanConsume = false, + StackSize = 1, //stacking in inventory like in mc, one means single item + type = BaseItem.ItemType.Ring, + icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that + }; + + new BaseItem(new int[][] + { + new int[] {2}, + new int[] {8,9, 12,13,51,57}, + new int[] {23,54,26,59,18,34}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_115/*Steel Ring of Agility*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_113/*A Steel Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr + Rarity = 2, //range 0-7, 0 is most common, 7 is ultra rare + minLevel = 1, + maxLevel = 10, + CanConsume = false, + StackSize = 1, //stacking in inventory like in mc, one means single item + type = BaseItem.ItemType.Ring, + icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that + }; + + new BaseItem(new int[][] + { + new int[] {4}, + new int[] {12,13,21,24,6}, + new int[] {19,47,49,57,37,38,21,24}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_116/*Steel Ring of Intelligence*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_113/*A Steel Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr + Rarity = 2, //range 0-7, 0 is most common, 7 is ultra rare + minLevel = 1, + maxLevel = 6, + CanConsume = false, + StackSize = 1, //stacking in inventory like in mc, one means single item + type = BaseItem.ItemType.Ring, + icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that + }; + + //One Ring to rule them all---------------------------------------------------------- + + new BaseItem(new int[][] + { + new int[] {1,3,2,4}, + new int[] {12,13}, + new int[] {22,25,30,}, + new int[] {35,50,53,20}, + new int[] {5,28}, + new int[] {7,10,31}, + new int[] {11,17,14,16 }, + new int[] {8,9,27,45}, + new int[] {51,52,66}, + new int[] {15,18,34,36,57}, + new int[] {23,48,54,26}, + new int[] {21,24}, + new int[] {19,47,49,57,6}, + new int[] {29,37,38,57}, + new int[] {65}, + new int[] {-1}, + new int[] {-1}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_117/*The One Ring To Rule Them All*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_118/*An Ancient magical Ring of great power.*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_119/*It looks like and ordinay ring, but a strange energy is surrounding it. The Ring is said to have been found inside a volcanic rock by an archeologist, who went mad and isolated himself on the peninsula many years ago. But that's just a fairy tale, ring?*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_120/*Attracts unwanted attention of an unknown entity.*/, //tr + Rarity = 7, //range 0-7, 0 is most common, 7 is ultra rare + minLevel = 20, + maxLevel = 30, + CanConsume = false, + StackSize = 1, //stacking in inventory like in mc, one means single item + type = BaseItem.ItemType.Ring, + icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that + }; + + //Golden Lockets--------------------------------------------------------------------- + + new BaseItem(new int[][] + { + new int[] {1}, + new int[] {12,13}, + new int[] {22,25,57,}, + new int[] {35,50,53}, + new int[] {65,1,57,47,34,36,18} + }) + { + name = Translations.ItemDataBase_ItemDefinitions_121/*Golden Locket of Strength*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_122/*A Locket of ancient times.*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_123/*A Golden Locket that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr + Rarity = 3, //range 0-7, 0 is most common, 7 is ultra rare + minLevel = 15, + maxLevel = 20, + CanConsume = false, + StackSize = 1, //stacking in inventory like in mc, one means single item + type = BaseItem.ItemType.Amulet, + icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that + }; + + new BaseItem(new int[][] + { + new int[] {3}, + new int[] {5,6,7}, + new int[] {7,10,31}, + new int[] {11,17}, + new int[] {14,16,45}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_124/*Golden Locket of Vitality*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_122/*A Locket of ancient times.*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_123/*A Golden Locket that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr + Rarity = 3, //range 0-7, 0 is most common, 7 is ultra rare + minLevel = 15, + maxLevel = 20, + CanConsume = false, + StackSize = 1, //stacking in inventory like in mc, one means single item + type = BaseItem.ItemType.Amulet, + icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that + }; + + new BaseItem(new int[][] + { + new int[] {2}, + new int[] {12,13,51,52,66,8,9,}, + new int[] {12,13,51,52,66}, + new int[] {23,48,54,26}, + new int[] {57,18,47} + }) + { + name = Translations.ItemDataBase_ItemDefinitions_125/*Golden Locket of Agility*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_122/*A Locket of ancient times.*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_123/*A Golden Locket that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr + Rarity = 3, //range 0-7, 0 is most common, 7 is ultra rare + minLevel = 15, + maxLevel = 20, + CanConsume = false, + StackSize = 1, //stacking in inventory like in mc, one means single item + type = BaseItem.ItemType.Amulet, + icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that + }; + + new BaseItem(new int[][] + { + new int[] {4}, + new int[] {12,13,21,24}, + new int[] {12,13,21,24,19,47,49,}, + new int[] {57,37,38,6}, + new int[] {4,37,38,} + }) + { + name = Translations.ItemDataBase_ItemDefinitions_126/*Golden Locket of Intelligence*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_122/*A Locket of ancient times.*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_123/*A Golden Locket that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr + Rarity = 3, //range 0-7, 0 is most common, 7 is ultra rare + minLevel = 15, + maxLevel = 20, + CanConsume = false, + StackSize = 1, //stacking in inventory like in mc, one means single item + type = BaseItem.ItemType.Amulet, + icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that + }; + + //Silver Lockets--------------------------------------------------------------------------- + + new BaseItem(new int[][] + { + new int[] {1}, + new int[] {12,13}, + new int[] {22,25,57,}, + new int[] {35,50,53,0}, + new int[] {20,0,0,0} + }) + { + name = Translations.ItemDataBase_ItemDefinitions_127/*Silver Locket of Strength*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_122/*A Locket of ancient times.*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_128/*A Silver Locket that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr + Rarity = 2, //range 0-7, 0 is most common, 7 is ultra rare + minLevel = 5, + maxLevel = 20, + CanConsume = false, + StackSize = 1, //stacking in inventory like in mc, one means single item + type = BaseItem.ItemType.Amulet, + icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that + }; + + new BaseItem(new int[][] + { + new int[] {3}, + new int[] {7,10,31,5,}, + new int[] {11,17,0}, + new int[] {14,16,0}, + new int[] {45,0,0,0} + }) + { + name = Translations.ItemDataBase_ItemDefinitions_129/*Silver Locket of Vitality*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_122/*A Locket of ancient times.*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_128/*A Silver Locket that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr + Rarity = 2, //range 0-7, 0 is most common, 7 is ultra rare + minLevel = 5, + maxLevel = 20, + CanConsume = false, + StackSize = 1, //stacking in inventory like in mc, one means single item + type = BaseItem.ItemType.Amulet, + icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that + }; + + new BaseItem(new int[][] + { + new int[] {2}, + new int[] {12,13,51,52,66,8,9,6,}, + new int[] {12,13,51,52,66,0}, + new int[] {15,18,34,36,0}, + new int[] {23,48,54,26}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_130/*Silver Locket of Agility*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_122/*A Locket of ancient times.*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_128/*A Silver Locket that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr + Rarity = 2, //range 0-7, 0 is most common, 7 is ultra rare + minLevel = 5, + maxLevel = 8, + CanConsume = false, + StackSize = 1, //stacking in inventory like in mc, one means single item + type = BaseItem.ItemType.Amulet, + icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that + }; + + new BaseItem(new int[][] + { + new int[] {4}, + new int[] {12,13,21,24}, + new int[] {12,13,21,24,6}, + new int[] {19,47,49,0}, + new int[] {57,37,38,0}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_131/*Silver Locket of Intelligence*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_122/*A Locket of ancient times.*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_128/*A Silver Locket that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr + Rarity = 2, //range 0-7, 0 is most common, 7 is ultra rare + minLevel = 5, + maxLevel = 8, + CanConsume = false, + StackSize = 1, //stacking in inventory like in mc, one means single item + type = BaseItem.ItemType.Amulet, + icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that + }; + + // Emerald Pendant----------------------------------------------------------- + + new BaseItem(new int[][] + { + new int[] {1}, + new int[] {12,13}, + new int[] {22,25,57,1}, + new int[] {35,50,53}, + new int[] {36,65,22,25}, + new int[] {11,18,37,6,8}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_132/*Emerald Pendant of Strength*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_133/*A Pendant of ancient times.*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_134/*An Emerald Pendant that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr + Rarity = 5, //range 0-7, 0 is most common, 7 is ultra rare + minLevel = 10, + maxLevel = 12, + CanConsume = false, + StackSize = 1, //stacking in inventory like in mc, one means single item + type = BaseItem.ItemType.Amulet, + icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that + }; + + new BaseItem(new int[][] + { + new int[] {3}, + new int[] {7,10,31,5}, + new int[] {11,17}, + new int[] {14,16,57,55}, + new int[] {5,7,10,3,31}, + new int[] {57,65}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_135/*Emerald Pendant of Vitality*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_133/*A Pendant of ancient times.*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_134/*An Emerald Pendant that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr + Rarity = 5, //range 0-7, 0 is most common, 7 is ultra rare + minLevel = 10, + maxLevel = 12, + CanConsume = false, + StackSize = 1, //stacking in inventory like in mc, one means single item + type = BaseItem.ItemType.Amulet, + icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that + }; + + new BaseItem(new int[][] + { + new int[] {2}, + new int[] {8,9,12,13,51,52,66}, + new int[] {12,13,51,52,66}, + new int[] {15,18,34,36}, + new int[] {23,48,54,26}, + new int[] {52,66,23,26,2}, + new int[] {-1}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_136/*Emerald Pendant of Agility*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_133/*A Pendant of ancient times.*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_134/*An Emerald Pendant that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr + Rarity = 5, //range 0-7, 0 is most common, 7 is ultra rare + minLevel = 10, + maxLevel = 12, + CanConsume = false, + StackSize = 1, //stacking in inventory like in mc, one means single item + type = BaseItem.ItemType.Amulet, + icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that + }; + + new BaseItem(new int[][] + { + new int[] {4}, + new int[] {29,37,21,24,46,56,19}, + new int[] {12,13,21,24,6}, + new int[] {21,4,47,49}, + new int[] {4,57,47,24}, + new int[] {-1}, + new int[] {-1}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_137/*Emerald Pendant of Intelligence*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_133/*A Pendant of ancient times.*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_134/*An Emerald Pendant that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr + Rarity = 5, //range 0-7, 0 is most common, 7 is ultra rare + minLevel = 10, + maxLevel = 12, + CanConsume = false, + StackSize = 1, //stacking in inventory like in mc, one means single item + type = BaseItem.ItemType.Amulet, + icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that + }; + + // Diamond Pendant----------------------------------------------------------- + + new BaseItem(new int[][] + { + new int[] {1}, + new int[] {12,13}, + new int[] {22,25,1,}, + new int[] {35,50,53, }, + new int[] {65,30}, + new int[] {-1}, + new int[] {-1}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_138/*Diamond Pendant of Strength*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_133/*A Pendant of ancient times.*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_139/*A Diamond Pendant that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr + Rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare + minLevel = 12, + maxLevel = 14, + CanConsume = false, + StackSize = 1, //stacking in inventory like in mc, one means single item + type = BaseItem.ItemType.Amulet, + icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that + }; + + new BaseItem(new int[][] + { + new int[] {3}, + new int[] {5,6,7,8,9,10}, + new int[] {7,10,31}, + new int[] {11,17}, + new int[] {14,16}, + new int[] {28,11}, + new int[] {-1}, + new int[] {-1}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_140/*Diamond Pendant of Vitality*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_133/*A Pendant of ancient times.*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_139/*A Diamond Pendant that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr + Rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare + minLevel = 12, + maxLevel = 14, + CanConsume = false, + StackSize = 1, //stacking in inventory like in mc, one means single item + type = BaseItem.ItemType.Amulet, + icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that + }; + + new BaseItem(new int[][] + { + new int[] {2}, + new int[] {8,9,12,13,51,52,66}, + new int[] {12,13,51,52,66,15,18,34,36 }, + new int[] {23,48,54,26}, + new int[] {54,52,66,2}, + new int[] {2,18,38}, + new int[] {57,2,6}, + new int[] {-1}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_141/*Diamond Pendant of Agility*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_133/*A Pendant of ancient times.*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_139/*A Diamond Pendant that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr + Rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare + minLevel = 12, + maxLevel = 14, + CanConsume = false, + StackSize = 1, //stacking in inventory like in mc, one means single item + type = BaseItem.ItemType.Amulet, + icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that + }; + + new BaseItem(new int[][] + { + new int[] {4}, + new int[] {12,13,21,24}, + new int[] {12,13,21,24,6,65}, + new int[] {19,47,49,11,5,6,7,8,46,34}, + new int[] {29,4}, + new int[] {21,4,47,49}, + new int[] {4,57,47,24}, + new int[] {-1}, + new int[] {-1}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_142/*Diamond Pendant of Intelligence*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_133/*A Pendant of ancient times.*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_139/*A Diamond Pendant that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr + Rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare + minLevel = 12, + maxLevel = 14, + CanConsume = false, + StackSize = 1, //stacking in inventory like in mc, one means single item + type = BaseItem.ItemType.Amulet, + icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that + }; + + //Rare Amulets ----------------------------------------------------------------------------------------- + + var armsyFingerNecklace = new BaseItem(new int[][] + { + new int[] {1}, + new int[] {65}, + new int[] {18,11}, + new int[] {-1}, + new int[] {12,13}, + new int[] {22,25,30,}, + new int[] {35,50,53,57}, + new int[] {20,57} + }) + { + name = Translations.ItemDataBase_ItemDefinitions_143/*Armsy Finger Necklace*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_144/*A Necklace decorated with armsy fingertips.*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_145/*A Necklace made from the fingertips of an armsy, yeilding it's raw power and strentgh.*/, //tr + Rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare + minLevel = 1, + maxLevel = 5, + CanConsume = false, + StackSize = 1, //stacking in inventory like in mc, one means single item + type = BaseItem.ItemType.Amulet, + icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that + + }; + armsyFingerNecklace.DropSettings_OnlyArmsy(); + armsyFingerNecklace.PossibleStats[0][0].Multipier = 2; + armsyFingerNecklace.PossibleStats[1][0].Multipier = 2; + var virginiaHeartPedant = new BaseItem(new int[][] + { + new int[] {2}, + new int[] {23}, + new int[] {48}, + new int[] {-1}, + new int[] {5,28}, + new int[] {7,10,31}, + new int[] {11,17,57}, + new int[] {14,16,57}, + new int[] {45,57} + }) + { + name = Translations.ItemDataBase_ItemDefinitions_146/*Virginia Heart Pendant*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_147/*A Pendant of a petrified Virginia heart.*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_148/*A Pendant made from a petrified Virginia heart, yeilding it's love and Vitality.*/, //tr + Rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare + minLevel = 1, + maxLevel = 5, + CanConsume = false, + StackSize = 1, //stacking in inventory like in mc, one means single item + type = BaseItem.ItemType.Amulet, + icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that + }; + virginiaHeartPedant.DropSettings_OnlyVags(); + virginiaHeartPedant.PossibleStats[0][0].Multipier = 2; + virginiaHeartPedant.PossibleStats[1][0].Multipier = 2.25f; + + var cowmanToeNecklace = new BaseItem(new int[][] + { + new int[] {3}, + new int[] {31,6}, + new int[] {28}, + new int[] {8,9,27}, + new int[] {12,13,51,52,66}, + new int[] {12,13,51,52,66,57}, + new int[] {15,18,34,36,57}, + new int[] {23,48,54,26}, + new int[] {65,57} + }) + { + name = Translations.ItemDataBase_ItemDefinitions_149/*Cowman Toe Necklace*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_150/*A Necklace decorated with cowman toes.*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_151/*A Necklace made from the fingertips of an armsy, yeilding it's speed and agility.*/, //tr + Rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare + minLevel = 20, + maxLevel = 40, + CanConsume = false, + StackSize = 1, //stacking in inventory like in mc, one means single item + type = BaseItem.ItemType.Amulet, + icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that + }; + cowmanToeNecklace.DropSettings_OnlyCow(); + cowmanToeNecklace.PossibleStats[0][0].Multipier = 3; + cowmanToeNecklace.PossibleStats[1][0].Multipier = 2; + new BaseItem(new int[][] + { + new int[] {47}, + new int[] {4,0}, + new int[] {21,0}, + new int[] {38,31,49,14}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + new int[] {12,13,21,24,6}, + new int[] {19,47,49,6}, + new int[] {29,37,38}, + new int[] {29,37,38,}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_152/*Pendant of Perpetual Rebirth*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_153/*A Pendant of a shrunken babyhead.*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_154/*A pedant of great power. Obtainable only from babies or crafting*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_155(1)/*decrease a random cooldown by 1 second whenever you hit something with melee or ranged attack.*/, //tr + Rarity = 7, //range 0-7, 0 is most common, 7 is ultra rare + minLevel = 30, + maxLevel = 40, + CanConsume = false, + StackSize = 1, //stacking in inventory like in mc, one means single item + type = BaseItem.ItemType.Amulet, + icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that + onEquip = () => ModdedPlayer.Stats.i_infinityLoop.value = true, + onUnequip = () => ModdedPlayer.Stats.i_infinityLoop.value = false, + }.DropSettings_OnlyBaby(); + + //Boss drop Amulet---------------------------------------------------------------------------------------- + + new BaseItem(new int[][] + { + new int[] {1,2,4}, + new int[] {12,13}, + new int[] {22,25,30,18,5,28}, + new int[] {35,50,53,57,56,20,57,19,18}, + new int[] {7,10,31}, + new int[] {45,16,10,11,9,8, 14, 16, 57,11, 17,57}, + new int[] { 51, 52,66,8, 9,27}, + new int[] {15,18,34,36,57}, + new int[] {23,48,54,26}, + new int[] {6,55,46,54,53}, + new int[] {19,47,49,57, 21,24,29,37,38,57}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_156/*Megan's Locket*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_157/*The Locket Megan wore.*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_158/*Megan wore this Locket, it has a picture of her mom in it.*/, //tr + Rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare + minLevel = 1, + maxLevel = 4, + CanConsume = false, + StackSize = 1, //stacking in inventory like in mc, one means single item + type = BaseItem.ItemType.Amulet, + icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that + }.DropSettings_OnlyMegan(); + + BaseItem RelicHammer = new BaseItem(new int[][] + { + new int[] {25 }, + new int[] {18 }, + new int[] {2004 }, + new int[] {1,62,63,64 }, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_159/*Relic Hammer*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_160/*It's slow and weak.*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_161/*Slows on hit*/, //tr + Rarity = 2, + minLevel = 20, + maxLevel = 22, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Weapon, + weaponModel = BaseItem.WeaponModelType.Hammer, + icon = Res.ResourceLoader.GetTexture(109), + }; + RelicHammer.PossibleStats[1][0].Multipier = -4; + + BaseItem GreaterHammer = new BaseItem(new int[][] + { + new int[] {25 }, + new int[] {18 }, + new int[] {2004 }, + new int[] {1,3,62,63,64}, + new int[] {53,16}, + new int[] {39,31,43,0,0}, + new int[] {25 ,22,1,12,13,5,6}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_162/*Black Hammer*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_163/*It's slow but with enough strength i can make it a very deadly tool*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_161/*Slows on hit*/, //tr + Rarity = 4, + minLevel = 30, + maxLevel = 35, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Weapon, + weaponModel = BaseItem.WeaponModelType.Hammer, + icon = Res.ResourceLoader.GetTexture(109), + }; + GreaterHammer.PossibleStats[1][0].Multipier = -3; + //Item 0/6 + new BaseItem(new int[][] + { + new int[] {23,26}, + new int[] {2,6,4}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_164/*Potato Sack*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_165/*Can be used as a quiver*/, //tr + Rarity = 0, + minLevel = 1, + maxLevel = 4, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Quiver, + icon = Res.ResourceLoader.GetTexture(98), + }; + + //Item 1/6 + new BaseItem(new int[][] + { + new int[] {23,26}, + new int[] {40,41,42}, + new int[] {40,16,60}, + new int[] {2}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_166/*Rabbit Skin Quiver*/, //tr + Rarity = 1, + minLevel = 2, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Quiver, + icon = Res.ResourceLoader.GetTexture(98), + }; + + //Item 2/6 + new BaseItem(new int[][] + { + new int[] {26}, + new int[] {23,2,54}, + new int[] {18,60,61}, + new int[] {40,41,16,5,6,40}, + new int[] {-1}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_167/*Hollow Log*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_168/*It allows for faster drawing of arrow than a cloth quiver*/, //tr + Rarity = 2, + minLevel = 6, + maxLevel = 9, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Quiver, + icon = Res.ResourceLoader.GetTexture(98), + }; + + //Item 3/6 + new BaseItem(new int[][] + { + new int[] {26,23}, + new int[] {24,21}, + new int[] {17,16,18,54,51,52,66}, + new int[] {2,3,4,15,14,13,12,11,10}, + new int[] {5,6,47,60,61}, + new int[] {2,3,4,5,6,7,8,11,12,16,18,37}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_169/*Spellbound Quiver*/, //tr + Rarity = 3, + minLevel = 6, + maxLevel = 11, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Quiver, + icon = Res.ResourceLoader.GetTexture(98), + }; + + //Item 4/6 + new BaseItem(new int[][] + { + new int[] {23,26}, + new int[] {23}, + new int[] {2,3,4}, + new int[] {34,18,17,16,15,14,60,61,55,}, + new int[] {16,19,23,31,54,51,52,66,57}, + new int[] {2,0}, + new int[] {2,3,4,5,6,7,8,9,10}, + new int[] {2,1,5,6}, + new int[] {-1}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_170/*Long Lost Quiver*/, //tr + Rarity = 5, + minLevel = 12, + maxLevel = 20, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Quiver, + icon = Res.ResourceLoader.GetTexture(98), + }; + + //Item 5/6 + new BaseItem(new int[][] + { + new int[] {37, 24,47}, + new int[] {42,6,17,61}, + new int[] {-1}, + new int[] {4,0}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_171/*Spell Scroll*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_172/*Contains a lot of information on how to properly cast spells to achieve better results*/, //tr + Rarity = 1, + minLevel = 1, + maxLevel = 1, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.SpellScroll, + icon = Res.ResourceLoader.GetTexture(110), + }; + + new BaseItem(new int[][] + { + new int[] {16,43}, + new int[] {43,39,40,41,42}, + new int[] {43,39,40,41,42}, + new int[] {43,0,0,0}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_173/*Cloth Pants*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_174/*Offer little protction*/, //tr + Rarity = 1, + minLevel = 2, + maxLevel = 5, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Pants, + icon = Res.ResourceLoader.GetTexture(87), + }; + + //Item 1/7 + new BaseItem(new int[][] + { + new int[] {16}, + new int[] {1,2,3,4}, + new int[] {5,6}, + new int[] {16,43,39,40,41,42}, + new int[] {1000,1001,1002,1003,1004,43,0,0,0}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_175/*Rough Hide Leggins*/, //tr + Rarity = 3, + minLevel = 1, + maxLevel = 1, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Pants, + icon = Res.ResourceLoader.GetTexture(87), + }; + + //Item 2/7 + new BaseItem(new int[][] + { + new int[] {16,}, + new int[] {1,2,3,4}, + new int[] {5,44,7,8}, + new int[] {6,16,3}, + new int[] {1,2,3,4,11}, + new int[] {17,16,10,9}, + new int[] {16,43}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_176/*Plate Leggins*/, //tr + Rarity = 4, + minLevel = 4, + maxLevel = 10, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Pants, + icon = Res.ResourceLoader.GetTexture(87), + }; + + //Item 3/7 + new BaseItem(new int[][] + { + new int[] {16}, + new int[] {19}, + new int[] {1,2,3,4,5,6,7,8}, + new int[] {39,40,41,42,43}, + new int[] {4}, + new int[] {-1}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_177/*Sage's Robes*/, //tr + Rarity = 3, + minLevel = 1, + maxLevel = 6, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Pants, + icon = Res.ResourceLoader.GetTexture(87), + }; + + //Item 4/7 + new BaseItem(new int[][] + { + new int[] {1,2,3,4}, + new int[] {1,5}, + new int[] {16}, + new int[] {22,25}, + new int[] {11,12,13,14,5,6,1,2,3,4}, + new int[] {7,8,9,10,44,45,46,49}, + new int[] {31,1,3,}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_178/*Hammer Jammers*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_179("450%")/*Damage of your smash attack is increased by 450%, hammer stun duration is doubled*/, //tr + Rarity = 7, + minLevel = 20, + maxLevel = 28, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Pants, + icon = Res.ResourceLoader.GetTexture(87), + onEquip = () => { ModdedPlayer.Stats.smashDamage.Multiply(4.5f); ModdedPlayer.Stats.i_HammerStunAmount.Multiply(2); }, + onUnequip = () => { ModdedPlayer.Stats.smashDamage.Divide(4.5f); ModdedPlayer.Stats.i_HammerStunAmount.Divide(2); }, + }; + + //Item 5/7 + new BaseItem(new int[][] + { + new int[] {16}, + new int[] {34}, + new int[] {1,2,4,6,7,8}, + new int[] {-1}, + new int[] {26,23,24,21}, + new int[] {1000, 1001,1002, 1003, 1004, 0,0,0,1,2,4}, + new int[] {51,1,2,3,4,55}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_180/*Pirate Pants*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_181/*Those pants are ligh and comfortable. They offer plenty of mobility but lack in protection.*/, //tr + Rarity = 5, + minLevel = 1, + maxLevel = 1, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Pants, + icon = Res.ResourceLoader.GetTexture(87), + }; + + //Item 6/7 + new BaseItem(new int[][] + { + new int[] {16}, + new int[] {1,2,3,4,16,17}, + new int[] {18,34}, + new int[] {1,2,3,4}, + new int[] {5,6,15,16,13,12,11}, + new int[] {8,4,2,9}, + new int[] {22,21,23}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_182/*Hexed Pants of Mr M.*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_183/*They look like yoga pants but for a man the size of a wardrobe*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_184/*Once upon a time there was a man who was in a basement and fed himself with nothing but nuggets. He got so obese that friends and family started worrying. Hazard noticed this man and cursed his pants to force him to excercise.*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_185("60%", "1%")/*While moving, energy regeneration and damage is increased by 40%. While standing still for longer than a second, you loose 1% of max health per second.*/, //tr + Rarity = 7, + minLevel = 14, + maxLevel = 15, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Pants, + icon = Res.ResourceLoader.GetTexture(87), + onEquip = () => ModdedPlayer.Stats.i_HexedPantsOfMrM_Enabled.value = true, + onUnequip = () => ModdedPlayer.Stats.i_HexedPantsOfMrM_Enabled.value = false, + }; + new BaseItem(new int[][] + { +new int[] {39,40,41,42,43}, +new int[] {39,40,41,42,43}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_186/*Leather Mantle*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_187/*A piece of cloth to give protection from */, //tr + Rarity = 1, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.ShoulderArmor, + icon = Res.ResourceLoader.GetTexture(95), + }; + + //Item 1/6 + new BaseItem(new int[][] + { +new int[] {16}, +new int[] {16}, +new int[] {1,2,3,4,5,6}, +new int[] {39,40,41,42,43}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_188/*Shoulder Guards*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_189/*Medium armor piece.*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_190/*Heavy armor*/, //tr + Rarity = 2, + minLevel = 4, + maxLevel = 7, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.ShoulderArmor, + icon = Res.ResourceLoader.GetTexture(95), + }; + + //Item 2/6 + BaseItem Heavy_Shoulder_Plates = new BaseItem(new int[][] + { + new int[] {34}, + new int[] {18}, + new int[] {16}, + new int[] {16,65}, + new int[] {1,2,3,4}, + new int[] {1,2,3,4,5,8,9,7,10}, + new int[] {17,10,5,8,9,7,10}, + new int[] {5,45,3}, + new int[] {11}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_191/*Heavy Shoulder Plates*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_192/*Heavy armor piece. They offer great protection at the cost of attack speed and movement speed decrease*/, //tr + Rarity = 4, + minLevel = 15, + maxLevel = 20, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.ShoulderArmor, + icon = Res.ResourceLoader.GetTexture(95), + }; + Heavy_Shoulder_Plates.PossibleStats[0][0].Multipier = -1; + Heavy_Shoulder_Plates.PossibleStats[1][0].Multipier = -1; + Heavy_Shoulder_Plates.PossibleStats[2][0].Multipier = 3; + + //Item 3/6 + new BaseItem(new int[][] + { + new int[] {21,22,23,24,25,26}, + new int[] {16}, + new int[] {1,2,3,4}, + new int[] {1,2,3,4,16,39,40,41,42,43}, + new int[] {1,2,3,4,16,39,40,41,42,43}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_193/*Etched Mantle*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_194/*Those pauldrons empower wearer's combat skill*/, //tr + Rarity = 3, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.ShoulderArmor, + icon = Res.ResourceLoader.GetTexture(95), + }; + + //Item 4/6 + new BaseItem(new int[][] + { + new int[] {22,25}, + new int[] {1,2,3,4}, + new int[] {16}, + new int[] {12,11,13,14}, + new int[] {5,6}, + new int[] {10,15,16,17,18,19,31,35,36,44,45,46,47,49,50,53,55}, + new int[] {10,15,16,17,18,19,31,35,36,44,45,46,47,49,50,53,55}, + new int[] {53,55}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_195/*Assassins Pauldrons*/, //tr + Rarity = 5, + minLevel = 4, + maxLevel = 6, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.ShoulderArmor, + icon = Res.ResourceLoader.GetTexture(95), + }; + + //Item 5/6 + new BaseItem(new int[][] + { + new int[] {11}, + new int[] {1,2,3,4}, + new int[] {16}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + new int[] {21,22,23,24,25,26}, + new int[] {5,14,7,10,45}, + new int[] {1,2,3,4}, + new int[] {12,13,15,16,18}, + new int[] {17,19,21,22,23}, + new int[] {37,35,36,38,44,45,47}, + new int[] {1,2,4}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_196/*Death Pact*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_197/*Find the greatest strength on the border of life and death.*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_198("6%", "5%")/*Every attack you make decreases your health by 7% of max health. For every percent of missing health you gain 5% damage amplification. This damage cannot kill you.*/, //tr + Rarity = 7, + minLevel = 5, + maxLevel = 8, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.ShoulderArmor, + icon = Res.ResourceLoader.GetTexture(95), + onEquip = () => ModdedPlayer.Stats.i_DeathPact_Enabled.value = true, + onUnequip = () => ModdedPlayer.Stats.i_DeathPact_Enabled.value = false, + }; + new BaseItem(new int[][] + { + new int[] {56}, + new int[] {-1}, + new int[] {-1}, + new int[] {1,2,3,4}, + new int[] {11,12,13,14,15,16,17,18}, + new int[] {11,12,13,14,15,16,17,18}, + new int[] {5,6,7,8,9,10,31}, + new int[] {55,54,53,50}, + new int[] {1,2,3,4,21,22,23,24,25,26}, + new int[] {16,0,0,0,1,2,3,4,0,0,0,0}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_199/*Maximale Qualitöt*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_200/*A platinum ring with the most expensive jewels engraved on it. It's quality is uncomparable.*/, //tr + Rarity = 6, + minLevel = 1, + maxLevel = 4, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Ring, + icon = Res.ResourceLoader.GetTexture(90), + }; + new BaseItem(new int[][] + { + }) + { + name = Translations.ItemDataBase_ItemDefinitions_201/*Heart of Purity*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_202/*A object filled with both destructive and creative energy. Allows to re-assign all spent mutation points*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_203/*This powerful relic contains so much power, that it can kill anything and force it to come back to life, resulting in it's rebirth.*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_204/*Can be consumed by right clicking it. */, //tr + Rarity = 4, + minLevel = 1, + maxLevel = 2, + CanConsume = true, + StackSize = 100, + type = BaseItem.ItemType.Other, + icon = Res.ResourceLoader.GetTexture(105), + onEquip = ModdedPlayer.Respec + }; + + new BaseItem(new int[][] + { +new int[] {1,2,3,4,57}, +new int[] {16,17,14}, +new int[] {50,11}, +new int[] {49,39,40,41,42,45,44}, +new int[] {5,6,9,8,10,12,13,14,}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_205/*Round Shield*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_206/*A sturdy shield made of wood and reinforced with iron.*/, //tr + Rarity = 2, + minLevel = 5, + maxLevel = 8, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Shield, + icon = Res.ResourceLoader.GetTexture(99), + }; + + //Item 1/5 + new BaseItem(new int[][] + { +new int[] {1,11,5,7}, +new int[] {57,2,3,4,5,6,7,8,10,11}, +new int[] {39,40,41,42,43,44,45,46}, +new int[] {50}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_207/*Old Buckler*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_208/*An old shield.*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_209/*This item has a lot of scratches that look like they were made by something with sharp claws.*/, //tr + Rarity = 1, + minLevel = 4, + maxLevel = 12, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Shield, + icon = Res.ResourceLoader.GetTexture(99), + }; + + //Item 2/5 + new BaseItem(new int[][] + { +new int[] {16}, +new int[] {16,50}, +new int[] {-1}, +new int[] {-1}, +new int[] {-1}, +new int[] {11}, +new int[] {39,40,41,42,43,50,57}, +new int[] {39,40,41,42,43,50,57}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_210/*Dark Oak Shield*/, //tr + Rarity = 4, + minLevel = 1, + maxLevel = 1, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Shield, + icon = Res.ResourceLoader.GetTexture(99), + }; + + //Item 3/5 + new BaseItem(new int[][] + { +new int[] {15,14}, +new int[] {2,3,4,1,41,42,57}, +new int[] {-1}, +new int[] {-1}, +new int[] {-1}, +new int[] {65,1,16,25}, +new int[] {2,4,5,6}, +new int[] {16,7,8,22,23,25,26}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_211/*Bone Shield*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_212/*A shield made of bones, held together by thick steel wire.*/, //tr + Rarity = 3, + minLevel = 1, + maxLevel = 1, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Shield, + icon = Res.ResourceLoader.GetTexture(99), + }; + + new BaseItem(new int[][] + { +new int[] {18}, +new int[] {0,0,0,0,62,63,64}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_213/*Dull Longsword*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_214/*It's round on the edges*/, //tr + Rarity = 0, + minLevel = 15, + maxLevel = 20, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Weapon, + weaponModel = BaseItem.WeaponModelType.LongSword, + icon = Res.ResourceLoader.GetTexture(89), + }.PossibleStats[0][0].Multipier = -3; + + new BaseItem(new int[][] + { + new int[] {16}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + new int[] {65}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_215/*Iron Horn*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_216("10%")/*When using Warcry, you and all allies recieve armor bonus equal to 10% of your armor*/, //tr + Rarity = 4, + minLevel = 1, + maxLevel = 2, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Amulet, + icon = Res.ResourceLoader.GetTexture(101), + onEquip = () => ModdedPlayer.Stats.spell_warCryGiveArmor.value = true, + onUnequip = () => ModdedPlayer.Stats.spell_warCryGiveArmor.value = false, + }.PossibleStats[0][0].Multipier = 2; + + //Item 1/5 + new BaseItem(new int[][] + { + new int[] {16}, + new int[] {31,7,8,9,10}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_217/*The Great Iron Horn*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_216("10%") + Translations.ItemDataBase_ItemDefinitions_608/*When using Warcry, you and all allies recieve armor bonus equal to 10% of your armor*/, //tr + Rarity = 7, + minLevel = 1, + maxLevel = 2, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Amulet, + icon = Res.ResourceLoader.GetTexture(101), + onEquip = () => + { + ModdedPlayer.Stats.spell_warCryGiveArmor.value = true; + ModdedPlayer.Stats.spell_warCryGiveDamageResistance.value = true; + }, + onUnequip = () => + { + ModdedPlayer.Stats.spell_warCryGiveArmor.value = false; + ModdedPlayer.Stats.spell_warCryGiveDamageResistance.value = true; + }, + }.PossibleStats[0][0].Multipier = 5; + + //Item 2/5 + new BaseItem(new int[][] + { + new int[] {16}, + new int[] {1}, + new int[] {65,0}, + new int[] {5,16,18}, + new int[] {21,22,23,0,0,0}, + new int[] {24,25,26,0,0,0}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_218/*Horned Helmet*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_219/*A viking helmet*/, //tr + Rarity = 2, + minLevel = 2, + maxLevel = 8, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Helmet, + icon = Res.ResourceLoader.GetTexture(91), + }; + + //Item 3/5 + new BaseItem(new int[][] + { + new int[] {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,31,36,37,38,43,44,45,46,47,49,50,53,54,55,57}, + new int[] {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,31,36,37,38,43,44,45,46,47,49,50,53,54,55,57}, + new int[] {-1}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_220/*Mask*/, //tr + Rarity = 2, + minLevel = 1, + maxLevel = 5, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Helmet, + icon = Res.ResourceLoader.GetTexture(91), + }; + + //Item 4/5 + BaseItem mask = new BaseItem(new int[][] + { + new int[] {18}, + new int[] {22,23,21}, + new int[] {11}, + new int[] {1,2,3,4,5,6,7,8,9,10,12,13,14,15,16,17,18,31,36,37,38,43,44,45,46,47,49,50,53,54,55,57}, + new int[] {1,2,3,4,5,6,7,8,9,10,12,13,14,15,16,17,18,31,36,37,38,43,44,45,46,47,49,50,53,54,55,57}, + new int[] {1,2,3,4,5,6,7,8,9,10,12,13,14,15,16,17,18,31,36,37,38,43,44,45,46,47,49,50,53,54,55,57}, + new int[] {24,25,26,0,0,0}, + new int[] {29,30,48}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_221/*Mask of Madness*/, //tr + Rarity = 5, + minLevel = 2, + maxLevel = 6, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Helmet, + icon = Res.ResourceLoader.GetTexture(91), + }; + mask.PossibleStats[2][0].Multipier = -4; + mask.PossibleStats[0][0].Multipier = 1.5f; + mask.PossibleStats[1][0].Multipier = 2.5f; + mask.PossibleStats[1][1].Multipier = 2.5f; + mask.PossibleStats[1][2].Multipier = 2.5f; + + new BaseItem(new int[][] + { + new int[] {47,49,37,38}, + new int[] {42,4}, + new int[] {44}, + new int[] {21}, + new int[] {-1}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_222/*Old Scroll*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_172/*Contains a lot of information on how to properly cast spells to achieve better results*/, //tr + Rarity = 3, + minLevel = 1, + maxLevel = 1, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.SpellScroll, + icon = Res.ResourceLoader.GetTexture(110), + }; + new BaseItem(new int[][] + { + new int[] {57}, + new int[] {1,2,3,4}, + new int[] {5,46}, + new int[] {6,45}, + new int[] {21,24,11,12,13,14,15,16}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + new int[] {4,18,7,8,19}, + new int[] {27,28,29,30,48,47}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_223/*Wormhole Stabilizators*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_224/*High-tech gear*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_225/*Hazard remember to put some fucking lore in here, don't leave it like this!*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_226("570")/*Increases the duration of a portal by 570 seconds*/, //tr + Rarity = 7, + minLevel = 4, + maxLevel = 6, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Bracer, + icon = Res.ResourceLoader.GetTexture(94), + onEquip = () => ModdedPlayer.Stats.spell_portalDuration.Add(570), + onUnequip = () => ModdedPlayer.Stats.spell_portalDuration.Substract(570), + }; + new BaseItem(new int[][] + { + new int[] {57}, + new int[] {1,2,3,4}, + new int[] {5,46}, + new int[] {6,45}, + new int[] {21,24,11,12,13,14,15,16}, + new int[] {16}, + new int[] {17}, + new int[] {4,18,7,8,19}, + new int[] {27,28,29,30,48,47}, + new int[] {-1}, + new int[] {-1}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_227/*Cripplers*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_228(15)/*Increases the duration of a magic arrow's negative effect by 10 seconds*/, //tr + Rarity = 7, + minLevel = 3, + maxLevel = 6, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Glove, + icon = Res.ResourceLoader.GetTexture(86), + onEquip = () => ModdedPlayer.Stats.spell_magicArrowDuration.Add(15), + onUnequip = () => ModdedPlayer.Stats.spell_magicArrowDuration.Substract(15), + }; + + new BaseItem(new int[][] + { + new int[] {24,4}, + new int[] {26,4}, + new int[] {21,2}, + new int[] {23,2,0,0,0,0}, + new int[] {2,4,57,16}, + new int[] {6,8,9,44,46}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + new int[] {12,13,14,15,16,18}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_229/*Crossfire*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_230/*Infused with powerful magic. This item is a dangerous tool of destruction.*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_231/*When hitting an enemy with a projectile, create a magic arrow pointed at the enemy and shoot it without using in energy. This effect may occur once every seconds, but can be interval can be shortened with cooldown reduction.*/, //tr + Rarity = 7, + minLevel = 1, + maxLevel = 6, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Quiver, + icon = Res.ResourceLoader.GetTexture(98), + onEquip = () => ModdedPlayer.Stats.i_CrossfireQuiver.value = true, + onUnequip = () => ModdedPlayer.Stats.i_CrossfireQuiver.value = false, + }; + + new BaseItem(new int[][] + { + new int[] {44}, + new int[] {44,8}, + new int[] {44,4,6,9,4}, + new int[] {49,7,0}, + new int[] {-1}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_232/*Scroll of Recovery*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_233/*Recovers health and stamina*/, //tr + Rarity = 1, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.SpellScroll, + icon = Res.ResourceLoader.GetTexture(110), + }; + + new BaseItem(new int[][] + { + new int[] {11}, + new int[] {-1}, + new int[] {16,15}, + new int[] {37,38}, + new int[] {42,24}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_234/*Tiara*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_235/*A beautiful tiara */, //tr + lore = Translations.ItemDataBase_ItemDefinitions_236/*This tiara may not provide much protection, but it sure is pretty*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_237/*Shiny*/, //tr + Rarity = 2, + minLevel = 5, + maxLevel = 10, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Helmet, + icon = Res.ResourceLoader.GetTexture(91), + }; + + //Item 1/2 + new BaseItem(new int[][] + { + new int[] {-1}, + new int[] {15}, + new int[] {15}, + new int[] {17,16}, + new int[] {17,16}, + new int[] {0,65}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_238/*Chastity belt*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_239/*Dodge those fukbois*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_240/*This belt will stop those cheeky cannibals and armsies from getting into your pants*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_241("99%")/* 100% damage reduction while sleeping*/, //tr + Rarity = 2, + minLevel = 1, + maxLevel = 2, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Pants, + icon = Res.ResourceLoader.GetTexture(87), + }; + new BaseItem(new int[][] + { + new int[] {2005}, + new int[] {-1}, + new int[] {-1}, + new int[] {42,43}, + new int[] {44,0,49,}, + new int[] {21,24,0,0,0,0}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_242/*Ice Scroll*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_243/*A spell surrounded by flying shards of ice, contains tramendous power of cold.*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_244/*Created at the top of the mountain.*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_581("250", 2)/*Snap freeze damage is increased and the slow duration is increased by 1 second*/, //tr + Rarity = 4, + minLevel = 30, + maxLevel = 40, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.SpellScroll, + icon = Res.ResourceLoader.GetTexture(110), + onEquip = () => { ModdedPlayer.Stats.spell_snapDamageScaling.Add(250f); ModdedPlayer.Stats.spell_snapFreezeDuration.Add(2); }, + onUnequip = () => { ModdedPlayer.Stats.spell_snapDamageScaling.Substract(250f); ModdedPlayer.Stats.spell_snapFreezeDuration.Add(2); } + }; + new BaseItem(new int[][] + { + new int[] {2006}, + new int[] {57,1,2,3,4}, + new int[] {34,45,46,15,1,2,3,4,57,11,14,7,10,59}, + new int[] {8,1,2,3,4,9,5,6}, + new int[] {1000,1001,1002}, + new int[] {1000,1001,1002, 1003, 1004, 0,0,0,0,0,0,0}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_245/*Motorboat Modification Blueprints*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_246/*Sheet of paper that allows to turn any raft into a high speed. Increases carry amount and increases speed of rafts.*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_247/*Who did this lmao.*/, //tr + Rarity = 4, + minLevel = 1, + maxLevel = 4, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.SpellScroll, + icon = Res.ResourceLoader.GetTexture(110), + }; + new BaseItem(new int[][] + { + new int[]{1,2,3,4}, + new int[]{18}, + new int[]{18,0,0,62,63,64}, + new int[] {1,2,3,4,6,55}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_248/*Axe of Swiftness*/, //tr + Rarity = 3, + minLevel = 15, + maxLevel = 17, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Weapon, + weaponModel = BaseItem.WeaponModelType.Axe, + icon = Res.ResourceLoader.GetTexture(138), + }.PossibleStats[1][0].Multipier = 1.6f; + new BaseItem(new int[][] + { + new int[]{1,26,22}, + new int[]{18}, + new int[]{18,62,63,64}, + new int[] {1,2,3,4,6,55,59,57,34,35,36,14,44,49}, + new int[] {53,22,25,12,13}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_249/*Severer*/, //tr + Rarity = 4, + minLevel = 25, + maxLevel = 25, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Weapon, + weaponModel = BaseItem.WeaponModelType.Axe, + icon = Res.ResourceLoader.GetTexture(138), + }.PossibleStats[1][0].Multipier = 2.5f; + + new BaseItem(new int[][] + { + new int[]{1,26,22}, + new int[]{18}, + new int[]{1,2,3,4,5,6,7,8,9,10,12,13,14,15,16,17,18,20,34,35,36,37,38,44,45,46,47,49,53,54,55,}, + new int[]{62,63,64,0,0,0}, + new int[]{19,56}, + new int[] {1,2,3,4,6,55,59,57,34,35,36,14,44,49}, + new int[] {53,22,25,12,13,1,2,3,4,39,40,41,42,43}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_250/*Golden Axe of Fortune*/, //tr + Rarity = 5, + minLevel = 35, + maxLevel = 36, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Weapon, + weaponModel = BaseItem.WeaponModelType.Axe, + icon = Res.ResourceLoader.GetTexture(138), + }.PossibleStats[1][0].Multipier = 2.5f; + new BaseItem(new int[][] + { + new int[]{26,22}, + new int[]{63}, + new int[]{1,2,3,4,5,6,7,8,9,10,12,13,14,15,16,17,18,20,34,35,36,37,38,44,45,46,47,49,53,54,55,}, + new int[]{62,63,64,65}, + new int[]{19,56}, + new int[] {26}, + new int[] {53,22,25,12,13,1,2,3,4,39,40,41,42,43}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_251/*Axe of Misfortune*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_252/*Misfortunate are the ones on the recieving end. They will bleed a lot*/, //tr + Rarity = 5, + minLevel = 6, + maxLevel = 9, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Weapon, + weaponModel = BaseItem.WeaponModelType.Axe, + icon = Res.ResourceLoader.GetTexture(138), + }.PossibleStats[1][0].Multipier = 3; + + new BaseItem(new int[][] + { + new int[] {1,2,3,4}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_253/*Golden Ring*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_103/*A Golden Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr + Rarity = 4, //range 0-7, 0 is most common, 7 is ultra rare + minLevel = 1, + maxLevel = 4, + CanConsume = false, + StackSize = 1, //stacking in inventory like in mc, one means single item + type = BaseItem.ItemType.Ring, + icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that + }; + new BaseItem(new int[][] + { + new int[] {1,2,3,4}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_254/*Golden Locket*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_122/*A Locket of ancient times.*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_123/*A Golden Locket that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr + Rarity = 3, //range 0-7, 0 is most common, 7 is ultra rare + minLevel = 1, + maxLevel = 4, + CanConsume = false, + StackSize = 1, //stacking in inventory like in mc, one means single item + type = BaseItem.ItemType.Amulet, + icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that + }; + new BaseItem(new int[][] + { + new int[]{0,39} + }) + { + name = Translations.ItemDataBase_ItemDefinitions_255/*Dull Axe*/, //tr + Rarity = 0, + minLevel = 15, + maxLevel = 24, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Weapon, + weaponModel = BaseItem.WeaponModelType.Axe, + icon = Res.ResourceLoader.GetTexture(138), + }; + new BaseItem(new int[][] + { + new int[] {1,2,3,4 }, + new int[] {1,2,3,15,4,0,0,0 }, + new int[] {12,13,1,2,3,4,5, }, + new int[] {18,16,23,26,19 }, + new int[] {18,16,23,26 }, + new int[] {34,44,45,46 }, + new int[] {2,23,26}, + new int[] {2,23,26,51}, + new int[] {2,23,26,20,16,15,60}, + new int[] {52,66,60,0,0}, + new int[] {-1}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_256/*Precise Adjustments*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_257(15)/*Focus attack speed buff duration is increased by 16 seconds*/, //tr + Rarity = 7, + minLevel = 5, + maxLevel = 8, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Quiver, + icon = Res.ResourceLoader.GetTexture(98), + onEquip = () => ModdedPlayer.Stats.spell_focusOnAtkSpeedDuration.Add(16), + onUnequip = () => ModdedPlayer.Stats.spell_focusOnAtkSpeedDuration.Substract(16), + }; + new BaseItem(new int[][] + { + new int[] {25 }, + new int[] {22,1,18,}, + new int[] {1,2,3,4,57,}, + new int[] {27,28,30}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + new int[] {15,14,45,7,35,10}, + new int[] {62,63,64, }, + new int[] {53,61 }, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_258/*Rage*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_259(15)/*Increases maximum stacks of frenzy by 10*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_260/*Swords go brrrrrrttt*/, //tr + Rarity = 7, + minLevel = 6, + maxLevel = 9, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Weapon, + weaponModel = BaseItem.WeaponModelType.GreatSword, + icon = Res.ResourceLoader.GetTexture(88), + onEquip = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Add(15), + onUnequip = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Substract(15), + }.PossibleStats[0][0].Multipier = 5; + + BaseItem jaggedRipper = new BaseItem(new int[][] + { + new int[] {1,2,3,4,57,}, + new int[]{18}, + new int[] {25 }, + new int[] {62,63,64, }, + new int[] {53, }, + new int[] {49,14, }, + new int[] {35,36,15,12, }, + new int[] {27,28,30}, + new int[]{18,62,63,64}, + new int[] {65}, + new int[] {-1}, + new int[] {-1}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_261/*Jagged Edge*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_262("30%", "30%")/*Bash has 30% a chance to make enemies to bleed for 30% of damage dealt per second for duration of slow*/, //tr + Rarity = 7, + minLevel = 1, + maxLevel = 5, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Weapon, + weaponModel = BaseItem.WeaponModelType.Axe, + icon = Res.ResourceLoader.GetTexture(138), + onEquip = () => ModdedPlayer.Stats.spell_bashBleedChance.Add(0.3f), + onUnequip = () => ModdedPlayer.Stats.spell_bashBleedChance.Substract(0.3f), + }; + jaggedRipper.PossibleStats[1][0].Multipier = 2; + + new BaseItem(new int[][] + { + new int[] {25 }, + new int[] {22,}, + new int[] {1,2,3,4,57,}, + new int[] {27,28,30}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + new int[] {15,14,45,7,35,10}, + new int[] {62,63,64, }, + new int[] {53,61 }, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_263/*Bloodthirster*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_264/*Drenched in blood of many unfortunate foes.*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_265("2%")/*Bash lifesteals 2% of damage dealt into energy and health*/, //tr + Rarity = 7, + minLevel = 1, + maxLevel = 5, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Weapon, + weaponModel = BaseItem.WeaponModelType.LongSword, + icon = Res.ResourceLoader.GetTexture(89), + onEquip = () => ModdedPlayer.Stats.spell_bashLifesteal.Add(0.02f), + onUnequip = () => ModdedPlayer.Stats.spell_bashLifesteal.Substract(0.02f), + }.PossibleStats[0][0].Multipier = 3; + new BaseItem(new int[][] + { + new int[] {25 }, + new int[] {22 }, + new int[] {2004 }, + new int[] {62,63,64 }, + new int[] {27,28,30,29,48}, + new int[] {1}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_266/*Frost Giant*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_267/*Melee hits freeze enemies*/, //tr + Rarity = 7, + minLevel = 1, + maxLevel = 2, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Weapon, + weaponModel = BaseItem.WeaponModelType.Hammer, + icon = Res.ResourceLoader.GetTexture(109), + onEquip = () => + { + ModdedPlayer.Stats.i_HammerStunDuration.Multiply(2); + ModdedPlayer.Stats.i_HammerStunAmount.Multiply(0); + }, + onUnequip = () => + { + ModdedPlayer.Stats.i_HammerStunDuration.Divide(2); + ModdedPlayer.Stats.i_HammerStunAmount.Reset(); + }, + }.PossibleStats[0][0].Multipier = 3.25f; + + new BaseItem(new int[][] + { + new int[] {11}, + new int[] {65}, + new int[] {16,17}, + new int[] {1,11,45}, + new int[] {15}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_268/*Alexander's Shield*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_269/*Parry has a chance to be casted when getting it. Requires parry to be equipped*/, //tr + Rarity = 7, + minLevel = 1, + maxLevel = 2, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Shield, + icon = Res.ResourceLoader.GetTexture(99), + onEquip = () => ModdedPlayer.Stats.spell_chanceToParryOnHit.value = true, + onUnequip = () => ModdedPlayer.Stats.spell_chanceToParryOnHit.value = false, + }; + + new BaseItem(new int[][] + { + new int[] {1}, + new int[] {12,3,16,45,46}, + new int[] {13,4,62,64}, + new int[] {22}, + new int[] {25,22}, + new int[] {25}, + new int[] {11,1}, + new int[] {30,1,57}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_270/*King Qruies*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_271/*A mighty sword seeking for it's owner*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_272/*Gain additional melee damage equal to the last instance of physical damage taken.*/, //tr + Rarity = 7, + minLevel = 10, + maxLevel = 12, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Weapon, + weaponModel = BaseItem.WeaponModelType.LongSword, + icon = Res.ResourceLoader.GetTexture(89), + onEquip = () => ModdedPlayer.Stats.i_KingQruiesSword.value = true, + onUnequip = () => ModdedPlayer.Stats.i_KingQruiesSword.value = false, + }; + + new BaseItem(new int[][] + { + new int[] {2,3,4,5,6,11,12,13,15,23,26,51,60,44,49,48}, + new int[] {2,3,4,5,6,11,12,13,15,23,26,51,60,44,49,48}, + new int[] {13,4,62,64}, + new int[] {26,2,34,57,55}, + new int[] {26,23}, + new int[] {18,16}, + new int[] {48,2,55}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_273/*Grip of Sora*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_274/*Look, a porcupine! -Sora*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_275("20%", "+4")/*Multishot drains 20% less energy and shoots +4 projectiles. Additional projectiles do not increase the cost of multishot*/, //tr + Rarity = 7, + minLevel = 10, + maxLevel = 12, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Bracer, + icon = Res.ResourceLoader.GetTexture(93), + onEquip = () => ModdedPlayer.Stats.i_SoraBracers.value = true, + onUnequip = () => ModdedPlayer.Stats.i_SoraBracers.value = false, + }; + new BaseItem(new int[][] + { + new int[] {18}, + new int[] {60,0}, + new int[] {2,40}, + new int[] {12,13,2,40,16,66}, + new int[] {39,40,41,42,43,0,0}, + new int[] {23,26}, + new int[] {-1,0}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_276/*Ancient Greatbow*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_277/*A massive and slow bow, deals extra damage*/, //tr + Rarity = 4, + minLevel = 10, + maxLevel = 12, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Weapon, + weaponModel = BaseItem.WeaponModelType.Greatbow, + icon = Res.ResourceLoader.GetTexture(170), + }.PossibleStats[0][0].Multipier = -1.55f; + + new BaseItem(new int[][] + { + new int[] {18}, + new int[] {61}, + new int[] {2,0,0,0}, + new int[] {12,13,2,40,16}, + new int[] {39,40,41,42,43,0,0}, + new int[] {23,26,2,66}, + new int[] {23,26}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + new int[] {2,3,4,5,6,11,12,13,15,23,26,51,60,44,49,48}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_278/*Phoenix's Death*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_279/*Ignites enemies on hit*/, //tr + Rarity = 6, + minLevel = 10, + maxLevel = 12, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Weapon, + weaponModel = BaseItem.WeaponModelType.Greatbow, + icon = Res.ResourceLoader.GetTexture(170), + onEquip = () => ModdedPlayer.Stats.i_greatBowIgnites.value = true, + onUnequip = () => ModdedPlayer.Stats.i_greatBowIgnites.value = false, + }.PossibleStats[0][0].Multipier = -1.7f; + + new BaseItem(new int[][] + { + new int[] {18}, + new int[] {61,48}, + new int[] {2,3,5}, + new int[] {12,13,2,40,16}, + new int[] {39,40,41,42,43,66}, + new int[] {23,26}, + new int[] {23,26}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + new int[] {2,3,4,5,6,11,12,13,15,23,26,51,60,44,49,48}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_280/*Soulstring*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_281/*A massive and slow bow*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_282(100)/*Blood infused arrow now deals additional 20 points of damage per health consumed*/, //tr + Rarity = 7, + minLevel = 10, + maxLevel = 12, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Weapon, + weaponModel = BaseItem.WeaponModelType.Greatbow, + icon = Res.ResourceLoader.GetTexture(170), + onEquip = () => ModdedPlayer.Stats.spell_bia_HealthDmMult.Add(100), + onUnequip = () => ModdedPlayer.Stats.spell_bia_HealthDmMult.Substract(100), + }.PossibleStats[0][0].Multipier = -1.7f; + + new BaseItem(new int[][] + { + new int[] {18}, + + new int[] {2,40,0}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_283/*Greatbow*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_277/*A massive and slow bow, deals extra damage*/, //tr + Rarity = 2, + minLevel = 25, + maxLevel = 28, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Weapon, + weaponModel = BaseItem.WeaponModelType.Greatbow, + icon = Res.ResourceLoader.GetTexture(170), + }.PossibleStats[0][0].Multipier = -2.7f; + + new BaseItem(new int[][] + { + new int[] {2,3,4,5,6,11,12,13,15,23,26,51,60,44,49,48}, + new int[] {2,3,4,5,6,11,12,13,15,23,26,51,60,44,49,48}, + new int[] {13,4,62,64}, + new int[] {26,2,34,57,55}, + new int[] {26,23}, + new int[] {26,0,0}, + new int[] {18,16}, + new int[] {30,1,57}, + new int[] {5}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_284/*Withered Crown*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_285/*Worn by Hazard.*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_286("4")/*A single cast of blood infused arrow affects 4 more projectiles*/, //tr + Rarity = 7, + minLevel = 10, + maxLevel = 12, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Helmet, + icon = Res.ResourceLoader.GetTexture(91), + onEquip = () => ModdedPlayer.Stats.i_HazardCrown.value = true, + onUnequip = () => ModdedPlayer.Stats.i_HazardCrown.value = false, + }; + new BaseItem(new int[][] + { + new int[] {39,40,41,42,43,4}, + new int[] {4,6,24,21,16,3,42,43,49}, + new int[] {0,6,24,21,16,3,47,49,38,17,10,11,9,8,7,6}, + new int[] {37,4}, + new int[] {43,16,17,37,47 }, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_287/*Novice Magic Caster's Bracers*/, //tr + Rarity = 4, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Bracer, + icon = Res.ResourceLoader.GetTexture(93), + }; + new BaseItem(new int[][] + { + new int[] {2,12,13,23,26,40,43,54}, + new int[] {2,12,13,23,26,40,43,60,62,63,51,52,66}, + new int[] {5,6,7,8,9,10,16,17,26}, + new int[] {37,0,0,0}, + new int[] {43,16,2 }, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_288/*Ranger's Bracers*/, //tr + Rarity = 4, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Bracer, + icon = Res.ResourceLoader.GetTexture(93), + }; + new BaseItem(new int[][] + { + new int[] {1,16,5,6,18,39,14,22,25,53,62,63,57,45}, + new int[] {2,12,13,22,25,40,43,54}, + new int[] {5,6,7,8,9,10,16,17,26}, + new int[] {37,1,17,18,16}, + new int[] {43,1,65 }, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_289/*Swordsman's Bracers*/, //tr + Rarity = 4, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Bracer, + icon = Res.ResourceLoader.GetTexture(93), + }; + new BaseItem(new int[][] + { + new int[] {3,5,6,7,8,9,10,11,14,15,16}, + new int[] {7,16,18,0,0}, + new int[] {39,40,41,42,43,31,16}, + new int[] {1,2,3,4,5,57,39,40,41,42,43,31,16}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_290/*Healer's Bracers*/, //tr + Rarity = 5, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Bracer, + icon = Res.ResourceLoader.GetTexture(93), + }; + new BaseItem(new int[][] + { + new int[] {39,40,41,42,43,4}, + new int[] {4,6,24,21,16,3,42,43,49}, + new int[] {0,6,24,21,16,3,47,49,38,17,10,11,9,8,7,6}, + new int[] {37,0,0,0}, + new int[] {43,4 }, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_291/*Novice Magic Caster's Gloves*/, //tr + Rarity = 4, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Glove, + icon = Res.ResourceLoader.GetTexture(86), + }; + new BaseItem(new int[][] + { + new int[] {2,12,13,23,26,40,43,54}, + new int[] {2,12,13,23,26,40,43,60,62,63,51,52,66}, + new int[] {5,6,7,8,9,10,16,17,26}, + new int[] {37,68}, + new int[] {43,2 }, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_292/*Ranger's Gloves*/, //tr + Rarity = 4, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Glove, + icon = Res.ResourceLoader.GetTexture(86), + }; + new BaseItem(new int[][] + { + new int[] {1,16,5,6,18,39,14,22,25,53,62,63,57,45}, + new int[] {2,12,13,23,26,40,43,54}, + new int[] {5,6,7,8,9,10,16,17,26}, + new int[] {37,18,7,0}, + new int[] {43,1,65 }, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_293/*Swordsman's Gloves*/, //tr + Rarity = 4, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Glove, + icon = Res.ResourceLoader.GetTexture(86), + }; + new BaseItem(new int[][] + { + new int[] {3,5,6,7,8,9,10,11,14,15,16}, + new int[] {7,16,18,0,0}, + new int[] {39,40,41,42,43,31,16}, + new int[] {1,2,3,4,5,57,39,40,41,42,43,31,16}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_294/*Healer's Gloves*/, //tr + Rarity = 5, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Glove, + icon = Res.ResourceLoader.GetTexture(86), + }; + new BaseItem(new int[][] + { + new int[] {62,63,64,55,54,53,48,30,29,28,27}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_295/*Fate Gloves*/, //tr + Rarity = 6, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Glove, + icon = Res.ResourceLoader.GetTexture(86), + }; + new BaseItem(new int[][] + { + new int[] {62,63,64,55,54,53,48,30,29,28,27}, + new int[] {34}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_296/*Fate Boots*/, //tr + Rarity = 6, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Boot, + icon = Res.ResourceLoader.GetTexture(85), + }; + new BaseItem(new int[][] + { + new int[] {62,63,64,55,54,53,48,30,29,28,27}, + new int[] {34}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_297/*Greed*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_298/*Automatically casts wide reach every second*/, //tr + Rarity = 7, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Boot, + icon = Res.ResourceLoader.GetTexture(85), + onEquip = () => ModdedPlayer.Stats.i_isGreed.value = true, + onUnequip = () => ModdedPlayer.Stats.i_isGreed.value = false, + }; + BaseItem titaniumleggins = new BaseItem(new int[][] + { + new int[] { 16}, + new int[] {31}, + new int[] {1,2,3,4}, + new int[] {5,}, + new int[] {-1,65}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_299/*Titanium Leggins*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_300/*Heavily armored leg protection. Suffers from the same weaknesses as spartan armor.*/, //tr + Rarity = 6, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Pants, + icon = Res.ResourceLoader.GetTexture(87), + }; + titaniumleggins.PossibleStats[0][0].Multipier = 3; + titaniumleggins.PossibleStats[1][0].Multipier = 1.5f; + new BaseItem(new int[][] + { + new int[] {42,39,40,41,43,0,0 }, + new int[] {16,24,25,26,5,6,7,8,9,10,11,12,13,14,15,17,18,55,60,61,62,63,64,0,0,0 }, + new int[] {16,24,25,26,5,6,7,8,9,10,11,12,13,14,15,17,18,55,60,61,62,63,64 }, + new int[] {43,0,0,0,16 }, + new int[] {65,0}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_301/*Iron Gauntlet*/, //tr + Rarity = 2, + minLevel = 1, + maxLevel = 2, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Glove, + icon = Res.ResourceLoader.GetTexture(86), + }; + + new BaseItem(new int[][] + { + new int[] {4,3,6}, + new int[] {21,24,16 }, + new int[] {29,4 }, + new int[] {16,15,17 }, + new int[] {47,49,44,45,46 }, + new int[] {-1 }, + new int[] {-1 }, + new int[] {-1 }, + new int[] {-1 }, + new int[] {-1 }, + new int[] {-1 }, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_302/*Magefist*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_303/*Gloves that amplify magic*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_304/*Spells deal double damage but have double the energy cost*/, //tr + Rarity = 7, + minLevel = 1, + maxLevel = 2, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Glove, + icon = Res.ResourceLoader.GetTexture(86), + onEquip = () => { ModdedPlayer.Stats.spellIncreasedDmg.valueMultiplicative *= 2f; ModdedPlayer.Stats.spellCost.valueMultiplicative *= 2f; }, + onUnequip = () => { ModdedPlayer.Stats.spellIncreasedDmg.valueMultiplicative /= 2f; ModdedPlayer.Stats.spellCost.valueMultiplicative /= 2f; } + }; + new BaseItem(new int[][] + { + new int[] {34 }, + new int[] {34,5,1,2,4,3,2,11 }, + new int[] {16,3,2,1,4 }, + new int[] {16,7,8 }, + new int[] {16, }, + new int[] {-1 }, + new int[] {43 }, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_305/*Armored Boots*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_306/*Heavily armored, resistant to damage boots.*/, //tr + Rarity = 5, + minLevel = 10, + maxLevel = 14, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Boot, + icon = Res.ResourceLoader.GetTexture(85), + }; + new BaseItem(new int[][] + { + new int[] {16}, + new int[] {16,18,57,53}, + new int[] {16,1,2,3,4,21,22,23,24,25,26,31,15,5,6,7,8,9}, + new int[] {1,2,3,4,57}, + new int[] {16,45,46,0,0,0}, + new int[] {-1 }, + new int[] {-1 }, + new int[] {-1 }, + new int[] {-1 }, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_307/*Broken Protector*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_308/*This shield failed to protect those behind it.*/, //tr + Rarity = 6, + minLevel = 5, + maxLevel = 8, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Shield, + icon = Res.ResourceLoader.GetTexture(99), + }.PossibleStats[0][0].Multipier = 2; + + new BaseItem(new int[][] + { + new int[] {4}, + new int[] {6,4,3,44}, + new int[] {21,24}, + new int[] {21,24}, + new int[] {-1,}, + new int[] {-1}, + new int[] {-1}, + new int[] {47,4,5,6,7,61,17,0,0,0,0,2,56,57,49,64}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_309/*Forbidden Scroll*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_310/*Too powerful to be kept.*/, //tr + Rarity = 6, + minLevel = 1, + maxLevel = 1, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.SpellScroll, + icon = Res.ResourceLoader.GetTexture(110), + }; + + new BaseItem(new int[][] + { + new int[] {16}, + new int[] {1,2,3,4}, + new int[] {17}, + new int[] {8,9,49,47}, + new int[] {16,18,11,34}, + new int[] {37,34}, + new int[] {-1}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_311/*Doom Pauldrons*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_312/*Despite the cool name, they are completely normal pair of shoulder armor.*/, //tr + Rarity = 6, + minLevel = 5, + maxLevel = 9, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.ShoulderArmor, + icon = Res.ResourceLoader.GetTexture(95), + }; + new BaseItem(new int[][] + { + new int[] {16}, + new int[] {1,2,3,4,57,53,54,55}, + new int[] {17,18,11,15}, + new int[] {15}, + new int[] {34}, + new int[] {16,5,6,7,8,9,10,11,12,13,14,15,17,18,59,47,45,46,60}, + new int[] {23,22,30,27,34,44,48,59}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_313/*Wind armor*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_314/*Run fast like the wind*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_315("20%", "35%", "2000", "5%")/*Upon dodging an attack, gain 20% movement speed, 35% damage, 2000 armor, and heal for 5% of your maximum health*/, //tr + Rarity = 7, + minLevel = 5, + maxLevel = 9, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.ChestArmor, + icon = Res.ResourceLoader.GetTexture(96), + onEquip = () => ModdedPlayer.Stats.i_isWindArmor.value = true, + onUnequip = () => ModdedPlayer.Stats.i_isWindArmor.value = false, + }; + new BaseItem(new int[][] + { + new int[] {11}, + new int[] {22,23,21}, + new int[] {16}, + new int[] {1,2,3,4,5,6,7,8,9,10,12,13,14,15,16,17,18,31,36,37,38,43,44,45,46,47,49,50,53,54,55,57}, + new int[] {-1}, + new int[] {-1}, + new int[] {24,25,26,0,0,0}, + //new int[] {29,30,48}, }) - { - name = Translations.ItemDataBase_ItemDefinitions_137/*Emerald Pendant of Intelligence*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_133/*A Pendant of ancient times.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_134/*An Emerald Pendant that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - Rarity = 5, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 10, - maxLevel = 12, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that - }; - - // Diamond Pendant----------------------------------------------------------- - - new BaseItem(new int[][] - { - new int[] {1}, - new int[] {12,13}, - new int[] {22,25,1,}, - new int[] {35,50,53, }, - new int[] {65,30}, - new int[] {-1}, - new int[] {-1}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_138/*Diamond Pendant of Strength*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_133/*A Pendant of ancient times.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_139/*A Diamond Pendant that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - Rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 12, - maxLevel = 14, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that - }; - - new BaseItem(new int[][] - { - new int[] {3}, - new int[] {5,6,7,8,9,10}, - new int[] {7,10,31}, - new int[] {11,17}, - new int[] {14,16}, - new int[] {28,11}, - new int[] {-1}, - new int[] {-1}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_140/*Diamond Pendant of Vitality*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_133/*A Pendant of ancient times.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_139/*A Diamond Pendant that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - Rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 12, - maxLevel = 14, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that - }; - - new BaseItem(new int[][] - { - new int[] {2}, - new int[] {8,9,12,13,51,52,66}, - new int[] {12,13,51,52,66,15,18,34,36 }, - new int[] {23,48,54,26}, - new int[] {54,52,66,2}, - new int[] {2,18,38}, - new int[] {57,2,6}, - new int[] {-1}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_141/*Diamond Pendant of Agility*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_133/*A Pendant of ancient times.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_139/*A Diamond Pendant that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - Rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 12, - maxLevel = 14, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that - }; - - new BaseItem(new int[][] - { - new int[] {4}, - new int[] {12,13,21,24}, - new int[] {12,13,21,24,6,65}, - new int[] {19,47,49,11,5,6,7,8,46,34}, - new int[] {29,4}, - new int[] {21,4,47,49}, - new int[] {4,57,47,24}, - new int[] {-1}, - new int[] {-1}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_142/*Diamond Pendant of Intelligence*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_133/*A Pendant of ancient times.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_139/*A Diamond Pendant that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - Rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 12, - maxLevel = 14, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that - }; - - //Rare Amulets ----------------------------------------------------------------------------------------- - - var armsyFingerNecklace = new BaseItem(new int[][] - { - new int[] {1}, - new int[] {65}, - new int[] {18,11}, - new int[] {-1}, - new int[] {12,13}, - new int[] {22,25,30,}, - new int[] {35,50,53,57}, - new int[] {20,57} - }) - { - name = Translations.ItemDataBase_ItemDefinitions_143/*Armsy Finger Necklace*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_144/*A Necklace decorated with armsy fingertips.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_145/*A Necklace made from the fingertips of an armsy, yeilding it's raw power and strentgh.*/, //tr - Rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 1, - maxLevel = 5, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that - - }; - armsyFingerNecklace.DropSettings_OnlyArmsy(); - armsyFingerNecklace.PossibleStats[0][0].Multipier = 2; - armsyFingerNecklace.PossibleStats[1][0].Multipier = 2; - var virginiaHeartPedant = new BaseItem(new int[][] - { - new int[] {2}, - new int[] {23}, - new int[] {48}, - new int[] {-1}, - new int[] {5,28}, - new int[] {7,10,31}, - new int[] {11,17,57}, - new int[] {14,16,57}, - new int[] {45,57} - }) - { - name = Translations.ItemDataBase_ItemDefinitions_146/*Virginia Heart Pendant*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_147/*A Pendant of a petrified Virginia heart.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_148/*A Pendant made from a petrified Virginia heart, yeilding it's love and Vitality.*/, //tr - Rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 1, - maxLevel = 5, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that - }; - virginiaHeartPedant.DropSettings_OnlyVags(); - virginiaHeartPedant.PossibleStats[0][0].Multipier = 2; - virginiaHeartPedant.PossibleStats[1][0].Multipier = 2.25f; - - var cowmanToeNecklace = new BaseItem(new int[][] - { - new int[] {3}, - new int[] {31,6}, - new int[] {28}, - new int[] {8,9,27}, - new int[] {12,13,51,52,66}, - new int[] {12,13,51,52,66,57}, - new int[] {15,18,34,36,57}, - new int[] {23,48,54,26}, - new int[] {65,57} - }) - { - name = Translations.ItemDataBase_ItemDefinitions_149/*Cowman Toe Necklace*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_150/*A Necklace decorated with cowman toes.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_151/*A Necklace made from the fingertips of an armsy, yeilding it's speed and agility.*/, //tr - Rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 20, - maxLevel = 40, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that - }; - cowmanToeNecklace.DropSettings_OnlyCow(); - cowmanToeNecklace.PossibleStats[0][0].Multipier = 3; - cowmanToeNecklace.PossibleStats[1][0].Multipier = 2; - new BaseItem(new int[][] - { - new int[] {47}, - new int[] {4,0}, - new int[] {21,0}, - new int[] {38,31,49,14}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {12,13,21,24,6}, - new int[] {19,47,49,6}, - new int[] {29,37,38}, - new int[] {29,37,38,}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_152/*Pendant of Perpetual Rebirth*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_153/*A Pendant of a shrunken babyhead.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_154/*A pedant of great power. Obtainable only from babies or crafting*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_155(1)/*decrease a random cooldown by 1 second whenever you hit something with melee or ranged attack.*/, //tr - Rarity = 7, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 30, - maxLevel = 40, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that - onEquip = () => ModdedPlayer.Stats.i_infinityLoop.value = true, - onUnequip = () => ModdedPlayer.Stats.i_infinityLoop.value = false, - }.DropSettings_OnlyBaby(); - - //Boss drop Amulet---------------------------------------------------------------------------------------- - - new BaseItem(new int[][] - { - new int[] {1,2,4}, - new int[] {12,13}, - new int[] {22,25,30,18,5,28}, - new int[] {35,50,53,57,56,20,57,19,18}, - new int[] {7,10,31}, - new int[] {45,16,10,11,9,8, 14, 16, 57,11, 17,57}, - new int[] { 51, 52,66,8, 9,27}, - new int[] {15,18,34,36,57}, - new int[] {23,48,54,26}, - new int[] {6,55,46,54,53}, - new int[] {19,47,49,57, 21,24,29,37,38,57}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_156/*Megan's Locket*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_157/*The Locket Megan wore.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_158/*Megan wore this Locket, it has a picture of her mom in it.*/, //tr - Rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 1, - maxLevel = 4, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that - }.DropSettings_OnlyMegan(); - - BaseItem RelicHammer = new BaseItem(new int[][] - { - new int[] {25 }, - new int[] {18 }, - new int[] {2004 }, - new int[] {1,62,63,64 }, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_159/*Relic Hammer*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_160/*It's slow and weak.*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_161/*Slows on hit*/, //tr - Rarity = 2, - minLevel = 20, - maxLevel = 22, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.Hammer, - icon = Res.ResourceLoader.GetTexture(109), - }; - RelicHammer.PossibleStats[1][0].Multipier = -4; - - BaseItem GreaterHammer = new BaseItem(new int[][] - { - new int[] {25 }, - new int[] {18 }, - new int[] {2004 }, - new int[] {1,3,62,63,64}, - new int[] {53,16}, - new int[] {39,31,43,0,0}, - new int[] {25 ,22,1,12,13,5,6}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_162/*Black Hammer*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_163/*It's slow but with enough strength i can make it a very deadly tool*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_161/*Slows on hit*/, //tr - Rarity = 4, - minLevel = 30, - maxLevel = 35, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.Hammer, - icon = Res.ResourceLoader.GetTexture(109), - }; - GreaterHammer.PossibleStats[1][0].Multipier = -3; - //Item 0/6 - new BaseItem(new int[][] - { - new int[] {23,26}, - new int[] {2,6,4}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_164/*Potato Sack*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_165/*Can be used as a quiver*/, //tr - Rarity = 0, - minLevel = 1, - maxLevel = 4, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Quiver, - icon = Res.ResourceLoader.GetTexture(98), - }; - - //Item 1/6 - new BaseItem(new int[][] - { - new int[] {23,26}, - new int[] {40,41,42}, - new int[] {40,16,60}, - new int[] {2}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_166/*Rabbit Skin Quiver*/, //tr - Rarity = 1, - minLevel = 2, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Quiver, - icon = Res.ResourceLoader.GetTexture(98), - }; - - //Item 2/6 - new BaseItem(new int[][] - { - new int[] {26}, - new int[] {23,2,54}, - new int[] {18,60,61}, - new int[] {40,41,16,5,6,40}, - new int[] {-1}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_167/*Hollow Log*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_168/*It allows for faster drawing of arrow than a cloth quiver*/, //tr - Rarity = 2, - minLevel = 6, - maxLevel = 9, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Quiver, - icon = Res.ResourceLoader.GetTexture(98), - }; - - //Item 3/6 - new BaseItem(new int[][] - { - new int[] {26,23}, - new int[] {24,21}, - new int[] {17,16,18,54,51,52,66}, - new int[] {2,3,4,15,14,13,12,11,10}, - new int[] {5,6,47,60,61}, - new int[] {2,3,4,5,6,7,8,11,12,16,18,37}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_169/*Spellbound Quiver*/, //tr - Rarity = 3, - minLevel = 6, - maxLevel = 11, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Quiver, - icon = Res.ResourceLoader.GetTexture(98), - }; - - //Item 4/6 - new BaseItem(new int[][] - { - new int[] {23,26}, - new int[] {23}, - new int[] {2,3,4}, - new int[] {34,18,17,16,15,14,60,61,55,}, - new int[] {16,19,23,31,54,51,52,66,57}, - new int[] {2,0}, - new int[] {2,3,4,5,6,7,8,9,10}, - new int[] {2,1,5,6}, - new int[] {-1}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_170/*Long Lost Quiver*/, //tr - Rarity = 5, - minLevel = 12, - maxLevel = 20, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Quiver, - icon = Res.ResourceLoader.GetTexture(98), - }; - - //Item 5/6 - new BaseItem(new int[][] - { - new int[] {37, 24,47}, - new int[] {42,6,17,61}, - new int[] {-1}, - new int[] {4,0}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_171/*Spell Scroll*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_172/*Contains a lot of information on how to properly cast spells to achieve better results*/, //tr - Rarity = 1, - minLevel = 1, - maxLevel = 1, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.SpellScroll, - icon = Res.ResourceLoader.GetTexture(110), - }; - - new BaseItem(new int[][] - { - new int[] {16,43}, - new int[] {43,39,40,41,42}, - new int[] {43,39,40,41,42}, - new int[] {43,0,0,0}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_173/*Cloth Pants*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_174/*Offer little protction*/, //tr - Rarity = 1, - minLevel = 2, - maxLevel = 5, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Pants, - icon = Res.ResourceLoader.GetTexture(87), - }; - - //Item 1/7 - new BaseItem(new int[][] - { - new int[] {16}, - new int[] {1,2,3,4}, - new int[] {5,6}, - new int[] {16,43,39,40,41,42}, - new int[] {1000,1001,1002,1003,1004,43,0,0,0}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_175/*Rough Hide Leggins*/, //tr - Rarity = 3, - minLevel = 1, - maxLevel = 1, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Pants, - icon = Res.ResourceLoader.GetTexture(87), - }; - - //Item 2/7 - new BaseItem(new int[][] - { - new int[] {16,}, - new int[] {1,2,3,4}, - new int[] {5,44,7,8}, - new int[] {6,16,3}, - new int[] {1,2,3,4,11}, - new int[] {17,16,10,9}, - new int[] {16,43}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_176/*Plate Leggins*/, //tr - Rarity = 4, - minLevel = 4, - maxLevel = 10, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Pants, - icon = Res.ResourceLoader.GetTexture(87), - }; - - //Item 3/7 - new BaseItem(new int[][] - { - new int[] {16}, - new int[] {19}, - new int[] {1,2,3,4,5,6,7,8}, - new int[] {39,40,41,42,43}, - new int[] {4}, - new int[] {-1}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_177/*Sage's Robes*/, //tr - Rarity = 3, - minLevel = 1, - maxLevel = 6, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Pants, - icon = Res.ResourceLoader.GetTexture(87), - }; - - //Item 4/7 - new BaseItem(new int[][] - { - new int[] {1,2,3,4}, - new int[] {1,5}, - new int[] {16}, - new int[] {22,25}, - new int[] {11,12,13,14,5,6,1,2,3,4}, - new int[] {7,8,9,10,44,45,46,49}, - new int[] {31,1,3,}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_178/*Hammer Jammers*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_179("450%")/*Damage of your smash attack is increased by 450%, hammer stun duration is doubled*/, //tr - Rarity = 7, - minLevel = 20, - maxLevel = 28, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Pants, - icon = Res.ResourceLoader.GetTexture(87), - onEquip = () => { ModdedPlayer.Stats.smashDamage.Multiply(4.5f); ModdedPlayer.Stats.i_HammerStunAmount.Multiply(2); }, - onUnequip = () => { ModdedPlayer.Stats.smashDamage.Divide(4.5f); ModdedPlayer.Stats.i_HammerStunAmount.Divide(2); }, - }; - - //Item 5/7 - new BaseItem(new int[][] - { - new int[] {16}, - new int[] {34}, - new int[] {1,2,4,6,7,8}, - new int[] {-1}, - new int[] {26,23,24,21}, - new int[] {1000, 1001,1002, 1003, 1004, 0,0,0,1,2,4}, - new int[] {51,1,2,3,4,55}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_180/*Pirate Pants*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_181/*Those pants are ligh and comfortable. They offer plenty of mobility but lack in protection.*/, //tr - Rarity = 5, - minLevel = 1, - maxLevel = 1, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Pants, - icon = Res.ResourceLoader.GetTexture(87), - }; - - //Item 6/7 - new BaseItem(new int[][] - { - new int[] {16}, - new int[] {1,2,3,4,16,17}, - new int[] {18,34}, - new int[] {1,2,3,4}, - new int[] {5,6,15,16,13,12,11}, - new int[] {8,4,2,9}, - new int[] {22,21,23}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_182/*Hexed Pants of Mr M.*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_183/*They look like yoga pants but for a man the size of a wardrobe*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_184/*Once upon a time there was a man who was in a basement and fed himself with nothing but nuggets. He got so obese that friends and family started worrying. Hazard noticed this man and cursed his pants to force him to excercise.*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_185("60%", "1%")/*While moving, energy regeneration and damage is increased by 40%. While standing still for longer than a second, you loose 1% of max health per second.*/, //tr - Rarity = 7, - minLevel = 14, - maxLevel = 15, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Pants, - icon = Res.ResourceLoader.GetTexture(87), - onEquip = () => ModdedPlayer.Stats.i_HexedPantsOfMrM_Enabled.value = true, - onUnequip = () => ModdedPlayer.Stats.i_HexedPantsOfMrM_Enabled.value = false, - }; - new BaseItem(new int[][] - { -new int[] {39,40,41,42,43}, -new int[] {39,40,41,42,43}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_186/*Leather Mantle*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_187/*A piece of cloth to give protection from */, //tr - Rarity = 1, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.ShoulderArmor, - icon = Res.ResourceLoader.GetTexture(95), - }; - - //Item 1/6 - new BaseItem(new int[][] - { -new int[] {16}, -new int[] {16}, -new int[] {1,2,3,4,5,6}, -new int[] {39,40,41,42,43}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_188/*Shoulder Guards*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_189/*Medium armor piece.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_190/*Heavy armor*/, //tr - Rarity = 2, - minLevel = 4, - maxLevel = 7, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.ShoulderArmor, - icon = Res.ResourceLoader.GetTexture(95), - }; - - //Item 2/6 - BaseItem Heavy_Shoulder_Plates = new BaseItem(new int[][] - { - new int[] {34}, - new int[] {18}, - new int[] {16}, - new int[] {16,65}, - new int[] {1,2,3,4}, - new int[] {1,2,3,4,5,8,9,7,10}, - new int[] {17,10,5,8,9,7,10}, - new int[] {5,45,3}, - new int[] {11}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_191/*Heavy Shoulder Plates*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_192/*Heavy armor piece. They offer great protection at the cost of attack speed and movement speed decrease*/, //tr - Rarity = 4, - minLevel = 15, - maxLevel = 20, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.ShoulderArmor, - icon = Res.ResourceLoader.GetTexture(95), - }; - Heavy_Shoulder_Plates.PossibleStats[0][0].Multipier = -1; - Heavy_Shoulder_Plates.PossibleStats[1][0].Multipier = -1; - Heavy_Shoulder_Plates.PossibleStats[2][0].Multipier = 3; - - //Item 3/6 - new BaseItem(new int[][] - { - new int[] {21,22,23,24,25,26}, - new int[] {16}, - new int[] {1,2,3,4}, - new int[] {1,2,3,4,16,39,40,41,42,43}, - new int[] {1,2,3,4,16,39,40,41,42,43}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_193/*Etched Mantle*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_194/*Those pauldrons empower wearer's combat skill*/, //tr - Rarity = 3, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.ShoulderArmor, - icon = Res.ResourceLoader.GetTexture(95), - }; - - //Item 4/6 - new BaseItem(new int[][] - { - new int[] {22,25}, - new int[] {1,2,3,4}, - new int[] {16}, - new int[] {12,11,13,14}, - new int[] {5,6}, - new int[] {10,15,16,17,18,19,31,35,36,44,45,46,47,49,50,53,55}, - new int[] {10,15,16,17,18,19,31,35,36,44,45,46,47,49,50,53,55}, - new int[] {53,55}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_195/*Assassins Pauldrons*/, //tr - Rarity = 5, - minLevel = 4, - maxLevel = 6, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.ShoulderArmor, - icon = Res.ResourceLoader.GetTexture(95), - }; - - //Item 5/6 - new BaseItem(new int[][] - { - new int[] {11}, - new int[] {1,2,3,4}, - new int[] {16}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {21,22,23,24,25,26}, - new int[] {5,14,7,10,45}, - new int[] {1,2,3,4}, - new int[] {12,13,15,16,18}, - new int[] {17,19,21,22,23}, - new int[] {37,35,36,38,44,45,47}, - new int[] {1,2,4}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_196/*Death Pact*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_197/*Find the greatest strength on the border of life and death.*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_198("6%", "5%")/*Every attack you make decreases your health by 7% of max health. For every percent of missing health you gain 5% damage amplification. This damage cannot kill you.*/, //tr - Rarity = 7, - minLevel = 5, - maxLevel = 8, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.ShoulderArmor, - icon = Res.ResourceLoader.GetTexture(95), - onEquip = () => ModdedPlayer.Stats.i_DeathPact_Enabled.value = true, - onUnequip = () => ModdedPlayer.Stats.i_DeathPact_Enabled.value = false, - }; - new BaseItem(new int[][] - { - new int[] {56}, - new int[] {-1}, - new int[] {-1}, - new int[] {1,2,3,4}, - new int[] {11,12,13,14,15,16,17,18}, - new int[] {11,12,13,14,15,16,17,18}, - new int[] {5,6,7,8,9,10,31}, - new int[] {55,54,53,50}, - new int[] {1,2,3,4,21,22,23,24,25,26}, - new int[] {16,0,0,0,1,2,3,4,0,0,0,0}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_199/*Maximale Qualitöt*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_200/*A platinum ring with the most expensive jewels engraved on it. It's quality is uncomparable.*/, //tr - Rarity = 6, - minLevel = 1, - maxLevel = 4, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Ring, - icon = Res.ResourceLoader.GetTexture(90), - }; - new BaseItem(new int[][] - { - }) - { - name = Translations.ItemDataBase_ItemDefinitions_201/*Heart of Purity*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_202/*A object filled with both destructive and creative energy. Allows to re-assign all spent mutation points*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_203/*This powerful relic contains so much power, that it can kill anything and force it to come back to life, resulting in it's rebirth.*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_204/*Can be consumed by right clicking it. */, //tr - Rarity = 4, - minLevel = 1, - maxLevel = 2, - CanConsume = true, - StackSize = 100, - type = BaseItem.ItemType.Other, - icon = Res.ResourceLoader.GetTexture(105), - onEquip = ModdedPlayer.Respec - }; - - new BaseItem(new int[][] - { -new int[] {1,2,3,4,57}, -new int[] {16,17,14}, -new int[] {50,11}, -new int[] {49,39,40,41,42,45,44}, -new int[] {5,6,9,8,10,12,13,14,}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_205/*Round Shield*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_206/*A sturdy shield made of wood and reinforced with iron.*/, //tr - Rarity = 2, - minLevel = 5, - maxLevel = 8, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Shield, - icon = Res.ResourceLoader.GetTexture(99), - }; - - //Item 1/5 - new BaseItem(new int[][] - { -new int[] {1,11,5,7}, -new int[] {57,2,3,4,5,6,7,8,10,11}, -new int[] {39,40,41,42,43,44,45,46}, -new int[] {50}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_207/*Old Buckler*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_208/*An old shield.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_209/*This item has a lot of scratches that look like they were made by something with sharp claws.*/, //tr - Rarity = 1, - minLevel = 4, - maxLevel = 12, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Shield, - icon = Res.ResourceLoader.GetTexture(99), - }; - - //Item 2/5 - new BaseItem(new int[][] - { -new int[] {16}, -new int[] {16,50}, -new int[] {-1}, -new int[] {-1}, -new int[] {-1}, -new int[] {11}, -new int[] {39,40,41,42,43,50,57}, -new int[] {39,40,41,42,43,50,57}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_210/*Dark Oak Shield*/, //tr - Rarity = 4, - minLevel = 1, - maxLevel = 1, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Shield, - icon = Res.ResourceLoader.GetTexture(99), - }; - - //Item 3/5 - new BaseItem(new int[][] - { -new int[] {15,14}, -new int[] {2,3,4,1,41,42,57}, -new int[] {-1}, -new int[] {-1}, -new int[] {-1}, -new int[] {65,1,16,25}, -new int[] {2,4,5,6}, -new int[] {16,7,8,22,23,25,26}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_211/*Bone Shield*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_212/*A shield made of bones, held together by thick steel wire.*/, //tr - Rarity = 3, - minLevel = 1, - maxLevel = 1, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Shield, - icon = Res.ResourceLoader.GetTexture(99), - }; - - new BaseItem(new int[][] - { -new int[] {18}, -new int[] {0,0,0,0,62,63,64}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_213/*Dull Longsword*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_214/*It's round on the edges*/, //tr - Rarity = 0, - minLevel = 15, - maxLevel = 20, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.LongSword, - icon = Res.ResourceLoader.GetTexture(89), - }.PossibleStats[0][0].Multipier = -3; - - new BaseItem(new int[][] - { - new int[] {16}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {65}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_215/*Iron Horn*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_216("10%")/*When using Warcry, you and all allies recieve armor bonus equal to 10% of your armor*/, //tr - Rarity = 4, - minLevel = 1, - maxLevel = 2, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(101), - onEquip = () => ModdedPlayer.Stats.spell_warCryGiveArmor.value = true, - onUnequip = () => ModdedPlayer.Stats.spell_warCryGiveArmor.value = false, - }.PossibleStats[0][0].Multipier = 2; - - //Item 1/5 - new BaseItem(new int[][] - { - new int[] {16}, - new int[] {31,7,8,9,10}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_217/*The Great Iron Horn*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_216("10%") + Translations.ItemDataBase_ItemDefinitions_608/*When using Warcry, you and all allies recieve armor bonus equal to 10% of your armor*/, //tr - Rarity = 7, - minLevel = 1, - maxLevel = 2, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(101), - onEquip = () => - { - ModdedPlayer.Stats.spell_warCryGiveArmor.value = true; - ModdedPlayer.Stats.spell_warCryGiveDamageResistance.value = true; - }, - onUnequip = () => - { - ModdedPlayer.Stats.spell_warCryGiveArmor.value = false; - ModdedPlayer.Stats.spell_warCryGiveDamageResistance.value = true; - }, - }.PossibleStats[0][0].Multipier = 5; - - //Item 2/5 - new BaseItem(new int[][] - { - new int[] {16}, - new int[] {1}, - new int[] {65,0}, - new int[] {5,16,18}, - new int[] {21,22,23,0,0,0}, - new int[] {24,25,26,0,0,0}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_218/*Horned Helmet*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_219/*A viking helmet*/, //tr - Rarity = 2, - minLevel = 2, - maxLevel = 8, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Helmet, - icon = Res.ResourceLoader.GetTexture(91), - }; - - //Item 3/5 - new BaseItem(new int[][] - { - new int[] {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,31,36,37,38,43,44,45,46,47,49,50,53,54,55,57}, - new int[] {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,31,36,37,38,43,44,45,46,47,49,50,53,54,55,57}, - new int[] {-1}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_220/*Mask*/, //tr - Rarity = 2, - minLevel = 1, - maxLevel = 5, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Helmet, - icon = Res.ResourceLoader.GetTexture(91), - }; - - //Item 4/5 - BaseItem mask = new BaseItem(new int[][] - { - new int[] {18}, - new int[] {22,23,21}, - new int[] {11}, - new int[] {1,2,3,4,5,6,7,8,9,10,12,13,14,15,16,17,18,31,36,37,38,43,44,45,46,47,49,50,53,54,55,57}, - new int[] {1,2,3,4,5,6,7,8,9,10,12,13,14,15,16,17,18,31,36,37,38,43,44,45,46,47,49,50,53,54,55,57}, - new int[] {1,2,3,4,5,6,7,8,9,10,12,13,14,15,16,17,18,31,36,37,38,43,44,45,46,47,49,50,53,54,55,57}, - new int[] {24,25,26,0,0,0}, - new int[] {29,30,48}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_221/*Mask of Madness*/, //tr - Rarity = 5, - minLevel = 2, - maxLevel = 6, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Helmet, - icon = Res.ResourceLoader.GetTexture(91), - }; - mask.PossibleStats[2][0].Multipier = -4; - mask.PossibleStats[0][0].Multipier = 1.5f; - mask.PossibleStats[1][0].Multipier = 2.5f; - mask.PossibleStats[1][1].Multipier = 2.5f; - mask.PossibleStats[1][2].Multipier = 2.5f; - - new BaseItem(new int[][] - { - new int[] {47,49,37,38}, - new int[] {42,4}, - new int[] {44}, - new int[] {21}, - new int[] {-1}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_222/*Old Scroll*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_172/*Contains a lot of information on how to properly cast spells to achieve better results*/, //tr - Rarity = 3, - minLevel = 1, - maxLevel = 1, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.SpellScroll, - icon = Res.ResourceLoader.GetTexture(110), - }; - new BaseItem(new int[][] - { - new int[] {57}, - new int[] {1,2,3,4}, - new int[] {5,46}, - new int[] {6,45}, - new int[] {21,24,11,12,13,14,15,16}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {4,18,7,8,19}, - new int[] {27,28,29,30,48,47}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_223/*Wormhole Stabilizators*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_224/*High-tech gear*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_225/*Hazard remember to put some fucking lore in here, don't leave it like this!*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_226("570")/*Increases the duration of a portal by 570 seconds*/, //tr - Rarity = 7, - minLevel = 4, - maxLevel = 6, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Bracer, - icon = Res.ResourceLoader.GetTexture(94), - onEquip = () => ModdedPlayer.Stats.spell_portalDuration.Add(570), - onUnequip = () => ModdedPlayer.Stats.spell_portalDuration.Substract(570), - }; - new BaseItem(new int[][] - { - new int[] {57}, - new int[] {1,2,3,4}, - new int[] {5,46}, - new int[] {6,45}, - new int[] {21,24,11,12,13,14,15,16}, - new int[] {16}, - new int[] {17}, - new int[] {4,18,7,8,19}, - new int[] {27,28,29,30,48,47}, - new int[] {-1}, - new int[] {-1}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_227/*Cripplers*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_228(15)/*Increases the duration of a magic arrow's negative effect by 10 seconds*/, //tr - Rarity = 7, - minLevel = 3, - maxLevel = 6, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Glove, - icon = Res.ResourceLoader.GetTexture(86), - onEquip = () => ModdedPlayer.Stats.spell_magicArrowDuration.Add(15), - onUnequip = () => ModdedPlayer.Stats.spell_magicArrowDuration.Substract(15), - }; - - new BaseItem(new int[][] - { - new int[] {24,4}, - new int[] {26,4}, - new int[] {21,2}, - new int[] {23,2,0,0,0,0}, - new int[] {2,4,57,16}, - new int[] {6,8,9,44,46}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {12,13,14,15,16,18}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_229/*Crossfire*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_230/*Infused with powerful magic. This item is a dangerous tool of destruction.*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_231/*When hitting an enemy with a projectile, create a magic arrow pointed at the enemy and shoot it without using in energy. This effect may occur once every seconds, but can be interval can be shortened with cooldown reduction.*/, //tr - Rarity = 7, - minLevel = 1, - maxLevel = 6, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Quiver, - icon = Res.ResourceLoader.GetTexture(98), - onEquip = () => ModdedPlayer.Stats.i_CrossfireQuiver.value = true, - onUnequip = () => ModdedPlayer.Stats.i_CrossfireQuiver.value = false, - }; - - new BaseItem(new int[][] - { - new int[] {44}, - new int[] {44,8}, - new int[] {44,4,6,9,4}, - new int[] {49,7,0}, - new int[] {-1}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_232/*Scroll of Recovery*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_233/*Recovers health and stamina*/, //tr - Rarity = 1, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.SpellScroll, - icon = Res.ResourceLoader.GetTexture(110), - }; - - new BaseItem(new int[][] - { - new int[] {11}, - new int[] {-1}, - new int[] {16,15}, - new int[] {37,38}, - new int[] {42,24}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_234/*Tiara*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_235/*A beautiful tiara */, //tr - lore = Translations.ItemDataBase_ItemDefinitions_236/*This tiara may not provide much protection, but it sure is pretty*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_237/*Shiny*/, //tr - Rarity = 2, - minLevel = 5, - maxLevel = 10, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Helmet, - icon = Res.ResourceLoader.GetTexture(91), - }; - - //Item 1/2 - new BaseItem(new int[][] - { - new int[] {-1}, - new int[] {15}, - new int[] {15}, - new int[] {17,16}, - new int[] {17,16}, - new int[] {0,65}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_238/*Chastity belt*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_239/*Dodge those fukbois*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_240/*This belt will stop those cheeky cannibals and armsies from getting into your pants*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_241("99%")/* 100% damage reduction while sleeping*/, //tr - Rarity = 2, - minLevel = 1, - maxLevel = 2, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Pants, - icon = Res.ResourceLoader.GetTexture(87), - }; - new BaseItem(new int[][] - { - new int[] {2005}, - new int[] {-1}, - new int[] {-1}, - new int[] {42,43}, - new int[] {44,0,49,}, - new int[] {21,24,0,0,0,0}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_242/*Ice Scroll*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_243/*A spell surrounded by flying shards of ice, contains tramendous power of cold.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_244/*Created at the top of the mountain.*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_581("250", 2)/*Snap freeze damage is increased and the slow duration is increased by 1 second*/, //tr - Rarity = 4, - minLevel = 30, - maxLevel = 40, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.SpellScroll, - icon = Res.ResourceLoader.GetTexture(110), - onEquip = () => { ModdedPlayer.Stats.spell_snapDamageScaling.Add(250f); ModdedPlayer.Stats.spell_snapFreezeDuration.Add(2); }, - onUnequip = () => { ModdedPlayer.Stats.spell_snapDamageScaling.Substract(250f); ModdedPlayer.Stats.spell_snapFreezeDuration.Add(2); } - }; - new BaseItem(new int[][] - { - new int[] {2006}, - new int[] {57,1,2,3,4}, - new int[] {34,45,46,15,1,2,3,4,57,11,14,7,10,59}, - new int[] {8,1,2,3,4,9,5,6}, - new int[] {1000,1001,1002}, - new int[] {1000,1001,1002, 1003, 1004, 0,0,0,0,0,0,0}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_245/*Motorboat Modification Blueprints*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_246/*Sheet of paper that allows to turn any raft into a high speed. Increases carry amount and increases speed of rafts.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_247/*Who did this lmao.*/, //tr - Rarity = 4, - minLevel = 1, - maxLevel = 4, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.SpellScroll, - icon = Res.ResourceLoader.GetTexture(110), - }; - new BaseItem(new int[][] - { - new int[]{1,2,3,4}, - new int[]{18}, - new int[]{18,0,0,62,63,64}, - new int[] {1,2,3,4,6,55}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_248/*Axe of Swiftness*/, //tr - Rarity = 3, - minLevel = 15, - maxLevel = 17, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.Axe, - icon = Res.ResourceLoader.GetTexture(138), - }.PossibleStats[1][0].Multipier = 1.6f; - new BaseItem(new int[][] - { - new int[]{1,26,22}, - new int[]{18}, - new int[]{18,62,63,64}, - new int[] {1,2,3,4,6,55,59,57,34,35,36,14,44,49}, - new int[] {53,22,25,12,13}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_249/*Severer*/, //tr - Rarity = 4, - minLevel = 25, - maxLevel = 25, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.Axe, - icon = Res.ResourceLoader.GetTexture(138), - }.PossibleStats[1][0].Multipier = 2.5f; - - new BaseItem(new int[][] - { - new int[]{1,26,22}, - new int[]{18}, - new int[]{1,2,3,4,5,6,7,8,9,10,12,13,14,15,16,17,18,20,34,35,36,37,38,44,45,46,47,49,53,54,55,}, - new int[]{62,63,64,0,0,0}, - new int[]{19,56}, - new int[] {1,2,3,4,6,55,59,57,34,35,36,14,44,49}, - new int[] {53,22,25,12,13,1,2,3,4,39,40,41,42,43}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_250/*Golden Axe of Fortune*/, //tr - Rarity = 5, - minLevel = 35, - maxLevel = 36, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.Axe, - icon = Res.ResourceLoader.GetTexture(138), - }.PossibleStats[1][0].Multipier = 2.5f; - new BaseItem(new int[][] - { - new int[]{26,22}, - new int[]{63}, - new int[]{1,2,3,4,5,6,7,8,9,10,12,13,14,15,16,17,18,20,34,35,36,37,38,44,45,46,47,49,53,54,55,}, - new int[]{62,63,64,65}, - new int[]{19,56}, - new int[] {26}, - new int[] {53,22,25,12,13,1,2,3,4,39,40,41,42,43}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_251/*Axe of Misfortune*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_252/*Misfortunate are the ones on the recieving end. They will bleed a lot*/, //tr - Rarity = 5, - minLevel = 6, - maxLevel = 9, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.Axe, - icon = Res.ResourceLoader.GetTexture(138), - }.PossibleStats[1][0].Multipier = 3; - - new BaseItem(new int[][] - { - new int[] {1,2,3,4}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_253/*Golden Ring*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_103/*A Golden Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - Rarity = 4, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 1, - maxLevel = 4, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Ring, - icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that - }; - new BaseItem(new int[][] - { - new int[] {1,2,3,4}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_254/*Golden Locket*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_122/*A Locket of ancient times.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_123/*A Golden Locket that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - Rarity = 3, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 1, - maxLevel = 4, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that - }; - new BaseItem(new int[][] - { - new int[]{0,39} - }) - { - name = Translations.ItemDataBase_ItemDefinitions_255/*Dull Axe*/, //tr - Rarity = 0, - minLevel = 15, - maxLevel = 24, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.Axe, - icon = Res.ResourceLoader.GetTexture(138), - }; - new BaseItem(new int[][] - { - new int[] {1,2,3,4 }, - new int[] {1,2,3,15,4,0,0,0 }, - new int[] {12,13,1,2,3,4,5, }, - new int[] {18,16,23,26,19 }, - new int[] {18,16,23,26 }, - new int[] {34,44,45,46 }, - new int[] {2,23,26}, - new int[] {2,23,26,51}, - new int[] {2,23,26,20,16,15,60}, - new int[] {52,66,60,0,0}, - new int[] {-1}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_256/*Precise Adjustments*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_257(15)/*Focus attack speed buff duration is increased by 16 seconds*/, //tr - Rarity = 7, - minLevel = 5, - maxLevel = 8, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Quiver, - icon = Res.ResourceLoader.GetTexture(98), - onEquip = () => ModdedPlayer.Stats.spell_focusOnAtkSpeedDuration.Add(16), - onUnequip = () => ModdedPlayer.Stats.spell_focusOnAtkSpeedDuration.Substract(16), - }; - new BaseItem(new int[][] - { - new int[] {25 }, - new int[] {22,1,18,}, - new int[] {1,2,3,4,57,}, - new int[] {27,28,30}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {15,14,45,7,35,10}, - new int[] {62,63,64, }, - new int[] {53,61 }, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_258/*Rage*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_259(15)/*Increases maximum stacks of frenzy by 10*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_260/*Swords go brrrrrrttt*/, //tr - Rarity = 7, - minLevel = 6, - maxLevel = 9, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.GreatSword, - icon = Res.ResourceLoader.GetTexture(88), - onEquip = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Add(15), - onUnequip = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Substract(15), - }.PossibleStats[0][0].Multipier = 5; - - BaseItem jaggedRipper = new BaseItem(new int[][] - { - new int[] {1,2,3,4,57,}, - new int[]{18}, - new int[] {25 }, - new int[] {62,63,64, }, - new int[] {53, }, - new int[] {49,14, }, - new int[] {35,36,15,12, }, - new int[] {27,28,30}, - new int[]{18,62,63,64}, - new int[] {65}, - new int[] {-1}, - new int[] {-1}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_261/*Jagged Edge*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_262("30%", "30%")/*Bash has 30% a chance to make enemies to bleed for 30% of damage dealt per second for duration of slow*/, //tr - Rarity = 7, - minLevel = 1, - maxLevel = 5, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.Axe, - icon = Res.ResourceLoader.GetTexture(138), - onEquip = () => ModdedPlayer.Stats.spell_bashBleedChance.Add(0.3f), - onUnequip = () => ModdedPlayer.Stats.spell_bashBleedChance.Substract(0.3f), - }; - jaggedRipper.PossibleStats[1][0].Multipier = 2; - - new BaseItem(new int[][] - { - new int[] {25 }, - new int[] {22,}, - new int[] {1,2,3,4,57,}, - new int[] {27,28,30}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {15,14,45,7,35,10}, - new int[] {62,63,64, }, - new int[] {53,61 }, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_263/*Bloodthirster*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_264/*Drenched in blood of many unfortunate foes.*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_265("2%")/*Bash lifesteals 2% of damage dealt into energy and health*/, //tr - Rarity = 7, - minLevel = 1, - maxLevel = 5, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.LongSword, - icon = Res.ResourceLoader.GetTexture(89), - onEquip = () => ModdedPlayer.Stats.spell_bashLifesteal.Add(0.02f), - onUnequip = () => ModdedPlayer.Stats.spell_bashLifesteal.Substract(0.02f), - }.PossibleStats[0][0].Multipier = 3; - new BaseItem(new int[][] - { - new int[] {25 }, - new int[] {22 }, - new int[] {2004 }, - new int[] {62,63,64 }, - new int[] {27,28,30,29,48}, - new int[] {1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_266/*Frost Giant*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_267/*Melee hits freeze enemies*/, //tr - Rarity = 7, - minLevel = 1, - maxLevel = 2, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.Hammer, - icon = Res.ResourceLoader.GetTexture(109), - onEquip = () => - { - ModdedPlayer.Stats.i_HammerStunDuration.Multiply(2); - ModdedPlayer.Stats.i_HammerStunAmount.Multiply(0); - }, - onUnequip = () => - { - ModdedPlayer.Stats.i_HammerStunDuration.Divide(2); - ModdedPlayer.Stats.i_HammerStunAmount.Reset(); - }, - }.PossibleStats[0][0].Multipier = 3.25f; - - new BaseItem(new int[][] - { - new int[] {11}, - new int[] {65}, - new int[] {16,17}, - new int[] {1,11,45}, - new int[] {15}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_268/*Alexander's Shield*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_269/*Parry has a chance to be casted when getting it. Requires parry to be equipped*/, //tr - Rarity = 7, - minLevel = 1, - maxLevel = 2, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Shield, - icon = Res.ResourceLoader.GetTexture(99), - onEquip = () => ModdedPlayer.Stats.spell_chanceToParryOnHit.value = true, - onUnequip = () => ModdedPlayer.Stats.spell_chanceToParryOnHit.value = false, - }; - - new BaseItem(new int[][] - { - new int[] {1}, - new int[] {12,3,16,45,46}, - new int[] {13,4,62,64}, - new int[] {22}, - new int[] {25,22}, - new int[] {25}, - new int[] {11,1}, - new int[] {30,1,57}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_270/*King Qruies*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_271/*A mighty sword seeking for it's owner*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_272/*Gain additional melee damage equal to the last instance of physical damage taken.*/, //tr - Rarity = 7, - minLevel = 10, - maxLevel = 12, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.LongSword, - icon = Res.ResourceLoader.GetTexture(89), - onEquip = () => ModdedPlayer.Stats.i_KingQruiesSword.value = true, - onUnequip = () => ModdedPlayer.Stats.i_KingQruiesSword.value = false, - }; - - new BaseItem(new int[][] - { - new int[] {2,3,4,5,6,11,12,13,15,23,26,51,60,44,49,48}, - new int[] {2,3,4,5,6,11,12,13,15,23,26,51,60,44,49,48}, - new int[] {13,4,62,64}, - new int[] {26,2,34,57,55}, - new int[] {26,23}, - new int[] {18,16}, - new int[] {48,2,55}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_273/*Grip of Sora*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_274/*Look, a porcupine! -Sora*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_275("20%", "+4")/*Multishot drains 20% less energy and shoots +4 projectiles. Additional projectiles do not increase the cost of multishot*/, //tr - Rarity = 7, - minLevel = 10, - maxLevel = 12, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Bracer, - icon = Res.ResourceLoader.GetTexture(93), - onEquip = () => ModdedPlayer.Stats.i_SoraBracers.value = true, - onUnequip = () => ModdedPlayer.Stats.i_SoraBracers.value = false, - }; - new BaseItem(new int[][] - { - new int[] {18}, - new int[] {60,0}, - new int[] {2,40}, - new int[] {12,13,2,40,16,66}, - new int[] {39,40,41,42,43,0,0}, - new int[] {23,26}, - new int[] {-1,0}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_276/*Ancient Greatbow*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_277/*A massive and slow bow, deals extra damage*/, //tr - Rarity = 4, - minLevel = 10, - maxLevel = 12, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.Greatbow, - icon = Res.ResourceLoader.GetTexture(170), - }.PossibleStats[0][0].Multipier = -1.55f; - - new BaseItem(new int[][] - { - new int[] {18}, - new int[] {61}, - new int[] {2,0,0,0}, - new int[] {12,13,2,40,16}, - new int[] {39,40,41,42,43,0,0}, - new int[] {23,26,2,66}, - new int[] {23,26}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {2,3,4,5,6,11,12,13,15,23,26,51,60,44,49,48}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_278/*Phoenix's Death*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_279/*Ignites enemies on hit*/, //tr - Rarity = 6, - minLevel = 10, - maxLevel = 12, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.Greatbow, - icon = Res.ResourceLoader.GetTexture(170), - onEquip = () => ModdedPlayer.Stats.i_greatBowIgnites.value = true, - onUnequip = () => ModdedPlayer.Stats.i_greatBowIgnites.value = false, - }.PossibleStats[0][0].Multipier = -1.7f; - - new BaseItem(new int[][] - { - new int[] {18}, - new int[] {61,48}, - new int[] {2,3,5}, - new int[] {12,13,2,40,16}, - new int[] {39,40,41,42,43,66}, - new int[] {23,26}, - new int[] {23,26}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {2,3,4,5,6,11,12,13,15,23,26,51,60,44,49,48}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_280/*Soulstring*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_281/*A massive and slow bow*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_282(100)/*Blood infused arrow now deals additional 20 points of damage per health consumed*/, //tr - Rarity = 7, - minLevel = 10, - maxLevel = 12, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.Greatbow, - icon = Res.ResourceLoader.GetTexture(170), - onEquip = () => ModdedPlayer.Stats.spell_bia_HealthDmMult.Add(100), - onUnequip = () => ModdedPlayer.Stats.spell_bia_HealthDmMult.Substract(100), - }.PossibleStats[0][0].Multipier = -1.7f; - - new BaseItem(new int[][] - { - new int[] {18}, - - new int[] {2,40,0}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_283/*Greatbow*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_277/*A massive and slow bow, deals extra damage*/, //tr - Rarity = 2, - minLevel = 25, - maxLevel = 28, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.Greatbow, - icon = Res.ResourceLoader.GetTexture(170), - }.PossibleStats[0][0].Multipier = -2.7f; - - new BaseItem(new int[][] - { - new int[] {2,3,4,5,6,11,12,13,15,23,26,51,60,44,49,48}, - new int[] {2,3,4,5,6,11,12,13,15,23,26,51,60,44,49,48}, - new int[] {13,4,62,64}, - new int[] {26,2,34,57,55}, - new int[] {26,23}, - new int[] {26,0,0}, - new int[] {18,16}, - new int[] {30,1,57}, - new int[] {5}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_284/*Withered Crown*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_285/*Worn by Hazard.*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_286("4")/*A single cast of blood infused arrow affects 4 more projectiles*/, //tr - Rarity = 7, - minLevel = 10, - maxLevel = 12, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Helmet, - icon = Res.ResourceLoader.GetTexture(91), - onEquip = () => ModdedPlayer.Stats.i_HazardCrown.value = true, - onUnequip = () => ModdedPlayer.Stats.i_HazardCrown.value = false, - }; - new BaseItem(new int[][] - { - new int[] {39,40,41,42,43,4}, - new int[] {4,6,24,21,16,3,42,43,49}, - new int[] {0,6,24,21,16,3,47,49,38,17,10,11,9,8,7,6}, - new int[] {37,4}, - new int[] {43,16,17,37,47 }, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_287/*Novice Magic Caster's Bracers*/, //tr - Rarity = 4, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Bracer, - icon = Res.ResourceLoader.GetTexture(93), - }; - new BaseItem(new int[][] - { - new int[] {2,12,13,23,26,40,43,54}, - new int[] {2,12,13,23,26,40,43,60,62,63,51,52,66}, - new int[] {5,6,7,8,9,10,16,17,26}, - new int[] {37,0,0,0}, - new int[] {43,16,2 }, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_288/*Ranger's Bracers*/, //tr - Rarity = 4, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Bracer, - icon = Res.ResourceLoader.GetTexture(93), - }; - new BaseItem(new int[][] - { - new int[] {1,16,5,6,18,39,14,22,25,53,62,63,57,45}, - new int[] {2,12,13,22,25,40,43,54}, - new int[] {5,6,7,8,9,10,16,17,26}, - new int[] {37,1,17,18,16}, - new int[] {43,1,65 }, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_289/*Swordsman's Bracers*/, //tr - Rarity = 4, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Bracer, - icon = Res.ResourceLoader.GetTexture(93), - }; - new BaseItem(new int[][] - { - new int[] {3,5,6,7,8,9,10,11,14,15,16}, - new int[] {7,16,18,0,0}, - new int[] {39,40,41,42,43,31,16}, - new int[] {1,2,3,4,5,57,39,40,41,42,43,31,16}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_290/*Healer's Bracers*/, //tr - Rarity = 5, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Bracer, - icon = Res.ResourceLoader.GetTexture(93), - }; - new BaseItem(new int[][] - { - new int[] {39,40,41,42,43,4}, - new int[] {4,6,24,21,16,3,42,43,49}, - new int[] {0,6,24,21,16,3,47,49,38,17,10,11,9,8,7,6}, - new int[] {37,0,0,0}, - new int[] {43,4 }, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_291/*Novice Magic Caster's Gloves*/, //tr - Rarity = 4, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Glove, - icon = Res.ResourceLoader.GetTexture(86), - }; - new BaseItem(new int[][] - { - new int[] {2,12,13,23,26,40,43,54}, - new int[] {2,12,13,23,26,40,43,60,62,63,51,52,66}, - new int[] {5,6,7,8,9,10,16,17,26}, - new int[] {37,68}, - new int[] {43,2 }, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_292/*Ranger's Gloves*/, //tr - Rarity = 4, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Glove, - icon = Res.ResourceLoader.GetTexture(86), - }; - new BaseItem(new int[][] - { - new int[] {1,16,5,6,18,39,14,22,25,53,62,63,57,45}, - new int[] {2,12,13,23,26,40,43,54}, - new int[] {5,6,7,8,9,10,16,17,26}, - new int[] {37,18,7,0}, - new int[] {43,1,65 }, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_293/*Swordsman's Gloves*/, //tr - Rarity = 4, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Glove, - icon = Res.ResourceLoader.GetTexture(86), - }; - new BaseItem(new int[][] - { - new int[] {3,5,6,7,8,9,10,11,14,15,16}, - new int[] {7,16,18,0,0}, - new int[] {39,40,41,42,43,31,16}, - new int[] {1,2,3,4,5,57,39,40,41,42,43,31,16}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_294/*Healer's Gloves*/, //tr - Rarity = 5, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Glove, - icon = Res.ResourceLoader.GetTexture(86), - }; - new BaseItem(new int[][] - { - new int[] {62,63,64,55,54,53,48,30,29,28,27}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_295/*Fate Gloves*/, //tr - Rarity = 6, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Glove, - icon = Res.ResourceLoader.GetTexture(86), - }; - new BaseItem(new int[][] - { - new int[] {62,63,64,55,54,53,48,30,29,28,27}, - new int[] {34}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_296/*Fate Boots*/, //tr - Rarity = 6, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Boot, - icon = Res.ResourceLoader.GetTexture(85), - }; - new BaseItem(new int[][] - { - new int[] {62,63,64,55,54,53,48,30,29,28,27}, - new int[] {34}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_297/*Greed*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_298/*Automatically casts wide reach every second*/, //tr - Rarity = 7, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Boot, - icon = Res.ResourceLoader.GetTexture(85), - onEquip = () => ModdedPlayer.Stats.i_isGreed.value = true, - onUnequip = () => ModdedPlayer.Stats.i_isGreed.value = false, - }; - BaseItem titaniumleggins = new BaseItem(new int[][] - { - new int[] { 16}, - new int[] {31}, - new int[] {1,2,3,4}, - new int[] {5,}, - new int[] {-1,65}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_299/*Titanium Leggins*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_300/*Heavily armored leg protection. Suffers from the same weaknesses as spartan armor.*/, //tr - Rarity = 6, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Pants, - icon = Res.ResourceLoader.GetTexture(87), - }; - titaniumleggins.PossibleStats[0][0].Multipier = 3; - titaniumleggins.PossibleStats[1][0].Multipier = 1.5f; - new BaseItem(new int[][] - { - new int[] {42,39,40,41,43,0,0 }, - new int[] {16,24,25,26,5,6,7,8,9,10,11,12,13,14,15,17,18,55,60,61,62,63,64,0,0,0 }, - new int[] {16,24,25,26,5,6,7,8,9,10,11,12,13,14,15,17,18,55,60,61,62,63,64 }, - new int[] {43,0,0,0,16 }, - new int[] {65,0}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_301/*Iron Gauntlet*/, //tr - Rarity = 2, - minLevel = 1, - maxLevel = 2, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Glove, - icon = Res.ResourceLoader.GetTexture(86), - }; - - new BaseItem(new int[][] - { - new int[] {4,3,6}, - new int[] {21,24,16 }, - new int[] {29,4 }, - new int[] {16,15,17 }, - new int[] {47,49,44,45,46 }, - new int[] {-1 }, - new int[] {-1 }, - new int[] {-1 }, - new int[] {-1 }, - new int[] {-1 }, - new int[] {-1 }, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_302/*Magefist*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_303/*Gloves that amplify magic*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_304/*Spells deal double damage but have double the energy cost*/, //tr - Rarity = 7, - minLevel = 1, - maxLevel = 2, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Glove, - icon = Res.ResourceLoader.GetTexture(86), - onEquip = () => { ModdedPlayer.Stats.spellIncreasedDmg.valueMultiplicative *= 2f; ModdedPlayer.Stats.spellCost.valueMultiplicative *= 2f; }, - onUnequip = () => { ModdedPlayer.Stats.spellIncreasedDmg.valueMultiplicative /= 2f; ModdedPlayer.Stats.spellCost.valueMultiplicative /= 2f; } - }; - new BaseItem(new int[][] - { - new int[] {34 }, - new int[] {34,5,1,2,4,3,2,11 }, - new int[] {16,3,2,1,4 }, - new int[] {16,7,8 }, - new int[] {16, }, - new int[] {-1 }, - new int[] {43 }, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_305/*Armored Boots*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_306/*Heavily armored, resistant to damage boots.*/, //tr - Rarity = 5, - minLevel = 10, - maxLevel = 14, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Boot, - icon = Res.ResourceLoader.GetTexture(85), - }; - new BaseItem(new int[][] - { - new int[] {16}, - new int[] {16,18,57,53}, - new int[] {16,1,2,3,4,21,22,23,24,25,26,31,15,5,6,7,8,9}, - new int[] {1,2,3,4,57}, - new int[] {16,45,46,0,0,0}, - new int[] {-1 }, - new int[] {-1 }, - new int[] {-1 }, - new int[] {-1 }, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_307/*Broken Protector*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_308/*This shield failed to protect those behind it.*/, //tr - Rarity = 6, - minLevel = 5, - maxLevel = 8, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Shield, - icon = Res.ResourceLoader.GetTexture(99), - }.PossibleStats[0][0].Multipier = 2; - - new BaseItem(new int[][] - { - new int[] {4}, - new int[] {6,4,3,44}, - new int[] {21,24}, - new int[] {21,24}, - new int[] {-1,}, - new int[] {-1}, - new int[] {-1}, - new int[] {47,4,5,6,7,61,17,0,0,0,0,2,56,57,49,64}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_309/*Forbidden Scroll*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_310/*Too powerful to be kept.*/, //tr - Rarity = 6, - minLevel = 1, - maxLevel = 1, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.SpellScroll, - icon = Res.ResourceLoader.GetTexture(110), - }; - - new BaseItem(new int[][] - { - new int[] {16}, - new int[] {1,2,3,4}, - new int[] {17}, - new int[] {8,9,49,47}, - new int[] {16,18,11,34}, - new int[] {37,34}, - new int[] {-1}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_311/*Doom Pauldrons*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_312/*Despite the cool name, they are completely normal pair of shoulder armor.*/, //tr - Rarity = 6, - minLevel = 5, - maxLevel = 9, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.ShoulderArmor, - icon = Res.ResourceLoader.GetTexture(95), - }; - new BaseItem(new int[][] - { - new int[] {16}, - new int[] {1,2,3,4,57,53,54,55}, - new int[] {17,18,11,15}, - new int[] {15}, - new int[] {34}, - new int[] {16,5,6,7,8,9,10,11,12,13,14,15,17,18,59,47,45,46,60}, - new int[] {23,22,30,27,34,44,48,59}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_313/*Wind armor*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_314/*Run fast like the wind*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_315("20%", "35%", "2000", "5%")/*Upon dodging an attack, gain 20% movement speed, 35% damage, 2000 armor, and heal for 5% of your maximum health*/, //tr - Rarity = 7, - minLevel = 5, - maxLevel = 9, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.ChestArmor, - icon = Res.ResourceLoader.GetTexture(96), - onEquip = () => ModdedPlayer.Stats.i_isWindArmor.value = true, - onUnequip = () => ModdedPlayer.Stats.i_isWindArmor.value = false, - }; - new BaseItem(new int[][] - { - new int[] {11}, - new int[] {22,23,21}, - new int[] {16}, - new int[] {1,2,3,4,5,6,7,8,9,10,12,13,14,15,16,17,18,31,36,37,38,43,44,45,46,47,49,50,53,54,55,57}, - new int[] {-1}, - new int[] {-1}, - new int[] {24,25,26,0,0,0}, - //new int[] {29,30,48}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_316/*Crusader Helmet*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_317/*You're talking mad shit for someone within crusading distance*/, //tr - Rarity = 5, - minLevel = 2, - maxLevel = 6, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Helmet, - icon = Res.ResourceLoader.GetTexture(91), - }; - - new BaseItem(new int[][] - { - new int[] {1,2,3,4,5,6,57}, - new int[] {-1}, - new int[] {-1}, - new int[] {24,25,26,10,47,0,0,0}, - //new int[] {29,30,48}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_318/*Hood*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_319/*Hats provide usefull stat bonuses*/, //tr - Rarity = 3, - minLevel = 2, - maxLevel = 6, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Helmet, - icon = Res.ResourceLoader.GetTexture(91), - }; - new BaseItem(new int[][] - { - new int[] {47 }, - new int[] {4,29 }, - new int[] {4,29 }, - new int[] {4,17,6,44,38,21,24,8,9}, - new int[] {4,17,6,44,38,21,24,8,9}, - new int[] {4,17,6,44,38,21,24,8,9}, - new int[] {4,17,6,44,38,21,24,8,9}, - new int[] {4,17,6,44,38,21,24,8,9}, - new int[] {2000,2002,49}, - new int[] {2001,4,29,24,21}, - new int[] {2002,4}, - new int[] {2003,-1}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_320/*The Spark of Light in The Darkness*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_321/*Magic Scroll of great quality*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_322/*Written in a language i canno't understand. Decyphering this text is impossible, so is the full utilization of the scroll.*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_323("5")/*If a black hole hits 5 or more enemies during it's lifetime, a ball lightning is summoned after it ends.*/, //tr - Rarity = 7, - minLevel = 15, - maxLevel = 20, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.SpellScroll, - icon = Res.ResourceLoader.GetTexture(110), - onEquip = () => ModdedPlayer.Stats.i_sparkOfLightAfterDark.value = true, - onUnequip = () => ModdedPlayer.Stats.i_sparkOfLightAfterDark.value = false - }; - new BaseItem(new int[][] - { - new int[] {21,22,23,24,25,26,1,2,4}, - new int[] {12,13,11,47}, - new int[] {62,63,64,1000,1001,1002,1003,1004}, - new int[] {61}, - new int[] {5,57}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_324/*Purgatory*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_325/*Golden ring with a bone chilling feel about it. This thing will only bring harm, but not to the wearer*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_326/*Ring made of Netherrite*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_327("300%")/*Purge increases all of your damage based on missing health. Up to 300%*/, //tr - Rarity = 7, - minLevel = 20, - maxLevel = 26, - CanConsume = false, - StackSize = 1, - onEquip = () => ModdedPlayer.Stats.spell_purgeDamageBonus.value = true, - onUnequip = () => ModdedPlayer.Stats.spell_purgeDamageBonus.value = false, - type = BaseItem.ItemType.Ring, - icon = Res.ResourceLoader.GetTexture(90), - }.DropSettings_OnlyCannibals(); - - new BaseItem(new int[][] - { - new int[] {18}, - new int[] {61,48}, - new int[] {2,3,5}, - new int[] {12,13,2,40,16}, - new int[] {39,40,41,42,43,0,0}, - new int[] {23,26}, - new int[] {23,26}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {2,3,4,5,6,11,12,13,15,23,26,51,60,44,49,48}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_328/*Eruption*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_329/*Incarnation of devastation*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_330/*Headshots cause explosions*/, //tr - Rarity = 7, - minLevel = 10, - maxLevel = 12, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.Greatbow, - icon = Res.ResourceLoader.GetTexture(170), - onEquip = () => ModdedPlayer.Stats.i_EruptionBow.value = true, - onUnequip = () => ModdedPlayer.Stats.i_EruptionBow.value = false, - }.PossibleStats[0][0].Multipier = -1.6f; - - new BaseItem(new int[][] - { - new int[] {18}, - new int[] {61,48}, - new int[] {2,3,5}, - new int[] {12,13,2,40,16}, - new int[] {39,40,41,42,43,0,0}, - new int[] {23,26}, - new int[] {23,26}, - new int[] {31}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {2,3,4,5,6,11,12,13,15,23,26,51,60,44,49,48}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_331/*Archangel*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_332/*Spread the goodness*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_333("30")/*Shooting another player causes them to be greatly empowered for 30 seconds*/, //tr - Rarity = 7, - minLevel = 10, - maxLevel = 12, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.Greatbow, - icon = Res.ResourceLoader.GetTexture(170), - onEquip = () => ModdedPlayer.Stats.i_ArchangelBow.value = true, - onUnequip = () => ModdedPlayer.Stats.i_ArchangelBow.value = false, - }.PossibleStats[0][0].Multipier = -2f; - new BaseItem(new int[][] - { - new int[] {1,4 }, - new int[] {1,3,5,6,49 }, - new int[] {22}, - new int[] {25}, - new int[] {12}, - new int[] {13}, - new int[] {1,12,13,22,25,30,53,57,65 }, - new int[] {-1 }, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_334/*The Executioner*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_335/*A sword for decapitating*/, //tr - Rarity = 4, - minLevel = 25, - maxLevel = 27, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.LongSword, - icon = Res.ResourceLoader.GetTexture(89), - }; - new BaseItem(new int[][] - { - new int[] {48 }, - new int[] {23,26,2 }, - new int[] {23,26 }, - new int[] {12,13}, - new int[] {60}, - new int[] {13,23,26}, - new int[] {23,26}, - new int[] {34,2,2,54}, - new int[] {15,14}, - new int[] {16,23,2,4,5,6}, - new int[] {45,46}, - new int[] {27,49}, - new int[] {-1}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_336/*Moon Cuirass*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_337/*A piece of armor designed for an archer. */, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_338("120")/*Landing a headshot with an arrow without the homing effect of seeking arrow at a distance greater than 120 feet deals five-fold damage, and hits the enemy two extra times*/, //tr - Rarity = 7, - minLevel = 20, - maxLevel = 22, - CanConsume = false, - StackSize = 1, - onEquip = () => ModdedPlayer.Stats.perk_trueAimUpgrade.value = true, - onUnequip = () => ModdedPlayer.Stats.perk_trueAimUpgrade.value = false, - type = BaseItem.ItemType.ChestArmor, - icon = Res.ResourceLoader.GetTexture(96), - }; - new BaseItem(new int[][] - { - new int[] {65 }, - new int[] {1 }, - new int[] {3}, - new int[] {5,65}, - new int[] {5,6,11,10,7,45}, - new int[] {53}, - new int[] {22}, - new int[] {1,3,4,5,31}, - new int[] {28}, - new int[] {63}, - new int[] {16}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_339/*Thornmail*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_340/*Spiked death on the outside, really comfy on the inside*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_341/*Thorns deal double damage*/, //tr - Rarity = 7, - minLevel = 20, - maxLevel = 22, - CanConsume = false, - StackSize = 1, - onEquip = () => ModdedPlayer.Stats.thornsDmgMult.valueMultiplicative *= 2, - onUnequip = () => ModdedPlayer.Stats.thornsDmgMult.valueMultiplicative /= 2, - type = BaseItem.ItemType.ChestArmor, - icon = Res.ResourceLoader.GetTexture(96), - }; - - new BaseItem(new int[][] - { - new int[] {1 }, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_342/*Rusty Polearm*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_343/*Used by the Ubersreik Five*/, //tr - Rarity = 1, - minLevel = 10, - maxLevel = 16, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.Polearm, - icon = Res.ResourceLoader.GetTexture(181), - }; - new BaseItem(new int[][] - { - new int[] {1 }, - new int[] {25,0 }, - new int[] {25 ,62,63,64}, - new int[] {6,49}, - new int[] {39,40,41,42,44,8,18,65 }, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_344/*Giant Polearm*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_345/*Used by the Sir Kruber*/, //tr - Rarity = 4, - minLevel = 20, - maxLevel = 24, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.Polearm, - icon = Res.ResourceLoader.GetTexture(181), - }; - - //Feathers - new BaseItem(new int[][] { }) - { - name = Translations.ItemDataBase_ItemDefinitions_346/*Crude Feather*/, //tr - description = - Translations.ItemDataBase_ItemDefinitions_582/*If equipped on a weapon, increases ranged damage by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.Weapon, 1).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_583/*If equipped on boots, increases movement speed by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.Boot, 1).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_584/*If equipped on a helmet, increases critical hit chance by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.Helmet, 1).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_585/*If equipped on accessories, increases ranged armor piercing by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.Amulet, 1).ToString("N") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_586/*If equipped in other slots, increases agility by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.ChestArmor, 1).ToString("N"), //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - Rarity = 3, - minLevel = 20, - maxLevel = 21, - CanConsume = false, - StackSize = 100, - subtype = 1, - type = BaseItem.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(185), - }; - new BaseItem(new int[][] { }) - { - name = Translations.ItemDataBase_ItemDefinitions_348/*Soft Feather*/, //tr - description = - Translations.ItemDataBase_ItemDefinitions_582/*If equipped on a weapon, increases ranged damage by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.Weapon, 1).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_583/*If equipped on boots, increases movement speed by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.Boot, 1).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_584/*If equipped on a helmet, increases critical hit chance by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.Helmet, 1).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_585/*If equipped on accessories, increases ranged armor piercing by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.Amulet, 1).ToString("N") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_586/*If equipped in other slots, increases agility by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.ChestArmor, 1).ToString("N"), //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - Rarity = 4, - minLevel = 20, - maxLevel = 21, - CanConsume = false, - StackSize = 100, - subtype = 1, - type = BaseItem.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(185), - }; - new BaseItem(new int[][] { }) - { - name = Translations.ItemDataBase_ItemDefinitions_349/*Ornate Feather*/, //tr - description = - Translations.ItemDataBase_ItemDefinitions_582/*If equipped on a weapon, increases ranged damage by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.Weapon, 1).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_583/*If equipped on boots, increases movement speed by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.Boot, 1).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_584/*If equipped on a helmet, increases critical hit chance by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.Helmet, 1).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_585/*If equipped on accessories, increases ranged armor piercing by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.Amulet, 1).ToString("N") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_586/*If equipped in other slots, increases agility by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.ChestArmor, 1).ToString("N"), //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - Rarity = 5, - minLevel = 20, - maxLevel = 21, - CanConsume = false, - StackSize = 100, - subtype = 1, - type = BaseItem.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(185), - }; - - new BaseItem(new int[][] { }) - { - name = Translations.ItemDataBase_ItemDefinitions_350/*Wonderful Feather*/, //tr - description = - Translations.ItemDataBase_ItemDefinitions_582/*If equipped on a weapon, increases ranged damage by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.Weapon, 1).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_583/*If equipped on boots, increases movement speed by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.Boot, 1).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_584/*If equipped on a helmet, increases critical hit chance by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.Helmet, 1).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_585/*If equipped on accessories, increases ranged armor piercing by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.Amulet, 1).ToString("N") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_586/*If equipped in other slots, increases agility by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.ChestArmor, 1).ToString("N"), //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - Rarity = 6, - minLevel = 20, - maxLevel = 21, - CanConsume = false, - StackSize = 100, - subtype = 1, - type = BaseItem.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(185), - }; - new BaseItem(new int[][] { }) - { - name = Translations.ItemDataBase_ItemDefinitions_351/*White Crow's Feather*/, //tr - description = - Translations.ItemDataBase_ItemDefinitions_582/*If equipped on a weapon, increases ranged damage by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.Weapon, 1).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_583/*If equipped on boots, increases movement speed by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.Boot, 1).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_584/*If equipped on a helmet, increases critical hit chance by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.Helmet, 1).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_585/*If equipped on accessories, increases ranged armor piercing by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.Amulet, 1).ToString("N") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_586/*If equipped in other slots, increases agility by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.ChestArmor, 1).ToString("N"), //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - Rarity = 7, - minLevel = 20, - maxLevel = 21, - CanConsume = false, - StackSize = 100, - subtype = 1, - type = BaseItem.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(185), - }; - - //-------------- Shark teeth - - new BaseItem(new int[][] { }) - { - name = Translations.ItemDataBase_ItemDefinitions_352/*Reef Shark*/, //tr - description = - Translations.ItemDataBase_ItemDefinitions_587/*If equipped on a weapon, increases melee damage by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.Weapon, 2).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_588/*If equipped on boots, decreases damage taken by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.Boot, 2).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_589/*If equipped on a helmet, increases cattack speed by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.Helmet, 2).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_590/*If equipped on accessories, increases melee armor piercing by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.Amulet, 2).ToString("N") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_591/*If equipped in other slots, increases strength by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.ChestArmor, 2).ToString("N"), //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - Rarity = 3, - minLevel = 20, - maxLevel = 21, - CanConsume = false, - StackSize = 100, - subtype = 2, - type = BaseItem.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(186), - }; - new BaseItem(new int[][] { }) - { - name = Translations.ItemDataBase_ItemDefinitions_353/*Tiger Shark Tooth*/, //tr - description = - Translations.ItemDataBase_ItemDefinitions_587/*If equipped on a weapon, increases melee damage by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.Weapon, 2).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_588/*If equipped on boots, decreases damage taken by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.Boot, 2).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_589/*If equipped on a helmet, increases cattack speed by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.Helmet, 2).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_590/*If equipped on accessories, increases melee armor piercing by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.Amulet, 2).ToString("N") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_591/*If equipped in other slots, increases strength by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.ChestArmor, 2).ToString("N"), //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - Rarity = 4, - minLevel = 20, - maxLevel = 21, - CanConsume = false, - StackSize = 100, - subtype = 2, - type = BaseItem.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(186), - }; - new BaseItem(new int[][] { }) - { - name = Translations.ItemDataBase_ItemDefinitions_354/*Whale Shark Tooth*/, //tr - description = - Translations.ItemDataBase_ItemDefinitions_587/*If equipped on a weapon, increases melee damage by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.Weapon, 2).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_588/*If equipped on boots, decreases damage taken by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.Boot, 2).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_589/*If equipped on a helmet, increases cattack speed by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.Helmet, 2).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_590/*If equipped on accessories, increases melee armor piercing by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.Amulet, 2).ToString("N") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_591/*If equipped in other slots, increases strength by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.ChestArmor, 2).ToString("N"), //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - Rarity = 5, - minLevel = 20, - maxLevel = 21, - CanConsume = false, - StackSize = 100, - subtype = 2, - type = BaseItem.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(186), - }; - - new BaseItem(new int[][] { }) - { - name = Translations.ItemDataBase_ItemDefinitions_355/*Great White Shark Tooth*/, //tr - description = - Translations.ItemDataBase_ItemDefinitions_587/*If equipped on a weapon, increases melee damage by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.Weapon, 2).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_588/*If equipped on boots, decreases damage taken by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.Boot, 2).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_589/*If equipped on a helmet, increases cattack speed by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.Helmet, 2).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_590/*If equipped on accessories, increases melee armor piercing by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.Amulet, 2).ToString("N") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_591/*If equipped in other slots, increases strength by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.ChestArmor, 2).ToString("N"), //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - Rarity = 6, - minLevel = 20, - maxLevel = 21, - CanConsume = false, - StackSize = 100, - subtype = 2, - type = BaseItem.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(186), - }; - new BaseItem(new int[][] { }) - { - name = Translations.ItemDataBase_ItemDefinitions_356/*Megalodon's Tooth*/, //tr - description = - Translations.ItemDataBase_ItemDefinitions_587/*If equipped on a weapon, increases melee damage by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.Weapon, 2).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_588/*If equipped on boots, decreases damage taken by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.Boot, 2).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_589/*If equipped on a helmet, increases cattack speed by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.Helmet, 2).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_590/*If equipped on accessories, increases melee armor piercing by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.Amulet, 2).ToString("N") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_591/*If equipped in other slots, increases strength by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.ChestArmor, 2).ToString("N"), //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - Rarity = 7, - minLevel = 20, - maxLevel = 21, - CanConsume = false, - StackSize = 100, - subtype = 2, - type = BaseItem.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(186), - }; - - //------------- Sapphires - - new BaseItem(new int[][] { }) - { - name = Translations.ItemDataBase_ItemDefinitions_357/*Uncut Sapphire*/, //tr - description = - Translations.ItemDataBase_ItemDefinitions_592/*If equipped on a weapon, increases magic damage by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.Weapon, 3).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_593/*If equipped on boots, decreases spell cost by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.Boot, 3).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_594/*If equipped on a helmet, decreases spell cooldown by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.Helmet, 3).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_595/*If equipped on accessories, increases energy on hit by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.Amulet, 3).ToString("N") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_596/*If equipped in other slots, increases intelligence by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.ChestArmor, 3).ToString("N"), //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - Rarity = 3, - minLevel = 20, - maxLevel = 21, - CanConsume = false, - StackSize = 100, - subtype = 3, - type = BaseItem.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(187), - }; - new BaseItem(new int[][] { }) - { - name = Translations.ItemDataBase_ItemDefinitions_358/*Clear Sapphire*/, //tr - description = - Translations.ItemDataBase_ItemDefinitions_592/*If equipped on a weapon, increases magic damage by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.Weapon, 3).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_593/*If equipped on boots, decreases spell cost by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.Boot, 3).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_594/*If equipped on a helmet, decreases spell cooldown by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.Helmet, 3).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_595/*If equipped on accessories, increases energy on hit by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.Amulet, 3).ToString("N") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_596/*If equipped in other slots, increases intelligence by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.ChestArmor, 3).ToString("N"), //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - Rarity = 4, - minLevel = 20, - maxLevel = 21, - CanConsume = false, - StackSize = 100, - subtype = 3, - type = BaseItem.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(187), - }; - new BaseItem(new int[][] { }) - { - name = Translations.ItemDataBase_ItemDefinitions_359/*Shiny Sapphire*/, //tr - description = - Translations.ItemDataBase_ItemDefinitions_592/*If equipped on a weapon, increases magic damage by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.Weapon, 3).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_593/*If equipped on boots, decreases spell cost by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.Boot, 3).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_594/*If equipped on a helmet, decreases spell cooldown by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.Helmet, 3).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_595/*If equipped on accessories, increases energy on hit by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.Amulet, 3).ToString("N") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_596/*If equipped in other slots, increases intelligence by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.ChestArmor, 3).ToString("N"), //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - Rarity = 5, - minLevel = 20, - maxLevel = 21, - CanConsume = false, - StackSize = 100, - subtype = 3, - type = BaseItem.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(187), - }; - - new BaseItem(new int[][] { }) - { - name = Translations.ItemDataBase_ItemDefinitions_360/*Enchanted Sapphire*/, //tr - description = - Translations.ItemDataBase_ItemDefinitions_592/*If equipped on a weapon, increases magic damage by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.Weapon, 3).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_593/*If equipped on boots, decreases spell cost by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.Boot, 3).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_594/*If equipped on a helmet, decreases spell cooldown by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.Helmet, 3).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_595/*If equipped on accessories, increases energy on hit by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.Amulet, 3).ToString("N") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_596/*If equipped in other slots, increases intelligence by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.ChestArmor, 3).ToString("N"), //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - Rarity = 6, - minLevel = 20, - maxLevel = 21, - CanConsume = false, - StackSize = 100, - subtype = 3, - type = BaseItem.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(187), - }; - new BaseItem(new int[][] { }) - { - name = Translations.ItemDataBase_ItemDefinitions_361/*Celestial Sapphire*/, //tr - description = - Translations.ItemDataBase_ItemDefinitions_592/*If equipped on a weapon, increases magic damage by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.Weapon, 3).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_593/*If equipped on boots, decreases spell cost by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.Boot, 3).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_594/*If equipped on a helmet, decreases spell cooldown by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.Helmet, 3).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_595/*If equipped on accessories, increases energy on hit by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.Amulet, 3).ToString("N") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_596/*If equipped in other slots, increases intelligence by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.ChestArmor, 3).ToString("N"), //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - Rarity = 7, - minLevel = 20, - maxLevel = 21, - CanConsume = false, - StackSize = 100, - subtype = 3, - type = BaseItem.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(187), - }; - - // -------- Moonstones - new BaseItem(new int[][] { }) - { - name = Translations.ItemDataBase_ItemDefinitions_362/*Uncut Moonstone*/, //tr - description = - Translations.ItemDataBase_ItemDefinitions_597/*If equipped on a weapon, increases all healing by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.Weapon, 4).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_598/*If equipped on boots, increases magic find by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.Boot, 4).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_599/*If equipped on a helmet, increases experience gained by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.Helmet, 4).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_600/*If equipped on accessories, increases life per second by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.Amulet, 4).ToString("N") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_601/*If equipped in other slots, increases vitality by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.ChestArmor, 4).ToString("N"), //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - Rarity = 3, - minLevel = 20, - maxLevel = 21, - CanConsume = false, - StackSize = 100, - subtype = 4, - type = BaseItem.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(188), - }; - new BaseItem(new int[][] { }) - { - name = Translations.ItemDataBase_ItemDefinitions_363/*Clear Moonstone*/, //tr - description = - Translations.ItemDataBase_ItemDefinitions_597/*If equipped on a weapon, increases all healing by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.Weapon, 4).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_598/*If equipped on boots, increases magic find by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.Boot, 4).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_599/*If equipped on a helmet, increases experience gained by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.Helmet, 4).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_600/*If equipped on accessories, increases life per second by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.Amulet, 4).ToString("N") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_601/*If equipped in other slots, increases vitality by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.ChestArmor, 4).ToString("N"), //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - Rarity = 4, - minLevel = 20, - maxLevel = 21, - CanConsume = false, - StackSize = 100, - subtype = 4, - type = BaseItem.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(188), - }; - new BaseItem(new int[][] { }) - { - name = Translations.ItemDataBase_ItemDefinitions_364/*Shiny Moonstone*/, //tr - description = - Translations.ItemDataBase_ItemDefinitions_597/*If equipped on a weapon, increases all healing by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.Weapon, 4).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_598/*If equipped on boots, increases magic find by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.Boot, 4).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_599/*If equipped on a helmet, increases experience gained by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.Helmet, 4).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_600/*If equipped on accessories, increases life per second by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.Amulet, 4).ToString("N") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_601/*If equipped in other slots, increases vitality by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.ChestArmor, 4).ToString("N"), //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - Rarity = 5, - minLevel = 20, - maxLevel = 21, - CanConsume = false, - StackSize = 100, - subtype = 4, - type = BaseItem.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(188), - }; - - new BaseItem(new int[][] { }) - { - name = Translations.ItemDataBase_ItemDefinitions_365/*Enchanted Moonstone*/, //tr - description = - Translations.ItemDataBase_ItemDefinitions_597/*If equipped on a weapon, increases all healing by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.Weapon, 4).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_598/*If equipped on boots, increases magic find by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.Boot, 4).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_599/*If equipped on a helmet, increases experience gained by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.Helmet, 4).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_600/*If equipped on accessories, increases life per second by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.Amulet, 4).ToString("N") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_601/*If equipped in other slots, increases vitality by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.ChestArmor, 4).ToString("N"), //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - Rarity = 6, - minLevel = 20, - maxLevel = 21, - CanConsume = false, - StackSize = 100, - subtype = 4, - type = BaseItem.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(188), - }; - new BaseItem(new int[][] { }) - { - name = Translations.ItemDataBase_ItemDefinitions_366/*Celestial Moonstone*/, //tr - description = - Translations.ItemDataBase_ItemDefinitions_597/*If equipped on a weapon, increases all healing by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.Weapon, 4).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_598/*If equipped on boots, increases magic find by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.Boot, 4).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_599/*If equipped on a helmet, increases experience gained by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.Helmet, 4).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_600/*If equipped on accessories, increases life per second by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.Amulet, 4).ToString("N") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_601/*If equipped in other slots, increases vitality by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.ChestArmor, 4).ToString("N"), //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - Rarity = 7, - minLevel = 20, - maxLevel = 21, - CanConsume = false, - StackSize = 100, - subtype = 4, - type = BaseItem.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(188), - }; - - // ----------------- Ores - - new BaseItem(new int[][] { }) - { - name = Translations.ItemDataBase_ItemDefinitions_367/*Lead Ore*/, //tr - description = - Translations.ItemDataBase_ItemDefinitions_602/*If equipped on a weapon, increases crit damage by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.Weapon, 5).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_603/*If equipped on boots, increases resistance to magic by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.Boot, 5).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_604/*If equipped on a helmet, increases health by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.Helmet, 5).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_605/*If equipped on accessories, increases thorns by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.Amulet, 5).ToString("N") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_606/*If equipped in other slots, increases armor by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.ChestArmor, 5).ToString("N"), //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - Rarity = 3, - minLevel = 20, - maxLevel = 21, - CanConsume = false, - StackSize = 100, - subtype = 5, - type = BaseItem.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(184), - }; - new BaseItem(new int[][] { }) - { - name = Translations.ItemDataBase_ItemDefinitions_368/*Vanadium Ore*/, //tr - description = - Translations.ItemDataBase_ItemDefinitions_602/*If equipped on a weapon, increases crit damage by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.Weapon, 5).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_603/*If equipped on boots, increases resistance to magic by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.Boot, 5).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_604/*If equipped on a helmet, increases health by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.Helmet, 5).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_605/*If equipped on accessories, increases thorns by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.Amulet, 5).ToString("N") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_606/*If equipped in other slots, increases armor by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.ChestArmor, 5).ToString("N"), //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - Rarity = 4, - minLevel = 20, - maxLevel = 21, - CanConsume = false, - StackSize = 100, - subtype = 5, - type = BaseItem.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(184), - }; - new BaseItem(new int[][] { }) - { - name = Translations.ItemDataBase_ItemDefinitions_369/*Titanium Ore*/, //tr - description = - Translations.ItemDataBase_ItemDefinitions_602/*If equipped on a weapon, increases crit damage by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.Weapon, 5).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_603/*If equipped on boots, increases resistance to magic by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.Boot, 5).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_604/*If equipped on a helmet, increases health by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.Helmet, 5).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_605/*If equipped on accessories, increases thorns by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.Amulet, 5).ToString("N") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_606/*If equipped in other slots, increases armor by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.ChestArmor, 5).ToString("N"), //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - Rarity = 5, - - minLevel = 20, - maxLevel = 21, - CanConsume = false, - StackSize = 100, - subtype = 5, - type = BaseItem.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(184), - }; - - new BaseItem(new int[][] { }) - { - name = Translations.ItemDataBase_ItemDefinitions_370/*Chromium Ore*/, //tr - description = - Translations.ItemDataBase_ItemDefinitions_602/*If equipped on a weapon, increases crit damage by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.Weapon, 5).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_603/*If equipped on boots, increases resistance to magic by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.Boot, 5).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_604/*If equipped on a helmet, increases health by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.Helmet, 5).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_605/*If equipped on accessories, increases thorns by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.Amulet, 5).ToString("N") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_606/*If equipped in other slots, increases armor by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.ChestArmor, 5).ToString("N"), //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - Rarity = 6, - minLevel = 20, - maxLevel = 21, - CanConsume = false, - StackSize = 100, - subtype = 5, - type = BaseItem.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(184), - }; - new BaseItem(new int[][] { }) - { - name = Translations.ItemDataBase_ItemDefinitions_371/*Tungsten Ore*/, //tr - description = - Translations.ItemDataBase_ItemDefinitions_602/*If equipped on a weapon, increases crit damage by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.Weapon, 5).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_603/*If equipped on boots, increases resistance to magic by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.Boot, 5).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_604/*If equipped on a helmet, increases health by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.Helmet, 5).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_605/*If equipped on accessories, increases thorns by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.Amulet, 5).ToString("N") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_606/*If equipped in other slots, increases armor by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.ChestArmor, 5).ToString("N"), //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - Rarity = 7, - minLevel = 20, - maxLevel = 21, - CanConsume = false, - StackSize = 100, - subtype = 5, - type = BaseItem.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(184), - }; - - //This is the new better way of defining items, no longer uses item ids, now uses enum like in C++, the enum is Stats, you can find it in ItemDataBase_StatDefinitons.cs - new BaseItem(new Stat[][] - { - new [] {MELEEDMGFROMSTR}, - new [] {STRENGTH}, - new [] {BASEMELEEDAMAGE,MELEEDAMAGEINCREASE}, - new [] {MELEEARMORPIERCING,ARMORPIERCING,ALLATTRIBUTES}, - new [] {ATTACKCOSTREDUCTION,ATTACKSPEED}, - new [] {ATTACKSPEED}, - new [] {ALLATTRIBUTES,MELEEWEAPONRANGE,VITALITY,MAXIMUMLIFE}, - new [] {ENERGYONHIT,VITALITY,LIFEONHIT } - }) - { - name = Translations.ItemDataBase_ItemDefinitions_372/*Knife on a stick*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_373/*Kasper named this item, his fault*/, //tr - Rarity = 5, - minLevel = 30, - maxLevel = 34, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.Polearm, - icon = Res.ResourceLoader.GetTexture(181), - }; - new BaseItem(new Stat[][] - { - new [] {STRENGTH}, - new [] {STRENGTH,ALLATTRIBUTES,MELEEARMORPIERCING,MELEEDAMAGEINCREASE,COOLDOWNREDUCTION,SPELLDAMAGEINCREASE}, - new [] {MAXIMUMLIFE,VITALITY,PERCENTMAXIMUMLIFE,ALLATTRIBUTES}, - new [] {MELEEDAMAGEINCREASE,DAMAGEREDUCTION}, - new [] {THORNS}, - new [] {VITALITY,LIFEPERSECOND,LIFEREGENERATION}, - new [] {VITALITY,LIFEPERSECOND,LIFEREGENERATION,THORNS}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ENERGYPERSECOND,MAXIMUMENERGY,DODGECHANCE,ARMOR,}, - new [] {STRENGTH,INTELLIGENCE,ARMOR,ARMORPIERCING,THORNS,} - }) - { - name = Translations.ItemDataBase_ItemDefinitions_374/*Fists of Nails*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_375/*Swiss sheese makers*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_376("900%")/*Gain 5 thorns per vitality*/, //tr - Rarity = 7, - minLevel = 20, - maxLevel = 22, - CanConsume = false, - StackSize = 1, - onEquip = () => ModdedPlayer.Stats.thornsPerVit.Add(9), - onUnequip = () => ModdedPlayer.Stats.thornsPerVit.Substract(9), - type = BaseItem.ItemType.Glove, - icon = Res.ResourceLoader.GetTexture(86), - }; - new BaseItem(new int[][] - { - new int[] {1000}, - new int[] {1001}, - new int[] {1002}, - new int[] {1003}, - new int[] {1004}, - new int[] {1,2,3,4,5,6 }, - new int[] {-1 }, - new int[] {-1 }, - new int[] {-1 }, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_377/*Cargo Shorts MK2*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_378/*Deepest pockets out there*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_379/*Improved cargo pants. Twice as many pockets, and since they didnt fit on the outside, they are inside. They are still ugly as hell tho*/, //tr - Rarity = 4, - minLevel = 30, - maxLevel = 33, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Pants, - icon = Res.ResourceLoader.GetTexture(87), - }; - new BaseItem(new Stat[][] - { - new [] {INTELLIGENCE,AGILITY}, - new [] {MAGICFIND,SPELLDAMAGEINCREASE,BASESPELLDAMAGE}, - new [] {SPELLDAMAGEINCREASE,BASESPELLDAMAGE}, - new [] {MAXENERGYFROMAGI,SPELLDMGFROMINT,RANGEDDMGFROMAGI}, - new [] {ARMOR}, - new [] {VITALITY,LIFEPERSECOND,LIFEREGENERATION,INTELLIGENCE,AGILITY,STRENGTH,ALLATTRIBUTES}, - new [] {COOLDOWNREDUCTION,SPELLCOSTREDUCTION,SPELLCOSTTOSTAMINA,MOVEMENTSPEED,DAMAGEREDUCTION}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {DODGECHANCE,ARMOR,BASESPELLDAMAGE,BASERANGEDDAMAGE}, - new [] {BASERANGEDDAMAGE,RANGEDARMORPIERCING,RANGEDDAMAGEINCREASE} - }) - { - name = Translations.ItemDataBase_ItemDefinitions_380/*Aezyn*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_381/*Enchanted with magic as strong as power swing. It's purpose? Hit harder.*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_382("1666%")/*Magic arrow damage scaling is increased by 666%*/, //tr - Rarity = 7, - minLevel = 20, - maxLevel = 22, - CanConsume = false, - StackSize = 1, - onEquip = () => ModdedPlayer.Stats.spell_magicArrowDamageScaling.Add(16.66f), - onUnequip = () => ModdedPlayer.Stats.spell_magicArrowDamageScaling.Substract(16.66f), - type = BaseItem.ItemType.Bracer, - icon = Res.ResourceLoader.GetTexture(93), - }; - new BaseItem(new Stat[][] - { - new [] {INTELLIGENCE,AGILITY}, - new [] {CRITICALHITCHANCE}, - new [] {CRITICALHITDAMAGE}, - new [] {VITALITY,LIFEPERSECOND,LIFEREGENERATION,INTELLIGENCE,AGILITY,STRENGTH,ALLATTRIBUTES}, - new [] {COOLDOWNREDUCTION,SPELLCOSTREDUCTION,SPELLCOSTTOSTAMINA,MOVEMENTSPEED,DAMAGEREDUCTION}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {DODGECHANCE,ARMOR,BASESPELLDAMAGE,BASERANGEDDAMAGE}, - new [] {BASERANGEDDAMAGE,RANGEDARMORPIERCING,RANGEDDAMAGEINCREASE} - }) - { - name = Translations.ItemDataBase_ItemDefinitions_383/*Punny's Reflective Ring*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_381/*Enchanted with magic as strong as power swing. It's purpose? Hit harder.*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_384/*Magic arrow is shot in volleys. This effect can stack.*/, //tr - Rarity = 7, - minLevel = 20, - maxLevel = 22, - CanConsume = false, - StackSize = 1, - onEquip = () => ModdedPlayer.Stats.spell_magicArrowVolleyCount.Add(3), - onUnequip = () => ModdedPlayer.Stats.spell_magicArrowVolleyCount.Substract(3), - type = BaseItem.ItemType.Ring, - icon = Res.ResourceLoader.GetTexture(90), - }; - new BaseItem(new int[][] - { - new int[] {39,0}, - new int[] {43,0}, - new int[] {67}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_385/*Eyepatch*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_386/*A wise man once said:*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_387/*Everyone thinks I'm just a one-eyed bloody monster, god damnit... (sobbing)*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_388/*Explosion damage is also applied when performing jump attacks*/, //tr - Rarity = 0, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Helmet, - icon = Res.ResourceLoader.GetTexture(91), - }; - new BaseItem(new Stat[][] - { - new [] {RANGEDARMORPIERCING}, - new [] {AGILITY}, - new [] {BASERANGEDDAMAGE,RANGEDDAMAGEINCREASE}, - new [] {SPEARDAMAGE}, - new [] {PROJECTILESPEED}, - new [] {ALLATTRIBUTES,PROJECTILESIZE,LESSERAGILITY}, - new [] {ENERGYONHIT,VITALITY,LIFEONHIT } - }) - { - name = Translations.ItemDataBase_ItemDefinitions_389/*Javelin*/, //tr - Rarity = 5, - minLevel = 30, - maxLevel = 34, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.Polearm, - icon = Res.ResourceLoader.GetTexture(181), - }; - new BaseItem(new Stat[][] - { - new [] {STRENGTH}, - new [] {MAXIMUMLIFE, VITALITY,PERCENTMAXIMUMLIFE}, - new [] {MELEEARMORPIERCING, MELEEDAMAGEINCREASE,BASEMELEEDAMAGE}, - new [] {MELEEDAMAGEINCREASE,BASEMELEEDAMAGE}, - new [] {ATTACKSPEED, CRITICALHITDAMAGE,CRITICALHITCHANCE}, - new [] {MAXENERGYFROMAGI,PERCENTMAXIMUMENERGY,ENERGYONHIT,LIFEONHIT,LIFEPERSECOND,LIFEREGENERATION,STAMINAPERSECOND,STAMINAREGENERATION}, - new [] {ARMOR,THORNS,DAMAGEREDUCTION,PERCENTMAXIMUMLIFE}, - new [] {ALL}, - new [] {ALL}, - - }) - { - name = Translations.ItemDataBase_ItemDefinitions_390/*Warplate*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_391/*Enchanted with the power of the GOD's armor. It's purpose? Hit harder, daddy.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_392/*Strength comes from the power of will, the stronger the will the stronger you are*/, //tr - Rarity = 6, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.ChestArmor, - icon = Res.ResourceLoader.GetTexture(96), - }; - { - var SomeItem = new BaseItem(new Stat[][] - { - new [] {STRENGTH}, - new [] {MAXIMUMLIFE, VITALITY,MAXHEALTHFROMVIT,PERCENTMAXIMUMLIFE}, - new [] {MELEEARMORPIERCING, MELEEDAMAGEINCREASE,BASEMELEEDAMAGE,ATTACKSPEED}, - new [] {SPELLCOSTREDUCTION, CRITICALHITDAMAGE,CRITICALHITCHANCE}, - new [] {ALL}, - new [] {STRENGTH, THORNS}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_393/*Torso of Strength*/, //tr - - Rarity = 4, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.ChestArmor, - icon = Res.ResourceLoader.GetTexture(96), - }; - SomeItem.PossibleStats[0][0].Multipier = 2; - } - { - var demoVestItem = new BaseItem(new Stat[][] - { - new [] {EXPLOSIONDAMAGE}, - new [] {AGILITY,INTELLIGENCE, ALLATTRIBUTES}, - new [] {MAXIMUMLIFE, VITALITY, LIFEONHIT}, - new [] {ALLHEALINGPERCENT}, - new [] {ALL}, - new [] {MELEEWEAPONRANGE,ENERGYONHIT,ARMORPIERCING, DODGECHANCE}, - new [] {MOVEMENTSPEED,BLOCK,MAGICFIND}, - - }) - { - name = Translations.ItemDataBase_ItemDefinitions_394/*Demoman's Vest*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_395/*What makes me a good demoman? If I were a bad demoman, I wouldn't be sittin' here discussin' it with you, now would I?! LET'S DO IT! Not one of you's gonna survive this! One crossed wire, one wayward pinch of potassium chlorate, one errant twitch, and KA-BLOOIE! I got a manky eye. I'm a black Scottish cyclops. They got more fecking sea monsters in the great Lochett Ness than they got the likes of me. So! T'all you fine dandies, so proud, so cocksure, prancin' about with your heads full of eyeballs... come and get me, I say! I'll be waitin' on you with a whiff of the old brimstone! I'm a Grimm bloody fable with an unhappy bloody end! Oh, they're going to have to glue you back together...IN HELL!*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_392/*Strength comes from the power of will, the stronger the will the stronger you are*/, //tr - Rarity = 5, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.ChestArmor, - icon = Res.ResourceLoader.GetTexture(96), - }; - demoVestItem.PossibleStats[0][0].Multipier = 7; - - } - new BaseItem(new Stat[][] - { - new [] {STRENGTH,ALLATTRIBUTES,BASEMELEEDAMAGE}, - new [] {MAXIMUMLIFE, VITALITY,DAMAGEREDUCTION,MELEEWEAPONRANGE}, - new [] {MELEEARMORPIERCING, MELEEDAMAGEINCREASE}, - new [] {MELEEDAMAGEINCREASE,MELEEDMGFROMSTR}, - new [] {SPELLCOSTREDUCTION, CRITICALHITDAMAGE}, - new [] {ALL}, - new [] {STRENGTH,THORNS,BASEMELEEDAMAGE,CRITICALHITCHANCE,ATTACKSPEED,MELEEWEAPONRANGE}, - new [] {ARMOR}, - - }) - { - name = Translations.ItemDataBase_ItemDefinitions_396/*Brawler's Gloves*/, //tr - Rarity = 6, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Glove, - icon = Res.ResourceLoader.GetTexture(86), - }; - new BaseItem(new Stat[][] - { - new [] {ALLATTRIBUTES,STRENGTH,AGILITY,INTELLIGENCE}, - new [] {MAXIMUMLIFE, VITALITY,STRENGTH,INTELLIGENCE}, - new [] {MELEEARMORPIERCING, MELEEDAMAGEINCREASE,RANGEDDAMAGEINCREASE,BASERANGEDDAMAGE,RANGEDARMORPIERCING}, - new [] {SPELLCOSTREDUCTION, CRITICALHITDAMAGE,CRITICALHITCHANCE,SPELLDAMAGEINCREASE,COOLDOWNREDUCTION}, - new [] {ARMORPIERCING}, - new [] {ALL}, - new [] {ARMOR,DAMAGEREDUCTION,RESISTANCETOMAGIC,VITALITY,LESSERVITALITY}, - - }) - { - name = Translations.ItemDataBase_ItemDefinitions_397/*Nail Gloves*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_398/*Enchanted with the power of penetration. It's purpose? Hit harder.*/, //tr - Rarity = 3, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Glove, - icon = Res.ResourceLoader.GetTexture(86), - }; - - new BaseItem(new Stat[][] - { - new [] {ATTACKSPEED}, - new [] {RANGEDDAMAGEINCREASE,RANGEDDMGFROMAGI}, - new [] {BASERANGEDDAMAGE}, - new [] {BASERANGEDDAMAGE,NONE}, - new [] {PROJECTILESIZE,LESSERAGILITY,AGILITY}, - new [] {PROJECTILESPEED,CRITICALHITCHANCE,CRITICALHITDAMAGE}, - new [] {AGILITY,NONE}, - new [] {RANGEDARMORPIERCING, ARMORPIERCING,ENERGYONHIT}, - new [] {ALL}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_399/*Hand-held Ballista*/, //tr - Rarity = 5, - minLevel = 10, - maxLevel = 12, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.Greatbow, - icon = Res.ResourceLoader.GetTexture(170), - - }.PossibleStats[0][0].Multipier = -2f; - - new BaseItem(new Stat[][] - { - new [] {STRENGTH,LESSERSTRENGTH}, - new [] {MAXIMUMLIFE, VITALITY,MELEEDMGFROMSTR,ARMOR}, - new [] {MELEEARMORPIERCING, MELEEDAMAGEINCREASE}, - - }) - { - name = Translations.ItemDataBase_ItemDefinitions_400/*Kuldars's Scarf*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_401/*Strength comes from the power of will*/, //tr - Rarity = 2, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(100), - }; - new BaseItem(new Stat[][] - { - new [] {MELEEDAMAGEINCREASE,MELEEDMGFROMSTR}, - new [] {MAXIMUMLIFE, VITALITY,MELEEDAMAGEINCREASE,BASEMELEEDAMAGE}, - new [] {MELEEARMORPIERCING, MELEEDAMAGEINCREASE,MELEEWEAPONRANGE,ARMOR}, - new [] {SPELLCOSTREDUCTION, CRITICALHITDAMAGE,CRITICALHITCHANCE}, - new [] {ALL}, - new [] {STRENGTH,LESSERSTRENGTH}, - - }) - { - name = Translations.ItemDataBase_ItemDefinitions_402/*Sword Devil's Scarf*/, //tr - Rarity = 4, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(100), - }; - new BaseItem(new Stat[][] - { - new [] {STRENGTH}, - new [] {MAXIMUMLIFE, VITALITY}, - new [] {MELEEARMORPIERCING, MELEEDAMAGEINCREASE}, - new [] {SPELLCOSTREDUCTION, CRITICALHITDAMAGE}, - new [] {STRENGTH}, - - }) - { - name = Translations.ItemDataBase_ItemDefinitions_403/*Peasant's Scarf*/, //tr - Rarity = 3, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(100), - }; - new BaseItem(new Stat[][] - { - new [] {EXPLOSIONDAMAGE}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {EXPLOSIONDAMAGE}, - new [] {EXPLOSIONDAMAGE}, - new [] {EXPLOSIONDAMAGE,NONE}, - - }) - { - name = Translations.ItemDataBase_ItemDefinitions_404/*Bombastinc Choker*/, //tr - Rarity = 6, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(100), - }.PossibleStats[0][0].Multipier = 7f; - new BaseItem(new Stat[][] - { - new [] {STRENGTH,VITALITY,AGILITY,ALLATTRIBUTES,INTELLIGENCE}, - new [] {MAXENERGYFROMAGI,MELEEDMGFROMSTR,SPELLDMGFROMINT,RANGEDDMGFROMAGI,MAXHEALTHFROMVIT}, - new [] {ARMOR,DAMAGEREDUCTION}, - new [] { CRITICALHITCHANCE, CRITICALHITDAMAGE}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {EXPLOSIONDAMAGE}, - new [] {EXPLOSIONDAMAGE,NONE}, - new [] {EXPLOSIONDAMAGE,NONE}, - - }) - { - name = Translations.ItemDataBase_ItemDefinitions_405/*Explosive Touch*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_406/*Enchanted with the power of the explosions armor. It's purpose? Become the true explosion master*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_407/*Strength comes from the power of will, the stronger the will the stronger the explosion*/, //tr - Rarity = 6, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Glove, - icon = Res.ResourceLoader.GetTexture(86), - }; - new BaseItem(new Stat[][] - { - new [] {ARMOR}, - new [] {MAXIMUMLIFE, VITALITY}, - new [] {CRITICALHITCHANCE, CRITICALHITDAMAGE,ATTACKSPEED,BASESPELLDAMAGE,STAMINAPERSECOND}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALLATTRIBUTES}, - new [] {EXPLOSIONDAMAGE}, - new [] {EXPLOSIONDAMAGE}, - - }) - { - name = Translations.ItemDataBase_ItemDefinitions_408/*Volatile Bracers*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_406/*Enchanted with the power of the explosions armor. It's purpose? Become the true explosion master*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_407/*Strength comes from the power of will, the stronger the will the stronger the explosion*/, //tr - Rarity = 6, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Bracer, - icon = Res.ResourceLoader.GetTexture(93), - }; - new BaseItem(new Stat[][] - { - new [] {ARMOR}, - new [] {MAXIMUMLIFE, VITALITY}, - new [] {CRITICALHITCHANCE, CRITICALHITDAMAGE,ATTACKSPEED,BASESPELLDAMAGE,STAMINAPERSECOND}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {EMPTYSOCKET}, - new [] {EMPTYSOCKET}, - new [] {EXPLOSIONDAMAGE}, - new [] {EXPLOSIONDAMAGE}, - - }) - { - name = Translations.ItemDataBase_ItemDefinitions_409/*Volatile Helmet*/, //tr - - Rarity = 6, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Helmet, - icon = Res.ResourceLoader.GetTexture(91), - }; - new BaseItem(new Stat[][] - { - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {MAXIMUMLIFE, VITALITY,ARMOR,PERCENTMAXIMUMLIFE,PERCENTMAXIMUMENERGY,MAXHEALTHFROMVIT,THORNS,RESISTANCETOMAGIC}, - new [] {JUMPPOWER}, - new [] {MOVEMENTSPEED}, - new [] {EMPTYSOCKET}, - new [] {EMPTYSOCKET}, - new [] {EXPLOSIONDAMAGE}, - new [] {EXPLOSIONDAMAGE}, - - }) - { - name = Translations.ItemDataBase_ItemDefinitions_410/*Gunpowder filled socks*/, //tr - Rarity = 6, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Boot, - icon = Res.ResourceLoader.GetTexture(85), - }; - new BaseItem(new Stat[][] - { - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {MAXIMUMLIFE, VITALITY,ARMOR,PERCENTMAXIMUMLIFE,PERCENTMAXIMUMENERGY,MAXHEALTHFROMVIT,THORNS,RESISTANCETOMAGIC}, - new [] {EMPTYSOCKET}, - new [] {EMPTYSOCKET}, - new [] {EXPLOSIONDAMAGE}, - new [] {EXPLOSIONDAMAGE}, - - }) - { - name = Translations.ItemDataBase_ItemDefinitions_411/*Red Skirt*/, //tr - Rarity = 5, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Pants, - icon = Res.ResourceLoader.GetTexture(87), - }; - new BaseItem(new Stat[][] - { - new [] {ALL}, - new [] {MAXIMUMLIFE, VITALITY,ARMOR}, - new [] {MELEEARMORPIERCING, RANGEDARMORPIERCING}, - new [] {ARMOR, ALLATTRIBUTES,VITALITY,LESSERVITALITY}, - new [] {EXTRACARRIEDSTICKS,EXTRACARRIEDROCKS,EXTRACARRIEDROPES}, - new [] {EXPLOSIONDAMAGE}, - new [] {EXPLOSIONDAMAGE}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_412/*Gunpowder Boxers*/, //tr - Rarity = 4, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Pants, - icon = Res.ResourceLoader.GetTexture(87), - }; - - new BaseItem(new Stat[][] - { - new [] {EXPLOSIONDAMAGE}, - new [] {EXPLOSIONDAMAGE}, - new [] {EXPLOSIONDAMAGE}, - new [] {EXPLOSIONDAMAGE}, - new [] {EXPLOSIONDAMAGE}, - new [] {EXPLOSIONDAMAGE}, - new [] {EXPLOSIONDAMAGE,NONE}, - new [] {EXPLOSIONDAMAGE,NONE}, - new [] {ARMOR}, - new [] {PERCENTMAXIMUMLIFE}, - - }) - { - name = Translations.ItemDataBase_ItemDefinitions_413/*Jihad Vest*/, //tr - Rarity = 5, - minLevel = 1, - maxLevel = 4, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.ChestArmor, - icon = Res.ResourceLoader.GetTexture(96), - }; - - new BaseItem(new Stat[][] - { - new [] {CRITICALHITCHANCE}, - new [] {MAGICFIND,NONE,EXPGAIN}, - new [] {RANGEDDAMAGEINCREASE,MELEEDAMAGEINCREASE}, - new [] {STRENGTH,AGILITY}, - new [] {ALL}, - new [] {CHANCEONHITTOBLEED}, - new [] {CHANCEONHITTOSLOW}, - new [] {CHANCEONHITTOWEAKEN}, - new [] {MAXENERGYFROMAGI,FIREDAMAGE,CRITICALHITDAMAGE,RANGEDDMGFROMAGI,MELEEDMGFROMSTR}, - - - }) - { - name = Translations.ItemDataBase_ItemDefinitions_414/*Ring of Fortune*/, //tr - Rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 10, - maxLevel = 14, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Ring, - icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that - }; - new BaseItem(new Stat[][] - { - new [] {SPELLDAMAGEINCREASE}, - new [] {INTELLIGENCE}, - new [] {COOLDOWNREDUCTION}, - new [] {ALLATTRIBUTES, INTELLIGENCE,SPELLDAMAGEINCREASE}, - new [] {SPELLDMGFROMINT,MAXENERGYFROMAGI}, - new [] {BASESPELLDAMAGE}, - new [] {PERCENTMAXIMUMENERGY,ENERGYONHIT,ENERGYPERSECOND}, - new [] {FIREDAMAGE,SPELLCOSTREDUCTION,SPELLCOSTTOSTAMINA}, - - - }) - { - name = Translations.ItemDataBase_ItemDefinitions_415/*Mana Ring*/, //tr - Rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 10, - maxLevel = 14, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Ring, - icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that - }; - new BaseItem(new Stat[][] - { - new [] {MELEEDMGFROMSTR,ALLATTRIBUTES,STAMINAPERSECOND,STAMINAREGENERATION,DODGECHANCE}, - new [] {STRENGTH,LESSERSTRENGTH,VITALITY,ARMOR}, - new [] {MELEEWEAPONRANGE,BASERANGEDDAMAGE,BASEMELEEDAMAGE}, - new [] {VITALITY}, - new [] {MAXHEALTHFROMVIT,MAXENERGYFROMAGI}, - new [] {LIFEPERSECOND}, - new [] {LIFEONHIT}, - new [] {ENERGYONHIT,ENERGYPERSECOND,INTELLIGENCE,AGILITY}, - new [] {MAXIMUMLIFE}, - new [] {PERCENTMAXIMUMLIFE,CRITICALHITCHANCE}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_416/*Life Ring*/, //tr - Rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 10, - maxLevel = 14, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Ring, - icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that - }; - new BaseItem(new Stat[][] - { - new [] {STRENGTH}, - new [] {MOVEMENTSPEED,DODGECHANCE,DAMAGEREDUCTION}, - new [] {VITALITY,MAXHEALTHFROMVIT,MAXIMUMLIFE,PERCENTMAXIMUMLIFE,ARMOR}, - new [] {INTELLIGENCE,MAXENERGYFROMAGI,PERCENTMAXIMUMENERGY,MAXIMUMENERGY,BASEMELEEDAMAGE,MELEEDAMAGEINCREASE,ARMOR,DAMAGEREDUCTION}, - new [] {MELEEARMORPIERCING,MELEEDAMAGEINCREASE}, - new [] {ARMOR,ATTACKSPEED,STRENGTH}, - new [] {BASEMELEEDAMAGE}, - new [] {BASEMELEEDAMAGE,MELEEDAMAGEINCREASE}, - new [] {MELEEDAMAGEINCREASE,MELEEDMGFROMSTR}, - new [] {CRITICALHITCHANCE,MELEEWEAPONRANGE,ATTACKSPEED}, - new [] {CRITICALHITDAMAGE, MELEEDAMAGEINCREASE, STRENGTH}, - new [] {ENERGYONHIT,ENERGYPERSECOND,MAXIMUMLIFE}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_417/*Moritz's Gear*/, //tr - Rarity = 6, - minLevel = 5, - maxLevel = 6, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.ChestArmor, - icon = Res.ResourceLoader.GetTexture(96), - }; - new BaseItem(new Stat[][] - { - new [] {STRENGTH,BASEMELEEDAMAGE,MELEEDAMAGEINCREASE,ATTACKSPEED}, - new [] {MOVEMENTSPEED,DODGECHANCE,DAMAGEREDUCTION}, - new [] {VITALITY,MAXHEALTHFROMVIT,MAXIMUMLIFE,PERCENTMAXIMUMLIFE,MELEEARMORPIERCING}, - new [] {INTELLIGENCE,STRENGTH,CRITICALHITDAMAGE,PERCENTMAXIMUMENERGY,MAXIMUMENERGY}, - new [] {BASEMELEEDAMAGE}, - new [] {BASEMELEEDAMAGE,MELEEDAMAGEINCREASE}, - new [] {MELEEDAMAGEINCREASE,MELEEDMGFROMSTR}, - new [] {CRITICALHITCHANCE,MELEEWEAPONRANGE}, - new [] {CRITICALHITDAMAGE, MELEEDAMAGEINCREASE, STRENGTH}, - new [] {ENERGYONHIT,ENERGYPERSECOND,MAXIMUMLIFE}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_418/*Band of Hurting*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_419/*A ring for a warrior*/, //tr - Rarity = 6, - minLevel = 5, - maxLevel = 6, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Ring, - icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that - }; - - new BaseItem(new Stat[][] - { - new [] {AGILITY,RANGEDDAMAGEINCREASE}, - new [] {ALLATTRIBUTES, ARMOR,PERCENTMAXIMUMLIFE}, - new [] {CRITICALHITCHANCE}, - new [] {CRITICALHITDAMAGE,NONE}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_420/*Straw Hat*/, //tr - Rarity = 2, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Helmet, - icon = Res.ResourceLoader.GetTexture(91), - }; - new BaseItem(new Stat[][] - { - new [] {INTELLIGENCE}, - new [] {ALLATTRIBUTES, ARMOR,ENERGYONHIT}, - new [] {BASESPELLDAMAGE}, - new [] {FIREDAMAGE,SPELLDAMAGEINCREASE,SPELLCOSTREDUCTION}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_318/*Hood*/, //tr - Rarity = 2, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Helmet, - icon = Res.ResourceLoader.GetTexture(91), - }; - new BaseItem(new Stat[][] - { - new [] {SPEARDAMAGE}, - new [] {AGILITY}, - new [] {STAMINAPERSECOND}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_421/*Rusty Javelin*/, //tr - Rarity = 3, - minLevel = 10, - maxLevel = 16, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.Polearm, - icon = Res.ResourceLoader.GetTexture(181), - }; - new BaseItem(new Stat[][] - { - new [] {INTELLIGENCE}, - new [] {DODGECHANCE,DAMAGEREDUCTION}, - new [] {VITALITY,MAXHEALTHFROMVIT,MAXIMUMLIFE,PERCENTMAXIMUMLIFE}, - new [] {SPELLDMGFROMINT}, - new [] {SPELLCOSTREDUCTION,COOLDOWNREDUCTION}, - new [] {SPELLCOSTREDUCTION,COOLDOWNREDUCTION}, - new [] {ENERGYPERSECOND,PERCENTMAXIMUMENERGY,MAXENERGYFROMAGI}, - new [] {BASESPELLDAMAGE,SPELLDAMAGEINCREASE,INTELLIGENCE}, - new [] {BASESPELLDAMAGE,SPELLDAMAGEINCREASE,INTELLIGENCE}, - new [] {BASESPELLDAMAGE,SPELLDAMAGEINCREASE,INTELLIGENCE}, - new [] {BASESPELLDAMAGE,SPELLDAMAGEINCREASE,INTELLIGENCE}, - new [] {ENERGYONHIT,ENERGYPERSECOND,MAXIMUMLIFE}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_422/*Star Robe*/, //tr - Rarity = 6, - minLevel = 5, - maxLevel = 6, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.ChestArmor, - icon = Res.ResourceLoader.GetTexture(96), - }; - new BaseItem(new Stat[][] - { - new [] {ATTACKSPEED}, - new [] {BASESPELLDAMAGE}, - new [] {DODGECHANCE,DAMAGEREDUCTION,MELEEWEAPONRANGE,ARMORPIERCING,FIREDAMAGE,CRITICALHITCHANCE}, - new [] {VITALITY,MAXHEALTHFROMVIT,MAXIMUMLIFE,PERCENTMAXIMUMLIFE,LIFEPERSECOND,LIFEONHIT}, - new [] {SPELLDMGFROMINT}, - new [] {SPELLCOSTREDUCTION,COOLDOWNREDUCTION,CRITICALHITCHANCE,CRITICALHITDAMAGE}, - new [] {SPELLCOSTREDUCTION,COOLDOWNREDUCTION,SPELLCOSTTOSTAMINA,PERCENTMAXIMUMENERGY,LIFEREGENERATION}, - new [] {ENERGYPERSECOND,PERCENTMAXIMUMENERGY,MAXENERGYFROMAGI}, - new [] {INTELLIGENCE,STAMINAPERSECOND,STAMINAREGENERATION}, - new [] {BASESPELLDAMAGE,SPELLDAMAGEINCREASE,INTELLIGENCE,BASEMELEEDAMAGE,ALLATTRIBUTES}, - new [] {BASESPELLDAMAGE,SPELLDAMAGEINCREASE,INTELLIGENCE,DAMAGEREDUCTION}, - new [] {ENERGYONHIT,ENERGYPERSECOND,MAXIMUMLIFE,MASSACREDURATION,MAGICFIND,EXPLOSIONDAMAGE}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_423/*Anger*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_424/*Downscaled version of Greatsword Rage, made to be wielded by flimsy wizards*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_425(15)/*Increases maximum stacks of frenzy by 10*/, //tr - Rarity = 7, - minLevel = 6, - maxLevel = 9, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.LongSword, - icon = Res.ResourceLoader.GetTexture(88), - onEquip = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Add(15), - onUnequip = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Substract(15), - }.PossibleStats[0][0].Multipier = 1.5f; - - - new BaseItem(new Stat[][] - { - new[] { ARMOR }, - new[] { MOVEMENTSPEED}, - new[] { SPELLDMGFROMINT }, - new[] { SPELLCOSTREDUCTION,SPELLCOSTTOSTAMINA,ARMOR,ALLATTRIBUTES}, - new[] { BASESPELLDAMAGE, SPELLDAMAGEINCREASE, INTELLIGENCE, ALLATTRIBUTES }, - new[] { BASESPELLDAMAGE, SPELLDAMAGEINCREASE, INTELLIGENCE, DAMAGEREDUCTION }, - new[] { VITALITY, MAXHEALTHFROMVIT, MAXIMUMLIFE, PERCENTMAXIMUMLIFE, LIFEPERSECOND, LIFEONHIT }, - new[] { SPELLCOSTREDUCTION, COOLDOWNREDUCTION, CRITICALHITCHANCE, CRITICALHITDAMAGE, ARMOR,MAXHEALTHFROMVIT }, - new[] { SPELLCOSTREDUCTION, COOLDOWNREDUCTION, SPELLCOSTTOSTAMINA, PERCENTMAXIMUMENERGY, LIFEREGENERATION }, - new[] { ENERGYPERSECOND, PERCENTMAXIMUMENERGY, MAXENERGYFROMAGI }, - new[] { INTELLIGENCE, STAMINAPERSECOND, STAMINAREGENERATION, ALLATTRIBUTES, ALLHEALINGPERCENT }, - new[] { ENERGYONHIT, ENERGYPERSECOND, MAXIMUMLIFE, MASSACREDURATION, MAGICFIND, EXPLOSIONDAMAGE }, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_426/*Yuki-Onna Strides*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_433("50%", "300%")/*Set Piece:\n2 Pieces- Snow Storm pulls enemies towards you\n3 Pieces - Snow Storm radius, maximum damage, spell cost is doubled, but charge rate is slower\n4 Pieces - Snow storm hit frequency is increased by 50%*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_428/*Boots looted off a snow demon*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_429("50%")/*Increses snowstorm damage by 50%*/, //tr - Rarity = 7, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Boot, - icon = Res.ResourceLoader.GetTexture(85), - onEquip = () => AkagiSet.Equip(), - onUnequip = () => AkagiSet.Unequip(), - }; - - new BaseItem(new Stat[][] - { - new[] { INTELLIGENCE,NONE }, - new[] { ARMOR }, - new[] { ALLHEALINGPERCENT,DODGECHANCE,SPELLDAMAGEINCREASE,BASESPELLDAMAGE}, - new[] { SPELLDMGFROMINT,DAMAGEREDUCTION }, - new[] { SPELLCOSTREDUCTION,SPELLCOSTTOSTAMINA,ARMOR,ALLATTRIBUTES}, - new[] { ARMOR,DAMAGEREDUCTION ,RESISTANCETOMAGIC}, - new[] { INTELLIGENCE, MAXIMUMLIFE,LIFEPERSECOND,SPELLDAMAGEINCREASE,BASESPELLDAMAGE }, - new[] { VITALITY, MAXIMUMLIFE, PERCENTMAXIMUMLIFE, LIFEPERSECOND, LIFEONHIT }, - new[] { SPELLCOSTREDUCTION, COOLDOWNREDUCTION, CRITICALHITCHANCE, CRITICALHITDAMAGE, ARMOR }, - new[] { SPELLCOSTREDUCTION, COOLDOWNREDUCTION, SPELLCOSTTOSTAMINA, PERCENTMAXIMUMENERGY, LIFEREGENERATION,RESISTANCETOMAGIC }, - new[] { ENERGYPERSECOND, PERCENTMAXIMUMENERGY, MAXENERGYFROMAGI,MAXHEALTHFROMVIT }, - new[] { INTELLIGENCE, STAMINAPERSECOND, STAMINAREGENERATION, ALLATTRIBUTES, ALLHEALINGPERCENT }, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_430/*Yuki-Onna Greaves*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_433("50%", "300%")/*Set Piece:\n2 Pieces- Snow Storm pulls enemies towards you\n3 Pieces - Snow Storm radius, maximum damage, spell cost is doubled, but charge rate is slower\n4 Pieces - Snow storm hit frequency is increased by 50%*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_429("50%")/*Increses snowstorm damage by 50%*/, //tr - Rarity = 7, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Pants, - icon = Res.ResourceLoader.GetTexture(87), - onEquip = () => AkagiSet.Equip(), - onUnequip = () => AkagiSet.Unequip(), - }; - - new BaseItem(new Stat[][] - { - new[] { INTELLIGENCE,NONE }, - new[] { ARMOR }, - new[] { ALLHEALINGPERCENT,DODGECHANCE}, - new[] { SPELLDMGFROMINT,DAMAGEREDUCTION }, - new[] { SPELLCOSTREDUCTION,SPELLCOSTTOSTAMINA,ARMOR,ALLATTRIBUTES}, - new[] { ARMOR,DAMAGEREDUCTION ,RESISTANCETOMAGIC,SPELLDAMAGEINCREASE,BASESPELLDAMAGE}, - new[] { INTELLIGENCE, MAXIMUMLIFE,LIFEPERSECOND,SPELLDAMAGEINCREASE,BASESPELLDAMAGE }, - new[] { VITALITY, MAXIMUMLIFE, PERCENTMAXIMUMLIFE, LIFEPERSECOND, LIFEONHIT }, - new[] { SPELLCOSTREDUCTION, COOLDOWNREDUCTION, CRITICALHITCHANCE, CRITICALHITDAMAGE, ARMOR }, - new[] { SPELLCOSTREDUCTION, COOLDOWNREDUCTION, SPELLCOSTTOSTAMINA, PERCENTMAXIMUMENERGY, LIFEREGENERATION,RESISTANCETOMAGIC }, - new[] { ENERGYPERSECOND, PERCENTMAXIMUMENERGY, MAXENERGYFROMAGI,MAXHEALTHFROMVIT }, - new[] { INTELLIGENCE, STAMINAPERSECOND, STAMINAREGENERATION, ALLATTRIBUTES, ALLHEALINGPERCENT }, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_431/*Yuki-Onna Kimono*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_433("50%", "300%")/*Set Piece:\n2 Pieces- Snow Storm pulls enemies towards you\n3 Pieces - Snow Storm radius, maximum damage, spell cost is doubled, but charge rate is slower\n4 Pieces - Snow storm hit frequency is increased by 50%*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_429("50%")/*Increses snowstorm damage by 50%*/, //tr - Rarity = 7, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.ChestArmor, - icon = Res.ResourceLoader.GetTexture(96), - onEquip = () => AkagiSet.Equip(), - onUnequip = () => AkagiSet.Unequip(), - }; - - new BaseItem(new Stat[][] - { - new[] { INTELLIGENCE,NONE }, - new[] { ARMOR }, - new[] { CRITICALHITCHANCE,CRITICALHITDAMAGE}, - new[] { SPELLDMGFROMINT }, - new[] { SPELLCOSTREDUCTION,SPELLCOSTTOSTAMINA,ARMOR,ALLATTRIBUTES}, - new[] { ARMOR, SPELLDAMAGEINCREASE, BASESPELLDAMAGE, RESISTANCETOMAGIC}, - new[] { INTELLIGENCE, MAXIMUMLIFE,LIFEPERSECOND }, - new[] { SPELLDAMAGEINCREASE,BASESPELLDAMAGE, MAXIMUMLIFE, PERCENTMAXIMUMLIFE, LIFEPERSECOND, LIFEONHIT }, - new[] { SPELLCOSTREDUCTION, COOLDOWNREDUCTION, CRITICALHITCHANCE, CRITICALHITDAMAGE, ARMOR }, - new[] { SPELLCOSTREDUCTION, COOLDOWNREDUCTION, SPELLCOSTTOSTAMINA, PERCENTMAXIMUMENERGY, LIFEREGENERATION,RESISTANCETOMAGIC }, - new[] { ENERGYPERSECOND, PERCENTMAXIMUMENERGY, MAXENERGYFROMAGI,MAXHEALTHFROMVIT }, - new[] { INTELLIGENCE, STAMINAPERSECOND, STAMINAREGENERATION, ALLATTRIBUTES, ALLHEALINGPERCENT }, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_432/*Yuki-Onna's Headdress*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_433("50%", "300%")/*Set Piece:\n2 Pieces- Snow Storm pulls enemies towards you\n3 Pieces - Snow Storm radius, maximum damage, spell cost is doubled, but charge rate is slower\n4 Pieces - Snow storm hit frequency is increased by 50% and damage is increased by 300%*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_429("50%")/*Increses snowstorm damage by 50%*/, //tr - Rarity = 7, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Helmet, - icon = Res.ResourceLoader.GetTexture(91), - onEquip = () => AkagiSet.Equip(), - onUnequip = () => AkagiSet.Unequip(), - }; - - new BaseItem(new Stat[][] - { - new[] { INTELLIGENCE,NONE }, - new[] { ARMOR }, - new[] { CRITICALHITCHANCE,CRITICALHITDAMAGE}, - new[] { SPELLDMGFROMINT }, - new[] { SPELLCOSTREDUCTION,SPELLCOSTTOSTAMINA,ARMOR,ALLATTRIBUTES}, - new[] { ARMOR, SPELLDAMAGEINCREASE, BASESPELLDAMAGE, RESISTANCETOMAGIC}, - new[] { INTELLIGENCE, MAXIMUMLIFE,LIFEPERSECOND }, - new[] { SPELLDAMAGEINCREASE,BASESPELLDAMAGE, MAXIMUMLIFE, PERCENTMAXIMUMLIFE, LIFEPERSECOND, LIFEONHIT }, - new[] { SPELLCOSTREDUCTION, COOLDOWNREDUCTION, CRITICALHITCHANCE, CRITICALHITDAMAGE, ARMOR }, - new[] { SPELLCOSTREDUCTION, COOLDOWNREDUCTION, SPELLCOSTTOSTAMINA, PERCENTMAXIMUMENERGY, LIFEREGENERATION,RESISTANCETOMAGIC }, - new[] { ENERGYPERSECOND, PERCENTMAXIMUMENERGY, MAXENERGYFROMAGI,MAXHEALTHFROMVIT }, - new[] { INTELLIGENCE, STAMINAPERSECOND, STAMINAREGENERATION, ALLATTRIBUTES, ALLHEALINGPERCENT }, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_434/*Lama Mega's Blood Bag*/, //tr - description = "", //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_435("15 000%", 15)/*Melee hits cause enemies to bleed for 100% of your health as damage for 15 seconds*/, //tr - Rarity = 7, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(100), - onEquip = () => COTFEvents.Instance.OnHitMelee.AddListener(UniqueItemFunctions.EnemyBleedForPlayerHP), - onUnequip = () => COTFEvents.Instance.OnHitMelee.RemoveListener(UniqueItemFunctions.EnemyBleedForPlayerHP), - }; - new BaseItem(new int[][] { }) - { - name = Translations.ItemDataBase_ItemDefinitions_436/*Socket Drill*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_437/*A convienient one use tool*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_438/*What's a drill doing here in a place full of primitive tribes?*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_439/*Adds one socket to an item, unless the item can't have any more sockets.*/, //tr - Rarity = 6, - minLevel = 1, - maxLevel = 2, - CanConsume = false, - StackSize = 100, - type = BaseItem.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(190), - onConsume = x => - { - int socketMax = StatActions.GetMaxSocketAmountOnItem(in x.type); - int socketCurrent = x.Stats.Count(y => y.StatID >= 3000); - if (socketCurrent < socketMax) - { - x.Stats.Add(new ItemStat(ItemDataBase.StatByID(3000))); - return true; - } - return false; - } - }; - new BaseItem(new Stat[][] - { - new[] { MOVEMENTSPEED}, - new[] { INTELLIGENCE,STRENGTH,AGILITY }, - new[] { ALLATTRIBUTES,VITALITY }, - new[] { ARMOR }, - new[] { NONE,JUMPPOWER}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_440/*Moonwalkers*/, //tr - description = "", //tr - lore = Translations.ItemDataBase_ItemDefinitions_441/*Cha cha real smooth.*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_442/*Inverts movement*/, //tr - Rarity = 3, - minLevel = 16, - maxLevel = 18, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Boot, - icon = Res.ResourceLoader.GetTexture(85), - onEquip = () => ModdedPlayer.Stats.movementSpeed.Multiply(-1.2f), - onUnequip = () => ModdedPlayer.Stats.movementSpeed.Divide(-1.2f) - }.PossibleStats[0][0].Multipier = 3; - - new BaseItem(new Stat[][] - { - new[] { JUMPPOWER}, - new[] { LESSERAGILITY}, - new[] { LESSERARMOR}, - new[] { PROJECTILESIZE,PROJECTILESIZE,ALLATTRIBUTES,LIFEREGENERATION,LIFEPERSECOND,LESSERVITALITY,AGILITY}, - new[] { RANGEDARMORPIERCING,RANGEDDAMAGEINCREASE,BASERANGEDDAMAGE,ATTACKSPEED}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_443/*Rabbit Ears Hairband*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_444/*Cute*/, //tr - lore = "", //tr - Rarity = 3, - minLevel = 1, - maxLevel = 2, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Helmet, - icon = Res.ResourceLoader.GetTexture(91), - }; - new BaseItem(new Stat[][] - { - new[] { JUMPPOWER}, - new[] { AGILITY}, - new[] { ARMOR}, - new[] { PROJECTILESIZE,PROJECTILESIZE,ALLATTRIBUTES,LIFEREGENERATION,LIFEPERSECOND,VITALITY,INTELLIGENCE,AGILITY}, - new[] { RANGEDARMORPIERCING,RANGEDDAMAGEINCREASE,BASERANGEDDAMAGE,ATTACKSPEED}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_445/*Bunny Ears Hairband*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_444/*Cute*/, //tr - lore = "", //tr - Rarity = 4, - minLevel = 1, - maxLevel = 2, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Helmet, - icon = Res.ResourceLoader.GetTexture(91), - }; - new BaseItem(new int[][] - { - new int[] {11}, - new int[] {16}, - new int[] {3000}, - new int[] {3000}, - new int[] {3000}, - new int[] {3000}, - new int[] {3000}, - new int[] {3000}, - new int[] {3000}, - new int[] {3000}, - new int[] {3000}, - new int[] {3000}, - new int[] {3000}, - new int[] {3000}, - new int[] {3000}, - new int[] {3000}, - new int[] {3000}, - new int[] {3000}, - new int[] {3000}, - new int[] {3000}, - new int[] {3000}, - new int[] {3000}, - new int[] {3000}, - new int[] {3000,0}, - new int[] {3000,0}, - new int[] {3000,0}, - new int[] {3000,0}, - new int[] {3000,0}, - - }) - { - name = Translations.ItemDataBase_ItemDefinitions_446/*Iron plate full of holes*/, //tr - description = "", //tr - lore = Translations.ItemDataBase_ItemDefinitions_447/*The integrity of this item is questionable*/, //tr - Rarity = 3, - minLevel = 50, - maxLevel = 60, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.ChestArmor, - icon = Res.ResourceLoader.GetTexture(96), - }; - new BaseItem(new Stat[][] - { - new [] {ALL}, - new [] {BASESPELLDAMAGE,BASERANGEDDAMAGE,BASEMELEEDAMAGE}, - new [] {SPELLDMGFROMINT,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,DAMAGEREDUCTION}, - new [] {ALLATTRIBUTES,AGILITY,STRENGTH,INTELLIGENCE,VITALITY}, - - }) - { - name = Translations.ItemDataBase_ItemDefinitions_448/*Small Tribal Necklace*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_449(2)/*Increases maximum stacks of frenzy by 2*/, //tr - Rarity = 4, - minLevel = 6, - maxLevel = 9, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(100), - onEquip = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Add(2), - onUnequip = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Substract(2), - }; - new BaseItem(new Stat[][] - { - new [] {ALL}, - new [] {ALL}, - new [] {BASESPELLDAMAGE,BASERANGEDDAMAGE,BASEMELEEDAMAGE}, - new [] {SPELLDMGFROMINT,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,DAMAGEREDUCTION}, - new [] {ALLATTRIBUTES,AGILITY,STRENGTH,INTELLIGENCE,VITALITY}, - - }) - { - name = Translations.ItemDataBase_ItemDefinitions_450/*Tribal Necklace*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_451(3)/*Increases maximum stacks of frenzy by 3*/, //tr - Rarity = 4, - minLevel = 6, - maxLevel = 9, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(100), - onEquip = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Add(3), - onUnequip = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Substract(3), - }; - new BaseItem(new Stat[][] - { - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {BASESPELLDAMAGE,BASERANGEDDAMAGE,BASEMELEEDAMAGE}, - new [] {SPELLDMGFROMINT,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,DAMAGEREDUCTION}, - new [] {ALLATTRIBUTES,AGILITY,STRENGTH,INTELLIGENCE,VITALITY}, - - }) - { - name = Translations.ItemDataBase_ItemDefinitions_452/*Warlord Necklace*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_453(4)/*Increases maximum stacks of frenzy by 4*/, //tr - Rarity = 5, - minLevel = 6, - maxLevel = 9, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(100), - onEquip = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Add(4), - onUnequip = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Substract(4), - }; - new BaseItem(new Stat[][] - { - new [] {ALL}, - new [] {ALL}, - new [] {MOVEMENTSPEED,COOLDOWNREDUCTION}, - new [] {JUMPPOWER,ATTACKSPEED,MOVEMENTSPEED,ENERGYPERSECOND}, - new [] {BASESPELLDAMAGE,BASERANGEDDAMAGE,BASEMELEEDAMAGE,CRITICALHITCHANCE,CRITICALHITDAMAGE}, - new [] {ALLATTRIBUTES,AGILITY,STRENGTH,INTELLIGENCE,VITALITY}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_454/*Travel Band*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_455(25)/*The distance of blink is increased by 20 feet*/, //tr - Rarity = 5, - minLevel = 5, - maxLevel = 9, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Ring, - icon = Res.ResourceLoader.GetTexture(90), - onEquip = () => { ModdedPlayer.Stats.spell_blinkRange.Add(25); }, - onUnequip = () => { ModdedPlayer.Stats.spell_blinkRange.Substract(25); }, - }; - - new BaseItem(new Stat[][] - { - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {COOLDOWNREDUCTION,NONE}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_456/*Destroyed Void Shard*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_457/*Only a fraction of its previous might remains*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_154/*A pedant of great power. Obtainable only from babies or crafting*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_458(1)/*Decrease the cooldown of one ability by 1 second whenever you hit something with melee or ranged attack.*/, //tr - Rarity = 6, - minLevel = 80, - maxLevel = 90, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(101), - onEquip = () => ModdedPlayer.Stats.i_infinityLoop.value = true, - onUnequip = () => ModdedPlayer.Stats.i_infinityLoop.value = false, - }; - new BaseItem(new int[][] - { - new int[] {25 }, - new int[] {18 }, - new int[] {2004 }, - new int[] {1,3,62,63,64}, - new int[] {53,16}, - new int[] {25 ,22,1,12,13,5,6}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_459/*Famine Hammer*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_163/*It's slow but with enough strength i can make it a very deadly tool*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_460("30%")/*Chance to weaken enemies, causing them to take more damage from all attacks, is increased by 30%*/, //tr - Rarity = 4, - minLevel = 30, - maxLevel = 35, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.Hammer, - icon = Res.ResourceLoader.GetTexture(109), - onEquip = () => ModdedPlayer.Stats.chanceToWeaken.Add(0.3f), - onUnequip = () => ModdedPlayer.Stats.chanceToWeaken.Substract(0.3f), - }; - - new BaseItem(new int[][] - { - new int[] {25 }, - new int[] {18 }, - new int[] {-1 }, - new int[] {2004 }, - new int[] {1,3,62,63,64}, - new int[] {53,16}, - new int[] {25 ,22,1,12,13,5,6}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_461/*Curse Hammer*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_462/*Omnious Weapon*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_463("45%")/*Chance to weaken enemies, causing them to take more damage from all attacks, is increased by 40%*/, //tr - Rarity = 5, - minLevel = 30, - maxLevel = 35, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.Hammer, - icon = Res.ResourceLoader.GetTexture(109), - onEquip = () => ModdedPlayer.Stats.chanceToWeaken.Add(0.45f), - onUnequip = () => ModdedPlayer.Stats.chanceToWeaken.Substract(0.45f), - }; - new BaseItem(new Stat[][] - { - new [] {ALL}, - new [] {ALL}, - new [] {MELEEDAMAGEINCREASE,MELEEDMGFROMSTR}, - new [] {STRENGTH}, - new [] {BASEMELEEDAMAGE}, - new [] {ATTACKCOSTREDUCTION,ATTACKSPEED,LIFEONHIT,ENERGYONHIT,NONE,NONE,NONE}, - new [] {ALLATTRIBUTES,VITALITY,MELEEDAMAGEINCREASE,MELEEARMORPIERCING}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_464/*Smasher*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_163/*It's slow but with enough strength i can make it a very deadly tool*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_465/*Smash damage is increased tripled*/, //tr - Rarity = 5, - minLevel = 30, - maxLevel = 35, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.Hammer, - icon = Res.ResourceLoader.GetTexture(109), - onEquip = () => { ModdedPlayer.Stats.smashDamage.Multiply(3f); }, - onUnequip = () => { ModdedPlayer.Stats.smashDamage.Divide(3f); }, - }; - new BaseItem(new Stat[][] - { - new [] {ALL}, - new [] {LIFEONHIT}, - new [] {ENERGYONHIT}, - new [] {STAMINAREGENERATION,PERCENTMAXIMUMENERGY,PERCENTMAXIMUMLIFE}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_466/*Vampiric Band*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_467(1)/*Gain 1 stamina on ranged and melee hit or double that amount on critical hits*/, //tr - Rarity = 3, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Ring, - icon = Res.ResourceLoader.GetTexture(90), - onEquip = () => COTFEvents.Instance.OnHitEnemy.AddListener(UniqueItemFunctions.Gain1EnergyOnHit), - onUnequip = () => COTFEvents.Instance.OnHitEnemy.RemoveListener(UniqueItemFunctions.Gain1EnergyOnHit), - }; - new BaseItem(new Stat[][] - { - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {LIFEONHIT}, - new [] {CRITICALHITCHANCE,CRITICALHITDAMAGE}, - new [] {MELEEDAMAGEINCREASE,RANGEDDAMAGEINCREASE,SPELLDAMAGEINCREASE}, - new [] {ENERGYONHIT}, - new [] {STAMINAREGENERATION,PERCENTMAXIMUMENERGY,PERCENTMAXIMUMLIFE}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_468/*Vampire Ring*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_469(10)/*Gain 10 stamina on ranged and melee hit or double that amount on critical hits*/, //tr - Rarity = 6, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Ring, - icon = Res.ResourceLoader.GetTexture(90), - onEquip = () => COTFEvents.Instance.OnHitEnemy.AddListener(UniqueItemFunctions.Gain10EnergyOnHit), - onUnequip = () => COTFEvents.Instance.OnHitEnemy.RemoveListener(UniqueItemFunctions.Gain10EnergyOnHit), - }; - new BaseItem(new Stat[][] - { - new [] {SPELLDAMAGEINCREASE,INTELLIGENCE,BASESPELLDAMAGE}, - new [] {SPELLDAMAGEINCREASE,INTELLIGENCE,BASESPELLDAMAGE}, - new [] {VITALITY,LIFEPERSECOND,LIFEREGENERATION,INTELLIGENCE,AGILITY,STRENGTH,ALLATTRIBUTES}, - new [] {COOLDOWNREDUCTION,SPELLCOSTREDUCTION,SPELLCOSTTOSTAMINA,INTELLIGENCE,DAMAGEREDUCTION}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_470/*Tricksters Scarf*/, //tr - description = "", //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_471(1)/*Magic arrow shoots 1 additional arrow.*/, //tr - Rarity = 4, - minLevel = 20, - maxLevel = 22, - CanConsume = false, - StackSize = 1, - onEquip = () => ModdedPlayer.Stats.spell_magicArrowVolleyCount.Add(1), - onUnequip = () => ModdedPlayer.Stats.spell_magicArrowVolleyCount.Substract(1), - type = BaseItem.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(100) - }; - new BaseItem(new Stat[][] - { - new [] {SPELLDAMAGEINCREASE,INTELLIGENCE,BASESPELLDAMAGE}, - new [] {SPELLDAMAGEINCREASE,INTELLIGENCE,BASESPELLDAMAGE}, - new [] {VITALITY,LIFEPERSECOND,LIFEREGENERATION,INTELLIGENCE,AGILITY,STRENGTH,ALLATTRIBUTES}, - new [] {COOLDOWNREDUCTION,SPELLCOSTREDUCTION,SPELLCOSTTOSTAMINA,INTELLIGENCE,DAMAGEREDUCTION}, - new [] {INTELLIGENCE}, - new [] {ALL}, - - }) - { - name = Translations.ItemDataBase_ItemDefinitions_472/*Magus' Necktie*/, //tr - description = "", //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_473(2)/*Magic arrow shoots 2 additional arrows.*/, //tr - Rarity = 5, - minLevel = 50, - maxLevel = 52, - CanConsume = false, - StackSize = 1, - onEquip = () => ModdedPlayer.Stats.spell_magicArrowVolleyCount.Add(2), - onUnequip = () => ModdedPlayer.Stats.spell_magicArrowVolleyCount.Substract(2), - type = BaseItem.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(100) - }; - new BaseItem(new int[][] - { - new int[] {23,26}, - new int[] {34,18,17,16,15,14,60,61,55,}, - new int[] {16,19,23,31,54,51,52,66,57}, - new int[] {2,3,4,5,6,7,8,9,10}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_474/*Discounted Knockoff Magic Quiver*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_475("15%")/*There's a 15% increased chance to not consume ammo when firing a projectile.*/, //tr - Rarity = 3, - minLevel = 2, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Quiver, - icon = Res.ResourceLoader.GetTexture(98), - onEquip = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Add(0.15f), - onUnequip = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Substract(0.15f), - }; - new BaseItem(new int[][] - { - new int[] {23,26}, - new int[] {34,18,17,16,15,14,60,61,55,}, - new int[] {16,19,23,31,54,51,52,66,57}, - new int[] {2,48,0,0}, - new int[] {2,3,4,5,6,7,8,9,10}, - new int[] {2,1,5,6,0}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_476/*Magic Quiver*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_477("20%")/*There's a 20% increased chance to not consume ammo when firing a projectile.*/, //tr - Rarity = 4, - minLevel = 2, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Quiver, - icon = Res.ResourceLoader.GetTexture(98), - onEquip = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Add(0.2f), - onUnequip = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Substract(0.2f), - }; - new BaseItem(new int[][] - { - new int[] {23,26}, - new int[] {23}, - new int[] {34,18,17,16,15,14,60,61,55,}, - new int[] {16,19,23,31,54,51,52,66,57}, - new int[] {2,48}, - new int[] {2,3,4,5,6,7,8,9,10}, - new int[] {2,1,5,6}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_478/*Improved Magic Quiver*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_479("25%")/*There's a 25% increased chance to not consume ammo when firing a projectile.*/, //tr - Rarity = 5, - minLevel = 2, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Quiver, - icon = Res.ResourceLoader.GetTexture(98), - onEquip = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Add(0.25f), - onUnequip = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Substract(0.25f), - }; - new BaseItem(new int[][] - { - new int[] {23,26}, - new int[] {23}, - new int[] {34,18,17,16,15,14,60,61,55,}, - new int[] {16,19,23,31,54,51,52,66,57}, - new int[] {2,16,14}, - new int[] {2,3,4,5,6,7,8,9,10}, - new int[] {48}, - new int[] {-1}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_480/*Factory Quiver*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_481("40%")/*There's a 40% increased chance to not consume ammo when firing a projectile.*/, //tr - Rarity = 6, - minLevel = 12, - maxLevel = 20, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Quiver, - icon = Res.ResourceLoader.GetTexture(98), - onEquip = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Add(0.4f), - onUnequip = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Substract(0.4f), - }; - - new BaseItem(new int[][] { }) - { - name = Translations.ItemDataBase_ItemDefinitions_482/*Enzyme STR/34*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_484/*Changes Vitality, Agility or Intelligence stat on an item to Strength or changes Ranged or Spell damage stat to Melee Damage*/, //tr - Rarity = 6, - minLevel = 1, - maxLevel = 2, - CanConsume = false, - StackSize = 100, - type = BaseItem.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(193), - onConsume = x => - { - if (x.Equipped) - return false; - - var stats = x.Stats.Where(y => y.StatID == (int)VITALITY || y.StatID == (int)INTELLIGENCE || y.StatID == (int)AGILITY - || y.StatID == (int)LESSERVITALITY || y.StatID == (int)LESSERINTELLIGENCE || y.StatID == (int)LESSERAGILITY - || y.StatID == (int)BASERANGEDDAMAGE || y.StatID == (int)BASESPELLDAMAGE - || y.StatID == (int)RANGEDDAMAGEINCREASE || y.StatID == (int)SPELLDAMAGEINCREASE).ToArray(); - - int c = stats.Count(); - - - if (c == 0) - return false; - int i = UnityEngine.Random.Range(0, c); - ItemStat stat = stats[i]; - int index = x.Stats.IndexOf(stat); - - ItemStat newStat; - Stat statID = (Stat)stat.StatID; - switch (statID) - { - case VITALITY: - case INTELLIGENCE: - case AGILITY: - newStat = new ItemStat(StatByID((int)STRENGTH)); - break; - case LESSERVITALITY: - case LESSERINTELLIGENCE: - case LESSERAGILITY: - newStat = new ItemStat(StatByID((int)LESSERSTRENGTH)); - break; - case BASERANGEDDAMAGE: - case BASESPELLDAMAGE: - newStat = new ItemStat(StatByID((int)BASEMELEEDAMAGE)); - break; - case RANGEDDAMAGEINCREASE: - case SPELLDAMAGEINCREASE: - newStat = new ItemStat(StatByID((int)MELEEDAMAGEINCREASE)); - break; - default: - return false; - } - newStat.Amount = stat.Amount; - newStat.possibleStatsIndex = stat.possibleStatsIndex; - x.Stats[index] = newStat; - return true; - } - }; - new BaseItem(new int[][] { }) - { - name = Translations.ItemDataBase_ItemDefinitions_485/*Enzyme INT/33*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_486/*Changes Vitality, Agility or Strength stat on an item to Intelligence or changes Ranged or Melee damage stat to Spell Damage*/, //tr - Rarity = 6, - minLevel = 1, - maxLevel = 2, - CanConsume = false, - StackSize = 100, - type = BaseItem.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(191), - onConsume = x => - { - if (x.Equipped) - return false; - - var stats = x.Stats.Where(y => y.StatID == (int)VITALITY || y.StatID == (int)STRENGTH || y.StatID == (int)AGILITY - || y.StatID == (int)LESSERVITALITY || y.StatID == (int)LESSERSTRENGTH || y.StatID == (int)LESSERAGILITY - || y.StatID == (int)BASERANGEDDAMAGE || y.StatID == (int)BASEMELEEDAMAGE - || y.StatID == (int)RANGEDDAMAGEINCREASE || y.StatID == (int)MELEEDAMAGEINCREASE).ToArray(); - - int c = stats.Count(); - - - if (c == 0) - return false; - int i = UnityEngine.Random.Range(0, c); - ItemStat stat = stats[i]; - int index = x.Stats.IndexOf(stat); - - ItemStat newStat; - Stat statID = (Stat)stat.StatID; - switch (statID) - { - case VITALITY: - case STRENGTH: - case AGILITY: - newStat = new ItemStat(StatByID((int)INTELLIGENCE)); - break; - case LESSERVITALITY: - case LESSERSTRENGTH: - case LESSERAGILITY: - newStat = new ItemStat(StatByID((int)LESSERINTELLIGENCE)); - break; - case BASERANGEDDAMAGE: - case BASEMELEEDAMAGE: - newStat = new ItemStat(StatByID((int)BASESPELLDAMAGE)); - break; - case RANGEDDAMAGEINCREASE: - case MELEEDAMAGEINCREASE: - newStat = new ItemStat(StatByID((int)SPELLDAMAGEINCREASE)); - break; - default: - return false; - } - newStat.Amount = stat.Amount; - newStat.possibleStatsIndex = stat.possibleStatsIndex; - x.Stats[index] = newStat; - return true; - } - }; - new BaseItem(new int[][] { }) - { - name = Translations.ItemDataBase_ItemDefinitions_487/*Enzyme AGI/39*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_488/*Changes Vitality, Intelligence or Strength stat on an item to Agility or changes Melee or Spell damage stat to Ranged Damage*/, //tr - Rarity = 6, - minLevel = 1, - maxLevel = 2, - CanConsume = false, - StackSize = 100, - type = BaseItem.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(192), - onConsume = x => - { - if (x.Equipped) - return false; - - var stats = x.Stats.Where(y => y.StatID == (int)VITALITY || y.StatID == (int)STRENGTH || y.StatID == (int)INTELLIGENCE - || y.StatID == (int)LESSERVITALITY || y.StatID == (int)LESSERSTRENGTH || y.StatID == (int)LESSERINTELLIGENCE - || y.StatID == (int)BASESPELLDAMAGE || y.StatID == (int)BASEMELEEDAMAGE - || y.StatID == (int)SPELLDAMAGEINCREASE || y.StatID == (int)MELEEDAMAGEINCREASE).ToArray(); - - int c = stats.Count(); - - - if (c == 0) - return false; - int i = UnityEngine.Random.Range(0, c); - ItemStat stat = stats[i]; - int index = x.Stats.IndexOf(stat); - - ItemStat newStat; - Stat statID = (Stat)stat.StatID; - switch (statID) - { - case VITALITY: - case INTELLIGENCE: - case STRENGTH: - newStat = new ItemStat(StatByID((int)AGILITY)); - break; - case LESSERVITALITY: - case LESSERINTELLIGENCE: - case LESSERSTRENGTH: - newStat = new ItemStat(StatByID((int)LESSERAGILITY)); - break; - case BASEMELEEDAMAGE: - case BASESPELLDAMAGE: - newStat = new ItemStat(StatByID((int)BASERANGEDDAMAGE)); - break; - case MELEEDAMAGEINCREASE: - case SPELLDAMAGEINCREASE: - newStat = new ItemStat(StatByID((int)RANGEDDAMAGEINCREASE)); - break; - default: - return false; - } - newStat.Amount = stat.Amount; - newStat.possibleStatsIndex = stat.possibleStatsIndex; - x.Stats[index] = newStat; - return true; - } - }; - - new BaseItem(new int[][] { }) - { - name = Translations.ItemDataBase_ItemDefinitions_489/*Enzyme VIT/449*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_490/*Changes Agility, Intelligence or Strength stat on an item to Vitality*/, //tr - Rarity = 6, - minLevel = 1, - maxLevel = 2, - CanConsume = false, - StackSize = 100, - type = BaseItem.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(199), - onConsume = x => - { - if (x.Equipped) - return false; - - var stats = x.Stats.Where(y => y.StatID == (int)VITALITY || y.StatID == (int)STRENGTH || y.StatID == (int)INTELLIGENCE - || y.StatID == (int)LESSERAGILITY || y.StatID == (int)LESSERSTRENGTH || y.StatID == (int)LESSERINTELLIGENCE).ToArray(); - - int c = stats.Count(); - - - if (c == 0) - return false; - int i = UnityEngine.Random.Range(0, c); - ItemStat stat = stats[i]; - int index = x.Stats.IndexOf(stat); - - ItemStat newStat; - Stat statID = (Stat)stat.StatID; - switch (statID) - { - case AGILITY: - case INTELLIGENCE: - case STRENGTH: - newStat = new ItemStat(StatByID((int)VITALITY)); - break; - case LESSERAGILITY: - case LESSERINTELLIGENCE: - case LESSERSTRENGTH: - newStat = new ItemStat(StatByID((int)LESSERVITALITY)); - break; - default: - return false; - } - newStat.Amount = stat.Amount; - newStat.possibleStatsIndex = stat.possibleStatsIndex; - x.Stats[index] = newStat; - return true; - } - }; - new BaseItem(new int[][] { }) - { - name = Translations.ItemDataBase_ItemDefinitions_491/*Stomach Acid*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_492/*Removes all stats with negative values from an item*/, //tr - Rarity = 4, - minLevel = 1, - maxLevel = 2, - CanConsume = false, - StackSize = 100, - type = BaseItem.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(198), - onConsume = x => - { - if (x.Equipped) - return false; - - var stats = x.Stats.RemoveAll(y => y.Amount < 0); - if (stats > 0) - return true; - return false; - } - }; - new BaseItem(new int[][] { }) - { - name = Translations.ItemDataBase_ItemDefinitions_493/*Elite Stomach Acid*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_494/*Changes negative stat values into positive values on an item*/, //tr - Rarity = 6, - minLevel = 1, - maxLevel = 2, - CanConsume = false, - StackSize = 100, - type = BaseItem.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(198), - onConsume = x => - { - if (x.Equipped) - return false; - - var stats = x.Stats.Where(y => y.Amount < 0).ToList(); - if (stats.Count > 0) - { - for (int i = 0; i < stats.Count; i++) - { - stats[i].Amount *= -1; - } - return true; - } - return false; - } - }; - new BaseItem(new int[][] { }) - { - name = Translations.ItemDataBase_ItemDefinitions_495/*Crimson Solution*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_496/*Upgrades item of any rarity to one of the same type but of Legendary rarity*/, //tr - Rarity = 7, - minLevel = 1, - maxLevel = 2, - CanConsume = false, - StackSize = 100, - type = BaseItem.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(196), - onConsume = x => - { - if (x.Equipped) - return false; - var itemType = x.type; - if (itemType == BaseItem.ItemType.Other || itemType == BaseItem.ItemType.Material || x.Amount > 1) - return false; - if (Player.Inventory.Instance.ItemSlots.ContainsValue(x)) - { - for (int slotIndex = 0; slotIndex < Inventory.SlotCount; slotIndex++) - { - if (Player.Inventory.Instance.ItemSlots[slotIndex] == x) - { - var options = ItemDataBase.ItemBases.Where(y => y.Value.Rarity == 7 && y.Value.type == itemType && (itemType != BaseItem.ItemType.Weapon || y.Value.weaponModel == x.weaponModel)).Select(y => y.Key).ToList(); - if (options.Count == 0) - { - ModAPI.Log.Write("No tier 7 items for type: " + itemType); - return false; - } - var random = options[UnityEngine.Random.Range(0, options.Count)]; - Item item = new Item(ItemDataBase.ItemBases[random], 1, 0, false) - { - level = x.level - }; - item.RollStats(); - Inventory.Instance.ItemSlots[slotIndex] = item; - return true; - } - } - } - return false; - } - }; - - new BaseItem(new int[][] { }) - { - name = Translations.ItemDataBase_ItemDefinitions_497/*Weak Armor Hardening Mixture*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_498/*Adds Armor Stat to a piece of equipment if the item does not already have it*/, //tr - Rarity = 4, - minLevel = 1, - maxLevel = 2, - CanConsume = false, - StackSize = 100, - type = BaseItem.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(197), - onConsume = x => - { - if (x.Equipped) - return false; - var itemType = x.type; - if (itemType == BaseItem.ItemType.Other || itemType == BaseItem.ItemType.Material || x.Amount > 1) - return false; - if (!x.Stats.Any(y => y.StatID == (int)ARMOR || y.StatID == (int)LESSERARMOR)) - { - ItemStat stat = new ItemStat(StatByID((int)ARMOR), x.level); - x.Stats.Add(stat); - return true; - } - return false; - } - }; - - new BaseItem(new int[][] { }) - { - name = Translations.ItemDataBase_ItemDefinitions_499/*Upgraded Armor Hardening Mixture*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_500/*Adds Damage Reduction Stat to a piece of equipment if the item does not already have it*/, //tr - Rarity = 5, - minLevel = 1, - maxLevel = 2, - CanConsume = false, - StackSize = 100, - type = BaseItem.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(197), - onConsume = x => - { - if (x.Equipped) - return false; - var itemType = x.type; - if (itemType == BaseItem.ItemType.Other || itemType == BaseItem.ItemType.Material || x.Amount > 1) - return false; - if (!x.Stats.Any(y => y.StatID == (int)DAMAGEREDUCTION)) - { - ItemStat stat = new ItemStat(StatByID((int)DAMAGEREDUCTION), x.level); - x.Stats.Add(stat); - return true; - } - return false; - } - }; - - new BaseItem(new int[][] { }) - { - name = Translations.ItemDataBase_ItemDefinitions_501/*Chaos Water*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_502/*Rerolls all stats on an item of rarity no higher than orange*/, //tr - Rarity = 4, - minLevel = 1, - maxLevel = 2, - CanConsume = false, - StackSize = 100, - type = BaseItem.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(195), - onConsume = x => - { - if (x.Equipped) - return false; - var itemType = x.type; - if (itemType == BaseItem.ItemType.Other || itemType == BaseItem.ItemType.Material || x.Amount > 1 || x.Rarity > 5) - return false; - if (x.Stats.Count > 1) - { - x.RollStats(); - return true; - } - return false; - } - }; - new BaseItem(new int[][] { }) - { - name = Translations.ItemDataBase_ItemDefinitions_503/*Upgraded Chaos Water*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_504/*Rerolls all stats on an item of any rarity*/, //tr - Rarity = 6, - minLevel = 1, - maxLevel = 2, - CanConsume = false, - StackSize = 100, - type = BaseItem.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(194), - onConsume = x => - { - if (x.Equipped) - return false; - var itemType = x.type; - if (itemType == BaseItem.ItemType.Other || itemType == BaseItem.ItemType.Material || x.Amount > 1) - return false; - if (x.Stats.Count > 1) - { - x.RollStats(); - return true; - } - return false; - } - }; - new BaseItem(new Stat[][] - { - new [] {SPELLCOSTREDUCTION,MELEEDAMAGEINCREASE,SPELLDAMAGEINCREASE,COOLDOWNREDUCTION,DAMAGEREDUCTION, RANGEDDMGFROMAGI, ATTACKSPEED}, - new [] {AGILITY,LESSERAGILITY}, - new [] {MELEEARMORPIERCING,RANGEDARMORPIERCING,ARMORPIERCING,ARMOR}, - new [] {RANGEDDAMAGEINCREASE,RANGEDDMGFROMAGI,BASERANGEDDAMAGE,CRITICALHITCHANCE,CRITICALHITDAMAGE,ALLATTRIBUTES}, - new [] {INTELLIGENCE,STRENGTH,AGILITY,VITALITY,ALLATTRIBUTES,MAXIMUMLIFE,MAXIMUMENERGY}, - new [] {INTELLIGENCE,STRENGTH,AGILITY,VITALITY,ALLATTRIBUTES,LIFEONHIT,ENERGYONHIT,ENERGYPERSECOND,ALLHEALINGPERCENT}, - new [] {RANGEDDAMAGEINCREASE,BASERANGEDDAMAGE,AGILITY}, - new [] {ALL}, - new [] {ALL}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_505/*Gun Blade*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_506("150%")/*Increases pistol damage by 150%*/, //tr - Rarity = 6, - minLevel = 35, - maxLevel = 36, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.Axe, - icon = Res.ResourceLoader.GetTexture(138), - onEquip = () => ModdedPlayer.Stats.perk_bulletDamageMult.Multiply(2.5f), - onUnequip = () => ModdedPlayer.Stats.perk_bulletDamageMult.Divide(2.5f), - }.PossibleStats[0][0].Multipier = -1f; - - new BaseItem(new Stat[][] - { - new [] {SPELLCOSTREDUCTION,BASESPELLDAMAGE,SPELLDAMAGEINCREASE,COOLDOWNREDUCTION,DAMAGEREDUCTION}, - new [] {ATTACKSPEED,PROJECTILESIZE,PROJECTILESPEED}, - new [] {AGILITY,LESSERAGILITY}, - new [] {HEADSHOTDAMAGE}, - new [] {MELEEARMORPIERCING,RANGEDARMORPIERCING,ARMORPIERCING,ARMOR,RESISTANCETOMAGIC,MAGICFIND}, - new [] {RANGEDDAMAGEINCREASE,RANGEDDMGFROMAGI,BASERANGEDDAMAGE,CRITICALHITCHANCE,CRITICALHITDAMAGE,ALLATTRIBUTES,MAXENERGYFROMAGI}, - new [] {RANGEDDAMAGEINCREASE,BASERANGEDDAMAGE,AGILITY,VITALITY,INTELLIGENCE,CRITICALHITCHANCE,CRITICALHITDAMAGE}, - new [] {RANGEDDAMAGEINCREASE,BASERANGEDDAMAGE,AGILITY,VITALITY,INTELLIGENCE,HEADSHOTDAMAGE}, - new [] {INTELLIGENCE,STRENGTH,AGILITY,VITALITY,ALLATTRIBUTES,MAXIMUMLIFE,MAXIMUMENERGY}, - new [] {INTELLIGENCE,STRENGTH,AGILITY,VITALITY,ALLATTRIBUTES,LIFEONHIT,ENERGYONHIT,ENERGYPERSECOND,ALLHEALINGPERCENT}, - new [] {ALL}, - new [] {ALL}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_507/*Sharpshooter's Axe*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_508("50%", "600%")/*Increases pistol headshot chance by 50% and pistol damage by 600%*/, //tr - Rarity = 7, - minLevel = 35, - maxLevel = 36, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.Axe, - icon = Res.ResourceLoader.GetTexture(138), - onEquip = () => { ModdedPlayer.Stats.perk_bulletDamageMult.Multiply(6f); ModdedPlayer.Stats.perk_bulletCritChance.Add(0.5f); }, - onUnequip = () => { ModdedPlayer.Stats.perk_bulletDamageMult.Divide(6f); ModdedPlayer.Stats.perk_bulletCritChance.Substract(0.5f); }, - }; - new BaseItem(new Stat[][] - { - new [] {ARMORPIERCING,MELEEARMORPIERCING,NONE}, - new [] {BLOCK,NONE}, - new [] {ARMOR,MAXIMUMLIFE,MAXHEALTHFROMVIT,DAMAGEREDUCTION,RESISTANCETOMAGIC,DODGECHANCE}, - new [] {ARMOR,MAXIMUMLIFE,MAXHEALTHFROMVIT,DAMAGEREDUCTION,VITALITY,STRENGTH,ALLATTRIBUTES}, - new [] {ARMOR,MAXIMUMLIFE,MAXHEALTHFROMVIT,DAMAGEREDUCTION,VITALITY,STRENGTH,ALLATTRIBUTES,THORNS}, - new [] {THORNS,MELEEDAMAGEINCREASE,VITALITY,STRENGTH}, - new [] {STRENGTH,ARMOR,MELEEARMORPIERCING}, - new [] {MELEEDAMAGEINCREASE,MELEEDMGFROMSTR,BASEMELEEDAMAGE}, - new [] {MELEEDAMAGEINCREASE,ATTACKSPEED,BASEMELEEDAMAGE,MELEEWEAPONRANGE}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_509/*Shield Blade*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_510/*So large can be used as a shield*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_511/*A normal human cannot lift this weapon.*/, //tr - Rarity = 6, - minLevel = 50, - maxLevel = 52, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.GreatSword, - icon = Res.ResourceLoader.GetTexture(88), - }; - new BaseItem(new Stat[][] - { - new [] {ARMORPIERCING,MELEEARMORPIERCING}, - new [] {BLOCK,NONE}, - new [] {ARMOR,MAXIMUMLIFE,MAXHEALTHFROMVIT,DAMAGEREDUCTION,RESISTANCETOMAGIC,DODGECHANCE}, - new [] {ARMOR,MAXIMUMLIFE,MAXHEALTHFROMVIT,DAMAGEREDUCTION,VITALITY,STRENGTH,ALLATTRIBUTES}, - new [] {ARMOR,MAXIMUMLIFE,MAXHEALTHFROMVIT,DAMAGEREDUCTION,VITALITY,STRENGTH,ALLATTRIBUTES,THORNS}, - new [] {THORNS,MELEEDAMAGEINCREASE,VITALITY,STRENGTH}, - new [] {STRENGTH,ARMOR,MELEEARMORPIERCING}, - new [] {MELEEDAMAGEINCREASE,MELEEDMGFROMSTR,BASEMELEEDAMAGE}, - new [] {MELEEDAMAGEINCREASE,ATTACKSPEED,BASEMELEEDAMAGE,MELEEWEAPONRANGE}, - new [] {ALL}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_512/*Blunt Blade for Bashing Skulls*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_510/*So large can be used as a shield*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_511/*A normal human cannot lift this weapon.*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_513("200%")/*Bash damage debuff on enemies is increased by 200%*/, //tr - Rarity = 7, - minLevel = 50, - maxLevel = 52, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.GreatSword, - icon = Res.ResourceLoader.GetTexture(88), - onEquip = () => ModdedPlayer.Stats.spell_bashDamageDebuffAmount.Add(2.00f), - onUnequip = () => ModdedPlayer.Stats.spell_bashDamageDebuffAmount.Substract(2.00f), - }; - - new BaseItem(new Stat[][] - { - new[] { ARMORPIERCING, MELEEARMORPIERCING }, - new[] { BLOCK,STRENGTH}, - new[] { ARMOR, MAXIMUMLIFE, MAXHEALTHFROMVIT, DAMAGEREDUCTION, RESISTANCETOMAGIC, DODGECHANCE }, - new[] { ARMOR, MAXIMUMLIFE , DAMAGEREDUCTION, VITALITY, STRENGTH, ALLATTRIBUTES }, - new[] { ARMOR, MAXIMUMLIFE, DAMAGEREDUCTION, VITALITY, STRENGTH, ALLATTRIBUTES, THORNS }, - new[] { THORNS, MELEEDAMAGEINCREASE, VITALITY, STRENGTH }, - new[] { STRENGTH, ARMOR, MELEEARMORPIERCING }, - new[] { MELEEDAMAGEINCREASE, MELEEDMGFROMSTR, BASEMELEEDAMAGE }, - new[] { MELEEDAMAGEINCREASE, ATTACKSPEED, BASEMELEEDAMAGE, MELEEWEAPONRANGE }, - new[] { ALL }, - new[] { ALL }, - new[] { ALL }, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_514/*Madman's Legacy*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_515("69%")/*Frenzy damage per stack is increased by 50%*/, //tr - Rarity = 7, - minLevel = 1, - maxLevel = 2, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Shield, - icon = Res.ResourceLoader.GetTexture(99), - onEquip = () => ModdedPlayer.Stats.spell_frenzyDmg.Add(0.69f), - onUnequip = () => ModdedPlayer.Stats.spell_frenzyDmg.Add(0.69f), - }; - new BaseItem(new Stat[][] - { - new[] { ARMOR,BASEMELEEDAMAGE }, - new[] { BLOCK}, - new[] { ARMOR, MAXIMUMLIFE,MAXIMUMENERGY,STAMINAREGENERATION, DAMAGEREDUCTION, RESISTANCETOMAGIC, DODGECHANCE }, - new[] { ARMOR, MAXIMUMLIFE, MAXIMUMENERGY, DAMAGEREDUCTION, VITALITY, STRENGTH, ALLATTRIBUTES,CHANCEONHITTOBLEED,CHANCEONHITTOSLOW,CHANCEONHITTOWEAKEN }, - new[] { ARMOR, MAXIMUMLIFE, MAXHEALTHFROMVIT, DAMAGEREDUCTION, VITALITY, STRENGTH, ALLATTRIBUTES, THORNS }, - new[] { THORNS, MELEEDAMAGEINCREASE, VITALITY, STRENGTH }, - new[] { MELEEDAMAGEINCREASE, ATTACKSPEED, BASEMELEEDAMAGE, MELEEWEAPONRANGE,PERCENTMAXIMUMLIFE,PERCENTMAXIMUMENERGY,ALLHEALINGPERCENT }, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_516/*Buckler*/, //tr - Rarity = 5, - minLevel = 1, - maxLevel = 2, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Shield, - icon = Res.ResourceLoader.GetTexture(99), - }; - new BaseItem(new Stat[][] - { - new [] {FIREDAMAGE}, - new [] {MAXIMUMENERGY,MAXIMUMLIFE,PERCENTMAXIMUMENERGY,PERCENTMAXIMUMLIFE}, - new [] {STRENGTH,INTELLIGENCE,AGILITY,SPELLCOSTREDUCTION}, - new [] {SPELLDAMAGEINCREASE,BASESPELLDAMAGE, INTELLIGENCE ,ALLATTRIBUTES}, - new [] {SPELLDAMAGEINCREASE,BASESPELLDAMAGE, INTELLIGENCE ,ALLATTRIBUTES}, - new [] {ARMOR,DAMAGEREDUCTION}, - new [] {RESISTANCETOMAGIC,MAGICFIND,MOVEMENTSPEED,ARMOR}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_517/*Pyromancy Mask*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_518("200%")/*Ignited enemies burn for 200% extended perioid of time.*/, //tr - Rarity = 5, - minLevel = 2, - maxLevel = 6, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Helmet, - icon = Res.ResourceLoader.GetTexture(91), - onEquip = () => ModdedPlayer.Stats.fireDuration.Add(2f), - onUnequip = () => ModdedPlayer.Stats.fireDuration.Substract(2f), - }.PossibleStats[0][0].Multipier = 2; - - new BaseItem(new Stat[][] - { - new [] {FIREDAMAGE}, - new [] {SPELLDMGFROMINT,MELEEDMGFROMSTR,RANGEDDMGFROMAGI}, - new [] {MAXENERGYFROMAGI,MAXHEALTHFROMVIT}, - new [] {MAXIMUMENERGY,MAXIMUMLIFE,PERCENTMAXIMUMENERGY,PERCENTMAXIMUMLIFE}, - new [] {STRENGTH,INTELLIGENCE,AGILITY,SPELLCOSTREDUCTION}, - new [] {SPELLDAMAGEINCREASE,BASESPELLDAMAGE, INTELLIGENCE ,ALLATTRIBUTES}, - new [] {SPELLDAMAGEINCREASE,BASESPELLDAMAGE, INTELLIGENCE ,ALLATTRIBUTES}, - new [] {ALL}, - new [] {ALL}, - new [] {ARMOR,DAMAGEREDUCTION}, - new [] {RESISTANCETOMAGIC,MAGICFIND,MOVEMENTSPEED,ARMOR}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_519/*Ember Mask*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_520("700%")/*Ignited enemies burn for 300% extended perioid of time and fire ticks thrice as fast.*/, //tr - Rarity = 7, - minLevel = 2, - maxLevel = 6, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Helmet, - icon = Res.ResourceLoader.GetTexture(91), - onEquip = () => { ModdedPlayer.Stats.fireDuration.Add(7f); ModdedPlayer.Stats.fireTickRate.Add(3f); }, - onUnequip = () => { ModdedPlayer.Stats.fireDuration.Substract(7f); ModdedPlayer.Stats.fireTickRate.Substract(3f); }, - }.PossibleStats[0][0].Multipier = 5; - - - new BaseItem(new Stat[][] - { - new [] {FIREDAMAGE}, - new [] {ARMOR,DODGECHANCE}, - new [] {MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT,MELEEDMGFROMSTR,RANGEDDMGFROMAGI}, - new [] {MAXIMUMENERGY,MAXIMUMLIFE,PERCENTMAXIMUMENERGY,PERCENTMAXIMUMLIFE}, - new [] {STRENGTH,INTELLIGENCE,AGILITY,SPELLCOSTREDUCTION,PROJECTILESPEED,PROJECTILESIZE}, - new [] {SPELLDAMAGEINCREASE,BASESPELLDAMAGE, INTELLIGENCE ,ALLATTRIBUTES}, - new [] {SPELLDAMAGEINCREASE,BASESPELLDAMAGE, INTELLIGENCE ,ALLATTRIBUTES}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ARMOR,DAMAGEREDUCTION}, - new [] {RESISTANCETOMAGIC,MAGICFIND,MOVEMENTSPEED,ARMOR}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_521/*Flame Pauldrons*/, //tr - description = "", //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_522(10, "750%")/*Firebolt costs 30 additional energy to cast and its damage scaling is increased by 250%*/, //tr - Rarity = 7, - minLevel = 5, - maxLevel = 8, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.ShoulderArmor, - icon = Res.ResourceLoader.GetTexture(95), - onEquip = () => - { - ModdedPlayer.Stats.spell_fireboltEnergyCost.Add(5); - ModdedPlayer.Stats.spell_fireboltDamageScaling.Add(7.5f); - }, - onUnequip = () => - { - ModdedPlayer.Stats.spell_fireboltEnergyCost.Substract(5); - ModdedPlayer.Stats.spell_fireboltDamageScaling.Substract(7.5f); - }, - }; - new BaseItem(new Stat[][] - { - new [] {SPELLDMGFROMINT}, - new [] {MAXENERGYFROMAGI,MAXHEALTHFROMVIT}, - new [] {MAXIMUMENERGY,MAXIMUMLIFE,PERCENTMAXIMUMENERGY,PERCENTMAXIMUMLIFE}, - new [] {STRENGTH,INTELLIGENCE,AGILITY,SPELLCOSTREDUCTION,COOLDOWNREDUCTION,SPELLCOSTTOSTAMINA}, - new [] {SPELLDAMAGEINCREASE,BASESPELLDAMAGE, INTELLIGENCE ,ALLATTRIBUTES}, - new [] {SPELLDAMAGEINCREASE,BASESPELLDAMAGE, INTELLIGENCE ,ALLATTRIBUTES}, - new [] {ALL}, - new [] {ALL}, - new [] {RESISTANCETOMAGIC,ENERGYONHIT,ENERGYPERSECOND,STAMINAREGENERATION,STAMINAPERSECOND}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_523/*Ancient Scroll*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_607/*Firebolt deals increased damage*/, //tr - Rarity = 6, - minLevel = 1, - maxLevel = 1, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.SpellScroll, - icon = Res.ResourceLoader.GetTexture(110), - onEquip = () => ModdedPlayer.Stats.spell_fireboltDamageScaling.Add(8), - onUnequip = () => ModdedPlayer.Stats.spell_fireboltDamageScaling.Substract(8), - }; - new BaseItem(new Stat[][] - { - new [] {SPELLDMGFROMINT}, - new [] {MAXENERGYFROMAGI,MAXHEALTHFROMVIT}, - new [] {MAXIMUMENERGY,MAXIMUMLIFE,PERCENTMAXIMUMENERGY,PERCENTMAXIMUMLIFE}, - new [] {STRENGTH,INTELLIGENCE,AGILITY,SPELLCOSTREDUCTION,COOLDOWNREDUCTION,SPELLCOSTTOSTAMINA}, - new [] {SPELLDAMAGEINCREASE,BASESPELLDAMAGE, INTELLIGENCE ,ALLATTRIBUTES}, - new [] {SPELLDAMAGEINCREASE,BASESPELLDAMAGE, INTELLIGENCE ,ALLATTRIBUTES}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {RESISTANCETOMAGIC,ENERGYONHIT,ENERGYPERSECOND,STAMINAREGENERATION,STAMINAPERSECOND}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_524/*Guide on Tearing Spacetime*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_525/*Blink creates an explosion at the exit point, and the damage of the explosion is increased by velocity and the radius is increased by the distance of blink*/, //tr - Rarity = 7, - minLevel = 1, - maxLevel = 1, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.SpellScroll, - icon = Res.ResourceLoader.GetTexture(110), - onEquip = () => ModdedPlayer.Stats.spell_blinkDoExplosion.value = true, - onUnequip = () => ModdedPlayer.Stats.spell_blinkDoExplosion.value = false, - }; - new BaseItem(new Stat[][] - { - new [] {STRENGTH}, - new [] {MELEEDAMAGEINCREASE}, - new [] {ATTACKSPEED}, - new [] {MELEEDMGFROMSTR}, - new [] {BLOCK,ARMOR,DAMAGEREDUCTION}, - new [] {BASEMELEEDAMAGE,NONE}, - new [] {BASEMELEEDAMAGE,MELEEDAMAGEINCREASE,STRENGTH}, - new [] {MELEEARMORPIERCING,ARMORPIERCING,ALLATTRIBUTES}, - new [] {ATTACKCOSTREDUCTION,ATTACKSPEED}, - new [] {ALLATTRIBUTES,MELEEWEAPONRANGE,VITALITY,MAXIMUMLIFE}, - new [] {ENERGYONHIT,VITALITY,LIFEONHIT } - }) - { - name = Translations.ItemDataBase_ItemDefinitions_526/*300th Spear*/, //tr - Rarity = 6, - minLevel = 30, - maxLevel = 34, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.Polearm, - icon = Res.ResourceLoader.GetTexture(181), - }.PossibleStats[0][0].Multipier = 6; - - - - new BaseItem(new Stat[][] - { - new [] {MOVEMENTSPEED,ATTACKSPEED}, - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {ALL}, - new [] {ALL,NONE}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_527/*Stone Pauldrons*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.03f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.03f), - Rarity = 2, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.ShoulderArmor, - icon = Res.ResourceLoader.GetTexture(95), - }.PossibleStats[0][0].Multipier = -0.3f; - new BaseItem(new Stat[][] - { - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, - new [] {ALL,NONE}, - new [] {ALL}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_529/*Iron Shoulder Pads*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.04f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.04f), - Rarity = 3, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.ShoulderArmor, - icon = Res.ResourceLoader.GetTexture(95), - }; - new BaseItem(new Stat[][] - { - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, - new [] {ALL,NONE}, - new [] {ALL}, - new [] {ALL}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_531/*Steel Shoulder Pads*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.05f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.05f), - Rarity = 4, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.ShoulderArmor, - icon = Res.ResourceLoader.GetTexture(95), - }; - new BaseItem(new Stat[][] - { - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, - new [] {ALL,NONE}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_533/*Battle scarred Shoulder Pads*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.06f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.06f), - Rarity = 5, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.ShoulderArmor, - icon = Res.ResourceLoader.GetTexture(95), - }; - - new BaseItem(new Stat[][] - { - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, - new [] {ALL,NONE}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_535/*Mystery Shoulder Pads*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.1f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.1f), - Rarity = 6, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.ShoulderArmor, - icon = Res.ResourceLoader.GetTexture(95), - }; - - new BaseItem(new Stat[][] - { - new [] {MOVEMENTSPEED,ATTACKSPEED}, - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {ALL}, - new [] {ALL,NONE}, - new [] {BLOCK}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_537/*Stone Shield*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.03f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.03f), - Rarity = 2, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Shield, - icon = Res.ResourceLoader.GetTexture(99), - }.PossibleStats[0][0].Multipier = -0.3f; - new BaseItem(new Stat[][] - { - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, - new [] {ALL,NONE}, - new [] {ALL,NONE}, - new [] {ALL}, - new [] {BLOCK}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_538/*Iron Shield*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.04f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.04f), - Rarity = 3, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Shield, - icon = Res.ResourceLoader.GetTexture(99), - }; - new BaseItem(new Stat[][] - { - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, - new [] {ALL,NONE}, - new [] {ALL,NONE}, - new [] {ALL}, - new [] {ALL,ARMOR}, - new [] {BLOCK}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_539/*Steel Tower Shield*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.05f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.05f), - Rarity = 4, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Shield, - icon = Res.ResourceLoader.GetTexture(99), - }; - new BaseItem(new Stat[][] - { - - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, - new [] {ALL,NONE}, - new [] {ALL,NONE}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {BLOCK}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_540/*Guardian*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.06f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.06f), - Rarity = 5, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Shield, - icon = Res.ResourceLoader.GetTexture(99), - }; - - new BaseItem(new Stat[][] - { - new [] {BLOCK}, - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, - new [] {ALL,NONE}, - new [] {ALL,NONE}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_541/*Mystery Shield*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.1f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.1f), - Rarity = 6, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Shield, - icon = Res.ResourceLoader.GetTexture(99), - }.PossibleStats[0][0].Multipier = 2f; - - - new BaseItem(new Stat[][] - { - new [] {MOVEMENTSPEED}, - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {ALL}, - new [] {ALL,NONE}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_542/*Light Boot*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.03f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.03f), - Rarity = 2, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Boot, - icon = Res.ResourceLoader.GetTexture(85), - }.PossibleStats[0][0].Multipier = 1.3f; - new BaseItem(new Stat[][] - { - new [] {MOVEMENTSPEED}, - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, - new [] {ALL,NONE}, - new [] {ALL,NONE}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_543/*Iron Boots*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.04f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.04f), - Rarity = 3, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Boot, - icon = Res.ResourceLoader.GetTexture(85), - }; - new BaseItem(new Stat[][] - { - new [] {MOVEMENTSPEED}, - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, - new [] {ALL,NONE}, - new [] {ALL}, - new [] {ALL,ARMOR}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_544/*Steel Boots*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.05f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.05f), - Rarity = 4, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Boot, - icon = Res.ResourceLoader.GetTexture(85), - }; - new BaseItem(new Stat[][] - { - new [] {MOVEMENTSPEED}, - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, - new [] {ALL,NONE}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_545/*Threads*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.06f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.06f), - Rarity = 5, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Boot, - icon = Res.ResourceLoader.GetTexture(85), - }; - - new BaseItem(new Stat[][] - { - new [] {MOVEMENTSPEED}, - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, - new [] {ALL,NONE}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_546/*Mystery Boots*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.1f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.1f), - Rarity = 6, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Boot, - icon = Res.ResourceLoader.GetTexture(85), - }; - - - - - new BaseItem(new Stat[][] - { - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {ALL}, - new [] {ALL,NONE}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_547/*Wraps*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.03f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.03f), - Rarity = 2, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Glove, - icon = Res.ResourceLoader.GetTexture(86), - }.PossibleStats[0][0].Multipier = -0.3f; - new BaseItem(new Stat[][] - { - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, - new [] {ALL,NONE}, - new [] {ALL}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_301/*Iron Gauntlet*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.04f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.04f), - Rarity = 3, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Glove, - icon = Res.ResourceLoader.GetTexture(86), - }; - new BaseItem(new Stat[][] - { - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, - new [] {ALL,NONE}, - new [] {ALL}, - new [] {ALL}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_548/*Steel Gauntlet*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.05f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.05f), - Rarity = 4, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Glove, - icon = Res.ResourceLoader.GetTexture(86), - }; - new BaseItem(new Stat[][] - { - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, - new [] {ALL,NONE}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_549/*Titanium Gauntlet*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.06f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.06f), - Rarity = 5, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Glove, - icon = Res.ResourceLoader.GetTexture(86), - }; - - new BaseItem(new Stat[][] - { - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, - new [] {ALL,NONE}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_550/*Mystery Gauntlet*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.1f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.1f), - Rarity = 6, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Glove, - icon = Res.ResourceLoader.GetTexture(86), - }; - - - - new BaseItem(new Stat[][] - { - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {ALL}, - new [] {ALL,NONE}, - new [] {ALL,NONE}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_551/*Leather Tasset*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.03f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.03f), - Rarity = 2, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Pants, - icon = Res.ResourceLoader.GetTexture(87), - }.PossibleStats[0][0].Multipier = -0.3f; - new BaseItem(new Stat[][] - { - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, - new [] {ALL,NONE}, - new [] {ALL,NONE}, - new [] {ALL}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_552/*Iron Tasset*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.04f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.04f), - Rarity = 3, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Pants, - icon = Res.ResourceLoader.GetTexture(87), - }; - new BaseItem(new Stat[][] - { - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, - new [] {ALL,NONE}, - new [] {ALL,NONE}, - new [] {ALL}, - new [] {ALL}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_553/*Steel Tasset*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.05f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.05f), - Rarity = 4, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Pants, - icon = Res.ResourceLoader.GetTexture(87), - }; - new BaseItem(new Stat[][] - { - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, - new [] {ALL,NONE}, - new [] {ALL,NONE}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_554/*Black Steel Leggins*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.06f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.06f), - Rarity = 5, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Pants, - icon = Res.ResourceLoader.GetTexture(87), - }; - - new BaseItem(new Stat[][] - { - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, - new [] {ALL,NONE}, - new [] {ALL,NONE}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_555/*Mystery Leggins*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.1f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.1f), - Rarity = 6, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Pants, - icon = Res.ResourceLoader.GetTexture(87), - }; - - new BaseItem(new Stat[][] - { - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {ALL}, - new [] {ALL,NONE}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_556/*Leather Vest*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.03f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.03f), - Rarity = 2, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.ChestArmor, - icon = Res.ResourceLoader.GetTexture(96), - }.PossibleStats[0][0].Multipier = -0.3f; - new BaseItem(new Stat[][] - { - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, - new [] {ALL,NONE}, - new [] {ALL}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_557/*Iron Breastplate*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.04f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.04f), - Rarity = 3, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.ChestArmor, - icon = Res.ResourceLoader.GetTexture(96), - }; - new BaseItem(new Stat[][] - { - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, - new [] {ALL,NONE}, - new [] {ALL}, - new [] {ALL}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_558/*Steel Breastplate*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.05f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.05f), - Rarity = 4, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.ChestArmor, - icon = Res.ResourceLoader.GetTexture(96), - }; - new BaseItem(new Stat[][] - { - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, - new [] {ALL,NONE}, - new [] {ALL,NONE}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_559/*Silver Armor*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.06f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.06f), - Rarity = 5, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.ChestArmor, - icon = Res.ResourceLoader.GetTexture(96), - }; - - new BaseItem(new Stat[][] - { - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, - new [] {ALL,NONE}, - new [] {ALL,NONE}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_560/*Mystery Breastplate*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.1f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.1f), - Rarity = 6, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.ChestArmor, - icon = Res.ResourceLoader.GetTexture(96), - }; - - new BaseItem(new Stat[][] - { - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {ALL}, - new [] {ALL,NONE}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_561/*Cloth Band*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.03f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.03f), - Rarity = 2, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Bracer, - icon = Res.ResourceLoader.GetTexture(93), - }.PossibleStats[0][0].Multipier = -0.3f; - new BaseItem(new Stat[][] - { - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, - new [] {ALL,NONE}, - new [] {ALL}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_562/*Iron Wristguard*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.04f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.04f), - Rarity = 3, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Bracer, - icon = Res.ResourceLoader.GetTexture(93), - }; - new BaseItem(new Stat[][] - { - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, - new [] {ALL,NONE}, - new [] {ALL}, - new [] {ALL}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_563/*Steel Wristguard*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.05f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.05f), - Rarity = 4, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Bracer, - icon = Res.ResourceLoader.GetTexture(93), - }; - new BaseItem(new Stat[][] - { - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, - new [] {ALL,NONE}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_564/*Baron Wristguards*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.06f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.06f), - Rarity = 5, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Bracer, - icon = Res.ResourceLoader.GetTexture(93), - }; - - new BaseItem(new Stat[][] - { - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, - new [] {ALL,NONE}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_565/*Mystery Wristguards*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.1f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.1f), - Rarity = 6, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Bracer, - icon = Res.ResourceLoader.GetTexture(93), - }; - - - new BaseItem(new Stat[][] - { - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {ALL}, - new [] {ALL,NONE}, - new [] {ALL,NONE}, + { + name = Translations.ItemDataBase_ItemDefinitions_316/*Crusader Helmet*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_317/*You're talking mad shit for someone within crusading distance*/, //tr + Rarity = 5, + minLevel = 2, + maxLevel = 6, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Helmet, + icon = Res.ResourceLoader.GetTexture(91), + }; + + new BaseItem(new int[][] + { + new int[] {1,2,3,4,5,6,57}, + new int[] {-1}, + new int[] {-1}, + new int[] {24,25,26,10,47,0,0,0}, + //new int[] {29,30,48}, }) - { - name = Translations.ItemDataBase_ItemDefinitions_218/*Horned Helmet*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.03f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.03f), - Rarity = 2, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Helmet, - icon = Res.ResourceLoader.GetTexture(91), - }.PossibleStats[0][0].Multipier = -0.3f; - new BaseItem(new Stat[][] - { - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, - new [] {ALL,NONE}, - new [] {ALL,NONE}, - new [] {ALL}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_566/*Iron Helmet*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.04f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.04f), - Rarity = 3, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Helmet, - icon = Res.ResourceLoader.GetTexture(91), - }; - new BaseItem(new Stat[][] - { - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, - new [] {ALL,NONE}, - new [] {ALL,NONE}, - new [] {ALL}, - new [] {ALL}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_567/*Steel Helmet*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.05f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.05f), - Rarity = 4, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Helmet, - icon = Res.ResourceLoader.GetTexture(91), - }; - new BaseItem(new Stat[][] - { - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, - new [] {ALL,NONE}, - new [] {ALL,NONE}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_568/*Armored Hood*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.06f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.06f), - Rarity = 5, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Helmet, - icon = Res.ResourceLoader.GetTexture(91), - }; - - new BaseItem(new Stat[][] - { - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, - new [] {ALL,NONE}, - new [] {ALL,NONE}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_569/*Mystery Helmet*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.1f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.1f), - Rarity = 6, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Helmet, - icon = Res.ResourceLoader.GetTexture(91), - }; - - new BaseItem(new Stat[][] - { - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {MELEEDMGFROMSTR,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, - new [] {MELEEDAMAGEINCREASE,MELEEWEAPONRANGE,BASEMELEEDAMAGE,STRENGTH}, - new [] {MELEEDAMAGEINCREASE,ATTACKSPEED,BASEMELEEDAMAGE,STRENGTH}, - new [] {CRITICALHITCHANCE,CRITICALHITDAMAGE,}, - new [] {MELEEDAMAGEINCREASE,NONE,MAXIMUMLIFE,PERCENTMAXIMUMLIFE}, - new [] {STRENGTH,VITALITY,INTELLIGENCE,ATTACKSPEED,ATTACKCOSTREDUCTION,COOLDOWNREDUCTION}, - new [] {ALL}, - new [] {ALL,NONE}, - new [] {ALL,NONE}, - new [] {ALL}, - new [] {ARMOR,DAMAGEREDUCTION}, - new [] {EMPTYSOCKET,NONE}, - new [] {EMPTYSOCKET,NONE}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_570/*Yorium's Gaze*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_571("30%")/*SET PIECE. Melee weapon range is increased by 30%, attack cost in stamina is halved.*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_572(15, "35%", 15, "5%")/*Set Piece:\n2 Pieces- Berserk does not apply exhaustion when it ends\n3 Pieces - Berserk duration is increased by 15 seconds\n4 Pieces - Each second of berserk being in effect increases damage by 35%.\n5 Pieces - For the first 15 seconds of Berserk attack speed increases by 30% per second, and lasts till the end of the spell's duration.*/, //tr - onEquip = () => BerserkSet.Equip(), - onUnequip = () => BerserkSet.Unequip(), - Rarity = 7, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Helmet, - icon = Res.ResourceLoader.GetTexture(91), - }; - new BaseItem(new Stat[][] - { - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {MELEEDMGFROMSTR,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, - new [] {MELEEDAMAGEINCREASE,MELEEWEAPONRANGE,BASEMELEEDAMAGE,STRENGTH}, - new [] {MELEEDAMAGEINCREASE,ATTACKSPEED,BASEMELEEDAMAGE,STRENGTH}, - new [] {MAXIMUMLIFE}, - new [] {MELEEDAMAGEINCREASE,MAXIMUMLIFE,PERCENTMAXIMUMLIFE}, - new [] {STRENGTH,VITALITY,INTELLIGENCE,ATTACKSPEED,ATTACKCOSTREDUCTION,COOLDOWNREDUCTION}, - new [] {ALL}, - new [] {ALL,NONE}, - new [] {ALL,NONE}, - new [] {ALL}, - new [] {ALL}, - new [] {ARMOR,DAMAGEREDUCTION,ALLATTRIBUTES}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_573/*Yorium's Ruthlessness*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_571("30%")/*SET PIECE. Melee weapon range is increased by 30%, attack cost in stamina is halved.*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_572(15, "35%", 15, "5%")/*Set Piece:\n2 Pieces- Berserk does not apply exhaustion when it ends\n3 Pieces - Berserk duration is increased by 15 seconds\n4 Pieces - Each second of berserk being in effect increases damage by 35%.\n5 Pieces - For the first 15 seconds of Berserk attack speed increases by 30% per second, and lasts till the end of the spell's duration.*/, //tr - onEquip = () => BerserkSet.Equip(), - onUnequip = () => BerserkSet.Unequip(), - Rarity = 7, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.ChestArmor, - icon = Res.ResourceLoader.GetTexture(96), - }; - - new BaseItem(new Stat[][] - { - new [] {ALL,}, - new [] {MELEEDMGFROMSTR,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, - new [] {MELEEDAMAGEINCREASE,MELEEWEAPONRANGE,BASEMELEEDAMAGE,STRENGTH}, - new [] {MELEEDAMAGEINCREASE,ATTACKSPEED,BASEMELEEDAMAGE,STRENGTH}, - new [] {MAXIMUMLIFE}, - new [] {MELEEDAMAGEINCREASE,MAXIMUMLIFE,PERCENTMAXIMUMLIFE}, - new [] {STRENGTH,VITALITY,INTELLIGENCE,ATTACKSPEED,ATTACKCOSTREDUCTION,COOLDOWNREDUCTION}, - new [] {ALL}, - new [] {ALL,NONE}, - new [] {ALL,NONE}, - new [] {ALL}, - new [] {ALL}, - new [] {ARMOR,DAMAGEREDUCTION,ALLATTRIBUTES}, - new [] {EMPTYSOCKET,NONE}, - new [] {EMPTYSOCKET,NONE}, - new [] {EMPTYSOCKET,NONE}, - - }) - { - name = Translations.ItemDataBase_ItemDefinitions_574/*Yorium's Burden*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_571("30%")/*SET PIECE. Melee weapon range is increased by 30%, attack cost in stamina is halved.*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_572(15, "35%", 15, "5%")/*Set Piece:\n2 Pieces- Berserk does not apply exhaustion when it ends\n3 Pieces - Berserk duration is increased by 15 seconds\n4 Pieces - Each second of berserk being in effect increases damage by 35%.\n5 Pieces - For the first 15 seconds of Berserk attack speed increases by 30% per second, and lasts till the end of the spell's duration.*/, //tr - onEquip = () => BerserkSet.Equip(), - onUnequip = () => BerserkSet.Unequip(), - Rarity = 7, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.ShoulderArmor, - icon = Res.ResourceLoader.GetTexture(95), - }; - new BaseItem(new Stat[][] - { - new [] {ALL,}, - new [] {MELEEDMGFROMSTR,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, - new [] {MELEEDAMAGEINCREASE,MELEEWEAPONRANGE,BASEMELEEDAMAGE,STRENGTH}, - new [] {MELEEDAMAGEINCREASE,ATTACKSPEED,BASEMELEEDAMAGE,STRENGTH}, - new [] {MAXIMUMLIFE}, - new [] {MELEEDAMAGEINCREASE,MAXIMUMLIFE,PERCENTMAXIMUMLIFE}, - new [] {STRENGTH,VITALITY,INTELLIGENCE,ATTACKSPEED,ATTACKCOSTREDUCTION,COOLDOWNREDUCTION}, - new [] {ALL}, - new [] {ALL,NONE}, - new [] {ALL,NONE}, - new [] {ALL}, - new [] {ALL}, - new [] {ARMOR,DAMAGEREDUCTION,ALLATTRIBUTES}, - new [] {EMPTYSOCKET,NONE}, - new [] {EMPTYSOCKET,NONE}, - new [] {EMPTYSOCKET,NONE}, - - }) - { - name = Translations.ItemDataBase_ItemDefinitions_575/*Yorium's Resolve*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_571("30%")/*SET PIECE. Melee weapon range is increased by 30%, attack cost in stamina is halved.*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_572(15, "35%", 15, "5%")/*Set Piece:\n2 Pieces- Berserk does not apply exhaustion when it ends\n3 Pieces - Berserk duration is increased by 15 seconds\n4 Pieces - Each second of berserk being in effect increases damage by 35%.\n5 Pieces - For the first 15 seconds of Berserk attack speed increases by 30% per second, and lasts till the end of the spell's duration.*/, //tr - onEquip = () => BerserkSet.Equip(), - onUnequip = () => BerserkSet.Unequip(), - Rarity = 7, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Bracer, - icon = Res.ResourceLoader.GetTexture(93), - }; - new BaseItem(new Stat[][] - { - new [] {MOVEMENTSPEED}, - new [] {MELEEDMGFROMSTR,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, - new [] {MELEEDAMAGEINCREASE,MELEEWEAPONRANGE,BASEMELEEDAMAGE,STRENGTH}, - new [] {MELEEDAMAGEINCREASE,ATTACKSPEED,BASEMELEEDAMAGE,STRENGTH}, - new [] {MAXIMUMLIFE}, - new [] {MELEEDAMAGEINCREASE,MAXIMUMLIFE,PERCENTMAXIMUMLIFE}, - new [] {STRENGTH,VITALITY,INTELLIGENCE,ATTACKSPEED,ATTACKCOSTREDUCTION,COOLDOWNREDUCTION}, - new [] {ALL}, - new [] {ALL,NONE}, - new [] {ALL,NONE}, - new [] {ALL}, - new [] {ALL}, - new [] {ARMOR,DAMAGEREDUCTION,ALLATTRIBUTES}, - new [] {EMPTYSOCKET,NONE}, - new [] {EMPTYSOCKET,NONE}, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_576/*Atomic Augmentation*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_571("30%")/*SET PIECE. Melee weapon range is increased by 30%, attack cost in stamina is halved.*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_572(15, "35%", 15, "5%")/*Set Piece:\n2 Pieces- Berserk does not apply exhaustion when it ends\n3 Pieces - Berserk duration is increased by 15 seconds\n4 Pieces - Each second of berserk being in effect increases damage by 35%.\n5 Pieces - For the first 15 seconds of Berserk attack speed increases by 30% per second, and lasts till the end of the spell's duration.*/, //tr - onEquip = () => BerserkSet.Equip(), - onUnequip = () => BerserkSet.Unequip(), - Rarity = 7, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Boot, - icon = Res.ResourceLoader.GetTexture(85), - }; - new BaseItem(new Stat[][] - { - new [] {ALL,}, - new [] {MELEEDMGFROMSTR,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, - new [] {MELEEDAMAGEINCREASE,MELEEWEAPONRANGE,BASEMELEEDAMAGE,STRENGTH}, - new [] {MELEEDAMAGEINCREASE,ATTACKSPEED,BASEMELEEDAMAGE,STRENGTH}, - new [] {MAXIMUMLIFE}, - new [] {MELEEDAMAGEINCREASE,MAXIMUMLIFE,PERCENTMAXIMUMLIFE}, - new [] {STRENGTH,VITALITY,INTELLIGENCE,ATTACKSPEED,ATTACKCOSTREDUCTION,COOLDOWNREDUCTION}, - new [] {ALL}, - new [] {ALL,NONE}, - new [] {ALL,NONE}, - new [] {ALL}, - new [] {ALL}, - new [] {ARMOR,DAMAGEREDUCTION,ALLATTRIBUTES}, - new [] {EMPTYSOCKET,NONE}, - new [] {EMPTYSOCKET,NONE}, - new [] {EMPTYSOCKET,NONE}, - - }) - { - name = Translations.ItemDataBase_ItemDefinitions_577/*Yorium's Assault*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_571("30%")/*SET PIECE. Melee weapon range is increased by 30%, attack cost in stamina is halved.*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_572(15, "35%", 15, "5%")/*Set Piece:\n2 Pieces- Berserk does not apply exhaustion when it ends\n3 Pieces - Berserk duration is increased by 15 seconds\n4 Pieces - Each second of berserk being in effect increases damage by 35%.\n5 Pieces - For the first 15 seconds of Berserk attack speed increases by 30% per second, and lasts till the end of the spell's duration.*/, //tr - onEquip = () => BerserkSet.Equip(), - onUnequip = () => BerserkSet.Unequip(), - Rarity = 7, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Glove, - icon = Res.ResourceLoader.GetTexture(86), - }; - new BaseItem(new Stat[][] - { - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {MELEEDMGFROMSTR,MAXENERGYFROMAGI,RANGEDDMGFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, - new [] {MELEEDAMAGEINCREASE,BASEMELEEDAMAGE,STRENGTH}, - new [] {RANGEDDAMAGEINCREASE,BASERANGEDDAMAGE,AGILITY}, - new [] {SPELLDAMAGEINCREASE,BASESPELLDAMAGE,INTELLIGENCE}, - new [] {ALL}, - new [] {MAXIMUMLIFE}, - new [] {MAXIMUMLIFE,PERCENTMAXIMUMLIFE,MAXIMUMENERGY,PERCENTMAXIMUMENERGY}, - new [] {STRENGTH,VITALITY,INTELLIGENCE,AGILITY,ALLATTRIBUTES,ATTACKSPEED,ATTACKCOSTREDUCTION,SPELLCOSTREDUCTION,COOLDOWNREDUCTION}, - new [] {ALL}, - new [] {ALL,NONE}, - new [] {ALL,NONE}, - new [] {ALL}, - new [] {ALL}, - new [] {ARMOR,DAMAGEREDUCTION,ALLATTRIBUTES,NONE}, - - }) - { - name = Translations.ItemDataBase_ItemDefinitions_578/*Undying Promise*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_579(1)/*Resist lethal damage on a 1 minute cooldown*/, //tr - onEquip = () => COTFEvents.Instance.OnTakeLethalDamage.AddListener(UniqueItemFunctions.ResistDeath), - onUnequip = () => COTFEvents.Instance.OnTakeLethalDamage.RemoveListener(UniqueItemFunctions.ResistDeath), - Rarity = 7, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Pants, - icon = Res.ResourceLoader.GetTexture(87), - }; - new BaseItem(new Stat[][] - { - new [] {CRITICALHITDAMAGE}, - new [] {STRENGTH,VITALITY,INTELLIGENCE,AGILITY }, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ARMOR,DAMAGEREDUCTION }, - new [] {MAXIMUMLIFE}, - - }) - { - name = Translations.ItemDataBase_ItemDefinitions_609, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_610, //tr - Rarity = 7, - minLevel = 20, - maxLevel = 28, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Pants, - icon = Res.ResourceLoader.GetTexture(87), - onEquip = () => { ModdedPlayer.Stats.spell_frenzy_active_critChance.Add(0.05f); ModdedPlayer.Stats.spell_frenzyAtkSpeed.Add(0.03f); }, - onUnequip = () => { ModdedPlayer.Stats.spell_frenzy_active_critChance.Substract(0.05f); ModdedPlayer.Stats.spell_frenzyAtkSpeed.Add(0.03f); }, - }; - - - - new BaseItem(new Stat[][] - { - new [] {BASEMELEEDAMAGE,BASESPELLDAMAGE}, - new [] {BASEMELEEDAMAGE,BASESPELLDAMAGE}, - new [] {STRENGTH,VITALITY,INTELLIGENCE,AGILITY }, - new [] {MELEEDAMAGEINCREASE, SPELLDAMAGEINCREASE }, - new [] {ATTACKSPEED}, - new [] {CRITICALHITCHANCE}, - new [] {CRITICALHITDAMAGE}, - new [] {MELEEDMGFROMSTR}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {BLOCK, NONE}, - new [] {MAXIMUMLIFE}, - - }) - { - name = Translations.ItemDataBase_ItemDefinitions_611, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_612("300%"), //tr - Rarity = 7, - minLevel = 6, - maxLevel = 9, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.GreatSword, - icon = Res.ResourceLoader.GetTexture(88), - onEquip = () => ModdedPlayer.Stats.spell_berserkDamage.Add(3f), - onUnequip = () => ModdedPlayer.Stats.spell_berserkDamage.Substract(3f), - }.PossibleStats[0][0].Multipier = 5; - new BaseItem(new Stat[][] - { - new [] {BASEMELEEDAMAGE,BASESPELLDAMAGE}, - new [] {BASEMELEEDAMAGE, NONE}, - new [] {STRENGTH,VITALITY,INTELLIGENCE,AGILITY }, - new [] {MELEEDAMAGEINCREASE, SPELLDAMAGEINCREASE }, - new [] {ATTACKSPEED}, - new [] {CRITICALHITCHANCE}, - new [] {CRITICALHITDAMAGE}, - new [] {MELEEDMGFROMSTR}, - new [] {STRENGTH}, - new [] {ALL}, - new [] {ALL}, - - }) - { - name = Translations.ItemDataBase_ItemDefinitions_613, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_612("100%"), //tr - Rarity = 6, - minLevel = 6, - maxLevel = 9, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.GreatSword, - icon = Res.ResourceLoader.GetTexture(88), - onEquip = () => ModdedPlayer.Stats.spell_berserkDamage.Add(1f), - onUnequip = () => ModdedPlayer.Stats.spell_berserkDamage.Substract(1f), - }.PossibleStats[0][0].Multipier = 2; - - new BaseItem(new Stat[][] - { - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {BASESPELLDAMAGE,BASERANGEDDAMAGE,BASEMELEEDAMAGE, NONE}, - new [] {SPELLDMGFROMINT,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,DAMAGEREDUCTION}, - new [] {ALLATTRIBUTES,AGILITY,STRENGTH,INTELLIGENCE,VITALITY}, - - }) - { - name = Translations.ItemDataBase_ItemDefinitions_614, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_615("10%"), //tr - Rarity = 5, - minLevel = 6, - maxLevel = 9, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(100), - onEquip = () => - { - ModdedPlayer.Stats.spell_berserkAttackSpeed.Add(0.1f); - ModdedPlayer.Stats.spell_berserkMovementSpeed.Add(0.1f); - }, - onUnequip = () => - { - ModdedPlayer.Stats.spell_berserkAttackSpeed.Substract(0.1f); - ModdedPlayer.Stats.spell_berserkMovementSpeed.Substract(0.1f); - }, - }; - new BaseItem(new Stat[][] - { - new [] {STRENGTH,VITALITY,AGILITY,ALLATTRIBUTES,INTELLIGENCE}, - new [] {MAXENERGYFROMAGI,MELEEDMGFROMSTR,SPELLDMGFROMINT,RANGEDDMGFROMAGI,MAXHEALTHFROMVIT}, - new [] {ARMOR,DAMAGEREDUCTION}, - new [] { CRITICALHITCHANCE, CRITICALHITDAMAGE}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {BASESPELLDAMAGE,BASERANGEDDAMAGE,BASEMELEEDAMAGE, NONE}, - new [] {SPELLDMGFROMINT,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,DAMAGEREDUCTION}, - - }) - { - name = Translations.ItemDataBase_ItemDefinitions_616, //tr - uniqueStat = $"Berserk increases melee and ranged damage by 100%, increases movement speed by 30% and attack speed by 15%", //tr - Rarity = 7, - minLevel = 60, - maxLevel = 62, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(100), - onEquip = () => - { - ModdedPlayer.Stats.meleeIncreasedDmg.Multiply(2f); - ModdedPlayer.Stats.rangedIncreasedDmg.Multiply(2f); - ModdedPlayer.Stats.spell_berserkAttackSpeed.Add(0.15f); - ModdedPlayer.Stats.spell_berserkMovementSpeed.Add(0.3f); - }, - onUnequip = () => - { - ModdedPlayer.Stats.meleeIncreasedDmg.Divide(2f); - ModdedPlayer.Stats.rangedIncreasedDmg.Divide(2f); - ModdedPlayer.Stats.spell_berserkAttackSpeed.Substract(0.15f); - ModdedPlayer.Stats.spell_berserkMovementSpeed.Substract(0.3f); - }, - }; - new BaseItem(new Stat[][] - { - new[] { LIFEPERSECOND }, - new[] { ARMOR, NONE, ALLHEALINGPERCENT }, - new[] { ALL}, - new[] { SPELLDMGFROMINT }, - new[] { SPELLCOSTREDUCTION,SPELLCOSTTOSTAMINA,ARMOR,ALLATTRIBUTES}, - new[] { BASESPELLDAMAGE, SPELLDAMAGEINCREASE, INTELLIGENCE, ALLATTRIBUTES }, - new[] { BASESPELLDAMAGE, SPELLDAMAGEINCREASE, INTELLIGENCE, DAMAGEREDUCTION }, - new[] { VITALITY, MAXHEALTHFROMVIT, MAXIMUMLIFE, PERCENTMAXIMUMLIFE, LIFEPERSECOND, LIFEONHIT }, - new[] { SPELLCOSTREDUCTION, COOLDOWNREDUCTION, CRITICALHITCHANCE, CRITICALHITDAMAGE, ARMOR,MAXHEALTHFROMVIT }, - new[] { DAMAGEREDUCTION, PERCENTMAXIMUMENERGY, LIFEREGENERATION }, - new[] { ENERGYPERSECOND, PERCENTMAXIMUMENERGY, MAXENERGYFROMAGI }, - new[] { INTELLIGENCE, STAMINAPERSECOND, STAMINAREGENERATION, ALLATTRIBUTES, ALLHEALINGPERCENT }, - new[] { ENERGYONHIT, ENERGYPERSECOND, MAXIMUMLIFE, MASSACREDURATION, MAGICFIND, EXPLOSIONDAMAGE }, - }) - { - name = Translations.ItemDataBase_ItemDefinitions_617, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_618("100%", "40%"),//tr - Rarity = 7, - minLevel = 1, - maxLevel = 3, - CanConsume = false, - StackSize = 1, - type = BaseItem.ItemType.Bracer, - icon = Res.ResourceLoader.GetTexture(93), - onEquip = () => - { - ModdedPlayer.Stats.spell_healingDomeCooldownRate.Add(1.0f); - ModdedPlayer.Stats.spell_healingDomeSpellCostReduction.Substract(0.4f); - }, - onUnequip = () => - { - ModdedPlayer.Stats.spell_healingDomeCooldownRate.Substract(1.0f); - ModdedPlayer.Stats.spell_healingDomeSpellCostReduction.Add(0.4f); - }, - }; - } - } + { + name = Translations.ItemDataBase_ItemDefinitions_318/*Hood*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_319/*Hats provide usefull stat bonuses*/, //tr + Rarity = 3, + minLevel = 2, + maxLevel = 6, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Helmet, + icon = Res.ResourceLoader.GetTexture(91), + }; + new BaseItem(new int[][] + { + new int[] {47 }, + new int[] {4,29 }, + new int[] {4,29 }, + new int[] {4,17,6,44,38,21,24,8,9}, + new int[] {4,17,6,44,38,21,24,8,9}, + new int[] {4,17,6,44,38,21,24,8,9}, + new int[] {4,17,6,44,38,21,24,8,9}, + new int[] {4,17,6,44,38,21,24,8,9}, + new int[] {2000,2002,49}, + new int[] {2001,4,29,24,21}, + new int[] {2002,4}, + new int[] {2003,-1}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_320/*The Spark of Light in The Darkness*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_321/*Magic Scroll of great quality*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_322/*Written in a language i canno't understand. Decyphering this text is impossible, so is the full utilization of the scroll.*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_323("5")/*If a black hole hits 5 or more enemies during it's lifetime, a ball lightning is summoned after it ends.*/, //tr + Rarity = 7, + minLevel = 15, + maxLevel = 20, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.SpellScroll, + icon = Res.ResourceLoader.GetTexture(110), + onEquip = () => ModdedPlayer.Stats.i_sparkOfLightAfterDark.value = true, + onUnequip = () => ModdedPlayer.Stats.i_sparkOfLightAfterDark.value = false + }; + new BaseItem(new int[][] + { + new int[] {21,22,23,24,25,26,1,2,4}, + new int[] {12,13,11,47}, + new int[] {62,63,64,1000,1001,1002,1003,1004}, + new int[] {61}, + new int[] {5,57}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_324/*Purgatory*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_325/*Golden ring with a bone chilling feel about it. This thing will only bring harm, but not to the wearer*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_326/*Ring made of Netherrite*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_327("300%")/*Purge increases all of your damage based on missing health. Up to 300%*/, //tr + Rarity = 7, + minLevel = 20, + maxLevel = 26, + CanConsume = false, + StackSize = 1, + onEquip = () => ModdedPlayer.Stats.spell_purgeDamageBonus.value = true, + onUnequip = () => ModdedPlayer.Stats.spell_purgeDamageBonus.value = false, + type = BaseItem.ItemType.Ring, + icon = Res.ResourceLoader.GetTexture(90), + }.DropSettings_OnlyCannibals(); + + new BaseItem(new int[][] + { + new int[] {18}, + new int[] {61,48}, + new int[] {2,3,5}, + new int[] {12,13,2,40,16}, + new int[] {39,40,41,42,43,0,0}, + new int[] {23,26}, + new int[] {23,26}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + new int[] {2,3,4,5,6,11,12,13,15,23,26,51,60,44,49,48}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_328/*Eruption*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_329/*Incarnation of devastation*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_330/*Headshots cause explosions*/, //tr + Rarity = 7, + minLevel = 10, + maxLevel = 12, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Weapon, + weaponModel = BaseItem.WeaponModelType.Greatbow, + icon = Res.ResourceLoader.GetTexture(170), + onEquip = () => ModdedPlayer.Stats.i_EruptionBow.value = true, + onUnequip = () => ModdedPlayer.Stats.i_EruptionBow.value = false, + }.PossibleStats[0][0].Multipier = -1.6f; + + new BaseItem(new int[][] + { + new int[] {18}, + new int[] {61,48}, + new int[] {2,3,5}, + new int[] {12,13,2,40,16}, + new int[] {39,40,41,42,43,0,0}, + new int[] {23,26}, + new int[] {23,26}, + new int[] {31}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + new int[] {2,3,4,5,6,11,12,13,15,23,26,51,60,44,49,48}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_331/*Archangel*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_332/*Spread the goodness*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_333("30")/*Shooting another player causes them to be greatly empowered for 30 seconds*/, //tr + Rarity = 7, + minLevel = 10, + maxLevel = 12, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Weapon, + weaponModel = BaseItem.WeaponModelType.Greatbow, + icon = Res.ResourceLoader.GetTexture(170), + onEquip = () => ModdedPlayer.Stats.i_ArchangelBow.value = true, + onUnequip = () => ModdedPlayer.Stats.i_ArchangelBow.value = false, + }.PossibleStats[0][0].Multipier = -2f; + new BaseItem(new int[][] + { + new int[] {1,4 }, + new int[] {1,3,5,6,49 }, + new int[] {22}, + new int[] {25}, + new int[] {12}, + new int[] {13}, + new int[] {1,12,13,22,25,30,53,57,65 }, + new int[] {-1 }, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_334/*The Executioner*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_335/*A sword for decapitating*/, //tr + Rarity = 4, + minLevel = 25, + maxLevel = 27, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Weapon, + weaponModel = BaseItem.WeaponModelType.LongSword, + icon = Res.ResourceLoader.GetTexture(89), + }; + new BaseItem(new int[][] + { + new int[] {48 }, + new int[] {23,26,2 }, + new int[] {23,26 }, + new int[] {12,13}, + new int[] {60}, + new int[] {13,23,26}, + new int[] {23,26}, + new int[] {34,2,2,54}, + new int[] {15,14}, + new int[] {16,23,2,4,5,6}, + new int[] {45,46}, + new int[] {27,49}, + new int[] {-1}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_336/*Moon Cuirass*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_337/*A piece of armor designed for an archer. */, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_338("120")/*Landing a headshot with an arrow without the homing effect of seeking arrow at a distance greater than 120 feet deals five-fold damage, and hits the enemy two extra times*/, //tr + Rarity = 7, + minLevel = 20, + maxLevel = 22, + CanConsume = false, + StackSize = 1, + onEquip = () => ModdedPlayer.Stats.perk_trueAimUpgrade.value = true, + onUnequip = () => ModdedPlayer.Stats.perk_trueAimUpgrade.value = false, + type = BaseItem.ItemType.ChestArmor, + icon = Res.ResourceLoader.GetTexture(96), + }; + new BaseItem(new int[][] + { + new int[] {65 }, + new int[] {1 }, + new int[] {3}, + new int[] {5,65}, + new int[] {5,6,11,10,7,45}, + new int[] {53}, + new int[] {22}, + new int[] {1,3,4,5,31}, + new int[] {28}, + new int[] {63}, + new int[] {16}, + new int[] {-1}, + new int[] {-1}, + new int[] {-1}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_339/*Thornmail*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_340/*Spiked death on the outside, really comfy on the inside*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_341/*Thorns deal double damage*/, //tr + Rarity = 7, + minLevel = 20, + maxLevel = 22, + CanConsume = false, + StackSize = 1, + onEquip = () => ModdedPlayer.Stats.thornsDmgMult.valueMultiplicative *= 2, + onUnequip = () => ModdedPlayer.Stats.thornsDmgMult.valueMultiplicative /= 2, + type = BaseItem.ItemType.ChestArmor, + icon = Res.ResourceLoader.GetTexture(96), + }; + + new BaseItem(new int[][] + { + new int[] {1 }, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_342/*Rusty Polearm*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_343/*Used by the Ubersreik Five*/, //tr + Rarity = 1, + minLevel = 10, + maxLevel = 16, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Weapon, + weaponModel = BaseItem.WeaponModelType.Polearm, + icon = Res.ResourceLoader.GetTexture(181), + }; + new BaseItem(new int[][] + { + new int[] {1 }, + new int[] {25,0 }, + new int[] {25 ,62,63,64}, + new int[] {6,49}, + new int[] {39,40,41,42,44,8,18,65 }, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_344/*Giant Polearm*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_345/*Used by the Sir Kruber*/, //tr + Rarity = 4, + minLevel = 20, + maxLevel = 24, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Weapon, + weaponModel = BaseItem.WeaponModelType.Polearm, + icon = Res.ResourceLoader.GetTexture(181), + }; + + //Feathers + new BaseItem(new int[][] { }) + { + name = Translations.ItemDataBase_ItemDefinitions_346/*Crude Feather*/, //tr + description = + Translations.ItemDataBase_ItemDefinitions_582/*If equipped on a weapon, increases ranged damage by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.Weapon, 1).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_583/*If equipped on boots, increases movement speed by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.Boot, 1).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_584/*If equipped on a helmet, increases critical hit chance by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.Helmet, 1).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_585/*If equipped on accessories, increases ranged armor piercing by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.Amulet, 1).ToString("N") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_586/*If equipped in other slots, increases agility by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.ChestArmor, 1).ToString("N"), //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr + Rarity = 3, + minLevel = 20, + maxLevel = 21, + CanConsume = false, + StackSize = 100, + subtype = 1, + type = BaseItem.ItemType.Material, + icon = Res.ResourceLoader.GetTexture(185), + }; + new BaseItem(new int[][] { }) + { + name = Translations.ItemDataBase_ItemDefinitions_348/*Soft Feather*/, //tr + description = + Translations.ItemDataBase_ItemDefinitions_582/*If equipped on a weapon, increases ranged damage by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.Weapon, 1).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_583/*If equipped on boots, increases movement speed by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.Boot, 1).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_584/*If equipped on a helmet, increases critical hit chance by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.Helmet, 1).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_585/*If equipped on accessories, increases ranged armor piercing by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.Amulet, 1).ToString("N") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_586/*If equipped in other slots, increases agility by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.ChestArmor, 1).ToString("N"), //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr + Rarity = 4, + minLevel = 20, + maxLevel = 21, + CanConsume = false, + StackSize = 100, + subtype = 1, + type = BaseItem.ItemType.Material, + icon = Res.ResourceLoader.GetTexture(185), + }; + new BaseItem(new int[][] { }) + { + name = Translations.ItemDataBase_ItemDefinitions_349/*Ornate Feather*/, //tr + description = + Translations.ItemDataBase_ItemDefinitions_582/*If equipped on a weapon, increases ranged damage by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.Weapon, 1).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_583/*If equipped on boots, increases movement speed by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.Boot, 1).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_584/*If equipped on a helmet, increases critical hit chance by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.Helmet, 1).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_585/*If equipped on accessories, increases ranged armor piercing by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.Amulet, 1).ToString("N") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_586/*If equipped in other slots, increases agility by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.ChestArmor, 1).ToString("N"), //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr + Rarity = 5, + minLevel = 20, + maxLevel = 21, + CanConsume = false, + StackSize = 100, + subtype = 1, + type = BaseItem.ItemType.Material, + icon = Res.ResourceLoader.GetTexture(185), + }; + + new BaseItem(new int[][] { }) + { + name = Translations.ItemDataBase_ItemDefinitions_350/*Wonderful Feather*/, //tr + description = + Translations.ItemDataBase_ItemDefinitions_582/*If equipped on a weapon, increases ranged damage by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.Weapon, 1).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_583/*If equipped on boots, increases movement speed by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.Boot, 1).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_584/*If equipped on a helmet, increases critical hit chance by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.Helmet, 1).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_585/*If equipped on accessories, increases ranged armor piercing by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.Amulet, 1).ToString("N") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_586/*If equipped in other slots, increases agility by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.ChestArmor, 1).ToString("N"), //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr + Rarity = 6, + minLevel = 20, + maxLevel = 21, + CanConsume = false, + StackSize = 100, + subtype = 1, + type = BaseItem.ItemType.Material, + icon = Res.ResourceLoader.GetTexture(185), + }; + new BaseItem(new int[][] { }) + { + name = Translations.ItemDataBase_ItemDefinitions_351/*White Crow's Feather*/, //tr + description = + Translations.ItemDataBase_ItemDefinitions_582/*If equipped on a weapon, increases ranged damage by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.Weapon, 1).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_583/*If equipped on boots, increases movement speed by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.Boot, 1).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_584/*If equipped on a helmet, increases critical hit chance by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.Helmet, 1).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_585/*If equipped on accessories, increases ranged armor piercing by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.Amulet, 1).ToString("N") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_586/*If equipped in other slots, increases agility by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.ChestArmor, 1).ToString("N"), //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr + Rarity = 7, + minLevel = 20, + maxLevel = 21, + CanConsume = false, + StackSize = 100, + subtype = 1, + type = BaseItem.ItemType.Material, + icon = Res.ResourceLoader.GetTexture(185), + }; + + //-------------- Shark teeth + + new BaseItem(new int[][] { }) + { + name = Translations.ItemDataBase_ItemDefinitions_352/*Reef Shark*/, //tr + description = + Translations.ItemDataBase_ItemDefinitions_587/*If equipped on a weapon, increases melee damage by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.Weapon, 2).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_588/*If equipped on boots, decreases damage taken by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.Boot, 2).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_589/*If equipped on a helmet, increases cattack speed by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.Helmet, 2).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_590/*If equipped on accessories, increases melee armor piercing by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.Amulet, 2).ToString("N") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_591/*If equipped in other slots, increases strength by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.ChestArmor, 2).ToString("N"), //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr + Rarity = 3, + minLevel = 20, + maxLevel = 21, + CanConsume = false, + StackSize = 100, + subtype = 2, + type = BaseItem.ItemType.Material, + icon = Res.ResourceLoader.GetTexture(186), + }; + new BaseItem(new int[][] { }) + { + name = Translations.ItemDataBase_ItemDefinitions_353/*Tiger Shark Tooth*/, //tr + description = + Translations.ItemDataBase_ItemDefinitions_587/*If equipped on a weapon, increases melee damage by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.Weapon, 2).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_588/*If equipped on boots, decreases damage taken by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.Boot, 2).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_589/*If equipped on a helmet, increases cattack speed by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.Helmet, 2).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_590/*If equipped on accessories, increases melee armor piercing by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.Amulet, 2).ToString("N") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_591/*If equipped in other slots, increases strength by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.ChestArmor, 2).ToString("N"), //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr + Rarity = 4, + minLevel = 20, + maxLevel = 21, + CanConsume = false, + StackSize = 100, + subtype = 2, + type = BaseItem.ItemType.Material, + icon = Res.ResourceLoader.GetTexture(186), + }; + new BaseItem(new int[][] { }) + { + name = Translations.ItemDataBase_ItemDefinitions_354/*Whale Shark Tooth*/, //tr + description = + Translations.ItemDataBase_ItemDefinitions_587/*If equipped on a weapon, increases melee damage by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.Weapon, 2).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_588/*If equipped on boots, decreases damage taken by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.Boot, 2).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_589/*If equipped on a helmet, increases cattack speed by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.Helmet, 2).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_590/*If equipped on accessories, increases melee armor piercing by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.Amulet, 2).ToString("N") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_591/*If equipped in other slots, increases strength by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.ChestArmor, 2).ToString("N"), //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr + Rarity = 5, + minLevel = 20, + maxLevel = 21, + CanConsume = false, + StackSize = 100, + subtype = 2, + type = BaseItem.ItemType.Material, + icon = Res.ResourceLoader.GetTexture(186), + }; + + new BaseItem(new int[][] { }) + { + name = Translations.ItemDataBase_ItemDefinitions_355/*Great White Shark Tooth*/, //tr + description = + Translations.ItemDataBase_ItemDefinitions_587/*If equipped on a weapon, increases melee damage by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.Weapon, 2).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_588/*If equipped on boots, decreases damage taken by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.Boot, 2).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_589/*If equipped on a helmet, increases cattack speed by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.Helmet, 2).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_590/*If equipped on accessories, increases melee armor piercing by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.Amulet, 2).ToString("N") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_591/*If equipped in other slots, increases strength by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.ChestArmor, 2).ToString("N"), //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr + Rarity = 6, + minLevel = 20, + maxLevel = 21, + CanConsume = false, + StackSize = 100, + subtype = 2, + type = BaseItem.ItemType.Material, + icon = Res.ResourceLoader.GetTexture(186), + }; + new BaseItem(new int[][] { }) + { + name = Translations.ItemDataBase_ItemDefinitions_356/*Megalodon's Tooth*/, //tr + description = + Translations.ItemDataBase_ItemDefinitions_587/*If equipped on a weapon, increases melee damage by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.Weapon, 2).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_588/*If equipped on boots, decreases damage taken by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.Boot, 2).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_589/*If equipped on a helmet, increases cattack speed by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.Helmet, 2).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_590/*If equipped on accessories, increases melee armor piercing by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.Amulet, 2).ToString("N") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_591/*If equipped in other slots, increases strength by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.ChestArmor, 2).ToString("N"), //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr + Rarity = 7, + minLevel = 20, + maxLevel = 21, + CanConsume = false, + StackSize = 100, + subtype = 2, + type = BaseItem.ItemType.Material, + icon = Res.ResourceLoader.GetTexture(186), + }; + + //------------- Sapphires + + new BaseItem(new int[][] { }) + { + name = Translations.ItemDataBase_ItemDefinitions_357/*Uncut Sapphire*/, //tr + description = + Translations.ItemDataBase_ItemDefinitions_592/*If equipped on a weapon, increases magic damage by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.Weapon, 3).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_593/*If equipped on boots, decreases spell cost by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.Boot, 3).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_594/*If equipped on a helmet, decreases spell cooldown by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.Helmet, 3).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_595/*If equipped on accessories, increases energy on hit by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.Amulet, 3).ToString("N") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_596/*If equipped in other slots, increases intelligence by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.ChestArmor, 3).ToString("N"), //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr + Rarity = 3, + minLevel = 20, + maxLevel = 21, + CanConsume = false, + StackSize = 100, + subtype = 3, + type = BaseItem.ItemType.Material, + icon = Res.ResourceLoader.GetTexture(187), + }; + new BaseItem(new int[][] { }) + { + name = Translations.ItemDataBase_ItemDefinitions_358/*Clear Sapphire*/, //tr + description = + Translations.ItemDataBase_ItemDefinitions_592/*If equipped on a weapon, increases magic damage by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.Weapon, 3).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_593/*If equipped on boots, decreases spell cost by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.Boot, 3).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_594/*If equipped on a helmet, decreases spell cooldown by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.Helmet, 3).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_595/*If equipped on accessories, increases energy on hit by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.Amulet, 3).ToString("N") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_596/*If equipped in other slots, increases intelligence by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.ChestArmor, 3).ToString("N"), //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr + Rarity = 4, + minLevel = 20, + maxLevel = 21, + CanConsume = false, + StackSize = 100, + subtype = 3, + type = BaseItem.ItemType.Material, + icon = Res.ResourceLoader.GetTexture(187), + }; + new BaseItem(new int[][] { }) + { + name = Translations.ItemDataBase_ItemDefinitions_359/*Shiny Sapphire*/, //tr + description = + Translations.ItemDataBase_ItemDefinitions_592/*If equipped on a weapon, increases magic damage by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.Weapon, 3).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_593/*If equipped on boots, decreases spell cost by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.Boot, 3).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_594/*If equipped on a helmet, decreases spell cooldown by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.Helmet, 3).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_595/*If equipped on accessories, increases energy on hit by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.Amulet, 3).ToString("N") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_596/*If equipped in other slots, increases intelligence by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.ChestArmor, 3).ToString("N"), //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr + Rarity = 5, + minLevel = 20, + maxLevel = 21, + CanConsume = false, + StackSize = 100, + subtype = 3, + type = BaseItem.ItemType.Material, + icon = Res.ResourceLoader.GetTexture(187), + }; + + new BaseItem(new int[][] { }) + { + name = Translations.ItemDataBase_ItemDefinitions_360/*Enchanted Sapphire*/, //tr + description = + Translations.ItemDataBase_ItemDefinitions_592/*If equipped on a weapon, increases magic damage by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.Weapon, 3).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_593/*If equipped on boots, decreases spell cost by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.Boot, 3).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_594/*If equipped on a helmet, decreases spell cooldown by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.Helmet, 3).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_595/*If equipped on accessories, increases energy on hit by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.Amulet, 3).ToString("N") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_596/*If equipped in other slots, increases intelligence by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.ChestArmor, 3).ToString("N"), //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr + Rarity = 6, + minLevel = 20, + maxLevel = 21, + CanConsume = false, + StackSize = 100, + subtype = 3, + type = BaseItem.ItemType.Material, + icon = Res.ResourceLoader.GetTexture(187), + }; + new BaseItem(new int[][] { }) + { + name = Translations.ItemDataBase_ItemDefinitions_361/*Celestial Sapphire*/, //tr + description = + Translations.ItemDataBase_ItemDefinitions_592/*If equipped on a weapon, increases magic damage by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.Weapon, 3).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_593/*If equipped on boots, decreases spell cost by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.Boot, 3).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_594/*If equipped on a helmet, decreases spell cooldown by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.Helmet, 3).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_595/*If equipped on accessories, increases energy on hit by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.Amulet, 3).ToString("N") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_596/*If equipped in other slots, increases intelligence by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.ChestArmor, 3).ToString("N"), //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr + Rarity = 7, + minLevel = 20, + maxLevel = 21, + CanConsume = false, + StackSize = 100, + subtype = 3, + type = BaseItem.ItemType.Material, + icon = Res.ResourceLoader.GetTexture(187), + }; + + // -------- Moonstones + new BaseItem(new int[][] { }) + { + name = Translations.ItemDataBase_ItemDefinitions_362/*Uncut Moonstone*/, //tr + description = + Translations.ItemDataBase_ItemDefinitions_597/*If equipped on a weapon, increases all healing by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.Weapon, 4).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_598/*If equipped on boots, increases magic find by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.Boot, 4).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_599/*If equipped on a helmet, increases experience gained by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.Helmet, 4).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_600/*If equipped on accessories, increases life per second by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.Amulet, 4).ToString("N") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_601/*If equipped in other slots, increases vitality by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.ChestArmor, 4).ToString("N"), //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr + Rarity = 3, + minLevel = 20, + maxLevel = 21, + CanConsume = false, + StackSize = 100, + subtype = 4, + type = BaseItem.ItemType.Material, + icon = Res.ResourceLoader.GetTexture(188), + }; + new BaseItem(new int[][] { }) + { + name = Translations.ItemDataBase_ItemDefinitions_363/*Clear Moonstone*/, //tr + description = + Translations.ItemDataBase_ItemDefinitions_597/*If equipped on a weapon, increases all healing by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.Weapon, 4).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_598/*If equipped on boots, increases magic find by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.Boot, 4).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_599/*If equipped on a helmet, increases experience gained by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.Helmet, 4).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_600/*If equipped on accessories, increases life per second by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.Amulet, 4).ToString("N") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_601/*If equipped in other slots, increases vitality by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.ChestArmor, 4).ToString("N"), //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr + Rarity = 4, + minLevel = 20, + maxLevel = 21, + CanConsume = false, + StackSize = 100, + subtype = 4, + type = BaseItem.ItemType.Material, + icon = Res.ResourceLoader.GetTexture(188), + }; + new BaseItem(new int[][] { }) + { + name = Translations.ItemDataBase_ItemDefinitions_364/*Shiny Moonstone*/, //tr + description = + Translations.ItemDataBase_ItemDefinitions_597/*If equipped on a weapon, increases all healing by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.Weapon, 4).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_598/*If equipped on boots, increases magic find by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.Boot, 4).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_599/*If equipped on a helmet, increases experience gained by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.Helmet, 4).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_600/*If equipped on accessories, increases life per second by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.Amulet, 4).ToString("N") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_601/*If equipped in other slots, increases vitality by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.ChestArmor, 4).ToString("N"), //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr + Rarity = 5, + minLevel = 20, + maxLevel = 21, + CanConsume = false, + StackSize = 100, + subtype = 4, + type = BaseItem.ItemType.Material, + icon = Res.ResourceLoader.GetTexture(188), + }; + + new BaseItem(new int[][] { }) + { + name = Translations.ItemDataBase_ItemDefinitions_365/*Enchanted Moonstone*/, //tr + description = + Translations.ItemDataBase_ItemDefinitions_597/*If equipped on a weapon, increases all healing by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.Weapon, 4).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_598/*If equipped on boots, increases magic find by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.Boot, 4).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_599/*If equipped on a helmet, increases experience gained by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.Helmet, 4).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_600/*If equipped on accessories, increases life per second by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.Amulet, 4).ToString("N") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_601/*If equipped in other slots, increases vitality by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.ChestArmor, 4).ToString("N"), //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr + Rarity = 6, + minLevel = 20, + maxLevel = 21, + CanConsume = false, + StackSize = 100, + subtype = 4, + type = BaseItem.ItemType.Material, + icon = Res.ResourceLoader.GetTexture(188), + }; + new BaseItem(new int[][] { }) + { + name = Translations.ItemDataBase_ItemDefinitions_366/*Celestial Moonstone*/, //tr + description = + Translations.ItemDataBase_ItemDefinitions_597/*If equipped on a weapon, increases all healing by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.Weapon, 4).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_598/*If equipped on boots, increases magic find by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.Boot, 4).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_599/*If equipped on a helmet, increases experience gained by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.Helmet, 4).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_600/*If equipped on accessories, increases life per second by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.Amulet, 4).ToString("N") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_601/*If equipped in other slots, increases vitality by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.ChestArmor, 4).ToString("N"), //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr + Rarity = 7, + minLevel = 20, + maxLevel = 21, + CanConsume = false, + StackSize = 100, + subtype = 4, + type = BaseItem.ItemType.Material, + icon = Res.ResourceLoader.GetTexture(188), + }; + + // ----------------- Ores + + new BaseItem(new int[][] { }) + { + name = Translations.ItemDataBase_ItemDefinitions_367/*Lead Ore*/, //tr + description = + Translations.ItemDataBase_ItemDefinitions_602/*If equipped on a weapon, increases crit damage by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.Weapon, 5).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_603/*If equipped on boots, increases resistance to magic by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.Boot, 5).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_604/*If equipped on a helmet, increases health by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.Helmet, 5).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_605/*If equipped on accessories, increases thorns by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.Amulet, 5).ToString("N") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_606/*If equipped in other slots, increases armor by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.ChestArmor, 5).ToString("N"), //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr + Rarity = 3, + minLevel = 20, + maxLevel = 21, + CanConsume = false, + StackSize = 100, + subtype = 5, + type = BaseItem.ItemType.Material, + icon = Res.ResourceLoader.GetTexture(184), + }; + new BaseItem(new int[][] { }) + { + name = Translations.ItemDataBase_ItemDefinitions_368/*Vanadium Ore*/, //tr + description = + Translations.ItemDataBase_ItemDefinitions_602/*If equipped on a weapon, increases crit damage by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.Weapon, 5).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_603/*If equipped on boots, increases resistance to magic by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.Boot, 5).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_604/*If equipped on a helmet, increases health by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.Helmet, 5).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_605/*If equipped on accessories, increases thorns by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.Amulet, 5).ToString("N") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_606/*If equipped in other slots, increases armor by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.ChestArmor, 5).ToString("N"), //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr + Rarity = 4, + minLevel = 20, + maxLevel = 21, + CanConsume = false, + StackSize = 100, + subtype = 5, + type = BaseItem.ItemType.Material, + icon = Res.ResourceLoader.GetTexture(184), + }; + new BaseItem(new int[][] { }) + { + name = Translations.ItemDataBase_ItemDefinitions_369/*Titanium Ore*/, //tr + description = + Translations.ItemDataBase_ItemDefinitions_602/*If equipped on a weapon, increases crit damage by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.Weapon, 5).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_603/*If equipped on boots, increases resistance to magic by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.Boot, 5).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_604/*If equipped on a helmet, increases health by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.Helmet, 5).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_605/*If equipped on accessories, increases thorns by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.Amulet, 5).ToString("N") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_606/*If equipped in other slots, increases armor by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.ChestArmor, 5).ToString("N"), //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr + Rarity = 5, + + minLevel = 20, + maxLevel = 21, + CanConsume = false, + StackSize = 100, + subtype = 5, + type = BaseItem.ItemType.Material, + icon = Res.ResourceLoader.GetTexture(184), + }; + + new BaseItem(new int[][] { }) + { + name = Translations.ItemDataBase_ItemDefinitions_370/*Chromium Ore*/, //tr + description = + Translations.ItemDataBase_ItemDefinitions_602/*If equipped on a weapon, increases crit damage by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.Weapon, 5).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_603/*If equipped on boots, increases resistance to magic by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.Boot, 5).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_604/*If equipped on a helmet, increases health by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.Helmet, 5).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_605/*If equipped on accessories, increases thorns by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.Amulet, 5).ToString("N") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_606/*If equipped in other slots, increases armor by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.ChestArmor, 5).ToString("N"), //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr + Rarity = 6, + minLevel = 20, + maxLevel = 21, + CanConsume = false, + StackSize = 100, + subtype = 5, + type = BaseItem.ItemType.Material, + icon = Res.ResourceLoader.GetTexture(184), + }; + new BaseItem(new int[][] { }) + { + name = Translations.ItemDataBase_ItemDefinitions_371/*Tungsten Ore*/, //tr + description = + Translations.ItemDataBase_ItemDefinitions_602/*If equipped on a weapon, increases crit damage by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.Weapon, 5).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_603/*If equipped on boots, increases resistance to magic by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.Boot, 5).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_604/*If equipped on a helmet, increases health by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.Helmet, 5).ToString("P") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_605/*If equipped on accessories, increases thorns by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.Amulet, 5).ToString("N") + "\n" + //tr + Translations.ItemDataBase_ItemDefinitions_606/*If equipped in other slots, increases armor by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.ChestArmor, 5).ToString("N"), //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr + Rarity = 7, + minLevel = 20, + maxLevel = 21, + CanConsume = false, + StackSize = 100, + subtype = 5, + type = BaseItem.ItemType.Material, + icon = Res.ResourceLoader.GetTexture(184), + }; + + //This is the new better way of defining items, no longer uses item ids, now uses enum like in C++, the enum is Stats, you can find it in ItemDataBase_StatDefinitons.cs + new BaseItem(new Stat[][] + { + new [] {MELEEDMGFROMSTR}, + new [] {STRENGTH}, + new [] {BASEMELEEDAMAGE,MELEEDAMAGEINCREASE}, + new [] {MELEEARMORPIERCING,ARMORPIERCING,ALLATTRIBUTES}, + new [] {ATTACKCOSTREDUCTION,ATTACKSPEED}, + new [] {ATTACKSPEED}, + new [] {ALLATTRIBUTES,MELEEWEAPONRANGE,VITALITY,MAXIMUMLIFE}, + new [] {ENERGYONHIT,VITALITY,LIFEONHIT } + }) + { + name = Translations.ItemDataBase_ItemDefinitions_372/*Knife on a stick*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_373/*Kasper named this item, his fault*/, //tr + Rarity = 5, + minLevel = 30, + maxLevel = 34, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Weapon, + weaponModel = BaseItem.WeaponModelType.Polearm, + icon = Res.ResourceLoader.GetTexture(181), + }; + new BaseItem(new Stat[][] + { + new [] {STRENGTH}, + new [] {STRENGTH,ALLATTRIBUTES,MELEEARMORPIERCING,MELEEDAMAGEINCREASE,COOLDOWNREDUCTION,SPELLDAMAGEINCREASE}, + new [] {MAXIMUMLIFE,VITALITY,PERCENTMAXIMUMLIFE,ALLATTRIBUTES}, + new [] {MELEEDAMAGEINCREASE,DAMAGEREDUCTION}, + new [] {THORNS}, + new [] {VITALITY,LIFEPERSECOND,LIFEREGENERATION}, + new [] {VITALITY,LIFEPERSECOND,LIFEREGENERATION,THORNS}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ENERGYPERSECOND,MAXIMUMENERGY,DODGECHANCE,ARMOR,}, + new [] {STRENGTH,INTELLIGENCE,ARMOR,ARMORPIERCING,THORNS,} + }) + { + name = Translations.ItemDataBase_ItemDefinitions_374/*Fists of Nails*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_375/*Swiss sheese makers*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_376("900%")/*Gain 5 thorns per vitality*/, //tr + Rarity = 7, + minLevel = 20, + maxLevel = 22, + CanConsume = false, + StackSize = 1, + onEquip = () => ModdedPlayer.Stats.thornsPerVit.Add(9), + onUnequip = () => ModdedPlayer.Stats.thornsPerVit.Substract(9), + type = BaseItem.ItemType.Glove, + icon = Res.ResourceLoader.GetTexture(86), + }; + new BaseItem(new int[][] + { + new int[] {1000}, + new int[] {1001}, + new int[] {1002}, + new int[] {1003}, + new int[] {1004}, + new int[] {1,2,3,4,5,6 }, + new int[] {-1 }, + new int[] {-1 }, + new int[] {-1 }, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_377/*Cargo Shorts MK2*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_378/*Deepest pockets out there*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_379/*Improved cargo pants. Twice as many pockets, and since they didnt fit on the outside, they are inside. They are still ugly as hell tho*/, //tr + Rarity = 4, + minLevel = 30, + maxLevel = 33, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Pants, + icon = Res.ResourceLoader.GetTexture(87), + }; + new BaseItem(new Stat[][] + { + new [] {INTELLIGENCE,AGILITY}, + new [] {MAGICFIND,SPELLDAMAGEINCREASE,BASESPELLDAMAGE}, + new [] {SPELLDAMAGEINCREASE,BASESPELLDAMAGE}, + new [] {MAXENERGYFROMAGI,SPELLDMGFROMINT,RANGEDDMGFROMAGI}, + new [] {ARMOR}, + new [] {VITALITY,LIFEPERSECOND,LIFEREGENERATION,INTELLIGENCE,AGILITY,STRENGTH,ALLATTRIBUTES}, + new [] {COOLDOWNREDUCTION,SPELLCOSTREDUCTION,SPELLCOSTTOSTAMINA,MOVEMENTSPEED,DAMAGEREDUCTION}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {DODGECHANCE,ARMOR,BASESPELLDAMAGE,BASERANGEDDAMAGE}, + new [] {BASERANGEDDAMAGE,RANGEDARMORPIERCING,RANGEDDAMAGEINCREASE} + }) + { + name = Translations.ItemDataBase_ItemDefinitions_380/*Aezyn*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_381/*Enchanted with magic as strong as power swing. It's purpose? Hit harder.*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_382("1666%")/*Magic arrow damage scaling is increased by 666%*/, //tr + Rarity = 7, + minLevel = 20, + maxLevel = 22, + CanConsume = false, + StackSize = 1, + onEquip = () => ModdedPlayer.Stats.spell_magicArrowDamageScaling.Add(16.66f), + onUnequip = () => ModdedPlayer.Stats.spell_magicArrowDamageScaling.Substract(16.66f), + type = BaseItem.ItemType.Bracer, + icon = Res.ResourceLoader.GetTexture(93), + }; + new BaseItem(new Stat[][] + { + new [] {INTELLIGENCE,AGILITY}, + new [] {CRITICALHITCHANCE}, + new [] {CRITICALHITDAMAGE}, + new [] {VITALITY,LIFEPERSECOND,LIFEREGENERATION,INTELLIGENCE,AGILITY,STRENGTH,ALLATTRIBUTES}, + new [] {COOLDOWNREDUCTION,SPELLCOSTREDUCTION,SPELLCOSTTOSTAMINA,MOVEMENTSPEED,DAMAGEREDUCTION}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {DODGECHANCE,ARMOR,BASESPELLDAMAGE,BASERANGEDDAMAGE}, + new [] {BASERANGEDDAMAGE,RANGEDARMORPIERCING,RANGEDDAMAGEINCREASE} + }) + { + name = Translations.ItemDataBase_ItemDefinitions_383/*Punny's Reflective Ring*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_381/*Enchanted with magic as strong as power swing. It's purpose? Hit harder.*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_384/*Magic arrow is shot in volleys. This effect can stack.*/, //tr + Rarity = 7, + minLevel = 20, + maxLevel = 22, + CanConsume = false, + StackSize = 1, + onEquip = () => ModdedPlayer.Stats.spell_magicArrowVolleyCount.Add(3), + onUnequip = () => ModdedPlayer.Stats.spell_magicArrowVolleyCount.Substract(3), + type = BaseItem.ItemType.Ring, + icon = Res.ResourceLoader.GetTexture(90), + }; + new BaseItem(new int[][] + { + new int[] {39,0}, + new int[] {43,0}, + new int[] {67}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_385/*Eyepatch*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_386/*A wise man once said:*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_387/*Everyone thinks I'm just a one-eyed bloody monster, god damnit... (sobbing)*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_388/*Explosion damage is also applied when performing jump attacks*/, //tr + Rarity = 0, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Helmet, + icon = Res.ResourceLoader.GetTexture(91), + }; + new BaseItem(new Stat[][] + { + new [] {RANGEDARMORPIERCING}, + new [] {AGILITY}, + new [] {BASERANGEDDAMAGE,RANGEDDAMAGEINCREASE}, + new [] {SPEARDAMAGE}, + new [] {PROJECTILESPEED}, + new [] {ALLATTRIBUTES,PROJECTILESIZE,LESSERAGILITY}, + new [] {ENERGYONHIT,VITALITY,LIFEONHIT } + }) + { + name = Translations.ItemDataBase_ItemDefinitions_389/*Javelin*/, //tr + Rarity = 5, + minLevel = 30, + maxLevel = 34, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Weapon, + weaponModel = BaseItem.WeaponModelType.Polearm, + icon = Res.ResourceLoader.GetTexture(181), + }; + new BaseItem(new Stat[][] + { + new [] {STRENGTH}, + new [] {MAXIMUMLIFE, VITALITY,PERCENTMAXIMUMLIFE}, + new [] {MELEEARMORPIERCING, MELEEDAMAGEINCREASE,BASEMELEEDAMAGE}, + new [] {MELEEDAMAGEINCREASE,BASEMELEEDAMAGE}, + new [] {ATTACKSPEED, CRITICALHITDAMAGE,CRITICALHITCHANCE}, + new [] {MAXENERGYFROMAGI,PERCENTMAXIMUMENERGY,ENERGYONHIT,LIFEONHIT,LIFEPERSECOND,LIFEREGENERATION,STAMINAPERSECOND,STAMINAREGENERATION}, + new [] {ARMOR,THORNS,DAMAGEREDUCTION,PERCENTMAXIMUMLIFE}, + new [] {ALL}, + new [] {ALL}, + + }) + { + name = Translations.ItemDataBase_ItemDefinitions_390/*Warplate*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_391/*Enchanted with the power of the GOD's armor. It's purpose? Hit harder, daddy.*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_392/*Strength comes from the power of will, the stronger the will the stronger you are*/, //tr + Rarity = 6, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.ChestArmor, + icon = Res.ResourceLoader.GetTexture(96), + }; + { + var SomeItem = new BaseItem(new Stat[][] + { + new [] {STRENGTH}, + new [] {MAXIMUMLIFE, VITALITY,MAXHEALTHFROMVIT,PERCENTMAXIMUMLIFE}, + new [] {MELEEARMORPIERCING, MELEEDAMAGEINCREASE,BASEMELEEDAMAGE,ATTACKSPEED}, + new [] {SPELLCOSTREDUCTION, CRITICALHITDAMAGE,CRITICALHITCHANCE}, + new [] {ALL}, + new [] {STRENGTH, THORNS}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_393/*Torso of Strength*/, //tr + + Rarity = 4, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.ChestArmor, + icon = Res.ResourceLoader.GetTexture(96), + }; + SomeItem.PossibleStats[0][0].Multipier = 2; + } + { + var demoVestItem = new BaseItem(new Stat[][] + { + new [] {EXPLOSIONDAMAGE}, + new [] {AGILITY,INTELLIGENCE, ALLATTRIBUTES}, + new [] {MAXIMUMLIFE, VITALITY, LIFEONHIT}, + new [] {ALLHEALINGPERCENT}, + new [] {ALL}, + new [] {MELEEWEAPONRANGE,ENERGYONHIT,ARMORPIERCING, DODGECHANCE}, + new [] {MOVEMENTSPEED,BLOCK,MAGICFIND}, + + }) + { + name = Translations.ItemDataBase_ItemDefinitions_394/*Demoman's Vest*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_395/*What makes me a good demoman? If I were a bad demoman, I wouldn't be sittin' here discussin' it with you, now would I?! LET'S DO IT! Not one of you's gonna survive this! One crossed wire, one wayward pinch of potassium chlorate, one errant twitch, and KA-BLOOIE! I got a manky eye. I'm a black Scottish cyclops. They got more fecking sea monsters in the great Lochett Ness than they got the likes of me. So! T'all you fine dandies, so proud, so cocksure, prancin' about with your heads full of eyeballs... come and get me, I say! I'll be waitin' on you with a whiff of the old brimstone! I'm a Grimm bloody fable with an unhappy bloody end! Oh, they're going to have to glue you back together...IN HELL!*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_392/*Strength comes from the power of will, the stronger the will the stronger you are*/, //tr + Rarity = 5, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.ChestArmor, + icon = Res.ResourceLoader.GetTexture(96), + }; + demoVestItem.PossibleStats[0][0].Multipier = 7; + + } + new BaseItem(new Stat[][] + { + new [] {STRENGTH,ALLATTRIBUTES,BASEMELEEDAMAGE}, + new [] {MAXIMUMLIFE, VITALITY,DAMAGEREDUCTION,MELEEWEAPONRANGE}, + new [] {MELEEARMORPIERCING, MELEEDAMAGEINCREASE}, + new [] {MELEEDAMAGEINCREASE,MELEEDMGFROMSTR}, + new [] {SPELLCOSTREDUCTION, CRITICALHITDAMAGE}, + new [] {ALL}, + new [] {STRENGTH,THORNS,BASEMELEEDAMAGE,CRITICALHITCHANCE,ATTACKSPEED,MELEEWEAPONRANGE}, + new [] {ARMOR}, + + }) + { + name = Translations.ItemDataBase_ItemDefinitions_396/*Brawler's Gloves*/, //tr + Rarity = 6, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Glove, + icon = Res.ResourceLoader.GetTexture(86), + }; + new BaseItem(new Stat[][] + { + new [] {ALLATTRIBUTES,STRENGTH,AGILITY,INTELLIGENCE}, + new [] {MAXIMUMLIFE, VITALITY,STRENGTH,INTELLIGENCE}, + new [] {MELEEARMORPIERCING, MELEEDAMAGEINCREASE,RANGEDDAMAGEINCREASE,BASERANGEDDAMAGE,RANGEDARMORPIERCING}, + new [] {SPELLCOSTREDUCTION, CRITICALHITDAMAGE,CRITICALHITCHANCE,SPELLDAMAGEINCREASE,COOLDOWNREDUCTION}, + new [] {ARMORPIERCING}, + new [] {ALL}, + new [] {ARMOR,DAMAGEREDUCTION,RESISTANCETOMAGIC,VITALITY,LESSERVITALITY}, + + }) + { + name = Translations.ItemDataBase_ItemDefinitions_397/*Nail Gloves*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_398/*Enchanted with the power of penetration. It's purpose? Hit harder.*/, //tr + Rarity = 3, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Glove, + icon = Res.ResourceLoader.GetTexture(86), + }; + + new BaseItem(new Stat[][] + { + new [] {ATTACKSPEED}, + new [] {RANGEDDAMAGEINCREASE,RANGEDDMGFROMAGI}, + new [] {BASERANGEDDAMAGE}, + new [] {BASERANGEDDAMAGE,NONE}, + new [] {PROJECTILESIZE,LESSERAGILITY,AGILITY}, + new [] {PROJECTILESPEED,CRITICALHITCHANCE,CRITICALHITDAMAGE}, + new [] {AGILITY,NONE}, + new [] {RANGEDARMORPIERCING, ARMORPIERCING,ENERGYONHIT}, + new [] {ALL}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_399/*Hand-held Ballista*/, //tr + Rarity = 5, + minLevel = 10, + maxLevel = 12, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Weapon, + weaponModel = BaseItem.WeaponModelType.Greatbow, + icon = Res.ResourceLoader.GetTexture(170), + + }.PossibleStats[0][0].Multipier = -2f; + + new BaseItem(new Stat[][] + { + new [] {STRENGTH,LESSERSTRENGTH}, + new [] {MAXIMUMLIFE, VITALITY,MELEEDMGFROMSTR,ARMOR}, + new [] {MELEEARMORPIERCING, MELEEDAMAGEINCREASE}, + + }) + { + name = Translations.ItemDataBase_ItemDefinitions_400/*Kuldars's Scarf*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_401/*Strength comes from the power of will*/, //tr + Rarity = 2, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Amulet, + icon = Res.ResourceLoader.GetTexture(100), + }; + new BaseItem(new Stat[][] + { + new [] {MELEEDAMAGEINCREASE,MELEEDMGFROMSTR}, + new [] {MAXIMUMLIFE, VITALITY,MELEEDAMAGEINCREASE,BASEMELEEDAMAGE}, + new [] {MELEEARMORPIERCING, MELEEDAMAGEINCREASE,MELEEWEAPONRANGE,ARMOR}, + new [] {SPELLCOSTREDUCTION, CRITICALHITDAMAGE,CRITICALHITCHANCE}, + new [] {ALL}, + new [] {STRENGTH,LESSERSTRENGTH}, + + }) + { + name = Translations.ItemDataBase_ItemDefinitions_402/*Sword Devil's Scarf*/, //tr + Rarity = 4, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Amulet, + icon = Res.ResourceLoader.GetTexture(100), + }; + new BaseItem(new Stat[][] + { + new [] {STRENGTH}, + new [] {MAXIMUMLIFE, VITALITY}, + new [] {MELEEARMORPIERCING, MELEEDAMAGEINCREASE}, + new [] {SPELLCOSTREDUCTION, CRITICALHITDAMAGE}, + new [] {STRENGTH}, + + }) + { + name = Translations.ItemDataBase_ItemDefinitions_403/*Peasant's Scarf*/, //tr + Rarity = 3, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Amulet, + icon = Res.ResourceLoader.GetTexture(100), + }; + new BaseItem(new Stat[][] + { + new [] {EXPLOSIONDAMAGE}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {EXPLOSIONDAMAGE}, + new [] {EXPLOSIONDAMAGE}, + new [] {EXPLOSIONDAMAGE,NONE}, + + }) + { + name = Translations.ItemDataBase_ItemDefinitions_404/*Bombastinc Choker*/, //tr + Rarity = 6, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Amulet, + icon = Res.ResourceLoader.GetTexture(100), + }.PossibleStats[0][0].Multipier = 7f; + new BaseItem(new Stat[][] + { + new [] {STRENGTH,VITALITY,AGILITY,ALLATTRIBUTES,INTELLIGENCE}, + new [] {MAXENERGYFROMAGI,MELEEDMGFROMSTR,SPELLDMGFROMINT,RANGEDDMGFROMAGI,MAXHEALTHFROMVIT}, + new [] {ARMOR,DAMAGEREDUCTION}, + new [] { CRITICALHITCHANCE, CRITICALHITDAMAGE}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {EXPLOSIONDAMAGE}, + new [] {EXPLOSIONDAMAGE,NONE}, + new [] {EXPLOSIONDAMAGE,NONE}, + + }) + { + name = Translations.ItemDataBase_ItemDefinitions_405/*Explosive Touch*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_406/*Enchanted with the power of the explosions armor. It's purpose? Become the true explosion master*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_407/*Strength comes from the power of will, the stronger the will the stronger the explosion*/, //tr + Rarity = 6, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Glove, + icon = Res.ResourceLoader.GetTexture(86), + }; + new BaseItem(new Stat[][] + { + new [] {ARMOR}, + new [] {MAXIMUMLIFE, VITALITY}, + new [] {CRITICALHITCHANCE, CRITICALHITDAMAGE,ATTACKSPEED,BASESPELLDAMAGE,STAMINAPERSECOND}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALLATTRIBUTES}, + new [] {EXPLOSIONDAMAGE}, + new [] {EXPLOSIONDAMAGE}, + + }) + { + name = Translations.ItemDataBase_ItemDefinitions_408/*Volatile Bracers*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_406/*Enchanted with the power of the explosions armor. It's purpose? Become the true explosion master*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_407/*Strength comes from the power of will, the stronger the will the stronger the explosion*/, //tr + Rarity = 6, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Bracer, + icon = Res.ResourceLoader.GetTexture(93), + }; + new BaseItem(new Stat[][] + { + new [] {ARMOR}, + new [] {MAXIMUMLIFE, VITALITY}, + new [] {CRITICALHITCHANCE, CRITICALHITDAMAGE,ATTACKSPEED,BASESPELLDAMAGE,STAMINAPERSECOND}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {EMPTYSOCKET}, + new [] {EMPTYSOCKET}, + new [] {EXPLOSIONDAMAGE}, + new [] {EXPLOSIONDAMAGE}, + + }) + { + name = Translations.ItemDataBase_ItemDefinitions_409/*Volatile Helmet*/, //tr + + Rarity = 6, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Helmet, + icon = Res.ResourceLoader.GetTexture(91), + }; + new BaseItem(new Stat[][] + { + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {MAXIMUMLIFE, VITALITY,ARMOR,PERCENTMAXIMUMLIFE,PERCENTMAXIMUMENERGY,MAXHEALTHFROMVIT,THORNS,RESISTANCETOMAGIC}, + new [] {JUMPPOWER}, + new [] {MOVEMENTSPEED}, + new [] {EMPTYSOCKET}, + new [] {EMPTYSOCKET}, + new [] {EXPLOSIONDAMAGE}, + new [] {EXPLOSIONDAMAGE}, + + }) + { + name = Translations.ItemDataBase_ItemDefinitions_410/*Gunpowder filled socks*/, //tr + Rarity = 6, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Boot, + icon = Res.ResourceLoader.GetTexture(85), + }; + new BaseItem(new Stat[][] + { + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {MAXIMUMLIFE, VITALITY,ARMOR,PERCENTMAXIMUMLIFE,PERCENTMAXIMUMENERGY,MAXHEALTHFROMVIT,THORNS,RESISTANCETOMAGIC}, + new [] {EMPTYSOCKET}, + new [] {EMPTYSOCKET}, + new [] {EXPLOSIONDAMAGE}, + new [] {EXPLOSIONDAMAGE}, + + }) + { + name = Translations.ItemDataBase_ItemDefinitions_411/*Red Skirt*/, //tr + Rarity = 5, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Pants, + icon = Res.ResourceLoader.GetTexture(87), + }; + new BaseItem(new Stat[][] + { + new [] {ALL}, + new [] {MAXIMUMLIFE, VITALITY,ARMOR}, + new [] {MELEEARMORPIERCING, RANGEDARMORPIERCING}, + new [] {ARMOR, ALLATTRIBUTES,VITALITY,LESSERVITALITY}, + new [] {EXTRACARRIEDSTICKS,EXTRACARRIEDROCKS,EXTRACARRIEDROPES}, + new [] {EXPLOSIONDAMAGE}, + new [] {EXPLOSIONDAMAGE}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_412/*Gunpowder Boxers*/, //tr + Rarity = 4, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Pants, + icon = Res.ResourceLoader.GetTexture(87), + }; + + new BaseItem(new Stat[][] + { + new [] {EXPLOSIONDAMAGE}, + new [] {EXPLOSIONDAMAGE}, + new [] {EXPLOSIONDAMAGE}, + new [] {EXPLOSIONDAMAGE}, + new [] {EXPLOSIONDAMAGE}, + new [] {EXPLOSIONDAMAGE}, + new [] {EXPLOSIONDAMAGE,NONE}, + new [] {EXPLOSIONDAMAGE,NONE}, + new [] {ARMOR}, + new [] {PERCENTMAXIMUMLIFE}, + + }) + { + name = Translations.ItemDataBase_ItemDefinitions_413/*Jihad Vest*/, //tr + Rarity = 5, + minLevel = 1, + maxLevel = 4, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.ChestArmor, + icon = Res.ResourceLoader.GetTexture(96), + }; + + new BaseItem(new Stat[][] + { + new [] {CRITICALHITCHANCE}, + new [] {MAGICFIND,NONE,EXPGAIN}, + new [] {RANGEDDAMAGEINCREASE,MELEEDAMAGEINCREASE}, + new [] {STRENGTH,AGILITY}, + new [] {ALL}, + new [] {CHANCEONHITTOBLEED}, + new [] {CHANCEONHITTOSLOW}, + new [] {CHANCEONHITTOWEAKEN}, + new [] {MAXENERGYFROMAGI,FIREDAMAGE,CRITICALHITDAMAGE,RANGEDDMGFROMAGI,MELEEDMGFROMSTR}, + + + }) + { + name = Translations.ItemDataBase_ItemDefinitions_414/*Ring of Fortune*/, //tr + Rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare + minLevel = 10, + maxLevel = 14, + CanConsume = false, + StackSize = 1, //stacking in inventory like in mc, one means single item + type = BaseItem.ItemType.Ring, + icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that + }; + new BaseItem(new Stat[][] + { + new [] {SPELLDAMAGEINCREASE}, + new [] {INTELLIGENCE}, + new [] {COOLDOWNREDUCTION}, + new [] {ALLATTRIBUTES, INTELLIGENCE,SPELLDAMAGEINCREASE}, + new [] {SPELLDMGFROMINT,MAXENERGYFROMAGI}, + new [] {BASESPELLDAMAGE}, + new [] {PERCENTMAXIMUMENERGY,ENERGYONHIT,ENERGYPERSECOND}, + new [] {FIREDAMAGE,SPELLCOSTREDUCTION,SPELLCOSTTOSTAMINA}, + + + }) + { + name = Translations.ItemDataBase_ItemDefinitions_415/*Mana Ring*/, //tr + Rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare + minLevel = 10, + maxLevel = 14, + CanConsume = false, + StackSize = 1, //stacking in inventory like in mc, one means single item + type = BaseItem.ItemType.Ring, + icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that + }; + new BaseItem(new Stat[][] + { + new [] {MELEEDMGFROMSTR,ALLATTRIBUTES,STAMINAPERSECOND,STAMINAREGENERATION,DODGECHANCE}, + new [] {STRENGTH,LESSERSTRENGTH,VITALITY,ARMOR}, + new [] {MELEEWEAPONRANGE,BASERANGEDDAMAGE,BASEMELEEDAMAGE}, + new [] {VITALITY}, + new [] {MAXHEALTHFROMVIT,MAXENERGYFROMAGI}, + new [] {LIFEPERSECOND}, + new [] {LIFEONHIT}, + new [] {ENERGYONHIT,ENERGYPERSECOND,INTELLIGENCE,AGILITY}, + new [] {MAXIMUMLIFE}, + new [] {PERCENTMAXIMUMLIFE,CRITICALHITCHANCE}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_416/*Life Ring*/, //tr + Rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare + minLevel = 10, + maxLevel = 14, + CanConsume = false, + StackSize = 1, //stacking in inventory like in mc, one means single item + type = BaseItem.ItemType.Ring, + icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that + }; + new BaseItem(new Stat[][] + { + new [] {STRENGTH}, + new [] {MOVEMENTSPEED,DODGECHANCE,DAMAGEREDUCTION}, + new [] {VITALITY,MAXHEALTHFROMVIT,MAXIMUMLIFE,PERCENTMAXIMUMLIFE,ARMOR}, + new [] {INTELLIGENCE,MAXENERGYFROMAGI,PERCENTMAXIMUMENERGY,MAXIMUMENERGY,BASEMELEEDAMAGE,MELEEDAMAGEINCREASE,ARMOR,DAMAGEREDUCTION}, + new [] {MELEEARMORPIERCING,MELEEDAMAGEINCREASE}, + new [] {ARMOR,ATTACKSPEED,STRENGTH}, + new [] {BASEMELEEDAMAGE}, + new [] {BASEMELEEDAMAGE,MELEEDAMAGEINCREASE}, + new [] {MELEEDAMAGEINCREASE,MELEEDMGFROMSTR}, + new [] {CRITICALHITCHANCE,MELEEWEAPONRANGE,ATTACKSPEED}, + new [] {CRITICALHITDAMAGE, MELEEDAMAGEINCREASE, STRENGTH}, + new [] {ENERGYONHIT,ENERGYPERSECOND,MAXIMUMLIFE}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_417/*Moritz's Gear*/, //tr + Rarity = 6, + minLevel = 5, + maxLevel = 6, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.ChestArmor, + icon = Res.ResourceLoader.GetTexture(96), + }; + new BaseItem(new Stat[][] + { + new [] {STRENGTH,BASEMELEEDAMAGE,MELEEDAMAGEINCREASE,ATTACKSPEED}, + new [] {MOVEMENTSPEED,DODGECHANCE,DAMAGEREDUCTION}, + new [] {VITALITY,MAXHEALTHFROMVIT,MAXIMUMLIFE,PERCENTMAXIMUMLIFE,MELEEARMORPIERCING}, + new [] {INTELLIGENCE,STRENGTH,CRITICALHITDAMAGE,PERCENTMAXIMUMENERGY,MAXIMUMENERGY}, + new [] {BASEMELEEDAMAGE}, + new [] {BASEMELEEDAMAGE,MELEEDAMAGEINCREASE}, + new [] {MELEEDAMAGEINCREASE,MELEEDMGFROMSTR}, + new [] {CRITICALHITCHANCE,MELEEWEAPONRANGE}, + new [] {CRITICALHITDAMAGE, MELEEDAMAGEINCREASE, STRENGTH}, + new [] {ENERGYONHIT,ENERGYPERSECOND,MAXIMUMLIFE}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_418/*Band of Hurting*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_419/*A ring for a warrior*/, //tr + Rarity = 6, + minLevel = 5, + maxLevel = 6, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Ring, + icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that + }; + + new BaseItem(new Stat[][] + { + new [] {AGILITY,RANGEDDAMAGEINCREASE}, + new [] {ALLATTRIBUTES, ARMOR,PERCENTMAXIMUMLIFE}, + new [] {CRITICALHITCHANCE}, + new [] {CRITICALHITDAMAGE,NONE}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_420/*Straw Hat*/, //tr + Rarity = 2, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Helmet, + icon = Res.ResourceLoader.GetTexture(91), + }; + new BaseItem(new Stat[][] + { + new [] {INTELLIGENCE}, + new [] {ALLATTRIBUTES, ARMOR,ENERGYONHIT}, + new [] {BASESPELLDAMAGE}, + new [] {FIREDAMAGE,SPELLDAMAGEINCREASE,SPELLCOSTREDUCTION}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_318/*Hood*/, //tr + Rarity = 2, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Helmet, + icon = Res.ResourceLoader.GetTexture(91), + }; + new BaseItem(new Stat[][] + { + new [] {SPEARDAMAGE}, + new [] {AGILITY}, + new [] {STAMINAPERSECOND}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_421/*Rusty Javelin*/, //tr + Rarity = 3, + minLevel = 10, + maxLevel = 16, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Weapon, + weaponModel = BaseItem.WeaponModelType.Polearm, + icon = Res.ResourceLoader.GetTexture(181), + }; + new BaseItem(new Stat[][] + { + new [] {INTELLIGENCE}, + new [] {DODGECHANCE,DAMAGEREDUCTION}, + new [] {VITALITY,MAXHEALTHFROMVIT,MAXIMUMLIFE,PERCENTMAXIMUMLIFE}, + new [] {SPELLDMGFROMINT}, + new [] {SPELLCOSTREDUCTION,COOLDOWNREDUCTION}, + new [] {SPELLCOSTREDUCTION,COOLDOWNREDUCTION}, + new [] {ENERGYPERSECOND,PERCENTMAXIMUMENERGY,MAXENERGYFROMAGI}, + new [] {BASESPELLDAMAGE,SPELLDAMAGEINCREASE,INTELLIGENCE}, + new [] {BASESPELLDAMAGE,SPELLDAMAGEINCREASE,INTELLIGENCE}, + new [] {BASESPELLDAMAGE,SPELLDAMAGEINCREASE,INTELLIGENCE}, + new [] {BASESPELLDAMAGE,SPELLDAMAGEINCREASE,INTELLIGENCE}, + new [] {ENERGYONHIT,ENERGYPERSECOND,MAXIMUMLIFE}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_422/*Star Robe*/, //tr + Rarity = 6, + minLevel = 5, + maxLevel = 6, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.ChestArmor, + icon = Res.ResourceLoader.GetTexture(96), + }; + new BaseItem(new Stat[][] + { + new [] {ATTACKSPEED}, + new [] {BASESPELLDAMAGE}, + new [] {DODGECHANCE,DAMAGEREDUCTION,MELEEWEAPONRANGE,ARMORPIERCING,FIREDAMAGE,CRITICALHITCHANCE}, + new [] {VITALITY,MAXHEALTHFROMVIT,MAXIMUMLIFE,PERCENTMAXIMUMLIFE,LIFEPERSECOND,LIFEONHIT}, + new [] {SPELLDMGFROMINT}, + new [] {SPELLCOSTREDUCTION,COOLDOWNREDUCTION,CRITICALHITCHANCE,CRITICALHITDAMAGE}, + new [] {SPELLCOSTREDUCTION,COOLDOWNREDUCTION,SPELLCOSTTOSTAMINA,PERCENTMAXIMUMENERGY,LIFEREGENERATION}, + new [] {ENERGYPERSECOND,PERCENTMAXIMUMENERGY,MAXENERGYFROMAGI}, + new [] {INTELLIGENCE,STAMINAPERSECOND,STAMINAREGENERATION}, + new [] {BASESPELLDAMAGE,SPELLDAMAGEINCREASE,INTELLIGENCE,BASEMELEEDAMAGE,ALLATTRIBUTES}, + new [] {BASESPELLDAMAGE,SPELLDAMAGEINCREASE,INTELLIGENCE,DAMAGEREDUCTION}, + new [] {ENERGYONHIT,ENERGYPERSECOND,MAXIMUMLIFE,MASSACREDURATION,MAGICFIND,EXPLOSIONDAMAGE}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_423/*Anger*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_424/*Downscaled version of Greatsword Rage, made to be wielded by flimsy wizards*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_425(15)/*Increases maximum stacks of frenzy by 10*/, //tr + Rarity = 7, + minLevel = 6, + maxLevel = 9, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Weapon, + weaponModel = BaseItem.WeaponModelType.LongSword, + icon = Res.ResourceLoader.GetTexture(88), + onEquip = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Add(15), + onUnequip = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Substract(15), + }.PossibleStats[0][0].Multipier = 1.5f; + + + new BaseItem(new Stat[][] + { + new[] { ARMOR }, + new[] { MOVEMENTSPEED}, + new[] { SPELLDMGFROMINT }, + new[] { SPELLCOSTREDUCTION,SPELLCOSTTOSTAMINA,ARMOR,ALLATTRIBUTES}, + new[] { BASESPELLDAMAGE, SPELLDAMAGEINCREASE, INTELLIGENCE, ALLATTRIBUTES }, + new[] { BASESPELLDAMAGE, SPELLDAMAGEINCREASE, INTELLIGENCE, DAMAGEREDUCTION }, + new[] { VITALITY, MAXHEALTHFROMVIT, MAXIMUMLIFE, PERCENTMAXIMUMLIFE, LIFEPERSECOND, LIFEONHIT }, + new[] { SPELLCOSTREDUCTION, COOLDOWNREDUCTION, CRITICALHITCHANCE, CRITICALHITDAMAGE, ARMOR,MAXHEALTHFROMVIT }, + new[] { SPELLCOSTREDUCTION, COOLDOWNREDUCTION, SPELLCOSTTOSTAMINA, PERCENTMAXIMUMENERGY, LIFEREGENERATION }, + new[] { ENERGYPERSECOND, PERCENTMAXIMUMENERGY, MAXENERGYFROMAGI }, + new[] { INTELLIGENCE, STAMINAPERSECOND, STAMINAREGENERATION, ALLATTRIBUTES, ALLHEALINGPERCENT }, + new[] { ENERGYONHIT, ENERGYPERSECOND, MAXIMUMLIFE, MASSACREDURATION, MAGICFIND, EXPLOSIONDAMAGE }, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_426/*Yuki-Onna Strides*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_433("50%", "300%")/*Set Piece:\n2 Pieces- Snow Storm pulls enemies towards you\n3 Pieces - Snow Storm radius, maximum damage, spell cost is doubled, but charge rate is slower\n4 Pieces - Snow storm hit frequency is increased by 50%*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_428/*Boots looted off a snow demon*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_429("50%")/*Increses snowstorm damage by 50%*/, //tr + Rarity = 7, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Boot, + icon = Res.ResourceLoader.GetTexture(85), + onEquip = () => AkagiSet.Equip(), + onUnequip = () => AkagiSet.Unequip(), + }; + + new BaseItem(new Stat[][] + { + new[] { INTELLIGENCE,NONE }, + new[] { ARMOR }, + new[] { ALLHEALINGPERCENT,DODGECHANCE,SPELLDAMAGEINCREASE,BASESPELLDAMAGE}, + new[] { SPELLDMGFROMINT,DAMAGEREDUCTION }, + new[] { SPELLCOSTREDUCTION,SPELLCOSTTOSTAMINA,ARMOR,ALLATTRIBUTES}, + new[] { ARMOR,DAMAGEREDUCTION ,RESISTANCETOMAGIC}, + new[] { INTELLIGENCE, MAXIMUMLIFE,LIFEPERSECOND,SPELLDAMAGEINCREASE,BASESPELLDAMAGE }, + new[] { VITALITY, MAXIMUMLIFE, PERCENTMAXIMUMLIFE, LIFEPERSECOND, LIFEONHIT }, + new[] { SPELLCOSTREDUCTION, COOLDOWNREDUCTION, CRITICALHITCHANCE, CRITICALHITDAMAGE, ARMOR }, + new[] { SPELLCOSTREDUCTION, COOLDOWNREDUCTION, SPELLCOSTTOSTAMINA, PERCENTMAXIMUMENERGY, LIFEREGENERATION,RESISTANCETOMAGIC }, + new[] { ENERGYPERSECOND, PERCENTMAXIMUMENERGY, MAXENERGYFROMAGI,MAXHEALTHFROMVIT }, + new[] { INTELLIGENCE, STAMINAPERSECOND, STAMINAREGENERATION, ALLATTRIBUTES, ALLHEALINGPERCENT }, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_430/*Yuki-Onna Greaves*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_433("50%", "300%")/*Set Piece:\n2 Pieces- Snow Storm pulls enemies towards you\n3 Pieces - Snow Storm radius, maximum damage, spell cost is doubled, but charge rate is slower\n4 Pieces - Snow storm hit frequency is increased by 50%*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_429("50%")/*Increses snowstorm damage by 50%*/, //tr + Rarity = 7, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Pants, + icon = Res.ResourceLoader.GetTexture(87), + onEquip = () => AkagiSet.Equip(), + onUnequip = () => AkagiSet.Unequip(), + }; + + new BaseItem(new Stat[][] + { + new[] { INTELLIGENCE,NONE }, + new[] { ARMOR }, + new[] { ALLHEALINGPERCENT,DODGECHANCE}, + new[] { SPELLDMGFROMINT,DAMAGEREDUCTION }, + new[] { SPELLCOSTREDUCTION,SPELLCOSTTOSTAMINA,ARMOR,ALLATTRIBUTES}, + new[] { ARMOR,DAMAGEREDUCTION ,RESISTANCETOMAGIC,SPELLDAMAGEINCREASE,BASESPELLDAMAGE}, + new[] { INTELLIGENCE, MAXIMUMLIFE,LIFEPERSECOND,SPELLDAMAGEINCREASE,BASESPELLDAMAGE }, + new[] { VITALITY, MAXIMUMLIFE, PERCENTMAXIMUMLIFE, LIFEPERSECOND, LIFEONHIT }, + new[] { SPELLCOSTREDUCTION, COOLDOWNREDUCTION, CRITICALHITCHANCE, CRITICALHITDAMAGE, ARMOR }, + new[] { SPELLCOSTREDUCTION, COOLDOWNREDUCTION, SPELLCOSTTOSTAMINA, PERCENTMAXIMUMENERGY, LIFEREGENERATION,RESISTANCETOMAGIC }, + new[] { ENERGYPERSECOND, PERCENTMAXIMUMENERGY, MAXENERGYFROMAGI,MAXHEALTHFROMVIT }, + new[] { INTELLIGENCE, STAMINAPERSECOND, STAMINAREGENERATION, ALLATTRIBUTES, ALLHEALINGPERCENT }, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_431/*Yuki-Onna Kimono*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_433("50%", "300%")/*Set Piece:\n2 Pieces- Snow Storm pulls enemies towards you\n3 Pieces - Snow Storm radius, maximum damage, spell cost is doubled, but charge rate is slower\n4 Pieces - Snow storm hit frequency is increased by 50%*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_429("50%")/*Increses snowstorm damage by 50%*/, //tr + Rarity = 7, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.ChestArmor, + icon = Res.ResourceLoader.GetTexture(96), + onEquip = () => AkagiSet.Equip(), + onUnequip = () => AkagiSet.Unequip(), + }; + + new BaseItem(new Stat[][] + { + new[] { INTELLIGENCE,NONE }, + new[] { ARMOR }, + new[] { CRITICALHITCHANCE,CRITICALHITDAMAGE}, + new[] { SPELLDMGFROMINT }, + new[] { SPELLCOSTREDUCTION,SPELLCOSTTOSTAMINA,ARMOR,ALLATTRIBUTES}, + new[] { ARMOR, SPELLDAMAGEINCREASE, BASESPELLDAMAGE, RESISTANCETOMAGIC}, + new[] { INTELLIGENCE, MAXIMUMLIFE,LIFEPERSECOND }, + new[] { SPELLDAMAGEINCREASE,BASESPELLDAMAGE, MAXIMUMLIFE, PERCENTMAXIMUMLIFE, LIFEPERSECOND, LIFEONHIT }, + new[] { SPELLCOSTREDUCTION, COOLDOWNREDUCTION, CRITICALHITCHANCE, CRITICALHITDAMAGE, ARMOR }, + new[] { SPELLCOSTREDUCTION, COOLDOWNREDUCTION, SPELLCOSTTOSTAMINA, PERCENTMAXIMUMENERGY, LIFEREGENERATION,RESISTANCETOMAGIC }, + new[] { ENERGYPERSECOND, PERCENTMAXIMUMENERGY, MAXENERGYFROMAGI,MAXHEALTHFROMVIT }, + new[] { INTELLIGENCE, STAMINAPERSECOND, STAMINAREGENERATION, ALLATTRIBUTES, ALLHEALINGPERCENT }, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_432/*Yuki-Onna's Headdress*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_433("50%", "300%")/*Set Piece:\n2 Pieces- Snow Storm pulls enemies towards you\n3 Pieces - Snow Storm radius, maximum damage, spell cost is doubled, but charge rate is slower\n4 Pieces - Snow storm hit frequency is increased by 50% and damage is increased by 300%*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_429("50%")/*Increses snowstorm damage by 50%*/, //tr + Rarity = 7, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Helmet, + icon = Res.ResourceLoader.GetTexture(91), + onEquip = () => AkagiSet.Equip(), + onUnequip = () => AkagiSet.Unequip(), + }; + + new BaseItem(new Stat[][] + { + new[] { INTELLIGENCE,NONE }, + new[] { ARMOR }, + new[] { CRITICALHITCHANCE,CRITICALHITDAMAGE}, + new[] { SPELLDMGFROMINT }, + new[] { SPELLCOSTREDUCTION,SPELLCOSTTOSTAMINA,ARMOR,ALLATTRIBUTES}, + new[] { ARMOR, SPELLDAMAGEINCREASE, BASESPELLDAMAGE, RESISTANCETOMAGIC}, + new[] { INTELLIGENCE, MAXIMUMLIFE,LIFEPERSECOND }, + new[] { SPELLDAMAGEINCREASE,BASESPELLDAMAGE, MAXIMUMLIFE, PERCENTMAXIMUMLIFE, LIFEPERSECOND, LIFEONHIT }, + new[] { SPELLCOSTREDUCTION, COOLDOWNREDUCTION, CRITICALHITCHANCE, CRITICALHITDAMAGE, ARMOR }, + new[] { SPELLCOSTREDUCTION, COOLDOWNREDUCTION, SPELLCOSTTOSTAMINA, PERCENTMAXIMUMENERGY, LIFEREGENERATION,RESISTANCETOMAGIC }, + new[] { ENERGYPERSECOND, PERCENTMAXIMUMENERGY, MAXENERGYFROMAGI,MAXHEALTHFROMVIT }, + new[] { INTELLIGENCE, STAMINAPERSECOND, STAMINAREGENERATION, ALLATTRIBUTES, ALLHEALINGPERCENT }, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_434/*Lama Mega's Blood Bag*/, //tr + description = "", //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_435("15 000%", 15)/*Melee hits cause enemies to bleed for 100% of your health as damage for 15 seconds*/, //tr + Rarity = 7, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Amulet, + icon = Res.ResourceLoader.GetTexture(100), + onEquip = () => COTFEvents.Instance.OnHitMelee.AddListener(UniqueItemFunctions.EnemyBleedForPlayerHP), + onUnequip = () => COTFEvents.Instance.OnHitMelee.RemoveListener(UniqueItemFunctions.EnemyBleedForPlayerHP), + }; + new BaseItem(new int[][] { }) + { + name = Translations.ItemDataBase_ItemDefinitions_436/*Socket Drill*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_437/*A convienient one use tool*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_438/*What's a drill doing here in a place full of primitive tribes?*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_439/*Adds one socket to an item, unless the item can't have any more sockets.*/, //tr + Rarity = 6, + minLevel = 1, + maxLevel = 2, + CanConsume = false, + StackSize = 100, + type = BaseItem.ItemType.Material, + icon = Res.ResourceLoader.GetTexture(190), + onConsume = x => + { + int socketMax = StatActions.GetMaxSocketAmountOnItem(in x.type); + int socketCurrent = x.Stats.Count(y => y.StatID >= 3000); + if (socketCurrent < socketMax) + { + x.Stats.Add(new ItemStat(ItemDataBase.StatByID(3000))); + return true; + } + return false; + } + }; + new BaseItem(new Stat[][] + { + new[] { MOVEMENTSPEED}, + new[] { INTELLIGENCE,STRENGTH,AGILITY }, + new[] { ALLATTRIBUTES,VITALITY }, + new[] { ARMOR }, + new[] { NONE,JUMPPOWER}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_440/*Moonwalkers*/, //tr + description = "", //tr + lore = Translations.ItemDataBase_ItemDefinitions_441/*Cha cha real smooth.*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_442/*Inverts movement*/, //tr + Rarity = 3, + minLevel = 16, + maxLevel = 18, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Boot, + icon = Res.ResourceLoader.GetTexture(85), + onEquip = () => ModdedPlayer.Stats.movementSpeed.Multiply(-1.2f), + onUnequip = () => ModdedPlayer.Stats.movementSpeed.Divide(-1.2f) + }.PossibleStats[0][0].Multipier = 3; + + new BaseItem(new Stat[][] + { + new[] { JUMPPOWER}, + new[] { LESSERAGILITY}, + new[] { LESSERARMOR}, + new[] { PROJECTILESIZE,PROJECTILESIZE,ALLATTRIBUTES,LIFEREGENERATION,LIFEPERSECOND,LESSERVITALITY,AGILITY}, + new[] { RANGEDARMORPIERCING,RANGEDDAMAGEINCREASE,BASERANGEDDAMAGE,ATTACKSPEED}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_443/*Rabbit Ears Hairband*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_444/*Cute*/, //tr + lore = "", //tr + Rarity = 3, + minLevel = 1, + maxLevel = 2, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Helmet, + icon = Res.ResourceLoader.GetTexture(91), + }; + new BaseItem(new Stat[][] + { + new[] { JUMPPOWER}, + new[] { AGILITY}, + new[] { ARMOR}, + new[] { PROJECTILESIZE,PROJECTILESIZE,ALLATTRIBUTES,LIFEREGENERATION,LIFEPERSECOND,VITALITY,INTELLIGENCE,AGILITY}, + new[] { RANGEDARMORPIERCING,RANGEDDAMAGEINCREASE,BASERANGEDDAMAGE,ATTACKSPEED}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_445/*Bunny Ears Hairband*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_444/*Cute*/, //tr + lore = "", //tr + Rarity = 4, + minLevel = 1, + maxLevel = 2, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Helmet, + icon = Res.ResourceLoader.GetTexture(91), + }; + new BaseItem(new int[][] + { + new int[] {11}, + new int[] {16}, + new int[] {3000}, + new int[] {3000}, + new int[] {3000}, + new int[] {3000}, + new int[] {3000}, + new int[] {3000}, + new int[] {3000}, + new int[] {3000}, + new int[] {3000}, + new int[] {3000}, + new int[] {3000}, + new int[] {3000}, + new int[] {3000}, + new int[] {3000}, + new int[] {3000}, + new int[] {3000}, + new int[] {3000}, + new int[] {3000}, + new int[] {3000}, + new int[] {3000}, + new int[] {3000}, + new int[] {3000,0}, + new int[] {3000,0}, + new int[] {3000,0}, + new int[] {3000,0}, + new int[] {3000,0}, + + }) + { + name = Translations.ItemDataBase_ItemDefinitions_446/*Iron plate full of holes*/, //tr + description = "", //tr + lore = Translations.ItemDataBase_ItemDefinitions_447/*The integrity of this item is questionable*/, //tr + Rarity = 3, + minLevel = 50, + maxLevel = 60, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.ChestArmor, + icon = Res.ResourceLoader.GetTexture(96), + }; + new BaseItem(new Stat[][] + { + new [] {ALL}, + new [] {BASESPELLDAMAGE,BASERANGEDDAMAGE,BASEMELEEDAMAGE}, + new [] {SPELLDMGFROMINT,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,DAMAGEREDUCTION}, + new [] {ALLATTRIBUTES,AGILITY,STRENGTH,INTELLIGENCE,VITALITY}, + + }) + { + name = Translations.ItemDataBase_ItemDefinitions_448/*Small Tribal Necklace*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_449(2)/*Increases maximum stacks of frenzy by 2*/, //tr + Rarity = 4, + minLevel = 6, + maxLevel = 9, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Amulet, + icon = Res.ResourceLoader.GetTexture(100), + onEquip = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Add(2), + onUnequip = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Substract(2), + }; + new BaseItem(new Stat[][] + { + new [] {ALL}, + new [] {ALL}, + new [] {BASESPELLDAMAGE,BASERANGEDDAMAGE,BASEMELEEDAMAGE}, + new [] {SPELLDMGFROMINT,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,DAMAGEREDUCTION}, + new [] {ALLATTRIBUTES,AGILITY,STRENGTH,INTELLIGENCE,VITALITY}, + + }) + { + name = Translations.ItemDataBase_ItemDefinitions_450/*Tribal Necklace*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_451(3)/*Increases maximum stacks of frenzy by 3*/, //tr + Rarity = 4, + minLevel = 6, + maxLevel = 9, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Amulet, + icon = Res.ResourceLoader.GetTexture(100), + onEquip = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Add(3), + onUnequip = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Substract(3), + }; + new BaseItem(new Stat[][] + { + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {BASESPELLDAMAGE,BASERANGEDDAMAGE,BASEMELEEDAMAGE}, + new [] {SPELLDMGFROMINT,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,DAMAGEREDUCTION}, + new [] {ALLATTRIBUTES,AGILITY,STRENGTH,INTELLIGENCE,VITALITY}, + + }) + { + name = Translations.ItemDataBase_ItemDefinitions_452/*Warlord Necklace*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_453(4)/*Increases maximum stacks of frenzy by 4*/, //tr + Rarity = 5, + minLevel = 6, + maxLevel = 9, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Amulet, + icon = Res.ResourceLoader.GetTexture(100), + onEquip = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Add(4), + onUnequip = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Substract(4), + }; + new BaseItem(new Stat[][] + { + new [] {ALL}, + new [] {ALL}, + new [] {MOVEMENTSPEED,COOLDOWNREDUCTION}, + new [] {JUMPPOWER,ATTACKSPEED,MOVEMENTSPEED,ENERGYPERSECOND}, + new [] {BASESPELLDAMAGE,BASERANGEDDAMAGE,BASEMELEEDAMAGE,CRITICALHITCHANCE,CRITICALHITDAMAGE}, + new [] {ALLATTRIBUTES,AGILITY,STRENGTH,INTELLIGENCE,VITALITY}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_454/*Travel Band*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_455(25)/*The distance of blink is increased by 20 feet*/, //tr + Rarity = 5, + minLevel = 5, + maxLevel = 9, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Ring, + icon = Res.ResourceLoader.GetTexture(90), + onEquip = () => { ModdedPlayer.Stats.spell_blinkRange.Add(25); }, + onUnequip = () => { ModdedPlayer.Stats.spell_blinkRange.Substract(25); }, + }; + + new BaseItem(new Stat[][] + { + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {COOLDOWNREDUCTION,NONE}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_456/*Destroyed Void Shard*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_457/*Only a fraction of its previous might remains*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_154/*A pedant of great power. Obtainable only from babies or crafting*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_458(1)/*Decrease the cooldown of one ability by 1 second whenever you hit something with melee or ranged attack.*/, //tr + Rarity = 6, + minLevel = 80, + maxLevel = 90, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Amulet, + icon = Res.ResourceLoader.GetTexture(101), + onEquip = () => ModdedPlayer.Stats.i_infinityLoop.value = true, + onUnequip = () => ModdedPlayer.Stats.i_infinityLoop.value = false, + }; + new BaseItem(new int[][] + { + new int[] {25 }, + new int[] {18 }, + new int[] {2004 }, + new int[] {1,3,62,63,64}, + new int[] {53,16}, + new int[] {25 ,22,1,12,13,5,6}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_459/*Famine Hammer*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_163/*It's slow but with enough strength i can make it a very deadly tool*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_460("30%")/*Chance to weaken enemies, causing them to take more damage from all attacks, is increased by 30%*/, //tr + Rarity = 4, + minLevel = 30, + maxLevel = 35, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Weapon, + weaponModel = BaseItem.WeaponModelType.Hammer, + icon = Res.ResourceLoader.GetTexture(109), + onEquip = () => ModdedPlayer.Stats.chanceToWeaken.Add(0.3f), + onUnequip = () => ModdedPlayer.Stats.chanceToWeaken.Substract(0.3f), + }; + + new BaseItem(new int[][] + { + new int[] {25 }, + new int[] {18 }, + new int[] {-1 }, + new int[] {2004 }, + new int[] {1,3,62,63,64}, + new int[] {53,16}, + new int[] {25 ,22,1,12,13,5,6}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_461/*Curse Hammer*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_462/*Omnious Weapon*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_463("45%")/*Chance to weaken enemies, causing them to take more damage from all attacks, is increased by 40%*/, //tr + Rarity = 5, + minLevel = 30, + maxLevel = 35, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Weapon, + weaponModel = BaseItem.WeaponModelType.Hammer, + icon = Res.ResourceLoader.GetTexture(109), + onEquip = () => ModdedPlayer.Stats.chanceToWeaken.Add(0.45f), + onUnequip = () => ModdedPlayer.Stats.chanceToWeaken.Substract(0.45f), + }; + new BaseItem(new Stat[][] + { + new [] {ALL}, + new [] {ALL}, + new [] {MELEEDAMAGEINCREASE,MELEEDMGFROMSTR}, + new [] {STRENGTH}, + new [] {BASEMELEEDAMAGE}, + new [] {ATTACKCOSTREDUCTION,ATTACKSPEED,LIFEONHIT,ENERGYONHIT,NONE,NONE,NONE}, + new [] {ALLATTRIBUTES,VITALITY,MELEEDAMAGEINCREASE,MELEEARMORPIERCING}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_464/*Smasher*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_163/*It's slow but with enough strength i can make it a very deadly tool*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_465/*Smash damage is increased tripled*/, //tr + Rarity = 5, + minLevel = 30, + maxLevel = 35, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Weapon, + weaponModel = BaseItem.WeaponModelType.Hammer, + icon = Res.ResourceLoader.GetTexture(109), + onEquip = () => { ModdedPlayer.Stats.smashDamage.Multiply(3f); }, + onUnequip = () => { ModdedPlayer.Stats.smashDamage.Divide(3f); }, + }; + new BaseItem(new Stat[][] + { + new [] {ALL}, + new [] {LIFEONHIT}, + new [] {ENERGYONHIT}, + new [] {STAMINAREGENERATION,PERCENTMAXIMUMENERGY,PERCENTMAXIMUMLIFE}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_466/*Vampiric Band*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_467(1)/*Gain 1 stamina on ranged and melee hit or double that amount on critical hits*/, //tr + Rarity = 3, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Ring, + icon = Res.ResourceLoader.GetTexture(90), + onEquip = () => COTFEvents.Instance.OnHitEnemy.AddListener(UniqueItemFunctions.Gain1EnergyOnHit), + onUnequip = () => COTFEvents.Instance.OnHitEnemy.RemoveListener(UniqueItemFunctions.Gain1EnergyOnHit), + }; + new BaseItem(new Stat[][] + { + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {LIFEONHIT}, + new [] {CRITICALHITCHANCE,CRITICALHITDAMAGE}, + new [] {MELEEDAMAGEINCREASE,RANGEDDAMAGEINCREASE,SPELLDAMAGEINCREASE}, + new [] {ENERGYONHIT}, + new [] {STAMINAREGENERATION,PERCENTMAXIMUMENERGY,PERCENTMAXIMUMLIFE}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_468/*Vampire Ring*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_469(10)/*Gain 10 stamina on ranged and melee hit or double that amount on critical hits*/, //tr + Rarity = 6, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Ring, + icon = Res.ResourceLoader.GetTexture(90), + onEquip = () => COTFEvents.Instance.OnHitEnemy.AddListener(UniqueItemFunctions.Gain10EnergyOnHit), + onUnequip = () => COTFEvents.Instance.OnHitEnemy.RemoveListener(UniqueItemFunctions.Gain10EnergyOnHit), + }; + new BaseItem(new Stat[][] + { + new [] {SPELLDAMAGEINCREASE,INTELLIGENCE,BASESPELLDAMAGE}, + new [] {SPELLDAMAGEINCREASE,INTELLIGENCE,BASESPELLDAMAGE}, + new [] {VITALITY,LIFEPERSECOND,LIFEREGENERATION,INTELLIGENCE,AGILITY,STRENGTH,ALLATTRIBUTES}, + new [] {COOLDOWNREDUCTION,SPELLCOSTREDUCTION,SPELLCOSTTOSTAMINA,INTELLIGENCE,DAMAGEREDUCTION}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_470/*Tricksters Scarf*/, //tr + description = "", //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_471(1)/*Magic arrow shoots 1 additional arrow.*/, //tr + Rarity = 4, + minLevel = 20, + maxLevel = 22, + CanConsume = false, + StackSize = 1, + onEquip = () => ModdedPlayer.Stats.spell_magicArrowVolleyCount.Add(1), + onUnequip = () => ModdedPlayer.Stats.spell_magicArrowVolleyCount.Substract(1), + type = BaseItem.ItemType.Amulet, + icon = Res.ResourceLoader.GetTexture(100) + }; + new BaseItem(new Stat[][] + { + new [] {SPELLDAMAGEINCREASE,INTELLIGENCE,BASESPELLDAMAGE}, + new [] {SPELLDAMAGEINCREASE,INTELLIGENCE,BASESPELLDAMAGE}, + new [] {VITALITY,LIFEPERSECOND,LIFEREGENERATION,INTELLIGENCE,AGILITY,STRENGTH,ALLATTRIBUTES}, + new [] {COOLDOWNREDUCTION,SPELLCOSTREDUCTION,SPELLCOSTTOSTAMINA,INTELLIGENCE,DAMAGEREDUCTION}, + new [] {INTELLIGENCE}, + new [] {ALL}, + + }) + { + name = Translations.ItemDataBase_ItemDefinitions_472/*Magus' Necktie*/, //tr + description = "", //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_473(2)/*Magic arrow shoots 2 additional arrows.*/, //tr + Rarity = 5, + minLevel = 50, + maxLevel = 52, + CanConsume = false, + StackSize = 1, + onEquip = () => ModdedPlayer.Stats.spell_magicArrowVolleyCount.Add(2), + onUnequip = () => ModdedPlayer.Stats.spell_magicArrowVolleyCount.Substract(2), + type = BaseItem.ItemType.Amulet, + icon = Res.ResourceLoader.GetTexture(100) + }; + new BaseItem(new int[][] + { + new int[] {23,26}, + new int[] {34,18,17,16,15,14,60,61,55,}, + new int[] {16,19,23,31,54,51,52,66,57}, + new int[] {2,3,4,5,6,7,8,9,10}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_474/*Discounted Knockoff Magic Quiver*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_475("15%")/*There's a 15% increased chance to not consume ammo when firing a projectile.*/, //tr + Rarity = 3, + minLevel = 2, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Quiver, + icon = Res.ResourceLoader.GetTexture(98), + onEquip = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Add(0.15f), + onUnequip = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Substract(0.15f), + }; + new BaseItem(new int[][] + { + new int[] {23,26}, + new int[] {34,18,17,16,15,14,60,61,55,}, + new int[] {16,19,23,31,54,51,52,66,57}, + new int[] {2,48,0,0}, + new int[] {2,3,4,5,6,7,8,9,10}, + new int[] {2,1,5,6,0}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_476/*Magic Quiver*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_477("20%")/*There's a 20% increased chance to not consume ammo when firing a projectile.*/, //tr + Rarity = 4, + minLevel = 2, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Quiver, + icon = Res.ResourceLoader.GetTexture(98), + onEquip = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Add(0.2f), + onUnequip = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Substract(0.2f), + }; + new BaseItem(new int[][] + { + new int[] {23,26}, + new int[] {23}, + new int[] {34,18,17,16,15,14,60,61,55,}, + new int[] {16,19,23,31,54,51,52,66,57}, + new int[] {2,48}, + new int[] {2,3,4,5,6,7,8,9,10}, + new int[] {2,1,5,6}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_478/*Improved Magic Quiver*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_479("25%")/*There's a 25% increased chance to not consume ammo when firing a projectile.*/, //tr + Rarity = 5, + minLevel = 2, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Quiver, + icon = Res.ResourceLoader.GetTexture(98), + onEquip = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Add(0.25f), + onUnequip = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Substract(0.25f), + }; + new BaseItem(new int[][] + { + new int[] {23,26}, + new int[] {23}, + new int[] {34,18,17,16,15,14,60,61,55,}, + new int[] {16,19,23,31,54,51,52,66,57}, + new int[] {2,16,14}, + new int[] {2,3,4,5,6,7,8,9,10}, + new int[] {48}, + new int[] {-1}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_480/*Factory Quiver*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_481("40%")/*There's a 40% increased chance to not consume ammo when firing a projectile.*/, //tr + Rarity = 6, + minLevel = 12, + maxLevel = 20, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Quiver, + icon = Res.ResourceLoader.GetTexture(98), + onEquip = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Add(0.4f), + onUnequip = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Substract(0.4f), + }; + + new BaseItem(new int[][] { }) + { + name = Translations.ItemDataBase_ItemDefinitions_482/*Enzyme STR/34*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_484/*Changes Vitality, Agility or Intelligence stat on an item to Strength or changes Ranged or Spell damage stat to Melee Damage*/, //tr + Rarity = 6, + minLevel = 1, + maxLevel = 2, + CanConsume = false, + StackSize = 100, + type = BaseItem.ItemType.Material, + icon = Res.ResourceLoader.GetTexture(193), + onConsume = x => + { + if (x.Equipped) + return false; + + var stats = x.Stats.Where(y => y.StatID == (int)VITALITY || y.StatID == (int)INTELLIGENCE || y.StatID == (int)AGILITY + || y.StatID == (int)LESSERVITALITY || y.StatID == (int)LESSERINTELLIGENCE || y.StatID == (int)LESSERAGILITY + || y.StatID == (int)BASERANGEDDAMAGE || y.StatID == (int)BASESPELLDAMAGE + || y.StatID == (int)RANGEDDAMAGEINCREASE || y.StatID == (int)SPELLDAMAGEINCREASE).ToArray(); + + int c = stats.Count(); + + + if (c == 0) + return false; + int i = UnityEngine.Random.Range(0, c); + ItemStat stat = stats[i]; + int index = x.Stats.IndexOf(stat); + + ItemStat newStat; + Stat statID = (Stat)stat.StatID; + switch (statID) + { + case VITALITY: + case INTELLIGENCE: + case AGILITY: + newStat = new ItemStat(StatByID((int)STRENGTH)); + break; + case LESSERVITALITY: + case LESSERINTELLIGENCE: + case LESSERAGILITY: + newStat = new ItemStat(StatByID((int)LESSERSTRENGTH)); + break; + case BASERANGEDDAMAGE: + case BASESPELLDAMAGE: + newStat = new ItemStat(StatByID((int)BASEMELEEDAMAGE)); + break; + case RANGEDDAMAGEINCREASE: + case SPELLDAMAGEINCREASE: + newStat = new ItemStat(StatByID((int)MELEEDAMAGEINCREASE)); + break; + default: + return false; + } + newStat.Amount = stat.Amount; + newStat.possibleStatsIndex = stat.possibleStatsIndex; + x.Stats[index] = newStat; + return true; + } + }; + new BaseItem(new int[][] { }) + { + name = Translations.ItemDataBase_ItemDefinitions_485/*Enzyme INT/33*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_486/*Changes Vitality, Agility or Strength stat on an item to Intelligence or changes Ranged or Melee damage stat to Spell Damage*/, //tr + Rarity = 6, + minLevel = 1, + maxLevel = 2, + CanConsume = false, + StackSize = 100, + type = BaseItem.ItemType.Material, + icon = Res.ResourceLoader.GetTexture(191), + onConsume = x => + { + if (x.Equipped) + return false; + + var stats = x.Stats.Where(y => y.StatID == (int)VITALITY || y.StatID == (int)STRENGTH || y.StatID == (int)AGILITY + || y.StatID == (int)LESSERVITALITY || y.StatID == (int)LESSERSTRENGTH || y.StatID == (int)LESSERAGILITY + || y.StatID == (int)BASERANGEDDAMAGE || y.StatID == (int)BASEMELEEDAMAGE + || y.StatID == (int)RANGEDDAMAGEINCREASE || y.StatID == (int)MELEEDAMAGEINCREASE).ToArray(); + + int c = stats.Count(); + + + if (c == 0) + return false; + int i = UnityEngine.Random.Range(0, c); + ItemStat stat = stats[i]; + int index = x.Stats.IndexOf(stat); + + ItemStat newStat; + Stat statID = (Stat)stat.StatID; + switch (statID) + { + case VITALITY: + case STRENGTH: + case AGILITY: + newStat = new ItemStat(StatByID((int)INTELLIGENCE)); + break; + case LESSERVITALITY: + case LESSERSTRENGTH: + case LESSERAGILITY: + newStat = new ItemStat(StatByID((int)LESSERINTELLIGENCE)); + break; + case BASERANGEDDAMAGE: + case BASEMELEEDAMAGE: + newStat = new ItemStat(StatByID((int)BASESPELLDAMAGE)); + break; + case RANGEDDAMAGEINCREASE: + case MELEEDAMAGEINCREASE: + newStat = new ItemStat(StatByID((int)SPELLDAMAGEINCREASE)); + break; + default: + return false; + } + newStat.Amount = stat.Amount; + newStat.possibleStatsIndex = stat.possibleStatsIndex; + x.Stats[index] = newStat; + return true; + } + }; + new BaseItem(new int[][] { }) + { + name = Translations.ItemDataBase_ItemDefinitions_487/*Enzyme AGI/39*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_488/*Changes Vitality, Intelligence or Strength stat on an item to Agility or changes Melee or Spell damage stat to Ranged Damage*/, //tr + Rarity = 6, + minLevel = 1, + maxLevel = 2, + CanConsume = false, + StackSize = 100, + type = BaseItem.ItemType.Material, + icon = Res.ResourceLoader.GetTexture(192), + onConsume = x => + { + if (x.Equipped) + return false; + + var stats = x.Stats.Where(y => y.StatID == (int)VITALITY || y.StatID == (int)STRENGTH || y.StatID == (int)INTELLIGENCE + || y.StatID == (int)LESSERVITALITY || y.StatID == (int)LESSERSTRENGTH || y.StatID == (int)LESSERINTELLIGENCE + || y.StatID == (int)BASESPELLDAMAGE || y.StatID == (int)BASEMELEEDAMAGE + || y.StatID == (int)SPELLDAMAGEINCREASE || y.StatID == (int)MELEEDAMAGEINCREASE).ToArray(); + + int c = stats.Count(); + + + if (c == 0) + return false; + int i = UnityEngine.Random.Range(0, c); + ItemStat stat = stats[i]; + int index = x.Stats.IndexOf(stat); + + ItemStat newStat; + Stat statID = (Stat)stat.StatID; + switch (statID) + { + case VITALITY: + case INTELLIGENCE: + case STRENGTH: + newStat = new ItemStat(StatByID((int)AGILITY)); + break; + case LESSERVITALITY: + case LESSERINTELLIGENCE: + case LESSERSTRENGTH: + newStat = new ItemStat(StatByID((int)LESSERAGILITY)); + break; + case BASEMELEEDAMAGE: + case BASESPELLDAMAGE: + newStat = new ItemStat(StatByID((int)BASERANGEDDAMAGE)); + break; + case MELEEDAMAGEINCREASE: + case SPELLDAMAGEINCREASE: + newStat = new ItemStat(StatByID((int)RANGEDDAMAGEINCREASE)); + break; + default: + return false; + } + newStat.Amount = stat.Amount; + newStat.possibleStatsIndex = stat.possibleStatsIndex; + x.Stats[index] = newStat; + return true; + } + }; + + new BaseItem(new int[][] { }) + { + name = Translations.ItemDataBase_ItemDefinitions_489/*Enzyme VIT/449*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_490/*Changes Agility, Intelligence or Strength stat on an item to Vitality*/, //tr + Rarity = 6, + minLevel = 1, + maxLevel = 2, + CanConsume = false, + StackSize = 100, + type = BaseItem.ItemType.Material, + icon = Res.ResourceLoader.GetTexture(199), + onConsume = x => + { + if (x.Equipped) + return false; + + var stats = x.Stats.Where(y => y.StatID == (int)VITALITY || y.StatID == (int)STRENGTH || y.StatID == (int)INTELLIGENCE + || y.StatID == (int)LESSERAGILITY || y.StatID == (int)LESSERSTRENGTH || y.StatID == (int)LESSERINTELLIGENCE).ToArray(); + + int c = stats.Count(); + + + if (c == 0) + return false; + int i = UnityEngine.Random.Range(0, c); + ItemStat stat = stats[i]; + int index = x.Stats.IndexOf(stat); + + ItemStat newStat; + Stat statID = (Stat)stat.StatID; + switch (statID) + { + case AGILITY: + case INTELLIGENCE: + case STRENGTH: + newStat = new ItemStat(StatByID((int)VITALITY)); + break; + case LESSERAGILITY: + case LESSERINTELLIGENCE: + case LESSERSTRENGTH: + newStat = new ItemStat(StatByID((int)LESSERVITALITY)); + break; + default: + return false; + } + newStat.Amount = stat.Amount; + newStat.possibleStatsIndex = stat.possibleStatsIndex; + x.Stats[index] = newStat; + return true; + } + }; + new BaseItem(new int[][] { }) + { + name = Translations.ItemDataBase_ItemDefinitions_491/*Stomach Acid*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_492/*Removes all stats with negative values from an item*/, //tr + Rarity = 4, + minLevel = 1, + maxLevel = 2, + CanConsume = false, + StackSize = 100, + type = BaseItem.ItemType.Material, + icon = Res.ResourceLoader.GetTexture(198), + onConsume = x => + { + if (x.Equipped) + return false; + + var stats = x.Stats.RemoveAll(y => y.Amount < 0); + if (stats > 0) + return true; + return false; + } + }; + new BaseItem(new int[][] { }) + { + name = Translations.ItemDataBase_ItemDefinitions_493/*Elite Stomach Acid*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_494/*Changes negative stat values into positive values on an item*/, //tr + Rarity = 6, + minLevel = 1, + maxLevel = 2, + CanConsume = false, + StackSize = 100, + type = BaseItem.ItemType.Material, + icon = Res.ResourceLoader.GetTexture(198), + onConsume = x => + { + if (x.Equipped) + return false; + + var stats = x.Stats.Where(y => y.Amount < 0).ToList(); + if (stats.Count > 0) + { + for (int i = 0; i < stats.Count; i++) + { + stats[i].Amount *= -1; + } + return true; + } + return false; + } + }; + new BaseItem(new int[][] { }) + { + name = Translations.ItemDataBase_ItemDefinitions_495/*Crimson Solution*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_496/*Upgrades item of any rarity to one of the same type but of Legendary rarity*/, //tr + Rarity = 7, + minLevel = 1, + maxLevel = 2, + CanConsume = false, + StackSize = 100, + type = BaseItem.ItemType.Material, + icon = Res.ResourceLoader.GetTexture(196), + onConsume = x => + { + if (x.Equipped) + return false; + var itemType = x.type; + if (itemType == BaseItem.ItemType.Other || itemType == BaseItem.ItemType.Material || x.Amount > 1) + return false; + if (Player.Inventory.Instance.ItemSlots.ContainsValue(x)) + { + for (int slotIndex = 0; slotIndex < Inventory.SlotCount; slotIndex++) + { + if (Player.Inventory.Instance.ItemSlots[slotIndex] == x) + { + var options = ItemDataBase.ItemBases.Where(y => y.Value.Rarity == 7 && y.Value.type == itemType && (itemType != BaseItem.ItemType.Weapon || y.Value.weaponModel == x.weaponModel)).Select(y => y.Key).ToList(); + if (options.Count == 0) + { + ModAPI.Log.Write("No tier 7 items for type: " + itemType); + return false; + } + var random = options[UnityEngine.Random.Range(0, options.Count)]; + Item item = new Item(ItemDataBase.ItemBases[random], 1, 0, false) + { + level = x.level + }; + item.RollStats(); + Inventory.Instance.ItemSlots[slotIndex] = item; + return true; + } + } + } + return false; + } + }; + + new BaseItem(new int[][] { }) + { + name = Translations.ItemDataBase_ItemDefinitions_497/*Weak Armor Hardening Mixture*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_498/*Adds Armor Stat to a piece of equipment if the item does not already have it*/, //tr + Rarity = 4, + minLevel = 1, + maxLevel = 2, + CanConsume = false, + StackSize = 100, + type = BaseItem.ItemType.Material, + icon = Res.ResourceLoader.GetTexture(197), + onConsume = x => + { + if (x.Equipped) + return false; + var itemType = x.type; + if (itemType == BaseItem.ItemType.Other || itemType == BaseItem.ItemType.Material || x.Amount > 1) + return false; + if (!x.Stats.Any(y => y.StatID == (int)ARMOR || y.StatID == (int)LESSERARMOR)) + { + ItemStat stat = new ItemStat(StatByID((int)ARMOR), x.level); + x.Stats.Add(stat); + return true; + } + return false; + } + }; + + new BaseItem(new int[][] { }) + { + name = Translations.ItemDataBase_ItemDefinitions_499/*Upgraded Armor Hardening Mixture*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_500/*Adds Damage Reduction Stat to a piece of equipment if the item does not already have it*/, //tr + Rarity = 5, + minLevel = 1, + maxLevel = 2, + CanConsume = false, + StackSize = 100, + type = BaseItem.ItemType.Material, + icon = Res.ResourceLoader.GetTexture(197), + onConsume = x => + { + if (x.Equipped) + return false; + var itemType = x.type; + if (itemType == BaseItem.ItemType.Other || itemType == BaseItem.ItemType.Material || x.Amount > 1) + return false; + if (!x.Stats.Any(y => y.StatID == (int)DAMAGEREDUCTION)) + { + ItemStat stat = new ItemStat(StatByID((int)DAMAGEREDUCTION), x.level); + x.Stats.Add(stat); + return true; + } + return false; + } + }; + + new BaseItem(new int[][] { }) + { + name = Translations.ItemDataBase_ItemDefinitions_501/*Chaos Water*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_502/*Rerolls all stats on an item of rarity no higher than orange*/, //tr + Rarity = 4, + minLevel = 1, + maxLevel = 2, + CanConsume = false, + StackSize = 100, + type = BaseItem.ItemType.Material, + icon = Res.ResourceLoader.GetTexture(195), + onConsume = x => + { + if (x.Equipped) + return false; + var itemType = x.type; + if (itemType == BaseItem.ItemType.Other || itemType == BaseItem.ItemType.Material || x.Amount > 1 || x.Rarity > 5) + return false; + if (x.Stats.Count > 1) + { + x.RollStats(); + return true; + } + return false; + } + }; + new BaseItem(new int[][] { }) + { + name = Translations.ItemDataBase_ItemDefinitions_503/*Upgraded Chaos Water*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_504/*Rerolls all stats on an item of any rarity*/, //tr + Rarity = 6, + minLevel = 1, + maxLevel = 2, + CanConsume = false, + StackSize = 100, + type = BaseItem.ItemType.Material, + icon = Res.ResourceLoader.GetTexture(194), + onConsume = x => + { + if (x.Equipped) + return false; + var itemType = x.type; + if (itemType == BaseItem.ItemType.Other || itemType == BaseItem.ItemType.Material || x.Amount > 1) + return false; + if (x.Stats.Count > 1) + { + x.RollStats(); + return true; + } + return false; + } + }; + new BaseItem(new Stat[][] + { + new [] {SPELLCOSTREDUCTION,MELEEDAMAGEINCREASE,SPELLDAMAGEINCREASE,COOLDOWNREDUCTION,DAMAGEREDUCTION, RANGEDDMGFROMAGI, ATTACKSPEED}, + new [] {AGILITY,LESSERAGILITY}, + new [] {MELEEARMORPIERCING,RANGEDARMORPIERCING,ARMORPIERCING,ARMOR}, + new [] {RANGEDDAMAGEINCREASE,RANGEDDMGFROMAGI,BASERANGEDDAMAGE,CRITICALHITCHANCE,CRITICALHITDAMAGE,ALLATTRIBUTES}, + new [] {INTELLIGENCE,STRENGTH,AGILITY,VITALITY,ALLATTRIBUTES,MAXIMUMLIFE,MAXIMUMENERGY}, + new [] {INTELLIGENCE,STRENGTH,AGILITY,VITALITY,ALLATTRIBUTES,LIFEONHIT,ENERGYONHIT,ENERGYPERSECOND,ALLHEALINGPERCENT}, + new [] {RANGEDDAMAGEINCREASE,BASERANGEDDAMAGE,AGILITY}, + new [] {ALL}, + new [] {ALL}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_505/*Gun Blade*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_506("150%")/*Increases pistol damage by 150%*/, //tr + Rarity = 6, + minLevel = 35, + maxLevel = 36, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Weapon, + weaponModel = BaseItem.WeaponModelType.Axe, + icon = Res.ResourceLoader.GetTexture(138), + onEquip = () => ModdedPlayer.Stats.perk_bulletDamageMult.Multiply(2.5f), + onUnequip = () => ModdedPlayer.Stats.perk_bulletDamageMult.Divide(2.5f), + }.PossibleStats[0][0].Multipier = -1f; + + new BaseItem(new Stat[][] + { + new [] {SPELLCOSTREDUCTION,BASESPELLDAMAGE,SPELLDAMAGEINCREASE,COOLDOWNREDUCTION,DAMAGEREDUCTION}, + new [] {ATTACKSPEED,PROJECTILESIZE,PROJECTILESPEED}, + new [] {AGILITY,LESSERAGILITY}, + new [] {HEADSHOTDAMAGE}, + new [] {MELEEARMORPIERCING,RANGEDARMORPIERCING,ARMORPIERCING,ARMOR,RESISTANCETOMAGIC,MAGICFIND}, + new [] {RANGEDDAMAGEINCREASE,RANGEDDMGFROMAGI,BASERANGEDDAMAGE,CRITICALHITCHANCE,CRITICALHITDAMAGE,ALLATTRIBUTES,MAXENERGYFROMAGI}, + new [] {RANGEDDAMAGEINCREASE,BASERANGEDDAMAGE,AGILITY,VITALITY,INTELLIGENCE,CRITICALHITCHANCE,CRITICALHITDAMAGE}, + new [] {RANGEDDAMAGEINCREASE,BASERANGEDDAMAGE,AGILITY,VITALITY,INTELLIGENCE,HEADSHOTDAMAGE}, + new [] {INTELLIGENCE,STRENGTH,AGILITY,VITALITY,ALLATTRIBUTES,MAXIMUMLIFE,MAXIMUMENERGY}, + new [] {INTELLIGENCE,STRENGTH,AGILITY,VITALITY,ALLATTRIBUTES,LIFEONHIT,ENERGYONHIT,ENERGYPERSECOND,ALLHEALINGPERCENT}, + new [] {ALL}, + new [] {ALL}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_507/*Sharpshooter's Axe*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_508("50%", "600%")/*Increases pistol headshot chance by 50% and pistol damage by 600%*/, //tr + Rarity = 7, + minLevel = 35, + maxLevel = 36, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Weapon, + weaponModel = BaseItem.WeaponModelType.Axe, + icon = Res.ResourceLoader.GetTexture(138), + onEquip = () => { ModdedPlayer.Stats.perk_bulletDamageMult.Multiply(6f); ModdedPlayer.Stats.perk_bulletCritChance.Add(0.5f); }, + onUnequip = () => { ModdedPlayer.Stats.perk_bulletDamageMult.Divide(6f); ModdedPlayer.Stats.perk_bulletCritChance.Substract(0.5f); }, + }; + new BaseItem(new Stat[][] + { + new [] {ARMORPIERCING,MELEEARMORPIERCING,NONE}, + new [] {BLOCK,NONE}, + new [] {ARMOR,MAXIMUMLIFE,MAXHEALTHFROMVIT,DAMAGEREDUCTION,RESISTANCETOMAGIC,DODGECHANCE}, + new [] {ARMOR,MAXIMUMLIFE,MAXHEALTHFROMVIT,DAMAGEREDUCTION,VITALITY,STRENGTH,ALLATTRIBUTES}, + new [] {ARMOR,MAXIMUMLIFE,MAXHEALTHFROMVIT,DAMAGEREDUCTION,VITALITY,STRENGTH,ALLATTRIBUTES,THORNS}, + new [] {THORNS,MELEEDAMAGEINCREASE,VITALITY,STRENGTH}, + new [] {STRENGTH,ARMOR,MELEEARMORPIERCING}, + new [] {MELEEDAMAGEINCREASE,MELEEDMGFROMSTR,BASEMELEEDAMAGE}, + new [] {MELEEDAMAGEINCREASE,ATTACKSPEED,BASEMELEEDAMAGE,MELEEWEAPONRANGE}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_509/*Shield Blade*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_510/*So large can be used as a shield*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_511/*A normal human cannot lift this weapon.*/, //tr + Rarity = 6, + minLevel = 50, + maxLevel = 52, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Weapon, + weaponModel = BaseItem.WeaponModelType.GreatSword, + icon = Res.ResourceLoader.GetTexture(88), + }; + new BaseItem(new Stat[][] + { + new [] {ARMORPIERCING,MELEEARMORPIERCING}, + new [] {BLOCK,NONE}, + new [] {ARMOR,MAXIMUMLIFE,MAXHEALTHFROMVIT,DAMAGEREDUCTION,RESISTANCETOMAGIC,DODGECHANCE}, + new [] {ARMOR,MAXIMUMLIFE,MAXHEALTHFROMVIT,DAMAGEREDUCTION,VITALITY,STRENGTH,ALLATTRIBUTES}, + new [] {ARMOR,MAXIMUMLIFE,MAXHEALTHFROMVIT,DAMAGEREDUCTION,VITALITY,STRENGTH,ALLATTRIBUTES,THORNS}, + new [] {THORNS,MELEEDAMAGEINCREASE,VITALITY,STRENGTH}, + new [] {STRENGTH,ARMOR,MELEEARMORPIERCING}, + new [] {MELEEDAMAGEINCREASE,MELEEDMGFROMSTR,BASEMELEEDAMAGE}, + new [] {MELEEDAMAGEINCREASE,ATTACKSPEED,BASEMELEEDAMAGE,MELEEWEAPONRANGE}, + new [] {ALL}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_512/*Blunt Blade for Bashing Skulls*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_510/*So large can be used as a shield*/, //tr + lore = Translations.ItemDataBase_ItemDefinitions_511/*A normal human cannot lift this weapon.*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_513("200%")/*Bash damage debuff on enemies is increased by 200%*/, //tr + Rarity = 7, + minLevel = 50, + maxLevel = 52, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Weapon, + weaponModel = BaseItem.WeaponModelType.GreatSword, + icon = Res.ResourceLoader.GetTexture(88), + onEquip = () => ModdedPlayer.Stats.spell_bashDamageDebuffAmount.Add(2.00f), + onUnequip = () => ModdedPlayer.Stats.spell_bashDamageDebuffAmount.Substract(2.00f), + }; + + new BaseItem(new Stat[][] + { + new[] { ARMORPIERCING, MELEEARMORPIERCING }, + new[] { BLOCK,STRENGTH}, + new[] { ARMOR, MAXIMUMLIFE, MAXHEALTHFROMVIT, DAMAGEREDUCTION, RESISTANCETOMAGIC, DODGECHANCE }, + new[] { ARMOR, MAXIMUMLIFE , DAMAGEREDUCTION, VITALITY, STRENGTH, ALLATTRIBUTES }, + new[] { ARMOR, MAXIMUMLIFE, DAMAGEREDUCTION, VITALITY, STRENGTH, ALLATTRIBUTES, THORNS }, + new[] { THORNS, MELEEDAMAGEINCREASE, VITALITY, STRENGTH }, + new[] { STRENGTH, ARMOR, MELEEARMORPIERCING }, + new[] { MELEEDAMAGEINCREASE, MELEEDMGFROMSTR, BASEMELEEDAMAGE }, + new[] { MELEEDAMAGEINCREASE, ATTACKSPEED, BASEMELEEDAMAGE, MELEEWEAPONRANGE }, + new[] { ALL }, + new[] { ALL }, + new[] { ALL }, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_514/*Madman's Legacy*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_515("69%")/*Frenzy damage per stack is increased by 50%*/, //tr + Rarity = 7, + minLevel = 1, + maxLevel = 2, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Shield, + icon = Res.ResourceLoader.GetTexture(99), + onEquip = () => ModdedPlayer.Stats.spell_frenzyDmg.Add(0.69f), + onUnequip = () => ModdedPlayer.Stats.spell_frenzyDmg.Add(0.69f), + }; + new BaseItem(new Stat[][] + { + new[] { ARMOR,BASEMELEEDAMAGE }, + new[] { BLOCK}, + new[] { ARMOR, MAXIMUMLIFE,MAXIMUMENERGY,STAMINAREGENERATION, DAMAGEREDUCTION, RESISTANCETOMAGIC, DODGECHANCE }, + new[] { ARMOR, MAXIMUMLIFE, MAXIMUMENERGY, DAMAGEREDUCTION, VITALITY, STRENGTH, ALLATTRIBUTES,CHANCEONHITTOBLEED,CHANCEONHITTOSLOW,CHANCEONHITTOWEAKEN }, + new[] { ARMOR, MAXIMUMLIFE, MAXHEALTHFROMVIT, DAMAGEREDUCTION, VITALITY, STRENGTH, ALLATTRIBUTES, THORNS }, + new[] { THORNS, MELEEDAMAGEINCREASE, VITALITY, STRENGTH }, + new[] { MELEEDAMAGEINCREASE, ATTACKSPEED, BASEMELEEDAMAGE, MELEEWEAPONRANGE,PERCENTMAXIMUMLIFE,PERCENTMAXIMUMENERGY,ALLHEALINGPERCENT }, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_516/*Buckler*/, //tr + Rarity = 5, + minLevel = 1, + maxLevel = 2, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Shield, + icon = Res.ResourceLoader.GetTexture(99), + }; + new BaseItem(new Stat[][] + { + new [] {FIREDAMAGE}, + new [] {MAXIMUMENERGY,MAXIMUMLIFE,PERCENTMAXIMUMENERGY,PERCENTMAXIMUMLIFE}, + new [] {STRENGTH,INTELLIGENCE,AGILITY,SPELLCOSTREDUCTION}, + new [] {SPELLDAMAGEINCREASE,BASESPELLDAMAGE, INTELLIGENCE ,ALLATTRIBUTES}, + new [] {SPELLDAMAGEINCREASE,BASESPELLDAMAGE, INTELLIGENCE ,ALLATTRIBUTES}, + new [] {ARMOR,DAMAGEREDUCTION}, + new [] {RESISTANCETOMAGIC,MAGICFIND,MOVEMENTSPEED,ARMOR}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_517/*Pyromancy Mask*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_518("200%")/*Ignited enemies burn for 200% extended perioid of time.*/, //tr + Rarity = 5, + minLevel = 2, + maxLevel = 6, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Helmet, + icon = Res.ResourceLoader.GetTexture(91), + onEquip = () => ModdedPlayer.Stats.fireDuration.Add(2f), + onUnequip = () => ModdedPlayer.Stats.fireDuration.Substract(2f), + }.PossibleStats[0][0].Multipier = 2; + + new BaseItem(new Stat[][] + { + new [] {FIREDAMAGE}, + new [] {SPELLDMGFROMINT,MELEEDMGFROMSTR,RANGEDDMGFROMAGI}, + new [] {MAXENERGYFROMAGI,MAXHEALTHFROMVIT}, + new [] {MAXIMUMENERGY,MAXIMUMLIFE,PERCENTMAXIMUMENERGY,PERCENTMAXIMUMLIFE}, + new [] {STRENGTH,INTELLIGENCE,AGILITY,SPELLCOSTREDUCTION}, + new [] {SPELLDAMAGEINCREASE,BASESPELLDAMAGE, INTELLIGENCE ,ALLATTRIBUTES}, + new [] {SPELLDAMAGEINCREASE,BASESPELLDAMAGE, INTELLIGENCE ,ALLATTRIBUTES}, + new [] {ALL}, + new [] {ALL}, + new [] {ARMOR,DAMAGEREDUCTION}, + new [] {RESISTANCETOMAGIC,MAGICFIND,MOVEMENTSPEED,ARMOR}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_519/*Ember Mask*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_520("700%")/*Ignited enemies burn for 300% extended perioid of time and fire ticks thrice as fast.*/, //tr + Rarity = 7, + minLevel = 2, + maxLevel = 6, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Helmet, + icon = Res.ResourceLoader.GetTexture(91), + onEquip = () => { ModdedPlayer.Stats.fireDuration.Add(7f); ModdedPlayer.Stats.fireTickRate.Add(3f); }, + onUnequip = () => { ModdedPlayer.Stats.fireDuration.Substract(7f); ModdedPlayer.Stats.fireTickRate.Substract(3f); }, + }.PossibleStats[0][0].Multipier = 5; + + + new BaseItem(new Stat[][] + { + new [] {FIREDAMAGE}, + new [] {ARMOR,DODGECHANCE}, + new [] {MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT,MELEEDMGFROMSTR,RANGEDDMGFROMAGI}, + new [] {MAXIMUMENERGY,MAXIMUMLIFE,PERCENTMAXIMUMENERGY,PERCENTMAXIMUMLIFE}, + new [] {STRENGTH,INTELLIGENCE,AGILITY,SPELLCOSTREDUCTION,PROJECTILESPEED,PROJECTILESIZE}, + new [] {SPELLDAMAGEINCREASE,BASESPELLDAMAGE, INTELLIGENCE ,ALLATTRIBUTES}, + new [] {SPELLDAMAGEINCREASE,BASESPELLDAMAGE, INTELLIGENCE ,ALLATTRIBUTES}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ARMOR,DAMAGEREDUCTION}, + new [] {RESISTANCETOMAGIC,MAGICFIND,MOVEMENTSPEED,ARMOR}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_521/*Flame Pauldrons*/, //tr + description = "", //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_522(10, "750%")/*Firebolt costs 30 additional energy to cast and its damage scaling is increased by 250%*/, //tr + Rarity = 7, + minLevel = 5, + maxLevel = 8, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.ShoulderArmor, + icon = Res.ResourceLoader.GetTexture(95), + onEquip = () => + { + ModdedPlayer.Stats.spell_fireboltEnergyCost.Add(5); + ModdedPlayer.Stats.spell_fireboltDamageScaling.Add(7.5f); + }, + onUnequip = () => + { + ModdedPlayer.Stats.spell_fireboltEnergyCost.Substract(5); + ModdedPlayer.Stats.spell_fireboltDamageScaling.Substract(7.5f); + }, + }; + new BaseItem(new Stat[][] + { + new [] {SPELLDMGFROMINT}, + new [] {MAXENERGYFROMAGI,MAXHEALTHFROMVIT}, + new [] {MAXIMUMENERGY,MAXIMUMLIFE,PERCENTMAXIMUMENERGY,PERCENTMAXIMUMLIFE}, + new [] {STRENGTH,INTELLIGENCE,AGILITY,SPELLCOSTREDUCTION,COOLDOWNREDUCTION,SPELLCOSTTOSTAMINA}, + new [] {SPELLDAMAGEINCREASE,BASESPELLDAMAGE, INTELLIGENCE ,ALLATTRIBUTES}, + new [] {SPELLDAMAGEINCREASE,BASESPELLDAMAGE, INTELLIGENCE ,ALLATTRIBUTES}, + new [] {ALL}, + new [] {ALL}, + new [] {RESISTANCETOMAGIC,ENERGYONHIT,ENERGYPERSECOND,STAMINAREGENERATION,STAMINAPERSECOND}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_523/*Ancient Scroll*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_607/*Firebolt deals increased damage*/, //tr + Rarity = 6, + minLevel = 1, + maxLevel = 1, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.SpellScroll, + icon = Res.ResourceLoader.GetTexture(110), + onEquip = () => ModdedPlayer.Stats.spell_fireboltDamageScaling.Add(8), + onUnequip = () => ModdedPlayer.Stats.spell_fireboltDamageScaling.Substract(8), + }; + new BaseItem(new Stat[][] + { + new [] {SPELLDMGFROMINT}, + new [] {MAXENERGYFROMAGI,MAXHEALTHFROMVIT}, + new [] {MAXIMUMENERGY,MAXIMUMLIFE,PERCENTMAXIMUMENERGY,PERCENTMAXIMUMLIFE}, + new [] {STRENGTH,INTELLIGENCE,AGILITY,SPELLCOSTREDUCTION,COOLDOWNREDUCTION,SPELLCOSTTOSTAMINA}, + new [] {SPELLDAMAGEINCREASE,BASESPELLDAMAGE, INTELLIGENCE ,ALLATTRIBUTES}, + new [] {SPELLDAMAGEINCREASE,BASESPELLDAMAGE, INTELLIGENCE ,ALLATTRIBUTES}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {RESISTANCETOMAGIC,ENERGYONHIT,ENERGYPERSECOND,STAMINAREGENERATION,STAMINAPERSECOND}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_524/*Guide on Tearing Spacetime*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_525/*Blink creates an explosion at the exit point, and the damage of the explosion is increased by velocity and the radius is increased by the distance of blink*/, //tr + Rarity = 7, + minLevel = 1, + maxLevel = 1, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.SpellScroll, + icon = Res.ResourceLoader.GetTexture(110), + onEquip = () => ModdedPlayer.Stats.spell_blinkDoExplosion.value = true, + onUnequip = () => ModdedPlayer.Stats.spell_blinkDoExplosion.value = false, + }; + new BaseItem(new Stat[][] + { + new [] {STRENGTH}, + new [] {MELEEDAMAGEINCREASE}, + new [] {ATTACKSPEED}, + new [] {MELEEDMGFROMSTR}, + new [] {BLOCK,ARMOR,DAMAGEREDUCTION}, + new [] {BASEMELEEDAMAGE,NONE}, + new [] {BASEMELEEDAMAGE,MELEEDAMAGEINCREASE,STRENGTH}, + new [] {MELEEARMORPIERCING,ARMORPIERCING,ALLATTRIBUTES}, + new [] {ATTACKCOSTREDUCTION,ATTACKSPEED}, + new [] {ALLATTRIBUTES,MELEEWEAPONRANGE,VITALITY,MAXIMUMLIFE}, + new [] {ENERGYONHIT,VITALITY,LIFEONHIT } + }) + { + name = Translations.ItemDataBase_ItemDefinitions_526/*300th Spear*/, //tr + Rarity = 6, + minLevel = 30, + maxLevel = 34, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Weapon, + weaponModel = BaseItem.WeaponModelType.Polearm, + icon = Res.ResourceLoader.GetTexture(181), + }.PossibleStats[0][0].Multipier = 6; + + + + new BaseItem(new Stat[][] + { + new [] {MOVEMENTSPEED,ATTACKSPEED}, + new [] {ALL,EXPGAIN,MAGICFIND}, + new [] {ALL}, + new [] {ALL,NONE}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_527/*Stone Pauldrons*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr + onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.03f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.03f), + Rarity = 2, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.ShoulderArmor, + icon = Res.ResourceLoader.GetTexture(95), + }.PossibleStats[0][0].Multipier = -0.3f; + new BaseItem(new Stat[][] + { + new [] {ALL,EXPGAIN,MAGICFIND}, + new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {ALL,NONE}, + new [] {ALL}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_529/*Iron Shoulder Pads*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr + onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.04f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.04f), + Rarity = 3, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.ShoulderArmor, + icon = Res.ResourceLoader.GetTexture(95), + }; + new BaseItem(new Stat[][] + { + new [] {ALL,EXPGAIN,MAGICFIND}, + new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {ALL,NONE}, + new [] {ALL}, + new [] {ALL}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_531/*Steel Shoulder Pads*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr + onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.05f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.05f), + Rarity = 4, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.ShoulderArmor, + icon = Res.ResourceLoader.GetTexture(95), + }; + new BaseItem(new Stat[][] + { + new [] {ALL,EXPGAIN,MAGICFIND}, + new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {ALL,NONE}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_533/*Battle scarred Shoulder Pads*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr + onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.06f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.06f), + Rarity = 5, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.ShoulderArmor, + icon = Res.ResourceLoader.GetTexture(95), + }; + + new BaseItem(new Stat[][] + { + new [] {ALL,EXPGAIN,MAGICFIND}, + new [] {MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {ALL,NONE}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_535/*Mystery Shoulder Pads*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr + onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.1f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.1f), + Rarity = 6, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.ShoulderArmor, + icon = Res.ResourceLoader.GetTexture(95), + }; + + new BaseItem(new Stat[][] + { + new [] {MOVEMENTSPEED,ATTACKSPEED}, + new [] {ALL,EXPGAIN,MAGICFIND}, + new [] {ALL}, + new [] {ALL,NONE}, + new [] {BLOCK}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_537/*Stone Shield*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr + onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.03f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.03f), + Rarity = 2, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Shield, + icon = Res.ResourceLoader.GetTexture(99), + }.PossibleStats[0][0].Multipier = -0.3f; + new BaseItem(new Stat[][] + { + new [] {ALL,EXPGAIN,MAGICFIND}, + new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {ALL,NONE}, + new [] {ALL,NONE}, + new [] {ALL}, + new [] {BLOCK}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_538/*Iron Shield*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr + onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.04f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.04f), + Rarity = 3, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Shield, + icon = Res.ResourceLoader.GetTexture(99), + }; + new BaseItem(new Stat[][] + { + new [] {ALL,EXPGAIN,MAGICFIND}, + new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {ALL,NONE}, + new [] {ALL,NONE}, + new [] {ALL}, + new [] {ALL,ARMOR}, + new [] {BLOCK}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_539/*Steel Tower Shield*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr + onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.05f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.05f), + Rarity = 4, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Shield, + icon = Res.ResourceLoader.GetTexture(99), + }; + new BaseItem(new Stat[][] + { + + new [] {ALL,EXPGAIN,MAGICFIND}, + new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {ALL,NONE}, + new [] {ALL,NONE}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {BLOCK}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_540/*Guardian*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr + onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.06f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.06f), + Rarity = 5, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Shield, + icon = Res.ResourceLoader.GetTexture(99), + }; + + new BaseItem(new Stat[][] + { + new [] {BLOCK}, + new [] {ALL,EXPGAIN,MAGICFIND}, + new [] {MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {ALL,NONE}, + new [] {ALL,NONE}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_541/*Mystery Shield*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr + onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.1f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.1f), + Rarity = 6, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Shield, + icon = Res.ResourceLoader.GetTexture(99), + }.PossibleStats[0][0].Multipier = 2f; + + + new BaseItem(new Stat[][] + { + new [] {MOVEMENTSPEED}, + new [] {ALL,EXPGAIN,MAGICFIND}, + new [] {ALL}, + new [] {ALL,NONE}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_542/*Light Boot*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr + onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.03f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.03f), + Rarity = 2, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Boot, + icon = Res.ResourceLoader.GetTexture(85), + }.PossibleStats[0][0].Multipier = 1.3f; + new BaseItem(new Stat[][] + { + new [] {MOVEMENTSPEED}, + new [] {ALL,EXPGAIN,MAGICFIND}, + new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {ALL,NONE}, + new [] {ALL,NONE}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_543/*Iron Boots*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr + onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.04f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.04f), + Rarity = 3, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Boot, + icon = Res.ResourceLoader.GetTexture(85), + }; + new BaseItem(new Stat[][] + { + new [] {MOVEMENTSPEED}, + new [] {ALL,EXPGAIN,MAGICFIND}, + new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {ALL,NONE}, + new [] {ALL}, + new [] {ALL,ARMOR}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_544/*Steel Boots*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr + onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.05f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.05f), + Rarity = 4, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Boot, + icon = Res.ResourceLoader.GetTexture(85), + }; + new BaseItem(new Stat[][] + { + new [] {MOVEMENTSPEED}, + new [] {ALL,EXPGAIN,MAGICFIND}, + new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {ALL,NONE}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_545/*Threads*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr + onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.06f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.06f), + Rarity = 5, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Boot, + icon = Res.ResourceLoader.GetTexture(85), + }; + + new BaseItem(new Stat[][] + { + new [] {MOVEMENTSPEED}, + new [] {ALL,EXPGAIN,MAGICFIND}, + new [] {MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {ALL,NONE}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_546/*Mystery Boots*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr + onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.1f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.1f), + Rarity = 6, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Boot, + icon = Res.ResourceLoader.GetTexture(85), + }; + + + + + new BaseItem(new Stat[][] + { + new [] {ALL,EXPGAIN,MAGICFIND}, + new [] {ALL}, + new [] {ALL,NONE}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_547/*Wraps*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr + onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.03f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.03f), + Rarity = 2, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Glove, + icon = Res.ResourceLoader.GetTexture(86), + }.PossibleStats[0][0].Multipier = -0.3f; + new BaseItem(new Stat[][] + { + new [] {ALL,EXPGAIN,MAGICFIND}, + new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {ALL,NONE}, + new [] {ALL}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_301/*Iron Gauntlet*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr + onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.04f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.04f), + Rarity = 3, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Glove, + icon = Res.ResourceLoader.GetTexture(86), + }; + new BaseItem(new Stat[][] + { + new [] {ALL,EXPGAIN,MAGICFIND}, + new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {ALL,NONE}, + new [] {ALL}, + new [] {ALL}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_548/*Steel Gauntlet*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr + onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.05f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.05f), + Rarity = 4, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Glove, + icon = Res.ResourceLoader.GetTexture(86), + }; + new BaseItem(new Stat[][] + { + new [] {ALL,EXPGAIN,MAGICFIND}, + new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {ALL,NONE}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_549/*Titanium Gauntlet*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr + onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.06f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.06f), + Rarity = 5, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Glove, + icon = Res.ResourceLoader.GetTexture(86), + }; + + new BaseItem(new Stat[][] + { + new [] {ALL,EXPGAIN,MAGICFIND}, + new [] {MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {ALL,NONE}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_550/*Mystery Gauntlet*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr + onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.1f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.1f), + Rarity = 6, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Glove, + icon = Res.ResourceLoader.GetTexture(86), + }; + + + + new BaseItem(new Stat[][] + { + new [] {ALL,EXPGAIN,MAGICFIND}, + new [] {ALL}, + new [] {ALL,NONE}, + new [] {ALL,NONE}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_551/*Leather Tasset*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr + onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.03f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.03f), + Rarity = 2, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Pants, + icon = Res.ResourceLoader.GetTexture(87), + }.PossibleStats[0][0].Multipier = -0.3f; + new BaseItem(new Stat[][] + { + new [] {ALL,EXPGAIN,MAGICFIND}, + new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {ALL,NONE}, + new [] {ALL,NONE}, + new [] {ALL}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_552/*Iron Tasset*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr + onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.04f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.04f), + Rarity = 3, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Pants, + icon = Res.ResourceLoader.GetTexture(87), + }; + new BaseItem(new Stat[][] + { + new [] {ALL,EXPGAIN,MAGICFIND}, + new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {ALL,NONE}, + new [] {ALL,NONE}, + new [] {ALL}, + new [] {ALL}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_553/*Steel Tasset*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr + onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.05f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.05f), + Rarity = 4, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Pants, + icon = Res.ResourceLoader.GetTexture(87), + }; + new BaseItem(new Stat[][] + { + new [] {ALL,EXPGAIN,MAGICFIND}, + new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {ALL,NONE}, + new [] {ALL,NONE}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_554/*Black Steel Leggins*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr + onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.06f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.06f), + Rarity = 5, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Pants, + icon = Res.ResourceLoader.GetTexture(87), + }; + + new BaseItem(new Stat[][] + { + new [] {ALL,EXPGAIN,MAGICFIND}, + new [] {MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {ALL,NONE}, + new [] {ALL,NONE}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_555/*Mystery Leggins*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr + onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.1f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.1f), + Rarity = 6, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Pants, + icon = Res.ResourceLoader.GetTexture(87), + }; + + new BaseItem(new Stat[][] + { + new [] {ALL,EXPGAIN,MAGICFIND}, + new [] {ALL}, + new [] {ALL,NONE}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_556/*Leather Vest*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr + onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.03f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.03f), + Rarity = 2, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.ChestArmor, + icon = Res.ResourceLoader.GetTexture(96), + }.PossibleStats[0][0].Multipier = -0.3f; + new BaseItem(new Stat[][] + { + new [] {ALL,EXPGAIN,MAGICFIND}, + new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {ALL,NONE}, + new [] {ALL}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_557/*Iron Breastplate*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr + onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.04f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.04f), + Rarity = 3, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.ChestArmor, + icon = Res.ResourceLoader.GetTexture(96), + }; + new BaseItem(new Stat[][] + { + new [] {ALL,EXPGAIN,MAGICFIND}, + new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {ALL,NONE}, + new [] {ALL}, + new [] {ALL}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_558/*Steel Breastplate*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr + onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.05f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.05f), + Rarity = 4, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.ChestArmor, + icon = Res.ResourceLoader.GetTexture(96), + }; + new BaseItem(new Stat[][] + { + new [] {ALL,EXPGAIN,MAGICFIND}, + new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {ALL,NONE}, + new [] {ALL,NONE}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_559/*Silver Armor*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr + onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.06f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.06f), + Rarity = 5, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.ChestArmor, + icon = Res.ResourceLoader.GetTexture(96), + }; + + new BaseItem(new Stat[][] + { + new [] {ALL,EXPGAIN,MAGICFIND}, + new [] {MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {ALL,NONE}, + new [] {ALL,NONE}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_560/*Mystery Breastplate*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr + onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.1f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.1f), + Rarity = 6, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.ChestArmor, + icon = Res.ResourceLoader.GetTexture(96), + }; + + new BaseItem(new Stat[][] + { + new [] {ALL,EXPGAIN,MAGICFIND}, + new [] {ALL}, + new [] {ALL,NONE}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_561/*Cloth Band*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr + onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.03f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.03f), + Rarity = 2, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Bracer, + icon = Res.ResourceLoader.GetTexture(93), + }.PossibleStats[0][0].Multipier = -0.3f; + new BaseItem(new Stat[][] + { + new [] {ALL,EXPGAIN,MAGICFIND}, + new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {ALL,NONE}, + new [] {ALL}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_562/*Iron Wristguard*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr + onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.04f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.04f), + Rarity = 3, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Bracer, + icon = Res.ResourceLoader.GetTexture(93), + }; + new BaseItem(new Stat[][] + { + new [] {ALL,EXPGAIN,MAGICFIND}, + new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {ALL,NONE}, + new [] {ALL}, + new [] {ALL}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_563/*Steel Wristguard*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr + onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.05f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.05f), + Rarity = 4, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Bracer, + icon = Res.ResourceLoader.GetTexture(93), + }; + new BaseItem(new Stat[][] + { + new [] {ALL,EXPGAIN,MAGICFIND}, + new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {ALL,NONE}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_564/*Baron Wristguards*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr + onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.06f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.06f), + Rarity = 5, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Bracer, + icon = Res.ResourceLoader.GetTexture(93), + }; + + new BaseItem(new Stat[][] + { + new [] {ALL,EXPGAIN,MAGICFIND}, + new [] {MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {ALL,NONE}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_565/*Mystery Wristguards*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr + onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.1f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.1f), + Rarity = 6, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Bracer, + icon = Res.ResourceLoader.GetTexture(93), + }; + + + new BaseItem(new Stat[][] + { + new [] {ALL,EXPGAIN,MAGICFIND}, + new [] {ALL}, + new [] {ALL,NONE}, + new [] {ALL,NONE}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_218/*Horned Helmet*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr + onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.03f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.03f), + Rarity = 2, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Helmet, + icon = Res.ResourceLoader.GetTexture(91), + }.PossibleStats[0][0].Multipier = -0.3f; + new BaseItem(new Stat[][] + { + new [] {ALL,EXPGAIN,MAGICFIND}, + new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {ALL,NONE}, + new [] {ALL,NONE}, + new [] {ALL}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_566/*Iron Helmet*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr + onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.04f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.04f), + Rarity = 3, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Helmet, + icon = Res.ResourceLoader.GetTexture(91), + }; + new BaseItem(new Stat[][] + { + new [] {ALL,EXPGAIN,MAGICFIND}, + new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {ALL,NONE}, + new [] {ALL,NONE}, + new [] {ALL}, + new [] {ALL}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_567/*Steel Helmet*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr + onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.05f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.05f), + Rarity = 4, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Helmet, + icon = Res.ResourceLoader.GetTexture(91), + }; + new BaseItem(new Stat[][] + { + new [] {ALL,EXPGAIN,MAGICFIND}, + new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {ALL,NONE}, + new [] {ALL,NONE}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_568/*Armored Hood*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr + onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.06f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.06f), + Rarity = 5, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Helmet, + icon = Res.ResourceLoader.GetTexture(91), + }; + + new BaseItem(new Stat[][] + { + new [] {ALL,EXPGAIN,MAGICFIND}, + new [] {MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {ALL,NONE}, + new [] {ALL,NONE}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_569/*Mystery Helmet*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr + onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.1f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.1f), + Rarity = 6, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Helmet, + icon = Res.ResourceLoader.GetTexture(91), + }; + + new BaseItem(new Stat[][] + { + new [] {ALL,EXPGAIN,MAGICFIND}, + new [] {MELEEDMGFROMSTR,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {MELEEDAMAGEINCREASE,MELEEWEAPONRANGE,BASEMELEEDAMAGE,STRENGTH}, + new [] {MELEEDAMAGEINCREASE,ATTACKSPEED,BASEMELEEDAMAGE,STRENGTH}, + new [] {CRITICALHITCHANCE,CRITICALHITDAMAGE,}, + new [] {MELEEDAMAGEINCREASE,NONE,MAXIMUMLIFE,PERCENTMAXIMUMLIFE}, + new [] {STRENGTH,VITALITY,INTELLIGENCE,ATTACKSPEED,ATTACKCOSTREDUCTION,COOLDOWNREDUCTION}, + new [] {ALL}, + new [] {ALL,NONE}, + new [] {ALL,NONE}, + new [] {ALL}, + new [] {ARMOR,DAMAGEREDUCTION}, + new [] {EMPTYSOCKET,NONE}, + new [] {EMPTYSOCKET,NONE}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_570/*Yorium's Gaze*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_571("30%")/*SET PIECE. Melee weapon range is increased by 30%, attack cost in stamina is halved.*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_572(15, "35%", 15, "5%")/*Set Piece:\n2 Pieces- Berserk does not apply exhaustion when it ends\n3 Pieces - Berserk duration is increased by 15 seconds\n4 Pieces - Each second of berserk being in effect increases damage by 35%.\n5 Pieces - For the first 15 seconds of Berserk attack speed increases by 30% per second, and lasts till the end of the spell's duration.*/, //tr + onEquip = () => BerserkSet.Equip(), + onUnequip = () => BerserkSet.Unequip(), + Rarity = 7, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Helmet, + icon = Res.ResourceLoader.GetTexture(91), + }; + new BaseItem(new Stat[][] + { + new [] {ALL,EXPGAIN,MAGICFIND}, + new [] {MELEEDMGFROMSTR,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {MELEEDAMAGEINCREASE,MELEEWEAPONRANGE,BASEMELEEDAMAGE,STRENGTH}, + new [] {MELEEDAMAGEINCREASE,ATTACKSPEED,BASEMELEEDAMAGE,STRENGTH}, + new [] {MAXIMUMLIFE}, + new [] {MELEEDAMAGEINCREASE,MAXIMUMLIFE,PERCENTMAXIMUMLIFE}, + new [] {STRENGTH,VITALITY,INTELLIGENCE,ATTACKSPEED,ATTACKCOSTREDUCTION,COOLDOWNREDUCTION}, + new [] {ALL}, + new [] {ALL,NONE}, + new [] {ALL,NONE}, + new [] {ALL}, + new [] {ALL}, + new [] {ARMOR,DAMAGEREDUCTION,ALLATTRIBUTES}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_573/*Yorium's Ruthlessness*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_571("30%")/*SET PIECE. Melee weapon range is increased by 30%, attack cost in stamina is halved.*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_572(15, "35%", 15, "5%")/*Set Piece:\n2 Pieces- Berserk does not apply exhaustion when it ends\n3 Pieces - Berserk duration is increased by 15 seconds\n4 Pieces - Each second of berserk being in effect increases damage by 35%.\n5 Pieces - For the first 15 seconds of Berserk attack speed increases by 30% per second, and lasts till the end of the spell's duration.*/, //tr + onEquip = () => BerserkSet.Equip(), + onUnequip = () => BerserkSet.Unequip(), + Rarity = 7, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.ChestArmor, + icon = Res.ResourceLoader.GetTexture(96), + }; + + new BaseItem(new Stat[][] + { + new [] {ALL,}, + new [] {MELEEDMGFROMSTR,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {MELEEDAMAGEINCREASE,MELEEWEAPONRANGE,BASEMELEEDAMAGE,STRENGTH}, + new [] {MELEEDAMAGEINCREASE,ATTACKSPEED,BASEMELEEDAMAGE,STRENGTH}, + new [] {MAXIMUMLIFE}, + new [] {MELEEDAMAGEINCREASE,MAXIMUMLIFE,PERCENTMAXIMUMLIFE}, + new [] {STRENGTH,VITALITY,INTELLIGENCE,ATTACKSPEED,ATTACKCOSTREDUCTION,COOLDOWNREDUCTION}, + new [] {ALL}, + new [] {ALL,NONE}, + new [] {ALL,NONE}, + new [] {ALL}, + new [] {ALL}, + new [] {ARMOR,DAMAGEREDUCTION,ALLATTRIBUTES}, + new [] {EMPTYSOCKET,NONE}, + new [] {EMPTYSOCKET,NONE}, + new [] {EMPTYSOCKET,NONE}, + + }) + { + name = Translations.ItemDataBase_ItemDefinitions_574/*Yorium's Burden*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_571("30%")/*SET PIECE. Melee weapon range is increased by 30%, attack cost in stamina is halved.*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_572(15, "35%", 15, "5%")/*Set Piece:\n2 Pieces- Berserk does not apply exhaustion when it ends\n3 Pieces - Berserk duration is increased by 15 seconds\n4 Pieces - Each second of berserk being in effect increases damage by 35%.\n5 Pieces - For the first 15 seconds of Berserk attack speed increases by 30% per second, and lasts till the end of the spell's duration.*/, //tr + onEquip = () => BerserkSet.Equip(), + onUnequip = () => BerserkSet.Unequip(), + Rarity = 7, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.ShoulderArmor, + icon = Res.ResourceLoader.GetTexture(95), + }; + new BaseItem(new Stat[][] + { + new [] {ALL,}, + new [] {MELEEDMGFROMSTR,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {MELEEDAMAGEINCREASE,MELEEWEAPONRANGE,BASEMELEEDAMAGE,STRENGTH}, + new [] {MELEEDAMAGEINCREASE,ATTACKSPEED,BASEMELEEDAMAGE,STRENGTH}, + new [] {MAXIMUMLIFE}, + new [] {MELEEDAMAGEINCREASE,MAXIMUMLIFE,PERCENTMAXIMUMLIFE}, + new [] {STRENGTH,VITALITY,INTELLIGENCE,ATTACKSPEED,ATTACKCOSTREDUCTION,COOLDOWNREDUCTION}, + new [] {ALL}, + new [] {ALL,NONE}, + new [] {ALL,NONE}, + new [] {ALL}, + new [] {ALL}, + new [] {ARMOR,DAMAGEREDUCTION,ALLATTRIBUTES}, + new [] {EMPTYSOCKET,NONE}, + new [] {EMPTYSOCKET,NONE}, + new [] {EMPTYSOCKET,NONE}, + + }) + { + name = Translations.ItemDataBase_ItemDefinitions_575/*Yorium's Resolve*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_571("30%")/*SET PIECE. Melee weapon range is increased by 30%, attack cost in stamina is halved.*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_572(15, "35%", 15, "5%")/*Set Piece:\n2 Pieces- Berserk does not apply exhaustion when it ends\n3 Pieces - Berserk duration is increased by 15 seconds\n4 Pieces - Each second of berserk being in effect increases damage by 35%.\n5 Pieces - For the first 15 seconds of Berserk attack speed increases by 30% per second, and lasts till the end of the spell's duration.*/, //tr + onEquip = () => BerserkSet.Equip(), + onUnequip = () => BerserkSet.Unequip(), + Rarity = 7, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Bracer, + icon = Res.ResourceLoader.GetTexture(93), + }; + new BaseItem(new Stat[][] + { + new [] {MOVEMENTSPEED}, + new [] {MELEEDMGFROMSTR,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {MELEEDAMAGEINCREASE,MELEEWEAPONRANGE,BASEMELEEDAMAGE,STRENGTH}, + new [] {MELEEDAMAGEINCREASE,ATTACKSPEED,BASEMELEEDAMAGE,STRENGTH}, + new [] {MAXIMUMLIFE}, + new [] {MELEEDAMAGEINCREASE,MAXIMUMLIFE,PERCENTMAXIMUMLIFE}, + new [] {STRENGTH,VITALITY,INTELLIGENCE,ATTACKSPEED,ATTACKCOSTREDUCTION,COOLDOWNREDUCTION}, + new [] {ALL}, + new [] {ALL,NONE}, + new [] {ALL,NONE}, + new [] {ALL}, + new [] {ALL}, + new [] {ARMOR,DAMAGEREDUCTION,ALLATTRIBUTES}, + new [] {EMPTYSOCKET,NONE}, + new [] {EMPTYSOCKET,NONE}, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_576/*Atomic Augmentation*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_571("30%")/*SET PIECE. Melee weapon range is increased by 30%, attack cost in stamina is halved.*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_572(15, "35%", 15, "5%")/*Set Piece:\n2 Pieces- Berserk does not apply exhaustion when it ends\n3 Pieces - Berserk duration is increased by 15 seconds\n4 Pieces - Each second of berserk being in effect increases damage by 35%.\n5 Pieces - For the first 15 seconds of Berserk attack speed increases by 30% per second, and lasts till the end of the spell's duration.*/, //tr + onEquip = () => BerserkSet.Equip(), + onUnequip = () => BerserkSet.Unequip(), + Rarity = 7, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Boot, + icon = Res.ResourceLoader.GetTexture(85), + }; + new BaseItem(new Stat[][] + { + new [] {ALL,}, + new [] {MELEEDMGFROMSTR,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {MELEEDAMAGEINCREASE,MELEEWEAPONRANGE,BASEMELEEDAMAGE,STRENGTH}, + new [] {MELEEDAMAGEINCREASE,ATTACKSPEED,BASEMELEEDAMAGE,STRENGTH}, + new [] {MAXIMUMLIFE}, + new [] {MELEEDAMAGEINCREASE,MAXIMUMLIFE,PERCENTMAXIMUMLIFE}, + new [] {STRENGTH,VITALITY,INTELLIGENCE,ATTACKSPEED,ATTACKCOSTREDUCTION,COOLDOWNREDUCTION}, + new [] {ALL}, + new [] {ALL,NONE}, + new [] {ALL,NONE}, + new [] {ALL}, + new [] {ALL}, + new [] {ARMOR,DAMAGEREDUCTION,ALLATTRIBUTES}, + new [] {EMPTYSOCKET,NONE}, + new [] {EMPTYSOCKET,NONE}, + new [] {EMPTYSOCKET,NONE}, + + }) + { + name = Translations.ItemDataBase_ItemDefinitions_577/*Yorium's Assault*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_571("30%")/*SET PIECE. Melee weapon range is increased by 30%, attack cost in stamina is halved.*/, //tr + description = Translations.ItemDataBase_ItemDefinitions_572(15, "35%", 15, "5%")/*Set Piece:\n2 Pieces- Berserk does not apply exhaustion when it ends\n3 Pieces - Berserk duration is increased by 15 seconds\n4 Pieces - Each second of berserk being in effect increases damage by 35%.\n5 Pieces - For the first 15 seconds of Berserk attack speed increases by 30% per second, and lasts till the end of the spell's duration.*/, //tr + onEquip = () => BerserkSet.Equip(), + onUnequip = () => BerserkSet.Unequip(), + Rarity = 7, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Glove, + icon = Res.ResourceLoader.GetTexture(86), + }; + new BaseItem(new Stat[][] + { + new [] {ALL,EXPGAIN,MAGICFIND}, + new [] {MELEEDMGFROMSTR,MAXENERGYFROMAGI,RANGEDDMGFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {MELEEDAMAGEINCREASE,BASEMELEEDAMAGE,STRENGTH}, + new [] {RANGEDDAMAGEINCREASE,BASERANGEDDAMAGE,AGILITY}, + new [] {SPELLDAMAGEINCREASE,BASESPELLDAMAGE,INTELLIGENCE}, + new [] {ALL}, + new [] {MAXIMUMLIFE}, + new [] {MAXIMUMLIFE,PERCENTMAXIMUMLIFE,MAXIMUMENERGY,PERCENTMAXIMUMENERGY}, + new [] {STRENGTH,VITALITY,INTELLIGENCE,AGILITY,ALLATTRIBUTES,ATTACKSPEED,ATTACKCOSTREDUCTION,SPELLCOSTREDUCTION,COOLDOWNREDUCTION}, + new [] {ALL}, + new [] {ALL,NONE}, + new [] {ALL,NONE}, + new [] {ALL}, + new [] {ALL}, + new [] {ARMOR,DAMAGEREDUCTION,ALLATTRIBUTES,NONE}, + + }) + { + name = Translations.ItemDataBase_ItemDefinitions_578/*Undying Promise*/, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_579(1)/*Resist lethal damage on a 1 minute cooldown*/, //tr + onEquip = () => COTFEvents.Instance.OnTakeLethalDamage.AddListener(UniqueItemFunctions.ResistDeath), + onUnequip = () => COTFEvents.Instance.OnTakeLethalDamage.RemoveListener(UniqueItemFunctions.ResistDeath), + Rarity = 7, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Pants, + icon = Res.ResourceLoader.GetTexture(87), + }; + new BaseItem(new Stat[][] + { + new [] {CRITICALHITDAMAGE}, + new [] {STRENGTH,VITALITY,INTELLIGENCE,AGILITY }, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ARMOR,DAMAGEREDUCTION }, + new [] {MAXIMUMLIFE}, + + }) + { + name = Translations.ItemDataBase_ItemDefinitions_609, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_610, //tr + Rarity = 7, + minLevel = 20, + maxLevel = 28, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Pants, + icon = Res.ResourceLoader.GetTexture(87), + onEquip = () => { ModdedPlayer.Stats.spell_frenzy_active_critChance.Add(0.05f); ModdedPlayer.Stats.spell_frenzyAtkSpeed.Add(0.03f); }, + onUnequip = () => { ModdedPlayer.Stats.spell_frenzy_active_critChance.Substract(0.05f); ModdedPlayer.Stats.spell_frenzyAtkSpeed.Add(0.03f); }, + }; + + + + new BaseItem(new Stat[][] + { + new [] {BASEMELEEDAMAGE,BASESPELLDAMAGE}, + new [] {BASEMELEEDAMAGE,BASESPELLDAMAGE}, + new [] {STRENGTH,VITALITY,INTELLIGENCE,AGILITY }, + new [] {MELEEDAMAGEINCREASE, SPELLDAMAGEINCREASE }, + new [] {ATTACKSPEED}, + new [] {CRITICALHITCHANCE}, + new [] {CRITICALHITDAMAGE}, + new [] {MELEEDMGFROMSTR}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {BLOCK, NONE}, + new [] {MAXIMUMLIFE}, + + }) + { + name = Translations.ItemDataBase_ItemDefinitions_611, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_612("300%"), //tr + Rarity = 7, + minLevel = 6, + maxLevel = 9, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Weapon, + weaponModel = BaseItem.WeaponModelType.GreatSword, + icon = Res.ResourceLoader.GetTexture(88), + onEquip = () => ModdedPlayer.Stats.spell_berserkDamage.Add(3f), + onUnequip = () => ModdedPlayer.Stats.spell_berserkDamage.Substract(3f), + }.PossibleStats[0][0].Multipier = 5; + new BaseItem(new Stat[][] + { + new [] {BASEMELEEDAMAGE,BASESPELLDAMAGE}, + new [] {BASEMELEEDAMAGE, NONE}, + new [] {STRENGTH,VITALITY,INTELLIGENCE,AGILITY }, + new [] {MELEEDAMAGEINCREASE, SPELLDAMAGEINCREASE }, + new [] {ATTACKSPEED}, + new [] {CRITICALHITCHANCE}, + new [] {CRITICALHITDAMAGE}, + new [] {MELEEDMGFROMSTR}, + new [] {STRENGTH}, + new [] {ALL}, + new [] {ALL}, + + }) + { + name = Translations.ItemDataBase_ItemDefinitions_613, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_612("100%"), //tr + Rarity = 6, + minLevel = 6, + maxLevel = 9, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Weapon, + weaponModel = BaseItem.WeaponModelType.GreatSword, + icon = Res.ResourceLoader.GetTexture(88), + onEquip = () => ModdedPlayer.Stats.spell_berserkDamage.Add(1f), + onUnequip = () => ModdedPlayer.Stats.spell_berserkDamage.Substract(1f), + }.PossibleStats[0][0].Multipier = 2; + + new BaseItem(new Stat[][] + { + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {BASESPELLDAMAGE,BASERANGEDDAMAGE,BASEMELEEDAMAGE, NONE}, + new [] {SPELLDMGFROMINT,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,DAMAGEREDUCTION}, + new [] {ALLATTRIBUTES,AGILITY,STRENGTH,INTELLIGENCE,VITALITY}, + + }) + { + name = Translations.ItemDataBase_ItemDefinitions_614, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_615("10%"), //tr + Rarity = 5, + minLevel = 6, + maxLevel = 9, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Amulet, + icon = Res.ResourceLoader.GetTexture(100), + onEquip = () => + { + ModdedPlayer.Stats.spell_berserkAttackSpeed.Add(0.1f); + ModdedPlayer.Stats.spell_berserkMovementSpeed.Add(0.1f); + }, + onUnequip = () => + { + ModdedPlayer.Stats.spell_berserkAttackSpeed.Substract(0.1f); + ModdedPlayer.Stats.spell_berserkMovementSpeed.Substract(0.1f); + }, + }; + new BaseItem(new Stat[][] + { + new [] {STRENGTH,VITALITY,AGILITY,ALLATTRIBUTES,INTELLIGENCE}, + new [] {MAXENERGYFROMAGI,MELEEDMGFROMSTR,SPELLDMGFROMINT,RANGEDDMGFROMAGI,MAXHEALTHFROMVIT}, + new [] {ARMOR,DAMAGEREDUCTION}, + new [] { CRITICALHITCHANCE, CRITICALHITDAMAGE}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {ALL}, + new [] {BASESPELLDAMAGE,BASERANGEDDAMAGE,BASEMELEEDAMAGE, NONE}, + new [] {SPELLDMGFROMINT,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,DAMAGEREDUCTION}, + + }) + { + name = Translations.ItemDataBase_ItemDefinitions_616, //tr + uniqueStat = $"Berserk increases melee and ranged damage by 100%, increases movement speed by 30% and attack speed by 15%", //tr + Rarity = 7, + minLevel = 60, + maxLevel = 62, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Amulet, + icon = Res.ResourceLoader.GetTexture(100), + onEquip = () => + { + ModdedPlayer.Stats.meleeIncreasedDmg.Multiply(2f); + ModdedPlayer.Stats.rangedIncreasedDmg.Multiply(2f); + ModdedPlayer.Stats.spell_berserkAttackSpeed.Add(0.15f); + ModdedPlayer.Stats.spell_berserkMovementSpeed.Add(0.3f); + }, + onUnequip = () => + { + ModdedPlayer.Stats.meleeIncreasedDmg.Divide(2f); + ModdedPlayer.Stats.rangedIncreasedDmg.Divide(2f); + ModdedPlayer.Stats.spell_berserkAttackSpeed.Substract(0.15f); + ModdedPlayer.Stats.spell_berserkMovementSpeed.Substract(0.3f); + }, + }; + new BaseItem(new Stat[][] + { + new[] { LIFEPERSECOND }, + new[] { ARMOR, NONE, ALLHEALINGPERCENT }, + new[] { ALL}, + new[] { SPELLDMGFROMINT }, + new[] { SPELLCOSTREDUCTION,SPELLCOSTTOSTAMINA,ARMOR,ALLATTRIBUTES}, + new[] { BASESPELLDAMAGE, SPELLDAMAGEINCREASE, INTELLIGENCE, ALLATTRIBUTES }, + new[] { BASESPELLDAMAGE, SPELLDAMAGEINCREASE, INTELLIGENCE, DAMAGEREDUCTION }, + new[] { VITALITY, MAXHEALTHFROMVIT, MAXIMUMLIFE, PERCENTMAXIMUMLIFE, LIFEPERSECOND, LIFEONHIT }, + new[] { SPELLCOSTREDUCTION, COOLDOWNREDUCTION, CRITICALHITCHANCE, CRITICALHITDAMAGE, ARMOR,MAXHEALTHFROMVIT }, + new[] { DAMAGEREDUCTION, PERCENTMAXIMUMENERGY, LIFEREGENERATION }, + new[] { ENERGYPERSECOND, PERCENTMAXIMUMENERGY, MAXENERGYFROMAGI }, + new[] { INTELLIGENCE, STAMINAPERSECOND, STAMINAREGENERATION, ALLATTRIBUTES, ALLHEALINGPERCENT }, + new[] { ENERGYONHIT, ENERGYPERSECOND, MAXIMUMLIFE, MASSACREDURATION, MAGICFIND, EXPLOSIONDAMAGE }, + }) + { + name = Translations.ItemDataBase_ItemDefinitions_617, //tr + uniqueStat = Translations.ItemDataBase_ItemDefinitions_618("100%", "40%"),//tr + Rarity = 7, + minLevel = 1, + maxLevel = 3, + CanConsume = false, + StackSize = 1, + type = BaseItem.ItemType.Bracer, + icon = Res.ResourceLoader.GetTexture(93), + onEquip = () => + { + ModdedPlayer.Stats.spell_healingDomeCooldownRate.Add(1.0f); + ModdedPlayer.Stats.spell_healingDomeSpellCostReduction.Substract(0.4f); + }, + onUnequip = () => + { + ModdedPlayer.Stats.spell_healingDomeCooldownRate.Substract(1.0f); + ModdedPlayer.Stats.spell_healingDomeSpellCostReduction.Add(0.4f); + }, + }; + } + } } \ No newline at end of file diff --git a/Items/ItemDataBase_StatDefinitions.cs b/Items/ItemDataBase_StatDefinitions.cs index fb3b72b..d9f163f 100644 --- a/Items/ItemDataBase_StatDefinitions.cs +++ b/Items/ItemDataBase_StatDefinitions.cs @@ -165,7 +165,7 @@ public static void PopulateStats() i++; new ItemStat(i, 5f, 9f, 1.4f, Translations.MainMenu_Guide_17/*Armor*/, scAdd, 3, () => ModdedPlayer.Stats.armor.GetFormattedAmount(), StatActions.AddArmor, StatActions.RemoveArmor, StatActions.AddArmor); //tr i++; - new ItemStat(i, 0.004f, 0.018f, 0.5f, Translations.ItemDataBase_StatDefinitions_10/*Resistance to magic*/, scOneMinusMult, 5, () => (1 - ModdedPlayer.Stats.magicDamageTaken).ToString("P"), StatActions.AddMagicResistance, StatActions.RemoveMagicResistance, StatActions.AddMagicResistance) { ValueCap = 0.5f, DisplayAsPercent = true, RoundingCount = 1 }; //tr + new ItemStat(i, 0.004f, 0.018f, 0.5f, Translations.ItemDataBase_StatDefinitions_10/*Resistance to magic*/, scOneMinusMult, 5, () => ModdedPlayer.Stats.damageFromElite.Value.ToString("P"), StatActions.AddEliteDamageReduction, StatActions.RemoveEliteDamageReduction, StatActions.AddEliteDamageReduction) { ValueCap = 0.5f, DisplayAsPercent = true, RoundingCount = 1 }; //tr i++; new ItemStat(i, 0.004f, 0.005f, 0.2f, Translations.MainMenu_Guide_49/*Attack speed*/, scAdd, 6, () => ModdedPlayer.Stats.attackSpeed.GetFormattedAmount(), StatActions.AddAttackSpeed, StatActions.RemoveAttackSpeed, StatActions.AddAttackSpeed) { DisplayAsPercent = true, RoundingCount = 1 }; //tr i++; @@ -176,15 +176,15 @@ public static void PopulateStats() RoundingCount = 1 }; i++; - new ItemStat(i, 0.014f, 0.018f, 0.4f, Translations.ItemDataBase_StatDefinitions_12/*Spell Damage Increase*/, scAdd, 5, () => ModdedPlayer.Stats.spellIncreasedDmg.GetFormattedAmount(), StatActions.AddSpellDamageAmplifier, StatActions.RemoveSpellDamageAmplifier, StatActions.AddSpellDamageAmplifier) //tr + new ItemStat(i, 0.014f, 0.018f, 0.3f, Translations.ItemDataBase_StatDefinitions_12/*Spell Damage Increase*/, scAdd, 5, () => ModdedPlayer.Stats.spellIncreasedDmg.GetFormattedAmount(), StatActions.AddSpellDamageAmplifier, StatActions.RemoveSpellDamageAmplifier, StatActions.AddSpellDamageAmplifier) //tr { DisplayAsPercent = true, RoundingCount = 1 }; i++; - new ItemStat(i, 0.014f, 0.018f, 0.4f, Translations.ItemDataBase_StatDefinitions_13/*Melee Damage Increase*/, scAdd, 5, () => ModdedPlayer.Stats.meleeIncreasedDmg.GetFormattedAmount(), StatActions.AddMeleeDamageAmplifier, StatActions.RemoveMeleeDamageAmplifier, StatActions.AddMeleeDamageAmplifier) { DisplayAsPercent = true, RoundingCount = 1, ValueCap =2f }; //tr + new ItemStat(i, 0.014f, 0.018f, 0.3f, Translations.ItemDataBase_StatDefinitions_13/*Melee Damage Increase*/, scAdd, 5, () => ModdedPlayer.Stats.meleeIncreasedDmg.GetFormattedAmount(), StatActions.AddMeleeDamageAmplifier, StatActions.RemoveMeleeDamageAmplifier, StatActions.AddMeleeDamageAmplifier) { DisplayAsPercent = true, RoundingCount = 1, ValueCap =2f }; //tr i++; - new ItemStat(i, 0.014f, 0.018f, 0.4f, Translations.ItemDataBase_StatDefinitions_14/*Ranged Damage Increase*/, scAdd, 5, () => ModdedPlayer.Stats.rangedIncreasedDmg.GetFormattedAmount(), StatActions.AddRangedDamageAmplifier, StatActions.RemoveRangedDamageAmplifier, StatActions.AddRangedDamageAmplifier) { DisplayAsPercent = true, RoundingCount = 1, ValueCap = 2f }; //tr + new ItemStat(i, 0.014f, 0.018f, 0.3f, Translations.ItemDataBase_StatDefinitions_14/*Ranged Damage Increase*/, scAdd, 5, () => ModdedPlayer.Stats.rangedIncreasedDmg.GetFormattedAmount(), StatActions.AddRangedDamageAmplifier, StatActions.RemoveRangedDamageAmplifier, StatActions.AddRangedDamageAmplifier) { DisplayAsPercent = true, RoundingCount = 1, ValueCap = 2f }; //tr i++; new ItemStat(i, 0.5f, 1.1f, 0.8f, Translations.ItemDataBase_StatDefinitions_15/*Base Spell Damage*/, scAdd, 4, () => ModdedPlayer.Stats.spellFlatDmg.GetFormattedAmount(), StatActions.AddspellFlatDmg, StatActions.RemovespellFlatDmg, StatActions.AddspellFlatDmg); //tr i++; @@ -204,7 +204,7 @@ public static void PopulateStats() i++; new ItemStat(i, 1f / 4f, 1f / 4f, 0f, Translations.ItemDataBase_StatDefinitions_23/*PERMANENT PERK POINTS*/, scAdd, 6,()=> ModdedPlayer.instance.MutationPoints.ToString(), null, null, StatActions.PERMANENT_perkPointIncrease); //tr i++; - new ItemStat(i, 30f, 30f, 3f, Translations.ItemDataBase_StatDefinitions_25/*EXPERIENCE*/, scAdd, 5,()=> ModdedPlayer.instance.ExpCurrent.ToString("N")+ Translations.ItemDataBase_StatDefinitions_24/* / */ + ModdedPlayer.instance.ExpGoal.ToString("N"), null, null, StatActions.PERMANENT_expIncrease); //tr + new ItemStat(i, 10f, 20f, 2f, Translations.ItemDataBase_StatDefinitions_25/*EXPERIENCE*/, scAdd, 5,()=> ModdedPlayer.instance.ExpCurrent.ToString("N")+ Translations.ItemDataBase_StatDefinitions_24/* / */ + ModdedPlayer.instance.ExpGoal.ToString("N"), null, null, StatActions.PERMANENT_expIncrease); //tr i++; new ItemStat(i, 0.01f, 0.020f, 0.2f, Translations.MainMenu_Guide_109/*Movement Speed*/, scAdd, 6, () => ModdedPlayer.Stats.movementSpeed.GetFormattedAmount(), StatActions.AddMoveSpeed, StatActions.RemoveMoveSpeed, StatActions.AddMoveSpeed) { DisplayAsPercent = true, RoundingCount = 2, ValueCap = 0.5f }; //tr i++; @@ -375,7 +375,7 @@ public static void PopulateStats() //3021 new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_77/*Socket: Maximum Health */, scMultPlusOne, 0,null, f => ModdedPlayer.Stats.maxHealthMult.valueMultiplicative *= 1 + f, f => ModdedPlayer.Stats.maxHealthMult.valueMultiplicative /= 1 + f, null) { DisplayAsPercent = true, RoundingCount = 1 }; //tr new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_78/*Socket: Armor */, scAdd, 0,null, StatActions.AddArmor, StatActions.RemoveArmor, null) { RoundingCount = 0, Multipier = 10f }; //tr - new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_79/*Socket: Resistance To Magic*/, scOneMinusMult, 0,null, StatActions.AddMagicResistance, StatActions.RemoveMagicResistance, null) { DisplayAsPercent = true, RoundingCount = 1 }; //tr + new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_79/*Socket: Resistance To Magic*/, scOneMinusMult, 0,null, StatActions.AddEliteDamageReduction, StatActions.RemoveEliteDamageReduction, null) { DisplayAsPercent = true, RoundingCount = 1 }; //tr new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_80/*Socket: Crit Damage*/, scMultPlusOne, 0,null, f => ModdedPlayer.Stats.critDamage.Add(f), f => ModdedPlayer.Stats.critDamage.Substract(f), null) { DisplayAsPercent = true, RoundingCount = 1, Multipier = 5f }; //tr new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_81/*Socket: Thorns*/, scAdd, 0,null, f => ModdedPlayer.Stats.thorns.valueAdditive += f, f => ModdedPlayer.Stats.thorns.valueAdditive -= f, null) { RoundingCount = 0, Multipier = 5f }; //tr } diff --git a/Items/StatActions.cs b/Items/StatActions.cs index 88dcd5d..4109449 100644 --- a/Items/StatActions.cs +++ b/Items/StatActions.cs @@ -175,14 +175,14 @@ public static void RemoveArmor(float f) ModdedPlayer.Stats.armor.Substract(Mathf.RoundToInt(f)); } - public static void AddMagicResistance(float f) + public static void AddEliteDamageReduction(float f) { - ModdedPlayer.Stats.magicDamageTaken.valueMultiplicative *= 1 - f; + ModdedPlayer.Stats.damageFromElite.valueMultiplicative *= 1 - f; } - public static void RemoveMagicResistance(float f) + public static void RemoveEliteDamageReduction(float f) { - ModdedPlayer.Stats.magicDamageTaken.valueMultiplicative /= 1 - f; + ModdedPlayer.Stats.damageFromElite.valueMultiplicative /= 1 - f; } public static void AddAttackSpeed(float f) diff --git a/Player/Main Menu/MainMenu_Guide.cs b/Player/Main Menu/MainMenu_Guide.cs index dc96230..e8b1c56 100644 --- a/Player/Main Menu/MainMenu_Guide.cs +++ b/Player/Main Menu/MainMenu_Guide.cs @@ -349,9 +349,9 @@ private void DrawGuide() ModdedPlayer.Stats.armor.GetFormattedAmount(), Translations.MainMenu_Guide_18( ModReferences.DamageReduction(ModdedPlayer.Stats.armor.Value).ToString("P2"))); - Stat(Translations.MainMenu_Guide_19, - (1 - ModdedPlayer.Stats.magicDamageTaken.GetAmount()).ToString("P"), - Translations.MainMenu_Guide_20); + Stat("Reduced damage from Elites", + (1 - ModdedPlayer.Stats.damageFromElite.GetAmount()).ToString("P"), + "Decreases the damage taken from elite monsters and their abilities."); Stat(Translations.MainMenu_Guide_21, (1 - ModdedPlayer.Stats.getHitChance.GetAmount()).ToString("P"), Translations.MainMenu_Guide_22); diff --git a/Player/ModdedPlayer/ModdedPlayer.ModdedPlayerStats.cs b/Player/ModdedPlayer/ModdedPlayer.ModdedPlayerStats.cs index f3ba5ec..c4ea87d 100644 --- a/Player/ModdedPlayer/ModdedPlayer.ModdedPlayerStats.cs +++ b/Player/ModdedPlayer/ModdedPlayer.ModdedPlayerStats.cs @@ -67,7 +67,7 @@ public class ModdedPlayerStats public readonly AdditivePlayerStat energyRecoveryperSecond; public readonly MultiplicativePlayerStat allDamageTaken; - public readonly MultiplicativePlayerStat magicDamageTaken; + public readonly MultiplicativePlayerStat damageFromElite; public readonly MultiplicativePlayerStat fireDamageTaken; public readonly MultiplicativePlayerStat getHitChance; public readonly AdditivePlayerStat armor; @@ -385,7 +385,7 @@ public ModdedPlayerStats() this.energyRecoveryperSecond = new AdditivePlayerStat(0.0f, addfloat, substractfloat); this.allDamageTaken = new MultiplicativePlayerStat(1, multfloat, dividefloat, "P0"); - this.magicDamageTaken = new MultiplicativePlayerStat(1, multfloat, dividefloat, "P0"); + this.damageFromElite = new MultiplicativePlayerStat(1, multfloat, dividefloat, "P0"); this.fireDamageTaken = new MultiplicativePlayerStat(1, multfloat, dividefloat, "P0"); this.getHitChance = new MultiplicativePlayerStat(1, multfloat, dividefloat, "P0"); this.armor = new AdditivePlayerStat(0, addint, substractint); diff --git a/Player/ModdedPlayer/ModdedPlayer.cs b/Player/ModdedPlayer/ModdedPlayer.cs index 5045667..a44dbe1 100644 --- a/Player/ModdedPlayer/ModdedPlayer.cs +++ b/Player/ModdedPlayer/ModdedPlayer.cs @@ -22,13 +22,8 @@ public partial class ModdedPlayer : MonoBehaviour public static ModdedPlayer instance = null; - - public int level = 1; - - - public float basejumpPower; public long ExpCurrent = 0; public long ExpGoal = 1; @@ -40,11 +35,6 @@ public partial class ModdedPlayer : MonoBehaviour public float MassacreMultiplier = 1; public float TimeUntillMassacreReset; - - - - - public float DamageAbsorbAmount { get @@ -61,11 +51,6 @@ public float DamageAbsorbAmount public float[] damageAbsorbAmounts = new float[3];//every unique source of shielding gets their own slot here, if its not unique it uses [0] //[1] is channeled shield spell; - - - - - public Dictionary GeneratedResources = new Dictionary(); @@ -80,9 +65,6 @@ public float DamageAbsorbAmount //Death Pact shoulders - - - public float lostArmor = 0; @@ -92,8 +74,6 @@ public float DamageAbsorbAmount public float _DeathPact_Amount = 1; - - public Dictionary ExtraCarryingCapactity = new Dictionary(); public struct ExtraItemCapacity @@ -416,7 +396,7 @@ private void Update() } if (dmgPerSecond != 0) { - dmgPerSecond *= stats.magicDamageTaken; + dmgPerSecond *= stats.damageFromElite; dmgPerSecond *= Stats.allDamageTaken; LocalPlayer.Stats.Health -= dmgPerSecond * Time.deltaTime; LocalPlayer.Stats.HealthTarget -= dmgPerSecond * Time.deltaTime * 2; @@ -672,16 +652,13 @@ public void Stun(float duration) { return; } - duration *= stats.magicDamageTaken; LocalPlayer.HitReactions.enableFootShake(1, 0.6f); - Stats.stunned.value = true; if (StunDuration < duration) { StunDuration = duration; } COTFEvents.Instance.OnStun.Invoke(); - } public void AddKillExperience(long Amount) diff --git a/Player/Perks/PerkDatabase.cs b/Player/Perks/PerkDatabase.cs index f101627..3946300 100644 --- a/Player/Perks/PerkDatabase.cs +++ b/Player/Perks/PerkDatabase.cs @@ -72,7 +72,7 @@ public static void FillPerkList() }; new Perk() { - onApply = () => ModdedPlayer.Stats.energyRecoveryFromInt.valueAdditive += 0.002f, + onApply = () => ModdedPlayer.Stats.energyRecoveryFromInt.valueAdditive += 0.001f, category = PerkCategory.Utility, texture = null, @@ -83,7 +83,7 @@ public static void FillPerkList() posX = 1.5f, posY = 0, name = Translations.PerkDatabase_7, - originalDescription = Translations.PerkDatabase_8("0.2%"), + originalDescription = Translations.PerkDatabase_8("0.1%"), textureVariation = 0, //0 or 1 stackable = false, }; @@ -222,7 +222,7 @@ public static void FillPerkList() }; new Perk() { - onApply = () => ModdedPlayer.Stats.strength.Add(20), + onApply = () => ModdedPlayer.Stats.strength.Add(10), category = PerkCategory.MeleeOffense, texture = null, unlockPath = new int[] { 0, 10 }, @@ -232,13 +232,13 @@ public static void FillPerkList() posX = 2f, posY = -0.75f, name = Translations.PerkDatabase_26, - originalDescription = Translations.PerkDatabase_27(20), + originalDescription = Translations.PerkDatabase_27(10), textureVariation = 0, //0 or 1 stackable = false, }; new Perk() { - onApply = () => ModdedPlayer.Stats.rangedFlatDmg.valueAdditive += 8, + onApply = () => ModdedPlayer.Stats.rangedFlatDmg.valueAdditive += 5, category = PerkCategory.RangedOffense, texture = null, unlockPath = new int[] { 2 }, @@ -248,12 +248,12 @@ public static void FillPerkList() posX = 2f, posY = -0.75f, name = Translations.PerkDatabase_28, - originalDescription = Translations.PerkDatabase_29("8"), + originalDescription = Translations.PerkDatabase_29("5"), textureVariation = 0, //0 or 1 stackable = true, updateDescription = x => { - return Translations.PerkDatabase_15(x * 8); + return Translations.PerkDatabase_15(x * 5); }, }; new Perk() @@ -316,7 +316,7 @@ public static void FillPerkList() }; new Perk() { - onApply = () => ModdedPlayer.Stats.spellCost.valueMultiplicative *= 1 - 0.09f, + onApply = () => ModdedPlayer.Stats.spellCost.valueMultiplicative *= 1 - 0.05f, category = PerkCategory.MagicOffense, texture = null, @@ -327,14 +327,14 @@ public static void FillPerkList() posX = 2f, posY = 0.75f, name = Translations.PerkDatabase_36, - originalDescription = Translations.PerkDatabase_37("9%"), + originalDescription = Translations.PerkDatabase_37("5%"), textureVariation = 0, //0 or 1 stackable = true, updateDescription = x => { - float f = 0.91f; + float f = 0.95f; for (int i = 1; i < x; i++) - f *= 0.91f; + f *= 0.95f; return Translations.PerkDatabase_15((1 - f).ToString("P")); }, }; @@ -416,7 +416,7 @@ public static void FillPerkList() new Perk() { - onApply = () => StatActions.AddAllStats(20), + onApply = () => StatActions.AddAllStats(15), category = PerkCategory.Utility, unlockPath = new int[] { 20 }, @@ -426,7 +426,7 @@ public static void FillPerkList() posX = 3.5f, posY = 0f, name = Translations.PerkDatabase_44, - originalDescription = Translations.PerkDatabase_45(20), + originalDescription = Translations.PerkDatabase_45(15), textureVariation = 0, stackable = false, }; @@ -448,7 +448,7 @@ public static void FillPerkList() stackable = true, updateDescription = x => { - return Translations.PerkDatabase_15((0.05f * x).ToString("P")); + return Translations.PerkDatabase_15((0.02f * x).ToString("P")); }, }; @@ -604,7 +604,7 @@ public static void FillPerkList() }; new Perk() { - onApply = () => ModdedPlayer.Stats.armor.Add(80), + onApply = () => ModdedPlayer.Stats.armor.Add(100), category = PerkCategory.Defense, unlockPath = new int[] { 5 }, @@ -614,12 +614,12 @@ public static void FillPerkList() posX = 2.5f, posY = 0f, name = Translations.PerkDatabase_63, - originalDescription = Translations.PerkDatabase_64("80"), + originalDescription = Translations.PerkDatabase_64("100"), textureVariation = 0, stackable = true, updateDescription = x => { - return Translations.PerkDatabase_15((80 * x).ToString("N")); + return Translations.PerkDatabase_15((100 * x).ToString("N")); }, }; new Perk() @@ -673,7 +673,7 @@ public static void FillPerkList() new Perk() { - onApply = () => ModdedPlayer.Stats.magicDamageTaken.Multiply(0.85f), + onApply = () => ModdedPlayer.Stats.damageFromElite.Multiply(0.85f), category = PerkCategory.Defense, unlockPath = new int[] { 29, 31 }, @@ -682,8 +682,8 @@ public static void FillPerkList() scale = 1, posX = 3f, posY = -0.75f, - name = Translations.MainMenu_Guide_19, - originalDescription = Translations.PerkDatabase_70("15%"), + name = "Elite Slayer", + originalDescription = "Reduces damage taken from elites by 15%", textureVariation = 0, stackable = true, updateDescription = x => @@ -2826,7 +2826,7 @@ public static void FillPerkList() }; new Perk() { - onApply = () => ModdedPlayer.Stats.magicDamageTaken.Multiply(0.8f), + onApply = () => ModdedPlayer.Stats.damageFromElite.Multiply(0.7f), category = PerkCategory.Defense, unlockPath = new int[] { 35, 32 }, @@ -2835,8 +2835,8 @@ public static void FillPerkList() scale = 1, posX = 4f, posY = -0.75f, - name = Translations.PerkDatabase_332, - originalDescription = Translations.PerkDatabase_333("20%"), + name = "Elite Eater", + originalDescription = "Reduces damage taken from elites by 30%", textureVariation = 0, stackable = false, }; diff --git a/Translations.cs b/Translations.cs index 7e756b1..ff65baf 100644 --- a/Translations.cs +++ b/Translations.cs @@ -180,10 +180,6 @@ public partial class Translations public string _MainMenu_Guide_17 = "Armor"; public static string MainMenu_Guide_18(params object[] objects) => string.Format(instance._MainMenu_Guide_18, objects); public string _MainMenu_Guide_18 = "Armor provides physical damage reduction.\nPhysical damage reduction from armor is equal to {0}"; - public static string MainMenu_Guide_19 => instance._MainMenu_Guide_19; - public string _MainMenu_Guide_19 = "Magic Resistance"; - public static string MainMenu_Guide_20 => instance._MainMenu_Guide_20; - public string _MainMenu_Guide_20 = "Magic damage reduction. Decreases damage from enemy abilities."; public static string MainMenu_Guide_21 => instance._MainMenu_Guide_21; public string _MainMenu_Guide_21 = "Dodge Chance"; public static string MainMenu_Guide_22 => instance._MainMenu_Guide_22; From 7f47508be5b1e0887a8bd3317c58b0afde8b6eed Mon Sep 17 00:00:00 2001 From: LamaMega Date: Wed, 9 Apr 2025 16:45:34 +0200 Subject: [PATCH 02/27] Item Classes Added --- ChampionsOfForest.csproj | 1 + Items/BaseItem.cs | 14 +- Items/Item.cs | 6 +- Items/ItemDataBase.cs | 20 +- Items/ItemDataBase_ItemDefinitions.cs | 684 ++++++++++++------------- Items/ItemPickUp.cs | 2 +- Items/ItemTemplates.cs | 544 ++++++++++++++++++++ Items/PickUpManager.cs | 22 +- Network/CommandReader.cs | 6 +- Player/AutoPickupItems.cs | 6 +- Player/Crafting/Empowering.cs | 4 +- Player/Crafting/IndividualRerolling.cs | 4 +- Player/Crafting/Polishing.cs | 4 +- Player/Crafting/Reforging.cs | 8 +- Player/Crafting/Rerolling.cs | 4 +- Player/Main Menu/MainMenu_HUD.cs | 4 +- Player/Main Menu/MainMenu_Inventory.cs | 6 +- Player/RCoroutines.cs | 2 +- 18 files changed, 941 insertions(+), 400 deletions(-) create mode 100644 Items/ItemTemplates.cs diff --git a/ChampionsOfForest.csproj b/ChampionsOfForest.csproj index c7b6781..5ebb1f8 100644 --- a/ChampionsOfForest.csproj +++ b/ChampionsOfForest.csproj @@ -211,6 +211,7 @@ + diff --git a/Items/BaseItem.cs b/Items/BaseItem.cs index c8f6a39..59af41e 100644 --- a/Items/BaseItem.cs +++ b/Items/BaseItem.cs @@ -20,7 +20,7 @@ public enum ItemType public delegate bool OnItemConsume(Item other); public List> PossibleStats; - public int Rarity = 0; //rarity to display in different color + public int rarity = 0; //rarity to display in different color public int ID = 0; //the id of an item public int StackSize = 1; //how many items can be placed in one item slot? public bool CanConsume = false; //can you eat this bad boy? @@ -39,8 +39,8 @@ public enum WeaponModelType { None, GreatSword, LongSword, Hammer, Polearm, Axe, public int level = 1; //level of this item public int minLevel = 1; public int maxLevel = 1; - public Texture2D icon; //icon of this item - public bool PickUpAll = true; //should the item be picked one by one, or grab all at once + public Texture2D icon; //icon of this item + public bool PickUpAll = true; //should the item be picked one by one, or grab all at once public int subtype = 0; //Drop settings @@ -119,7 +119,7 @@ public BaseItem(params ItemDataBase.Stat[][] possibleStats) public BaseItem(List> possibleStats, int rarity, int StackSize, ItemType itemType, string name, string description, string lore, string tooltip, int minlevel, int maxlevel, Texture2D texture, bool pickupAll = false) { PossibleStats = possibleStats; - Rarity = rarity; + this.rarity = rarity; ID = ItemDataBase._Item_Bases.Count; this.StackSize = StackSize; type = itemType; @@ -147,7 +147,7 @@ public BaseItem(int[][] possibleStats, int rarity, int StackSize, ItemType itemT } PossibleStats.Add(list); } - Rarity = rarity; + this.rarity = rarity; ID = ItemDataBase._Item_Bases.Count; this.StackSize = StackSize; type = itemType; @@ -175,7 +175,7 @@ public BaseItem(int[][] possibleStats, int rarity, int iD, int StackSize, Weapon } PossibleStats.Add(list); } - Rarity = rarity; + this.rarity = rarity; ID = iD; this.StackSize = StackSize; type = ItemType.Weapon; @@ -302,7 +302,7 @@ public int GetDropSoundID() public float GetInvSoundPitch() { - return 1.15f - (float)Rarity / 15f; + return 1.15f - (float)rarity / 15f; } } } \ No newline at end of file diff --git a/Items/Item.cs b/Items/Item.cs index 647e4b8..8bfff37 100644 --- a/Items/Item.cs +++ b/Items/Item.cs @@ -68,7 +68,7 @@ public bool CombineItems(Item other) } int statindex = Stats.FindIndex(x => x.StatID == 3000); - Stats[statindex] = StatActions.GetSocketedStat(other.Rarity, this.type, other.subtype); + Stats[statindex] = StatActions.GetSocketedStat(other.rarity, this.type, other.subtype); OnEquip(); return true; } @@ -289,7 +289,7 @@ public Item(BaseItem b, int amount = 1, int increasedLevel = 0, bool roll = true base.onEquip = b.onEquip; base.onUnequip = b.onUnequip; base.PossibleStats = b.PossibleStats; - base.Rarity = b.Rarity; + base.rarity = b.rarity; base.uniqueStat = b.uniqueStat; base.ID = b.ID; base.type = b.type; @@ -311,7 +311,7 @@ public Item(BaseItem b, int amount = 1, int increasedLevel = 0, bool roll = true public float GetRarityMultiplier() { - switch (Rarity) + switch (rarity) { case 0: return 0.5f; diff --git a/Items/ItemDataBase.cs b/Items/ItemDataBase.cs index 48c9be2..1acb586 100644 --- a/Items/ItemDataBase.cs +++ b/Items/ItemDataBase.cs @@ -42,13 +42,13 @@ public static void Initialize() try { ItemBases.Add(_Item_Bases[i].ID, _Item_Bases[i]); - if (ItemRarityGroups.ContainsKey(_Item_Bases[i].Rarity)) + if (ItemRarityGroups.ContainsKey(_Item_Bases[i].rarity)) { - ItemRarityGroups[_Item_Bases[i].Rarity].Add(_Item_Bases[i].ID); + ItemRarityGroups[_Item_Bases[i].rarity].Add(_Item_Bases[i].ID); } else { - ItemRarityGroups.Add(_Item_Bases[i].Rarity, new List() { _Item_Bases[i].ID }); + ItemRarityGroups.Add(_Item_Bases[i].rarity, new List() { _Item_Bases[i].ID }); } } catch (System.Exception ex) @@ -79,7 +79,7 @@ public static void LogInfo() s += "\n\n\n There are " + ItemBases.Count + " items:\n"; for (int i = 0; i < 8; i++) { - BaseItem[] items = _Item_Bases.Where(a => a.Rarity == i).ToArray(); + BaseItem[] items = _Item_Bases.Where(a => a.rarity == i).ToArray(); s += " • Rarity tier of item [" + i + "] = " + items.Length; foreach (BaseItem a in items) { @@ -99,13 +99,13 @@ public static void LogInfo() s += "\n • Item type: [" + t.ToString() + "] = " + items.Length; for (int b = 0; b < 8; b++) { - BaseItem[] items2 = items.Where(a => a.Rarity == b).ToArray(); + BaseItem[] items2 = items.Where(a => a.rarity == b).ToArray(); s += "\n\t\t • RARITY " + b + " \"" + items2.Length + "\""; } foreach (BaseItem a in items) { - s += "\n\t • Item \"" + a.name + " ID [" + a.ID + "] RARITY [" + a.Rarity + "]\""; + s += "\n\t • Item \"" + a.name + " ID [" + a.ID + "] RARITY [" + a.rarity + "]\""; } s += "\n"; } @@ -125,12 +125,12 @@ public static void LogInfo() { for (int j = 1; j <= (int)BaseItem.WeaponModelType.Greatbow; j++) { - var weapons = itemsByType.Where(a => a.weaponModel == (BaseItem.WeaponModelType)j).OrderBy(a => a.ID + a.Rarity * 100000); + var weapons = itemsByType.Where(a => a.weaponModel == (BaseItem.WeaponModelType)j).OrderBy(a => a.ID + a.rarity * 100000); f.WriteLine(((BaseItem.WeaponModelType)j) + ";" + weapons.Count()); f.WriteLine("ID;RARITY;NAME;UNIQUE STAT;MIN LEVEL; MIN STATS QUANTITY;MAX STATS QUANTITY"); foreach (var weapon in weapons) { - f.WriteLine(weapon.ID + ";" + weapon.Rarity + ";" + weapon.name + ";" + weapon.uniqueStat + " ;" + weapon.minLevel + ";" + weapon.PossibleStats.Count(y => !y.Contains(null)) + ";" + weapon.PossibleStats.Count); + f.WriteLine(weapon.ID + ";" + weapon.rarity + ";" + weapon.name + ";" + weapon.uniqueStat + " ;" + weapon.minLevel + ";" + weapon.PossibleStats.Count(y => !y.Contains(null)) + ";" + weapon.PossibleStats.Count); } f.WriteLine(" "); @@ -139,11 +139,11 @@ public static void LogInfo() } else { - itemsByType = itemsByType.OrderBy(a => a.ID + a.Rarity * 100000); + itemsByType = itemsByType.OrderBy(a => a.ID + a.rarity * 100000); f.WriteLine("ID;RARITY;NAME;UNIQUE STAT;MIN LEVEL; MIN STATS QUANTITY;MAX STATS QUANTITY"); foreach (var item in itemsByType) { - f.WriteLine(item.ID + ";" + item.Rarity + ";" + item.name + ";" + item.uniqueStat + " ;" + item.minLevel + ";" + item.PossibleStats.Count(y => !y.Contains(null)) + ";" + item.PossibleStats.Count); + f.WriteLine(item.ID + ";" + item.rarity + ";" + item.name + ";" + item.uniqueStat + " ;" + item.minLevel + ";" + item.PossibleStats.Count(y => !y.Contains(null)) + ";" + item.PossibleStats.Count); } f.WriteLine(" "); diff --git a/Items/ItemDataBase_ItemDefinitions.cs b/Items/ItemDataBase_ItemDefinitions.cs index 89e39b6..d469133 100644 --- a/Items/ItemDataBase_ItemDefinitions.cs +++ b/Items/ItemDataBase_ItemDefinitions.cs @@ -2,13 +2,16 @@ using System.Collections.Generic; using ChampionsOfForest.Items; using ChampionsOfForest.Items.Sets; +using ChampionsOfForest.Items.ItemTemplates; using ChampionsOfForest.Localization; using ChampionsOfForest.Player; using static ChampionsOfForest.ItemDataBase.Stat; +using static ChampionsOfForest.ItemDataBase; namespace ChampionsOfForest { + public static partial class ItemDataBase { static Dictionary>> randomitemNamesPool; @@ -17,14 +20,7 @@ static void SetNamesPool() { randomitemNamesPool = new Dictionary>>(); - - //Shield, Quiver, Helmet, Boot, Pants, ChestArmor, ShoulderArmor, Glove, Bracer, Amulet, Ring, SpellScroll - - - - //Weapon, Other, Material - //} - } + } static List> GetQuiverNames() { @@ -299,7 +295,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_1/*Broken Flip-Flops*/, //tr description = Translations.ItemDataBase_ItemDefinitions_2/*A pair of damaged shoes. Judging by their condition, i can imagine what happened to their owner.*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_3/*Worn by one of the passengers of the plane that Eric also flew in.*/, //tr - Rarity = 0, + rarity = 0, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -318,7 +314,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_4/*Old Boots*/, //tr description = Translations.ItemDataBase_ItemDefinitions_5/*A pair of old boots. They must have been lying here for ages.*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_6/*Found on the Peninsula, but judging by their condition, they belong neither to a plane passenger nor a cannibal.*/, //tr - Rarity = 0, + rarity = 0, minLevel = 1, maxLevel = 2, CanConsume = false, @@ -337,7 +333,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_7/*Damaged Leather Boots*/, //tr description = Translations.ItemDataBase_ItemDefinitions_8/*A pair of leather boots. They look good and have only some scratches.*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_9/*They arrived to the Peninsula the same way Eric did. Since they were in a baggage, they avoided a lot of damage.*/, //tr - Rarity = 1, + rarity = 1, minLevel = 1, maxLevel = 6, CanConsume = false, @@ -356,7 +352,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_10/*Sturdy Leather Boots*/, //tr description = Translations.ItemDataBase_ItemDefinitions_11/*A pair of leather boots. They are in a very good condition.*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_12/*They arrived to the Peninsula the same way Eric did. Eric found them undamaged in their original box. They still had a pricetag - $419,99.*/, //tr - Rarity = 2, + rarity = 2, minLevel = 7, maxLevel = 12, CanConsume = false, @@ -376,7 +372,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_13/*Damaged Army Boots*/, //tr description = Translations.ItemDataBase_ItemDefinitions_14/*Sturdy, hard, resistant but damaged boots.*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_15/*They look modern, almost too modern for everything here.*/, //tr - Rarity = 3, + rarity = 3, minLevel = 4, maxLevel = 9, CanConsume = false, @@ -396,7 +392,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_16/*Army Boots*/, //tr description = Translations.ItemDataBase_ItemDefinitions_17/*Sturdy, hard, resistant boots.*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_15/*They look modern, almost too modern for everything here.*/, //tr - Rarity = 4, + rarity = 4, minLevel = 10, maxLevel = 14, CanConsume = false, @@ -418,7 +414,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_18/*Armsy Skin Footwear*/, //tr description = Translations.ItemDataBase_ItemDefinitions_19/*Severed armsy legs, with all of their insides removed. All thats left is dried mutated skin.*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_20/*Armsy, the second heaviest of the mutants needs very resistant skin. It often drags its legs on the ground when it moves. The skin on their legs grew very thick, and has bone tissue mixed with skin tissue.*/, //tr - Rarity = 6, + rarity = 6, minLevel = 5, maxLevel = 8, CanConsume = false, @@ -436,7 +432,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_21/*Finger Warmer*/, //tr description = Translations.ItemDataBase_ItemDefinitions_22/*A little glove to keep your fingers warm and cozy.*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_23/*Made of wool.*/, //tr - Rarity = 0, + rarity = 0, minLevel = 1, maxLevel = 2, CanConsume = false, @@ -455,7 +451,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_24/*Thick Rubber Glove*/, //tr description = Translations.ItemDataBase_ItemDefinitions_25/*A glove that helps get a better grip.*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_23/*Made of wool.*/, //tr - Rarity = 1, + rarity = 1, minLevel = 1, maxLevel = 2, CanConsume = false, @@ -475,7 +471,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_26/*Tribal Glove*/, //tr description = Translations.ItemDataBase_ItemDefinitions_27/*Offers medicore protection.*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_28/*Glove made out of thin bones, some may possibly be from a human.*/, //tr - Rarity = 3, + rarity = 3, minLevel = 1, maxLevel = 2, CanConsume = false, @@ -496,7 +492,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_29/*Tribe Leader Glove*/, //tr description = Translations.ItemDataBase_ItemDefinitions_30/*A glove that offers little protection but a lot of offensive stats.*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_31/*A glove made of bones, some have engravings of crosses.*/, //tr - Rarity = 4, + rarity = 4, minLevel = 1, maxLevel = 4, CanConsume = false, @@ -513,7 +509,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_32/*Worn Shorts*/, //tr description = Translations.ItemDataBase_ItemDefinitions_33/*Some protection for legs.*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_34/*Short, made out of cheap thin fabric, and on top of that they are damaged. But its better than nothing.*/, //tr - Rarity = 0, + rarity = 0, minLevel = 1, maxLevel = 4, CanConsume = false, @@ -531,7 +527,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_35/*Cargo Shorts*/, //tr description = Translations.ItemDataBase_ItemDefinitions_36/*No protection at all but they allow to carry more items.*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_37/*They are ugly as hell tho*/, //tr - Rarity = 1, + rarity = 1, minLevel = 1, maxLevel = 4, CanConsume = false, @@ -549,7 +545,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_38/*Passenger's Jacket*/, //tr description = Translations.ItemDataBase_ItemDefinitions_39/*It's a little torn. */, //tr lore = Translations.ItemDataBase_ItemDefinitions_40/*This jacket was worn by Preston A. the 34th passenger on the plane. Eric talked to him at the airport. Guy was odd, and now he's dead.*/, //tr - Rarity = 0, + rarity = 0, minLevel = 1, maxLevel = 4, CanConsume = false, @@ -569,7 +565,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_41/*Leather Jacket*/, //tr description = Translations.ItemDataBase_ItemDefinitions_42/*Offers little protection*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_43/*This jacket was in a baggage of one of the plane passengers*/, //tr - Rarity = 1, + rarity = 1, minLevel = 4, maxLevel = 7, CanConsume = false, @@ -588,7 +584,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_44/*Boar Skin Armor*/, //tr description = Translations.ItemDataBase_ItemDefinitions_45/*It's made from a skin of a huge individual. It's heavy and thick, and surely can protect from attacks of weaker enemies.*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_46/*Boar, one of the animals on the peninsula, is rather rare and it's skin is very durable.*/, //tr - Rarity = 1, + rarity = 1, minLevel = 4, maxLevel = 8, CanConsume = false, @@ -607,7 +603,7 @@ public static void PopulateItems() }) { name = Translations.ItemDataBase_ItemDefinitions_47/*Crocodile Skin Armor*/, //tr - Rarity = 2, + rarity = 2, minLevel = 7, maxLevel = 9, CanConsume = false, @@ -627,7 +623,7 @@ public static void PopulateItems() }) { name = Translations.ItemDataBase_ItemDefinitions_48/*Plate armour*/, //tr - Rarity = 4, + rarity = 4, minLevel = 1, maxLevel = 5, CanConsume = false, @@ -649,7 +645,7 @@ public static void PopulateItems() }) { name = Translations.ItemDataBase_ItemDefinitions_49/*Bear Skin Armor*/, //tr - Rarity = 3, + rarity = 3, minLevel = 7, maxLevel = 8, CanConsume = false, @@ -670,7 +666,7 @@ public static void PopulateItems() }) { name = Translations.ItemDataBase_ItemDefinitions_50/*Archer's Gear*/, //tr - Rarity = 5, + rarity = 5, minLevel = 7, maxLevel = 9, CanConsume = false, @@ -694,7 +690,7 @@ public static void PopulateItems() }) { name = Translations.ItemDataBase_ItemDefinitions_51/*Hazard's Gear*/, //tr - Rarity = 6, + rarity = 6, minLevel = 5, maxLevel = 6, CanConsume = false, @@ -721,7 +717,7 @@ public static void PopulateItems() description = Translations.ItemDataBase_ItemDefinitions_53/*Magic flows through the entirety of this object. It's made out of unknown material*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_54/*Robe looks like it was created yesterday, but its older than the oldest of mankinds' civilizations. Simply looking at it sends chills down the spine.*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_55/*Empowers cataclysm. The vortex turns blue, damage is increased, freezes enemies */, //tr - Rarity = 7, + rarity = 7, minLevel = 15, maxLevel = 20, CanConsume = false, @@ -742,7 +738,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_56/*Rusty Longsword*/, //tr description = Translations.ItemDataBase_ItemDefinitions_57/*A long, very heavy sword. Edge got dull over time. Still, it's in a condition that allows me to slice some enemies in half.*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_58/*The sword appears to be from medieval ages, through it's not. It was made a lot later. It never was used as a weapon in battles, because it was merely a decoration.*/, //tr - Rarity = 3, + rarity = 3, minLevel = 13, maxLevel = 15, CanConsume = false, @@ -764,7 +760,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_59/*Longsword*/, //tr description = Translations.ItemDataBase_ItemDefinitions_60/*Sharp and long*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_61/*The sword is in perfect contidion.*/, //tr - Rarity = 4, + rarity = 4, minLevel = 20, maxLevel = 27, CanConsume = false, @@ -788,7 +784,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_62/*Full Metal Sword*/, //tr description = Translations.ItemDataBase_ItemDefinitions_63/*It's sooo big...*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_64/*A normal human cannot lift this.*/, //tr - Rarity = 6, + rarity = 6, minLevel = 50, maxLevel = 52, CanConsume = false, @@ -812,7 +808,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_65/*The Leech*/, //tr description = Translations.ItemDataBase_ItemDefinitions_66/*Hey where did my health g- oh it's back...*/, //tr - Rarity = 6, + rarity = 6, minLevel = 60, maxLevel = 61, CanConsume = false, @@ -840,7 +836,7 @@ public static void PopulateItems() description = Translations.ItemDataBase_ItemDefinitions_68/*SmokeyTheBear died because he never used this item.*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_69/*Smokey was the friend of allmighty Hazard, who can materialize any kind of weapon at the snap of his fingers. Hazard remebered Smokey's favourite playstyle and he gave him this as a gift to purge the sh** out of mutants.*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_70("250%", "500%")/*Crossbows operate at 250% speed and deal 400% increased damage*/, //tr - Rarity = 7, + rarity = 7, minLevel = 5, maxLevel = 8, CanConsume = false, @@ -863,7 +859,7 @@ public static void PopulateItems() }) { name = Translations.ItemDataBase_ItemDefinitions_71/*Broken shield*/, //tr - Rarity = 0, + rarity = 0, minLevel = 1, maxLevel = 2, CanConsume = false, @@ -882,7 +878,7 @@ public static void PopulateItems() }) { name = Translations.Item_1/*Shield*/, //tr - Rarity = 1, + rarity = 1, minLevel = 3, maxLevel = 6, CanConsume = false, @@ -902,7 +898,7 @@ public static void PopulateItems() }) { name = Translations.ItemDataBase_ItemDefinitions_72/*Tower Shield*/, //tr - Rarity = 3, + rarity = 3, minLevel = 5, maxLevel = 8, CanConsume = false, @@ -917,7 +913,7 @@ public static void PopulateItems() }) { name = Translations.ItemDataBase_ItemDefinitions_73/*Broken Leather Shoulder Armor*/, //tr - Rarity = 0, + rarity = 0, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -932,7 +928,7 @@ public static void PopulateItems() }) { name = Translations.ItemDataBase_ItemDefinitions_74/*Leather Shoulder Armor*/, //tr - Rarity = 1, + rarity = 1, minLevel = 2, maxLevel = 5, CanConsume = false, @@ -955,7 +951,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_75/*Phase Pauldrons*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_76/*The distance of blink is increased by 40 meters, and blink now hits everything that you teleported through*/, //tr - Rarity = 7, + rarity = 7, minLevel = 5, maxLevel = 9, CanConsume = false, @@ -975,7 +971,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_77/*MAGA Cap*/, //tr description = Translations.ItemDataBase_ItemDefinitions_78/*Wearing this item channels the power of D.Trump to you*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_79/*... or does it?*/, //tr - Rarity = 1, + rarity = 1, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -1002,7 +998,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_80/*Hubble's Vision*/, //tr description = Translations.ItemDataBase_ItemDefinitions_81/*Wearing this item empowers your black hole spell*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_82/*Man, fuck gravity.*/, //tr - Rarity = 6, + rarity = 6, minLevel = 10, maxLevel = 11, CanConsume = false, @@ -1016,7 +1012,7 @@ public static void PopulateItems() }) { name = Translations.ItemDataBase_ItemDefinitions_83/*Broken Loop*/, //tr - Rarity = 0, + rarity = 0, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -1031,7 +1027,7 @@ public static void PopulateItems() }) { name = Translations.ItemDataBase_ItemDefinitions_84/*Loop*/, //tr - Rarity = 1, + rarity = 1, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -1049,7 +1045,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_85/*Toxic Ring*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_87/*What the fuck did you just fucking say about me, you little bitch? I'll have you know I graduated top of my class in the Navy Seals, and I've been involved in numerous secret raids on Al-Quaeda, and I have over 300 confirmed kills. I am trained in gorilla warfare and I'm the top sniper in the entire US armed forces. You are nothing to me but just another target. I will wipe you the fuck out with precision the likes of which has never been seen before on this Earth, mark my fucking words. You think you can get away with saying that shit to me over the Internet? Think again, fucker. As we speak I am contacting my secret network of spies across the USA and your IP is being traced right now so you better prepare for the storm, maggot. The storm that wipes out the pathetic little thing you call your life. You're fucking dead, kid. I can be anywhere, anytime, and I can kill you in over seven hundred ways, and that's just with my bare hands. Not only am I extensively trained in unarmed combat, but I have access to the entire arsenal of the United States Marine Corps and I will use it to its full extent to wipe your miserable ass off the face of the continent, you little shit. If only you could have known what unholy retribution your little /'clever\' comment was about to bring down upon you, maybe you would have held your fucking tongue. But you couldn't, you didn't, and now you're paying the price, you goddamn idiot. I will shit fury all over you and you will drown in it. You're fucking dead, kiddo."*/, //tr - Rarity = 3, + rarity = 3, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -1065,7 +1061,7 @@ public static void PopulateItems() }) { name = Translations.ItemDataBase_ItemDefinitions_88/*Scarf*/, //tr - Rarity = 1, + rarity = 1, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -1080,7 +1076,7 @@ public static void PopulateItems() }) { name = Translations.ItemDataBase_ItemDefinitions_89/*Damaged Bracer*/, //tr - Rarity = 0, + rarity = 0, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -1096,7 +1092,7 @@ public static void PopulateItems() }) { name = Translations.ItemDataBase_ItemDefinitions_90/*Worn Bracer*/, //tr - Rarity = 1, + rarity = 1, minLevel = 3, maxLevel = 10, CanConsume = false, @@ -1113,7 +1109,7 @@ public static void PopulateItems() }) { name = Translations.ItemDataBase_ItemDefinitions_91/*Leather Bracer*/, //tr - Rarity = 2, + rarity = 2, minLevel = 4, maxLevel = 10, CanConsume = false, @@ -1128,7 +1124,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_92/*Greater Mutated Heart*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_93/*Can be consumed by right clicking it*/, //tr - Rarity = 7, + rarity = 7, minLevel = 1, maxLevel = 3, CanConsume = true, @@ -1143,7 +1139,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_94/*Lesser Mutated Heart*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_93/*Can be consumed by right clicking it*/, //tr - Rarity = 5, + rarity = 5, minLevel = 1, maxLevel = 6, CanConsume = true, @@ -1163,7 +1159,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_95/*Spiked ring*/, //tr description = Translations.ItemDataBase_ItemDefinitions_96/*Armor piercing for either melee or ranged weapons*/, //tr - Rarity = 4, + rarity = 4, minLevel = 10, maxLevel = 16, CanConsume = false, @@ -1183,7 +1179,7 @@ public static void PopulateItems() }) { name = Translations.ItemDataBase_ItemDefinitions_97/*Piercer*/, //tr - Rarity = 4, + rarity = 4, minLevel = 11, maxLevel = 15, CanConsume = false, @@ -1204,7 +1200,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_98/*Moon Boots*/, //tr description = Translations.ItemDataBase_ItemDefinitions_99/*A pair of boots from the moon.*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_100/*It is said that the wearer will not take fall damage while wearing these boots and will jump like on the moon, I wouldn't trust it tough.*/, //tr - Rarity = 4, //range 0-7, 0 is most common, 7 is ultra rare + rarity = 4, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 10, maxLevel = 14, CanConsume = false, @@ -1225,7 +1221,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_101/*Golden Ring of Strength*/, //tr description = Translations.ItemDataBase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_103/*A Golden Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - Rarity = 5, //range 0-7, 0 is most common, 7 is ultra rare + rarity = 5, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 10, maxLevel = 14, CanConsume = false, @@ -1246,7 +1242,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_104/*Golden Ring of Vitality*/, //tr description = Translations.ItemDataBase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_103/*A Golden Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - Rarity = 5, //range 0-7, 0 is most common, 7 is ultra rare + rarity = 5, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 10, maxLevel = 14, CanConsume = false, @@ -1268,7 +1264,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_105/*Golden Ring of Agility*/, //tr description = Translations.ItemDataBase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_103/*A Golden Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - Rarity = 5, //range 0-7, 0 is most common, 7 is ultra rare + rarity = 5, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 10, maxLevel = 20, CanConsume = false, @@ -1289,7 +1285,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_106/*Golden Ring of Intelligence*/, //tr description = Translations.ItemDataBase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_103/*A Golden Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - Rarity = 5, //range 0-7, 0 is most common, 7 is ultra rare + rarity = 5, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 10, maxLevel = 20, CanConsume = false, @@ -1309,7 +1305,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_107/*Silver Ring of Strength*/, //tr description = Translations.ItemDataBase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_108/*A Silver Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - Rarity = 4, //range 0-7, 0 is most common, 7 is ultra rare + rarity = 4, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 5, maxLevel = 20, CanConsume = false, @@ -1329,7 +1325,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_109/*Silver Ring of Vitality*/, //tr description = Translations.ItemDataBase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_108/*A Silver Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - Rarity = 4, //range 0-7, 0 is most common, 7 is ultra rare + rarity = 4, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 5, maxLevel = 8, CanConsume = false, @@ -1349,7 +1345,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_110/*Silver Ring of Agility*/, //tr description = Translations.ItemDataBase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_108/*A Silver Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - Rarity = 4, //range 0-7, 0 is most common, 7 is ultra rare + rarity = 4, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 5, maxLevel = 20, CanConsume = false, @@ -1369,7 +1365,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_111/*Silver Ring of Intelligence*/, //tr description = Translations.ItemDataBase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_108/*A Silver Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - Rarity = 4, //range 0-7, 0 is most common, 7 is ultra rare + rarity = 4, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 5, maxLevel = 20, CanConsume = false, @@ -1389,7 +1385,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_112/*Steel Ring of Strength*/, //tr description = Translations.ItemDataBase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_113/*A Steel Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - Rarity = 2, //range 0-7, 0 is most common, 7 is ultra rare + rarity = 2, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 1, maxLevel = 6, CanConsume = false, @@ -1408,7 +1404,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_114/*Steel Ring of Vitality*/, //tr description = Translations.ItemDataBase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_113/*A Steel Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - Rarity = 2, //range 0-7, 0 is most common, 7 is ultra rare + rarity = 2, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 1, maxLevel = 6, CanConsume = false, @@ -1427,7 +1423,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_115/*Steel Ring of Agility*/, //tr description = Translations.ItemDataBase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_113/*A Steel Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - Rarity = 2, //range 0-7, 0 is most common, 7 is ultra rare + rarity = 2, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 1, maxLevel = 10, CanConsume = false, @@ -1446,7 +1442,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_116/*Steel Ring of Intelligence*/, //tr description = Translations.ItemDataBase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_113/*A Steel Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - Rarity = 2, //range 0-7, 0 is most common, 7 is ultra rare + rarity = 2, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 1, maxLevel = 6, CanConsume = false, @@ -1482,7 +1478,7 @@ public static void PopulateItems() description = Translations.ItemDataBase_ItemDefinitions_118/*An Ancient magical Ring of great power.*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_119/*It looks like and ordinay ring, but a strange energy is surrounding it. The Ring is said to have been found inside a volcanic rock by an archeologist, who went mad and isolated himself on the peninsula many years ago. But that's just a fairy tale, ring?*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_120/*Attracts unwanted attention of an unknown entity.*/, //tr - Rarity = 7, //range 0-7, 0 is most common, 7 is ultra rare + rarity = 7, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 20, maxLevel = 30, CanConsume = false, @@ -1505,7 +1501,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_121/*Golden Locket of Strength*/, //tr description = Translations.ItemDataBase_ItemDefinitions_122/*A Locket of ancient times.*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_123/*A Golden Locket that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - Rarity = 3, //range 0-7, 0 is most common, 7 is ultra rare + rarity = 3, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 15, maxLevel = 20, CanConsume = false, @@ -1526,7 +1522,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_124/*Golden Locket of Vitality*/, //tr description = Translations.ItemDataBase_ItemDefinitions_122/*A Locket of ancient times.*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_123/*A Golden Locket that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - Rarity = 3, //range 0-7, 0 is most common, 7 is ultra rare + rarity = 3, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 15, maxLevel = 20, CanConsume = false, @@ -1547,7 +1543,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_125/*Golden Locket of Agility*/, //tr description = Translations.ItemDataBase_ItemDefinitions_122/*A Locket of ancient times.*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_123/*A Golden Locket that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - Rarity = 3, //range 0-7, 0 is most common, 7 is ultra rare + rarity = 3, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 15, maxLevel = 20, CanConsume = false, @@ -1568,7 +1564,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_126/*Golden Locket of Intelligence*/, //tr description = Translations.ItemDataBase_ItemDefinitions_122/*A Locket of ancient times.*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_123/*A Golden Locket that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - Rarity = 3, //range 0-7, 0 is most common, 7 is ultra rare + rarity = 3, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 15, maxLevel = 20, CanConsume = false, @@ -1591,7 +1587,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_127/*Silver Locket of Strength*/, //tr description = Translations.ItemDataBase_ItemDefinitions_122/*A Locket of ancient times.*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_128/*A Silver Locket that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - Rarity = 2, //range 0-7, 0 is most common, 7 is ultra rare + rarity = 2, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 5, maxLevel = 20, CanConsume = false, @@ -1612,7 +1608,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_129/*Silver Locket of Vitality*/, //tr description = Translations.ItemDataBase_ItemDefinitions_122/*A Locket of ancient times.*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_128/*A Silver Locket that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - Rarity = 2, //range 0-7, 0 is most common, 7 is ultra rare + rarity = 2, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 5, maxLevel = 20, CanConsume = false, @@ -1633,7 +1629,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_130/*Silver Locket of Agility*/, //tr description = Translations.ItemDataBase_ItemDefinitions_122/*A Locket of ancient times.*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_128/*A Silver Locket that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - Rarity = 2, //range 0-7, 0 is most common, 7 is ultra rare + rarity = 2, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 5, maxLevel = 8, CanConsume = false, @@ -1654,7 +1650,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_131/*Silver Locket of Intelligence*/, //tr description = Translations.ItemDataBase_ItemDefinitions_122/*A Locket of ancient times.*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_128/*A Silver Locket that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - Rarity = 2, //range 0-7, 0 is most common, 7 is ultra rare + rarity = 2, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 5, maxLevel = 8, CanConsume = false, @@ -1678,7 +1674,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_132/*Emerald Pendant of Strength*/, //tr description = Translations.ItemDataBase_ItemDefinitions_133/*A Pendant of ancient times.*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_134/*An Emerald Pendant that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - Rarity = 5, //range 0-7, 0 is most common, 7 is ultra rare + rarity = 5, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 10, maxLevel = 12, CanConsume = false, @@ -1700,7 +1696,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_135/*Emerald Pendant of Vitality*/, //tr description = Translations.ItemDataBase_ItemDefinitions_133/*A Pendant of ancient times.*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_134/*An Emerald Pendant that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - Rarity = 5, //range 0-7, 0 is most common, 7 is ultra rare + rarity = 5, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 10, maxLevel = 12, CanConsume = false, @@ -1723,7 +1719,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_136/*Emerald Pendant of Agility*/, //tr description = Translations.ItemDataBase_ItemDefinitions_133/*A Pendant of ancient times.*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_134/*An Emerald Pendant that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - Rarity = 5, //range 0-7, 0 is most common, 7 is ultra rare + rarity = 5, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 10, maxLevel = 12, CanConsume = false, @@ -1746,7 +1742,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_137/*Emerald Pendant of Intelligence*/, //tr description = Translations.ItemDataBase_ItemDefinitions_133/*A Pendant of ancient times.*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_134/*An Emerald Pendant that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - Rarity = 5, //range 0-7, 0 is most common, 7 is ultra rare + rarity = 5, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 10, maxLevel = 12, CanConsume = false, @@ -1771,7 +1767,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_138/*Diamond Pendant of Strength*/, //tr description = Translations.ItemDataBase_ItemDefinitions_133/*A Pendant of ancient times.*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_139/*A Diamond Pendant that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - Rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare + rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 12, maxLevel = 14, CanConsume = false, @@ -1795,7 +1791,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_140/*Diamond Pendant of Vitality*/, //tr description = Translations.ItemDataBase_ItemDefinitions_133/*A Pendant of ancient times.*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_139/*A Diamond Pendant that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - Rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare + rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 12, maxLevel = 14, CanConsume = false, @@ -1819,7 +1815,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_141/*Diamond Pendant of Agility*/, //tr description = Translations.ItemDataBase_ItemDefinitions_133/*A Pendant of ancient times.*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_139/*A Diamond Pendant that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - Rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare + rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 12, maxLevel = 14, CanConsume = false, @@ -1844,7 +1840,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_142/*Diamond Pendant of Intelligence*/, //tr description = Translations.ItemDataBase_ItemDefinitions_133/*A Pendant of ancient times.*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_139/*A Diamond Pendant that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - Rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare + rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 12, maxLevel = 14, CanConsume = false, @@ -1870,7 +1866,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_143/*Armsy Finger Necklace*/, //tr description = Translations.ItemDataBase_ItemDefinitions_144/*A Necklace decorated with armsy fingertips.*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_145/*A Necklace made from the fingertips of an armsy, yeilding it's raw power and strentgh.*/, //tr - Rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare + rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 1, maxLevel = 5, CanConsume = false, @@ -1898,7 +1894,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_146/*Virginia Heart Pendant*/, //tr description = Translations.ItemDataBase_ItemDefinitions_147/*A Pendant of a petrified Virginia heart.*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_148/*A Pendant made from a petrified Virginia heart, yeilding it's love and Vitality.*/, //tr - Rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare + rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 1, maxLevel = 5, CanConsume = false, @@ -1926,7 +1922,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_149/*Cowman Toe Necklace*/, //tr description = Translations.ItemDataBase_ItemDefinitions_150/*A Necklace decorated with cowman toes.*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_151/*A Necklace made from the fingertips of an armsy, yeilding it's speed and agility.*/, //tr - Rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare + rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 20, maxLevel = 40, CanConsume = false, @@ -1957,7 +1953,7 @@ public static void PopulateItems() description = Translations.ItemDataBase_ItemDefinitions_153/*A Pendant of a shrunken babyhead.*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_154/*A pedant of great power. Obtainable only from babies or crafting*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_155(1)/*decrease a random cooldown by 1 second whenever you hit something with melee or ranged attack.*/, //tr - Rarity = 7, //range 0-7, 0 is most common, 7 is ultra rare + rarity = 7, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 30, maxLevel = 40, CanConsume = false, @@ -1988,7 +1984,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_156/*Megan's Locket*/, //tr description = Translations.ItemDataBase_ItemDefinitions_157/*The Locket Megan wore.*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_158/*Megan wore this Locket, it has a picture of her mom in it.*/, //tr - Rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare + rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 1, maxLevel = 4, CanConsume = false, @@ -2008,7 +2004,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_159/*Relic Hammer*/, //tr description = Translations.ItemDataBase_ItemDefinitions_160/*It's slow and weak.*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_161/*Slows on hit*/, //tr - Rarity = 2, + rarity = 2, minLevel = 20, maxLevel = 22, CanConsume = false, @@ -2033,7 +2029,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_162/*Black Hammer*/, //tr description = Translations.ItemDataBase_ItemDefinitions_163/*It's slow but with enough strength i can make it a very deadly tool*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_161/*Slows on hit*/, //tr - Rarity = 4, + rarity = 4, minLevel = 30, maxLevel = 35, CanConsume = false, @@ -2052,7 +2048,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_164/*Potato Sack*/, //tr description = Translations.ItemDataBase_ItemDefinitions_165/*Can be used as a quiver*/, //tr - Rarity = 0, + rarity = 0, minLevel = 1, maxLevel = 4, CanConsume = false, @@ -2071,7 +2067,7 @@ public static void PopulateItems() }) { name = Translations.ItemDataBase_ItemDefinitions_166/*Rabbit Skin Quiver*/, //tr - Rarity = 1, + rarity = 1, minLevel = 2, maxLevel = 3, CanConsume = false, @@ -2092,7 +2088,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_167/*Hollow Log*/, //tr description = Translations.ItemDataBase_ItemDefinitions_168/*It allows for faster drawing of arrow than a cloth quiver*/, //tr - Rarity = 2, + rarity = 2, minLevel = 6, maxLevel = 9, CanConsume = false, @@ -2113,7 +2109,7 @@ public static void PopulateItems() }) { name = Translations.ItemDataBase_ItemDefinitions_169/*Spellbound Quiver*/, //tr - Rarity = 3, + rarity = 3, minLevel = 6, maxLevel = 11, CanConsume = false, @@ -2137,7 +2133,7 @@ public static void PopulateItems() }) { name = Translations.ItemDataBase_ItemDefinitions_170/*Long Lost Quiver*/, //tr - Rarity = 5, + rarity = 5, minLevel = 12, maxLevel = 20, CanConsume = false, @@ -2157,7 +2153,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_171/*Spell Scroll*/, //tr description = Translations.ItemDataBase_ItemDefinitions_172/*Contains a lot of information on how to properly cast spells to achieve better results*/, //tr - Rarity = 1, + rarity = 1, minLevel = 1, maxLevel = 1, CanConsume = false, @@ -2176,7 +2172,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_173/*Cloth Pants*/, //tr description = Translations.ItemDataBase_ItemDefinitions_174/*Offer little protction*/, //tr - Rarity = 1, + rarity = 1, minLevel = 2, maxLevel = 5, CanConsume = false, @@ -2196,7 +2192,7 @@ public static void PopulateItems() }) { name = Translations.ItemDataBase_ItemDefinitions_175/*Rough Hide Leggins*/, //tr - Rarity = 3, + rarity = 3, minLevel = 1, maxLevel = 1, CanConsume = false, @@ -2218,7 +2214,7 @@ public static void PopulateItems() }) { name = Translations.ItemDataBase_ItemDefinitions_176/*Plate Leggins*/, //tr - Rarity = 4, + rarity = 4, minLevel = 4, maxLevel = 10, CanConsume = false, @@ -2239,7 +2235,7 @@ public static void PopulateItems() }) { name = Translations.ItemDataBase_ItemDefinitions_177/*Sage's Robes*/, //tr - Rarity = 3, + rarity = 3, minLevel = 1, maxLevel = 6, CanConsume = false, @@ -2266,7 +2262,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_178/*Hammer Jammers*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_179("450%")/*Damage of your smash attack is increased by 450%, hammer stun duration is doubled*/, //tr - Rarity = 7, + rarity = 7, minLevel = 20, maxLevel = 28, CanConsume = false, @@ -2291,7 +2287,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_180/*Pirate Pants*/, //tr description = Translations.ItemDataBase_ItemDefinitions_181/*Those pants are ligh and comfortable. They offer plenty of mobility but lack in protection.*/, //tr - Rarity = 5, + rarity = 5, minLevel = 1, maxLevel = 1, CanConsume = false, @@ -2319,7 +2315,7 @@ public static void PopulateItems() description = Translations.ItemDataBase_ItemDefinitions_183/*They look like yoga pants but for a man the size of a wardrobe*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_184/*Once upon a time there was a man who was in a basement and fed himself with nothing but nuggets. He got so obese that friends and family started worrying. Hazard noticed this man and cursed his pants to force him to excercise.*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_185("60%", "1%")/*While moving, energy regeneration and damage is increased by 40%. While standing still for longer than a second, you loose 1% of max health per second.*/, //tr - Rarity = 7, + rarity = 7, minLevel = 14, maxLevel = 15, CanConsume = false, @@ -2337,7 +2333,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_186/*Leather Mantle*/, //tr description = Translations.ItemDataBase_ItemDefinitions_187/*A piece of cloth to give protection from */, //tr - Rarity = 1, + rarity = 1, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -2358,7 +2354,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_188/*Shoulder Guards*/, //tr description = Translations.ItemDataBase_ItemDefinitions_189/*Medium armor piece.*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_190/*Heavy armor*/, //tr - Rarity = 2, + rarity = 2, minLevel = 4, maxLevel = 7, CanConsume = false, @@ -2383,7 +2379,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_191/*Heavy Shoulder Plates*/, //tr description = Translations.ItemDataBase_ItemDefinitions_192/*Heavy armor piece. They offer great protection at the cost of attack speed and movement speed decrease*/, //tr - Rarity = 4, + rarity = 4, minLevel = 15, maxLevel = 20, CanConsume = false, @@ -2407,7 +2403,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_193/*Etched Mantle*/, //tr description = Translations.ItemDataBase_ItemDefinitions_194/*Those pauldrons empower wearer's combat skill*/, //tr - Rarity = 3, + rarity = 3, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -2430,7 +2426,7 @@ public static void PopulateItems() }) { name = Translations.ItemDataBase_ItemDefinitions_195/*Assassins Pauldrons*/, //tr - Rarity = 5, + rarity = 5, minLevel = 4, maxLevel = 6, CanConsume = false, @@ -2460,7 +2456,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_196/*Death Pact*/, //tr description = Translations.ItemDataBase_ItemDefinitions_197/*Find the greatest strength on the border of life and death.*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_198("6%", "5%")/*Every attack you make decreases your health by 7% of max health. For every percent of missing health you gain 5% damage amplification. This damage cannot kill you.*/, //tr - Rarity = 7, + rarity = 7, minLevel = 5, maxLevel = 8, CanConsume = false, @@ -2486,7 +2482,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_199/*Maximale Qualitöt*/, //tr description = Translations.ItemDataBase_ItemDefinitions_200/*A platinum ring with the most expensive jewels engraved on it. It's quality is uncomparable.*/, //tr - Rarity = 6, + rarity = 6, minLevel = 1, maxLevel = 4, CanConsume = false, @@ -2502,7 +2498,7 @@ public static void PopulateItems() description = Translations.ItemDataBase_ItemDefinitions_202/*A object filled with both destructive and creative energy. Allows to re-assign all spent mutation points*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_203/*This powerful relic contains so much power, that it can kill anything and force it to come back to life, resulting in it's rebirth.*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_204/*Can be consumed by right clicking it. */, //tr - Rarity = 4, + rarity = 4, minLevel = 1, maxLevel = 2, CanConsume = true, @@ -2523,7 +2519,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_205/*Round Shield*/, //tr description = Translations.ItemDataBase_ItemDefinitions_206/*A sturdy shield made of wood and reinforced with iron.*/, //tr - Rarity = 2, + rarity = 2, minLevel = 5, maxLevel = 8, CanConsume = false, @@ -2544,7 +2540,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_207/*Old Buckler*/, //tr description = Translations.ItemDataBase_ItemDefinitions_208/*An old shield.*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_209/*This item has a lot of scratches that look like they were made by something with sharp claws.*/, //tr - Rarity = 1, + rarity = 1, minLevel = 4, maxLevel = 12, CanConsume = false, @@ -2567,7 +2563,7 @@ public static void PopulateItems() }) { name = Translations.ItemDataBase_ItemDefinitions_210/*Dark Oak Shield*/, //tr - Rarity = 4, + rarity = 4, minLevel = 1, maxLevel = 1, CanConsume = false, @@ -2591,7 +2587,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_211/*Bone Shield*/, //tr description = Translations.ItemDataBase_ItemDefinitions_212/*A shield made of bones, held together by thick steel wire.*/, //tr - Rarity = 3, + rarity = 3, minLevel = 1, maxLevel = 1, CanConsume = false, @@ -2608,7 +2604,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_213/*Dull Longsword*/, //tr description = Translations.ItemDataBase_ItemDefinitions_214/*It's round on the edges*/, //tr - Rarity = 0, + rarity = 0, minLevel = 15, maxLevel = 20, CanConsume = false, @@ -2629,7 +2625,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_215/*Iron Horn*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_216("10%")/*When using Warcry, you and all allies recieve armor bonus equal to 10% of your armor*/, //tr - Rarity = 4, + rarity = 4, minLevel = 1, maxLevel = 2, CanConsume = false, @@ -2658,7 +2654,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_217/*The Great Iron Horn*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_216("10%") + Translations.ItemDataBase_ItemDefinitions_608/*When using Warcry, you and all allies recieve armor bonus equal to 10% of your armor*/, //tr - Rarity = 7, + rarity = 7, minLevel = 1, maxLevel = 2, CanConsume = false, @@ -2690,7 +2686,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_218/*Horned Helmet*/, //tr description = Translations.ItemDataBase_ItemDefinitions_219/*A viking helmet*/, //tr - Rarity = 2, + rarity = 2, minLevel = 2, maxLevel = 8, CanConsume = false, @@ -2708,7 +2704,7 @@ public static void PopulateItems() }) { name = Translations.ItemDataBase_ItemDefinitions_220/*Mask*/, //tr - Rarity = 2, + rarity = 2, minLevel = 1, maxLevel = 5, CanConsume = false, @@ -2731,7 +2727,7 @@ public static void PopulateItems() }) { name = Translations.ItemDataBase_ItemDefinitions_221/*Mask of Madness*/, //tr - Rarity = 5, + rarity = 5, minLevel = 2, maxLevel = 6, CanConsume = false, @@ -2756,7 +2752,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_222/*Old Scroll*/, //tr description = Translations.ItemDataBase_ItemDefinitions_172/*Contains a lot of information on how to properly cast spells to achieve better results*/, //tr - Rarity = 3, + rarity = 3, minLevel = 1, maxLevel = 1, CanConsume = false, @@ -2782,7 +2778,7 @@ public static void PopulateItems() description = Translations.ItemDataBase_ItemDefinitions_224/*High-tech gear*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_225/*Hazard remember to put some fucking lore in here, don't leave it like this!*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_226("570")/*Increases the duration of a portal by 570 seconds*/, //tr - Rarity = 7, + rarity = 7, minLevel = 4, maxLevel = 6, CanConsume = false, @@ -2809,7 +2805,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_227/*Cripplers*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_228(15)/*Increases the duration of a magic arrow's negative effect by 10 seconds*/, //tr - Rarity = 7, + rarity = 7, minLevel = 3, maxLevel = 6, CanConsume = false, @@ -2838,7 +2834,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_229/*Crossfire*/, //tr description = Translations.ItemDataBase_ItemDefinitions_230/*Infused with powerful magic. This item is a dangerous tool of destruction.*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_231/*When hitting an enemy with a projectile, create a magic arrow pointed at the enemy and shoot it without using in energy. This effect may occur once every seconds, but can be interval can be shortened with cooldown reduction.*/, //tr - Rarity = 7, + rarity = 7, minLevel = 1, maxLevel = 6, CanConsume = false, @@ -2860,7 +2856,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_232/*Scroll of Recovery*/, //tr description = Translations.ItemDataBase_ItemDefinitions_233/*Recovers health and stamina*/, //tr - Rarity = 1, + rarity = 1, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -2882,7 +2878,7 @@ public static void PopulateItems() description = Translations.ItemDataBase_ItemDefinitions_235/*A beautiful tiara */, //tr lore = Translations.ItemDataBase_ItemDefinitions_236/*This tiara may not provide much protection, but it sure is pretty*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_237/*Shiny*/, //tr - Rarity = 2, + rarity = 2, minLevel = 5, maxLevel = 10, CanConsume = false, @@ -2906,7 +2902,7 @@ public static void PopulateItems() description = Translations.ItemDataBase_ItemDefinitions_239/*Dodge those fukbois*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_240/*This belt will stop those cheeky cannibals and armsies from getting into your pants*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_241("99%")/* 100% damage reduction while sleeping*/, //tr - Rarity = 2, + rarity = 2, minLevel = 1, maxLevel = 2, CanConsume = false, @@ -2928,7 +2924,7 @@ public static void PopulateItems() description = Translations.ItemDataBase_ItemDefinitions_243/*A spell surrounded by flying shards of ice, contains tramendous power of cold.*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_244/*Created at the top of the mountain.*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_581("250", 2)/*Snap freeze damage is increased and the slow duration is increased by 1 second*/, //tr - Rarity = 4, + rarity = 4, minLevel = 30, maxLevel = 40, CanConsume = false, @@ -2951,7 +2947,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_245/*Motorboat Modification Blueprints*/, //tr description = Translations.ItemDataBase_ItemDefinitions_246/*Sheet of paper that allows to turn any raft into a high speed. Increases carry amount and increases speed of rafts.*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_247/*Who did this lmao.*/, //tr - Rarity = 4, + rarity = 4, minLevel = 1, maxLevel = 4, CanConsume = false, @@ -2968,7 +2964,7 @@ public static void PopulateItems() }) { name = Translations.ItemDataBase_ItemDefinitions_248/*Axe of Swiftness*/, //tr - Rarity = 3, + rarity = 3, minLevel = 15, maxLevel = 17, CanConsume = false, @@ -2987,7 +2983,7 @@ public static void PopulateItems() }) { name = Translations.ItemDataBase_ItemDefinitions_249/*Severer*/, //tr - Rarity = 4, + rarity = 4, minLevel = 25, maxLevel = 25, CanConsume = false, @@ -3009,7 +3005,7 @@ public static void PopulateItems() }) { name = Translations.ItemDataBase_ItemDefinitions_250/*Golden Axe of Fortune*/, //tr - Rarity = 5, + rarity = 5, minLevel = 35, maxLevel = 36, CanConsume = false, @@ -3031,7 +3027,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_251/*Axe of Misfortune*/, //tr description = Translations.ItemDataBase_ItemDefinitions_252/*Misfortunate are the ones on the recieving end. They will bleed a lot*/, //tr - Rarity = 5, + rarity = 5, minLevel = 6, maxLevel = 9, CanConsume = false, @@ -3055,7 +3051,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_253/*Golden Ring*/, //tr description = Translations.ItemDataBase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_103/*A Golden Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - Rarity = 4, //range 0-7, 0 is most common, 7 is ultra rare + rarity = 4, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 1, maxLevel = 4, CanConsume = false, @@ -3077,7 +3073,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_254/*Golden Locket*/, //tr description = Translations.ItemDataBase_ItemDefinitions_122/*A Locket of ancient times.*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_123/*A Golden Locket that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - Rarity = 3, //range 0-7, 0 is most common, 7 is ultra rare + rarity = 3, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 1, maxLevel = 4, CanConsume = false, @@ -3091,7 +3087,7 @@ public static void PopulateItems() }) { name = Translations.ItemDataBase_ItemDefinitions_255/*Dull Axe*/, //tr - Rarity = 0, + rarity = 0, minLevel = 15, maxLevel = 24, CanConsume = false, @@ -3117,7 +3113,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_256/*Precise Adjustments*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_257(15)/*Focus attack speed buff duration is increased by 16 seconds*/, //tr - Rarity = 7, + rarity = 7, minLevel = 5, maxLevel = 8, CanConsume = false, @@ -3147,7 +3143,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_258/*Rage*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_259(15)/*Increases maximum stacks of frenzy by 10*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_260/*Swords go brrrrrrttt*/, //tr - Rarity = 7, + rarity = 7, minLevel = 6, maxLevel = 9, CanConsume = false, @@ -3177,7 +3173,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_261/*Jagged Edge*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_262("30%", "30%")/*Bash has 30% a chance to make enemies to bleed for 30% of damage dealt per second for duration of slow*/, //tr - Rarity = 7, + rarity = 7, minLevel = 1, maxLevel = 5, CanConsume = false, @@ -3209,7 +3205,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_263/*Bloodthirster*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_264/*Drenched in blood of many unfortunate foes.*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_265("2%")/*Bash lifesteals 2% of damage dealt into energy and health*/, //tr - Rarity = 7, + rarity = 7, minLevel = 1, maxLevel = 5, CanConsume = false, @@ -3238,7 +3234,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_266/*Frost Giant*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_267/*Melee hits freeze enemies*/, //tr - Rarity = 7, + rarity = 7, minLevel = 1, maxLevel = 2, CanConsume = false, @@ -3276,7 +3272,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_268/*Alexander's Shield*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_269/*Parry has a chance to be casted when getting it. Requires parry to be equipped*/, //tr - Rarity = 7, + rarity = 7, minLevel = 1, maxLevel = 2, CanConsume = false, @@ -3306,7 +3302,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_270/*King Qruies*/, //tr description = Translations.ItemDataBase_ItemDefinitions_271/*A mighty sword seeking for it's owner*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_272/*Gain additional melee damage equal to the last instance of physical damage taken.*/, //tr - Rarity = 7, + rarity = 7, minLevel = 10, maxLevel = 12, CanConsume = false, @@ -3336,7 +3332,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_273/*Grip of Sora*/, //tr description = Translations.ItemDataBase_ItemDefinitions_274/*Look, a porcupine! -Sora*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_275("20%", "+4")/*Multishot drains 20% less energy and shoots +4 projectiles. Additional projectiles do not increase the cost of multishot*/, //tr - Rarity = 7, + rarity = 7, minLevel = 10, maxLevel = 12, CanConsume = false, @@ -3359,7 +3355,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_276/*Ancient Greatbow*/, //tr description = Translations.ItemDataBase_ItemDefinitions_277/*A massive and slow bow, deals extra damage*/, //tr - Rarity = 4, + rarity = 4, minLevel = 10, maxLevel = 12, CanConsume = false, @@ -3386,7 +3382,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_278/*Phoenix's Death*/, //tr description = Translations.ItemDataBase_ItemDefinitions_279/*Ignites enemies on hit*/, //tr - Rarity = 6, + rarity = 6, minLevel = 10, maxLevel = 12, CanConsume = false, @@ -3418,7 +3414,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_280/*Soulstring*/, //tr description = Translations.ItemDataBase_ItemDefinitions_281/*A massive and slow bow*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_282(100)/*Blood infused arrow now deals additional 20 points of damage per health consumed*/, //tr - Rarity = 7, + rarity = 7, minLevel = 10, maxLevel = 12, CanConsume = false, @@ -3439,7 +3435,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_283/*Greatbow*/, //tr description = Translations.ItemDataBase_ItemDefinitions_277/*A massive and slow bow, deals extra damage*/, //tr - Rarity = 2, + rarity = 2, minLevel = 25, maxLevel = 28, CanConsume = false, @@ -3469,7 +3465,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_284/*Withered Crown*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_285/*Worn by Hazard.*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_286("4")/*A single cast of blood infused arrow affects 4 more projectiles*/, //tr - Rarity = 7, + rarity = 7, minLevel = 10, maxLevel = 12, CanConsume = false, @@ -3489,7 +3485,7 @@ public static void PopulateItems() }) { name = Translations.ItemDataBase_ItemDefinitions_287/*Novice Magic Caster's Bracers*/, //tr - Rarity = 4, + rarity = 4, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -3507,7 +3503,7 @@ public static void PopulateItems() }) { name = Translations.ItemDataBase_ItemDefinitions_288/*Ranger's Bracers*/, //tr - Rarity = 4, + rarity = 4, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -3525,7 +3521,7 @@ public static void PopulateItems() }) { name = Translations.ItemDataBase_ItemDefinitions_289/*Swordsman's Bracers*/, //tr - Rarity = 4, + rarity = 4, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -3545,7 +3541,7 @@ public static void PopulateItems() }) { name = Translations.ItemDataBase_ItemDefinitions_290/*Healer's Bracers*/, //tr - Rarity = 5, + rarity = 5, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -3563,7 +3559,7 @@ public static void PopulateItems() }) { name = Translations.ItemDataBase_ItemDefinitions_291/*Novice Magic Caster's Gloves*/, //tr - Rarity = 4, + rarity = 4, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -3581,7 +3577,7 @@ public static void PopulateItems() }) { name = Translations.ItemDataBase_ItemDefinitions_292/*Ranger's Gloves*/, //tr - Rarity = 4, + rarity = 4, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -3599,7 +3595,7 @@ public static void PopulateItems() }) { name = Translations.ItemDataBase_ItemDefinitions_293/*Swordsman's Gloves*/, //tr - Rarity = 4, + rarity = 4, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -3619,7 +3615,7 @@ public static void PopulateItems() }) { name = Translations.ItemDataBase_ItemDefinitions_294/*Healer's Gloves*/, //tr - Rarity = 5, + rarity = 5, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -3640,7 +3636,7 @@ public static void PopulateItems() }) { name = Translations.ItemDataBase_ItemDefinitions_295/*Fate Gloves*/, //tr - Rarity = 6, + rarity = 6, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -3661,7 +3657,7 @@ public static void PopulateItems() }) { name = Translations.ItemDataBase_ItemDefinitions_296/*Fate Boots*/, //tr - Rarity = 6, + rarity = 6, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -3685,7 +3681,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_297/*Greed*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_298/*Automatically casts wide reach every second*/, //tr - Rarity = 7, + rarity = 7, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -3709,7 +3705,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_299/*Titanium Leggins*/, //tr description = Translations.ItemDataBase_ItemDefinitions_300/*Heavily armored leg protection. Suffers from the same weaknesses as spartan armor.*/, //tr - Rarity = 6, + rarity = 6, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -3729,7 +3725,7 @@ public static void PopulateItems() }) { name = Translations.ItemDataBase_ItemDefinitions_301/*Iron Gauntlet*/, //tr - Rarity = 2, + rarity = 2, minLevel = 1, maxLevel = 2, CanConsume = false, @@ -3756,7 +3752,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_302/*Magefist*/, //tr description = Translations.ItemDataBase_ItemDefinitions_303/*Gloves that amplify magic*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_304/*Spells deal double damage but have double the energy cost*/, //tr - Rarity = 7, + rarity = 7, minLevel = 1, maxLevel = 2, CanConsume = false, @@ -3779,7 +3775,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_305/*Armored Boots*/, //tr description = Translations.ItemDataBase_ItemDefinitions_306/*Heavily armored, resistant to damage boots.*/, //tr - Rarity = 5, + rarity = 5, minLevel = 10, maxLevel = 14, CanConsume = false, @@ -3802,7 +3798,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_307/*Broken Protector*/, //tr description = Translations.ItemDataBase_ItemDefinitions_308/*This shield failed to protect those behind it.*/, //tr - Rarity = 6, + rarity = 6, minLevel = 5, maxLevel = 8, CanConsume = false, @@ -3825,7 +3821,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_309/*Forbidden Scroll*/, //tr description = Translations.ItemDataBase_ItemDefinitions_310/*Too powerful to be kept.*/, //tr - Rarity = 6, + rarity = 6, minLevel = 1, maxLevel = 1, CanConsume = false, @@ -3847,7 +3843,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_311/*Doom Pauldrons*/, //tr description = Translations.ItemDataBase_ItemDefinitions_312/*Despite the cool name, they are completely normal pair of shoulder armor.*/, //tr - Rarity = 6, + rarity = 6, minLevel = 5, maxLevel = 9, CanConsume = false, @@ -3872,7 +3868,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_313/*Wind armor*/, //tr description = Translations.ItemDataBase_ItemDefinitions_314/*Run fast like the wind*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_315("20%", "35%", "2000", "5%")/*Upon dodging an attack, gain 20% movement speed, 35% damage, 2000 armor, and heal for 5% of your maximum health*/, //tr - Rarity = 7, + rarity = 7, minLevel = 5, maxLevel = 9, CanConsume = false, @@ -3896,7 +3892,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_316/*Crusader Helmet*/, //tr description = Translations.ItemDataBase_ItemDefinitions_317/*You're talking mad shit for someone within crusading distance*/, //tr - Rarity = 5, + rarity = 5, minLevel = 2, maxLevel = 6, CanConsume = false, @@ -3916,7 +3912,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_318/*Hood*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_319/*Hats provide usefull stat bonuses*/, //tr - Rarity = 3, + rarity = 3, minLevel = 2, maxLevel = 6, CanConsume = false, @@ -3944,7 +3940,7 @@ public static void PopulateItems() description = Translations.ItemDataBase_ItemDefinitions_321/*Magic Scroll of great quality*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_322/*Written in a language i canno't understand. Decyphering this text is impossible, so is the full utilization of the scroll.*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_323("5")/*If a black hole hits 5 or more enemies during it's lifetime, a ball lightning is summoned after it ends.*/, //tr - Rarity = 7, + rarity = 7, minLevel = 15, maxLevel = 20, CanConsume = false, @@ -3972,7 +3968,7 @@ public static void PopulateItems() description = Translations.ItemDataBase_ItemDefinitions_325/*Golden ring with a bone chilling feel about it. This thing will only bring harm, but not to the wearer*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_326/*Ring made of Netherrite*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_327("300%")/*Purge increases all of your damage based on missing health. Up to 300%*/, //tr - Rarity = 7, + rarity = 7, minLevel = 20, maxLevel = 26, CanConsume = false, @@ -4003,7 +3999,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_328/*Eruption*/, //tr description = Translations.ItemDataBase_ItemDefinitions_329/*Incarnation of devastation*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_330/*Headshots cause explosions*/, //tr - Rarity = 7, + rarity = 7, minLevel = 10, maxLevel = 12, CanConsume = false, @@ -4035,7 +4031,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_331/*Archangel*/, //tr description = Translations.ItemDataBase_ItemDefinitions_332/*Spread the goodness*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_333("30")/*Shooting another player causes them to be greatly empowered for 30 seconds*/, //tr - Rarity = 7, + rarity = 7, minLevel = 10, maxLevel = 12, CanConsume = false, @@ -4060,7 +4056,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_334/*The Executioner*/, //tr description = Translations.ItemDataBase_ItemDefinitions_335/*A sword for decapitating*/, //tr - Rarity = 4, + rarity = 4, minLevel = 25, maxLevel = 27, CanConsume = false, @@ -4089,7 +4085,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_336/*Moon Cuirass*/, //tr description = Translations.ItemDataBase_ItemDefinitions_337/*A piece of armor designed for an archer. */, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_338("120")/*Landing a headshot with an arrow without the homing effect of seeking arrow at a distance greater than 120 feet deals five-fold damage, and hits the enemy two extra times*/, //tr - Rarity = 7, + rarity = 7, minLevel = 20, maxLevel = 22, CanConsume = false, @@ -4120,7 +4116,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_339/*Thornmail*/, //tr description = Translations.ItemDataBase_ItemDefinitions_340/*Spiked death on the outside, really comfy on the inside*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_341/*Thorns deal double damage*/, //tr - Rarity = 7, + rarity = 7, minLevel = 20, maxLevel = 22, CanConsume = false, @@ -4138,7 +4134,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_342/*Rusty Polearm*/, //tr description = Translations.ItemDataBase_ItemDefinitions_343/*Used by the Ubersreik Five*/, //tr - Rarity = 1, + rarity = 1, minLevel = 10, maxLevel = 16, CanConsume = false, @@ -4158,7 +4154,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_344/*Giant Polearm*/, //tr description = Translations.ItemDataBase_ItemDefinitions_345/*Used by the Sir Kruber*/, //tr - Rarity = 4, + rarity = 4, minLevel = 20, maxLevel = 24, CanConsume = false, @@ -4179,7 +4175,7 @@ public static void PopulateItems() Translations.ItemDataBase_ItemDefinitions_585/*If equipped on accessories, increases ranged armor piercing by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.Amulet, 1).ToString("N") + "\n" + //tr Translations.ItemDataBase_ItemDefinitions_586/*If equipped in other slots, increases agility by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.ChestArmor, 1).ToString("N"), //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - Rarity = 3, + rarity = 3, minLevel = 20, maxLevel = 21, CanConsume = false, @@ -4198,7 +4194,7 @@ public static void PopulateItems() Translations.ItemDataBase_ItemDefinitions_585/*If equipped on accessories, increases ranged armor piercing by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.Amulet, 1).ToString("N") + "\n" + //tr Translations.ItemDataBase_ItemDefinitions_586/*If equipped in other slots, increases agility by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.ChestArmor, 1).ToString("N"), //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - Rarity = 4, + rarity = 4, minLevel = 20, maxLevel = 21, CanConsume = false, @@ -4217,7 +4213,7 @@ public static void PopulateItems() Translations.ItemDataBase_ItemDefinitions_585/*If equipped on accessories, increases ranged armor piercing by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.Amulet, 1).ToString("N") + "\n" + //tr Translations.ItemDataBase_ItemDefinitions_586/*If equipped in other slots, increases agility by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.ChestArmor, 1).ToString("N"), //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - Rarity = 5, + rarity = 5, minLevel = 20, maxLevel = 21, CanConsume = false, @@ -4237,7 +4233,7 @@ public static void PopulateItems() Translations.ItemDataBase_ItemDefinitions_585/*If equipped on accessories, increases ranged armor piercing by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.Amulet, 1).ToString("N") + "\n" + //tr Translations.ItemDataBase_ItemDefinitions_586/*If equipped in other slots, increases agility by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.ChestArmor, 1).ToString("N"), //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - Rarity = 6, + rarity = 6, minLevel = 20, maxLevel = 21, CanConsume = false, @@ -4256,7 +4252,7 @@ public static void PopulateItems() Translations.ItemDataBase_ItemDefinitions_585/*If equipped on accessories, increases ranged armor piercing by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.Amulet, 1).ToString("N") + "\n" + //tr Translations.ItemDataBase_ItemDefinitions_586/*If equipped in other slots, increases agility by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.ChestArmor, 1).ToString("N"), //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - Rarity = 7, + rarity = 7, minLevel = 20, maxLevel = 21, CanConsume = false, @@ -4278,7 +4274,7 @@ public static void PopulateItems() Translations.ItemDataBase_ItemDefinitions_590/*If equipped on accessories, increases melee armor piercing by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.Amulet, 2).ToString("N") + "\n" + //tr Translations.ItemDataBase_ItemDefinitions_591/*If equipped in other slots, increases strength by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.ChestArmor, 2).ToString("N"), //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - Rarity = 3, + rarity = 3, minLevel = 20, maxLevel = 21, CanConsume = false, @@ -4297,7 +4293,7 @@ public static void PopulateItems() Translations.ItemDataBase_ItemDefinitions_590/*If equipped on accessories, increases melee armor piercing by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.Amulet, 2).ToString("N") + "\n" + //tr Translations.ItemDataBase_ItemDefinitions_591/*If equipped in other slots, increases strength by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.ChestArmor, 2).ToString("N"), //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - Rarity = 4, + rarity = 4, minLevel = 20, maxLevel = 21, CanConsume = false, @@ -4316,7 +4312,7 @@ public static void PopulateItems() Translations.ItemDataBase_ItemDefinitions_590/*If equipped on accessories, increases melee armor piercing by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.Amulet, 2).ToString("N") + "\n" + //tr Translations.ItemDataBase_ItemDefinitions_591/*If equipped in other slots, increases strength by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.ChestArmor, 2).ToString("N"), //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - Rarity = 5, + rarity = 5, minLevel = 20, maxLevel = 21, CanConsume = false, @@ -4336,7 +4332,7 @@ public static void PopulateItems() Translations.ItemDataBase_ItemDefinitions_590/*If equipped on accessories, increases melee armor piercing by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.Amulet, 2).ToString("N") + "\n" + //tr Translations.ItemDataBase_ItemDefinitions_591/*If equipped in other slots, increases strength by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.ChestArmor, 2).ToString("N"), //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - Rarity = 6, + rarity = 6, minLevel = 20, maxLevel = 21, CanConsume = false, @@ -4355,7 +4351,7 @@ public static void PopulateItems() Translations.ItemDataBase_ItemDefinitions_590/*If equipped on accessories, increases melee armor piercing by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.Amulet, 2).ToString("N") + "\n" + //tr Translations.ItemDataBase_ItemDefinitions_591/*If equipped in other slots, increases strength by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.ChestArmor, 2).ToString("N"), //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - Rarity = 7, + rarity = 7, minLevel = 20, maxLevel = 21, CanConsume = false, @@ -4377,7 +4373,7 @@ public static void PopulateItems() Translations.ItemDataBase_ItemDefinitions_595/*If equipped on accessories, increases energy on hit by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.Amulet, 3).ToString("N") + "\n" + //tr Translations.ItemDataBase_ItemDefinitions_596/*If equipped in other slots, increases intelligence by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.ChestArmor, 3).ToString("N"), //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - Rarity = 3, + rarity = 3, minLevel = 20, maxLevel = 21, CanConsume = false, @@ -4396,7 +4392,7 @@ public static void PopulateItems() Translations.ItemDataBase_ItemDefinitions_595/*If equipped on accessories, increases energy on hit by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.Amulet, 3).ToString("N") + "\n" + //tr Translations.ItemDataBase_ItemDefinitions_596/*If equipped in other slots, increases intelligence by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.ChestArmor, 3).ToString("N"), //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - Rarity = 4, + rarity = 4, minLevel = 20, maxLevel = 21, CanConsume = false, @@ -4415,7 +4411,7 @@ public static void PopulateItems() Translations.ItemDataBase_ItemDefinitions_595/*If equipped on accessories, increases energy on hit by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.Amulet, 3).ToString("N") + "\n" + //tr Translations.ItemDataBase_ItemDefinitions_596/*If equipped in other slots, increases intelligence by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.ChestArmor, 3).ToString("N"), //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - Rarity = 5, + rarity = 5, minLevel = 20, maxLevel = 21, CanConsume = false, @@ -4435,7 +4431,7 @@ public static void PopulateItems() Translations.ItemDataBase_ItemDefinitions_595/*If equipped on accessories, increases energy on hit by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.Amulet, 3).ToString("N") + "\n" + //tr Translations.ItemDataBase_ItemDefinitions_596/*If equipped in other slots, increases intelligence by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.ChestArmor, 3).ToString("N"), //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - Rarity = 6, + rarity = 6, minLevel = 20, maxLevel = 21, CanConsume = false, @@ -4454,7 +4450,7 @@ public static void PopulateItems() Translations.ItemDataBase_ItemDefinitions_595/*If equipped on accessories, increases energy on hit by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.Amulet, 3).ToString("N") + "\n" + //tr Translations.ItemDataBase_ItemDefinitions_596/*If equipped in other slots, increases intelligence by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.ChestArmor, 3).ToString("N"), //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - Rarity = 7, + rarity = 7, minLevel = 20, maxLevel = 21, CanConsume = false, @@ -4475,7 +4471,7 @@ public static void PopulateItems() Translations.ItemDataBase_ItemDefinitions_600/*If equipped on accessories, increases life per second by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.Amulet, 4).ToString("N") + "\n" + //tr Translations.ItemDataBase_ItemDefinitions_601/*If equipped in other slots, increases vitality by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.ChestArmor, 4).ToString("N"), //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - Rarity = 3, + rarity = 3, minLevel = 20, maxLevel = 21, CanConsume = false, @@ -4494,7 +4490,7 @@ public static void PopulateItems() Translations.ItemDataBase_ItemDefinitions_600/*If equipped on accessories, increases life per second by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.Amulet, 4).ToString("N") + "\n" + //tr Translations.ItemDataBase_ItemDefinitions_601/*If equipped in other slots, increases vitality by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.ChestArmor, 4).ToString("N"), //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - Rarity = 4, + rarity = 4, minLevel = 20, maxLevel = 21, CanConsume = false, @@ -4513,7 +4509,7 @@ public static void PopulateItems() Translations.ItemDataBase_ItemDefinitions_600/*If equipped on accessories, increases life per second by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.Amulet, 4).ToString("N") + "\n" + //tr Translations.ItemDataBase_ItemDefinitions_601/*If equipped in other slots, increases vitality by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.ChestArmor, 4).ToString("N"), //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - Rarity = 5, + rarity = 5, minLevel = 20, maxLevel = 21, CanConsume = false, @@ -4533,7 +4529,7 @@ public static void PopulateItems() Translations.ItemDataBase_ItemDefinitions_600/*If equipped on accessories, increases life per second by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.Amulet, 4).ToString("N") + "\n" + //tr Translations.ItemDataBase_ItemDefinitions_601/*If equipped in other slots, increases vitality by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.ChestArmor, 4).ToString("N"), //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - Rarity = 6, + rarity = 6, minLevel = 20, maxLevel = 21, CanConsume = false, @@ -4552,7 +4548,7 @@ public static void PopulateItems() Translations.ItemDataBase_ItemDefinitions_600/*If equipped on accessories, increases life per second by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.Amulet, 4).ToString("N") + "\n" + //tr Translations.ItemDataBase_ItemDefinitions_601/*If equipped in other slots, increases vitality by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.ChestArmor, 4).ToString("N"), //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - Rarity = 7, + rarity = 7, minLevel = 20, maxLevel = 21, CanConsume = false, @@ -4574,7 +4570,7 @@ public static void PopulateItems() Translations.ItemDataBase_ItemDefinitions_605/*If equipped on accessories, increases thorns by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.Amulet, 5).ToString("N") + "\n" + //tr Translations.ItemDataBase_ItemDefinitions_606/*If equipped in other slots, increases armor by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.ChestArmor, 5).ToString("N"), //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - Rarity = 3, + rarity = 3, minLevel = 20, maxLevel = 21, CanConsume = false, @@ -4593,7 +4589,7 @@ public static void PopulateItems() Translations.ItemDataBase_ItemDefinitions_605/*If equipped on accessories, increases thorns by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.Amulet, 5).ToString("N") + "\n" + //tr Translations.ItemDataBase_ItemDefinitions_606/*If equipped in other slots, increases armor by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.ChestArmor, 5).ToString("N"), //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - Rarity = 4, + rarity = 4, minLevel = 20, maxLevel = 21, CanConsume = false, @@ -4612,7 +4608,7 @@ public static void PopulateItems() Translations.ItemDataBase_ItemDefinitions_605/*If equipped on accessories, increases thorns by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.Amulet, 5).ToString("N") + "\n" + //tr Translations.ItemDataBase_ItemDefinitions_606/*If equipped in other slots, increases armor by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.ChestArmor, 5).ToString("N"), //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - Rarity = 5, + rarity = 5, minLevel = 20, maxLevel = 21, @@ -4633,7 +4629,7 @@ public static void PopulateItems() Translations.ItemDataBase_ItemDefinitions_605/*If equipped on accessories, increases thorns by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.Amulet, 5).ToString("N") + "\n" + //tr Translations.ItemDataBase_ItemDefinitions_606/*If equipped in other slots, increases armor by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.ChestArmor, 5).ToString("N"), //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - Rarity = 6, + rarity = 6, minLevel = 20, maxLevel = 21, CanConsume = false, @@ -4652,7 +4648,7 @@ public static void PopulateItems() Translations.ItemDataBase_ItemDefinitions_605/*If equipped on accessories, increases thorns by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.Amulet, 5).ToString("N") + "\n" + //tr Translations.ItemDataBase_ItemDefinitions_606/*If equipped in other slots, increases armor by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.ChestArmor, 5).ToString("N"), //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - Rarity = 7, + rarity = 7, minLevel = 20, maxLevel = 21, CanConsume = false, @@ -4677,7 +4673,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_372/*Knife on a stick*/, //tr description = Translations.ItemDataBase_ItemDefinitions_373/*Kasper named this item, his fault*/, //tr - Rarity = 5, + rarity = 5, minLevel = 30, maxLevel = 34, CanConsume = false, @@ -4705,7 +4701,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_374/*Fists of Nails*/, //tr description = Translations.ItemDataBase_ItemDefinitions_375/*Swiss sheese makers*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_376("900%")/*Gain 5 thorns per vitality*/, //tr - Rarity = 7, + rarity = 7, minLevel = 20, maxLevel = 22, CanConsume = false, @@ -4731,7 +4727,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_377/*Cargo Shorts MK2*/, //tr description = Translations.ItemDataBase_ItemDefinitions_378/*Deepest pockets out there*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_379/*Improved cargo pants. Twice as many pockets, and since they didnt fit on the outside, they are inside. They are still ugly as hell tho*/, //tr - Rarity = 4, + rarity = 4, minLevel = 30, maxLevel = 33, CanConsume = false, @@ -4758,7 +4754,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_380/*Aezyn*/, //tr description = Translations.ItemDataBase_ItemDefinitions_381/*Enchanted with magic as strong as power swing. It's purpose? Hit harder.*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_382("1666%")/*Magic arrow damage scaling is increased by 666%*/, //tr - Rarity = 7, + rarity = 7, minLevel = 20, maxLevel = 22, CanConsume = false, @@ -4787,7 +4783,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_383/*Punny's Reflective Ring*/, //tr description = Translations.ItemDataBase_ItemDefinitions_381/*Enchanted with magic as strong as power swing. It's purpose? Hit harder.*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_384/*Magic arrow is shot in volleys. This effect can stack.*/, //tr - Rarity = 7, + rarity = 7, minLevel = 20, maxLevel = 22, CanConsume = false, @@ -4808,7 +4804,7 @@ public static void PopulateItems() description = Translations.ItemDataBase_ItemDefinitions_386/*A wise man once said:*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_387/*Everyone thinks I'm just a one-eyed bloody monster, god damnit... (sobbing)*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_388/*Explosion damage is also applied when performing jump attacks*/, //tr - Rarity = 0, + rarity = 0, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -4828,7 +4824,7 @@ public static void PopulateItems() }) { name = Translations.ItemDataBase_ItemDefinitions_389/*Javelin*/, //tr - Rarity = 5, + rarity = 5, minLevel = 30, maxLevel = 34, CanConsume = false, @@ -4854,7 +4850,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_390/*Warplate*/, //tr description = Translations.ItemDataBase_ItemDefinitions_391/*Enchanted with the power of the GOD's armor. It's purpose? Hit harder, daddy.*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_392/*Strength comes from the power of will, the stronger the will the stronger you are*/, //tr - Rarity = 6, + rarity = 6, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -4875,7 +4871,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_393/*Torso of Strength*/, //tr - Rarity = 4, + rarity = 4, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -4901,7 +4897,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_394/*Demoman's Vest*/, //tr description = Translations.ItemDataBase_ItemDefinitions_395/*What makes me a good demoman? If I were a bad demoman, I wouldn't be sittin' here discussin' it with you, now would I?! LET'S DO IT! Not one of you's gonna survive this! One crossed wire, one wayward pinch of potassium chlorate, one errant twitch, and KA-BLOOIE! I got a manky eye. I'm a black Scottish cyclops. They got more fecking sea monsters in the great Lochett Ness than they got the likes of me. So! T'all you fine dandies, so proud, so cocksure, prancin' about with your heads full of eyeballs... come and get me, I say! I'll be waitin' on you with a whiff of the old brimstone! I'm a Grimm bloody fable with an unhappy bloody end! Oh, they're going to have to glue you back together...IN HELL!*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_392/*Strength comes from the power of will, the stronger the will the stronger you are*/, //tr - Rarity = 5, + rarity = 5, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -4926,7 +4922,7 @@ public static void PopulateItems() }) { name = Translations.ItemDataBase_ItemDefinitions_396/*Brawler's Gloves*/, //tr - Rarity = 6, + rarity = 6, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -4948,7 +4944,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_397/*Nail Gloves*/, //tr description = Translations.ItemDataBase_ItemDefinitions_398/*Enchanted with the power of penetration. It's purpose? Hit harder.*/, //tr - Rarity = 3, + rarity = 3, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -4971,7 +4967,7 @@ public static void PopulateItems() }) { name = Translations.ItemDataBase_ItemDefinitions_399/*Hand-held Ballista*/, //tr - Rarity = 5, + rarity = 5, minLevel = 10, maxLevel = 12, CanConsume = false, @@ -4992,7 +4988,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_400/*Kuldars's Scarf*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_401/*Strength comes from the power of will*/, //tr - Rarity = 2, + rarity = 2, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -5012,7 +5008,7 @@ public static void PopulateItems() }) { name = Translations.ItemDataBase_ItemDefinitions_402/*Sword Devil's Scarf*/, //tr - Rarity = 4, + rarity = 4, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -5031,7 +5027,7 @@ public static void PopulateItems() }) { name = Translations.ItemDataBase_ItemDefinitions_403/*Peasant's Scarf*/, //tr - Rarity = 3, + rarity = 3, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -5057,7 +5053,7 @@ public static void PopulateItems() }) { name = Translations.ItemDataBase_ItemDefinitions_404/*Bombastinc Choker*/, //tr - Rarity = 6, + rarity = 6, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -5085,7 +5081,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_405/*Explosive Touch*/, //tr description = Translations.ItemDataBase_ItemDefinitions_406/*Enchanted with the power of the explosions armor. It's purpose? Become the true explosion master*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_407/*Strength comes from the power of will, the stronger the will the stronger the explosion*/, //tr - Rarity = 6, + rarity = 6, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -5112,7 +5108,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_408/*Volatile Bracers*/, //tr description = Translations.ItemDataBase_ItemDefinitions_406/*Enchanted with the power of the explosions armor. It's purpose? Become the true explosion master*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_407/*Strength comes from the power of will, the stronger the will the stronger the explosion*/, //tr - Rarity = 6, + rarity = 6, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -5139,7 +5135,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_409/*Volatile Helmet*/, //tr - Rarity = 6, + rarity = 6, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -5165,7 +5161,7 @@ public static void PopulateItems() }) { name = Translations.ItemDataBase_ItemDefinitions_410/*Gunpowder filled socks*/, //tr - Rarity = 6, + rarity = 6, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -5189,7 +5185,7 @@ public static void PopulateItems() }) { name = Translations.ItemDataBase_ItemDefinitions_411/*Red Skirt*/, //tr - Rarity = 5, + rarity = 5, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -5209,7 +5205,7 @@ public static void PopulateItems() }) { name = Translations.ItemDataBase_ItemDefinitions_412/*Gunpowder Boxers*/, //tr - Rarity = 4, + rarity = 4, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -5234,7 +5230,7 @@ public static void PopulateItems() }) { name = Translations.ItemDataBase_ItemDefinitions_413/*Jihad Vest*/, //tr - Rarity = 5, + rarity = 5, minLevel = 1, maxLevel = 4, CanConsume = false, @@ -5259,7 +5255,7 @@ public static void PopulateItems() }) { name = Translations.ItemDataBase_ItemDefinitions_414/*Ring of Fortune*/, //tr - Rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare + rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 10, maxLevel = 14, CanConsume = false, @@ -5282,7 +5278,7 @@ public static void PopulateItems() }) { name = Translations.ItemDataBase_ItemDefinitions_415/*Mana Ring*/, //tr - Rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare + rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 10, maxLevel = 14, CanConsume = false, @@ -5305,7 +5301,7 @@ public static void PopulateItems() }) { name = Translations.ItemDataBase_ItemDefinitions_416/*Life Ring*/, //tr - Rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare + rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 10, maxLevel = 14, CanConsume = false, @@ -5330,7 +5326,7 @@ public static void PopulateItems() }) { name = Translations.ItemDataBase_ItemDefinitions_417/*Moritz's Gear*/, //tr - Rarity = 6, + rarity = 6, minLevel = 5, maxLevel = 6, CanConsume = false, @@ -5354,7 +5350,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_418/*Band of Hurting*/, //tr description = Translations.ItemDataBase_ItemDefinitions_419/*A ring for a warrior*/, //tr - Rarity = 6, + rarity = 6, minLevel = 5, maxLevel = 6, CanConsume = false, @@ -5372,7 +5368,7 @@ public static void PopulateItems() }) { name = Translations.ItemDataBase_ItemDefinitions_420/*Straw Hat*/, //tr - Rarity = 2, + rarity = 2, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -5389,7 +5385,7 @@ public static void PopulateItems() }) { name = Translations.ItemDataBase_ItemDefinitions_318/*Hood*/, //tr - Rarity = 2, + rarity = 2, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -5405,7 +5401,7 @@ public static void PopulateItems() }) { name = Translations.ItemDataBase_ItemDefinitions_421/*Rusty Javelin*/, //tr - Rarity = 3, + rarity = 3, minLevel = 10, maxLevel = 16, CanConsume = false, @@ -5431,7 +5427,7 @@ public static void PopulateItems() }) { name = Translations.ItemDataBase_ItemDefinitions_422/*Star Robe*/, //tr - Rarity = 6, + rarity = 6, minLevel = 5, maxLevel = 6, CanConsume = false, @@ -5458,7 +5454,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_423/*Anger*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_424/*Downscaled version of Greatsword Rage, made to be wielded by flimsy wizards*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_425(15)/*Increases maximum stacks of frenzy by 10*/, //tr - Rarity = 7, + rarity = 7, minLevel = 6, maxLevel = 9, CanConsume = false, @@ -5491,7 +5487,7 @@ public static void PopulateItems() description = Translations.ItemDataBase_ItemDefinitions_433("50%", "300%")/*Set Piece:\n2 Pieces- Snow Storm pulls enemies towards you\n3 Pieces - Snow Storm radius, maximum damage, spell cost is doubled, but charge rate is slower\n4 Pieces - Snow storm hit frequency is increased by 50%*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_428/*Boots looted off a snow demon*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_429("50%")/*Increses snowstorm damage by 50%*/, //tr - Rarity = 7, + rarity = 7, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -5521,7 +5517,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_430/*Yuki-Onna Greaves*/, //tr description = Translations.ItemDataBase_ItemDefinitions_433("50%", "300%")/*Set Piece:\n2 Pieces- Snow Storm pulls enemies towards you\n3 Pieces - Snow Storm radius, maximum damage, spell cost is doubled, but charge rate is slower\n4 Pieces - Snow storm hit frequency is increased by 50%*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_429("50%")/*Increses snowstorm damage by 50%*/, //tr - Rarity = 7, + rarity = 7, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -5551,7 +5547,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_431/*Yuki-Onna Kimono*/, //tr description = Translations.ItemDataBase_ItemDefinitions_433("50%", "300%")/*Set Piece:\n2 Pieces- Snow Storm pulls enemies towards you\n3 Pieces - Snow Storm radius, maximum damage, spell cost is doubled, but charge rate is slower\n4 Pieces - Snow storm hit frequency is increased by 50%*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_429("50%")/*Increses snowstorm damage by 50%*/, //tr - Rarity = 7, + rarity = 7, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -5581,7 +5577,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_432/*Yuki-Onna's Headdress*/, //tr description = Translations.ItemDataBase_ItemDefinitions_433("50%", "300%")/*Set Piece:\n2 Pieces- Snow Storm pulls enemies towards you\n3 Pieces - Snow Storm radius, maximum damage, spell cost is doubled, but charge rate is slower\n4 Pieces - Snow storm hit frequency is increased by 50% and damage is increased by 300%*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_429("50%")/*Increses snowstorm damage by 50%*/, //tr - Rarity = 7, + rarity = 7, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -5611,7 +5607,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_434/*Lama Mega's Blood Bag*/, //tr description = "", //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_435("15 000%", 15)/*Melee hits cause enemies to bleed for 100% of your health as damage for 15 seconds*/, //tr - Rarity = 7, + rarity = 7, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -5627,7 +5623,7 @@ public static void PopulateItems() description = Translations.ItemDataBase_ItemDefinitions_437/*A convienient one use tool*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_438/*What's a drill doing here in a place full of primitive tribes?*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_439/*Adds one socket to an item, unless the item can't have any more sockets.*/, //tr - Rarity = 6, + rarity = 6, minLevel = 1, maxLevel = 2, CanConsume = false, @@ -5659,7 +5655,7 @@ public static void PopulateItems() description = "", //tr lore = Translations.ItemDataBase_ItemDefinitions_441/*Cha cha real smooth.*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_442/*Inverts movement*/, //tr - Rarity = 3, + rarity = 3, minLevel = 16, maxLevel = 18, CanConsume = false, @@ -5682,7 +5678,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_443/*Rabbit Ears Hairband*/, //tr description = Translations.ItemDataBase_ItemDefinitions_444/*Cute*/, //tr lore = "", //tr - Rarity = 3, + rarity = 3, minLevel = 1, maxLevel = 2, CanConsume = false, @@ -5702,7 +5698,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_445/*Bunny Ears Hairband*/, //tr description = Translations.ItemDataBase_ItemDefinitions_444/*Cute*/, //tr lore = "", //tr - Rarity = 4, + rarity = 4, minLevel = 1, maxLevel = 2, CanConsume = false, @@ -5746,7 +5742,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_446/*Iron plate full of holes*/, //tr description = "", //tr lore = Translations.ItemDataBase_ItemDefinitions_447/*The integrity of this item is questionable*/, //tr - Rarity = 3, + rarity = 3, minLevel = 50, maxLevel = 60, CanConsume = false, @@ -5765,7 +5761,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_448/*Small Tribal Necklace*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_449(2)/*Increases maximum stacks of frenzy by 2*/, //tr - Rarity = 4, + rarity = 4, minLevel = 6, maxLevel = 9, CanConsume = false, @@ -5787,7 +5783,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_450/*Tribal Necklace*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_451(3)/*Increases maximum stacks of frenzy by 3*/, //tr - Rarity = 4, + rarity = 4, minLevel = 6, maxLevel = 9, CanConsume = false, @@ -5810,7 +5806,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_452/*Warlord Necklace*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_453(4)/*Increases maximum stacks of frenzy by 4*/, //tr - Rarity = 5, + rarity = 5, minLevel = 6, maxLevel = 9, CanConsume = false, @@ -5832,7 +5828,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_454/*Travel Band*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_455(25)/*The distance of blink is increased by 20 feet*/, //tr - Rarity = 5, + rarity = 5, minLevel = 5, maxLevel = 9, CanConsume = false, @@ -5856,7 +5852,7 @@ public static void PopulateItems() description = Translations.ItemDataBase_ItemDefinitions_457/*Only a fraction of its previous might remains*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_154/*A pedant of great power. Obtainable only from babies or crafting*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_458(1)/*Decrease the cooldown of one ability by 1 second whenever you hit something with melee or ranged attack.*/, //tr - Rarity = 6, + rarity = 6, minLevel = 80, maxLevel = 90, CanConsume = false, @@ -5879,7 +5875,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_459/*Famine Hammer*/, //tr description = Translations.ItemDataBase_ItemDefinitions_163/*It's slow but with enough strength i can make it a very deadly tool*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_460("30%")/*Chance to weaken enemies, causing them to take more damage from all attacks, is increased by 30%*/, //tr - Rarity = 4, + rarity = 4, minLevel = 30, maxLevel = 35, CanConsume = false, @@ -5905,7 +5901,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_461/*Curse Hammer*/, //tr description = Translations.ItemDataBase_ItemDefinitions_462/*Omnious Weapon*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_463("45%")/*Chance to weaken enemies, causing them to take more damage from all attacks, is increased by 40%*/, //tr - Rarity = 5, + rarity = 5, minLevel = 30, maxLevel = 35, CanConsume = false, @@ -5930,7 +5926,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_464/*Smasher*/, //tr description = Translations.ItemDataBase_ItemDefinitions_163/*It's slow but with enough strength i can make it a very deadly tool*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_465/*Smash damage is increased tripled*/, //tr - Rarity = 5, + rarity = 5, minLevel = 30, maxLevel = 35, CanConsume = false, @@ -5951,7 +5947,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_466/*Vampiric Band*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_467(1)/*Gain 1 stamina on ranged and melee hit or double that amount on critical hits*/, //tr - Rarity = 3, + rarity = 3, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -5975,7 +5971,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_468/*Vampire Ring*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_469(10)/*Gain 10 stamina on ranged and melee hit or double that amount on critical hits*/, //tr - Rarity = 6, + rarity = 6, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -5996,7 +5992,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_470/*Tricksters Scarf*/, //tr description = "", //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_471(1)/*Magic arrow shoots 1 additional arrow.*/, //tr - Rarity = 4, + rarity = 4, minLevel = 20, maxLevel = 22, CanConsume = false, @@ -6020,7 +6016,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_472/*Magus' Necktie*/, //tr description = "", //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_473(2)/*Magic arrow shoots 2 additional arrows.*/, //tr - Rarity = 5, + rarity = 5, minLevel = 50, maxLevel = 52, CanConsume = false, @@ -6040,7 +6036,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_474/*Discounted Knockoff Magic Quiver*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_475("15%")/*There's a 15% increased chance to not consume ammo when firing a projectile.*/, //tr - Rarity = 3, + rarity = 3, minLevel = 2, maxLevel = 3, CanConsume = false, @@ -6062,7 +6058,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_476/*Magic Quiver*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_477("20%")/*There's a 20% increased chance to not consume ammo when firing a projectile.*/, //tr - Rarity = 4, + rarity = 4, minLevel = 2, maxLevel = 3, CanConsume = false, @@ -6085,7 +6081,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_478/*Improved Magic Quiver*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_479("25%")/*There's a 25% increased chance to not consume ammo when firing a projectile.*/, //tr - Rarity = 5, + rarity = 5, minLevel = 2, maxLevel = 3, CanConsume = false, @@ -6109,7 +6105,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_480/*Factory Quiver*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_481("40%")/*There's a 40% increased chance to not consume ammo when firing a projectile.*/, //tr - Rarity = 6, + rarity = 6, minLevel = 12, maxLevel = 20, CanConsume = false, @@ -6125,7 +6121,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_482/*Enzyme STR/34*/, //tr description = Translations.ItemDataBase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_484/*Changes Vitality, Agility or Intelligence stat on an item to Strength or changes Ranged or Spell damage stat to Melee Damage*/, //tr - Rarity = 6, + rarity = 6, minLevel = 1, maxLevel = 2, CanConsume = false, @@ -6187,7 +6183,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_485/*Enzyme INT/33*/, //tr description = Translations.ItemDataBase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_486/*Changes Vitality, Agility or Strength stat on an item to Intelligence or changes Ranged or Melee damage stat to Spell Damage*/, //tr - Rarity = 6, + rarity = 6, minLevel = 1, maxLevel = 2, CanConsume = false, @@ -6249,7 +6245,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_487/*Enzyme AGI/39*/, //tr description = Translations.ItemDataBase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_488/*Changes Vitality, Intelligence or Strength stat on an item to Agility or changes Melee or Spell damage stat to Ranged Damage*/, //tr - Rarity = 6, + rarity = 6, minLevel = 1, maxLevel = 2, CanConsume = false, @@ -6312,7 +6308,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_489/*Enzyme VIT/449*/, //tr description = Translations.ItemDataBase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_490/*Changes Agility, Intelligence or Strength stat on an item to Vitality*/, //tr - Rarity = 6, + rarity = 6, minLevel = 1, maxLevel = 2, CanConsume = false, @@ -6364,7 +6360,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_491/*Stomach Acid*/, //tr description = Translations.ItemDataBase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_492/*Removes all stats with negative values from an item*/, //tr - Rarity = 4, + rarity = 4, minLevel = 1, maxLevel = 2, CanConsume = false, @@ -6387,7 +6383,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_493/*Elite Stomach Acid*/, //tr description = Translations.ItemDataBase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_494/*Changes negative stat values into positive values on an item*/, //tr - Rarity = 6, + rarity = 6, minLevel = 1, maxLevel = 2, CanConsume = false, @@ -6416,7 +6412,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_495/*Crimson Solution*/, //tr description = Translations.ItemDataBase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_496/*Upgrades item of any rarity to one of the same type but of Legendary rarity*/, //tr - Rarity = 7, + rarity = 7, minLevel = 1, maxLevel = 2, CanConsume = false, @@ -6436,7 +6432,7 @@ public static void PopulateItems() { if (Player.Inventory.Instance.ItemSlots[slotIndex] == x) { - var options = ItemDataBase.ItemBases.Where(y => y.Value.Rarity == 7 && y.Value.type == itemType && (itemType != BaseItem.ItemType.Weapon || y.Value.weaponModel == x.weaponModel)).Select(y => y.Key).ToList(); + var options = ItemDataBase.ItemBases.Where(y => y.Value.rarity == 7 && y.Value.type == itemType && (itemType != BaseItem.ItemType.Weapon || y.Value.weaponModel == x.weaponModel)).Select(y => y.Key).ToList(); if (options.Count == 0) { ModAPI.Log.Write("No tier 7 items for type: " + itemType); @@ -6462,7 +6458,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_497/*Weak Armor Hardening Mixture*/, //tr description = Translations.ItemDataBase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_498/*Adds Armor Stat to a piece of equipment if the item does not already have it*/, //tr - Rarity = 4, + rarity = 4, minLevel = 1, maxLevel = 2, CanConsume = false, @@ -6491,7 +6487,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_499/*Upgraded Armor Hardening Mixture*/, //tr description = Translations.ItemDataBase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_500/*Adds Damage Reduction Stat to a piece of equipment if the item does not already have it*/, //tr - Rarity = 5, + rarity = 5, minLevel = 1, maxLevel = 2, CanConsume = false, @@ -6520,7 +6516,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_501/*Chaos Water*/, //tr description = Translations.ItemDataBase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_502/*Rerolls all stats on an item of rarity no higher than orange*/, //tr - Rarity = 4, + rarity = 4, minLevel = 1, maxLevel = 2, CanConsume = false, @@ -6532,7 +6528,7 @@ public static void PopulateItems() if (x.Equipped) return false; var itemType = x.type; - if (itemType == BaseItem.ItemType.Other || itemType == BaseItem.ItemType.Material || x.Amount > 1 || x.Rarity > 5) + if (itemType == BaseItem.ItemType.Other || itemType == BaseItem.ItemType.Material || x.Amount > 1 || x.rarity > 5) return false; if (x.Stats.Count > 1) { @@ -6547,7 +6543,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_503/*Upgraded Chaos Water*/, //tr description = Translations.ItemDataBase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_504/*Rerolls all stats on an item of any rarity*/, //tr - Rarity = 6, + rarity = 6, minLevel = 1, maxLevel = 2, CanConsume = false, @@ -6584,7 +6580,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_505/*Gun Blade*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_506("150%")/*Increases pistol damage by 150%*/, //tr - Rarity = 6, + rarity = 6, minLevel = 35, maxLevel = 36, CanConsume = false, @@ -6614,7 +6610,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_507/*Sharpshooter's Axe*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_508("50%", "600%")/*Increases pistol headshot chance by 50% and pistol damage by 600%*/, //tr - Rarity = 7, + rarity = 7, minLevel = 35, maxLevel = 36, CanConsume = false, @@ -6641,7 +6637,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_509/*Shield Blade*/, //tr description = Translations.ItemDataBase_ItemDefinitions_510/*So large can be used as a shield*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_511/*A normal human cannot lift this weapon.*/, //tr - Rarity = 6, + rarity = 6, minLevel = 50, maxLevel = 52, CanConsume = false, @@ -6668,7 +6664,7 @@ public static void PopulateItems() description = Translations.ItemDataBase_ItemDefinitions_510/*So large can be used as a shield*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_511/*A normal human cannot lift this weapon.*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_513("200%")/*Bash damage debuff on enemies is increased by 200%*/, //tr - Rarity = 7, + rarity = 7, minLevel = 50, maxLevel = 52, CanConsume = false, @@ -6698,7 +6694,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_514/*Madman's Legacy*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_515("69%")/*Frenzy damage per stack is increased by 50%*/, //tr - Rarity = 7, + rarity = 7, minLevel = 1, maxLevel = 2, CanConsume = false, @@ -6720,7 +6716,7 @@ public static void PopulateItems() }) { name = Translations.ItemDataBase_ItemDefinitions_516/*Buckler*/, //tr - Rarity = 5, + rarity = 5, minLevel = 1, maxLevel = 2, CanConsume = false, @@ -6741,7 +6737,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_517/*Pyromancy Mask*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_518("200%")/*Ignited enemies burn for 200% extended perioid of time.*/, //tr - Rarity = 5, + rarity = 5, minLevel = 2, maxLevel = 6, CanConsume = false, @@ -6769,7 +6765,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_519/*Ember Mask*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_520("700%")/*Ignited enemies burn for 300% extended perioid of time and fire ticks thrice as fast.*/, //tr - Rarity = 7, + rarity = 7, minLevel = 2, maxLevel = 6, CanConsume = false, @@ -6800,7 +6796,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_521/*Flame Pauldrons*/, //tr description = "", //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_522(10, "750%")/*Firebolt costs 30 additional energy to cast and its damage scaling is increased by 250%*/, //tr - Rarity = 7, + rarity = 7, minLevel = 5, maxLevel = 8, CanConsume = false, @@ -6833,7 +6829,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_523/*Ancient Scroll*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_607/*Firebolt deals increased damage*/, //tr - Rarity = 6, + rarity = 6, minLevel = 1, maxLevel = 1, CanConsume = false, @@ -6862,7 +6858,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_524/*Guide on Tearing Spacetime*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_525/*Blink creates an explosion at the exit point, and the damage of the explosion is increased by velocity and the radius is increased by the distance of blink*/, //tr - Rarity = 7, + rarity = 7, minLevel = 1, maxLevel = 1, CanConsume = false, @@ -6888,7 +6884,7 @@ public static void PopulateItems() }) { name = Translations.ItemDataBase_ItemDefinitions_526/*300th Spear*/, //tr - Rarity = 6, + rarity = 6, minLevel = 30, maxLevel = 34, CanConsume = false, @@ -6912,7 +6908,7 @@ public static void PopulateItems() uniqueStat = Translations.ItemDataBase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.03f), onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.03f), - Rarity = 2, + rarity = 2, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -6932,7 +6928,7 @@ public static void PopulateItems() uniqueStat = Translations.ItemDataBase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.04f), onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.04f), - Rarity = 3, + rarity = 3, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -6953,7 +6949,7 @@ public static void PopulateItems() uniqueStat = Translations.ItemDataBase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.05f), onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.05f), - Rarity = 4, + rarity = 4, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -6976,7 +6972,7 @@ public static void PopulateItems() uniqueStat = Translations.ItemDataBase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.06f), onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.06f), - Rarity = 5, + rarity = 5, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -7002,7 +6998,7 @@ public static void PopulateItems() uniqueStat = Translations.ItemDataBase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.1f), onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.1f), - Rarity = 6, + rarity = 6, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -7024,7 +7020,7 @@ public static void PopulateItems() uniqueStat = Translations.ItemDataBase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.03f), onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.03f), - Rarity = 2, + rarity = 2, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -7046,7 +7042,7 @@ public static void PopulateItems() uniqueStat = Translations.ItemDataBase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.04f), onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.04f), - Rarity = 3, + rarity = 3, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -7069,7 +7065,7 @@ public static void PopulateItems() uniqueStat = Translations.ItemDataBase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.05f), onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.05f), - Rarity = 4, + rarity = 4, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -7095,7 +7091,7 @@ public static void PopulateItems() uniqueStat = Translations.ItemDataBase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.06f), onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.06f), - Rarity = 5, + rarity = 5, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -7123,7 +7119,7 @@ public static void PopulateItems() uniqueStat = Translations.ItemDataBase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.1f), onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.1f), - Rarity = 6, + rarity = 6, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -7145,7 +7141,7 @@ public static void PopulateItems() uniqueStat = Translations.ItemDataBase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.03f), onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.03f), - Rarity = 2, + rarity = 2, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -7166,7 +7162,7 @@ public static void PopulateItems() uniqueStat = Translations.ItemDataBase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.04f), onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.04f), - Rarity = 3, + rarity = 3, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -7188,7 +7184,7 @@ public static void PopulateItems() uniqueStat = Translations.ItemDataBase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.05f), onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.05f), - Rarity = 4, + rarity = 4, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -7212,7 +7208,7 @@ public static void PopulateItems() uniqueStat = Translations.ItemDataBase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.06f), onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.06f), - Rarity = 5, + rarity = 5, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -7239,7 +7235,7 @@ public static void PopulateItems() uniqueStat = Translations.ItemDataBase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.1f), onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.1f), - Rarity = 6, + rarity = 6, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -7262,7 +7258,7 @@ public static void PopulateItems() uniqueStat = Translations.ItemDataBase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.03f), onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.03f), - Rarity = 2, + rarity = 2, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -7282,7 +7278,7 @@ public static void PopulateItems() uniqueStat = Translations.ItemDataBase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.04f), onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.04f), - Rarity = 3, + rarity = 3, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -7303,7 +7299,7 @@ public static void PopulateItems() uniqueStat = Translations.ItemDataBase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.05f), onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.05f), - Rarity = 4, + rarity = 4, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -7326,7 +7322,7 @@ public static void PopulateItems() uniqueStat = Translations.ItemDataBase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.06f), onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.06f), - Rarity = 5, + rarity = 5, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -7352,7 +7348,7 @@ public static void PopulateItems() uniqueStat = Translations.ItemDataBase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.1f), onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.1f), - Rarity = 6, + rarity = 6, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -7375,7 +7371,7 @@ public static void PopulateItems() uniqueStat = Translations.ItemDataBase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.03f), onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.03f), - Rarity = 2, + rarity = 2, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -7396,7 +7392,7 @@ public static void PopulateItems() uniqueStat = Translations.ItemDataBase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.04f), onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.04f), - Rarity = 3, + rarity = 3, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -7418,7 +7414,7 @@ public static void PopulateItems() uniqueStat = Translations.ItemDataBase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.05f), onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.05f), - Rarity = 4, + rarity = 4, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -7442,7 +7438,7 @@ public static void PopulateItems() uniqueStat = Translations.ItemDataBase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.06f), onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.06f), - Rarity = 5, + rarity = 5, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -7469,7 +7465,7 @@ public static void PopulateItems() uniqueStat = Translations.ItemDataBase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.1f), onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.1f), - Rarity = 6, + rarity = 6, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -7489,7 +7485,7 @@ public static void PopulateItems() uniqueStat = Translations.ItemDataBase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.03f), onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.03f), - Rarity = 2, + rarity = 2, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -7509,7 +7505,7 @@ public static void PopulateItems() uniqueStat = Translations.ItemDataBase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.04f), onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.04f), - Rarity = 3, + rarity = 3, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -7530,7 +7526,7 @@ public static void PopulateItems() uniqueStat = Translations.ItemDataBase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.05f), onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.05f), - Rarity = 4, + rarity = 4, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -7554,7 +7550,7 @@ public static void PopulateItems() uniqueStat = Translations.ItemDataBase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.06f), onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.06f), - Rarity = 5, + rarity = 5, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -7581,7 +7577,7 @@ public static void PopulateItems() uniqueStat = Translations.ItemDataBase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.1f), onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.1f), - Rarity = 6, + rarity = 6, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -7601,7 +7597,7 @@ public static void PopulateItems() uniqueStat = Translations.ItemDataBase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.03f), onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.03f), - Rarity = 2, + rarity = 2, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -7621,7 +7617,7 @@ public static void PopulateItems() uniqueStat = Translations.ItemDataBase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.04f), onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.04f), - Rarity = 3, + rarity = 3, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -7642,7 +7638,7 @@ public static void PopulateItems() uniqueStat = Translations.ItemDataBase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.05f), onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.05f), - Rarity = 4, + rarity = 4, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -7665,7 +7661,7 @@ public static void PopulateItems() uniqueStat = Translations.ItemDataBase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.06f), onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.06f), - Rarity = 5, + rarity = 5, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -7691,7 +7687,7 @@ public static void PopulateItems() uniqueStat = Translations.ItemDataBase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.1f), onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.1f), - Rarity = 6, + rarity = 6, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -7713,7 +7709,7 @@ public static void PopulateItems() uniqueStat = Translations.ItemDataBase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.03f), onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.03f), - Rarity = 2, + rarity = 2, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -7734,7 +7730,7 @@ public static void PopulateItems() uniqueStat = Translations.ItemDataBase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.04f), onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.04f), - Rarity = 3, + rarity = 3, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -7756,7 +7752,7 @@ public static void PopulateItems() uniqueStat = Translations.ItemDataBase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.05f), onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.05f), - Rarity = 4, + rarity = 4, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -7780,7 +7776,7 @@ public static void PopulateItems() uniqueStat = Translations.ItemDataBase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.06f), onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.06f), - Rarity = 5, + rarity = 5, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -7807,7 +7803,7 @@ public static void PopulateItems() uniqueStat = Translations.ItemDataBase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.1f), onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.1f), - Rarity = 6, + rarity = 6, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -7839,7 +7835,7 @@ public static void PopulateItems() description = Translations.ItemDataBase_ItemDefinitions_572(15, "35%", 15, "5%")/*Set Piece:\n2 Pieces- Berserk does not apply exhaustion when it ends\n3 Pieces - Berserk duration is increased by 15 seconds\n4 Pieces - Each second of berserk being in effect increases damage by 35%.\n5 Pieces - For the first 15 seconds of Berserk attack speed increases by 30% per second, and lasts till the end of the spell's duration.*/, //tr onEquip = () => BerserkSet.Equip(), onUnequip = () => BerserkSet.Unequip(), - Rarity = 7, + rarity = 7, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -7869,7 +7865,7 @@ public static void PopulateItems() description = Translations.ItemDataBase_ItemDefinitions_572(15, "35%", 15, "5%")/*Set Piece:\n2 Pieces- Berserk does not apply exhaustion when it ends\n3 Pieces - Berserk duration is increased by 15 seconds\n4 Pieces - Each second of berserk being in effect increases damage by 35%.\n5 Pieces - For the first 15 seconds of Berserk attack speed increases by 30% per second, and lasts till the end of the spell's duration.*/, //tr onEquip = () => BerserkSet.Equip(), onUnequip = () => BerserkSet.Unequip(), - Rarity = 7, + rarity = 7, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -7904,7 +7900,7 @@ public static void PopulateItems() description = Translations.ItemDataBase_ItemDefinitions_572(15, "35%", 15, "5%")/*Set Piece:\n2 Pieces- Berserk does not apply exhaustion when it ends\n3 Pieces - Berserk duration is increased by 15 seconds\n4 Pieces - Each second of berserk being in effect increases damage by 35%.\n5 Pieces - For the first 15 seconds of Berserk attack speed increases by 30% per second, and lasts till the end of the spell's duration.*/, //tr onEquip = () => BerserkSet.Equip(), onUnequip = () => BerserkSet.Unequip(), - Rarity = 7, + rarity = 7, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -7938,7 +7934,7 @@ public static void PopulateItems() description = Translations.ItemDataBase_ItemDefinitions_572(15, "35%", 15, "5%")/*Set Piece:\n2 Pieces- Berserk does not apply exhaustion when it ends\n3 Pieces - Berserk duration is increased by 15 seconds\n4 Pieces - Each second of berserk being in effect increases damage by 35%.\n5 Pieces - For the first 15 seconds of Berserk attack speed increases by 30% per second, and lasts till the end of the spell's duration.*/, //tr onEquip = () => BerserkSet.Equip(), onUnequip = () => BerserkSet.Unequip(), - Rarity = 7, + rarity = 7, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -7970,7 +7966,7 @@ public static void PopulateItems() description = Translations.ItemDataBase_ItemDefinitions_572(15, "35%", 15, "5%")/*Set Piece:\n2 Pieces- Berserk does not apply exhaustion when it ends\n3 Pieces - Berserk duration is increased by 15 seconds\n4 Pieces - Each second of berserk being in effect increases damage by 35%.\n5 Pieces - For the first 15 seconds of Berserk attack speed increases by 30% per second, and lasts till the end of the spell's duration.*/, //tr onEquip = () => BerserkSet.Equip(), onUnequip = () => BerserkSet.Unequip(), - Rarity = 7, + rarity = 7, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -8004,7 +8000,7 @@ public static void PopulateItems() description = Translations.ItemDataBase_ItemDefinitions_572(15, "35%", 15, "5%")/*Set Piece:\n2 Pieces- Berserk does not apply exhaustion when it ends\n3 Pieces - Berserk duration is increased by 15 seconds\n4 Pieces - Each second of berserk being in effect increases damage by 35%.\n5 Pieces - For the first 15 seconds of Berserk attack speed increases by 30% per second, and lasts till the end of the spell's duration.*/, //tr onEquip = () => BerserkSet.Equip(), onUnequip = () => BerserkSet.Unequip(), - Rarity = 7, + rarity = 7, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -8036,7 +8032,7 @@ public static void PopulateItems() uniqueStat = Translations.ItemDataBase_ItemDefinitions_579(1)/*Resist lethal damage on a 1 minute cooldown*/, //tr onEquip = () => COTFEvents.Instance.OnTakeLethalDamage.AddListener(UniqueItemFunctions.ResistDeath), onUnequip = () => COTFEvents.Instance.OnTakeLethalDamage.RemoveListener(UniqueItemFunctions.ResistDeath), - Rarity = 7, + rarity = 7, minLevel = 1, maxLevel = 3, CanConsume = false, @@ -8065,7 +8061,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_609, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_610, //tr - Rarity = 7, + rarity = 7, minLevel = 20, maxLevel = 28, CanConsume = false, @@ -8101,7 +8097,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_611, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_612("300%"), //tr - Rarity = 7, + rarity = 7, minLevel = 6, maxLevel = 9, CanConsume = false, @@ -8130,7 +8126,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_613, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_612("100%"), //tr - Rarity = 6, + rarity = 6, minLevel = 6, maxLevel = 9, CanConsume = false, @@ -8155,7 +8151,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_614, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_615("10%"), //tr - Rarity = 5, + rarity = 5, minLevel = 6, maxLevel = 9, CanConsume = false, @@ -8195,7 +8191,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_616, //tr uniqueStat = $"Berserk increases melee and ranged damage by 100%, increases movement speed by 30% and attack speed by 15%", //tr - Rarity = 7, + rarity = 7, minLevel = 60, maxLevel = 62, CanConsume = false, @@ -8236,7 +8232,7 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_617, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_618("100%", "40%"),//tr - Rarity = 7, + rarity = 7, minLevel = 1, maxLevel = 3, CanConsume = false, diff --git a/Items/ItemPickUp.cs b/Items/ItemPickUp.cs index 855106d..3b486c1 100644 --- a/Items/ItemPickUp.cs +++ b/Items/ItemPickUp.cs @@ -109,7 +109,7 @@ private void OnGUI() } } - GUI.color = new Color(MainMenu.RarityColors[item.Rarity].r, MainMenu.RarityColors[item.Rarity].g, MainMenu.RarityColors[item.Rarity].b, displayTime); + GUI.color = new Color(MainMenu.RarityColors[item.rarity].r, MainMenu.RarityColors[item.rarity].g, MainMenu.RarityColors[item.rarity].b, displayTime); GUIStyle style = new GUIStyle(GUI.skin.label) { alignment = TextAnchor.UpperCenter, font = MainMenu.Instance.mainFont, fontSize = Mathf.RoundToInt(40 * MainMenu.Instance.screenScale) }; float titleHeight = style.CalcHeight(new GUIContent(label), r.width); diff --git a/Items/ItemTemplates.cs b/Items/ItemTemplates.cs new file mode 100644 index 0000000..572b3c5 --- /dev/null +++ b/Items/ItemTemplates.cs @@ -0,0 +1,544 @@ +using System.Linq; +using System.Collections.Generic; +using ChampionsOfForest.Items; +using ChampionsOfForest.Items.Sets; +using ChampionsOfForest.Localization; +using ChampionsOfForest.Player; + +using static ChampionsOfForest.ItemDataBase.Stat; +using static ChampionsOfForest.ItemDataBase; + +namespace ChampionsOfForest.Items.ItemTemplates +{ + + public abstract class ItemTemplateBuilder : BaseItem + { + + private static List defaultStats = null; + public ItemTemplateBuilder() + { + if (defaultStats == null || defaultStats.Count() == 0) + { + defaultStats = ToItemStatList(defaultStatIds); + } + ID = ItemDataBase._Item_Bases.Count; + ItemDataBase._Item_Bases.Add(this); + } + + protected List ToItemStatList(Stat[] stats) + { + var list = new List(); + foreach (var stat in defaultStatIds) + { + list.Add(new ItemStat(ItemDataBase.Stats[(int)stat])); + } + return list; + } + + // pool of stats to appear on items by default + private readonly Stat[] defaultStatIds = new Stat[] + { + STRENGTH, + AGILITY, + VITALITY, + INTELLIGENCE, + MAXIMUMLIFE, + MAXIMUMENERGY, + LIFEPERSECOND, + STAMINAPERSECOND, + STAMINAREGENERATION, + LIFEREGENERATION, + DAMAGEREDUCTION, + CRITICALHITCHANCE, + CRITICALHITDAMAGE, + LIFEONHIT, + DODGECHANCE, + ARMOR, + RESISTANCETOMAGIC, + ATTACKSPEED, + EXPGAIN, + MASSACREDURATION, + SPELLDAMAGEINCREASE, + MELEEDAMAGEINCREASE, + RANGEDDAMAGEINCREASE, + BASESPELLDAMAGE, + BASEMELEEDAMAGE, + BASERANGEDDAMAGE, + ALLHEALINGPERCENT, + MOVEMENTSPEED, + ATTACKCOSTREDUCTION, + SPELLCOSTREDUCTION, + SPELLCOSTTOSTAMINA, + LESSERSTRENGTH, + LESSERAGILITY, + LESSERVITALITY, + LESSERINTELLIGENCE, + LESSERARMOR, + ENERGYPERSECOND, + PERCENTMAXIMUMLIFE, + PERCENTMAXIMUMENERGY, + COOLDOWNREDUCTION, + ENERGYONHIT, + MAGICFIND, // think about keeping this later + ALLATTRIBUTES, + JUMPPOWER, + THORNS + }; + + // adds the defaultStatIds n times to the stat pool for the item + public ItemTemplateBuilder DefaultStatSlot(int n = 1) + { + for (int i = 0; i < n; i++) + PossibleStats.Add(defaultStats); + return this; + } + + public ItemTemplateBuilder StatSlot(Stat[] statPool) + { + PossibleStats.Add(ToItemStatList(statPool)); + return this; + } + + public ItemTemplateBuilder DropsFrom(EnemyProgression.Enemy enemyTypes) + { + lootTable = enemyTypes; + return this; + } + + public ItemTemplateBuilder Name(string s) + { + name = s; + return this; + } + + public ItemTemplateBuilder Description(string s) + { + description = s; + return this; + } + + public ItemTemplateBuilder Lore(string s) + { + lore = s; + return this; + } + + public ItemTemplateBuilder UniqueStat(string s, OnItemEquip _onEquip, OnItemUnequip _onUnequip) + { + onEquip = _onEquip; + onUnequip = _onUnequip; + uniqueStat = s; + return this; + } + + public ItemTemplateBuilder LevelRequirement(int minimumLevel) + { + minLevel = minimumLevel; + maxLevel = minimumLevel + 1; + return this; + } + + public ItemTemplateBuilder Consumable(string consumableDescriptiuon, OnItemConsume _onConsume, OnItemUnequip _onUnequip) + { + onConsume = _onConsume; + uniqueStat = consumableDescriptiuon; + StackSize = 100; + CanConsume = true; + return this; + } + + public ItemTemplateBuilder Rarity(int r) + { + base.rarity = r; + return this; + } + + public ItemTemplateBuilder Icon(int iconid) + { + icon = Res.ResourceLoader.GetTexture(iconid); // Texture2D <- int + return this; + } + } + + public class Greatsword : ItemTemplateBuilder + { + public Greatsword() + { + type = ItemType.Weapon; + weaponModel = WeaponModelType.GreatSword; + Icon(88); + + } + } + + public class Longsword : ItemTemplateBuilder + { + public Longsword() + { + type = ItemType.Weapon; + weaponModel = WeaponModelType.LongSword; + Icon(89); + } + } + + public class Hammer : ItemTemplateBuilder + { + public Hammer() + { + type = ItemType.Weapon; + weaponModel = WeaponModelType.Hammer; + Icon(109); + + } + } + + public class Polearm : ItemTemplateBuilder + { + public Polearm() + { + type = ItemType.Weapon; + weaponModel = WeaponModelType.Polearm; + Icon(181); + } + } + + public class Axe : ItemTemplateBuilder + { + public Axe() + { + type = ItemType.Weapon; + weaponModel = WeaponModelType.Axe; + Icon(138); + } + } + + public class Greatbow : ItemTemplateBuilder + { + public Greatbow() + { + type = ItemType.Weapon; + weaponModel = WeaponModelType.Greatbow; + Icon(170); + } + } + + + public class Material : ItemTemplateBuilder + { + public Material() + { + type = ItemType.Material; + LevelRequirement(20); + // Materials dont have a default icon + } + } + + public class Shield : ItemTemplateBuilder + { + public Shield() + { + type = ItemType.Shield; + LevelRequirement(10); + Icon(99); + } + } + + public class Quiver : ItemTemplateBuilder + { + public Quiver() + { + type = ItemType.Quiver; + LevelRequirement(10); + Icon(98); + } + } + + public class Other : ItemTemplateBuilder + { + public Other() + { + type = ItemType.Other; + Icon(105); + } + } + + public class Helmet : ItemTemplateBuilder + { + public Helmet() + { + type = ItemType.Helmet; + LevelRequirement(6); + Icon(91); + } + } + + public class Boot : ItemTemplateBuilder + { + public Boot() + { + type = ItemType.Boot; + LevelRequirement(5); + Icon(85); + } + } + + public class Pants : ItemTemplateBuilder + { + public Pants() + { + type = ItemType.Pants; + Icon(87); + } + } + + public class ChestArmor : ItemTemplateBuilder + { + public ChestArmor() + { + type = ItemType.ChestArmor; + LevelRequirement(1); + Icon(96); + } + } + + public class ShoulderArmor : ItemTemplateBuilder + { + public ShoulderArmor() + { + type = ItemType.ShoulderArmor; + LevelRequirement(8); + Icon(95); + } + } + + public class Glove : ItemTemplateBuilder + { + public Glove() + { + type = ItemType.Glove; + LevelRequirement(7); + Icon(86); + } + } + + public class Bracer : ItemTemplateBuilder + { + public Bracer() + { + type = ItemType.Bracer; + LevelRequirement(9); + Icon(93); + } + } + + public class Amulet : ItemTemplateBuilder + { + + + private static readonly Stat[] amuletStatIds = + { + STRENGTH, + AGILITY, + VITALITY, + INTELLIGENCE, + MAXIMUMLIFE, + MAXIMUMENERGY, + LIFEPERSECOND, + STAMINAPERSECOND, + STAMINAREGENERATION, + LIFEREGENERATION, + DAMAGEREDUCTION, + CRITICALHITCHANCE, + CRITICALHITDAMAGE, + LIFEONHIT, + DODGECHANCE, + ARMOR, + RESISTANCETOMAGIC, + ATTACKSPEED, + EXPGAIN, + MASSACREDURATION, + SPELLDAMAGEINCREASE, + MELEEDAMAGEINCREASE, + RANGEDDAMAGEINCREASE, + BASESPELLDAMAGE, + BASEMELEEDAMAGE, + BASERANGEDDAMAGE, + MAXENERGYFROMAGI, + MAXHEALTHFROMVIT, + SPELLDMGFROMINT, + MELEEDMGFROMSTR, + ALLHEALINGPERCENT, + MOVEMENTSPEED, + MELEEWEAPONRANGE, + ATTACKCOSTREDUCTION, + SPELLCOSTREDUCTION, + SPELLCOSTTOSTAMINA, + ENERGYPERSECOND, + PERCENTMAXIMUMLIFE, + PERCENTMAXIMUMENERGY, + COOLDOWNREDUCTION, + RANGEDDMGFROMAGI, + ENERGYONHIT, + BLOCK, + PROJECTILESPEED, + PROJECTILESIZE, + MELEEARMORPIERCING, + RANGEDARMORPIERCING, + ARMORPIERCING, + ALLATTRIBUTES, + HEADSHOTDAMAGE, + FIREDAMAGE, + CHANCEONHITTOSLOW, + CHANCEONHITTOBLEED, + CHANCEONHITTOWEAKEN, + THORNS, + PIERCECHANCE, + EXPLOSIONDAMAGE, + SPEARDAMAGE, + + + }; + private static List amuletStats = null; + + + public Amulet() + { + type = ItemType.Amulet; + if (amuletStats == null) + amuletStats = ToItemStatList(amuletStatIds); + Icon(101); + } + + public Amulet RingStatSlot(int n = 1) + { + for (int i = 0; i < n; i++) + PossibleStats.Add(amuletStats); + return this; + } + + public Amulet Scarf() + { + Icon(100); // this is the id of scarf icon + return this; + } + } + + public class Ring : ItemTemplateBuilder + { + private static readonly Stat[] ringStatIds = + { + STRENGTH, + AGILITY, + VITALITY, + INTELLIGENCE, + MAXIMUMLIFE, + MAXIMUMENERGY, + LIFEPERSECOND, + STAMINAPERSECOND, + STAMINAREGENERATION, + LIFEREGENERATION, + CRITICALHITCHANCE, + CRITICALHITDAMAGE, + LIFEONHIT, + ATTACKSPEED, + EXPGAIN, + ALLHEALINGPERCENT, + EXPERIENCE, + ATTACKCOSTREDUCTION, + SPELLCOSTREDUCTION, + SPELLCOSTTOSTAMINA, + LESSERSTRENGTH, + LESSERAGILITY, + LESSERVITALITY, + LESSERINTELLIGENCE, + ENERGYPERSECOND, + PERCENTMAXIMUMLIFE, + PERCENTMAXIMUMENERGY, + COOLDOWNREDUCTION, + ENERGYONHIT, + PROJECTILESPEED, + PROJECTILESIZE, + MAGICFIND, + ALLATTRIBUTES + + }; + private static List ringStats = null; + + public Ring() + { + type = ItemType.Ring; + if (ringStats == null) + ringStats = ToItemStatList(ringStatIds); + Icon(90); + } + + public Ring RingStatSlot(int n = 1) + { + for(int i = 0; i 2) + if (item.rarity > 2) { Light l = spawn.AddComponent(); l.type = LightType.Point; l.shadowStrength = 1; - l.color = MainMenu.RarityColors[item.Rarity]; + l.color = MainMenu.RarityColors[item.rarity]; l.intensity = 1f; l.range = 4f; - if (item.Rarity > 5) + if (item.rarity > 5) { l.range = 7f; l.intensity = 1.7f; l.cookieSize = 5f; - if (item.Rarity == 7) + if (item.rarity == 7) { l.range = 12f; l.intensity = 4f; @@ -209,21 +209,21 @@ public static void SpawnPickUp(Item item, Vector3 pos, int amount, ulong id, Ite break; } - if (item.Rarity > 2) + if (item.rarity > 2) { Light l = spawn.AddComponent(); l.type = LightType.Point; l.shadowStrength = 1; - l.color = MainMenu.RarityColors[item.Rarity]; + l.color = MainMenu.RarityColors[item.rarity]; l.intensity = 1f; l.range = 4f; - renderer.material.color = MainMenu.RarityColors[item.Rarity]; - if (item.Rarity > 5) + renderer.material.color = MainMenu.RarityColors[item.rarity]; + if (item.rarity > 5) { l.range = 7f; l.intensity = 1.7f; l.cookieSize = 5f; - if (item.Rarity == 7) + if (item.rarity == 7) { l.range = 12f; l.intensity = 4f; @@ -238,7 +238,7 @@ public static void SpawnPickUp(Item item, Vector3 pos, int amount, ulong id, Ite } ItemPickUp pickup = spawn.AddComponent(); - pickup.lifetime = (int)dropSource + item.Rarity * item.Rarity * 2; + pickup.lifetime = (int)dropSource + item.rarity * item.rarity * 2; pickup.item = item; pickup.amount = amount; pickup.ID = id; diff --git a/Network/CommandReader.cs b/Network/CommandReader.cs index 881499f..574f540 100644 --- a/Network/CommandReader.cs +++ b/Network/CommandReader.cs @@ -858,17 +858,17 @@ public static void OnCommand(byte[] bytes) var pu = PickUpManager.PickUps[PickupID]; if (PlayerID == ModReferences.ThisPlayerID) { - MainMenu.Instance.localPlayerPing = new MarkPickup(pu.transform, pu.item.name, pu.item.Rarity); + MainMenu.Instance.localPlayerPing = new MarkPickup(pu.transform, pu.item.name, pu.item.rarity); } else { if (MainMenu.Instance.otherPlayerPings.ContainsKey(PlayerID)) { - MainMenu.Instance.otherPlayerPings[PlayerID] = new MarkPickup(pu.transform, pu.item.name, pu.item.Rarity); + MainMenu.Instance.otherPlayerPings[PlayerID] = new MarkPickup(pu.transform, pu.item.name, pu.item.rarity); } else { - MainMenu.Instance.otherPlayerPings.Add(PlayerID, new MarkPickup(pu.transform, pu.item.name, pu.item.Rarity)); + MainMenu.Instance.otherPlayerPings.Add(PlayerID, new MarkPickup(pu.transform, pu.item.name, pu.item.rarity)); } } } diff --git a/Player/AutoPickupItems.cs b/Player/AutoPickupItems.cs index 0243b74..e68b249 100644 --- a/Player/AutoPickupItems.cs +++ b/Player/AutoPickupItems.cs @@ -42,8 +42,8 @@ public static void DoPickup() } else { - if (Player.Inventory.Instance.ItemSlots[i].Rarity < minRarity) - minRarity = Player.Inventory.Instance.ItemSlots[i].Rarity; + if (Player.Inventory.Instance.ItemSlots[i].rarity < minRarity) + minRarity = Player.Inventory.Instance.ItemSlots[i].rarity; } } @@ -88,7 +88,7 @@ public static void DoPickup() var customPickup = hit[i].transform.gameObject.GetComponent(); if (customPickup != null) { - if(customPickup.item.Rarity>= minRarity || customPickup.item.type == BaseItem.ItemType.Material || customPickup.item.type == BaseItem.ItemType.Other) + if(customPickup.item.rarity>= minRarity || customPickup.item.type == BaseItem.ItemType.Material || customPickup.item.type == BaseItem.ItemType.Other) customPickup.PickUp(); } } diff --git a/Player/Crafting/Empowering.cs b/Player/Crafting/Empowering.cs index 8958d49..15123a5 100644 --- a/Player/Crafting/Empowering.cs +++ b/Player/Crafting/Empowering.cs @@ -15,12 +15,12 @@ public bool validRecipe if (CraftingHandler.changedItem.i == null || CraftingHandler.changedItem.i.destinationSlotID > -2) return false; int itemCount = 0; - int rarity = CraftingHandler.changedItem.i.Rarity; + int rarity = CraftingHandler.changedItem.i.rarity; for (int i = 0; i < CraftingHandler.ingredients.Length; i++) { if (CraftingHandler.ingredients[i].i != null) { - if (CraftingHandler.ingredients[i].i.Rarity >= rarity) + if (CraftingHandler.ingredients[i].i.rarity >= rarity) { itemCount++; } diff --git a/Player/Crafting/IndividualRerolling.cs b/Player/Crafting/IndividualRerolling.cs index bddcf4f..3cbbd77 100644 --- a/Player/Crafting/IndividualRerolling.cs +++ b/Player/Crafting/IndividualRerolling.cs @@ -26,12 +26,12 @@ public bool validRecipe if (CraftingHandler.changedItem.i.PossibleStats[stat.possibleStatsIndex].Count < 2) return false; int itemCount = 0; - int rarity = CraftingHandler.changedItem.i.Rarity; + int rarity = CraftingHandler.changedItem.i.rarity; for (int i = 0; i < CraftingHandler.ingredients.Length; i++) { if (CraftingHandler.ingredients[i].i != null) { - if (CraftingHandler.ingredients[i].i.Rarity >= rarity) + if (CraftingHandler.ingredients[i].i.rarity >= rarity) { itemCount++; } diff --git a/Player/Crafting/Polishing.cs b/Player/Crafting/Polishing.cs index 08eb8e4..6255865 100644 --- a/Player/Crafting/Polishing.cs +++ b/Player/Crafting/Polishing.cs @@ -21,12 +21,12 @@ public bool validRecipe if (CraftingHandler.changedItem.i.Stats[selectedStat].StatID == 3000) return false; int itemCount = 0; - int rarity = CraftingHandler.changedItem.i.Rarity; + int rarity = CraftingHandler.changedItem.i.rarity; for (int i = 0; i < CraftingHandler.ingredients.Length; i++) { if (CraftingHandler.ingredients[i].i != null) { - if (CraftingHandler.ingredients[i].i.Rarity >= rarity) + if (CraftingHandler.ingredients[i].i.rarity >= rarity) itemCount++; else return false; diff --git a/Player/Crafting/Reforging.cs b/Player/Crafting/Reforging.cs index f88bfc4..2206319 100644 --- a/Player/Crafting/Reforging.cs +++ b/Player/Crafting/Reforging.cs @@ -20,12 +20,12 @@ public bool validRecipe if (CraftingHandler.changedItem.i == null) return false; int itemCount = 0; - int rarity = CraftingHandler.changedItem.i.Rarity; + int rarity = CraftingHandler.changedItem.i.rarity; for (int i = 0; i < CraftingHandler.ingredients.Length; i++) { if (CraftingHandler.ingredients[i].i != null) { - if (CraftingHandler.ingredients[i].i.Rarity >= rarity) + if (CraftingHandler.ingredients[i].i.rarity >= rarity) { itemCount++; } @@ -46,7 +46,7 @@ public void Craft() if (validRecipe) { int lvl = CraftingHandler.changedItem.i.level; - var v = ItemDataBase.ItemBases.Where(x => x.Value.ID != CraftingHandler.changedItem.i.ID && x.Value.Rarity == CraftingHandler.changedItem.i.Rarity).Select(x => x.Value).ToArray(); + var v = ItemDataBase.ItemBases.Where(x => x.Value.ID != CraftingHandler.changedItem.i.ID && x.Value.rarity == CraftingHandler.changedItem.i.rarity).Select(x => x.Value).ToArray(); var ib = v[UnityEngine.Random.Range(0, v.Length)]; var newItem = new Item(ib, 1, 0, false) @@ -82,7 +82,7 @@ public void DrawUI(in float x, in float w, in float screenScale, in GUIStyle[] s Rect nameRect = new Rect(x + 10 * screenScale, ypos, w - 20 * screenScale, 30 * screenScale); ypos += 30 * screenScale; - GUI.color = MainMenu.RarityColors[CustomCrafting.instance.changedItem.i.Rarity]; + GUI.color = MainMenu.RarityColors[CustomCrafting.instance.changedItem.i.rarity]; GUI.Label(nameRect, CustomCrafting.instance.changedItem.i.name, styles[3]); foreach (ItemStat stat in CustomCrafting.instance.changedItem.i.Stats) { diff --git a/Player/Crafting/Rerolling.cs b/Player/Crafting/Rerolling.cs index bfd774e..64bb2cb 100644 --- a/Player/Crafting/Rerolling.cs +++ b/Player/Crafting/Rerolling.cs @@ -17,12 +17,12 @@ public bool validRecipe if (CraftingHandler.changedItem.i == null) return false; int itemCount = 0; - int rarity = CraftingHandler.changedItem.i.Rarity; + int rarity = CraftingHandler.changedItem.i.rarity; for (int i = 0; i < CraftingHandler.ingredients.Length; i++) { if (CraftingHandler.ingredients[i].i != null) { - if (CraftingHandler.ingredients[i].i.Rarity >= rarity) + if (CraftingHandler.ingredients[i].i.rarity >= rarity) { itemCount++; } diff --git a/Player/Main Menu/MainMenu_HUD.cs b/Player/Main Menu/MainMenu_HUD.cs index c911df6..dccdab0 100644 --- a/Player/Main Menu/MainMenu_HUD.cs +++ b/Player/Main Menu/MainMenu_HUD.cs @@ -957,11 +957,11 @@ private void PingUpdate() NetworkManager.SendLine(answerStream.ToArray(), NetworkManager.Target.Others); answerStream.Close(); } - localPlayerPing = new MarkPickup(pu.transform, pu.item.name, pu.item.Rarity); + localPlayerPing = new MarkPickup(pu.transform, pu.item.name, pu.item.rarity); } else { - localPlayerPing = new MarkPickup(pu.transform, pu.item.name, pu.item.Rarity); + localPlayerPing = new MarkPickup(pu.transform, pu.item.name, pu.item.rarity); } } } diff --git a/Player/Main Menu/MainMenu_Inventory.cs b/Player/Main Menu/MainMenu_Inventory.cs index 301477c..6f40e24 100644 --- a/Player/Main Menu/MainMenu_Inventory.cs +++ b/Player/Main Menu/MainMenu_Inventory.cs @@ -264,7 +264,7 @@ private void DrawCrafting(float x) public void CraftingIngredientBox(Rect r, CustomCrafting.CraftingIngredient ingredient) { - GUI.color = ingredient.i != null ? RarityColors[ingredient.i.Rarity] : Color.white; + GUI.color = ingredient.i != null ? RarityColors[ingredient.i.rarity] : Color.white; GUI.DrawTexture(r, Res.ResourceLoader.instance.LoadedTextures[12]); GUI.color = new Color(1, 1, 1, 1); @@ -377,7 +377,7 @@ private void DrawItemInfo(Vector2 pos, Item item, bool drawCompare = false, Item } GUI.color = new Color(1, 1, 1, 0.8f); GUI.DrawTexture(descriptionBox, blackSquareTex); - GUI.color = RarityColors[item.Rarity]; + GUI.color = RarityColors[item.rarity]; GUI.Label(ItemNameRect, item.name, ItemNameStyle); for (int i = 0; i < StatRects.Length; i++) { @@ -619,7 +619,7 @@ private void DrawInvSlot(Rect r, int index) if (Inventory.Instance.ItemSlots[index] != null) { - frameColor = RarityColors[Inventory.Instance.ItemSlots[index].Rarity]; + frameColor = RarityColors[Inventory.Instance.ItemSlots[index].rarity]; if (Inventory.Instance.ItemSlots[index].icon != null) { Rect itemRect = new Rect(r); diff --git a/Player/RCoroutines.cs b/Player/RCoroutines.cs index 1cb5374..c59d4d4 100644 --- a/Player/RCoroutines.cs +++ b/Player/RCoroutines.cs @@ -32,7 +32,7 @@ public IEnumerator AsyncSendRandomItemDrops(int count, EnemyProgression.Enemy ty for (int i = 0; i < count; i++) { Item randomItem = ItemDataBase.GetRandomItem(bounty, type, difficulty, position); - if (randomItem.Rarity >= ModSettings.LootFilterMinRarity || randomItem.type == BaseItem.ItemType.Material || randomItem.type == BaseItem.ItemType.Other) + if (randomItem.rarity >= ModSettings.LootFilterMinRarity || randomItem.type == BaseItem.ItemType.Material || randomItem.type == BaseItem.ItemType.Other) { yield return null; Network.NetworkManager.SendItemDrop(randomItem, position + Vector3.up * (2f + i / 10) + Random.Range(-1, 1) * Vector3.forward + Random.Range(-1, 1) * Vector3.right, ItemPickUp.DropSource.EnemyOnDeath); From 06dcbbc9a807e692a2ebb0f07d7a66231a7947a1 Mon Sep 17 00:00:00 2001 From: "Hazard (Cyprian Skrzypczak)" Date: Thu, 10 Apr 2025 21:16:54 +0200 Subject: [PATCH 03/27] cleaned up the base ItemStat --- Fun/Cheats.cs | 2 +- Items/Item.cs | 30 ++-- Items/ItemDataBase.cs | 6 +- Items/ItemDataBase_ItemDefinitions.cs | 172 +++++++++---------- Items/ItemDataBase_StatDefinitions.cs | 178 +++++++++----------- Items/ItemPickUp.cs | 16 +- Items/ItemStat.cs | 220 ++++++++++++++----------- Items/StatActions.cs | 4 +- Network/CommandReader.cs | 4 +- Network/NetworkManager.cs | 8 +- Player/Crafting/Empowering.cs | 16 +- Player/Crafting/IndividualRerolling.cs | 20 +-- Player/Crafting/Polishing.cs | 22 +-- Player/Crafting/Reforging.cs | 6 +- Player/Crafting/Rerolling.cs | 6 +- Player/Main Menu/MainMenu_Inventory.cs | 26 +-- Player/ModdedPlayer/ModdedPlayer.cs | 2 +- Serializer.cs | 6 +- 18 files changed, 377 insertions(+), 367 deletions(-) diff --git a/Fun/Cheats.cs b/Fun/Cheats.cs index be73c9d..ec45b4a 100644 --- a/Fun/Cheats.cs +++ b/Fun/Cheats.cs @@ -169,7 +169,7 @@ private void _cotfliststats(string param) "[", item.Key, "] ", - item.Value.Name, + item.Value.name, "\n" }); } diff --git a/Items/Item.cs b/Items/Item.cs index 8bfff37..a9a43e4 100644 --- a/Items/Item.cs +++ b/Items/Item.cs @@ -24,10 +24,10 @@ private void GroupStats() var grouped = new Dictionary>(); foreach (var stat in Stats) { - if (grouped.ContainsKey(stat.StatID)) - grouped[stat.StatID].Add(stat.Amount); + if (grouped.ContainsKey(stat.id)) + grouped[stat.id].Add(stat.amount); else - grouped.Add(stat.StatID, new List() { stat.Amount }); + grouped.Add(stat.id, new List() { stat.amount }); } groupedStats = new Dictionary(grouped.Count); foreach (var group in grouped) @@ -60,14 +60,14 @@ public bool CombineItems(Item other) return returnval; } - else if (this.Stats.Any(x => x.StatID == 3000)) + else if (this.Stats.Any(x => x.id == 3000)) { if (Equipped) { OnUnequip(); } - int statindex = Stats.FindIndex(x => x.StatID == 3000); + int statindex = Stats.FindIndex(x => x.id == 3000); Stats[statindex] = StatActions.GetSocketedStat(other.rarity, this.type, other.subtype); OnEquip(); return true; @@ -352,10 +352,10 @@ public void RollStats() if (PS[random] != null) { ItemStat stat = new ItemStat(PS[random], level); - stat.Amount *= GetRarityMultiplier(); - if (stat.ValueCap != 0) + stat.amount *= GetRarityMultiplier(); + if (stat.valueCap != 0) { - stat.Amount = Mathf.Min(stat.Amount, stat.ValueCap); + stat.amount = Mathf.Min(stat.amount, stat.valueCap); } stat.possibleStatsIndex = i; Stats.Add(stat); @@ -379,7 +379,7 @@ public void RollStats() } public void SortStats() { - Stats = Stats.OrderBy(x => -x.Rarity).ToList(); + Stats = Stats.OrderBy(x => -x.rarity).ToList(); } public void OnEquip() @@ -387,9 +387,9 @@ public void OnEquip() Equipped = true; foreach (ItemStat item in Stats) { - if (item.Amount != 0) + if (item.amount != 0) { - item.OnEquip?.Invoke(item.Amount); + item.OnEquip?.Invoke(item.amount); } } onEquip?.Invoke(); @@ -400,9 +400,9 @@ public void OnUnequip() Equipped = false; foreach (ItemStat item in Stats) { - if (item.Amount != 0) + if (item.amount != 0) { - item.OnUnequip(item.Amount); + item.OnUnequip(item.amount); } } onUnequip?.Invoke(); @@ -415,9 +415,9 @@ public bool OnConsume() onEquip?.Invoke(); foreach (ItemStat item in Stats) { - if (item.Amount != 0) + if (item.amount != 0) { - item.OnConsume(item.Amount); + item.OnConsume(item.amount); } } return true; diff --git a/Items/ItemDataBase.cs b/Items/ItemDataBase.cs index 1acb586..fe402f7 100644 --- a/Items/ItemDataBase.cs +++ b/Items/ItemDataBase.cs @@ -26,7 +26,7 @@ public static void Initialize() PopulateStats(); for (int i = 0; i < statList.Count; i++) { - Stats.Add(statList[i].StatID, statList[i]); + Stats.Add(statList[i].id, statList[i]); } try { @@ -68,11 +68,11 @@ public static void LogInfo() string s = "There are " + Stats.Count + " stats:\n"; for (int i = 0; i < 8; i++) { - ItemStat[] stats = statList.Where(a => a.Rarity == i).ToArray(); + ItemStat[] stats = statList.Where(a => a.rarity == i).ToArray(); s += " • Rarity tier of stat[" + i + "] = " + stats.Length; foreach (ItemStat a in stats) { - s += "\n\t • Stat \"" + a.Name + " ID [" + a.StatID + "]\""; + s += "\n\t • Stat \"" + a.name + " ID [" + a.id + "]\""; } s += "\n"; } diff --git a/Items/ItemDataBase_ItemDefinitions.cs b/Items/ItemDataBase_ItemDefinitions.cs index d469133..25bad30 100644 --- a/Items/ItemDataBase_ItemDefinitions.cs +++ b/Items/ItemDataBase_ItemDefinitions.cs @@ -631,7 +631,7 @@ public static void PopulateItems() type = BaseItem.ItemType.ChestArmor, icon = Res.ResourceLoader.GetTexture(96), }; - baseItem1.PossibleStats[1][0].Multipier = 2.5f; + baseItem1.PossibleStats[1][0].multipier = 2.5f; new BaseItem(new int[][] { new int[] {5 }, @@ -1876,8 +1876,8 @@ public static void PopulateItems() }; armsyFingerNecklace.DropSettings_OnlyArmsy(); - armsyFingerNecklace.PossibleStats[0][0].Multipier = 2; - armsyFingerNecklace.PossibleStats[1][0].Multipier = 2; + armsyFingerNecklace.PossibleStats[0][0].multipier = 2; + armsyFingerNecklace.PossibleStats[1][0].multipier = 2; var virginiaHeartPedant = new BaseItem(new int[][] { new int[] {2}, @@ -1903,8 +1903,8 @@ public static void PopulateItems() icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that }; virginiaHeartPedant.DropSettings_OnlyVags(); - virginiaHeartPedant.PossibleStats[0][0].Multipier = 2; - virginiaHeartPedant.PossibleStats[1][0].Multipier = 2.25f; + virginiaHeartPedant.PossibleStats[0][0].multipier = 2; + virginiaHeartPedant.PossibleStats[1][0].multipier = 2.25f; var cowmanToeNecklace = new BaseItem(new int[][] { @@ -1931,8 +1931,8 @@ public static void PopulateItems() icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that }; cowmanToeNecklace.DropSettings_OnlyCow(); - cowmanToeNecklace.PossibleStats[0][0].Multipier = 3; - cowmanToeNecklace.PossibleStats[1][0].Multipier = 2; + cowmanToeNecklace.PossibleStats[0][0].multipier = 3; + cowmanToeNecklace.PossibleStats[1][0].multipier = 2; new BaseItem(new int[][] { new int[] {47}, @@ -2013,7 +2013,7 @@ public static void PopulateItems() weaponModel = BaseItem.WeaponModelType.Hammer, icon = Res.ResourceLoader.GetTexture(109), }; - RelicHammer.PossibleStats[1][0].Multipier = -4; + RelicHammer.PossibleStats[1][0].multipier = -4; BaseItem GreaterHammer = new BaseItem(new int[][] { @@ -2038,7 +2038,7 @@ public static void PopulateItems() weaponModel = BaseItem.WeaponModelType.Hammer, icon = Res.ResourceLoader.GetTexture(109), }; - GreaterHammer.PossibleStats[1][0].Multipier = -3; + GreaterHammer.PossibleStats[1][0].multipier = -3; //Item 0/6 new BaseItem(new int[][] { @@ -2387,9 +2387,9 @@ public static void PopulateItems() type = BaseItem.ItemType.ShoulderArmor, icon = Res.ResourceLoader.GetTexture(95), }; - Heavy_Shoulder_Plates.PossibleStats[0][0].Multipier = -1; - Heavy_Shoulder_Plates.PossibleStats[1][0].Multipier = -1; - Heavy_Shoulder_Plates.PossibleStats[2][0].Multipier = 3; + Heavy_Shoulder_Plates.PossibleStats[0][0].multipier = -1; + Heavy_Shoulder_Plates.PossibleStats[1][0].multipier = -1; + Heavy_Shoulder_Plates.PossibleStats[2][0].multipier = 3; //Item 3/6 new BaseItem(new int[][] @@ -2612,7 +2612,7 @@ public static void PopulateItems() type = BaseItem.ItemType.Weapon, weaponModel = BaseItem.WeaponModelType.LongSword, icon = Res.ResourceLoader.GetTexture(89), - }.PossibleStats[0][0].Multipier = -3; + }.PossibleStats[0][0].multipier = -3; new BaseItem(new int[][] { @@ -2634,7 +2634,7 @@ public static void PopulateItems() icon = Res.ResourceLoader.GetTexture(101), onEquip = () => ModdedPlayer.Stats.spell_warCryGiveArmor.value = true, onUnequip = () => ModdedPlayer.Stats.spell_warCryGiveArmor.value = false, - }.PossibleStats[0][0].Multipier = 2; + }.PossibleStats[0][0].multipier = 2; //Item 1/5 new BaseItem(new int[][] @@ -2671,7 +2671,7 @@ public static void PopulateItems() ModdedPlayer.Stats.spell_warCryGiveArmor.value = false; ModdedPlayer.Stats.spell_warCryGiveDamageResistance.value = true; }, - }.PossibleStats[0][0].Multipier = 5; + }.PossibleStats[0][0].multipier = 5; //Item 2/5 new BaseItem(new int[][] @@ -2735,11 +2735,11 @@ public static void PopulateItems() type = BaseItem.ItemType.Helmet, icon = Res.ResourceLoader.GetTexture(91), }; - mask.PossibleStats[2][0].Multipier = -4; - mask.PossibleStats[0][0].Multipier = 1.5f; - mask.PossibleStats[1][0].Multipier = 2.5f; - mask.PossibleStats[1][1].Multipier = 2.5f; - mask.PossibleStats[1][2].Multipier = 2.5f; + mask.PossibleStats[2][0].multipier = -4; + mask.PossibleStats[0][0].multipier = 1.5f; + mask.PossibleStats[1][0].multipier = 2.5f; + mask.PossibleStats[1][1].multipier = 2.5f; + mask.PossibleStats[1][2].multipier = 2.5f; new BaseItem(new int[][] { @@ -2972,7 +2972,7 @@ public static void PopulateItems() type = BaseItem.ItemType.Weapon, weaponModel = BaseItem.WeaponModelType.Axe, icon = Res.ResourceLoader.GetTexture(138), - }.PossibleStats[1][0].Multipier = 1.6f; + }.PossibleStats[1][0].multipier = 1.6f; new BaseItem(new int[][] { new int[]{1,26,22}, @@ -2991,7 +2991,7 @@ public static void PopulateItems() type = BaseItem.ItemType.Weapon, weaponModel = BaseItem.WeaponModelType.Axe, icon = Res.ResourceLoader.GetTexture(138), - }.PossibleStats[1][0].Multipier = 2.5f; + }.PossibleStats[1][0].multipier = 2.5f; new BaseItem(new int[][] { @@ -3013,7 +3013,7 @@ public static void PopulateItems() type = BaseItem.ItemType.Weapon, weaponModel = BaseItem.WeaponModelType.Axe, icon = Res.ResourceLoader.GetTexture(138), - }.PossibleStats[1][0].Multipier = 2.5f; + }.PossibleStats[1][0].multipier = 2.5f; new BaseItem(new int[][] { new int[]{26,22}, @@ -3035,7 +3035,7 @@ public static void PopulateItems() type = BaseItem.ItemType.Weapon, weaponModel = BaseItem.WeaponModelType.Axe, icon = Res.ResourceLoader.GetTexture(138), - }.PossibleStats[1][0].Multipier = 3; + }.PossibleStats[1][0].multipier = 3; new BaseItem(new int[][] { @@ -3153,7 +3153,7 @@ public static void PopulateItems() icon = Res.ResourceLoader.GetTexture(88), onEquip = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Add(15), onUnequip = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Substract(15), - }.PossibleStats[0][0].Multipier = 5; + }.PossibleStats[0][0].multipier = 5; BaseItem jaggedRipper = new BaseItem(new int[][] { @@ -3184,7 +3184,7 @@ public static void PopulateItems() onEquip = () => ModdedPlayer.Stats.spell_bashBleedChance.Add(0.3f), onUnequip = () => ModdedPlayer.Stats.spell_bashBleedChance.Substract(0.3f), }; - jaggedRipper.PossibleStats[1][0].Multipier = 2; + jaggedRipper.PossibleStats[1][0].multipier = 2; new BaseItem(new int[][] { @@ -3215,7 +3215,7 @@ public static void PopulateItems() icon = Res.ResourceLoader.GetTexture(89), onEquip = () => ModdedPlayer.Stats.spell_bashLifesteal.Add(0.02f), onUnequip = () => ModdedPlayer.Stats.spell_bashLifesteal.Substract(0.02f), - }.PossibleStats[0][0].Multipier = 3; + }.PossibleStats[0][0].multipier = 3; new BaseItem(new int[][] { new int[] {25 }, @@ -3252,7 +3252,7 @@ public static void PopulateItems() ModdedPlayer.Stats.i_HammerStunDuration.Divide(2); ModdedPlayer.Stats.i_HammerStunAmount.Reset(); }, - }.PossibleStats[0][0].Multipier = 3.25f; + }.PossibleStats[0][0].multipier = 3.25f; new BaseItem(new int[][] { @@ -3363,7 +3363,7 @@ public static void PopulateItems() type = BaseItem.ItemType.Weapon, weaponModel = BaseItem.WeaponModelType.Greatbow, icon = Res.ResourceLoader.GetTexture(170), - }.PossibleStats[0][0].Multipier = -1.55f; + }.PossibleStats[0][0].multipier = -1.55f; new BaseItem(new int[][] { @@ -3392,7 +3392,7 @@ public static void PopulateItems() icon = Res.ResourceLoader.GetTexture(170), onEquip = () => ModdedPlayer.Stats.i_greatBowIgnites.value = true, onUnequip = () => ModdedPlayer.Stats.i_greatBowIgnites.value = false, - }.PossibleStats[0][0].Multipier = -1.7f; + }.PossibleStats[0][0].multipier = -1.7f; new BaseItem(new int[][] { @@ -3424,7 +3424,7 @@ public static void PopulateItems() icon = Res.ResourceLoader.GetTexture(170), onEquip = () => ModdedPlayer.Stats.spell_bia_HealthDmMult.Add(100), onUnequip = () => ModdedPlayer.Stats.spell_bia_HealthDmMult.Substract(100), - }.PossibleStats[0][0].Multipier = -1.7f; + }.PossibleStats[0][0].multipier = -1.7f; new BaseItem(new int[][] { @@ -3443,7 +3443,7 @@ public static void PopulateItems() type = BaseItem.ItemType.Weapon, weaponModel = BaseItem.WeaponModelType.Greatbow, icon = Res.ResourceLoader.GetTexture(170), - }.PossibleStats[0][0].Multipier = -2.7f; + }.PossibleStats[0][0].multipier = -2.7f; new BaseItem(new int[][] { @@ -3713,8 +3713,8 @@ public static void PopulateItems() type = BaseItem.ItemType.Pants, icon = Res.ResourceLoader.GetTexture(87), }; - titaniumleggins.PossibleStats[0][0].Multipier = 3; - titaniumleggins.PossibleStats[1][0].Multipier = 1.5f; + titaniumleggins.PossibleStats[0][0].multipier = 3; + titaniumleggins.PossibleStats[1][0].multipier = 1.5f; new BaseItem(new int[][] { new int[] {42,39,40,41,43,0,0 }, @@ -3805,7 +3805,7 @@ public static void PopulateItems() StackSize = 1, type = BaseItem.ItemType.Shield, icon = Res.ResourceLoader.GetTexture(99), - }.PossibleStats[0][0].Multipier = 2; + }.PossibleStats[0][0].multipier = 2; new BaseItem(new int[][] { @@ -4009,7 +4009,7 @@ public static void PopulateItems() icon = Res.ResourceLoader.GetTexture(170), onEquip = () => ModdedPlayer.Stats.i_EruptionBow.value = true, onUnequip = () => ModdedPlayer.Stats.i_EruptionBow.value = false, - }.PossibleStats[0][0].Multipier = -1.6f; + }.PossibleStats[0][0].multipier = -1.6f; new BaseItem(new int[][] { @@ -4041,7 +4041,7 @@ public static void PopulateItems() icon = Res.ResourceLoader.GetTexture(170), onEquip = () => ModdedPlayer.Stats.i_ArchangelBow.value = true, onUnequip = () => ModdedPlayer.Stats.i_ArchangelBow.value = false, - }.PossibleStats[0][0].Multipier = -2f; + }.PossibleStats[0][0].multipier = -2f; new BaseItem(new int[][] { new int[] {1,4 }, @@ -4879,7 +4879,7 @@ public static void PopulateItems() type = BaseItem.ItemType.ChestArmor, icon = Res.ResourceLoader.GetTexture(96), }; - SomeItem.PossibleStats[0][0].Multipier = 2; + SomeItem.PossibleStats[0][0].multipier = 2; } { var demoVestItem = new BaseItem(new Stat[][] @@ -4905,7 +4905,7 @@ public static void PopulateItems() type = BaseItem.ItemType.ChestArmor, icon = Res.ResourceLoader.GetTexture(96), }; - demoVestItem.PossibleStats[0][0].Multipier = 7; + demoVestItem.PossibleStats[0][0].multipier = 7; } new BaseItem(new Stat[][] @@ -4976,7 +4976,7 @@ public static void PopulateItems() weaponModel = BaseItem.WeaponModelType.Greatbow, icon = Res.ResourceLoader.GetTexture(170), - }.PossibleStats[0][0].Multipier = -2f; + }.PossibleStats[0][0].multipier = -2f; new BaseItem(new Stat[][] { @@ -5060,7 +5060,7 @@ public static void PopulateItems() StackSize = 1, type = BaseItem.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(100), - }.PossibleStats[0][0].Multipier = 7f; + }.PossibleStats[0][0].multipier = 7f; new BaseItem(new Stat[][] { new [] {STRENGTH,VITALITY,AGILITY,ALLATTRIBUTES,INTELLIGENCE}, @@ -5464,7 +5464,7 @@ public static void PopulateItems() icon = Res.ResourceLoader.GetTexture(88), onEquip = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Add(15), onUnequip = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Substract(15), - }.PossibleStats[0][0].Multipier = 1.5f; + }.PossibleStats[0][0].multipier = 1.5f; new BaseItem(new Stat[][] @@ -5633,7 +5633,7 @@ public static void PopulateItems() onConsume = x => { int socketMax = StatActions.GetMaxSocketAmountOnItem(in x.type); - int socketCurrent = x.Stats.Count(y => y.StatID >= 3000); + int socketCurrent = x.Stats.Count(y => y.id >= 3000); if (socketCurrent < socketMax) { x.Stats.Add(new ItemStat(ItemDataBase.StatByID(3000))); @@ -5664,7 +5664,7 @@ public static void PopulateItems() icon = Res.ResourceLoader.GetTexture(85), onEquip = () => ModdedPlayer.Stats.movementSpeed.Multiply(-1.2f), onUnequip = () => ModdedPlayer.Stats.movementSpeed.Divide(-1.2f) - }.PossibleStats[0][0].Multipier = 3; + }.PossibleStats[0][0].multipier = 3; new BaseItem(new Stat[][] { @@ -6133,10 +6133,10 @@ public static void PopulateItems() if (x.Equipped) return false; - var stats = x.Stats.Where(y => y.StatID == (int)VITALITY || y.StatID == (int)INTELLIGENCE || y.StatID == (int)AGILITY - || y.StatID == (int)LESSERVITALITY || y.StatID == (int)LESSERINTELLIGENCE || y.StatID == (int)LESSERAGILITY - || y.StatID == (int)BASERANGEDDAMAGE || y.StatID == (int)BASESPELLDAMAGE - || y.StatID == (int)RANGEDDAMAGEINCREASE || y.StatID == (int)SPELLDAMAGEINCREASE).ToArray(); + var stats = x.Stats.Where(y => y.id == (int)VITALITY || y.id == (int)INTELLIGENCE || y.id == (int)AGILITY + || y.id == (int)LESSERVITALITY || y.id == (int)LESSERINTELLIGENCE || y.id == (int)LESSERAGILITY + || y.id == (int)BASERANGEDDAMAGE || y.id == (int)BASESPELLDAMAGE + || y.id == (int)RANGEDDAMAGEINCREASE || y.id == (int)SPELLDAMAGEINCREASE).ToArray(); int c = stats.Count(); @@ -6148,7 +6148,7 @@ public static void PopulateItems() int index = x.Stats.IndexOf(stat); ItemStat newStat; - Stat statID = (Stat)stat.StatID; + Stat statID = (Stat)stat.id; switch (statID) { case VITALITY: @@ -6172,7 +6172,7 @@ public static void PopulateItems() default: return false; } - newStat.Amount = stat.Amount; + newStat.amount = stat.amount; newStat.possibleStatsIndex = stat.possibleStatsIndex; x.Stats[index] = newStat; return true; @@ -6195,10 +6195,10 @@ public static void PopulateItems() if (x.Equipped) return false; - var stats = x.Stats.Where(y => y.StatID == (int)VITALITY || y.StatID == (int)STRENGTH || y.StatID == (int)AGILITY - || y.StatID == (int)LESSERVITALITY || y.StatID == (int)LESSERSTRENGTH || y.StatID == (int)LESSERAGILITY - || y.StatID == (int)BASERANGEDDAMAGE || y.StatID == (int)BASEMELEEDAMAGE - || y.StatID == (int)RANGEDDAMAGEINCREASE || y.StatID == (int)MELEEDAMAGEINCREASE).ToArray(); + var stats = x.Stats.Where(y => y.id == (int)VITALITY || y.id == (int)STRENGTH || y.id == (int)AGILITY + || y.id == (int)LESSERVITALITY || y.id == (int)LESSERSTRENGTH || y.id == (int)LESSERAGILITY + || y.id == (int)BASERANGEDDAMAGE || y.id == (int)BASEMELEEDAMAGE + || y.id == (int)RANGEDDAMAGEINCREASE || y.id == (int)MELEEDAMAGEINCREASE).ToArray(); int c = stats.Count(); @@ -6210,7 +6210,7 @@ public static void PopulateItems() int index = x.Stats.IndexOf(stat); ItemStat newStat; - Stat statID = (Stat)stat.StatID; + Stat statID = (Stat)stat.id; switch (statID) { case VITALITY: @@ -6234,7 +6234,7 @@ public static void PopulateItems() default: return false; } - newStat.Amount = stat.Amount; + newStat.amount = stat.amount; newStat.possibleStatsIndex = stat.possibleStatsIndex; x.Stats[index] = newStat; return true; @@ -6257,10 +6257,10 @@ public static void PopulateItems() if (x.Equipped) return false; - var stats = x.Stats.Where(y => y.StatID == (int)VITALITY || y.StatID == (int)STRENGTH || y.StatID == (int)INTELLIGENCE - || y.StatID == (int)LESSERVITALITY || y.StatID == (int)LESSERSTRENGTH || y.StatID == (int)LESSERINTELLIGENCE - || y.StatID == (int)BASESPELLDAMAGE || y.StatID == (int)BASEMELEEDAMAGE - || y.StatID == (int)SPELLDAMAGEINCREASE || y.StatID == (int)MELEEDAMAGEINCREASE).ToArray(); + var stats = x.Stats.Where(y => y.id == (int)VITALITY || y.id == (int)STRENGTH || y.id == (int)INTELLIGENCE + || y.id == (int)LESSERVITALITY || y.id == (int)LESSERSTRENGTH || y.id == (int)LESSERINTELLIGENCE + || y.id == (int)BASESPELLDAMAGE || y.id == (int)BASEMELEEDAMAGE + || y.id == (int)SPELLDAMAGEINCREASE || y.id == (int)MELEEDAMAGEINCREASE).ToArray(); int c = stats.Count(); @@ -6272,7 +6272,7 @@ public static void PopulateItems() int index = x.Stats.IndexOf(stat); ItemStat newStat; - Stat statID = (Stat)stat.StatID; + Stat statID = (Stat)stat.id; switch (statID) { case VITALITY: @@ -6296,7 +6296,7 @@ public static void PopulateItems() default: return false; } - newStat.Amount = stat.Amount; + newStat.amount = stat.amount; newStat.possibleStatsIndex = stat.possibleStatsIndex; x.Stats[index] = newStat; return true; @@ -6320,8 +6320,8 @@ public static void PopulateItems() if (x.Equipped) return false; - var stats = x.Stats.Where(y => y.StatID == (int)VITALITY || y.StatID == (int)STRENGTH || y.StatID == (int)INTELLIGENCE - || y.StatID == (int)LESSERAGILITY || y.StatID == (int)LESSERSTRENGTH || y.StatID == (int)LESSERINTELLIGENCE).ToArray(); + var stats = x.Stats.Where(y => y.id == (int)VITALITY || y.id == (int)STRENGTH || y.id == (int)INTELLIGENCE + || y.id == (int)LESSERAGILITY || y.id == (int)LESSERSTRENGTH || y.id == (int)LESSERINTELLIGENCE).ToArray(); int c = stats.Count(); @@ -6333,7 +6333,7 @@ public static void PopulateItems() int index = x.Stats.IndexOf(stat); ItemStat newStat; - Stat statID = (Stat)stat.StatID; + Stat statID = (Stat)stat.id; switch (statID) { case AGILITY: @@ -6349,7 +6349,7 @@ public static void PopulateItems() default: return false; } - newStat.Amount = stat.Amount; + newStat.amount = stat.amount; newStat.possibleStatsIndex = stat.possibleStatsIndex; x.Stats[index] = newStat; return true; @@ -6372,7 +6372,7 @@ public static void PopulateItems() if (x.Equipped) return false; - var stats = x.Stats.RemoveAll(y => y.Amount < 0); + var stats = x.Stats.RemoveAll(y => y.amount < 0); if (stats > 0) return true; return false; @@ -6395,12 +6395,12 @@ public static void PopulateItems() if (x.Equipped) return false; - var stats = x.Stats.Where(y => y.Amount < 0).ToList(); + var stats = x.Stats.Where(y => y.amount < 0).ToList(); if (stats.Count > 0) { for (int i = 0; i < stats.Count; i++) { - stats[i].Amount *= -1; + stats[i].amount *= -1; } return true; } @@ -6472,7 +6472,7 @@ public static void PopulateItems() var itemType = x.type; if (itemType == BaseItem.ItemType.Other || itemType == BaseItem.ItemType.Material || x.Amount > 1) return false; - if (!x.Stats.Any(y => y.StatID == (int)ARMOR || y.StatID == (int)LESSERARMOR)) + if (!x.Stats.Any(y => y.id == (int)ARMOR || y.id == (int)LESSERARMOR)) { ItemStat stat = new ItemStat(StatByID((int)ARMOR), x.level); x.Stats.Add(stat); @@ -6501,7 +6501,7 @@ public static void PopulateItems() var itemType = x.type; if (itemType == BaseItem.ItemType.Other || itemType == BaseItem.ItemType.Material || x.Amount > 1) return false; - if (!x.Stats.Any(y => y.StatID == (int)DAMAGEREDUCTION)) + if (!x.Stats.Any(y => y.id == (int)DAMAGEREDUCTION)) { ItemStat stat = new ItemStat(StatByID((int)DAMAGEREDUCTION), x.level); x.Stats.Add(stat); @@ -6590,7 +6590,7 @@ public static void PopulateItems() icon = Res.ResourceLoader.GetTexture(138), onEquip = () => ModdedPlayer.Stats.perk_bulletDamageMult.Multiply(2.5f), onUnequip = () => ModdedPlayer.Stats.perk_bulletDamageMult.Divide(2.5f), - }.PossibleStats[0][0].Multipier = -1f; + }.PossibleStats[0][0].multipier = -1f; new BaseItem(new Stat[][] { @@ -6746,7 +6746,7 @@ public static void PopulateItems() icon = Res.ResourceLoader.GetTexture(91), onEquip = () => ModdedPlayer.Stats.fireDuration.Add(2f), onUnequip = () => ModdedPlayer.Stats.fireDuration.Substract(2f), - }.PossibleStats[0][0].Multipier = 2; + }.PossibleStats[0][0].multipier = 2; new BaseItem(new Stat[][] { @@ -6774,7 +6774,7 @@ public static void PopulateItems() icon = Res.ResourceLoader.GetTexture(91), onEquip = () => { ModdedPlayer.Stats.fireDuration.Add(7f); ModdedPlayer.Stats.fireTickRate.Add(3f); }, onUnequip = () => { ModdedPlayer.Stats.fireDuration.Substract(7f); ModdedPlayer.Stats.fireTickRate.Substract(3f); }, - }.PossibleStats[0][0].Multipier = 5; + }.PossibleStats[0][0].multipier = 5; new BaseItem(new Stat[][] @@ -6892,7 +6892,7 @@ public static void PopulateItems() type = BaseItem.ItemType.Weapon, weaponModel = BaseItem.WeaponModelType.Polearm, icon = Res.ResourceLoader.GetTexture(181), - }.PossibleStats[0][0].Multipier = 6; + }.PossibleStats[0][0].multipier = 6; @@ -6915,7 +6915,7 @@ public static void PopulateItems() StackSize = 1, type = BaseItem.ItemType.ShoulderArmor, icon = Res.ResourceLoader.GetTexture(95), - }.PossibleStats[0][0].Multipier = -0.3f; + }.PossibleStats[0][0].multipier = -0.3f; new BaseItem(new Stat[][] { new [] {ALL,EXPGAIN,MAGICFIND}, @@ -7027,7 +7027,7 @@ public static void PopulateItems() StackSize = 1, type = BaseItem.ItemType.Shield, icon = Res.ResourceLoader.GetTexture(99), - }.PossibleStats[0][0].Multipier = -0.3f; + }.PossibleStats[0][0].multipier = -0.3f; new BaseItem(new Stat[][] { new [] {ALL,EXPGAIN,MAGICFIND}, @@ -7126,7 +7126,7 @@ public static void PopulateItems() StackSize = 1, type = BaseItem.ItemType.Shield, icon = Res.ResourceLoader.GetTexture(99), - }.PossibleStats[0][0].Multipier = 2f; + }.PossibleStats[0][0].multipier = 2f; new BaseItem(new Stat[][] @@ -7148,7 +7148,7 @@ public static void PopulateItems() StackSize = 1, type = BaseItem.ItemType.Boot, icon = Res.ResourceLoader.GetTexture(85), - }.PossibleStats[0][0].Multipier = 1.3f; + }.PossibleStats[0][0].multipier = 1.3f; new BaseItem(new Stat[][] { new [] {MOVEMENTSPEED}, @@ -7265,7 +7265,7 @@ public static void PopulateItems() StackSize = 1, type = BaseItem.ItemType.Glove, icon = Res.ResourceLoader.GetTexture(86), - }.PossibleStats[0][0].Multipier = -0.3f; + }.PossibleStats[0][0].multipier = -0.3f; new BaseItem(new Stat[][] { new [] {ALL,EXPGAIN,MAGICFIND}, @@ -7378,7 +7378,7 @@ public static void PopulateItems() StackSize = 1, type = BaseItem.ItemType.Pants, icon = Res.ResourceLoader.GetTexture(87), - }.PossibleStats[0][0].Multipier = -0.3f; + }.PossibleStats[0][0].multipier = -0.3f; new BaseItem(new Stat[][] { new [] {ALL,EXPGAIN,MAGICFIND}, @@ -7492,7 +7492,7 @@ public static void PopulateItems() StackSize = 1, type = BaseItem.ItemType.ChestArmor, icon = Res.ResourceLoader.GetTexture(96), - }.PossibleStats[0][0].Multipier = -0.3f; + }.PossibleStats[0][0].multipier = -0.3f; new BaseItem(new Stat[][] { new [] {ALL,EXPGAIN,MAGICFIND}, @@ -7604,7 +7604,7 @@ public static void PopulateItems() StackSize = 1, type = BaseItem.ItemType.Bracer, icon = Res.ResourceLoader.GetTexture(93), - }.PossibleStats[0][0].Multipier = -0.3f; + }.PossibleStats[0][0].multipier = -0.3f; new BaseItem(new Stat[][] { new [] {ALL,EXPGAIN,MAGICFIND}, @@ -7716,7 +7716,7 @@ public static void PopulateItems() StackSize = 1, type = BaseItem.ItemType.Helmet, icon = Res.ResourceLoader.GetTexture(91), - }.PossibleStats[0][0].Multipier = -0.3f; + }.PossibleStats[0][0].multipier = -0.3f; new BaseItem(new Stat[][] { new [] {ALL,EXPGAIN,MAGICFIND}, @@ -8107,7 +8107,7 @@ public static void PopulateItems() icon = Res.ResourceLoader.GetTexture(88), onEquip = () => ModdedPlayer.Stats.spell_berserkDamage.Add(3f), onUnequip = () => ModdedPlayer.Stats.spell_berserkDamage.Substract(3f), - }.PossibleStats[0][0].Multipier = 5; + }.PossibleStats[0][0].multipier = 5; new BaseItem(new Stat[][] { new [] {BASEMELEEDAMAGE,BASESPELLDAMAGE}, @@ -8136,7 +8136,7 @@ public static void PopulateItems() icon = Res.ResourceLoader.GetTexture(88), onEquip = () => ModdedPlayer.Stats.spell_berserkDamage.Add(1f), onUnequip = () => ModdedPlayer.Stats.spell_berserkDamage.Substract(1f), - }.PossibleStats[0][0].Multipier = 2; + }.PossibleStats[0][0].multipier = 2; new BaseItem(new Stat[][] { diff --git a/Items/ItemDataBase_StatDefinitions.cs b/Items/ItemDataBase_StatDefinitions.cs index d9f163f..29b0833 100644 --- a/Items/ItemDataBase_StatDefinitions.cs +++ b/Items/ItemDataBase_StatDefinitions.cs @@ -104,28 +104,8 @@ public enum Stat public static void PopulateStats() { - var scAdd = new ItemStat.StatCompare(x => { return x.Sum(); }); - var scMult = new ItemStat.StatCompare(x => - { - float f = 1; - for (int j = 0; j < x.Count; j++) - f *= x[j]; - return f - 1; - }); - var scMultPlusOne = new ItemStat.StatCompare(x => - { - float f = 1; - for (int j = 0; j < x.Count; j++) - f *= 1+ x[j]; - return f; - }); - var scOneMinusMult = new ItemStat.StatCompare(x => - { - float f = 1; - for (int k = 0; k < x.Count; k++) - f *= 1 - x[k]; - return 1 - f; - }); + + int i = 1; new ItemStat(i, 1.5f, 2.2f, 0.8f, Translations.MainMenu_Guide_4/*Strength*/, scAdd, 4, //tr @@ -141,50 +121,50 @@ public static void PopulateStats() i++; new ItemStat(i, 1f, 1.30f, 1.21f, Translations.ItemDataBase_StatDefinitions_2/*Maximum Energy*/, scAdd, 3, () => ModdedPlayer.Stats.maxEnergy.GetFormattedAmount(), StatActions.AddEnergy, StatActions.RemoveEnergy, StatActions.AddEnergy); //tr i++; - new ItemStat(i, 0.013f, 0.0225f, 1.05f, Translations.ItemDataBase_StatDefinitions_3/*Life Per Second*/, scAdd, 3, () => ModdedPlayer.Stats.healthRecoveryPerSecond.GetFormattedAmount(), StatActions.AddHPRegen, StatActions.RemoveHPRegen, StatActions.AddHPRegen) { DisplayAsPercent = false, RoundingCount = 2 }; //tr + new ItemStat(i, 0.013f, 0.0225f, 1.05f, Translations.ItemDataBase_StatDefinitions_3/*Life Per Second*/, scAdd, 3, () => ModdedPlayer.Stats.healthRecoveryPerSecond.GetFormattedAmount(), StatActions.AddHPRegen, StatActions.RemoveHPRegen, StatActions.AddHPRegen) { displayAsPercent = false, roundingCount = 2 }; //tr i++; - new ItemStat(i, 0.025f, 0.031f, 1.23f, Translations.ItemDataBase_StatDefinitions_4/*Stamina Per Second*/, scAdd, 2, () => ModdedPlayer.Stats.staminaRecoveryperSecond.GetFormattedAmount(), StatActions.AddStaminaRegen, StatActions.RemoveStaminaRegen, StatActions.AddStaminaRegen) { DisplayAsPercent = false, RoundingCount = 2 }; //tr + new ItemStat(i, 0.025f, 0.031f, 1.23f, Translations.ItemDataBase_StatDefinitions_4/*Stamina Per Second*/, scAdd, 2, () => ModdedPlayer.Stats.staminaRecoveryperSecond.GetFormattedAmount(), StatActions.AddStaminaRegen, StatActions.RemoveStaminaRegen, StatActions.AddStaminaRegen) { displayAsPercent = false, roundingCount = 2 }; //tr i++; - new ItemStat(i, 0.02f, 0.03f, 0.45f, Translations.ItemDataBase_StatDefinitions_5/*Energy Regeneration*/, scAdd,5, () => ModdedPlayer.Stats.staminaPerSecRate.GetFormattedAmount(), StatActions.AddStaminaRegenPercent, StatActions.RemoveStaminaRegenPercent, StatActions.AddStaminaRegenPercent) { DisplayAsPercent = true, RoundingCount = 1, ValueCap = 2f }; //tr + new ItemStat(i, 0.02f, 0.03f, 0.45f, Translations.ItemDataBase_StatDefinitions_5/*Energy Regeneration*/, scAdd,5, () => ModdedPlayer.Stats.staminaPerSecRate.GetFormattedAmount(), StatActions.AddStaminaRegenPercent, StatActions.RemoveStaminaRegenPercent, StatActions.AddStaminaRegenPercent) { displayAsPercent = true, roundingCount = 1, valueCap = 2f }; //tr i++; - new ItemStat(i, 0.02f, 0.03f, 0.45f, Translations.ItemDataBase_StatDefinitions_6/*Life Regeneration*/, scAdd, 5, () => ModdedPlayer.Stats.healthPerSecRate.GetFormattedAmount(), StatActions.AddHealthRegenPercent, StatActions.RemoveHealthRegenPercent, StatActions.AddHealthRegenPercent) { DisplayAsPercent = true, RoundingCount = 1, ValueCap = 1.5f }; //tr + new ItemStat(i, 0.02f, 0.03f, 0.45f, Translations.ItemDataBase_StatDefinitions_6/*Life Regeneration*/, scAdd, 5, () => ModdedPlayer.Stats.healthPerSecRate.GetFormattedAmount(), StatActions.AddHealthRegenPercent, StatActions.RemoveHealthRegenPercent, StatActions.AddHealthRegenPercent) { displayAsPercent = true, roundingCount = 1, valueCap = 1.5f }; //tr i++; - new ItemStat(i, 0.005f, 0.0075f, 0.5f, Translations.MainMenu_Guide_23/*Damage Reduction*/, scOneMinusMult, 4, () => (1-ModdedPlayer.Stats.allDamageTaken).ToString("P"), StatActions.AddDamageReduction, StatActions.RemoveDamageReduction, StatActions.AddDamageReduction) { ValueCap = 0.4f, DisplayAsPercent = true, RoundingCount = 1 }; //tr + new ItemStat(i, 0.005f, 0.0075f, 0.5f, Translations.MainMenu_Guide_23/*Damage Reduction*/, scOneMinusMult, 4, () => (1-ModdedPlayer.Stats.allDamageTaken).ToString("P"), StatActions.AddDamageReduction, StatActions.RemoveDamageReduction, StatActions.AddDamageReduction) { valueCap = 0.4f, displayAsPercent = true, roundingCount = 1 }; //tr i++; - new ItemStat(i, 0.008f, 0.0125f, 0.25f, Translations.ItemDataBase_StatDefinitions_7/*Critical Hit Chance*/, scAdd, 6, () => ModdedPlayer.Stats.critChance.GetFormattedAmount(), StatActions.AddCritChance, StatActions.RemoveCritChance, StatActions.AddCritChance) { DisplayAsPercent = true, RoundingCount = 1, ValueCap = 0.5f }; //tr + new ItemStat(i, 0.008f, 0.0125f, 0.25f, Translations.ItemDataBase_StatDefinitions_7/*Critical Hit Chance*/, scAdd, 6, () => ModdedPlayer.Stats.critChance.GetFormattedAmount(), StatActions.AddCritChance, StatActions.RemoveCritChance, StatActions.AddCritChance) { displayAsPercent = true, roundingCount = 1, valueCap = 0.5f }; //tr i++; - new ItemStat(i, 0.03f, 0.06f, 0.4f, Translations.MainMenu_Guide_46, scAdd, 6, () => ModdedPlayer.Stats.critDamage.GetFormattedAmount(), StatActions.AddCritDamage, StatActions.RemoveCritDamage, StatActions.AddCritDamage) { DisplayAsPercent = true, RoundingCount = 1, ValueCap = 10f };//tr + new ItemStat(i, 0.03f, 0.06f, 0.4f, Translations.MainMenu_Guide_46, scAdd, 6, () => ModdedPlayer.Stats.critDamage.GetFormattedAmount(), StatActions.AddCritDamage, StatActions.RemoveCritDamage, StatActions.AddCritDamage) { displayAsPercent = true, roundingCount = 1, valueCap = 10f };//tr i++; new ItemStat(i, 0.07f, 0.13f, 1f, Translations.ItemDataBase_StatDefinitions_8/*Life on hit*/, scAdd, 4, () => ModdedPlayer.Stats.healthOnHit.GetFormattedAmount(), StatActions.AddLifeOnHit, StatActions.RemoveLifeOnHit, StatActions.AddLifeOnHit) { - DisplayAsPercent = false, - RoundingCount = 1 + displayAsPercent = false, + roundingCount = 1 }; //tr i++; - new ItemStat(i, 0.003f, 0.008f, 0.38f, Translations.ItemDataBase_StatDefinitions_9/*Dodge chance*/, scOneMinusMult, 4, () => (1-ModdedPlayer.Stats.getHitChance).ToString("P"), StatActions.AddDodgeChance, StatActions.RemoveDodgeChance, StatActions.AddDodgeChance) { ValueCap = 0.35f, DisplayAsPercent = true, RoundingCount = 1 }; //tr + new ItemStat(i, 0.003f, 0.008f, 0.38f, Translations.ItemDataBase_StatDefinitions_9/*Dodge chance*/, scOneMinusMult, 4, () => (1-ModdedPlayer.Stats.getHitChance).ToString("P"), StatActions.AddDodgeChance, StatActions.RemoveDodgeChance, StatActions.AddDodgeChance) { valueCap = 0.35f, displayAsPercent = true, roundingCount = 1 }; //tr i++; new ItemStat(i, 5f, 9f, 1.4f, Translations.MainMenu_Guide_17/*Armor*/, scAdd, 3, () => ModdedPlayer.Stats.armor.GetFormattedAmount(), StatActions.AddArmor, StatActions.RemoveArmor, StatActions.AddArmor); //tr i++; - new ItemStat(i, 0.004f, 0.018f, 0.5f, Translations.ItemDataBase_StatDefinitions_10/*Resistance to magic*/, scOneMinusMult, 5, () => ModdedPlayer.Stats.damageFromElite.Value.ToString("P"), StatActions.AddEliteDamageReduction, StatActions.RemoveEliteDamageReduction, StatActions.AddEliteDamageReduction) { ValueCap = 0.5f, DisplayAsPercent = true, RoundingCount = 1 }; //tr + new ItemStat(i, 0.004f, 0.018f, 0.5f, Translations.ItemDataBase_StatDefinitions_10/*Resistance to magic*/, scOneMinusMult, 5, () => ModdedPlayer.Stats.damageFromElite.Value.ToString("P"), StatActions.AddEliteDamageReduction, StatActions.RemoveEliteDamageReduction, StatActions.AddEliteDamageReduction) { valueCap = 0.5f, displayAsPercent = true, roundingCount = 1 }; //tr i++; - new ItemStat(i, 0.004f, 0.005f, 0.2f, Translations.MainMenu_Guide_49/*Attack speed*/, scAdd, 6, () => ModdedPlayer.Stats.attackSpeed.GetFormattedAmount(), StatActions.AddAttackSpeed, StatActions.RemoveAttackSpeed, StatActions.AddAttackSpeed) { DisplayAsPercent = true, RoundingCount = 1 }; //tr + new ItemStat(i, 0.004f, 0.005f, 0.2f, Translations.MainMenu_Guide_49/*Attack speed*/, scAdd, 6, () => ModdedPlayer.Stats.attackSpeed.GetFormattedAmount(), StatActions.AddAttackSpeed, StatActions.RemoveAttackSpeed, StatActions.AddAttackSpeed) { displayAsPercent = true, roundingCount = 1 }; //tr i++; - new ItemStat(i, 0.015f, 0.025f, 0.25f, Translations.ItemDataBase_StatDefinitions_11/*Experience gain*/, scMult, 7, () => ModdedPlayer.Stats.expGain.GetFormattedAmount(), StatActions.AddExpFactor, StatActions.RemoveExpFactor, StatActions.AddExpFactor) { DisplayAsPercent = true, RoundingCount = 1, ValueCap = 1f }; //tr + new ItemStat(i, 0.015f, 0.025f, 0.25f, Translations.ItemDataBase_StatDefinitions_11/*Experience gain*/, scMult, 7, () => ModdedPlayer.Stats.expGain.GetFormattedAmount(), StatActions.AddExpFactor, StatActions.RemoveExpFactor, StatActions.AddExpFactor) { displayAsPercent = true, roundingCount = 1, valueCap = 1f }; //tr i++; new ItemStat(i, 1.5f, 2f, 0f, Translations.MainMenu_Guide_120/*Massacre Duration*/, scAdd, 7, () => ModdedPlayer.Stats.maxMassacreTime.GetFormattedAmount(), StatActions.AddMaxMassacreTime, StatActions.RemoveMaxMassacreTime, StatActions.AddMaxMassacreTime) //tr { - RoundingCount = 1 + roundingCount = 1 }; i++; new ItemStat(i, 0.014f, 0.018f, 0.3f, Translations.ItemDataBase_StatDefinitions_12/*Spell Damage Increase*/, scAdd, 5, () => ModdedPlayer.Stats.spellIncreasedDmg.GetFormattedAmount(), StatActions.AddSpellDamageAmplifier, StatActions.RemoveSpellDamageAmplifier, StatActions.AddSpellDamageAmplifier) //tr { - DisplayAsPercent = true, - RoundingCount = 1 + displayAsPercent = true, + roundingCount = 1 }; i++; - new ItemStat(i, 0.014f, 0.018f, 0.3f, Translations.ItemDataBase_StatDefinitions_13/*Melee Damage Increase*/, scAdd, 5, () => ModdedPlayer.Stats.meleeIncreasedDmg.GetFormattedAmount(), StatActions.AddMeleeDamageAmplifier, StatActions.RemoveMeleeDamageAmplifier, StatActions.AddMeleeDamageAmplifier) { DisplayAsPercent = true, RoundingCount = 1, ValueCap =2f }; //tr + new ItemStat(i, 0.014f, 0.018f, 0.3f, Translations.ItemDataBase_StatDefinitions_13/*Melee Damage Increase*/, scAdd, 5, () => ModdedPlayer.Stats.meleeIncreasedDmg.GetFormattedAmount(), StatActions.AddMeleeDamageAmplifier, StatActions.RemoveMeleeDamageAmplifier, StatActions.AddMeleeDamageAmplifier) { displayAsPercent = true, roundingCount = 1, valueCap =2f }; //tr i++; - new ItemStat(i, 0.014f, 0.018f, 0.3f, Translations.ItemDataBase_StatDefinitions_14/*Ranged Damage Increase*/, scAdd, 5, () => ModdedPlayer.Stats.rangedIncreasedDmg.GetFormattedAmount(), StatActions.AddRangedDamageAmplifier, StatActions.RemoveRangedDamageAmplifier, StatActions.AddRangedDamageAmplifier) { DisplayAsPercent = true, RoundingCount = 1, ValueCap = 2f }; //tr + new ItemStat(i, 0.014f, 0.018f, 0.3f, Translations.ItemDataBase_StatDefinitions_14/*Ranged Damage Increase*/, scAdd, 5, () => ModdedPlayer.Stats.rangedIncreasedDmg.GetFormattedAmount(), StatActions.AddRangedDamageAmplifier, StatActions.RemoveRangedDamageAmplifier, StatActions.AddRangedDamageAmplifier) { displayAsPercent = true, roundingCount = 1, valueCap = 2f }; //tr i++; new ItemStat(i, 0.5f, 1.1f, 0.8f, Translations.ItemDataBase_StatDefinitions_15/*Base Spell Damage*/, scAdd, 4, () => ModdedPlayer.Stats.spellFlatDmg.GetFormattedAmount(), StatActions.AddspellFlatDmg, StatActions.RemovespellFlatDmg, StatActions.AddspellFlatDmg); //tr i++; @@ -192,29 +172,29 @@ public static void PopulateStats() i++; new ItemStat(i, 0.5f, 1.1f, 0.8f, Translations.ItemDataBase_StatDefinitions_17/*Base Ranged Damage*/, scAdd, 4,() => ModdedPlayer.Stats.rangedFlatDmg.GetFormattedAmount(), StatActions.AddRangedDamageBonus, StatActions.RemoveRangedDamageBonus, StatActions.AddRangedDamageBonus); //tr i++; - new ItemStat(i, 0.011f, 0.025f, 0f, Translations.ItemDataBase_StatDefinitions_18/*Energy Per Agility*/, scAdd, 7, () => ModdedPlayer.Stats.maxEnergyFromAgi.GetFormattedAmount(), StatActions.AddmaxEnergyFromAgi, StatActions.RemovemaxEnergyFromAgi, StatActions.AddmaxEnergyFromAgi) { DisplayAsPercent = false, RoundingCount = 2 }; //tr + new ItemStat(i, 0.011f, 0.025f, 0f, Translations.ItemDataBase_StatDefinitions_18/*Energy Per Agility*/, scAdd, 7, () => ModdedPlayer.Stats.maxEnergyFromAgi.GetFormattedAmount(), StatActions.AddmaxEnergyFromAgi, StatActions.RemovemaxEnergyFromAgi, StatActions.AddmaxEnergyFromAgi) { displayAsPercent = false, roundingCount = 2 }; //tr i++; - new ItemStat(i, 0.07f, 0.25f, 0f, Translations.ItemDataBase_StatDefinitions_19/*Health Per Vitality*/, scAdd, 7, () => ModdedPlayer.Stats.maxHealthFromVit.GetFormattedAmount(), StatActions.AddmaxHealthFromVit, StatActions.RemovemaxHealthFromVit, StatActions.AddmaxHealthFromVit) { DisplayAsPercent = false, RoundingCount = 2 }; //tr + new ItemStat(i, 0.07f, 0.25f, 0f, Translations.ItemDataBase_StatDefinitions_19/*Health Per Vitality*/, scAdd, 7, () => ModdedPlayer.Stats.maxHealthFromVit.GetFormattedAmount(), StatActions.AddmaxHealthFromVit, StatActions.RemovemaxHealthFromVit, StatActions.AddmaxHealthFromVit) { displayAsPercent = false, roundingCount = 2 }; //tr i++; - new ItemStat(i, 0.001f, 0.0018f, 0f, Translations.ItemDataBase_StatDefinitions_20/*Spell Damage Per Int*/, scAdd, 7, () => ModdedPlayer.Stats.spellDmgFromInt.GetFormattedAmount(), StatActions.AddspellDmgFromInt, StatActions.RemovespellDmgFromInt, StatActions.AddspellDmgFromInt) { DisplayAsPercent = true, RoundingCount = 2 }; //tr + new ItemStat(i, 0.001f, 0.0018f, 0f, Translations.ItemDataBase_StatDefinitions_20/*Spell Damage Per Int*/, scAdd, 7, () => ModdedPlayer.Stats.spellDmgFromInt.GetFormattedAmount(), StatActions.AddspellDmgFromInt, StatActions.RemovespellDmgFromInt, StatActions.AddspellDmgFromInt) { displayAsPercent = true, roundingCount = 2 }; //tr i++; - new ItemStat(i, 0.001f, 0.0018f, 0f, Translations.ItemDataBase_StatDefinitions_21/*Melee Damage Per Strength*/, scAdd,7, () => ModdedPlayer.Stats.meleeDmgFromStr.GetFormattedAmount(), StatActions.AddmeleeDmgFromStr, StatActions.RemovemeleeDmgFromStr, StatActions.AddmeleeDmgFromStr) { DisplayAsPercent = true, RoundingCount = 2 }; //tr + new ItemStat(i, 0.001f, 0.0018f, 0f, Translations.ItemDataBase_StatDefinitions_21/*Melee Damage Per Strength*/, scAdd,7, () => ModdedPlayer.Stats.meleeDmgFromStr.GetFormattedAmount(), StatActions.AddmeleeDmgFromStr, StatActions.RemovemeleeDmgFromStr, StatActions.AddmeleeDmgFromStr) { displayAsPercent = true, roundingCount = 2 }; //tr i++; - new ItemStat(i, 0.0015f, 0.007f, 0.6f, Translations.ItemDataBase_StatDefinitions_22/*All Recovery*/, scMultPlusOne, 6, () => ModdedPlayer.Stats.allRecoveryMult.GetFormattedAmount(), StatActions.AddHealingMultipier, StatActions.RemoveHealingMultipier, StatActions.AddHealingMultipier) { DisplayAsPercent = true, RoundingCount = 1 }; //tr + new ItemStat(i, 0.0015f, 0.007f, 0.6f, Translations.ItemDataBase_StatDefinitions_22/*All Recovery*/, scMultPlusOne, 6, () => ModdedPlayer.Stats.allRecoveryMult.GetFormattedAmount(), StatActions.AddHealingMultipier, StatActions.RemoveHealingMultipier, StatActions.AddHealingMultipier) { displayAsPercent = true, roundingCount = 1 }; //tr i++; new ItemStat(i, 1f / 4f, 1f / 4f, 0f, Translations.ItemDataBase_StatDefinitions_23/*PERMANENT PERK POINTS*/, scAdd, 6,()=> ModdedPlayer.instance.MutationPoints.ToString(), null, null, StatActions.PERMANENT_perkPointIncrease); //tr i++; new ItemStat(i, 10f, 20f, 2f, Translations.ItemDataBase_StatDefinitions_25/*EXPERIENCE*/, scAdd, 5,()=> ModdedPlayer.instance.ExpCurrent.ToString("N")+ Translations.ItemDataBase_StatDefinitions_24/* / */ + ModdedPlayer.instance.ExpGoal.ToString("N"), null, null, StatActions.PERMANENT_expIncrease); //tr i++; - new ItemStat(i, 0.01f, 0.020f, 0.2f, Translations.MainMenu_Guide_109/*Movement Speed*/, scAdd, 6, () => ModdedPlayer.Stats.movementSpeed.GetFormattedAmount(), StatActions.AddMoveSpeed, StatActions.RemoveMoveSpeed, StatActions.AddMoveSpeed) { DisplayAsPercent = true, RoundingCount = 2, ValueCap = 0.5f }; //tr + new ItemStat(i, 0.01f, 0.020f, 0.2f, Translations.MainMenu_Guide_109/*Movement Speed*/, scAdd, 6, () => ModdedPlayer.Stats.movementSpeed.GetFormattedAmount(), StatActions.AddMoveSpeed, StatActions.RemoveMoveSpeed, StatActions.AddMoveSpeed) { displayAsPercent = true, roundingCount = 2, valueCap = 0.5f }; //tr i++; - new ItemStat(i, 0.01f, 0.03f, 0.35f, Translations.ItemDataBase_StatDefinitions_26/*Weapon Size*/, scMultPlusOne, 4, () => ModdedPlayer.Stats.weaponRange.GetFormattedAmount(), f => ModdedPlayer.Stats.weaponRange.Multiply(1 + f), f => ModdedPlayer.Stats.weaponRange.Divide(1 + f), null) { DisplayAsPercent = true, RoundingCount = 2, ValueCap = 0.4f }; //tr + new ItemStat(i, 0.01f, 0.03f, 0.35f, Translations.ItemDataBase_StatDefinitions_26/*Weapon Size*/, scMultPlusOne, 4, () => ModdedPlayer.Stats.weaponRange.GetFormattedAmount(), f => ModdedPlayer.Stats.weaponRange.Multiply(1 + f), f => ModdedPlayer.Stats.weaponRange.Divide(1 + f), null) { displayAsPercent = true, roundingCount = 2, valueCap = 0.4f }; //tr i++; - new ItemStat(i, 0.02f, 0.038f, 0.4f, Translations.ItemDataBase_StatDefinitions_27/*Attack Cost Reduction*/, scOneMinusMult, 3, () => (ModdedPlayer.Stats.attackStaminaCost-1).ToString("P"), f => ModdedPlayer.Stats.attackStaminaCost.Multiply(1 - f), f => ModdedPlayer.Stats.attackStaminaCost.Divide(1 - f)) { DisplayAsPercent = true, RoundingCount = 2, ValueCap = 0.75f }; //tr + new ItemStat(i, 0.02f, 0.038f, 0.4f, Translations.ItemDataBase_StatDefinitions_27/*Attack Cost Reduction*/, scOneMinusMult, 3, () => (ModdedPlayer.Stats.attackStaminaCost-1).ToString("P"), f => ModdedPlayer.Stats.attackStaminaCost.Multiply(1 - f), f => ModdedPlayer.Stats.attackStaminaCost.Divide(1 - f)) { displayAsPercent = true, roundingCount = 2, valueCap = 0.75f }; //tr i++; - new ItemStat(i, 0.005f, 0.01f, 0.3f, Translations.MainMenu_Guide_96/*Spell Cost Reduction*/, scOneMinusMult, 6, () => (1 - ModdedPlayer.Stats.spellCost).ToString("P"), f => ModdedPlayer.Stats.spellCost.valueMultiplicative *= 1 - f, f => ModdedPlayer.Stats.spellCost.valueMultiplicative /= 1 - f, f => ModdedPlayer.Stats.spellCost.valueMultiplicative*= 1 - f) { DisplayAsPercent = true, RoundingCount = 2, ValueCap = 0.5f }; //tr + new ItemStat(i, 0.005f, 0.01f, 0.3f, Translations.MainMenu_Guide_96/*Spell Cost Reduction*/, scOneMinusMult, 6, () => (1 - ModdedPlayer.Stats.spellCost).ToString("P"), f => ModdedPlayer.Stats.spellCost.valueMultiplicative *= 1 - f, f => ModdedPlayer.Stats.spellCost.valueMultiplicative /= 1 - f, f => ModdedPlayer.Stats.spellCost.valueMultiplicative*= 1 - f) { displayAsPercent = true, roundingCount = 2, valueCap = 0.5f }; //tr i++; - new ItemStat(i, 0.0075f, 0.01f, 0.34f, Translations.ItemDataBase_StatDefinitions_28/*Spell Cost to Stamina*/, scOneMinusMult, 2, () => (ModdedPlayer.Stats.SpellCostToStamina).ToString("P"), f => ModdedPlayer.Stats.spellCostEnergyCost.Multiply(1-f), f => ModdedPlayer.Stats.spellCostEnergyCost.Divide(1 - f)) { ValueCap = 0.55f, DisplayAsPercent = true, RoundingCount = 2 }; //tr + new ItemStat(i, 0.0075f, 0.01f, 0.34f, Translations.ItemDataBase_StatDefinitions_28/*Spell Cost to Stamina*/, scOneMinusMult, 2, () => (ModdedPlayer.Stats.SpellCostToStamina).ToString("P"), f => ModdedPlayer.Stats.spellCostEnergyCost.Multiply(1-f), f => ModdedPlayer.Stats.spellCostEnergyCost.Divide(1 - f)) { valueCap = 0.55f, displayAsPercent = true, roundingCount = 2 }; //tr i++; new ItemStat(i, 0.6f, 1f, 0.8f, Translations.MainMenu_Guide_4/*Strength*/, scAdd, 2, () => ModdedPlayer.Stats.strength.GetFormattedAmount(), StatActions.AddStrength, StatActions.RemoveStrength, StatActions.AddStrength); //tr i++; @@ -226,23 +206,23 @@ public static void PopulateStats() i++; new ItemStat(i, 1f, 1.75f, 1.35f, Translations.MainMenu_Guide_17/*Armor*/, scAdd, 2, () => ModdedPlayer.Stats.armor.GetFormattedAmount(), StatActions.AddArmor, StatActions.RemoveArmor, StatActions.AddArmor); //tr i++; - new ItemStat(i, 0.0075f, 0.01f, 0.833f, Translations.ItemDataBase_StatDefinitions_29/*Energy Per Second*/, scAdd, 5, () => ModdedPlayer.Stats.energyRecoveryperSecond.GetFormattedAmount(), StatActions.AddEnergyRegen, StatActions.RemoveEnergyRegen, StatActions.AddEnergyRegen) { RoundingCount = 2 }; //tr + new ItemStat(i, 0.0075f, 0.01f, 0.833f, Translations.ItemDataBase_StatDefinitions_29/*Energy Per Second*/, scAdd, 5, () => ModdedPlayer.Stats.energyRecoveryperSecond.GetFormattedAmount(), StatActions.AddEnergyRegen, StatActions.RemoveEnergyRegen, StatActions.AddEnergyRegen) { roundingCount = 2 }; //tr i++; - new ItemStat(i, 0.006f, 0.009f, 0.35f, Translations.ItemDataBase_StatDefinitions_1/*Maximum Life*/, scAdd, 6, () => ModdedPlayer.Stats.maxHealthMult.GetFormattedAmount(), f => ModdedPlayer.Stats.maxHealthMult.valueAdditive += f, f => ModdedPlayer.Stats.maxHealthMult.valueAdditive -= f) { DisplayAsPercent = true, RoundingCount = 1 }; //tr + new ItemStat(i, 0.006f, 0.009f, 0.35f, Translations.ItemDataBase_StatDefinitions_1/*Maximum Life*/, scAdd, 6, () => ModdedPlayer.Stats.maxHealthMult.GetFormattedAmount(), f => ModdedPlayer.Stats.maxHealthMult.valueAdditive += f, f => ModdedPlayer.Stats.maxHealthMult.valueAdditive -= f) { displayAsPercent = true, roundingCount = 1 }; //tr i++; - new ItemStat(i, 0.006f, 0.009f, 0.35f, Translations.ItemDataBase_StatDefinitions_2/*Maximum Energy*/, scAdd, 6, () => ModdedPlayer.Stats.maxEnergyMult.GetFormattedAmount(), f => ModdedPlayer.Stats.maxEnergyMult.valueAdditive+= f, f => ModdedPlayer.Stats.maxEnergyMult.valueAdditive -= f, f => ModdedPlayer.Stats.maxEnergyMult.valueAdditive += f) { DisplayAsPercent = true, RoundingCount = 1 }; //tr + new ItemStat(i, 0.006f, 0.009f, 0.35f, Translations.ItemDataBase_StatDefinitions_2/*Maximum Energy*/, scAdd, 6, () => ModdedPlayer.Stats.maxEnergyMult.GetFormattedAmount(), f => ModdedPlayer.Stats.maxEnergyMult.valueAdditive+= f, f => ModdedPlayer.Stats.maxEnergyMult.valueAdditive -= f, f => ModdedPlayer.Stats.maxEnergyMult.valueAdditive += f) { displayAsPercent = true, roundingCount = 1 }; //tr i++; - new ItemStat(i, 0.004f, 0.00675f, 0.35f, Translations.MainMenu_Guide_99/*Cooldown Reduction*/, scOneMinusMult, 6, () => (1-ModdedPlayer.Stats.cooldown).ToString("P"), f => ModdedPlayer.Stats.cooldown.valueMultiplicative *= (1 - f), f => ModdedPlayer.Stats.cooldown.valueMultiplicative /= (1 - f), f => ModdedPlayer.Stats.cooldown.valueMultiplicative *= (1 - f)) { DisplayAsPercent = true, RoundingCount = 2, ValueCap = 0.5f }; //tr + new ItemStat(i, 0.004f, 0.00675f, 0.35f, Translations.MainMenu_Guide_99/*Cooldown Reduction*/, scOneMinusMult, 6, () => (1-ModdedPlayer.Stats.cooldown).ToString("P"), f => ModdedPlayer.Stats.cooldown.valueMultiplicative *= (1 - f), f => ModdedPlayer.Stats.cooldown.valueMultiplicative /= (1 - f), f => ModdedPlayer.Stats.cooldown.valueMultiplicative *= (1 - f)) { displayAsPercent = true, roundingCount = 2, valueCap = 0.5f }; //tr i++; - new ItemStat(i, 0.001f, 0.0018f, 0f, Translations.ItemDataBase_StatDefinitions_30/*Ranged Damage Per Agi*/, scAdd, 7, () => ModdedPlayer.Stats.rangedDmgFromAgi.GetFormattedAmount(), f => ModdedPlayer.Stats.rangedDmgFromAgi.valueAdditive += f, f => ModdedPlayer.Stats.rangedDmgFromAgi.valueAdditive += -f, f => ModdedPlayer.Stats.rangedDmgFromAgi.valueAdditive += f) { DisplayAsPercent = true, RoundingCount = 2 }; //tr + new ItemStat(i, 0.001f, 0.0018f, 0f, Translations.ItemDataBase_StatDefinitions_30/*Ranged Damage Per Agi*/, scAdd, 7, () => ModdedPlayer.Stats.rangedDmgFromAgi.GetFormattedAmount(), f => ModdedPlayer.Stats.rangedDmgFromAgi.valueAdditive += f, f => ModdedPlayer.Stats.rangedDmgFromAgi.valueAdditive += -f, f => ModdedPlayer.Stats.rangedDmgFromAgi.valueAdditive += f) { displayAsPercent = true, roundingCount = 2 }; //tr i++; - new ItemStat(i, 0.02f, 0.04f, 0.67f, Translations.MainMenu_Guide_39/*Energy on hit*/, scAdd, 4, () => ModdedPlayer.Stats.energyOnHit.GetFormattedAmount(), f => ModdedPlayer.Stats.energyOnHit.valueAdditive += f, f => ModdedPlayer.Stats.energyOnHit.valueAdditive += -f, f => ModdedPlayer.Stats.energyOnHit.valueAdditive += f) { RoundingCount = 2 }; //tr + new ItemStat(i, 0.02f, 0.04f, 0.67f, Translations.MainMenu_Guide_39/*Energy on hit*/, scAdd, 4, () => ModdedPlayer.Stats.energyOnHit.GetFormattedAmount(), f => ModdedPlayer.Stats.energyOnHit.valueAdditive += f, f => ModdedPlayer.Stats.energyOnHit.valueAdditive += -f, f => ModdedPlayer.Stats.energyOnHit.valueAdditive += f) { roundingCount = 2 }; //tr i++; new ItemStat(i, 0.95f, 1.65f, 1f, Translations.PerkDatabase_387/*Block*/, scAdd, 1, () => ModdedPlayer.Stats.block.GetFormattedAmount(), f => ModdedPlayer.Stats.block.valueAdditive += f, f => ModdedPlayer.Stats.block.valueAdditive += -f, f => ModdedPlayer.Stats.block.valueAdditive += f); //tr i++; - new ItemStat(i, 0.01f, 0.02f, 0.3f, Translations.MainMenu_Guide_71/*Projectile speed*/, scAdd, 4, () => ModdedPlayer.Stats.projectileSpeed.GetFormattedAmount(), f => ModdedPlayer.Stats.projectileSpeed.valueAdditive += f, f => ModdedPlayer.Stats.projectileSpeed.valueAdditive += -f, f => ModdedPlayer.Stats.projectileSpeed.valueAdditive += f) { DisplayAsPercent = true, RoundingCount = 1 }; //tr + new ItemStat(i, 0.01f, 0.02f, 0.3f, Translations.MainMenu_Guide_71/*Projectile speed*/, scAdd, 4, () => ModdedPlayer.Stats.projectileSpeed.GetFormattedAmount(), f => ModdedPlayer.Stats.projectileSpeed.valueAdditive += f, f => ModdedPlayer.Stats.projectileSpeed.valueAdditive += -f, f => ModdedPlayer.Stats.projectileSpeed.valueAdditive += f) { displayAsPercent = true, roundingCount = 1 }; //tr i++; - new ItemStat(i, 0.02f, 0.03f, 0.34f, Translations.MainMenu_Guide_73/*Projectile size*/, scAdd, 4, () => ModdedPlayer.Stats.projectileSize.GetFormattedAmount(), f => ModdedPlayer.Stats.projectileSize.valueAdditive += f, f => ModdedPlayer.Stats.projectileSize.valueAdditive += -f, f => ModdedPlayer.Stats.projectileSize.valueAdditive += f) { DisplayAsPercent = true, RoundingCount = 1 }; //tr + new ItemStat(i, 0.02f, 0.03f, 0.34f, Translations.MainMenu_Guide_73/*Projectile size*/, scAdd, 4, () => ModdedPlayer.Stats.projectileSize.GetFormattedAmount(), f => ModdedPlayer.Stats.projectileSize.valueAdditive += f, f => ModdedPlayer.Stats.projectileSize.valueAdditive += -f, f => ModdedPlayer.Stats.projectileSize.valueAdditive += f) { displayAsPercent = true, roundingCount = 1 }; //tr i++; new ItemStat(i, 1.5f, 2.25f, 1.21f, Translations.ItemDataBase_StatDefinitions_31/*Melee armor piercing*/, scAdd, 5, () => ModdedPlayer.Stats.TotalMeleeArmorPiercing.ToString(), f => ModdedPlayer.Stats.meleeArmorPiercing.valueAdditive += Mathf.RoundToInt(f), f => ModdedPlayer.Stats.meleeArmorPiercing.valueAdditive += -Mathf.RoundToInt(f), f => ModdedPlayer.Stats.meleeArmorPiercing.valueAdditive += Mathf.RoundToInt(f)); //tr i++; @@ -251,32 +231,32 @@ public static void PopulateStats() new ItemStat(i, 0.75f, 1f, 1.2f, Translations.ItemDataBase_StatDefinitions_33/*Armor piercing*/, //tr scAdd, 5, () => $"M{ModdedPlayer.Stats.TotalMeleeArmorPiercing} R{ModdedPlayer.Stats.TotalRangedArmorPiercing}", f => ModdedPlayer.Stats.allArmorPiercing.valueAdditive += Mathf.RoundToInt(f), f => ModdedPlayer.Stats.allArmorPiercing.valueAdditive += -Mathf.RoundToInt(f), f => ModdedPlayer.Stats.allArmorPiercing.valueAdditive += Mathf.RoundToInt(f)); i++; - new ItemStat(i, 0.01f, 0.02f, 0.15f, Translations.MainMenu_Guide_126/*Magic Find*/, scMultPlusOne, 7, () => ModdedPlayer.Stats.magicFind.Value.ToString("P"), StatActions.AddMagicFind, StatActions.RemoveMagicFind, StatActions.AddMagicFind) { DisplayAsPercent = true, RoundingCount = 1, ValueCap = 0.25f }; //tr + new ItemStat(i, 0.01f, 0.02f, 0.15f, Translations.MainMenu_Guide_126/*Magic Find*/, scMultPlusOne, 7, () => ModdedPlayer.Stats.magicFind.Value.ToString("P"), StatActions.AddMagicFind, StatActions.RemoveMagicFind, StatActions.AddMagicFind) { displayAsPercent = true, roundingCount = 1, valueCap = 0.25f }; //tr i++; new ItemStat(i, 0.5f, 0.8f, 0.8f, Translations.PerkDatabase_44/*All attributes*/, scAdd, 4, () => //tr $"S{ModdedPlayer.Stats.strength} A{ModdedPlayer.Stats.agility} I{ModdedPlayer.Stats.intelligence} V{ModdedPlayer.Stats.vitality}", StatActions.AddAllStats, StatActions.RemoveAllStats, StatActions.AddAllStats); i++; new ItemStat(i, 0, 0, 0, Translations.ItemDataBase_StatDefinitions_34/*Refund points*/, scAdd, 7,()=>"", f => ModdedPlayer.Respec(), f => ModdedPlayer.Respec(), f => ModdedPlayer.Respec()); //tr i++; - new ItemStat(i, 0.02f, 0.033f, 0.24f, Translations.MainMenu_Guide_111/*Jump Power*/, scAdd, 4,()=> ModdedPlayer.Stats.jumpPower.GetFormattedAmount() ,StatActions.AddJump, StatActions.RemoveJump, StatActions.AddJump) { DisplayAsPercent = true, RoundingCount = 2 }; //tr + new ItemStat(i, 0.02f, 0.033f, 0.24f, Translations.MainMenu_Guide_111/*Jump Power*/, scAdd, 4,()=> ModdedPlayer.Stats.jumpPower.GetFormattedAmount() ,StatActions.AddJump, StatActions.RemoveJump, StatActions.AddJump) { displayAsPercent = true, roundingCount = 2 }; //tr i++; - new ItemStat(i, 0.052f, 0.13f, 0.35f, Translations.ItemDataBase_StatDefinitions_35/*Headshot Damage*/, scMultPlusOne, 4, () => ModdedPlayer.Stats.headShotDamage.GetFormattedAmount(), f => ModdedPlayer.Stats.headShotDamage.Add(f), f => ModdedPlayer.Stats.headShotDamage.Substract(f), null) { DisplayAsPercent = true, RoundingCount = 2 }; //tr + new ItemStat(i, 0.052f, 0.13f, 0.35f, Translations.ItemDataBase_StatDefinitions_35/*Headshot Damage*/, scMultPlusOne, 4, () => ModdedPlayer.Stats.headShotDamage.GetFormattedAmount(), f => ModdedPlayer.Stats.headShotDamage.Add(f), f => ModdedPlayer.Stats.headShotDamage.Substract(f), null) { displayAsPercent = true, roundingCount = 2 }; //tr i++; - new ItemStat(i, 0.015f, 0.042f, 0.34f, Translations.ItemDataBase_StatDefinitions_36/*Fire Damage*/, scAdd, 4, () => ModdedPlayer.Stats.fireDamage.GetFormattedAmount(), f => ModdedPlayer.Stats.fireDamage.valueAdditive += f, f => ModdedPlayer.Stats.fireDamage.valueAdditive -= f, null) { DisplayAsPercent = true, RoundingCount = 2 }; //tr + new ItemStat(i, 0.015f, 0.042f, 0.34f, Translations.ItemDataBase_StatDefinitions_36/*Fire Damage*/, scAdd, 4, () => ModdedPlayer.Stats.fireDamage.GetFormattedAmount(), f => ModdedPlayer.Stats.fireDamage.valueAdditive += f, f => ModdedPlayer.Stats.fireDamage.valueAdditive -= f, null) { displayAsPercent = true, roundingCount = 2 }; //tr i++; - new ItemStat(i, 0.008f, 0.015f, 0.25f, Translations.ItemDataBase_StatDefinitions_37/*Chance on hit to slow*/, scAdd, 3, () => ModdedPlayer.Stats.chanceToSlow.GetFormattedAmount(), f => ModdedPlayer.Stats.chanceToSlow.valueAdditive += f, f => ModdedPlayer.Stats.chanceToSlow.valueAdditive -= f, null) { DisplayAsPercent = true, RoundingCount = 2 }; //tr + new ItemStat(i, 0.008f, 0.015f, 0.25f, Translations.ItemDataBase_StatDefinitions_37/*Chance on hit to slow*/, scAdd, 3, () => ModdedPlayer.Stats.chanceToSlow.GetFormattedAmount(), f => ModdedPlayer.Stats.chanceToSlow.valueAdditive += f, f => ModdedPlayer.Stats.chanceToSlow.valueAdditive -= f, null) { displayAsPercent = true, roundingCount = 2 }; //tr i++; - new ItemStat(i, 0.006f, 0.01f, 0.25f, Translations.ItemDataBase_StatDefinitions_38/*Chance on hit to bleed*/, scAdd, 3, () => ModdedPlayer.Stats.chanceToBleed.GetFormattedAmount(), f => ModdedPlayer.Stats.chanceToBleed.valueAdditive += f, f => ModdedPlayer.Stats.chanceToBleed.valueAdditive -= f, null) { DisplayAsPercent = true, RoundingCount = 2 }; //tr + new ItemStat(i, 0.006f, 0.01f, 0.25f, Translations.ItemDataBase_StatDefinitions_38/*Chance on hit to bleed*/, scAdd, 3, () => ModdedPlayer.Stats.chanceToBleed.GetFormattedAmount(), f => ModdedPlayer.Stats.chanceToBleed.valueAdditive += f, f => ModdedPlayer.Stats.chanceToBleed.valueAdditive -= f, null) { displayAsPercent = true, roundingCount = 2 }; //tr i++; - new ItemStat(i, 0.008f, 0.015f, 0.25f, Translations.ItemDataBase_StatDefinitions_39/*Chance on hit to weaken*/, scAdd, 3, () => ModdedPlayer.Stats.chanceToWeaken.GetFormattedAmount(), f => ModdedPlayer.Stats.chanceToWeaken.valueAdditive += f, f => ModdedPlayer.Stats.chanceToWeaken.valueAdditive -= f, null) { DisplayAsPercent = true, RoundingCount = 2 }; //tr + new ItemStat(i, 0.008f, 0.015f, 0.25f, Translations.ItemDataBase_StatDefinitions_39/*Chance on hit to weaken*/, scAdd, 3, () => ModdedPlayer.Stats.chanceToWeaken.GetFormattedAmount(), f => ModdedPlayer.Stats.chanceToWeaken.valueAdditive += f, f => ModdedPlayer.Stats.chanceToWeaken.valueAdditive -= f, null) { displayAsPercent = true, roundingCount = 2 }; //tr i++; new ItemStat(i, 1.1f, 1.8f, 1.2f, Translations.MainMenu_Guide_104/*Thorns*/, scAdd, 4, () => ModdedPlayer.Stats.thorns.GetFormattedAmount(), f => ModdedPlayer.Stats.thorns.valueAdditive += f, f => ModdedPlayer.Stats.thorns.valueAdditive -= f, f => ModdedPlayer.Stats.thorns.valueAdditive += f); //tr i++; - new ItemStat(i, 0.035f, 0.145f, 0.1f, Translations.MainMenu_Guide_77/*Projectile pierce chance*/, scAdd, 6, () => ModdedPlayer.Stats.projectilePierceChance.GetFormattedAmount(), f => ModdedPlayer.Stats.projectilePierceChance.valueAdditive += f, f => ModdedPlayer.Stats.projectilePierceChance.valueAdditive += -f, f => ModdedPlayer.Stats.projectilePierceChance.valueAdditive += f) { DisplayAsPercent = true, RoundingCount = 1 }; //tr + new ItemStat(i, 0.035f, 0.145f, 0.1f, Translations.MainMenu_Guide_77/*Projectile pierce chance*/, scAdd, 6, () => ModdedPlayer.Stats.projectilePierceChance.GetFormattedAmount(), f => ModdedPlayer.Stats.projectilePierceChance.valueAdditive += f, f => ModdedPlayer.Stats.projectilePierceChance.valueAdditive += -f, f => ModdedPlayer.Stats.projectilePierceChance.valueAdditive += f) { displayAsPercent = true, roundingCount = 1 }; //tr i++; - new ItemStat(i, 0.04f, 0.11f, 1f, Translations.ItemDataBase_StatDefinitions_40/*Explosive damage*/, scAdd, 6, () => ModdedPlayer.Stats.explosionDamage.GetFormattedAmount(), f => ModdedPlayer.Stats.explosionDamage.Add( f), f => ModdedPlayer.Stats.projectilePierceChance.Substract(f)) { RoundingCount = 1, DisplayAsPercent = true }; //tr + new ItemStat(i, 0.04f, 0.11f, 1f, Translations.ItemDataBase_StatDefinitions_40/*Explosive damage*/, scAdd, 6, () => ModdedPlayer.Stats.explosionDamage.GetFormattedAmount(), f => ModdedPlayer.Stats.explosionDamage.Add( f), f => ModdedPlayer.Stats.projectilePierceChance.Substract(f)) { roundingCount = 1, displayAsPercent = true }; //tr i++; - new ItemStat(i, 0.17f, 0.55f, 0.3f, Translations.ItemDataBase_StatDefinitions_41/*Thrown spear damage*/, scAdd, 6, () => ModdedPlayer.Stats.perk_thrownSpearDamageMult.GetFormattedAmount(), f => ModdedPlayer.Stats.perk_thrownSpearDamageMult.Multiply(1+ f), f => ModdedPlayer.Stats.perk_thrownSpearDamageMult.Divide(1+f)) { DisplayAsPercent = true, RoundingCount = 1 }; //tr + new ItemStat(i, 0.17f, 0.55f, 0.3f, Translations.ItemDataBase_StatDefinitions_41/*Thrown spear damage*/, scAdd, 6, () => ModdedPlayer.Stats.perk_thrownSpearDamageMult.GetFormattedAmount(), f => ModdedPlayer.Stats.perk_thrownSpearDamageMult.Multiply(1+ f), f => ModdedPlayer.Stats.perk_thrownSpearDamageMult.Divide(1+f)) { displayAsPercent = true, roundingCount = 1 }; //tr i++; //Extra carry items @@ -325,59 +305,59 @@ public static void PopulateStats() i = 2000; - new ItemStat(i, 3f, 6f, 0f, Translations.ItemDataBase_StatDefinitions_49/*Black Hole Size*/, scAdd, 6, () => ModdedPlayer.Stats.spell_blackhole_radius.GetFormattedAmount(), f => ModdedPlayer.Stats.spell_blackhole_radius.valueAdditive += f, f => ModdedPlayer.Stats.spell_blackhole_radius.valueAdditive += -f, f => ModdedPlayer.Stats.spell_blackhole_radius.valueAdditive += f) { RoundingCount = 1 }; //tr + new ItemStat(i, 3f, 6f, 0f, Translations.ItemDataBase_StatDefinitions_49/*Black Hole Size*/, scAdd, 6, () => ModdedPlayer.Stats.spell_blackhole_radius.GetFormattedAmount(), f => ModdedPlayer.Stats.spell_blackhole_radius.valueAdditive += f, f => ModdedPlayer.Stats.spell_blackhole_radius.valueAdditive += -f, f => ModdedPlayer.Stats.spell_blackhole_radius.valueAdditive += f) { roundingCount = 1 }; //tr i++; - new ItemStat(i, 2f, 3f, 0f, Translations.ItemDataBase_StatDefinitions_50/*Black Hole Lifetime*/, scAdd, 6, () => ModdedPlayer.Stats.spell_blackhole_duration.GetFormattedAmount(), f => ModdedPlayer.Stats.spell_blackhole_duration.valueAdditive += f, f => ModdedPlayer.Stats.spell_blackhole_duration.valueAdditive += -f, f => ModdedPlayer.Stats.spell_blackhole_duration.valueAdditive += f) { RoundingCount = 1 }; //tr + new ItemStat(i, 2f, 3f, 0f, Translations.ItemDataBase_StatDefinitions_50/*Black Hole Lifetime*/, scAdd, 6, () => ModdedPlayer.Stats.spell_blackhole_duration.GetFormattedAmount(), f => ModdedPlayer.Stats.spell_blackhole_duration.valueAdditive += f, f => ModdedPlayer.Stats.spell_blackhole_duration.valueAdditive += -f, f => ModdedPlayer.Stats.spell_blackhole_duration.valueAdditive += f) { roundingCount = 1 }; //tr i++; - new ItemStat(i, 5f, 7f, 0f, Translations.ItemDataBase_StatDefinitions_51/*Black Hole Gravitational Force*/, scAdd, 6, () => ModdedPlayer.Stats.spell_blackhole_pullforce.GetFormattedAmount(), f => ModdedPlayer.Stats.spell_blackhole_pullforce.valueAdditive += f, f => ModdedPlayer.Stats.spell_blackhole_pullforce.valueAdditive += -f, f => ModdedPlayer.Stats.spell_blackhole_pullforce.valueAdditive += f) { RoundingCount = 1 }; //tr + new ItemStat(i, 5f, 7f, 0f, Translations.ItemDataBase_StatDefinitions_51/*Black Hole Gravitational Force*/, scAdd, 6, () => ModdedPlayer.Stats.spell_blackhole_pullforce.GetFormattedAmount(), f => ModdedPlayer.Stats.spell_blackhole_pullforce.valueAdditive += f, f => ModdedPlayer.Stats.spell_blackhole_pullforce.valueAdditive += -f, f => ModdedPlayer.Stats.spell_blackhole_pullforce.valueAdditive += f) { roundingCount = 1 }; //tr i++; - new ItemStat(i, 0.2f, 0.3f, 0.9f, Translations.ItemDataBase_StatDefinitions_52/*Black Hole damage*/, scAdd, 6, () => ModdedPlayer.Stats.spell_blackhole_damage.GetFormattedAmount(), f => ModdedPlayer.Stats.spell_blackhole_damage.valueAdditive += f, f => ModdedPlayer.Stats.spell_blackhole_damage.valueAdditive += -f, f => ModdedPlayer.Stats.spell_blackhole_damage.valueAdditive += f) { RoundingCount = 1 }; //tr + new ItemStat(i, 0.2f, 0.3f, 0.9f, Translations.ItemDataBase_StatDefinitions_52/*Black Hole damage*/, scAdd, 6, () => ModdedPlayer.Stats.spell_blackhole_damage.GetFormattedAmount(), f => ModdedPlayer.Stats.spell_blackhole_damage.valueAdditive += f, f => ModdedPlayer.Stats.spell_blackhole_damage.valueAdditive += -f, f => ModdedPlayer.Stats.spell_blackhole_damage.valueAdditive += f) { roundingCount = 1 }; //tr i++; new ItemStat(i, 1, 1, 0, Translations.ItemDataBase_StatDefinitions_53/*Stun on hit*/, scAdd, 1, () =>"", f => ModdedPlayer.Stats.i_HammerStun.value = true, f => ModdedPlayer.Stats.i_HammerStun.value = false, null); //tr i++; new ItemStat(i, 3, 5f, 0, Translations.ItemDataBase_StatDefinitions_54/*Snap Freeze Duration*/, scAdd, 3, () => ModdedPlayer.Stats.spell_snapFreezeDuration.GetFormattedAmount(), f => ModdedPlayer.Stats.spell_snapFreezeDuration.valueAdditive += f, f => ModdedPlayer.Stats.spell_snapFreezeDuration.valueAdditive -= f, null); //tr i++; - new ItemStat(i, 1f, 1.15f, 0, Translations.ItemDataBase_StatDefinitions_55/*Raft Speed*/, scAdd, 4, () => ModdedPlayer.Stats.perk_RaftSpeedMultipier.GetFormattedAmount(), f => ModdedPlayer.Stats.perk_RaftSpeedMultipier.Add(f), f => ModdedPlayer.Stats.perk_RaftSpeedMultipier.Substract(f), null) { DisplayAsPercent = true, RoundingCount = 2 }; //tr + new ItemStat(i, 1f, 1.15f, 0, Translations.ItemDataBase_StatDefinitions_55/*Raft Speed*/, scAdd, 4, () => ModdedPlayer.Stats.perk_RaftSpeedMultipier.GetFormattedAmount(), f => ModdedPlayer.Stats.perk_RaftSpeedMultipier.Add(f), f => ModdedPlayer.Stats.perk_RaftSpeedMultipier.Substract(f), null) { displayAsPercent = true, roundingCount = 2 }; //tr i++; //Sockets i = 3000; - new ItemStat(i++, 1, 3.5f, 0, Translations.ItemDataBase_StatDefinitions_56/*Empty Socket*/, scAdd, 0, null, null, null) { Multipier = 0 }; //tr + new ItemStat(i++, 1, 3.5f, 0, Translations.ItemDataBase_StatDefinitions_56/*Empty Socket*/, scAdd, 0, null, null, null) { multipier = 0 }; //tr new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_57/*Socket: Crit Chance*/, scAdd, 0,null, f=> ModdedPlayer.Stats.critChance.Add(f), f => ModdedPlayer.Stats.critChance.Substract(f)) //tr - { DisplayAsPercent = true, RoundingCount = 1}; + { displayAsPercent = true, roundingCount = 1}; new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_58/*Socket: Agility*/, scAdd, 0,null, StatActions.AddAgility, StatActions.RemoveAgility, null) //tr - { RoundingCount = 0 }; - new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_59/*Socket: Movement Speed*/, scAdd, 0,null, StatActions.AddMoveSpeed, StatActions.RemoveMoveSpeed, null) { DisplayAsPercent = true, RoundingCount = 1 }; //tr - new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_60/*Socket: Ranged Damage*/, scAdd, 0,null, StatActions.AddRangedDamageAmplifier, StatActions.RemoveRangedDamageAmplifier, null) { DisplayAsPercent = true, RoundingCount = 1 }; //tr - new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_61/*Socket: Ranged Armor Piercing*/, scAdd, 0,null, f => ModdedPlayer.Stats.rangedArmorPiercing.valueAdditive += Mathf.RoundToInt(f), f => ModdedPlayer.Stats.rangedArmorPiercing.valueAdditive += -Mathf.RoundToInt(f), null) { RoundingCount = 0 }; //tr + { roundingCount = 0 }; + new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_59/*Socket: Movement Speed*/, scAdd, 0,null, StatActions.AddMoveSpeed, StatActions.RemoveMoveSpeed, null) { displayAsPercent = true, roundingCount = 1 }; //tr + new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_60/*Socket: Ranged Damage*/, scAdd, 0,null, StatActions.AddRangedDamageAmplifier, StatActions.RemoveRangedDamageAmplifier, null) { displayAsPercent = true, roundingCount = 1 }; //tr + new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_61/*Socket: Ranged Armor Piercing*/, scAdd, 0,null, f => ModdedPlayer.Stats.rangedArmorPiercing.valueAdditive += Mathf.RoundToInt(f), f => ModdedPlayer.Stats.rangedArmorPiercing.valueAdditive += -Mathf.RoundToInt(f), null) { roundingCount = 0 }; //tr //3006 - new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_62/*Socketed Shark Tooth: Attack Speed*/, scAdd, 0,null, StatActions.AddAttackSpeed, StatActions.RemoveAttackSpeed, null) { DisplayAsPercent = true, RoundingCount = 1 }; //tr - new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_63/*Socketed Shark Tooth: Strength*/, scAdd, 0,null, StatActions.AddStrength, StatActions.RemoveStrength, null) { RoundingCount = 0 }; //tr - new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_64/*Socketed Shark Tooth: Damage Reduction*/, scOneMinusMult, 0,null, StatActions.AddDamageReduction, StatActions.RemoveDamageReduction, null) { DisplayAsPercent = true, RoundingCount = 1 }; //tr - new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_65/*Socketed Shark Tooth: Melee Damage*/, scAdd, 0,null, StatActions.AddMeleeDamageAmplifier, StatActions.RemoveMeleeDamageAmplifier, null) { DisplayAsPercent = true, RoundingCount = 1 }; //tr - new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_66/*Socketed Shark Tooth: Melee Armor Piercing*/, scAdd, 0,null, f => ModdedPlayer.Stats.meleeArmorPiercing.valueAdditive += Mathf.RoundToInt(f), f => ModdedPlayer.Stats.meleeArmorPiercing.valueAdditive += -Mathf.RoundToInt(f), null) { RoundingCount = 0 }; //tr + new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_62/*Socketed Shark Tooth: Attack Speed*/, scAdd, 0,null, StatActions.AddAttackSpeed, StatActions.RemoveAttackSpeed, null) { displayAsPercent = true, roundingCount = 1 }; //tr + new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_63/*Socketed Shark Tooth: Strength*/, scAdd, 0,null, StatActions.AddStrength, StatActions.RemoveStrength, null) { roundingCount = 0 }; //tr + new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_64/*Socketed Shark Tooth: Damage Reduction*/, scOneMinusMult, 0,null, StatActions.AddDamageReduction, StatActions.RemoveDamageReduction, null) { displayAsPercent = true, roundingCount = 1 }; //tr + new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_65/*Socketed Shark Tooth: Melee Damage*/, scAdd, 0,null, StatActions.AddMeleeDamageAmplifier, StatActions.RemoveMeleeDamageAmplifier, null) { displayAsPercent = true, roundingCount = 1 }; //tr + new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_66/*Socketed Shark Tooth: Melee Armor Piercing*/, scAdd, 0,null, f => ModdedPlayer.Stats.meleeArmorPiercing.valueAdditive += Mathf.RoundToInt(f), f => ModdedPlayer.Stats.meleeArmorPiercing.valueAdditive += -Mathf.RoundToInt(f), null) { roundingCount = 0 }; //tr //30011 - new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_67/*Socket: Cooldown Reduction*/, scOneMinusMult, 0,null, f => ModdedPlayer.Stats.cooldown.valueMultiplicative *= (1 - f), f => ModdedPlayer.Stats.cooldown.valueMultiplicative /= (1 - f), null) { DisplayAsPercent = true, RoundingCount = 1 }; //tr - new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_68/*Socket: Intelligence*/, scAdd, 0,null, StatActions.AddIntelligence, StatActions.RemoveIntelligence, null) { RoundingCount = 0 }; //tr - new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_69/*Socket: Spell Cost Reduction*/, scOneMinusMult, 0,null, f => ModdedPlayer.Stats.spellCost.valueMultiplicative *= 1 - f, f => ModdedPlayer.Stats.spellCost.valueMultiplicative /= 1 - f, null) { DisplayAsPercent = true, RoundingCount = 1 }; //tr - new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_70/*Socket: Spell Damage*/, scAdd, 0,null, StatActions.AddSpellDamageAmplifier, StatActions.RemoveSpellDamageAmplifier, null) { DisplayAsPercent = true, RoundingCount = 1 }; //tr - new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_71/*Socket: Energy On Hit*/, scAdd, 0,null, f => ModdedPlayer.Stats.energyOnHit.valueAdditive += f, f => ModdedPlayer.Stats.energyOnHit.valueAdditive += -f, null) { RoundingCount = 2, Multipier = 0.02f }; //tr + new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_67/*Socket: Cooldown Reduction*/, scOneMinusMult, 0,null, f => ModdedPlayer.Stats.cooldown.valueMultiplicative *= (1 - f), f => ModdedPlayer.Stats.cooldown.valueMultiplicative /= (1 - f), null) { displayAsPercent = true, roundingCount = 1 }; //tr + new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_68/*Socket: Intelligence*/, scAdd, 0,null, StatActions.AddIntelligence, StatActions.RemoveIntelligence, null) { roundingCount = 0 }; //tr + new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_69/*Socket: Spell Cost Reduction*/, scOneMinusMult, 0,null, f => ModdedPlayer.Stats.spellCost.valueMultiplicative *= 1 - f, f => ModdedPlayer.Stats.spellCost.valueMultiplicative /= 1 - f, null) { displayAsPercent = true, roundingCount = 1 }; //tr + new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_70/*Socket: Spell Damage*/, scAdd, 0,null, StatActions.AddSpellDamageAmplifier, StatActions.RemoveSpellDamageAmplifier, null) { displayAsPercent = true, roundingCount = 1 }; //tr + new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_71/*Socket: Energy On Hit*/, scAdd, 0,null, f => ModdedPlayer.Stats.energyOnHit.valueAdditive += f, f => ModdedPlayer.Stats.energyOnHit.valueAdditive += -f, null) { roundingCount = 2, multipier = 0.02f }; //tr //3016 - new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_72/*Socket: Experience Gain*/, scMultPlusOne, 0,null, StatActions.AddExpFactor, StatActions.RemoveExpFactor, null) { DisplayAsPercent = true, RoundingCount = 1 }; //tr - new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_73/*Socket: Vitality */, scAdd, 0,null, StatActions.AddVitality, StatActions.RemoveVitality, null) { RoundingCount = 0 }; //tr - new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_74/*Socket: Magic Find*/, scAdd, 0,null, f => StatActions.AddMagicFind(f), f => StatActions.AddMagicFind(-f), null) { DisplayAsPercent = true, RoundingCount = 1 }; //tr - new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_75/*Socket: All Healing*/, scMultPlusOne, 0,null, StatActions.AddHealingMultipier, StatActions.RemoveHealingMultipier, null) { DisplayAsPercent = true, RoundingCount = 1, Multipier = 1.25f }; //tr - new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_76/*Socket: Life Per Second*/, scAdd, 0,null, StatActions.AddHPRegen, StatActions.RemoveHPRegen, null) { RoundingCount = 1, Multipier = 0.04f }; //tr + new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_72/*Socket: Experience Gain*/, scMultPlusOne, 0,null, StatActions.AddExpFactor, StatActions.RemoveExpFactor, null) { displayAsPercent = true, roundingCount = 1 }; //tr + new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_73/*Socket: Vitality */, scAdd, 0,null, StatActions.AddVitality, StatActions.RemoveVitality, null) { roundingCount = 0 }; //tr + new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_74/*Socket: Magic Find*/, scAdd, 0,null, f => StatActions.AddMagicFind(f), f => StatActions.AddMagicFind(-f), null) { displayAsPercent = true, roundingCount = 1 }; //tr + new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_75/*Socket: All Healing*/, scMultPlusOne, 0,null, StatActions.AddHealingMultipier, StatActions.RemoveHealingMultipier, null) { displayAsPercent = true, roundingCount = 1, multipier = 1.25f }; //tr + new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_76/*Socket: Life Per Second*/, scAdd, 0,null, StatActions.AddHPRegen, StatActions.RemoveHPRegen, null) { roundingCount = 1, multipier = 0.04f }; //tr //3021 - new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_77/*Socket: Maximum Health */, scMultPlusOne, 0,null, f => ModdedPlayer.Stats.maxHealthMult.valueMultiplicative *= 1 + f, f => ModdedPlayer.Stats.maxHealthMult.valueMultiplicative /= 1 + f, null) { DisplayAsPercent = true, RoundingCount = 1 }; //tr - new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_78/*Socket: Armor */, scAdd, 0,null, StatActions.AddArmor, StatActions.RemoveArmor, null) { RoundingCount = 0, Multipier = 10f }; //tr - new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_79/*Socket: Resistance To Magic*/, scOneMinusMult, 0,null, StatActions.AddEliteDamageReduction, StatActions.RemoveEliteDamageReduction, null) { DisplayAsPercent = true, RoundingCount = 1 }; //tr - new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_80/*Socket: Crit Damage*/, scMultPlusOne, 0,null, f => ModdedPlayer.Stats.critDamage.Add(f), f => ModdedPlayer.Stats.critDamage.Substract(f), null) { DisplayAsPercent = true, RoundingCount = 1, Multipier = 5f }; //tr - new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_81/*Socket: Thorns*/, scAdd, 0,null, f => ModdedPlayer.Stats.thorns.valueAdditive += f, f => ModdedPlayer.Stats.thorns.valueAdditive -= f, null) { RoundingCount = 0, Multipier = 5f }; //tr + new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_77/*Socket: Maximum Health */, scMultPlusOne, 0,null, f => ModdedPlayer.Stats.maxHealthMult.valueMultiplicative *= 1 + f, f => ModdedPlayer.Stats.maxHealthMult.valueMultiplicative /= 1 + f, null) { displayAsPercent = true, roundingCount = 1 }; //tr + new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_78/*Socket: Armor */, scAdd, 0,null, StatActions.AddArmor, StatActions.RemoveArmor, null) { roundingCount = 0, multipier = 10f }; //tr + new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_79/*Socket: Resistance To Magic*/, scOneMinusMult, 0,null, StatActions.AddEliteDamageReduction, StatActions.RemoveEliteDamageReduction, null) { displayAsPercent = true, roundingCount = 1 }; //tr + new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_80/*Socket: Crit Damage*/, scMultPlusOne, 0,null, f => ModdedPlayer.Stats.critDamage.Add(f), f => ModdedPlayer.Stats.critDamage.Substract(f), null) { displayAsPercent = true, roundingCount = 1, multipier = 5f }; //tr + new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_81/*Socket: Thorns*/, scAdd, 0,null, f => ModdedPlayer.Stats.thorns.valueAdditive += f, f => ModdedPlayer.Stats.thorns.valueAdditive -= f, null) { roundingCount = 0, multipier = 5f }; //tr } } } \ No newline at end of file diff --git a/Items/ItemPickUp.cs b/Items/ItemPickUp.cs index 3b486c1..c47bc34 100644 --- a/Items/ItemPickUp.cs +++ b/Items/ItemPickUp.cs @@ -130,25 +130,25 @@ private void OnGUI() for (int i = 0; i < item.Stats.Count; i++) { ItemStat stat = item.Stats[i]; - double amount = stat.Amount; - if (stat.DisplayAsPercent) + double amount = stat.amount; + if (stat.displayAsPercent) { amount *= 100; } - amount = Math.Round(amount, stat.RoundingCount); - string statslabel = $" {stat.Name}"; + amount = Math.Round(amount, stat.roundingCount); + string statslabel = $" {stat.name}"; string statsvalue; - if (stat.DisplayAsPercent) + if (stat.displayAsPercent) { - statsvalue = amount.ToString("N" + stat.RoundingCount) + "% "; + statsvalue = amount.ToString("N" + stat.roundingCount) + "% "; } else { - statsvalue = amount.ToString("N" + stat.RoundingCount) + " "; + statsvalue = amount.ToString("N" + stat.roundingCount) + " "; } - GUI.color = MainMenu.RarityColors[stat.Rarity]; + GUI.color = MainMenu.RarityColors[stat.rarity]; //Name statStyle.alignment = TextAnchor.UpperLeft; diff --git a/Items/ItemStat.cs b/Items/ItemStat.cs index 5b7c4d5..fe42486 100644 --- a/Items/ItemStat.cs +++ b/Items/ItemStat.cs @@ -1,9 +1,65 @@ using System; using System.Collections.Generic; +using System.Linq; + using UnityEngine; +using static ChampionsOfForest.ItemStatBuilder; + namespace ChampionsOfForest { + + public class ItemStatBuilder : ItemStat + { + private float CompareAdd(List x) => x.Sum(); + private float CompareMult(List x) + { + float f = 1; + for (int j = 0; j < x.Count; j++) + f *= x[j]; + return f - 1; + } + private float CompareMultPlus1(List x) + { + float f = 1; + for (int j = 0; j < x.Count; j++) + f *= 1 + x[j]; + return f; + } + private float Compare1MinusMult(List x) + { + float f = 1; + for (int k = 0; k < x.Count; k++) + f *= 1 - x[k]; + return 1 - f; + } + + + + + public ItemStatBuilder(int id, string name, float min, float max) + { + this.id = id; + this.name = name; + this.rangeMin = min; + this.rangeMax = max; + ItemDataBase.AddStat(this); + + } + + public ItemStatBuilder Rarity(int rarity) + { + if (rarity < 0 || rarity > 7) + UnityEngine.Debug.LogError($"ItemStat {name} has incorrect rarity {rarity}"); + this.rarity = rarity; + return this; + } + + public ItemStatBuilder AdditiveComparing() + { + this.comparing = + } + } public class ItemStat { public class StatCompare @@ -16,134 +72,108 @@ public StatCompare(Func, float> calculateValues) } } - public float LevelPow = 1; - public float ValueCap = 0; - public int StatID = 0; - public string Name = ""; - public int Rarity = 0; - public float MinAmount = 0; - public float MaxAmount = 0; - public float Amount = 1; - public float Multipier = 1; - public bool DisplayAsPercent = false; - public int RoundingCount; + public float levelExponent = 1; + public float valueCap = 0; + public int id = 0; + public string name = ""; + public int rarity = 1; + public float rangeMin = 0; + public float rangeMax = 0; + public float amount = 1; + public float multipier = 1; + public float rarityCoefficient = 1; + + // display + public bool displayAsPercent = false; + public int roundingCount; public int possibleStatsIndex = -1; - private StatCompare comparing; - public Func GetTotalStat; - public delegate void OnEquipDelegate(float f); - public OnEquipDelegate OnEquip; - public delegate void OnUnequipDelegate(float f); + private Func, float> comparingFunc; + public Func GetTotalStat; - public OnUnequipDelegate OnUnequip; + public delegate void StatActionDelegate(float f); - public delegate void OnConsumeDelegate(float f); + public StatActionDelegate OnEquip; + public StatActionDelegate OnUnequip; - public OnConsumeDelegate OnConsume; - //public delegate object VariableReturnDelegate(); - //public VariableReturnDelegate GetVariable; - //public Type variableType; public float EvaluateTotalIncrease(List amounts) { return comparing.CalculateValues(amounts); } - /// - /// Creates new itemStat and adds it to the database - /// - /// ID of the item, used to access it from the DB - /// Min amount for the stat at level 1 - /// Max amount for the stat at level 1 - /// Name of the stat, what should be displayed in the item context menu - /// range 0-7 - /// How much should it increase per level(min max values will be powered to this amount) - public ItemStat(int id, float Min, float Max, float LvlPower, string name, StatCompare comparingMethod, int rarity,Func getValueFunc, OnEquipDelegate onEquip = null, OnUnequipDelegate onUnequip = null, OnConsumeDelegate onConsume = null) + public ItemStat() { - comparing = comparingMethod; - LevelPow = LvlPower; - StatID = id; - MaxAmount = Max; - MinAmount = Min; - Name = name; - Rarity = rarity; - OnEquip = onEquip; - OnUnequip = onUnequip; - OnConsume = onConsume; - GetTotalStat = getValueFunc; - ItemDataBase.AddStat(this); + } - public ItemStat(ItemStat s, int level = 1, int possibleStatsIdx= -1) + // Returns a copy of an item stat + public ItemStat(ItemStat original, int level, int possibleStatsIdx, float rarityMult) { - Name = s.Name; - LevelPow = s.LevelPow; - StatID = s.StatID; - Rarity = s.Rarity; - MinAmount = s.MinAmount; - MaxAmount = s.MaxAmount; - OnEquip = s.OnEquip; - OnUnequip = s.OnUnequip; - OnConsume = s.OnConsume; - RoundingCount = s.RoundingCount; - DisplayAsPercent = s.DisplayAsPercent; - GetTotalStat = s.GetTotalStat; - this.ValueCap = s.ValueCap; - this.Multipier = s.Multipier; - Amount = RollValue(level); - if (ValueCap != 0) - { - Amount = Mathf.Min(ValueCap, Amount); - } - Amount *= Multipier; + name = original.name; + levelExponent = original.levelExponent; + id = original.id; + rarity = original.rarity; + rangeMin = original.rangeMin; + rangeMax = original.rangeMax; + OnEquip = original.OnEquip; + OnUnequip = original.OnUnequip; + roundingCount = original.roundingCount; + displayAsPercent = original.displayAsPercent; + GetTotalStat = original.GetTotalStat; + valueCap = original.valueCap; + multipier = original.multipier; + rarityCoefficient = original.rarityCoefficient; + comparingFunc = original.comparingFunc; + amount = RollValue(level, rarityMult); possibleStatsIndex = possibleStatsIdx; } - public ItemStat() - { - } - public float RollValue(int level = 1) + private float GetMultiplier(int level, float rarityMult) { - float mult = 1; - if (LevelPow != 0) + float levelMult = 1; + if (levelExponent != 0) { - mult = Mathf.Pow(level, LevelPow); + levelMult = Mathf.Pow(level, levelExponent); } - float f = UnityEngine.Random.Range(MinAmount, MaxAmount) * mult; - return f; + rarityMult *= rarityCoefficient; + return multipier * levelMult * rarityMult; + } + + public float RollValue(int level, float rarityMult) + { + float randomValue = UnityEngine.Random.Range(rangeMin, rangeMax); + float mult = GetMultiplier(level, rarityMult); + float val = randomValue * mult; + if (valueCap != 0 && val > valueCap) + val = valueCap; + return val; } public string GetMaxValue(int level,float rarityMult) { - string formatting = (DisplayAsPercent ? "P" : "N" )+ RoundingCount; - float mult = 1; - if (LevelPow != 0) - { - mult = Mathf.Pow(level, LevelPow); - } - float f = MaxAmount * mult*rarityMult; - if (ValueCap != 0) - return (Mathf.Min(f, ValueCap)*Multipier).ToString(formatting); - else - return (f* Multipier).ToString(formatting); + string formatting = (displayAsPercent ? "P" : "N" )+ roundingCount; + + float mult = GetMultiplier(level, rarityMult); + float val = rangeMax * mult; + if (valueCap != 0 && val > valueCap) + return (valueCap).ToString(formatting) + " (capped)"; + else + return (val).ToString(formatting); } public string GetMinValue(int level, float rarityMult) { - string formatting =( DisplayAsPercent ? "P" : "N" )+ RoundingCount; + string formatting = (displayAsPercent ? "P" : "N") + roundingCount; - float mult = 1; - if (LevelPow != 0) - { - mult = Mathf.Pow(level, LevelPow); - } - float f = MinAmount * mult * rarityMult; - if (ValueCap != 0) - return (Mathf.Min(f, ValueCap) * Multipier).ToString(formatting); + float mult = GetMultiplier(level, rarityMult); + float val = rangeMin * mult; + if (valueCap != 0 && val > valueCap) + return (valueCap).ToString(formatting) + " (capped)"; else - return (f * Multipier).ToString(formatting); + return (val).ToString(formatting); } } } \ No newline at end of file diff --git a/Items/StatActions.cs b/Items/StatActions.cs index 4109449..b637af5 100644 --- a/Items/StatActions.cs +++ b/Items/StatActions.cs @@ -464,7 +464,7 @@ public static ItemStat GetSocketedStat(in int rarity, BaseItem.ItemType type, in } statid = 5 * (subtypeOffset - 1) + 3001 + statid; ItemStat stat = new ItemStat(ItemDataBase.StatByID(statid)); - stat.Amount = value * stat.Multipier; + stat.amount = value * stat.multipier; return stat; } public static float GetSocketedStatAmount(in int rarity, BaseItem.ItemType type, int subtypeOffset) @@ -507,7 +507,7 @@ public static float GetSocketedStatAmount(in int rarity, BaseItem.ItemType type, break; } int stat = 5 * (subtypeOffset - 1) + 3001 + statid; - return value * ItemDataBase.StatByID(stat).Multipier; + return value * ItemDataBase.StatByID(stat).multipier; } public static float GetSocketStatAmount_Amulet(in int rarity) { diff --git a/Network/CommandReader.cs b/Network/CommandReader.cs index 574f540..39791be 100644 --- a/Network/CommandReader.cs +++ b/Network/CommandReader.cs @@ -287,7 +287,7 @@ public static void OnCommand(byte[] bytes) { ItemStat stat = new ItemStat(ItemDataBase.Stats[r.ReadInt32()], itemLvl, r.ReadInt32()) { - Amount = r.ReadSingle() + amount = r.ReadSingle() }; item.Stats.Add(stat); } @@ -644,7 +644,7 @@ public static void OnCommand(byte[] bytes) int statPoolIdx = r.ReadInt32(); ItemStat stat = new ItemStat(ItemDataBase.Stats[statId], 1, statPoolIdx) { - Amount = r.ReadSingle() + amount = r.ReadSingle() }; item.Stats.Add(stat); } diff --git a/Network/NetworkManager.cs b/Network/NetworkManager.cs index 899cce6..7972cdd 100644 --- a/Network/NetworkManager.cs +++ b/Network/NetworkManager.cs @@ -222,9 +222,9 @@ public static void SendItemDrop(Item item, Vector3 pos, ItemPickUp.DropSource dr w.Write((int)dropSource); foreach (ItemStat stat in item.Stats) { - w.Write(stat.StatID); + w.Write(stat.id); w.Write(stat.possibleStatsIndex); - w.Write(stat.Amount); + w.Write(stat.amount); } w.Close(); } @@ -246,9 +246,9 @@ public static void SendItemToPlayer(Item item, string playerID, int amount = 1) w.Write(item.level); foreach (ItemStat stat in item.Stats) { - w.Write(stat.StatID); + w.Write(stat.id); w.Write(stat.possibleStatsIndex); - w.Write(stat.Amount); + w.Write(stat.amount); } w.Close(); } diff --git a/Player/Crafting/Empowering.cs b/Player/Crafting/Empowering.cs index 15123a5..90ea2f5 100644 --- a/Player/Crafting/Empowering.cs +++ b/Player/Crafting/Empowering.cs @@ -43,12 +43,12 @@ public void Craft() CraftingHandler.changedItem.i.level = ModdedPlayer.instance.level; foreach (var stat in CraftingHandler.changedItem.i.Stats) { - if (stat.StatID >= 3000) + if (stat.id >= 3000) continue; - stat.Amount = stat.RollValue(CraftingHandler.changedItem.i.level) * CustomCrafting.instance.changedItem.i.GetRarityMultiplier(); - if (stat.ValueCap != 0) - stat.Amount = Mathf.Min(stat.Amount, stat.ValueCap); - stat.Amount *= stat.Multipier; + stat.amount = stat.RollValue(CraftingHandler.changedItem.i.level) * CustomCrafting.instance.changedItem.i.GetRarityMultiplier(); + if (stat.valueCap != 0) + stat.amount = Mathf.Min(stat.amount, stat.valueCap); + stat.amount *= stat.multipier; } Effects.Sound_Effects.GlobalSFX.Play(Effects.Sound_Effects.GlobalSFX.SFX.Purge); @@ -82,9 +82,9 @@ public void DrawUI(in float x, in float w, in float screenScale, in GUIStyle[] s ypos += 26 * screenScale; string maxAmount = stat.GetMaxValue(CraftingHandler.changedItem.i.level,mult) ; string minAmount = stat.GetMinValue(CraftingHandler.changedItem.i.level, mult) ; - string amount = stat.Amount.ToString((stat.DisplayAsPercent ? "P" : "N") + stat.RoundingCount); - GUI.color = MainMenu.RarityColors[stat.Rarity]; - GUI.Label(statRect, ind + ". " + stat.Name, styles[0]); + string amount = stat.amount.ToString((stat.displayAsPercent ? "P" : "N") + stat.roundingCount); + GUI.color = MainMenu.RarityColors[stat.rarity]; + GUI.Label(statRect, ind + ". " + stat.name, styles[0]); GUI.color = Color.white; ind++; diff --git a/Player/Crafting/IndividualRerolling.cs b/Player/Crafting/IndividualRerolling.cs index 3cbbd77..d17db9c 100644 --- a/Player/Crafting/IndividualRerolling.cs +++ b/Player/Crafting/IndividualRerolling.cs @@ -51,7 +51,7 @@ public void Craft() if (validRecipe) { var stat = CraftingHandler.changedItem.i.Stats[selectedStat]; - if (stat.StatID > 3000) + if (stat.id > 3000) { CraftingHandler.changedItem.i.Stats[selectedStat] = new ItemStat(ItemDataBase.Stats[3000]); //set to empty socket } @@ -61,11 +61,11 @@ public void Craft() int random = UnityEngine.Random.Range(0, options.Count); { ItemStat newStat = new ItemStat(options[random], CraftingHandler.changedItem.i.level); - newStat.Amount *= CraftingHandler.changedItem.i.GetRarityMultiplier(); + newStat.amount *= CraftingHandler.changedItem.i.GetRarityMultiplier(); newStat.possibleStatsIndex = stat.possibleStatsIndex; - if (newStat.ValueCap != 0) + if (newStat.valueCap != 0) { - newStat.Amount = Mathf.Min(newStat.Amount, newStat.ValueCap); + newStat.amount = Mathf.Min(newStat.amount, newStat.valueCap); } CraftingHandler.changedItem.i.Stats[selectedStat] = newStat; CraftingHandler.changedItem.i.SortStats(); @@ -107,16 +107,16 @@ public void DrawUI(in float x, in float w, in float screenScale, in GUIStyle[] s ypos += 26 * screenScale; string maxAmount = stat.GetMaxValue(CraftingHandler.changedItem.i.level, mult); string minAmount = stat.GetMinValue(CraftingHandler.changedItem.i.level, mult); - string amount = stat.Amount.ToString((stat.DisplayAsPercent ? "P" : "N") + stat.RoundingCount); + string amount = stat.amount.ToString((stat.displayAsPercent ? "P" : "N") + stat.roundingCount); - GUI.color = MainMenu.RarityColors[stat.Rarity]; + GUI.color = MainMenu.RarityColors[stat.rarity]; if (selectedStat == ind) { - GUI.Label(statRect, "• " + stat.Name + " •", new GUIStyle(styles[0]) { fontStyle = FontStyle.Bold, fontSize = Mathf.RoundToInt(19 * screenScale) }); + GUI.Label(statRect, "• " + stat.name + " •", new GUIStyle(styles[0]) { fontStyle = FontStyle.Bold, fontSize = Mathf.RoundToInt(19 * screenScale) }); } else { - if (GUI.Button(statRect, stat.Name, styles[0])) + if (GUI.Button(statRect, stat.name, styles[0])) { selectedStat = ind; } @@ -140,7 +140,7 @@ public void DrawUI(in float x, in float w, in float screenScale, in GUIStyle[] s { if (validRecipe) { - if (GUI.Button(new Rect(x, ypos, w, 40 * screenScale), CraftingHandler.changedItem.i.Stats[selectedStat].StatID > 3000 ? Translations.IndividualRerolling_3/*Empty socket*/ : Translations.IndividualRerolling_2/*Reroll stat*/, styles[2])) //tr + if (GUI.Button(new Rect(x, ypos, w, 40 * screenScale), CraftingHandler.changedItem.i.Stats[selectedStat].id > 3000 ? Translations.IndividualRerolling_3/*Empty socket*/ : Translations.IndividualRerolling_2/*Reroll stat*/, styles[2])) //tr { Craft(); } @@ -188,7 +188,7 @@ public void DrawUI(in float x, in float w, in float screenScale, in GUIStyle[] s string optionsStr = Translations.IndividualRerolling_6/*Possible stats:\n*/; //tr foreach (var stat1 in options) { - optionsStr += stat1.Name + '\t'; + optionsStr += stat1.name + '\t'; } GUI.Label(new Rect(x, ypos, w, Screen.height - x), optionsStr, new GUIStyle(styles[0]) { alignment = TextAnchor.UpperLeft, fontSize = (int)(12 * screenScale), wordWrap = true }); } diff --git a/Player/Crafting/Polishing.cs b/Player/Crafting/Polishing.cs index 6255865..065dd5b 100644 --- a/Player/Crafting/Polishing.cs +++ b/Player/Crafting/Polishing.cs @@ -18,7 +18,7 @@ public bool validRecipe { if (CraftingHandler.changedItem.i == null || CraftingHandler.changedItem.i.Stats.Count <= selectedStat || selectedStat < 0) return false; - if (CraftingHandler.changedItem.i.Stats[selectedStat].StatID == 3000) + if (CraftingHandler.changedItem.i.Stats[selectedStat].id == 3000) return false; int itemCount = 0; int rarity = CraftingHandler.changedItem.i.rarity; @@ -43,16 +43,16 @@ public void Craft() if (validRecipe) { var stat = CraftingHandler.changedItem.i.Stats[selectedStat]; - if (stat.StatID > 3000) + if (stat.id > 3000) { CraftingHandler.changedItem.i.Stats[selectedStat] = new ItemStat(ItemDataBase.Stats[3000]); //set to empty socket } else { - stat.Amount = stat.RollValue(CraftingHandler.changedItem.i.level) * CustomCrafting.instance.changedItem.i.GetRarityMultiplier(); - if (stat.ValueCap != 0) - stat.Amount = Mathf.Min(stat.Amount, stat.ValueCap); - stat.Amount *= stat.Multipier; + stat.amount = stat.RollValue(CraftingHandler.changedItem.i.level) * CustomCrafting.instance.changedItem.i.GetRarityMultiplier(); + if (stat.valueCap != 0) + stat.amount = Mathf.Min(stat.amount, stat.valueCap); + stat.amount *= stat.multipier; } Effects.Sound_Effects.GlobalSFX.Play(Effects.Sound_Effects.GlobalSFX.SFX.Purge); for (int i = 0; i < CraftingHandler.ingredients.Length; i++) @@ -86,16 +86,16 @@ public void DrawUI(in float x, in float w, in float screenScale, in GUIStyle[] s ypos += 26 * screenScale; string maxAmount = stat.GetMaxValue(CraftingHandler.changedItem.i.level, mult); string minAmount = stat.GetMinValue(CraftingHandler.changedItem.i.level, mult); - string amount = stat.Amount.ToString((stat.DisplayAsPercent ? "P" : "N") + stat.RoundingCount); + string amount = stat.amount.ToString((stat.displayAsPercent ? "P" : "N") + stat.roundingCount); - GUI.color = MainMenu.RarityColors[stat.Rarity]; + GUI.color = MainMenu.RarityColors[stat.rarity]; if (selectedStat == ind) { - GUI.Label(statRect, "• " + stat.Name + " •", new GUIStyle(styles[0]) { fontStyle = FontStyle.Bold, fontSize = Mathf.RoundToInt(19 * screenScale) }); + GUI.Label(statRect, "• " + stat.name + " •", new GUIStyle(styles[0]) { fontStyle = FontStyle.Bold, fontSize = Mathf.RoundToInt(19 * screenScale) }); } else { - if (GUI.Button(statRect, stat.Name, styles[0])) + if (GUI.Button(statRect, stat.name, styles[0])) { selectedStat = ind; } @@ -120,7 +120,7 @@ public void DrawUI(in float x, in float w, in float screenScale, in GUIStyle[] s if (validRecipe) { - if (GUI.Button(new Rect(x, ypos, w, 40 * screenScale), CraftingHandler.changedItem.i.Stats[selectedStat].StatID > 3000 ? Translations.IndividualRerolling_3/*Empty socket*/ : Translations.Polishing_2/*Reroll stat value*/, styles[2])) //tr + if (GUI.Button(new Rect(x, ypos, w, 40 * screenScale), CraftingHandler.changedItem.i.Stats[selectedStat].id > 3000 ? Translations.IndividualRerolling_3/*Empty socket*/ : Translations.Polishing_2/*Reroll stat value*/, styles[2])) //tr { Craft(); } diff --git a/Player/Crafting/Reforging.cs b/Player/Crafting/Reforging.cs index 2206319..ede53d3 100644 --- a/Player/Crafting/Reforging.cs +++ b/Player/Crafting/Reforging.cs @@ -91,9 +91,9 @@ public void DrawUI(in float x, in float w, in float screenScale, in GUIStyle[] s ypos += 26 * screenScale; string maxAmount = stat.GetMaxValue(CraftingHandler.changedItem.i.level, mult); string minAmount = stat.GetMinValue(CraftingHandler.changedItem.i.level, mult); - string amount = stat.Amount.ToString((stat.DisplayAsPercent ? "P" : "N") + stat.RoundingCount); - GUI.color = MainMenu.RarityColors[stat.Rarity]; - GUI.Label(statRect, ind + ". " + stat.Name, styles[0]); + string amount = stat.amount.ToString((stat.displayAsPercent ? "P" : "N") + stat.roundingCount); + GUI.color = MainMenu.RarityColors[stat.rarity]; + GUI.Label(statRect, ind + ". " + stat.name, styles[0]); GUI.color = Color.white; ind++; diff --git a/Player/Crafting/Rerolling.cs b/Player/Crafting/Rerolling.cs index 64bb2cb..916bbd5 100644 --- a/Player/Crafting/Rerolling.cs +++ b/Player/Crafting/Rerolling.cs @@ -76,9 +76,9 @@ public void DrawUI(in float x, in float w, in float screenScale, in GUIStyle[] s ypos += 26 * screenScale; string maxAmount = stat.GetMaxValue(CraftingHandler.changedItem.i.level, mult); string minAmount = stat.GetMinValue(CraftingHandler.changedItem.i.level, mult); - string amount = stat.Amount.ToString((stat.DisplayAsPercent ? "P" : "N") + stat.RoundingCount); - GUI.color = MainMenu.RarityColors[stat.Rarity]; - GUI.Label(statRect, ind + ". " + stat.Name, styles[0]); + string amount = stat.amount.ToString((stat.displayAsPercent ? "P" : "N") + stat.roundingCount); + GUI.color = MainMenu.RarityColors[stat.rarity]; + GUI.Label(statRect, ind + ". " + stat.name, styles[0]); GUI.color = Color.white; ind++; diff --git a/Player/Main Menu/MainMenu_Inventory.cs b/Player/Main Menu/MainMenu_Inventory.cs index 6f40e24..8df1998 100644 --- a/Player/Main Menu/MainMenu_Inventory.cs +++ b/Player/Main Menu/MainMenu_Inventory.cs @@ -381,22 +381,22 @@ private void DrawItemInfo(Vector2 pos, Item item, bool drawCompare = false, Item GUI.Label(ItemNameRect, item.name, ItemNameStyle); for (int i = 0; i < StatRects.Length; i++) { - GUI.color = RarityColors[item.Stats[i].Rarity]; - GUI.Label(StatRects[i], item.Stats[i].Name, StatNameStyle); - double amount = item.Stats[i].Amount; - if (item.Stats[i].DisplayAsPercent) + GUI.color = RarityColors[item.Stats[i].rarity]; + GUI.Label(StatRects[i], item.Stats[i].name, StatNameStyle); + double amount = item.Stats[i].amount; + if (item.Stats[i].displayAsPercent) { amount *= 100; } - amount = Math.Round(amount, item.Stats[i].RoundingCount); + amount = Math.Round(amount, item.Stats[i].roundingCount); - if (item.Stats[i].DisplayAsPercent) + if (item.Stats[i].displayAsPercent) { - GUI.Label(StatRects[i], amount.ToString("N" + item.Stats[i].RoundingCount) + "%", StatValueStyle); + GUI.Label(StatRects[i], amount.ToString("N" + item.Stats[i].roundingCount) + "%", StatValueStyle); } else { - GUI.Label(StatRects[i], amount.ToString("N" + item.Stats[i].RoundingCount), StatValueStyle); + GUI.Label(StatRects[i], amount.ToString("N" + item.Stats[i].roundingCount), StatValueStyle); } } if (drawTotal) @@ -456,8 +456,8 @@ private void DrawItemInfo(Vector2 pos, Item item, bool drawCompare = false, Item //object baseVarValue = item.Stats[i].GetVariable(); //dynamic castedValue = Convert.ChangeType(baseVarValue, item.Stats[i].variableType); - float statIncr = otherGrouped != null && otherGrouped.ContainsKey(item.Stats[i].StatID) ? -otherGrouped[item.Stats[i].StatID] : 0; - statIncr += grouped[item.Stats[i].StatID]; + float statIncr = otherGrouped != null && otherGrouped.ContainsKey(item.Stats[i].id) ? -otherGrouped[item.Stats[i].id] : 0; + statIncr += grouped[item.Stats[i].id]; string text = "↑ +"; if (statIncr > 0) { @@ -468,11 +468,11 @@ private void DrawItemInfo(Vector2 pos, Item item, bool drawCompare = false, Item GUI.color = Color.red; text = "↓ "; } - if (item.Stats[i].DisplayAsPercent) + if (item.Stats[i].displayAsPercent) statIncr *= 100; - statIncr = (float)Math.Round(statIncr, item.Stats[i].RoundingCount); + statIncr = (float)Math.Round(statIncr, item.Stats[i].roundingCount); text += statIncr.ToString("N"); - if (item.Stats[i].DisplayAsPercent) + if (item.Stats[i].displayAsPercent) text += "%"; GUI.Label(compareRect, text, statCompareStyle); diff --git a/Player/ModdedPlayer/ModdedPlayer.cs b/Player/ModdedPlayer/ModdedPlayer.cs index a44dbe1..1a229e6 100644 --- a/Player/ModdedPlayer/ModdedPlayer.cs +++ b/Player/ModdedPlayer/ModdedPlayer.cs @@ -1166,7 +1166,7 @@ public static void UnAssignAllStats() { try { - stat.OnUnequip?.Invoke(stat.Amount); + stat.OnUnequip?.Invoke(stat.amount); } catch (Exception e) { diff --git a/Serializer.cs b/Serializer.cs index 25f946f..92a9994 100644 --- a/Serializer.cs +++ b/Serializer.cs @@ -99,7 +99,7 @@ private void DoLoad(string path, out float HealthPercentage, out Dictionary Date: Sat, 12 Apr 2025 20:40:00 +0200 Subject: [PATCH 04/27] Stat defintions update --- ChampionsOfForest.csproj | 1 + Items/ItemDataBase_StatDefinitions.cs | 10 ++- Items/ItemStat.cs | 88 +++++++++++++++---- .../Stats/AdditiveNetworkSyncedPlayerStat.cs | 2 +- .../ModdedPlayer/Stats/AdditivePlayerStat.cs | 2 +- .../ModdedPlayer/Stats/BooleanPlayerStat.cs | 12 ++- Player/ModdedPlayer/Stats/Interfaces.cs | 18 ++++ .../Stats/MultiOperationPlayerStat.cs | 2 +- .../MultiplicativeNetworkSyncedPlayerStat.cs | 2 +- .../Stats/MultiplicativePlayerStat.cs | 2 +- 10 files changed, 116 insertions(+), 23 deletions(-) create mode 100644 Player/ModdedPlayer/Stats/Interfaces.cs diff --git a/ChampionsOfForest.csproj b/ChampionsOfForest.csproj index 5ebb1f8..864957c 100644 --- a/ChampionsOfForest.csproj +++ b/ChampionsOfForest.csproj @@ -246,6 +246,7 @@ + diff --git a/Items/ItemDataBase_StatDefinitions.cs b/Items/ItemDataBase_StatDefinitions.cs index 29b0833..5f84ee5 100644 --- a/Items/ItemDataBase_StatDefinitions.cs +++ b/Items/ItemDataBase_StatDefinitions.cs @@ -8,6 +8,8 @@ using UnityEngine; +using static ChampionsOfForest.ItemDataBase.Stat; + namespace ChampionsOfForest { public static partial class ItemDataBase @@ -104,8 +106,12 @@ public enum Stat public static void PopulateStats() { - - + new ItemStatBuilder(Stat.STRENGTH, "Strength", 2f, 3f) + .AffectsStat(ModdedPlayer.Stats.strength) + .Additive(ModdedPlayer.Stats.strength) + .AdditiveComparing() + .LevelScaling(0.4f) + int i = 1; new ItemStat(i, 1.5f, 2.2f, 0.8f, Translations.MainMenu_Guide_4/*Strength*/, scAdd, 4, //tr diff --git a/Items/ItemStat.cs b/Items/ItemStat.cs index fe42486..da3fb5e 100644 --- a/Items/ItemStat.cs +++ b/Items/ItemStat.cs @@ -2,8 +2,11 @@ using System.Collections.Generic; using System.Linq; +using ChampionsOfForest.Player; + using UnityEngine; +using static ChampionsOfForest.ItemDataBase; using static ChampionsOfForest.ItemStatBuilder; namespace ChampionsOfForest @@ -34,31 +37,87 @@ private float Compare1MinusMult(List x) return 1 - f; } - - - - public ItemStatBuilder(int id, string name, float min, float max) + public ItemStatBuilder(Stat id, string name, float min, float max) { - this.id = id; + this.id = (int)id; this.name = name; this.rangeMin = min; this.rangeMax = max; ItemDataBase.AddStat(this); + } + + public ItemStatBuilder Additive(IAdditiveStat stat) + { + this.comparingFunc = CompareAdd; + this.OnEquip = f => stat.Add(f); + this.OnUnequip = f => stat.Substract(f); + return this; + } + public ItemStatBuilder Multiplicative(IMultiplicativeStat stat) + { + this.comparingFunc = CompareMult; + this.OnEquip = f => stat.Multiply(f); + this.OnEquip = f => stat.Divide(f); + return this; + } + + public ItemStatBuilder MultPlus1Comparing(IMultiplicativeStat stat) + { + this.comparingFunc = CompareMultPlus1; + this.OnEquip = f => stat.Multiply(f+1f); + this.OnEquip = f => stat.Divide(f+1f); + return this; + } + + public ItemStatBuilder OneMinusMultComparing(IMultiplicativeStat stat) + { + this.comparingFunc = Compare1MinusMult; + this.OnEquip = f => stat.Multiply(1f-f); + this.OnEquip = f => stat.Divide(1f-f); + return this; + } + + // this stat will scale linearly with item level + public ItemStatBuilder LinearLevelScaling() + { + this.levelExponent = 1; + return this; + } + // this stat will scale linearly with item level + public ItemStatBuilder NoLevelScaling() + { + this.levelExponent = 0; + return this; } - public ItemStatBuilder Rarity(int rarity) + public ItemStatBuilder LevelScaling(float scaling) { - if (rarity < 0 || rarity > 7) - UnityEngine.Debug.LogError($"ItemStat {name} has incorrect rarity {rarity}"); - this.rarity = rarity; + this.levelExponent = scaling; return this; } - public ItemStatBuilder AdditiveComparing() + public ItemStatBuilder RarityScaling(float scaling) { - this.comparing = + this.rarityCoefficient = scaling; + return this; } + + public ItemStatBuilder NoRarityScaling() + { + this.rarityCoefficient = 0; + return this; + } + + public ItemStatBuilder AffectsStat(NumericPlayerStatBase stat) where T : struct, IComparable, IComparable, IEquatable, IConvertible, IFormattable + { + if (stat is null) + throw new ArgumentNullException(nameof(stat)); + this.GetTotalStat = stat.GetFormattedAmount; + return this; + } + + } public class ItemStat { @@ -76,7 +135,6 @@ public StatCompare(Func, float> calculateValues) public float valueCap = 0; public int id = 0; public string name = ""; - public int rarity = 1; public float rangeMin = 0; public float rangeMax = 0; public float amount = 1; @@ -89,7 +147,7 @@ public StatCompare(Func, float> calculateValues) public int possibleStatsIndex = -1; - private Func, float> comparingFunc; + public Func, float> comparingFunc; public Func GetTotalStat; public delegate void StatActionDelegate(float f); @@ -100,9 +158,10 @@ public StatCompare(Func, float> calculateValues) public float EvaluateTotalIncrease(List amounts) { - return comparing.CalculateValues(amounts); + return comparingFunc(amounts); } + public ItemStat() { @@ -114,7 +173,6 @@ public ItemStat(ItemStat original, int level, int possibleStatsIdx, float rarity name = original.name; levelExponent = original.levelExponent; id = original.id; - rarity = original.rarity; rangeMin = original.rangeMin; rangeMax = original.rangeMax; OnEquip = original.OnEquip; diff --git a/Player/ModdedPlayer/Stats/AdditiveNetworkSyncedPlayerStat.cs b/Player/ModdedPlayer/Stats/AdditiveNetworkSyncedPlayerStat.cs index a3effc7..3a1b379 100644 --- a/Player/ModdedPlayer/Stats/AdditiveNetworkSyncedPlayerStat.cs +++ b/Player/ModdedPlayer/Stats/AdditiveNetworkSyncedPlayerStat.cs @@ -6,7 +6,7 @@ namespace ChampionsOfForest.Player { - public class AdditiveNetworkSyncedPlayerStat : NumericPlayerStatBase, INetworkSyncedPlayerStat, INetworkStatStorage where T : struct, IComparable, IComparable, IEquatable, IConvertible, IFormattable + public class AdditiveNetworkSyncedPlayerStat : NumericPlayerStatBase, INetworkSyncedPlayerStat, INetworkStatStorage, IAdditiveStat where T : struct, IComparable, IComparable, IEquatable, IConvertible, IFormattable { protected Func add, substract; diff --git a/Player/ModdedPlayer/Stats/AdditivePlayerStat.cs b/Player/ModdedPlayer/Stats/AdditivePlayerStat.cs index 00ce961..4defaa1 100644 --- a/Player/ModdedPlayer/Stats/AdditivePlayerStat.cs +++ b/Player/ModdedPlayer/Stats/AdditivePlayerStat.cs @@ -2,7 +2,7 @@ namespace ChampionsOfForest.Player { - public class AdditivePlayerStat : NumericPlayerStatBase where T : struct, IComparable, IComparable, IEquatable, IConvertible, IFormattable + public class AdditivePlayerStat : NumericPlayerStatBase, IAdditiveStat where T : struct, IComparable, IComparable, IEquatable, IConvertible, IFormattable { protected Func add,substract; public T valueAdditive; diff --git a/Player/ModdedPlayer/Stats/BooleanPlayerStat.cs b/Player/ModdedPlayer/Stats/BooleanPlayerStat.cs index 0397a8e..db39d5d 100644 --- a/Player/ModdedPlayer/Stats/BooleanPlayerStat.cs +++ b/Player/ModdedPlayer/Stats/BooleanPlayerStat.cs @@ -1,6 +1,6 @@ namespace ChampionsOfForest.Player { - public class BooleanPlayerStat : CPlayerStatBase + public class BooleanPlayerStat : CPlayerStatBase, IAdditiveStat { public bool value; private readonly bool default_value; @@ -18,5 +18,15 @@ public override void Reset() } public override bool GetAmount() => value; public void Set(bool newValue) => value = newValue; + public bool Add(bool amount) + { + value = true; + return true; + } + public bool Substract(bool amount) + { + value = false; + return false; + } } } \ No newline at end of file diff --git a/Player/ModdedPlayer/Stats/Interfaces.cs b/Player/ModdedPlayer/Stats/Interfaces.cs new file mode 100644 index 0000000..99b1531 --- /dev/null +++ b/Player/ModdedPlayer/Stats/Interfaces.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace ChampionsOfForest.Player +{ + public interface IAdditiveStat + { + T Add(T amount); + T Substract(T amount); + } + public interface IMultiplicativeStat + { + T Multiply(T amount); + T Divide(T amount); + } +} diff --git a/Player/ModdedPlayer/Stats/MultiOperationPlayerStat.cs b/Player/ModdedPlayer/Stats/MultiOperationPlayerStat.cs index aa5506c..3791a3e 100644 --- a/Player/ModdedPlayer/Stats/MultiOperationPlayerStat.cs +++ b/Player/ModdedPlayer/Stats/MultiOperationPlayerStat.cs @@ -2,7 +2,7 @@ namespace ChampionsOfForest.Player { - public class MultiOperationPlayerStat : NumericPlayerStatBase where T : struct, IComparable, IComparable, IEquatable, IConvertible, IFormattable + public class MultiOperationPlayerStat : NumericPlayerStatBase, IAdditiveStat, IMultiplicativeStat where T : struct, IComparable, IComparable, IEquatable, IConvertible, IFormattable { protected Func add; protected Func substract; diff --git a/Player/ModdedPlayer/Stats/MultiplicativeNetworkSyncedPlayerStat.cs b/Player/ModdedPlayer/Stats/MultiplicativeNetworkSyncedPlayerStat.cs index 4b3f1a2..d0cac49 100644 --- a/Player/ModdedPlayer/Stats/MultiplicativeNetworkSyncedPlayerStat.cs +++ b/Player/ModdedPlayer/Stats/MultiplicativeNetworkSyncedPlayerStat.cs @@ -6,7 +6,7 @@ namespace ChampionsOfForest.Player { - public class MultiplicativeNetworkSyncedPlayerStat : NumericPlayerStatBase, INetworkSyncedPlayerStat, INetworkStatStorage where T : struct, IComparable, IComparable, IEquatable, IConvertible, IFormattable + public class MultiplicativeNetworkSyncedPlayerStat : NumericPlayerStatBase, INetworkSyncedPlayerStat, INetworkStatStorage, IMultiplicativeStat where T : struct, IComparable, IComparable, IEquatable, IConvertible, IFormattable { protected Func mult; protected Func divide; diff --git a/Player/ModdedPlayer/Stats/MultiplicativePlayerStat.cs b/Player/ModdedPlayer/Stats/MultiplicativePlayerStat.cs index 76053fe..8328e86 100644 --- a/Player/ModdedPlayer/Stats/MultiplicativePlayerStat.cs +++ b/Player/ModdedPlayer/Stats/MultiplicativePlayerStat.cs @@ -2,7 +2,7 @@ namespace ChampionsOfForest.Player { - public class MultiplicativePlayerStat : NumericPlayerStatBase where T : struct, IComparable, IComparable, IEquatable, IConvertible, IFormattable + public class MultiplicativePlayerStat : NumericPlayerStatBase, IMultiplicativeStat where T : struct, IComparable, IComparable, IEquatable, IConvertible, IFormattable { protected Func mult; protected Func divide; From 4e67724759536ce5867f1293ab4471ecd1431798 Mon Sep 17 00:00:00 2001 From: LamaMega Date: Sat, 12 Apr 2025 20:40:09 +0200 Subject: [PATCH 05/27] ItemDefinitons WIP --- .../EnemyProgression_Setup.cs | 4 +- Items/ItemDataBase_ItemDefinitions.cs | 120 +++++++++++++++++- Items/ItemTemplates.cs | 50 ++++++++ 3 files changed, 168 insertions(+), 6 deletions(-) diff --git a/Enemies/EnemyProgression/EnemyProgression_Setup.cs b/Enemies/EnemyProgression/EnemyProgression_Setup.cs index f9ce02c..ad13559 100644 --- a/Enemies/EnemyProgression/EnemyProgression_Setup.cs +++ b/Enemies/EnemyProgression/EnemyProgression_Setup.cs @@ -150,12 +150,10 @@ private void Setup() RollName(isElite); setupDifficulty = ModSettings.difficulty; //Assigning rest of stats - int dif = (int)setupDifficulty; DamageMult = level < 65 ? (Mathf.Pow(2.7182818284f,level/6) + level) //e^(x/6) + x : Mathf.Pow(level-60, 2.60f) * 600; - armor = Mathf.FloorToInt(Random.Range(Mathf.Pow(level, 2.43f) * 0.3333f + 1, Mathf.Pow(level, 2.43f) * 0.66666f + 20) * ModSettings.EnemyArmorMultiplier); - armor *= dif / 2 + 1; + armor = Mathf.FloorToInt(Random.Range(Mathf.Pow(level, 2.0f) * 0.3333f + 1, Mathf.Pow(level, 2.0f) * 0.66666f + 20) * ModSettings.EnemyArmorMultiplier); armorReduction = 0; //Set HP; diff --git a/Items/ItemDataBase_ItemDefinitions.cs b/Items/ItemDataBase_ItemDefinitions.cs index 25bad30..f8cd3bf 100644 --- a/Items/ItemDataBase_ItemDefinitions.cs +++ b/Items/ItemDataBase_ItemDefinitions.cs @@ -11,7 +11,7 @@ namespace ChampionsOfForest { - + public static partial class ItemDataBase { static Dictionary>> randomitemNamesPool; @@ -281,10 +281,124 @@ static List> GetShieldNames() mythicQualityNames }; return rarityNames; - } + } + public static void addNewItem() + { + //------------------------------------------------------ + //Rarity 0 (Grey) + //------------------------------------------------------ + new Shield() + .ShieldStatSlot(1) + .StatSlot(new Stat[] { BLOCK }) + .Name("Splintered Barrier") + .Description("Why is this shield still intact?") + .Rarity(0); + + new Shield() + .ShieldStatSlot(1) + .StatSlot(new Stat[] { BLOCK }) + .Name("Cracked Buckler") + .Description("Just throw it away.") + .Rarity(0); + + new Shield() + .ShieldStatSlot(1) + .StatSlot(new Stat[] { BLOCK }) + .Name("Ftactured Aegis") + .Description("You can still see the pieces falling off.") + .Rarity(0); + + new Shield() + .ShieldStatSlot(1) + .StatSlot(new Stat[] { BLOCK }) + .Name("Rusten Battered Shield") + .Description("Barely functional but better then empty handed.") + .Rarity(0); + + new Shield() + .ShieldStatSlot(1) + .StatSlot(new Stat[] { BLOCK }) + .Name("Shattered Guard") + .Description("No warior would pick this up and call it a shield.") + .Rarity(0); + + //------------------------------------------------------ + //Rarity 1 (White) + //------------------------------------------------------ + + new Shield() + .ShieldStatSlot(2) + .StatSlot(new Stat[] { BLOCK }) + .Name("Iron Shield") + .Description("Fuck you Hazard. ~Lama Mega~") + .Rarity(1); + + new Shield() + .ShieldStatSlot(1) + .StatSlot(new Stat[] { BLOCK }) + .StatSlot(new Stat[] { THORNS }) + .Name("Wooden Buckler") + .Description("Has a sticking out nail!") + .Rarity(1); + + new Shield() + .ShieldStatSlot(2) + .StatSlot(new Stat[] { BLOCK }) + .Name("Footman's Protection") + .Description("") + .Rarity(1); + + //------------------------------------------------------ + //Rarity 2 (Dark Blue) + //------------------------------------------------------ + + new Shield() + .ShieldStatSlot(3) + .StatSlot(new Stat[] { BLOCK }) + .StatSlot(new Stat[] { DODGECHANCE }) + .Name("Reinforced Buckler") + .Description("Light and small shield that allows you to dodge attacks.") + .Rarity(2); + + new Shield() + .ShieldStatSlot(3) + .StatSlot(new Stat[] { BLOCK }) + .StatSlot(new Stat[] { DODGECHANCE }) + .Name("Knight's Guard") + .Description("") + .Rarity(2); + + new Shield() + .ShieldStatSlot(3) + .StatSlot(new Stat[] { BLOCK }) + .StatSlot(new Stat[] { DODGECHANCE }) + .Name("Knight's Guard") + .Description("") + .Rarity(2); + + //------------------------------------------------------ + //Rarity 3 (Blue) + //------------------------------------------------------ + + //------------------------------------------------------ + //Rarity 4 (Yellow) + //------------------------------------------------------ + + //------------------------------------------------------ + //Rarity 5 (Orange) + //------------------------------------------------------ + + //------------------------------------------------------ + //Rarity 6 (Green) + //------------------------------------------------------ + + //------------------------------------------------------ + //Rarity 7 (Red) + //------------------------------------------------------ + } - public static void PopulateItems() + public static void PopulateItems() { new BaseItem(new int[][] { diff --git a/Items/ItemTemplates.cs b/Items/ItemTemplates.cs index 572b3c5..afb6954 100644 --- a/Items/ItemTemplates.cs +++ b/Items/ItemTemplates.cs @@ -235,9 +235,57 @@ public Material() public class Shield : ItemTemplateBuilder { + + private static readonly Stat[] shieldStatIds = + { + STRENGTH, + VITALITY, + MAXIMUMLIFE, + MAXIMUMENERGY, + LIFEPERSECOND, + STAMINAPERSECOND, + STAMINAREGENERATION, + LIFEREGENERATION, + DAMAGEREDUCTION, + CRITICALHITCHANCE, + CRITICALHITDAMAGE, + LIFEONHIT, + DODGECHANCE, + ARMOR, + RESISTANCETOMAGIC, + ATTACKSPEED, + MASSACREDURATION, + MELEEDAMAGEINCREASE, + BASEMELEEDAMAGE, + ALLHEALINGPERCENT, + MELEEWEAPONRANGE, + ATTACKCOSTREDUCTION, + SPELLCOSTREDUCTION, + SPELLCOSTTOSTAMINA, + ENERGYPERSECOND, + PERCENTMAXIMUMLIFE, + PERCENTMAXIMUMENERGY, + COOLDOWNREDUCTION, + ENERGYONHIT, + BLOCK, + MELEEARMORPIERCING, + THORNS, + SPEARDAMAGE, + }; + private static List shieldStats = null; + + public Shield ShieldStatSlot(int n = 1) + { + for (int i = 0; i < n; i++) + PossibleStats.Add(shieldStats); + return this; + } + public Shield() { type = ItemType.Shield; + if (shieldStats == null) + shieldStats = ToItemStatList(shieldStatIds); LevelRequirement(10); Icon(99); } @@ -406,6 +454,7 @@ public Amulet() type = ItemType.Amulet; if (amuletStats == null) amuletStats = ToItemStatList(amuletStatIds); + LevelRequirement(20); Icon(101); } @@ -470,6 +519,7 @@ public Ring() if (ringStats == null) ringStats = ToItemStatList(ringStatIds); Icon(90); + LevelRequirement(15); } public Ring RingStatSlot(int n = 1) From 6c94b5416707829024225d175fdd90728965521f Mon Sep 17 00:00:00 2001 From: "Hazard (Cyprian Skrzypczak)" Date: Sun, 13 Apr 2025 00:10:36 +0200 Subject: [PATCH 06/27] Stat updates continue --- Effects/Gold.cs | 4 +- Items/ItemDataBase_ItemDefinitions.cs | 671 +++++++++--------- Items/ItemDataBase_StatDefinitions.cs | 145 +++- Items/ItemDefinitions/Shields.cs | 11 + Items/ItemStat.cs | 31 +- Items/ItemTemplates.cs | 271 +++++-- Items/Sets/ItemSets.cs | 12 +- Items/StatActions.cs | 62 +- Items/UniqueItemFunctions.cs | 2 +- Player/BuffDataBase.cs | 10 +- Player/Main Menu/MainMenu_Guide.cs | 6 +- .../ModdedPlayer.ModdedPlayerStats.cs | 28 +- Player/ModdedPlayer/ModdedPlayer.cs | 4 +- .../Stats/AdditiveNetworkSyncedPlayerStat.cs | 2 +- .../ModdedPlayer/Stats/AdditivePlayerStat.cs | 2 +- .../ModdedPlayer/Stats/BooleanPlayerStat.cs | 2 +- Player/ModdedPlayer/Stats/Interfaces.cs | 2 +- .../Stats/MultiOperationPlayerStat.cs | 2 +- Player/Overrides/PlayerStatsEx.cs | 2 +- Player/Overrides/XBArrowDamageMod.cs | 4 +- Player/Perks/PerkDatabase.cs | 20 +- Player/Spells/SpellActions.cs | 8 +- 22 files changed, 761 insertions(+), 540 deletions(-) create mode 100644 Items/ItemDefinitions/Shields.cs diff --git a/Effects/Gold.cs b/Effects/Gold.cs index 538baae..7349ad0 100644 --- a/Effects/Gold.cs +++ b/Effects/Gold.cs @@ -62,8 +62,8 @@ public static void Enable() public static void Disable() { renderer.material = originalMaterial; - ModdedPlayer.Stats.stunImmunity.Substract(1); - ModdedPlayer.Stats.debuffResistance.Substract(1); + ModdedPlayer.Stats.stunImmunity.Sub(1); + ModdedPlayer.Stats.debuffResistance.Sub(1); ModdedPlayer.Stats.attackSpeed .Divide( 1.2f); if (ModdedPlayer.Stats.perk_goldenResolve) diff --git a/Items/ItemDataBase_ItemDefinitions.cs b/Items/ItemDataBase_ItemDefinitions.cs index f8cd3bf..21950b3 100644 --- a/Items/ItemDataBase_ItemDefinitions.cs +++ b/Items/ItemDataBase_ItemDefinitions.cs @@ -283,7 +283,7 @@ static List> GetShieldNames() return rarityNames; } - public static void addNewItem() + public static void AddShields() { //------------------------------------------------------ //Rarity 0 (Grey) @@ -291,34 +291,20 @@ public static void addNewItem() new Shield() .ShieldStatSlot(1) .StatSlot(new Stat[] { BLOCK }) - .Name("Splintered Barrier") - .Description("Why is this shield still intact?") + .Name("Rusten Battered Shield") + .Description("Covered in rust and scarred from countless blows, this battered shield has seen better days. It creaks with every movement, offering only the most basic protection.") .Rarity(0); new Shield() - .ShieldStatSlot(1) .StatSlot(new Stat[] { BLOCK }) .Name("Cracked Buckler") - .Description("Just throw it away.") - .Rarity(0); - - new Shield() - .ShieldStatSlot(1) - .StatSlot(new Stat[] { BLOCK }) - .Name("Ftactured Aegis") - .Description("You can still see the pieces falling off.") + .Description("Cracked and barely holding together, this old buckler offers little more than false hope. Its surface is marred with dents and splits from battles long forgotten.") .Rarity(0); + new Shield() - .ShieldStatSlot(1) - .StatSlot(new Stat[] { BLOCK }) - .Name("Rusten Battered Shield") - .Description("Barely functional but better then empty handed.") - .Rarity(0); - - new Shield() - .ShieldStatSlot(1) .StatSlot(new Stat[] { BLOCK }) + .StatSlot(new Stat[] { STRENGTH, NONE }) .Name("Shattered Guard") .Description("No warior would pick this up and call it a shield.") .Rarity(0); @@ -330,22 +316,23 @@ public static void addNewItem() new Shield() .ShieldStatSlot(2) .StatSlot(new Stat[] { BLOCK }) - .Name("Iron Shield") + .Name("Plain Iron Shield") .Description("Fuck you Hazard. ~Lama Mega~") .Rarity(1); new Shield() .ShieldStatSlot(1) .StatSlot(new Stat[] { BLOCK }) - .StatSlot(new Stat[] { THORNS }) + .StatSlot(new Stat[] { THORNS, BASEMELEEDAMAGE }) .Name("Wooden Buckler") - .Description("Has a sticking out nail!") + .Description("This shield has a precariously sticking out nail.") .Rarity(1); new Shield() - .ShieldStatSlot(2) + .ShieldStatSlot(1) + .DefaultStatSlot(1) .StatSlot(new Stat[] { BLOCK }) - .Name("Footman's Protection") + .Name("Footknights's Roundshield") .Description("") .Rarity(1); @@ -353,6 +340,14 @@ public static void addNewItem() //Rarity 2 (Dark Blue) //------------------------------------------------------ + new Shield() + .ShieldStatSlot(3) + .StatSlot(new Stat[] { BLOCK }) + .Name("Runed Iron Bulwark") + .Description("Fuck you Hazard. ~Lama Mega~") + .Rarity(1); + + new Shield() .ShieldStatSlot(3) .StatSlot(new Stat[] { BLOCK }) @@ -1073,7 +1068,7 @@ public static void PopulateItems() type = BaseItem.ItemType.ShoulderArmor, icon = Res.ResourceLoader.GetTexture(95), onEquip = () => { ModdedPlayer.Stats.spell_blinkRange.Add(40); ModdedPlayer.Stats.spell_blinkDamage.Add(60); }, - onUnequip = () => { ModdedPlayer.Stats.spell_blinkRange.Substract(40); ModdedPlayer.Stats.spell_blinkDamage.Substract(60); }, + onUnequip = () => { ModdedPlayer.Stats.spell_blinkRange.Sub(40); ModdedPlayer.Stats.spell_blinkDamage.Sub(60); }, }; new BaseItem(new int[][] { @@ -2900,7 +2895,7 @@ public static void PopulateItems() type = BaseItem.ItemType.Bracer, icon = Res.ResourceLoader.GetTexture(94), onEquip = () => ModdedPlayer.Stats.spell_portalDuration.Add(570), - onUnequip = () => ModdedPlayer.Stats.spell_portalDuration.Substract(570), + onUnequip = () => ModdedPlayer.Stats.spell_portalDuration.Sub(570), }; new BaseItem(new int[][] { @@ -2927,7 +2922,7 @@ public static void PopulateItems() type = BaseItem.ItemType.Glove, icon = Res.ResourceLoader.GetTexture(86), onEquip = () => ModdedPlayer.Stats.spell_magicArrowDuration.Add(15), - onUnequip = () => ModdedPlayer.Stats.spell_magicArrowDuration.Substract(15), + onUnequip = () => ModdedPlayer.Stats.spell_magicArrowDuration.Sub(15), }; new BaseItem(new int[][] @@ -3046,7 +3041,7 @@ public static void PopulateItems() type = BaseItem.ItemType.SpellScroll, icon = Res.ResourceLoader.GetTexture(110), onEquip = () => { ModdedPlayer.Stats.spell_snapDamageScaling.Add(250f); ModdedPlayer.Stats.spell_snapFreezeDuration.Add(2); }, - onUnequip = () => { ModdedPlayer.Stats.spell_snapDamageScaling.Substract(250f); ModdedPlayer.Stats.spell_snapFreezeDuration.Add(2); } + onUnequip = () => { ModdedPlayer.Stats.spell_snapDamageScaling.Sub(250f); ModdedPlayer.Stats.spell_snapFreezeDuration.Add(2); } }; new BaseItem(new int[][] { @@ -3235,7 +3230,7 @@ public static void PopulateItems() type = BaseItem.ItemType.Quiver, icon = Res.ResourceLoader.GetTexture(98), onEquip = () => ModdedPlayer.Stats.spell_focusOnAtkSpeedDuration.Add(16), - onUnequip = () => ModdedPlayer.Stats.spell_focusOnAtkSpeedDuration.Substract(16), + onUnequip = () => ModdedPlayer.Stats.spell_focusOnAtkSpeedDuration.Sub(16), }; new BaseItem(new int[][] { @@ -3266,7 +3261,7 @@ public static void PopulateItems() weaponModel = BaseItem.WeaponModelType.GreatSword, icon = Res.ResourceLoader.GetTexture(88), onEquip = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Add(15), - onUnequip = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Substract(15), + onUnequip = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Sub(15), }.PossibleStats[0][0].multipier = 5; BaseItem jaggedRipper = new BaseItem(new int[][] @@ -3296,7 +3291,7 @@ public static void PopulateItems() weaponModel = BaseItem.WeaponModelType.Axe, icon = Res.ResourceLoader.GetTexture(138), onEquip = () => ModdedPlayer.Stats.spell_bashBleedChance.Add(0.3f), - onUnequip = () => ModdedPlayer.Stats.spell_bashBleedChance.Substract(0.3f), + onUnequip = () => ModdedPlayer.Stats.spell_bashBleedChance.Sub(0.3f), }; jaggedRipper.PossibleStats[1][0].multipier = 2; @@ -3328,7 +3323,7 @@ public static void PopulateItems() weaponModel = BaseItem.WeaponModelType.LongSword, icon = Res.ResourceLoader.GetTexture(89), onEquip = () => ModdedPlayer.Stats.spell_bashLifesteal.Add(0.02f), - onUnequip = () => ModdedPlayer.Stats.spell_bashLifesteal.Substract(0.02f), + onUnequip = () => ModdedPlayer.Stats.spell_bashLifesteal.Sub(0.02f), }.PossibleStats[0][0].multipier = 3; new BaseItem(new int[][] { @@ -3537,7 +3532,7 @@ public static void PopulateItems() weaponModel = BaseItem.WeaponModelType.Greatbow, icon = Res.ResourceLoader.GetTexture(170), onEquip = () => ModdedPlayer.Stats.spell_bia_HealthDmMult.Add(100), - onUnequip = () => ModdedPlayer.Stats.spell_bia_HealthDmMult.Substract(100), + onUnequip = () => ModdedPlayer.Stats.spell_bia_HealthDmMult.Sub(100), }.PossibleStats[0][0].multipier = -1.7f; new BaseItem(new int[][] @@ -4778,10 +4773,10 @@ public static void PopulateItems() new [] {MELEEDMGFROMSTR}, new [] {STRENGTH}, new [] {BASEMELEEDAMAGE,MELEEDAMAGEINCREASE}, - new [] {MELEEARMORPIERCING,ARMORPIERCING,ALLATTRIBUTES}, + new [] {MELEEARMORPIERCING,ARMORPIERCING,ALL_ATTRIBUTES}, new [] {ATTACKCOSTREDUCTION,ATTACKSPEED}, new [] {ATTACKSPEED}, - new [] {ALLATTRIBUTES,MELEEWEAPONRANGE,VITALITY,MAXIMUMLIFE}, + new [] {ALL_ATTRIBUTES,MELEEWEAPONRANGE,VITALITY,MAX_LIFE}, new [] {ENERGYONHIT,VITALITY,LIFEONHIT } }) { @@ -4799,16 +4794,16 @@ public static void PopulateItems() new BaseItem(new Stat[][] { new [] {STRENGTH}, - new [] {STRENGTH,ALLATTRIBUTES,MELEEARMORPIERCING,MELEEDAMAGEINCREASE,COOLDOWNREDUCTION,SPELLDAMAGEINCREASE}, - new [] {MAXIMUMLIFE,VITALITY,PERCENTMAXIMUMLIFE,ALLATTRIBUTES}, - new [] {MELEEDAMAGEINCREASE,DAMAGEREDUCTION}, + new [] {STRENGTH,ALL_ATTRIBUTES,MELEEARMORPIERCING,MELEEDAMAGEINCREASE,COOLDOWNREDUCTION,SPELLDAMAGEINCREASE}, + new [] {MAX_LIFE,VITALITY,PERCENTMAXIMUMLIFE,ALL_ATTRIBUTES}, + new [] {MELEEDAMAGEINCREASE,DAMAGE_REDUCTION}, new [] {THORNS}, - new [] {VITALITY,LIFEPERSECOND,LIFEREGENERATION}, - new [] {VITALITY,LIFEPERSECOND,LIFEREGENERATION,THORNS}, + new [] {VITALITY,LIFE_REGEN_BASE,LIFE_REGEN_MULT}, + new [] {VITALITY,LIFE_REGEN_BASE,LIFE_REGEN_MULT,THORNS}, new [] {ALL}, new [] {ALL}, new [] {ALL}, - new [] {ENERGYPERSECOND,MAXIMUMENERGY,DODGECHANCE,ARMOR,}, + new [] {ENERGYPERSECOND,MAX_ENERGY,DODGECHANCE,ARMOR,}, new [] {STRENGTH,INTELLIGENCE,ARMOR,ARMORPIERCING,THORNS,} }) { @@ -4821,7 +4816,7 @@ public static void PopulateItems() CanConsume = false, StackSize = 1, onEquip = () => ModdedPlayer.Stats.thornsPerVit.Add(9), - onUnequip = () => ModdedPlayer.Stats.thornsPerVit.Substract(9), + onUnequip = () => ModdedPlayer.Stats.thornsPerVit.Sub(9), type = BaseItem.ItemType.Glove, icon = Res.ResourceLoader.GetTexture(86), }; @@ -4856,8 +4851,8 @@ public static void PopulateItems() new [] {SPELLDAMAGEINCREASE,BASESPELLDAMAGE}, new [] {MAXENERGYFROMAGI,SPELLDMGFROMINT,RANGEDDMGFROMAGI}, new [] {ARMOR}, - new [] {VITALITY,LIFEPERSECOND,LIFEREGENERATION,INTELLIGENCE,AGILITY,STRENGTH,ALLATTRIBUTES}, - new [] {COOLDOWNREDUCTION,SPELLCOSTREDUCTION,SPELLCOSTTOSTAMINA,MOVEMENTSPEED,DAMAGEREDUCTION}, + new [] {VITALITY,LIFE_REGEN_BASE,LIFE_REGEN_MULT,INTELLIGENCE,AGILITY,STRENGTH,ALL_ATTRIBUTES}, + new [] {COOLDOWNREDUCTION,SPELLCOSTREDUCTION,SPELLCOSTTOSTAMINA,MOVEMENTSPEED,DAMAGE_REDUCTION}, new [] {ALL}, new [] {ALL}, new [] {ALL}, @@ -4874,17 +4869,17 @@ public static void PopulateItems() CanConsume = false, StackSize = 1, onEquip = () => ModdedPlayer.Stats.spell_magicArrowDamageScaling.Add(16.66f), - onUnequip = () => ModdedPlayer.Stats.spell_magicArrowDamageScaling.Substract(16.66f), + onUnequip = () => ModdedPlayer.Stats.spell_magicArrowDamageScaling.Sub(16.66f), type = BaseItem.ItemType.Bracer, icon = Res.ResourceLoader.GetTexture(93), }; new BaseItem(new Stat[][] { new [] {INTELLIGENCE,AGILITY}, - new [] {CRITICALHITCHANCE}, - new [] {CRITICALHITDAMAGE}, - new [] {VITALITY,LIFEPERSECOND,LIFEREGENERATION,INTELLIGENCE,AGILITY,STRENGTH,ALLATTRIBUTES}, - new [] {COOLDOWNREDUCTION,SPELLCOSTREDUCTION,SPELLCOSTTOSTAMINA,MOVEMENTSPEED,DAMAGEREDUCTION}, + new [] {CRIT_CHANCE}, + new [] {CRIT_DAMAGE}, + new [] {VITALITY,LIFE_REGEN_BASE,LIFE_REGEN_MULT,INTELLIGENCE,AGILITY,STRENGTH,ALL_ATTRIBUTES}, + new [] {COOLDOWNREDUCTION,SPELLCOSTREDUCTION,SPELLCOSTTOSTAMINA,MOVEMENTSPEED,DAMAGE_REDUCTION}, new [] {ALL}, new [] {ALL}, new [] {ALL}, @@ -4903,7 +4898,7 @@ public static void PopulateItems() CanConsume = false, StackSize = 1, onEquip = () => ModdedPlayer.Stats.spell_magicArrowVolleyCount.Add(3), - onUnequip = () => ModdedPlayer.Stats.spell_magicArrowVolleyCount.Substract(3), + onUnequip = () => ModdedPlayer.Stats.spell_magicArrowVolleyCount.Sub(3), type = BaseItem.ItemType.Ring, icon = Res.ResourceLoader.GetTexture(90), }; @@ -4933,7 +4928,7 @@ public static void PopulateItems() new [] {BASERANGEDDAMAGE,RANGEDDAMAGEINCREASE}, new [] {SPEARDAMAGE}, new [] {PROJECTILESPEED}, - new [] {ALLATTRIBUTES,PROJECTILESIZE,LESSERAGILITY}, + new [] {ALL_ATTRIBUTES,PROJECTILESIZE,LESSERAGILITY}, new [] {ENERGYONHIT,VITALITY,LIFEONHIT } }) { @@ -4950,12 +4945,12 @@ public static void PopulateItems() new BaseItem(new Stat[][] { new [] {STRENGTH}, - new [] {MAXIMUMLIFE, VITALITY,PERCENTMAXIMUMLIFE}, + new [] {MAX_LIFE, VITALITY,PERCENTMAXIMUMLIFE}, new [] {MELEEARMORPIERCING, MELEEDAMAGEINCREASE,BASEMELEEDAMAGE}, new [] {MELEEDAMAGEINCREASE,BASEMELEEDAMAGE}, - new [] {ATTACKSPEED, CRITICALHITDAMAGE,CRITICALHITCHANCE}, - new [] {MAXENERGYFROMAGI,PERCENTMAXIMUMENERGY,ENERGYONHIT,LIFEONHIT,LIFEPERSECOND,LIFEREGENERATION,STAMINAPERSECOND,STAMINAREGENERATION}, - new [] {ARMOR,THORNS,DAMAGEREDUCTION,PERCENTMAXIMUMLIFE}, + new [] {ATTACKSPEED, CRIT_DAMAGE,CRIT_CHANCE}, + new [] {MAXENERGYFROMAGI,PERCENTMAXIMUMENERGY,ENERGYONHIT,LIFEONHIT,LIFE_REGEN_BASE,LIFE_REGEN_MULT,STAMINA_REGEN_BASE,STAMINA_AND_ENERGY_REGEN_MULT}, + new [] {ARMOR,THORNS,DAMAGE_REDUCTION,PERCENTMAXIMUMLIFE}, new [] {ALL}, new [] {ALL}, @@ -4976,9 +4971,9 @@ public static void PopulateItems() var SomeItem = new BaseItem(new Stat[][] { new [] {STRENGTH}, - new [] {MAXIMUMLIFE, VITALITY,MAXHEALTHFROMVIT,PERCENTMAXIMUMLIFE}, + new [] {MAX_LIFE, VITALITY,MAXHEALTHFROMVIT,PERCENTMAXIMUMLIFE}, new [] {MELEEARMORPIERCING, MELEEDAMAGEINCREASE,BASEMELEEDAMAGE,ATTACKSPEED}, - new [] {SPELLCOSTREDUCTION, CRITICALHITDAMAGE,CRITICALHITCHANCE}, + new [] {SPELLCOSTREDUCTION, CRIT_DAMAGE,CRIT_CHANCE}, new [] {ALL}, new [] {STRENGTH, THORNS}, }) @@ -4999,8 +4994,8 @@ public static void PopulateItems() var demoVestItem = new BaseItem(new Stat[][] { new [] {EXPLOSIONDAMAGE}, - new [] {AGILITY,INTELLIGENCE, ALLATTRIBUTES}, - new [] {MAXIMUMLIFE, VITALITY, LIFEONHIT}, + new [] {AGILITY,INTELLIGENCE, ALL_ATTRIBUTES}, + new [] {MAX_LIFE, VITALITY, LIFEONHIT}, new [] {ALLHEALINGPERCENT}, new [] {ALL}, new [] {MELEEWEAPONRANGE,ENERGYONHIT,ARMORPIERCING, DODGECHANCE}, @@ -5024,13 +5019,13 @@ public static void PopulateItems() } new BaseItem(new Stat[][] { - new [] {STRENGTH,ALLATTRIBUTES,BASEMELEEDAMAGE}, - new [] {MAXIMUMLIFE, VITALITY,DAMAGEREDUCTION,MELEEWEAPONRANGE}, + new [] {STRENGTH,ALL_ATTRIBUTES,BASEMELEEDAMAGE}, + new [] {MAX_LIFE, VITALITY,DAMAGE_REDUCTION,MELEEWEAPONRANGE}, new [] {MELEEARMORPIERCING, MELEEDAMAGEINCREASE}, new [] {MELEEDAMAGEINCREASE,MELEEDMGFROMSTR}, - new [] {SPELLCOSTREDUCTION, CRITICALHITDAMAGE}, + new [] {SPELLCOSTREDUCTION, CRIT_DAMAGE}, new [] {ALL}, - new [] {STRENGTH,THORNS,BASEMELEEDAMAGE,CRITICALHITCHANCE,ATTACKSPEED,MELEEWEAPONRANGE}, + new [] {STRENGTH,THORNS,BASEMELEEDAMAGE,CRIT_CHANCE,ATTACKSPEED,MELEEWEAPONRANGE}, new [] {ARMOR}, }) @@ -5046,13 +5041,13 @@ public static void PopulateItems() }; new BaseItem(new Stat[][] { - new [] {ALLATTRIBUTES,STRENGTH,AGILITY,INTELLIGENCE}, - new [] {MAXIMUMLIFE, VITALITY,STRENGTH,INTELLIGENCE}, + new [] {ALL_ATTRIBUTES,STRENGTH,AGILITY,INTELLIGENCE}, + new [] {MAX_LIFE, VITALITY,STRENGTH,INTELLIGENCE}, new [] {MELEEARMORPIERCING, MELEEDAMAGEINCREASE,RANGEDDAMAGEINCREASE,BASERANGEDDAMAGE,RANGEDARMORPIERCING}, - new [] {SPELLCOSTREDUCTION, CRITICALHITDAMAGE,CRITICALHITCHANCE,SPELLDAMAGEINCREASE,COOLDOWNREDUCTION}, + new [] {SPELLCOSTREDUCTION, CRIT_DAMAGE,CRIT_CHANCE,SPELLDAMAGEINCREASE,COOLDOWNREDUCTION}, new [] {ARMORPIERCING}, new [] {ALL}, - new [] {ARMOR,DAMAGEREDUCTION,RESISTANCETOMAGIC,VITALITY,LESSERVITALITY}, + new [] {ARMOR,DAMAGE_REDUCTION,RESISTANCETOMAGIC,VITALITY,LESSERVITALITY}, }) { @@ -5074,7 +5069,7 @@ public static void PopulateItems() new [] {BASERANGEDDAMAGE}, new [] {BASERANGEDDAMAGE,NONE}, new [] {PROJECTILESIZE,LESSERAGILITY,AGILITY}, - new [] {PROJECTILESPEED,CRITICALHITCHANCE,CRITICALHITDAMAGE}, + new [] {PROJECTILESPEED,CRIT_CHANCE,CRIT_DAMAGE}, new [] {AGILITY,NONE}, new [] {RANGEDARMORPIERCING, ARMORPIERCING,ENERGYONHIT}, new [] {ALL}, @@ -5095,7 +5090,7 @@ public static void PopulateItems() new BaseItem(new Stat[][] { new [] {STRENGTH,LESSERSTRENGTH}, - new [] {MAXIMUMLIFE, VITALITY,MELEEDMGFROMSTR,ARMOR}, + new [] {MAX_LIFE, VITALITY,MELEEDMGFROMSTR,ARMOR}, new [] {MELEEARMORPIERCING, MELEEDAMAGEINCREASE}, }) @@ -5113,9 +5108,9 @@ public static void PopulateItems() new BaseItem(new Stat[][] { new [] {MELEEDAMAGEINCREASE,MELEEDMGFROMSTR}, - new [] {MAXIMUMLIFE, VITALITY,MELEEDAMAGEINCREASE,BASEMELEEDAMAGE}, + new [] {MAX_LIFE, VITALITY,MELEEDAMAGEINCREASE,BASEMELEEDAMAGE}, new [] {MELEEARMORPIERCING, MELEEDAMAGEINCREASE,MELEEWEAPONRANGE,ARMOR}, - new [] {SPELLCOSTREDUCTION, CRITICALHITDAMAGE,CRITICALHITCHANCE}, + new [] {SPELLCOSTREDUCTION, CRIT_DAMAGE,CRIT_CHANCE}, new [] {ALL}, new [] {STRENGTH,LESSERSTRENGTH}, @@ -5133,9 +5128,9 @@ public static void PopulateItems() new BaseItem(new Stat[][] { new [] {STRENGTH}, - new [] {MAXIMUMLIFE, VITALITY}, + new [] {MAX_LIFE, VITALITY}, new [] {MELEEARMORPIERCING, MELEEDAMAGEINCREASE}, - new [] {SPELLCOSTREDUCTION, CRITICALHITDAMAGE}, + new [] {SPELLCOSTREDUCTION, CRIT_DAMAGE}, new [] {STRENGTH}, }) @@ -5177,10 +5172,10 @@ public static void PopulateItems() }.PossibleStats[0][0].multipier = 7f; new BaseItem(new Stat[][] { - new [] {STRENGTH,VITALITY,AGILITY,ALLATTRIBUTES,INTELLIGENCE}, + new [] {STRENGTH,VITALITY,AGILITY,ALL_ATTRIBUTES,INTELLIGENCE}, new [] {MAXENERGYFROMAGI,MELEEDMGFROMSTR,SPELLDMGFROMINT,RANGEDDMGFROMAGI,MAXHEALTHFROMVIT}, - new [] {ARMOR,DAMAGEREDUCTION}, - new [] { CRITICALHITCHANCE, CRITICALHITDAMAGE}, + new [] {ARMOR,DAMAGE_REDUCTION}, + new [] { CRIT_CHANCE, CRIT_DAMAGE}, new [] {ALL}, new [] {ALL}, new [] {ALL}, @@ -5206,14 +5201,14 @@ public static void PopulateItems() new BaseItem(new Stat[][] { new [] {ARMOR}, - new [] {MAXIMUMLIFE, VITALITY}, - new [] {CRITICALHITCHANCE, CRITICALHITDAMAGE,ATTACKSPEED,BASESPELLDAMAGE,STAMINAPERSECOND}, + new [] {MAX_LIFE, VITALITY}, + new [] {CRIT_CHANCE, CRIT_DAMAGE,ATTACKSPEED,BASESPELLDAMAGE,STAMINA_REGEN_BASE}, new [] {ALL}, new [] {ALL}, new [] {ALL}, new [] {ALL}, new [] {ALL}, - new [] {ALLATTRIBUTES}, + new [] {ALL_ATTRIBUTES}, new [] {EXPLOSIONDAMAGE}, new [] {EXPLOSIONDAMAGE}, @@ -5233,8 +5228,8 @@ public static void PopulateItems() new BaseItem(new Stat[][] { new [] {ARMOR}, - new [] {MAXIMUMLIFE, VITALITY}, - new [] {CRITICALHITCHANCE, CRITICALHITDAMAGE,ATTACKSPEED,BASESPELLDAMAGE,STAMINAPERSECOND}, + new [] {MAX_LIFE, VITALITY}, + new [] {CRIT_CHANCE, CRIT_DAMAGE,ATTACKSPEED,BASESPELLDAMAGE,STAMINA_REGEN_BASE}, new [] {ALL}, new [] {ALL}, new [] {ALL}, @@ -5264,7 +5259,7 @@ public static void PopulateItems() new [] {ALL}, new [] {ALL}, new [] {ALL}, - new [] {MAXIMUMLIFE, VITALITY,ARMOR,PERCENTMAXIMUMLIFE,PERCENTMAXIMUMENERGY,MAXHEALTHFROMVIT,THORNS,RESISTANCETOMAGIC}, + new [] {MAX_LIFE, VITALITY,ARMOR,PERCENTMAXIMUMLIFE,PERCENTMAXIMUMENERGY,MAXHEALTHFROMVIT,THORNS,RESISTANCETOMAGIC}, new [] {JUMPPOWER}, new [] {MOVEMENTSPEED}, new [] {EMPTYSOCKET}, @@ -5290,7 +5285,7 @@ public static void PopulateItems() new [] {ALL}, new [] {ALL}, new [] {ALL}, - new [] {MAXIMUMLIFE, VITALITY,ARMOR,PERCENTMAXIMUMLIFE,PERCENTMAXIMUMENERGY,MAXHEALTHFROMVIT,THORNS,RESISTANCETOMAGIC}, + new [] {MAX_LIFE, VITALITY,ARMOR,PERCENTMAXIMUMLIFE,PERCENTMAXIMUMENERGY,MAXHEALTHFROMVIT,THORNS,RESISTANCETOMAGIC}, new [] {EMPTYSOCKET}, new [] {EMPTYSOCKET}, new [] {EXPLOSIONDAMAGE}, @@ -5310,9 +5305,9 @@ public static void PopulateItems() new BaseItem(new Stat[][] { new [] {ALL}, - new [] {MAXIMUMLIFE, VITALITY,ARMOR}, + new [] {MAX_LIFE, VITALITY,ARMOR}, new [] {MELEEARMORPIERCING, RANGEDARMORPIERCING}, - new [] {ARMOR, ALLATTRIBUTES,VITALITY,LESSERVITALITY}, + new [] {ARMOR, ALL_ATTRIBUTES,VITALITY,LESSERVITALITY}, new [] {EXTRACARRIEDSTICKS,EXTRACARRIEDROCKS,EXTRACARRIEDROPES}, new [] {EXPLOSIONDAMAGE}, new [] {EXPLOSIONDAMAGE}, @@ -5355,7 +5350,7 @@ public static void PopulateItems() new BaseItem(new Stat[][] { - new [] {CRITICALHITCHANCE}, + new [] {CRIT_CHANCE}, new [] {MAGICFIND,NONE,EXPGAIN}, new [] {RANGEDDAMAGEINCREASE,MELEEDAMAGEINCREASE}, new [] {STRENGTH,AGILITY}, @@ -5363,7 +5358,7 @@ public static void PopulateItems() new [] {CHANCEONHITTOBLEED}, new [] {CHANCEONHITTOSLOW}, new [] {CHANCEONHITTOWEAKEN}, - new [] {MAXENERGYFROMAGI,FIREDAMAGE,CRITICALHITDAMAGE,RANGEDDMGFROMAGI,MELEEDMGFROMSTR}, + new [] {MAXENERGYFROMAGI,FIREDAMAGE,CRIT_DAMAGE,RANGEDDMGFROMAGI,MELEEDMGFROMSTR}, }) @@ -5382,7 +5377,7 @@ public static void PopulateItems() new [] {SPELLDAMAGEINCREASE}, new [] {INTELLIGENCE}, new [] {COOLDOWNREDUCTION}, - new [] {ALLATTRIBUTES, INTELLIGENCE,SPELLDAMAGEINCREASE}, + new [] {ALL_ATTRIBUTES, INTELLIGENCE,SPELLDAMAGEINCREASE}, new [] {SPELLDMGFROMINT,MAXENERGYFROMAGI}, new [] {BASESPELLDAMAGE}, new [] {PERCENTMAXIMUMENERGY,ENERGYONHIT,ENERGYPERSECOND}, @@ -5402,16 +5397,16 @@ public static void PopulateItems() }; new BaseItem(new Stat[][] { - new [] {MELEEDMGFROMSTR,ALLATTRIBUTES,STAMINAPERSECOND,STAMINAREGENERATION,DODGECHANCE}, + new [] {MELEEDMGFROMSTR,ALL_ATTRIBUTES,STAMINA_REGEN_BASE,STAMINA_AND_ENERGY_REGEN_MULT,DODGECHANCE}, new [] {STRENGTH,LESSERSTRENGTH,VITALITY,ARMOR}, new [] {MELEEWEAPONRANGE,BASERANGEDDAMAGE,BASEMELEEDAMAGE}, new [] {VITALITY}, new [] {MAXHEALTHFROMVIT,MAXENERGYFROMAGI}, - new [] {LIFEPERSECOND}, + new [] {LIFE_REGEN_BASE}, new [] {LIFEONHIT}, new [] {ENERGYONHIT,ENERGYPERSECOND,INTELLIGENCE,AGILITY}, - new [] {MAXIMUMLIFE}, - new [] {PERCENTMAXIMUMLIFE,CRITICALHITCHANCE}, + new [] {MAX_LIFE}, + new [] {PERCENTMAXIMUMLIFE,CRIT_CHANCE}, }) { name = Translations.ItemDataBase_ItemDefinitions_416/*Life Ring*/, //tr @@ -5426,17 +5421,17 @@ public static void PopulateItems() new BaseItem(new Stat[][] { new [] {STRENGTH}, - new [] {MOVEMENTSPEED,DODGECHANCE,DAMAGEREDUCTION}, - new [] {VITALITY,MAXHEALTHFROMVIT,MAXIMUMLIFE,PERCENTMAXIMUMLIFE,ARMOR}, - new [] {INTELLIGENCE,MAXENERGYFROMAGI,PERCENTMAXIMUMENERGY,MAXIMUMENERGY,BASEMELEEDAMAGE,MELEEDAMAGEINCREASE,ARMOR,DAMAGEREDUCTION}, + new [] {MOVEMENTSPEED,DODGECHANCE,DAMAGE_REDUCTION}, + new [] {VITALITY,MAXHEALTHFROMVIT,MAX_LIFE,PERCENTMAXIMUMLIFE,ARMOR}, + new [] {INTELLIGENCE,MAXENERGYFROMAGI,PERCENTMAXIMUMENERGY,MAX_ENERGY,BASEMELEEDAMAGE,MELEEDAMAGEINCREASE,ARMOR,DAMAGE_REDUCTION}, new [] {MELEEARMORPIERCING,MELEEDAMAGEINCREASE}, new [] {ARMOR,ATTACKSPEED,STRENGTH}, new [] {BASEMELEEDAMAGE}, new [] {BASEMELEEDAMAGE,MELEEDAMAGEINCREASE}, new [] {MELEEDAMAGEINCREASE,MELEEDMGFROMSTR}, - new [] {CRITICALHITCHANCE,MELEEWEAPONRANGE,ATTACKSPEED}, - new [] {CRITICALHITDAMAGE, MELEEDAMAGEINCREASE, STRENGTH}, - new [] {ENERGYONHIT,ENERGYPERSECOND,MAXIMUMLIFE}, + new [] {CRIT_CHANCE,MELEEWEAPONRANGE,ATTACKSPEED}, + new [] {CRIT_DAMAGE, MELEEDAMAGEINCREASE, STRENGTH}, + new [] {ENERGYONHIT,ENERGYPERSECOND,MAX_LIFE}, }) { name = Translations.ItemDataBase_ItemDefinitions_417/*Moritz's Gear*/, //tr @@ -5451,15 +5446,15 @@ public static void PopulateItems() new BaseItem(new Stat[][] { new [] {STRENGTH,BASEMELEEDAMAGE,MELEEDAMAGEINCREASE,ATTACKSPEED}, - new [] {MOVEMENTSPEED,DODGECHANCE,DAMAGEREDUCTION}, - new [] {VITALITY,MAXHEALTHFROMVIT,MAXIMUMLIFE,PERCENTMAXIMUMLIFE,MELEEARMORPIERCING}, - new [] {INTELLIGENCE,STRENGTH,CRITICALHITDAMAGE,PERCENTMAXIMUMENERGY,MAXIMUMENERGY}, + new [] {MOVEMENTSPEED,DODGECHANCE,DAMAGE_REDUCTION}, + new [] {VITALITY,MAXHEALTHFROMVIT,MAX_LIFE,PERCENTMAXIMUMLIFE,MELEEARMORPIERCING}, + new [] {INTELLIGENCE,STRENGTH,CRIT_DAMAGE,PERCENTMAXIMUMENERGY,MAX_ENERGY}, new [] {BASEMELEEDAMAGE}, new [] {BASEMELEEDAMAGE,MELEEDAMAGEINCREASE}, new [] {MELEEDAMAGEINCREASE,MELEEDMGFROMSTR}, - new [] {CRITICALHITCHANCE,MELEEWEAPONRANGE}, - new [] {CRITICALHITDAMAGE, MELEEDAMAGEINCREASE, STRENGTH}, - new [] {ENERGYONHIT,ENERGYPERSECOND,MAXIMUMLIFE}, + new [] {CRIT_CHANCE,MELEEWEAPONRANGE}, + new [] {CRIT_DAMAGE, MELEEDAMAGEINCREASE, STRENGTH}, + new [] {ENERGYONHIT,ENERGYPERSECOND,MAX_LIFE}, }) { name = Translations.ItemDataBase_ItemDefinitions_418/*Band of Hurting*/, //tr @@ -5476,9 +5471,9 @@ public static void PopulateItems() new BaseItem(new Stat[][] { new [] {AGILITY,RANGEDDAMAGEINCREASE}, - new [] {ALLATTRIBUTES, ARMOR,PERCENTMAXIMUMLIFE}, - new [] {CRITICALHITCHANCE}, - new [] {CRITICALHITDAMAGE,NONE}, + new [] {ALL_ATTRIBUTES, ARMOR,PERCENTMAXIMUMLIFE}, + new [] {CRIT_CHANCE}, + new [] {CRIT_DAMAGE,NONE}, }) { name = Translations.ItemDataBase_ItemDefinitions_420/*Straw Hat*/, //tr @@ -5493,7 +5488,7 @@ public static void PopulateItems() new BaseItem(new Stat[][] { new [] {INTELLIGENCE}, - new [] {ALLATTRIBUTES, ARMOR,ENERGYONHIT}, + new [] {ALL_ATTRIBUTES, ARMOR,ENERGYONHIT}, new [] {BASESPELLDAMAGE}, new [] {FIREDAMAGE,SPELLDAMAGEINCREASE,SPELLCOSTREDUCTION}, }) @@ -5511,7 +5506,7 @@ public static void PopulateItems() { new [] {SPEARDAMAGE}, new [] {AGILITY}, - new [] {STAMINAPERSECOND}, + new [] {STAMINA_REGEN_BASE}, }) { name = Translations.ItemDataBase_ItemDefinitions_421/*Rusty Javelin*/, //tr @@ -5527,8 +5522,8 @@ public static void PopulateItems() new BaseItem(new Stat[][] { new [] {INTELLIGENCE}, - new [] {DODGECHANCE,DAMAGEREDUCTION}, - new [] {VITALITY,MAXHEALTHFROMVIT,MAXIMUMLIFE,PERCENTMAXIMUMLIFE}, + new [] {DODGECHANCE,DAMAGE_REDUCTION}, + new [] {VITALITY,MAXHEALTHFROMVIT,MAX_LIFE,PERCENTMAXIMUMLIFE}, new [] {SPELLDMGFROMINT}, new [] {SPELLCOSTREDUCTION,COOLDOWNREDUCTION}, new [] {SPELLCOSTREDUCTION,COOLDOWNREDUCTION}, @@ -5537,7 +5532,7 @@ public static void PopulateItems() new [] {BASESPELLDAMAGE,SPELLDAMAGEINCREASE,INTELLIGENCE}, new [] {BASESPELLDAMAGE,SPELLDAMAGEINCREASE,INTELLIGENCE}, new [] {BASESPELLDAMAGE,SPELLDAMAGEINCREASE,INTELLIGENCE}, - new [] {ENERGYONHIT,ENERGYPERSECOND,MAXIMUMLIFE}, + new [] {ENERGYONHIT,ENERGYPERSECOND,MAX_LIFE}, }) { name = Translations.ItemDataBase_ItemDefinitions_422/*Star Robe*/, //tr @@ -5553,16 +5548,16 @@ public static void PopulateItems() { new [] {ATTACKSPEED}, new [] {BASESPELLDAMAGE}, - new [] {DODGECHANCE,DAMAGEREDUCTION,MELEEWEAPONRANGE,ARMORPIERCING,FIREDAMAGE,CRITICALHITCHANCE}, - new [] {VITALITY,MAXHEALTHFROMVIT,MAXIMUMLIFE,PERCENTMAXIMUMLIFE,LIFEPERSECOND,LIFEONHIT}, + new [] {DODGECHANCE,DAMAGE_REDUCTION,MELEEWEAPONRANGE,ARMORPIERCING,FIREDAMAGE,CRIT_CHANCE}, + new [] {VITALITY,MAXHEALTHFROMVIT,MAX_LIFE,PERCENTMAXIMUMLIFE,LIFE_REGEN_BASE,LIFEONHIT}, new [] {SPELLDMGFROMINT}, - new [] {SPELLCOSTREDUCTION,COOLDOWNREDUCTION,CRITICALHITCHANCE,CRITICALHITDAMAGE}, - new [] {SPELLCOSTREDUCTION,COOLDOWNREDUCTION,SPELLCOSTTOSTAMINA,PERCENTMAXIMUMENERGY,LIFEREGENERATION}, + new [] {SPELLCOSTREDUCTION,COOLDOWNREDUCTION,CRIT_CHANCE,CRIT_DAMAGE}, + new [] {SPELLCOSTREDUCTION,COOLDOWNREDUCTION,SPELLCOSTTOSTAMINA,PERCENTMAXIMUMENERGY,LIFE_REGEN_MULT}, new [] {ENERGYPERSECOND,PERCENTMAXIMUMENERGY,MAXENERGYFROMAGI}, - new [] {INTELLIGENCE,STAMINAPERSECOND,STAMINAREGENERATION}, - new [] {BASESPELLDAMAGE,SPELLDAMAGEINCREASE,INTELLIGENCE,BASEMELEEDAMAGE,ALLATTRIBUTES}, - new [] {BASESPELLDAMAGE,SPELLDAMAGEINCREASE,INTELLIGENCE,DAMAGEREDUCTION}, - new [] {ENERGYONHIT,ENERGYPERSECOND,MAXIMUMLIFE,MASSACREDURATION,MAGICFIND,EXPLOSIONDAMAGE}, + new [] {INTELLIGENCE,STAMINA_REGEN_BASE,STAMINA_AND_ENERGY_REGEN_MULT}, + new [] {BASESPELLDAMAGE,SPELLDAMAGEINCREASE,INTELLIGENCE,BASEMELEEDAMAGE,ALL_ATTRIBUTES}, + new [] {BASESPELLDAMAGE,SPELLDAMAGEINCREASE,INTELLIGENCE,DAMAGE_REDUCTION}, + new [] {ENERGYONHIT,ENERGYPERSECOND,MAX_LIFE,MASSACREDURATION,MAGICFIND,EXPLOSIONDAMAGE}, }) { name = Translations.ItemDataBase_ItemDefinitions_423/*Anger*/, //tr @@ -5577,7 +5572,7 @@ public static void PopulateItems() weaponModel = BaseItem.WeaponModelType.LongSword, icon = Res.ResourceLoader.GetTexture(88), onEquip = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Add(15), - onUnequip = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Substract(15), + onUnequip = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Sub(15), }.PossibleStats[0][0].multipier = 1.5f; @@ -5586,15 +5581,15 @@ public static void PopulateItems() new[] { ARMOR }, new[] { MOVEMENTSPEED}, new[] { SPELLDMGFROMINT }, - new[] { SPELLCOSTREDUCTION,SPELLCOSTTOSTAMINA,ARMOR,ALLATTRIBUTES}, - new[] { BASESPELLDAMAGE, SPELLDAMAGEINCREASE, INTELLIGENCE, ALLATTRIBUTES }, - new[] { BASESPELLDAMAGE, SPELLDAMAGEINCREASE, INTELLIGENCE, DAMAGEREDUCTION }, - new[] { VITALITY, MAXHEALTHFROMVIT, MAXIMUMLIFE, PERCENTMAXIMUMLIFE, LIFEPERSECOND, LIFEONHIT }, - new[] { SPELLCOSTREDUCTION, COOLDOWNREDUCTION, CRITICALHITCHANCE, CRITICALHITDAMAGE, ARMOR,MAXHEALTHFROMVIT }, - new[] { SPELLCOSTREDUCTION, COOLDOWNREDUCTION, SPELLCOSTTOSTAMINA, PERCENTMAXIMUMENERGY, LIFEREGENERATION }, + new[] { SPELLCOSTREDUCTION,SPELLCOSTTOSTAMINA,ARMOR,ALL_ATTRIBUTES}, + new[] { BASESPELLDAMAGE, SPELLDAMAGEINCREASE, INTELLIGENCE, ALL_ATTRIBUTES }, + new[] { BASESPELLDAMAGE, SPELLDAMAGEINCREASE, INTELLIGENCE, DAMAGE_REDUCTION }, + new[] { VITALITY, MAXHEALTHFROMVIT, MAX_LIFE, PERCENTMAXIMUMLIFE, LIFE_REGEN_BASE, LIFEONHIT }, + new[] { SPELLCOSTREDUCTION, COOLDOWNREDUCTION, CRIT_CHANCE, CRIT_DAMAGE, ARMOR,MAXHEALTHFROMVIT }, + new[] { SPELLCOSTREDUCTION, COOLDOWNREDUCTION, SPELLCOSTTOSTAMINA, PERCENTMAXIMUMENERGY, LIFE_REGEN_MULT }, new[] { ENERGYPERSECOND, PERCENTMAXIMUMENERGY, MAXENERGYFROMAGI }, - new[] { INTELLIGENCE, STAMINAPERSECOND, STAMINAREGENERATION, ALLATTRIBUTES, ALLHEALINGPERCENT }, - new[] { ENERGYONHIT, ENERGYPERSECOND, MAXIMUMLIFE, MASSACREDURATION, MAGICFIND, EXPLOSIONDAMAGE }, + new[] { INTELLIGENCE, STAMINA_REGEN_BASE, STAMINA_AND_ENERGY_REGEN_MULT, ALL_ATTRIBUTES, ALLHEALINGPERCENT }, + new[] { ENERGYONHIT, ENERGYPERSECOND, MAX_LIFE, MASSACREDURATION, MAGICFIND, EXPLOSIONDAMAGE }, }) { name = Translations.ItemDataBase_ItemDefinitions_426/*Yuki-Onna Strides*/, //tr @@ -5617,15 +5612,15 @@ public static void PopulateItems() new[] { INTELLIGENCE,NONE }, new[] { ARMOR }, new[] { ALLHEALINGPERCENT,DODGECHANCE,SPELLDAMAGEINCREASE,BASESPELLDAMAGE}, - new[] { SPELLDMGFROMINT,DAMAGEREDUCTION }, - new[] { SPELLCOSTREDUCTION,SPELLCOSTTOSTAMINA,ARMOR,ALLATTRIBUTES}, - new[] { ARMOR,DAMAGEREDUCTION ,RESISTANCETOMAGIC}, - new[] { INTELLIGENCE, MAXIMUMLIFE,LIFEPERSECOND,SPELLDAMAGEINCREASE,BASESPELLDAMAGE }, - new[] { VITALITY, MAXIMUMLIFE, PERCENTMAXIMUMLIFE, LIFEPERSECOND, LIFEONHIT }, - new[] { SPELLCOSTREDUCTION, COOLDOWNREDUCTION, CRITICALHITCHANCE, CRITICALHITDAMAGE, ARMOR }, - new[] { SPELLCOSTREDUCTION, COOLDOWNREDUCTION, SPELLCOSTTOSTAMINA, PERCENTMAXIMUMENERGY, LIFEREGENERATION,RESISTANCETOMAGIC }, + new[] { SPELLDMGFROMINT,DAMAGE_REDUCTION }, + new[] { SPELLCOSTREDUCTION,SPELLCOSTTOSTAMINA,ARMOR,ALL_ATTRIBUTES}, + new[] { ARMOR,DAMAGE_REDUCTION ,RESISTANCETOMAGIC}, + new[] { INTELLIGENCE, MAX_LIFE,LIFE_REGEN_BASE,SPELLDAMAGEINCREASE,BASESPELLDAMAGE }, + new[] { VITALITY, MAX_LIFE, PERCENTMAXIMUMLIFE, LIFE_REGEN_BASE, LIFEONHIT }, + new[] { SPELLCOSTREDUCTION, COOLDOWNREDUCTION, CRIT_CHANCE, CRIT_DAMAGE, ARMOR }, + new[] { SPELLCOSTREDUCTION, COOLDOWNREDUCTION, SPELLCOSTTOSTAMINA, PERCENTMAXIMUMENERGY, LIFE_REGEN_MULT,RESISTANCETOMAGIC }, new[] { ENERGYPERSECOND, PERCENTMAXIMUMENERGY, MAXENERGYFROMAGI,MAXHEALTHFROMVIT }, - new[] { INTELLIGENCE, STAMINAPERSECOND, STAMINAREGENERATION, ALLATTRIBUTES, ALLHEALINGPERCENT }, + new[] { INTELLIGENCE, STAMINA_REGEN_BASE, STAMINA_AND_ENERGY_REGEN_MULT, ALL_ATTRIBUTES, ALLHEALINGPERCENT }, }) { name = Translations.ItemDataBase_ItemDefinitions_430/*Yuki-Onna Greaves*/, //tr @@ -5647,15 +5642,15 @@ public static void PopulateItems() new[] { INTELLIGENCE,NONE }, new[] { ARMOR }, new[] { ALLHEALINGPERCENT,DODGECHANCE}, - new[] { SPELLDMGFROMINT,DAMAGEREDUCTION }, - new[] { SPELLCOSTREDUCTION,SPELLCOSTTOSTAMINA,ARMOR,ALLATTRIBUTES}, - new[] { ARMOR,DAMAGEREDUCTION ,RESISTANCETOMAGIC,SPELLDAMAGEINCREASE,BASESPELLDAMAGE}, - new[] { INTELLIGENCE, MAXIMUMLIFE,LIFEPERSECOND,SPELLDAMAGEINCREASE,BASESPELLDAMAGE }, - new[] { VITALITY, MAXIMUMLIFE, PERCENTMAXIMUMLIFE, LIFEPERSECOND, LIFEONHIT }, - new[] { SPELLCOSTREDUCTION, COOLDOWNREDUCTION, CRITICALHITCHANCE, CRITICALHITDAMAGE, ARMOR }, - new[] { SPELLCOSTREDUCTION, COOLDOWNREDUCTION, SPELLCOSTTOSTAMINA, PERCENTMAXIMUMENERGY, LIFEREGENERATION,RESISTANCETOMAGIC }, + new[] { SPELLDMGFROMINT,DAMAGE_REDUCTION }, + new[] { SPELLCOSTREDUCTION,SPELLCOSTTOSTAMINA,ARMOR,ALL_ATTRIBUTES}, + new[] { ARMOR,DAMAGE_REDUCTION ,RESISTANCETOMAGIC,SPELLDAMAGEINCREASE,BASESPELLDAMAGE}, + new[] { INTELLIGENCE, MAX_LIFE,LIFE_REGEN_BASE,SPELLDAMAGEINCREASE,BASESPELLDAMAGE }, + new[] { VITALITY, MAX_LIFE, PERCENTMAXIMUMLIFE, LIFE_REGEN_BASE, LIFEONHIT }, + new[] { SPELLCOSTREDUCTION, COOLDOWNREDUCTION, CRIT_CHANCE, CRIT_DAMAGE, ARMOR }, + new[] { SPELLCOSTREDUCTION, COOLDOWNREDUCTION, SPELLCOSTTOSTAMINA, PERCENTMAXIMUMENERGY, LIFE_REGEN_MULT,RESISTANCETOMAGIC }, new[] { ENERGYPERSECOND, PERCENTMAXIMUMENERGY, MAXENERGYFROMAGI,MAXHEALTHFROMVIT }, - new[] { INTELLIGENCE, STAMINAPERSECOND, STAMINAREGENERATION, ALLATTRIBUTES, ALLHEALINGPERCENT }, + new[] { INTELLIGENCE, STAMINA_REGEN_BASE, STAMINA_AND_ENERGY_REGEN_MULT, ALL_ATTRIBUTES, ALLHEALINGPERCENT }, }) { name = Translations.ItemDataBase_ItemDefinitions_431/*Yuki-Onna Kimono*/, //tr @@ -5676,16 +5671,16 @@ public static void PopulateItems() { new[] { INTELLIGENCE,NONE }, new[] { ARMOR }, - new[] { CRITICALHITCHANCE,CRITICALHITDAMAGE}, + new[] { CRIT_CHANCE,CRIT_DAMAGE}, new[] { SPELLDMGFROMINT }, - new[] { SPELLCOSTREDUCTION,SPELLCOSTTOSTAMINA,ARMOR,ALLATTRIBUTES}, + new[] { SPELLCOSTREDUCTION,SPELLCOSTTOSTAMINA,ARMOR,ALL_ATTRIBUTES}, new[] { ARMOR, SPELLDAMAGEINCREASE, BASESPELLDAMAGE, RESISTANCETOMAGIC}, - new[] { INTELLIGENCE, MAXIMUMLIFE,LIFEPERSECOND }, - new[] { SPELLDAMAGEINCREASE,BASESPELLDAMAGE, MAXIMUMLIFE, PERCENTMAXIMUMLIFE, LIFEPERSECOND, LIFEONHIT }, - new[] { SPELLCOSTREDUCTION, COOLDOWNREDUCTION, CRITICALHITCHANCE, CRITICALHITDAMAGE, ARMOR }, - new[] { SPELLCOSTREDUCTION, COOLDOWNREDUCTION, SPELLCOSTTOSTAMINA, PERCENTMAXIMUMENERGY, LIFEREGENERATION,RESISTANCETOMAGIC }, + new[] { INTELLIGENCE, MAX_LIFE,LIFE_REGEN_BASE }, + new[] { SPELLDAMAGEINCREASE,BASESPELLDAMAGE, MAX_LIFE, PERCENTMAXIMUMLIFE, LIFE_REGEN_BASE, LIFEONHIT }, + new[] { SPELLCOSTREDUCTION, COOLDOWNREDUCTION, CRIT_CHANCE, CRIT_DAMAGE, ARMOR }, + new[] { SPELLCOSTREDUCTION, COOLDOWNREDUCTION, SPELLCOSTTOSTAMINA, PERCENTMAXIMUMENERGY, LIFE_REGEN_MULT,RESISTANCETOMAGIC }, new[] { ENERGYPERSECOND, PERCENTMAXIMUMENERGY, MAXENERGYFROMAGI,MAXHEALTHFROMVIT }, - new[] { INTELLIGENCE, STAMINAPERSECOND, STAMINAREGENERATION, ALLATTRIBUTES, ALLHEALINGPERCENT }, + new[] { INTELLIGENCE, STAMINA_REGEN_BASE, STAMINA_AND_ENERGY_REGEN_MULT, ALL_ATTRIBUTES, ALLHEALINGPERCENT }, }) { name = Translations.ItemDataBase_ItemDefinitions_432/*Yuki-Onna's Headdress*/, //tr @@ -5706,16 +5701,16 @@ public static void PopulateItems() { new[] { INTELLIGENCE,NONE }, new[] { ARMOR }, - new[] { CRITICALHITCHANCE,CRITICALHITDAMAGE}, + new[] { CRIT_CHANCE,CRIT_DAMAGE}, new[] { SPELLDMGFROMINT }, - new[] { SPELLCOSTREDUCTION,SPELLCOSTTOSTAMINA,ARMOR,ALLATTRIBUTES}, + new[] { SPELLCOSTREDUCTION,SPELLCOSTTOSTAMINA,ARMOR,ALL_ATTRIBUTES}, new[] { ARMOR, SPELLDAMAGEINCREASE, BASESPELLDAMAGE, RESISTANCETOMAGIC}, - new[] { INTELLIGENCE, MAXIMUMLIFE,LIFEPERSECOND }, - new[] { SPELLDAMAGEINCREASE,BASESPELLDAMAGE, MAXIMUMLIFE, PERCENTMAXIMUMLIFE, LIFEPERSECOND, LIFEONHIT }, - new[] { SPELLCOSTREDUCTION, COOLDOWNREDUCTION, CRITICALHITCHANCE, CRITICALHITDAMAGE, ARMOR }, - new[] { SPELLCOSTREDUCTION, COOLDOWNREDUCTION, SPELLCOSTTOSTAMINA, PERCENTMAXIMUMENERGY, LIFEREGENERATION,RESISTANCETOMAGIC }, + new[] { INTELLIGENCE, MAX_LIFE,LIFE_REGEN_BASE }, + new[] { SPELLDAMAGEINCREASE,BASESPELLDAMAGE, MAX_LIFE, PERCENTMAXIMUMLIFE, LIFE_REGEN_BASE, LIFEONHIT }, + new[] { SPELLCOSTREDUCTION, COOLDOWNREDUCTION, CRIT_CHANCE, CRIT_DAMAGE, ARMOR }, + new[] { SPELLCOSTREDUCTION, COOLDOWNREDUCTION, SPELLCOSTTOSTAMINA, PERCENTMAXIMUMENERGY, LIFE_REGEN_MULT,RESISTANCETOMAGIC }, new[] { ENERGYPERSECOND, PERCENTMAXIMUMENERGY, MAXENERGYFROMAGI,MAXHEALTHFROMVIT }, - new[] { INTELLIGENCE, STAMINAPERSECOND, STAMINAREGENERATION, ALLATTRIBUTES, ALLHEALINGPERCENT }, + new[] { INTELLIGENCE, STAMINA_REGEN_BASE, STAMINA_AND_ENERGY_REGEN_MULT, ALL_ATTRIBUTES, ALLHEALINGPERCENT }, }) { name = Translations.ItemDataBase_ItemDefinitions_434/*Lama Mega's Blood Bag*/, //tr @@ -5760,7 +5755,7 @@ public static void PopulateItems() { new[] { MOVEMENTSPEED}, new[] { INTELLIGENCE,STRENGTH,AGILITY }, - new[] { ALLATTRIBUTES,VITALITY }, + new[] { ALL_ATTRIBUTES,VITALITY }, new[] { ARMOR }, new[] { NONE,JUMPPOWER}, }) @@ -5785,7 +5780,7 @@ public static void PopulateItems() new[] { JUMPPOWER}, new[] { LESSERAGILITY}, new[] { LESSERARMOR}, - new[] { PROJECTILESIZE,PROJECTILESIZE,ALLATTRIBUTES,LIFEREGENERATION,LIFEPERSECOND,LESSERVITALITY,AGILITY}, + new[] { PROJECTILESIZE,PROJECTILESIZE,ALL_ATTRIBUTES,LIFE_REGEN_MULT,LIFE_REGEN_BASE,LESSERVITALITY,AGILITY}, new[] { RANGEDARMORPIERCING,RANGEDDAMAGEINCREASE,BASERANGEDDAMAGE,ATTACKSPEED}, }) { @@ -5805,7 +5800,7 @@ public static void PopulateItems() new[] { JUMPPOWER}, new[] { AGILITY}, new[] { ARMOR}, - new[] { PROJECTILESIZE,PROJECTILESIZE,ALLATTRIBUTES,LIFEREGENERATION,LIFEPERSECOND,VITALITY,INTELLIGENCE,AGILITY}, + new[] { PROJECTILESIZE,PROJECTILESIZE,ALL_ATTRIBUTES,LIFE_REGEN_MULT,LIFE_REGEN_BASE,VITALITY,INTELLIGENCE,AGILITY}, new[] { RANGEDARMORPIERCING,RANGEDDAMAGEINCREASE,BASERANGEDDAMAGE,ATTACKSPEED}, }) { @@ -5868,8 +5863,8 @@ public static void PopulateItems() { new [] {ALL}, new [] {BASESPELLDAMAGE,BASERANGEDDAMAGE,BASEMELEEDAMAGE}, - new [] {SPELLDMGFROMINT,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,DAMAGEREDUCTION}, - new [] {ALLATTRIBUTES,AGILITY,STRENGTH,INTELLIGENCE,VITALITY}, + new [] {SPELLDMGFROMINT,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,DAMAGE_REDUCTION}, + new [] {ALL_ATTRIBUTES,AGILITY,STRENGTH,INTELLIGENCE,VITALITY}, }) { @@ -5883,15 +5878,15 @@ public static void PopulateItems() type = BaseItem.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(100), onEquip = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Add(2), - onUnequip = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Substract(2), + onUnequip = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Sub(2), }; new BaseItem(new Stat[][] { new [] {ALL}, new [] {ALL}, new [] {BASESPELLDAMAGE,BASERANGEDDAMAGE,BASEMELEEDAMAGE}, - new [] {SPELLDMGFROMINT,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,DAMAGEREDUCTION}, - new [] {ALLATTRIBUTES,AGILITY,STRENGTH,INTELLIGENCE,VITALITY}, + new [] {SPELLDMGFROMINT,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,DAMAGE_REDUCTION}, + new [] {ALL_ATTRIBUTES,AGILITY,STRENGTH,INTELLIGENCE,VITALITY}, }) { @@ -5905,7 +5900,7 @@ public static void PopulateItems() type = BaseItem.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(100), onEquip = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Add(3), - onUnequip = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Substract(3), + onUnequip = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Sub(3), }; new BaseItem(new Stat[][] { @@ -5913,8 +5908,8 @@ public static void PopulateItems() new [] {ALL}, new [] {ALL}, new [] {BASESPELLDAMAGE,BASERANGEDDAMAGE,BASEMELEEDAMAGE}, - new [] {SPELLDMGFROMINT,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,DAMAGEREDUCTION}, - new [] {ALLATTRIBUTES,AGILITY,STRENGTH,INTELLIGENCE,VITALITY}, + new [] {SPELLDMGFROMINT,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,DAMAGE_REDUCTION}, + new [] {ALL_ATTRIBUTES,AGILITY,STRENGTH,INTELLIGENCE,VITALITY}, }) { @@ -5928,7 +5923,7 @@ public static void PopulateItems() type = BaseItem.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(100), onEquip = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Add(4), - onUnequip = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Substract(4), + onUnequip = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Sub(4), }; new BaseItem(new Stat[][] { @@ -5936,8 +5931,8 @@ public static void PopulateItems() new [] {ALL}, new [] {MOVEMENTSPEED,COOLDOWNREDUCTION}, new [] {JUMPPOWER,ATTACKSPEED,MOVEMENTSPEED,ENERGYPERSECOND}, - new [] {BASESPELLDAMAGE,BASERANGEDDAMAGE,BASEMELEEDAMAGE,CRITICALHITCHANCE,CRITICALHITDAMAGE}, - new [] {ALLATTRIBUTES,AGILITY,STRENGTH,INTELLIGENCE,VITALITY}, + new [] {BASESPELLDAMAGE,BASERANGEDDAMAGE,BASEMELEEDAMAGE,CRIT_CHANCE,CRIT_DAMAGE}, + new [] {ALL_ATTRIBUTES,AGILITY,STRENGTH,INTELLIGENCE,VITALITY}, }) { name = Translations.ItemDataBase_ItemDefinitions_454/*Travel Band*/, //tr @@ -5950,7 +5945,7 @@ public static void PopulateItems() type = BaseItem.ItemType.Ring, icon = Res.ResourceLoader.GetTexture(90), onEquip = () => { ModdedPlayer.Stats.spell_blinkRange.Add(25); }, - onUnequip = () => { ModdedPlayer.Stats.spell_blinkRange.Substract(25); }, + onUnequip = () => { ModdedPlayer.Stats.spell_blinkRange.Sub(25); }, }; new BaseItem(new Stat[][] @@ -5998,7 +5993,7 @@ public static void PopulateItems() weaponModel = BaseItem.WeaponModelType.Hammer, icon = Res.ResourceLoader.GetTexture(109), onEquip = () => ModdedPlayer.Stats.chanceToWeaken.Add(0.3f), - onUnequip = () => ModdedPlayer.Stats.chanceToWeaken.Substract(0.3f), + onUnequip = () => ModdedPlayer.Stats.chanceToWeaken.Sub(0.3f), }; new BaseItem(new int[][] @@ -6024,7 +6019,7 @@ public static void PopulateItems() weaponModel = BaseItem.WeaponModelType.Hammer, icon = Res.ResourceLoader.GetTexture(109), onEquip = () => ModdedPlayer.Stats.chanceToWeaken.Add(0.45f), - onUnequip = () => ModdedPlayer.Stats.chanceToWeaken.Substract(0.45f), + onUnequip = () => ModdedPlayer.Stats.chanceToWeaken.Sub(0.45f), }; new BaseItem(new Stat[][] { @@ -6034,7 +6029,7 @@ public static void PopulateItems() new [] {STRENGTH}, new [] {BASEMELEEDAMAGE}, new [] {ATTACKCOSTREDUCTION,ATTACKSPEED,LIFEONHIT,ENERGYONHIT,NONE,NONE,NONE}, - new [] {ALLATTRIBUTES,VITALITY,MELEEDAMAGEINCREASE,MELEEARMORPIERCING}, + new [] {ALL_ATTRIBUTES,VITALITY,MELEEDAMAGEINCREASE,MELEEARMORPIERCING}, }) { name = Translations.ItemDataBase_ItemDefinitions_464/*Smasher*/, //tr @@ -6056,7 +6051,7 @@ public static void PopulateItems() new [] {ALL}, new [] {LIFEONHIT}, new [] {ENERGYONHIT}, - new [] {STAMINAREGENERATION,PERCENTMAXIMUMENERGY,PERCENTMAXIMUMLIFE}, + new [] {STAMINA_AND_ENERGY_REGEN_MULT,PERCENTMAXIMUMENERGY,PERCENTMAXIMUMLIFE}, }) { name = Translations.ItemDataBase_ItemDefinitions_466/*Vampiric Band*/, //tr @@ -6077,10 +6072,10 @@ public static void PopulateItems() new [] {ALL}, new [] {ALL}, new [] {LIFEONHIT}, - new [] {CRITICALHITCHANCE,CRITICALHITDAMAGE}, + new [] {CRIT_CHANCE,CRIT_DAMAGE}, new [] {MELEEDAMAGEINCREASE,RANGEDDAMAGEINCREASE,SPELLDAMAGEINCREASE}, new [] {ENERGYONHIT}, - new [] {STAMINAREGENERATION,PERCENTMAXIMUMENERGY,PERCENTMAXIMUMLIFE}, + new [] {STAMINA_AND_ENERGY_REGEN_MULT,PERCENTMAXIMUMENERGY,PERCENTMAXIMUMLIFE}, }) { name = Translations.ItemDataBase_ItemDefinitions_468/*Vampire Ring*/, //tr @@ -6099,8 +6094,8 @@ public static void PopulateItems() { new [] {SPELLDAMAGEINCREASE,INTELLIGENCE,BASESPELLDAMAGE}, new [] {SPELLDAMAGEINCREASE,INTELLIGENCE,BASESPELLDAMAGE}, - new [] {VITALITY,LIFEPERSECOND,LIFEREGENERATION,INTELLIGENCE,AGILITY,STRENGTH,ALLATTRIBUTES}, - new [] {COOLDOWNREDUCTION,SPELLCOSTREDUCTION,SPELLCOSTTOSTAMINA,INTELLIGENCE,DAMAGEREDUCTION}, + new [] {VITALITY,LIFE_REGEN_BASE,LIFE_REGEN_MULT,INTELLIGENCE,AGILITY,STRENGTH,ALL_ATTRIBUTES}, + new [] {COOLDOWNREDUCTION,SPELLCOSTREDUCTION,SPELLCOSTTOSTAMINA,INTELLIGENCE,DAMAGE_REDUCTION}, }) { name = Translations.ItemDataBase_ItemDefinitions_470/*Tricksters Scarf*/, //tr @@ -6112,7 +6107,7 @@ public static void PopulateItems() CanConsume = false, StackSize = 1, onEquip = () => ModdedPlayer.Stats.spell_magicArrowVolleyCount.Add(1), - onUnequip = () => ModdedPlayer.Stats.spell_magicArrowVolleyCount.Substract(1), + onUnequip = () => ModdedPlayer.Stats.spell_magicArrowVolleyCount.Sub(1), type = BaseItem.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(100) }; @@ -6120,8 +6115,8 @@ public static void PopulateItems() { new [] {SPELLDAMAGEINCREASE,INTELLIGENCE,BASESPELLDAMAGE}, new [] {SPELLDAMAGEINCREASE,INTELLIGENCE,BASESPELLDAMAGE}, - new [] {VITALITY,LIFEPERSECOND,LIFEREGENERATION,INTELLIGENCE,AGILITY,STRENGTH,ALLATTRIBUTES}, - new [] {COOLDOWNREDUCTION,SPELLCOSTREDUCTION,SPELLCOSTTOSTAMINA,INTELLIGENCE,DAMAGEREDUCTION}, + new [] {VITALITY,LIFE_REGEN_BASE,LIFE_REGEN_MULT,INTELLIGENCE,AGILITY,STRENGTH,ALL_ATTRIBUTES}, + new [] {COOLDOWNREDUCTION,SPELLCOSTREDUCTION,SPELLCOSTTOSTAMINA,INTELLIGENCE,DAMAGE_REDUCTION}, new [] {INTELLIGENCE}, new [] {ALL}, @@ -6136,7 +6131,7 @@ public static void PopulateItems() CanConsume = false, StackSize = 1, onEquip = () => ModdedPlayer.Stats.spell_magicArrowVolleyCount.Add(2), - onUnequip = () => ModdedPlayer.Stats.spell_magicArrowVolleyCount.Substract(2), + onUnequip = () => ModdedPlayer.Stats.spell_magicArrowVolleyCount.Sub(2), type = BaseItem.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(100) }; @@ -6158,7 +6153,7 @@ public static void PopulateItems() type = BaseItem.ItemType.Quiver, icon = Res.ResourceLoader.GetTexture(98), onEquip = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Add(0.15f), - onUnequip = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Substract(0.15f), + onUnequip = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Sub(0.15f), }; new BaseItem(new int[][] { @@ -6180,7 +6175,7 @@ public static void PopulateItems() type = BaseItem.ItemType.Quiver, icon = Res.ResourceLoader.GetTexture(98), onEquip = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Add(0.2f), - onUnequip = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Substract(0.2f), + onUnequip = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Sub(0.2f), }; new BaseItem(new int[][] { @@ -6203,7 +6198,7 @@ public static void PopulateItems() type = BaseItem.ItemType.Quiver, icon = Res.ResourceLoader.GetTexture(98), onEquip = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Add(0.25f), - onUnequip = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Substract(0.25f), + onUnequip = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Sub(0.25f), }; new BaseItem(new int[][] { @@ -6227,7 +6222,7 @@ public static void PopulateItems() type = BaseItem.ItemType.Quiver, icon = Res.ResourceLoader.GetTexture(98), onEquip = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Add(0.4f), - onUnequip = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Substract(0.4f), + onUnequip = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Sub(0.4f), }; new BaseItem(new int[][] { }) @@ -6615,9 +6610,9 @@ public static void PopulateItems() var itemType = x.type; if (itemType == BaseItem.ItemType.Other || itemType == BaseItem.ItemType.Material || x.Amount > 1) return false; - if (!x.Stats.Any(y => y.id == (int)DAMAGEREDUCTION)) + if (!x.Stats.Any(y => y.id == (int)DAMAGE_REDUCTION)) { - ItemStat stat = new ItemStat(StatByID((int)DAMAGEREDUCTION), x.level); + ItemStat stat = new ItemStat(StatByID((int)DAMAGE_REDUCTION), x.level); x.Stats.Add(stat); return true; } @@ -6681,12 +6676,12 @@ public static void PopulateItems() }; new BaseItem(new Stat[][] { - new [] {SPELLCOSTREDUCTION,MELEEDAMAGEINCREASE,SPELLDAMAGEINCREASE,COOLDOWNREDUCTION,DAMAGEREDUCTION, RANGEDDMGFROMAGI, ATTACKSPEED}, + new [] {SPELLCOSTREDUCTION,MELEEDAMAGEINCREASE,SPELLDAMAGEINCREASE,COOLDOWNREDUCTION,DAMAGE_REDUCTION, RANGEDDMGFROMAGI, ATTACKSPEED}, new [] {AGILITY,LESSERAGILITY}, new [] {MELEEARMORPIERCING,RANGEDARMORPIERCING,ARMORPIERCING,ARMOR}, - new [] {RANGEDDAMAGEINCREASE,RANGEDDMGFROMAGI,BASERANGEDDAMAGE,CRITICALHITCHANCE,CRITICALHITDAMAGE,ALLATTRIBUTES}, - new [] {INTELLIGENCE,STRENGTH,AGILITY,VITALITY,ALLATTRIBUTES,MAXIMUMLIFE,MAXIMUMENERGY}, - new [] {INTELLIGENCE,STRENGTH,AGILITY,VITALITY,ALLATTRIBUTES,LIFEONHIT,ENERGYONHIT,ENERGYPERSECOND,ALLHEALINGPERCENT}, + new [] {RANGEDDAMAGEINCREASE,RANGEDDMGFROMAGI,BASERANGEDDAMAGE,CRIT_CHANCE,CRIT_DAMAGE,ALL_ATTRIBUTES}, + new [] {INTELLIGENCE,STRENGTH,AGILITY,VITALITY,ALL_ATTRIBUTES,MAX_LIFE,MAX_ENERGY}, + new [] {INTELLIGENCE,STRENGTH,AGILITY,VITALITY,ALL_ATTRIBUTES,LIFEONHIT,ENERGYONHIT,ENERGYPERSECOND,ALLHEALINGPERCENT}, new [] {RANGEDDAMAGEINCREASE,BASERANGEDDAMAGE,AGILITY}, new [] {ALL}, new [] {ALL}, @@ -6708,16 +6703,16 @@ public static void PopulateItems() new BaseItem(new Stat[][] { - new [] {SPELLCOSTREDUCTION,BASESPELLDAMAGE,SPELLDAMAGEINCREASE,COOLDOWNREDUCTION,DAMAGEREDUCTION}, + new [] {SPELLCOSTREDUCTION,BASESPELLDAMAGE,SPELLDAMAGEINCREASE,COOLDOWNREDUCTION,DAMAGE_REDUCTION}, new [] {ATTACKSPEED,PROJECTILESIZE,PROJECTILESPEED}, new [] {AGILITY,LESSERAGILITY}, new [] {HEADSHOTDAMAGE}, new [] {MELEEARMORPIERCING,RANGEDARMORPIERCING,ARMORPIERCING,ARMOR,RESISTANCETOMAGIC,MAGICFIND}, - new [] {RANGEDDAMAGEINCREASE,RANGEDDMGFROMAGI,BASERANGEDDAMAGE,CRITICALHITCHANCE,CRITICALHITDAMAGE,ALLATTRIBUTES,MAXENERGYFROMAGI}, - new [] {RANGEDDAMAGEINCREASE,BASERANGEDDAMAGE,AGILITY,VITALITY,INTELLIGENCE,CRITICALHITCHANCE,CRITICALHITDAMAGE}, + new [] {RANGEDDAMAGEINCREASE,RANGEDDMGFROMAGI,BASERANGEDDAMAGE,CRIT_CHANCE,CRIT_DAMAGE,ALL_ATTRIBUTES,MAXENERGYFROMAGI}, + new [] {RANGEDDAMAGEINCREASE,BASERANGEDDAMAGE,AGILITY,VITALITY,INTELLIGENCE,CRIT_CHANCE,CRIT_DAMAGE}, new [] {RANGEDDAMAGEINCREASE,BASERANGEDDAMAGE,AGILITY,VITALITY,INTELLIGENCE,HEADSHOTDAMAGE}, - new [] {INTELLIGENCE,STRENGTH,AGILITY,VITALITY,ALLATTRIBUTES,MAXIMUMLIFE,MAXIMUMENERGY}, - new [] {INTELLIGENCE,STRENGTH,AGILITY,VITALITY,ALLATTRIBUTES,LIFEONHIT,ENERGYONHIT,ENERGYPERSECOND,ALLHEALINGPERCENT}, + new [] {INTELLIGENCE,STRENGTH,AGILITY,VITALITY,ALL_ATTRIBUTES,MAX_LIFE,MAX_ENERGY}, + new [] {INTELLIGENCE,STRENGTH,AGILITY,VITALITY,ALL_ATTRIBUTES,LIFEONHIT,ENERGYONHIT,ENERGYPERSECOND,ALLHEALINGPERCENT}, new [] {ALL}, new [] {ALL}, }) @@ -6733,15 +6728,15 @@ public static void PopulateItems() weaponModel = BaseItem.WeaponModelType.Axe, icon = Res.ResourceLoader.GetTexture(138), onEquip = () => { ModdedPlayer.Stats.perk_bulletDamageMult.Multiply(6f); ModdedPlayer.Stats.perk_bulletCritChance.Add(0.5f); }, - onUnequip = () => { ModdedPlayer.Stats.perk_bulletDamageMult.Divide(6f); ModdedPlayer.Stats.perk_bulletCritChance.Substract(0.5f); }, + onUnequip = () => { ModdedPlayer.Stats.perk_bulletDamageMult.Divide(6f); ModdedPlayer.Stats.perk_bulletCritChance.Sub(0.5f); }, }; new BaseItem(new Stat[][] { new [] {ARMORPIERCING,MELEEARMORPIERCING,NONE}, new [] {BLOCK,NONE}, - new [] {ARMOR,MAXIMUMLIFE,MAXHEALTHFROMVIT,DAMAGEREDUCTION,RESISTANCETOMAGIC,DODGECHANCE}, - new [] {ARMOR,MAXIMUMLIFE,MAXHEALTHFROMVIT,DAMAGEREDUCTION,VITALITY,STRENGTH,ALLATTRIBUTES}, - new [] {ARMOR,MAXIMUMLIFE,MAXHEALTHFROMVIT,DAMAGEREDUCTION,VITALITY,STRENGTH,ALLATTRIBUTES,THORNS}, + new [] {ARMOR,MAX_LIFE,MAXHEALTHFROMVIT,DAMAGE_REDUCTION,RESISTANCETOMAGIC,DODGECHANCE}, + new [] {ARMOR,MAX_LIFE,MAXHEALTHFROMVIT,DAMAGE_REDUCTION,VITALITY,STRENGTH,ALL_ATTRIBUTES}, + new [] {ARMOR,MAX_LIFE,MAXHEALTHFROMVIT,DAMAGE_REDUCTION,VITALITY,STRENGTH,ALL_ATTRIBUTES,THORNS}, new [] {THORNS,MELEEDAMAGEINCREASE,VITALITY,STRENGTH}, new [] {STRENGTH,ARMOR,MELEEARMORPIERCING}, new [] {MELEEDAMAGEINCREASE,MELEEDMGFROMSTR,BASEMELEEDAMAGE}, @@ -6764,9 +6759,9 @@ public static void PopulateItems() { new [] {ARMORPIERCING,MELEEARMORPIERCING}, new [] {BLOCK,NONE}, - new [] {ARMOR,MAXIMUMLIFE,MAXHEALTHFROMVIT,DAMAGEREDUCTION,RESISTANCETOMAGIC,DODGECHANCE}, - new [] {ARMOR,MAXIMUMLIFE,MAXHEALTHFROMVIT,DAMAGEREDUCTION,VITALITY,STRENGTH,ALLATTRIBUTES}, - new [] {ARMOR,MAXIMUMLIFE,MAXHEALTHFROMVIT,DAMAGEREDUCTION,VITALITY,STRENGTH,ALLATTRIBUTES,THORNS}, + new [] {ARMOR,MAX_LIFE,MAXHEALTHFROMVIT,DAMAGE_REDUCTION,RESISTANCETOMAGIC,DODGECHANCE}, + new [] {ARMOR,MAX_LIFE,MAXHEALTHFROMVIT,DAMAGE_REDUCTION,VITALITY,STRENGTH,ALL_ATTRIBUTES}, + new [] {ARMOR,MAX_LIFE,MAXHEALTHFROMVIT,DAMAGE_REDUCTION,VITALITY,STRENGTH,ALL_ATTRIBUTES,THORNS}, new [] {THORNS,MELEEDAMAGEINCREASE,VITALITY,STRENGTH}, new [] {STRENGTH,ARMOR,MELEEARMORPIERCING}, new [] {MELEEDAMAGEINCREASE,MELEEDMGFROMSTR,BASEMELEEDAMAGE}, @@ -6787,16 +6782,16 @@ public static void PopulateItems() weaponModel = BaseItem.WeaponModelType.GreatSword, icon = Res.ResourceLoader.GetTexture(88), onEquip = () => ModdedPlayer.Stats.spell_bashDamageDebuffAmount.Add(2.00f), - onUnequip = () => ModdedPlayer.Stats.spell_bashDamageDebuffAmount.Substract(2.00f), + onUnequip = () => ModdedPlayer.Stats.spell_bashDamageDebuffAmount.Sub(2.00f), }; new BaseItem(new Stat[][] { new[] { ARMORPIERCING, MELEEARMORPIERCING }, new[] { BLOCK,STRENGTH}, - new[] { ARMOR, MAXIMUMLIFE, MAXHEALTHFROMVIT, DAMAGEREDUCTION, RESISTANCETOMAGIC, DODGECHANCE }, - new[] { ARMOR, MAXIMUMLIFE , DAMAGEREDUCTION, VITALITY, STRENGTH, ALLATTRIBUTES }, - new[] { ARMOR, MAXIMUMLIFE, DAMAGEREDUCTION, VITALITY, STRENGTH, ALLATTRIBUTES, THORNS }, + new[] { ARMOR, MAX_LIFE, MAXHEALTHFROMVIT, DAMAGE_REDUCTION, RESISTANCETOMAGIC, DODGECHANCE }, + new[] { ARMOR, MAX_LIFE , DAMAGE_REDUCTION, VITALITY, STRENGTH, ALL_ATTRIBUTES }, + new[] { ARMOR, MAX_LIFE, DAMAGE_REDUCTION, VITALITY, STRENGTH, ALL_ATTRIBUTES, THORNS }, new[] { THORNS, MELEEDAMAGEINCREASE, VITALITY, STRENGTH }, new[] { STRENGTH, ARMOR, MELEEARMORPIERCING }, new[] { MELEEDAMAGEINCREASE, MELEEDMGFROMSTR, BASEMELEEDAMAGE }, @@ -6822,9 +6817,9 @@ public static void PopulateItems() { new[] { ARMOR,BASEMELEEDAMAGE }, new[] { BLOCK}, - new[] { ARMOR, MAXIMUMLIFE,MAXIMUMENERGY,STAMINAREGENERATION, DAMAGEREDUCTION, RESISTANCETOMAGIC, DODGECHANCE }, - new[] { ARMOR, MAXIMUMLIFE, MAXIMUMENERGY, DAMAGEREDUCTION, VITALITY, STRENGTH, ALLATTRIBUTES,CHANCEONHITTOBLEED,CHANCEONHITTOSLOW,CHANCEONHITTOWEAKEN }, - new[] { ARMOR, MAXIMUMLIFE, MAXHEALTHFROMVIT, DAMAGEREDUCTION, VITALITY, STRENGTH, ALLATTRIBUTES, THORNS }, + new[] { ARMOR, MAX_LIFE,MAX_ENERGY,STAMINA_AND_ENERGY_REGEN_MULT, DAMAGE_REDUCTION, RESISTANCETOMAGIC, DODGECHANCE }, + new[] { ARMOR, MAX_LIFE, MAX_ENERGY, DAMAGE_REDUCTION, VITALITY, STRENGTH, ALL_ATTRIBUTES,CHANCEONHITTOBLEED,CHANCEONHITTOSLOW,CHANCEONHITTOWEAKEN }, + new[] { ARMOR, MAX_LIFE, MAXHEALTHFROMVIT, DAMAGE_REDUCTION, VITALITY, STRENGTH, ALL_ATTRIBUTES, THORNS }, new[] { THORNS, MELEEDAMAGEINCREASE, VITALITY, STRENGTH }, new[] { MELEEDAMAGEINCREASE, ATTACKSPEED, BASEMELEEDAMAGE, MELEEWEAPONRANGE,PERCENTMAXIMUMLIFE,PERCENTMAXIMUMENERGY,ALLHEALINGPERCENT }, }) @@ -6841,11 +6836,11 @@ public static void PopulateItems() new BaseItem(new Stat[][] { new [] {FIREDAMAGE}, - new [] {MAXIMUMENERGY,MAXIMUMLIFE,PERCENTMAXIMUMENERGY,PERCENTMAXIMUMLIFE}, + new [] {MAX_ENERGY,MAX_LIFE,PERCENTMAXIMUMENERGY,PERCENTMAXIMUMLIFE}, new [] {STRENGTH,INTELLIGENCE,AGILITY,SPELLCOSTREDUCTION}, - new [] {SPELLDAMAGEINCREASE,BASESPELLDAMAGE, INTELLIGENCE ,ALLATTRIBUTES}, - new [] {SPELLDAMAGEINCREASE,BASESPELLDAMAGE, INTELLIGENCE ,ALLATTRIBUTES}, - new [] {ARMOR,DAMAGEREDUCTION}, + new [] {SPELLDAMAGEINCREASE,BASESPELLDAMAGE, INTELLIGENCE ,ALL_ATTRIBUTES}, + new [] {SPELLDAMAGEINCREASE,BASESPELLDAMAGE, INTELLIGENCE ,ALL_ATTRIBUTES}, + new [] {ARMOR,DAMAGE_REDUCTION}, new [] {RESISTANCETOMAGIC,MAGICFIND,MOVEMENTSPEED,ARMOR}, }) { @@ -6859,7 +6854,7 @@ public static void PopulateItems() type = BaseItem.ItemType.Helmet, icon = Res.ResourceLoader.GetTexture(91), onEquip = () => ModdedPlayer.Stats.fireDuration.Add(2f), - onUnequip = () => ModdedPlayer.Stats.fireDuration.Substract(2f), + onUnequip = () => ModdedPlayer.Stats.fireDuration.Sub(2f), }.PossibleStats[0][0].multipier = 2; new BaseItem(new Stat[][] @@ -6867,13 +6862,13 @@ public static void PopulateItems() new [] {FIREDAMAGE}, new [] {SPELLDMGFROMINT,MELEEDMGFROMSTR,RANGEDDMGFROMAGI}, new [] {MAXENERGYFROMAGI,MAXHEALTHFROMVIT}, - new [] {MAXIMUMENERGY,MAXIMUMLIFE,PERCENTMAXIMUMENERGY,PERCENTMAXIMUMLIFE}, + new [] {MAX_ENERGY,MAX_LIFE,PERCENTMAXIMUMENERGY,PERCENTMAXIMUMLIFE}, new [] {STRENGTH,INTELLIGENCE,AGILITY,SPELLCOSTREDUCTION}, - new [] {SPELLDAMAGEINCREASE,BASESPELLDAMAGE, INTELLIGENCE ,ALLATTRIBUTES}, - new [] {SPELLDAMAGEINCREASE,BASESPELLDAMAGE, INTELLIGENCE ,ALLATTRIBUTES}, + new [] {SPELLDAMAGEINCREASE,BASESPELLDAMAGE, INTELLIGENCE ,ALL_ATTRIBUTES}, + new [] {SPELLDAMAGEINCREASE,BASESPELLDAMAGE, INTELLIGENCE ,ALL_ATTRIBUTES}, new [] {ALL}, new [] {ALL}, - new [] {ARMOR,DAMAGEREDUCTION}, + new [] {ARMOR,DAMAGE_REDUCTION}, new [] {RESISTANCETOMAGIC,MAGICFIND,MOVEMENTSPEED,ARMOR}, }) { @@ -6887,7 +6882,7 @@ public static void PopulateItems() type = BaseItem.ItemType.Helmet, icon = Res.ResourceLoader.GetTexture(91), onEquip = () => { ModdedPlayer.Stats.fireDuration.Add(7f); ModdedPlayer.Stats.fireTickRate.Add(3f); }, - onUnequip = () => { ModdedPlayer.Stats.fireDuration.Substract(7f); ModdedPlayer.Stats.fireTickRate.Substract(3f); }, + onUnequip = () => { ModdedPlayer.Stats.fireDuration.Sub(7f); ModdedPlayer.Stats.fireTickRate.Sub(3f); }, }.PossibleStats[0][0].multipier = 5; @@ -6896,14 +6891,14 @@ public static void PopulateItems() new [] {FIREDAMAGE}, new [] {ARMOR,DODGECHANCE}, new [] {MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT,MELEEDMGFROMSTR,RANGEDDMGFROMAGI}, - new [] {MAXIMUMENERGY,MAXIMUMLIFE,PERCENTMAXIMUMENERGY,PERCENTMAXIMUMLIFE}, + new [] {MAX_ENERGY,MAX_LIFE,PERCENTMAXIMUMENERGY,PERCENTMAXIMUMLIFE}, new [] {STRENGTH,INTELLIGENCE,AGILITY,SPELLCOSTREDUCTION,PROJECTILESPEED,PROJECTILESIZE}, - new [] {SPELLDAMAGEINCREASE,BASESPELLDAMAGE, INTELLIGENCE ,ALLATTRIBUTES}, - new [] {SPELLDAMAGEINCREASE,BASESPELLDAMAGE, INTELLIGENCE ,ALLATTRIBUTES}, + new [] {SPELLDAMAGEINCREASE,BASESPELLDAMAGE, INTELLIGENCE ,ALL_ATTRIBUTES}, + new [] {SPELLDAMAGEINCREASE,BASESPELLDAMAGE, INTELLIGENCE ,ALL_ATTRIBUTES}, new [] {ALL}, new [] {ALL}, new [] {ALL}, - new [] {ARMOR,DAMAGEREDUCTION}, + new [] {ARMOR,DAMAGE_REDUCTION}, new [] {RESISTANCETOMAGIC,MAGICFIND,MOVEMENTSPEED,ARMOR}, }) { @@ -6924,21 +6919,21 @@ public static void PopulateItems() }, onUnequip = () => { - ModdedPlayer.Stats.spell_fireboltEnergyCost.Substract(5); - ModdedPlayer.Stats.spell_fireboltDamageScaling.Substract(7.5f); + ModdedPlayer.Stats.spell_fireboltEnergyCost.Sub(5); + ModdedPlayer.Stats.spell_fireboltDamageScaling.Sub(7.5f); }, }; new BaseItem(new Stat[][] { new [] {SPELLDMGFROMINT}, new [] {MAXENERGYFROMAGI,MAXHEALTHFROMVIT}, - new [] {MAXIMUMENERGY,MAXIMUMLIFE,PERCENTMAXIMUMENERGY,PERCENTMAXIMUMLIFE}, + new [] {MAX_ENERGY,MAX_LIFE,PERCENTMAXIMUMENERGY,PERCENTMAXIMUMLIFE}, new [] {STRENGTH,INTELLIGENCE,AGILITY,SPELLCOSTREDUCTION,COOLDOWNREDUCTION,SPELLCOSTTOSTAMINA}, - new [] {SPELLDAMAGEINCREASE,BASESPELLDAMAGE, INTELLIGENCE ,ALLATTRIBUTES}, - new [] {SPELLDAMAGEINCREASE,BASESPELLDAMAGE, INTELLIGENCE ,ALLATTRIBUTES}, + new [] {SPELLDAMAGEINCREASE,BASESPELLDAMAGE, INTELLIGENCE ,ALL_ATTRIBUTES}, + new [] {SPELLDAMAGEINCREASE,BASESPELLDAMAGE, INTELLIGENCE ,ALL_ATTRIBUTES}, new [] {ALL}, new [] {ALL}, - new [] {RESISTANCETOMAGIC,ENERGYONHIT,ENERGYPERSECOND,STAMINAREGENERATION,STAMINAPERSECOND}, + new [] {RESISTANCETOMAGIC,ENERGYONHIT,ENERGYPERSECOND,STAMINA_AND_ENERGY_REGEN_MULT,STAMINA_REGEN_BASE}, }) { name = Translations.ItemDataBase_ItemDefinitions_523/*Ancient Scroll*/, //tr @@ -6951,23 +6946,23 @@ public static void PopulateItems() type = BaseItem.ItemType.SpellScroll, icon = Res.ResourceLoader.GetTexture(110), onEquip = () => ModdedPlayer.Stats.spell_fireboltDamageScaling.Add(8), - onUnequip = () => ModdedPlayer.Stats.spell_fireboltDamageScaling.Substract(8), + onUnequip = () => ModdedPlayer.Stats.spell_fireboltDamageScaling.Sub(8), }; new BaseItem(new Stat[][] { new [] {SPELLDMGFROMINT}, new [] {MAXENERGYFROMAGI,MAXHEALTHFROMVIT}, - new [] {MAXIMUMENERGY,MAXIMUMLIFE,PERCENTMAXIMUMENERGY,PERCENTMAXIMUMLIFE}, + new [] {MAX_ENERGY,MAX_LIFE,PERCENTMAXIMUMENERGY,PERCENTMAXIMUMLIFE}, new [] {STRENGTH,INTELLIGENCE,AGILITY,SPELLCOSTREDUCTION,COOLDOWNREDUCTION,SPELLCOSTTOSTAMINA}, - new [] {SPELLDAMAGEINCREASE,BASESPELLDAMAGE, INTELLIGENCE ,ALLATTRIBUTES}, - new [] {SPELLDAMAGEINCREASE,BASESPELLDAMAGE, INTELLIGENCE ,ALLATTRIBUTES}, + new [] {SPELLDAMAGEINCREASE,BASESPELLDAMAGE, INTELLIGENCE ,ALL_ATTRIBUTES}, + new [] {SPELLDAMAGEINCREASE,BASESPELLDAMAGE, INTELLIGENCE ,ALL_ATTRIBUTES}, new [] {ALL}, new [] {ALL}, new [] {ALL}, new [] {ALL}, new [] {ALL}, new [] {ALL}, - new [] {RESISTANCETOMAGIC,ENERGYONHIT,ENERGYPERSECOND,STAMINAREGENERATION,STAMINAPERSECOND}, + new [] {RESISTANCETOMAGIC,ENERGYONHIT,ENERGYPERSECOND,STAMINA_AND_ENERGY_REGEN_MULT,STAMINA_REGEN_BASE}, }) { name = Translations.ItemDataBase_ItemDefinitions_524/*Guide on Tearing Spacetime*/, //tr @@ -6988,12 +6983,12 @@ public static void PopulateItems() new [] {MELEEDAMAGEINCREASE}, new [] {ATTACKSPEED}, new [] {MELEEDMGFROMSTR}, - new [] {BLOCK,ARMOR,DAMAGEREDUCTION}, + new [] {BLOCK,ARMOR,DAMAGE_REDUCTION}, new [] {BASEMELEEDAMAGE,NONE}, new [] {BASEMELEEDAMAGE,MELEEDAMAGEINCREASE,STRENGTH}, - new [] {MELEEARMORPIERCING,ARMORPIERCING,ALLATTRIBUTES}, + new [] {MELEEARMORPIERCING,ARMORPIERCING,ALL_ATTRIBUTES}, new [] {ATTACKCOSTREDUCTION,ATTACKSPEED}, - new [] {ALLATTRIBUTES,MELEEWEAPONRANGE,VITALITY,MAXIMUMLIFE}, + new [] {ALL_ATTRIBUTES,MELEEWEAPONRANGE,VITALITY,MAX_LIFE}, new [] {ENERGYONHIT,VITALITY,LIFEONHIT } }) { @@ -7021,7 +7016,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_527/*Stone Pauldrons*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.03f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.03f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.03f), rarity = 2, minLevel = 1, maxLevel = 3, @@ -7041,7 +7036,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_529/*Iron Shoulder Pads*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.04f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.04f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.04f), rarity = 3, minLevel = 1, maxLevel = 3, @@ -7062,7 +7057,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_531/*Steel Shoulder Pads*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.05f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.05f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.05f), rarity = 4, minLevel = 1, maxLevel = 3, @@ -7085,7 +7080,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_533/*Battle scarred Shoulder Pads*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.06f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.06f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.06f), rarity = 5, minLevel = 1, maxLevel = 3, @@ -7111,7 +7106,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_535/*Mystery Shoulder Pads*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.1f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.1f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.1f), rarity = 6, minLevel = 1, maxLevel = 3, @@ -7133,7 +7128,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_537/*Stone Shield*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.03f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.03f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.03f), rarity = 2, minLevel = 1, maxLevel = 3, @@ -7155,7 +7150,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_538/*Iron Shield*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.04f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.04f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.04f), rarity = 3, minLevel = 1, maxLevel = 3, @@ -7178,7 +7173,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_539/*Steel Tower Shield*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.05f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.05f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.05f), rarity = 4, minLevel = 1, maxLevel = 3, @@ -7204,7 +7199,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_540/*Guardian*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.06f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.06f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.06f), rarity = 5, minLevel = 1, maxLevel = 3, @@ -7232,7 +7227,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_541/*Mystery Shield*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.1f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.1f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.1f), rarity = 6, minLevel = 1, maxLevel = 3, @@ -7254,7 +7249,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_542/*Light Boot*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.03f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.03f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.03f), rarity = 2, minLevel = 1, maxLevel = 3, @@ -7275,7 +7270,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_543/*Iron Boots*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.04f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.04f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.04f), rarity = 3, minLevel = 1, maxLevel = 3, @@ -7297,7 +7292,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_544/*Steel Boots*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.05f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.05f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.05f), rarity = 4, minLevel = 1, maxLevel = 3, @@ -7321,7 +7316,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_545/*Threads*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.06f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.06f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.06f), rarity = 5, minLevel = 1, maxLevel = 3, @@ -7348,7 +7343,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_546/*Mystery Boots*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.1f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.1f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.1f), rarity = 6, minLevel = 1, maxLevel = 3, @@ -7371,7 +7366,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_547/*Wraps*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.03f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.03f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.03f), rarity = 2, minLevel = 1, maxLevel = 3, @@ -7391,7 +7386,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_301/*Iron Gauntlet*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.04f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.04f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.04f), rarity = 3, minLevel = 1, maxLevel = 3, @@ -7412,7 +7407,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_548/*Steel Gauntlet*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.05f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.05f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.05f), rarity = 4, minLevel = 1, maxLevel = 3, @@ -7435,7 +7430,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_549/*Titanium Gauntlet*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.06f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.06f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.06f), rarity = 5, minLevel = 1, maxLevel = 3, @@ -7461,7 +7456,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_550/*Mystery Gauntlet*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.1f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.1f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.1f), rarity = 6, minLevel = 1, maxLevel = 3, @@ -7484,7 +7479,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_551/*Leather Tasset*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.03f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.03f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.03f), rarity = 2, minLevel = 1, maxLevel = 3, @@ -7505,7 +7500,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_552/*Iron Tasset*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.04f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.04f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.04f), rarity = 3, minLevel = 1, maxLevel = 3, @@ -7527,7 +7522,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_553/*Steel Tasset*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.05f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.05f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.05f), rarity = 4, minLevel = 1, maxLevel = 3, @@ -7551,7 +7546,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_554/*Black Steel Leggins*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.06f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.06f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.06f), rarity = 5, minLevel = 1, maxLevel = 3, @@ -7578,7 +7573,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_555/*Mystery Leggins*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.1f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.1f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.1f), rarity = 6, minLevel = 1, maxLevel = 3, @@ -7598,7 +7593,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_556/*Leather Vest*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.03f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.03f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.03f), rarity = 2, minLevel = 1, maxLevel = 3, @@ -7618,7 +7613,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_557/*Iron Breastplate*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.04f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.04f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.04f), rarity = 3, minLevel = 1, maxLevel = 3, @@ -7639,7 +7634,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_558/*Steel Breastplate*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.05f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.05f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.05f), rarity = 4, minLevel = 1, maxLevel = 3, @@ -7663,7 +7658,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_559/*Silver Armor*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.06f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.06f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.06f), rarity = 5, minLevel = 1, maxLevel = 3, @@ -7690,7 +7685,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_560/*Mystery Breastplate*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.1f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.1f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.1f), rarity = 6, minLevel = 1, maxLevel = 3, @@ -7710,7 +7705,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_561/*Cloth Band*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.03f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.03f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.03f), rarity = 2, minLevel = 1, maxLevel = 3, @@ -7730,7 +7725,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_562/*Iron Wristguard*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.04f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.04f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.04f), rarity = 3, minLevel = 1, maxLevel = 3, @@ -7751,7 +7746,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_563/*Steel Wristguard*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.05f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.05f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.05f), rarity = 4, minLevel = 1, maxLevel = 3, @@ -7774,7 +7769,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_564/*Baron Wristguards*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.06f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.06f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.06f), rarity = 5, minLevel = 1, maxLevel = 3, @@ -7800,7 +7795,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_565/*Mystery Wristguards*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.1f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.1f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.1f), rarity = 6, minLevel = 1, maxLevel = 3, @@ -7822,7 +7817,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_218/*Horned Helmet*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.03f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.03f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.03f), rarity = 2, minLevel = 1, maxLevel = 3, @@ -7843,7 +7838,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_566/*Iron Helmet*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.04f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.04f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.04f), rarity = 3, minLevel = 1, maxLevel = 3, @@ -7865,7 +7860,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_567/*Steel Helmet*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.05f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.05f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.05f), rarity = 4, minLevel = 1, maxLevel = 3, @@ -7889,7 +7884,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_568/*Armored Hood*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.06f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.06f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.06f), rarity = 5, minLevel = 1, maxLevel = 3, @@ -7916,7 +7911,7 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_569/*Mystery Helmet*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.1f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Substract(0.1f), + onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.1f), rarity = 6, minLevel = 1, maxLevel = 3, @@ -7932,14 +7927,14 @@ public static void PopulateItems() new [] {MELEEDMGFROMSTR,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, new [] {MELEEDAMAGEINCREASE,MELEEWEAPONRANGE,BASEMELEEDAMAGE,STRENGTH}, new [] {MELEEDAMAGEINCREASE,ATTACKSPEED,BASEMELEEDAMAGE,STRENGTH}, - new [] {CRITICALHITCHANCE,CRITICALHITDAMAGE,}, - new [] {MELEEDAMAGEINCREASE,NONE,MAXIMUMLIFE,PERCENTMAXIMUMLIFE}, + new [] {CRIT_CHANCE,CRIT_DAMAGE,}, + new [] {MELEEDAMAGEINCREASE,NONE,MAX_LIFE,PERCENTMAXIMUMLIFE}, new [] {STRENGTH,VITALITY,INTELLIGENCE,ATTACKSPEED,ATTACKCOSTREDUCTION,COOLDOWNREDUCTION}, new [] {ALL}, new [] {ALL,NONE}, new [] {ALL,NONE}, new [] {ALL}, - new [] {ARMOR,DAMAGEREDUCTION}, + new [] {ARMOR,DAMAGE_REDUCTION}, new [] {EMPTYSOCKET,NONE}, new [] {EMPTYSOCKET,NONE}, }) @@ -7963,15 +7958,15 @@ public static void PopulateItems() new [] {MELEEDMGFROMSTR,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, new [] {MELEEDAMAGEINCREASE,MELEEWEAPONRANGE,BASEMELEEDAMAGE,STRENGTH}, new [] {MELEEDAMAGEINCREASE,ATTACKSPEED,BASEMELEEDAMAGE,STRENGTH}, - new [] {MAXIMUMLIFE}, - new [] {MELEEDAMAGEINCREASE,MAXIMUMLIFE,PERCENTMAXIMUMLIFE}, + new [] {MAX_LIFE}, + new [] {MELEEDAMAGEINCREASE,MAX_LIFE,PERCENTMAXIMUMLIFE}, new [] {STRENGTH,VITALITY,INTELLIGENCE,ATTACKSPEED,ATTACKCOSTREDUCTION,COOLDOWNREDUCTION}, new [] {ALL}, new [] {ALL,NONE}, new [] {ALL,NONE}, new [] {ALL}, new [] {ALL}, - new [] {ARMOR,DAMAGEREDUCTION,ALLATTRIBUTES}, + new [] {ARMOR,DAMAGE_REDUCTION,ALL_ATTRIBUTES}, }) { name = Translations.ItemDataBase_ItemDefinitions_573/*Yorium's Ruthlessness*/, //tr @@ -7994,15 +7989,15 @@ public static void PopulateItems() new [] {MELEEDMGFROMSTR,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, new [] {MELEEDAMAGEINCREASE,MELEEWEAPONRANGE,BASEMELEEDAMAGE,STRENGTH}, new [] {MELEEDAMAGEINCREASE,ATTACKSPEED,BASEMELEEDAMAGE,STRENGTH}, - new [] {MAXIMUMLIFE}, - new [] {MELEEDAMAGEINCREASE,MAXIMUMLIFE,PERCENTMAXIMUMLIFE}, + new [] {MAX_LIFE}, + new [] {MELEEDAMAGEINCREASE,MAX_LIFE,PERCENTMAXIMUMLIFE}, new [] {STRENGTH,VITALITY,INTELLIGENCE,ATTACKSPEED,ATTACKCOSTREDUCTION,COOLDOWNREDUCTION}, new [] {ALL}, new [] {ALL,NONE}, new [] {ALL,NONE}, new [] {ALL}, new [] {ALL}, - new [] {ARMOR,DAMAGEREDUCTION,ALLATTRIBUTES}, + new [] {ARMOR,DAMAGE_REDUCTION,ALL_ATTRIBUTES}, new [] {EMPTYSOCKET,NONE}, new [] {EMPTYSOCKET,NONE}, new [] {EMPTYSOCKET,NONE}, @@ -8028,15 +8023,15 @@ public static void PopulateItems() new [] {MELEEDMGFROMSTR,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, new [] {MELEEDAMAGEINCREASE,MELEEWEAPONRANGE,BASEMELEEDAMAGE,STRENGTH}, new [] {MELEEDAMAGEINCREASE,ATTACKSPEED,BASEMELEEDAMAGE,STRENGTH}, - new [] {MAXIMUMLIFE}, - new [] {MELEEDAMAGEINCREASE,MAXIMUMLIFE,PERCENTMAXIMUMLIFE}, + new [] {MAX_LIFE}, + new [] {MELEEDAMAGEINCREASE,MAX_LIFE,PERCENTMAXIMUMLIFE}, new [] {STRENGTH,VITALITY,INTELLIGENCE,ATTACKSPEED,ATTACKCOSTREDUCTION,COOLDOWNREDUCTION}, new [] {ALL}, new [] {ALL,NONE}, new [] {ALL,NONE}, new [] {ALL}, new [] {ALL}, - new [] {ARMOR,DAMAGEREDUCTION,ALLATTRIBUTES}, + new [] {ARMOR,DAMAGE_REDUCTION,ALL_ATTRIBUTES}, new [] {EMPTYSOCKET,NONE}, new [] {EMPTYSOCKET,NONE}, new [] {EMPTYSOCKET,NONE}, @@ -8062,15 +8057,15 @@ public static void PopulateItems() new [] {MELEEDMGFROMSTR,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, new [] {MELEEDAMAGEINCREASE,MELEEWEAPONRANGE,BASEMELEEDAMAGE,STRENGTH}, new [] {MELEEDAMAGEINCREASE,ATTACKSPEED,BASEMELEEDAMAGE,STRENGTH}, - new [] {MAXIMUMLIFE}, - new [] {MELEEDAMAGEINCREASE,MAXIMUMLIFE,PERCENTMAXIMUMLIFE}, + new [] {MAX_LIFE}, + new [] {MELEEDAMAGEINCREASE,MAX_LIFE,PERCENTMAXIMUMLIFE}, new [] {STRENGTH,VITALITY,INTELLIGENCE,ATTACKSPEED,ATTACKCOSTREDUCTION,COOLDOWNREDUCTION}, new [] {ALL}, new [] {ALL,NONE}, new [] {ALL,NONE}, new [] {ALL}, new [] {ALL}, - new [] {ARMOR,DAMAGEREDUCTION,ALLATTRIBUTES}, + new [] {ARMOR,DAMAGE_REDUCTION,ALL_ATTRIBUTES}, new [] {EMPTYSOCKET,NONE}, new [] {EMPTYSOCKET,NONE}, }) @@ -8094,15 +8089,15 @@ public static void PopulateItems() new [] {MELEEDMGFROMSTR,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, new [] {MELEEDAMAGEINCREASE,MELEEWEAPONRANGE,BASEMELEEDAMAGE,STRENGTH}, new [] {MELEEDAMAGEINCREASE,ATTACKSPEED,BASEMELEEDAMAGE,STRENGTH}, - new [] {MAXIMUMLIFE}, - new [] {MELEEDAMAGEINCREASE,MAXIMUMLIFE,PERCENTMAXIMUMLIFE}, + new [] {MAX_LIFE}, + new [] {MELEEDAMAGEINCREASE,MAX_LIFE,PERCENTMAXIMUMLIFE}, new [] {STRENGTH,VITALITY,INTELLIGENCE,ATTACKSPEED,ATTACKCOSTREDUCTION,COOLDOWNREDUCTION}, new [] {ALL}, new [] {ALL,NONE}, new [] {ALL,NONE}, new [] {ALL}, new [] {ALL}, - new [] {ARMOR,DAMAGEREDUCTION,ALLATTRIBUTES}, + new [] {ARMOR,DAMAGE_REDUCTION,ALL_ATTRIBUTES}, new [] {EMPTYSOCKET,NONE}, new [] {EMPTYSOCKET,NONE}, new [] {EMPTYSOCKET,NONE}, @@ -8130,15 +8125,15 @@ public static void PopulateItems() new [] {RANGEDDAMAGEINCREASE,BASERANGEDDAMAGE,AGILITY}, new [] {SPELLDAMAGEINCREASE,BASESPELLDAMAGE,INTELLIGENCE}, new [] {ALL}, - new [] {MAXIMUMLIFE}, - new [] {MAXIMUMLIFE,PERCENTMAXIMUMLIFE,MAXIMUMENERGY,PERCENTMAXIMUMENERGY}, - new [] {STRENGTH,VITALITY,INTELLIGENCE,AGILITY,ALLATTRIBUTES,ATTACKSPEED,ATTACKCOSTREDUCTION,SPELLCOSTREDUCTION,COOLDOWNREDUCTION}, + new [] {MAX_LIFE}, + new [] {MAX_LIFE,PERCENTMAXIMUMLIFE,MAX_ENERGY,PERCENTMAXIMUMENERGY}, + new [] {STRENGTH,VITALITY,INTELLIGENCE,AGILITY,ALL_ATTRIBUTES,ATTACKSPEED,ATTACKCOSTREDUCTION,SPELLCOSTREDUCTION,COOLDOWNREDUCTION}, new [] {ALL}, new [] {ALL,NONE}, new [] {ALL,NONE}, new [] {ALL}, new [] {ALL}, - new [] {ARMOR,DAMAGEREDUCTION,ALLATTRIBUTES,NONE}, + new [] {ARMOR,DAMAGE_REDUCTION,ALL_ATTRIBUTES,NONE}, }) { @@ -8156,7 +8151,7 @@ public static void PopulateItems() }; new BaseItem(new Stat[][] { - new [] {CRITICALHITDAMAGE}, + new [] {CRIT_DAMAGE}, new [] {STRENGTH,VITALITY,INTELLIGENCE,AGILITY }, new [] {ALL}, new [] {ALL}, @@ -8168,8 +8163,8 @@ public static void PopulateItems() new [] {ALL}, new [] {ALL}, new [] {ALL}, - new [] {ARMOR,DAMAGEREDUCTION }, - new [] {MAXIMUMLIFE}, + new [] {ARMOR,DAMAGE_REDUCTION }, + new [] {MAX_LIFE}, }) { @@ -8183,7 +8178,7 @@ public static void PopulateItems() type = BaseItem.ItemType.Pants, icon = Res.ResourceLoader.GetTexture(87), onEquip = () => { ModdedPlayer.Stats.spell_frenzy_active_critChance.Add(0.05f); ModdedPlayer.Stats.spell_frenzyAtkSpeed.Add(0.03f); }, - onUnequip = () => { ModdedPlayer.Stats.spell_frenzy_active_critChance.Substract(0.05f); ModdedPlayer.Stats.spell_frenzyAtkSpeed.Add(0.03f); }, + onUnequip = () => { ModdedPlayer.Stats.spell_frenzy_active_critChance.Sub(0.05f); ModdedPlayer.Stats.spell_frenzyAtkSpeed.Add(0.03f); }, }; @@ -8195,8 +8190,8 @@ public static void PopulateItems() new [] {STRENGTH,VITALITY,INTELLIGENCE,AGILITY }, new [] {MELEEDAMAGEINCREASE, SPELLDAMAGEINCREASE }, new [] {ATTACKSPEED}, - new [] {CRITICALHITCHANCE}, - new [] {CRITICALHITDAMAGE}, + new [] {CRIT_CHANCE}, + new [] {CRIT_DAMAGE}, new [] {MELEEDMGFROMSTR}, new [] {ALL}, new [] {ALL}, @@ -8205,7 +8200,7 @@ public static void PopulateItems() new [] {ALL}, new [] {ALL}, new [] {BLOCK, NONE}, - new [] {MAXIMUMLIFE}, + new [] {MAX_LIFE}, }) { @@ -8220,7 +8215,7 @@ public static void PopulateItems() weaponModel = BaseItem.WeaponModelType.GreatSword, icon = Res.ResourceLoader.GetTexture(88), onEquip = () => ModdedPlayer.Stats.spell_berserkDamage.Add(3f), - onUnequip = () => ModdedPlayer.Stats.spell_berserkDamage.Substract(3f), + onUnequip = () => ModdedPlayer.Stats.spell_berserkDamage.Sub(3f), }.PossibleStats[0][0].multipier = 5; new BaseItem(new Stat[][] { @@ -8229,8 +8224,8 @@ public static void PopulateItems() new [] {STRENGTH,VITALITY,INTELLIGENCE,AGILITY }, new [] {MELEEDAMAGEINCREASE, SPELLDAMAGEINCREASE }, new [] {ATTACKSPEED}, - new [] {CRITICALHITCHANCE}, - new [] {CRITICALHITDAMAGE}, + new [] {CRIT_CHANCE}, + new [] {CRIT_DAMAGE}, new [] {MELEEDMGFROMSTR}, new [] {STRENGTH}, new [] {ALL}, @@ -8249,7 +8244,7 @@ public static void PopulateItems() weaponModel = BaseItem.WeaponModelType.GreatSword, icon = Res.ResourceLoader.GetTexture(88), onEquip = () => ModdedPlayer.Stats.spell_berserkDamage.Add(1f), - onUnequip = () => ModdedPlayer.Stats.spell_berserkDamage.Substract(1f), + onUnequip = () => ModdedPlayer.Stats.spell_berserkDamage.Sub(1f), }.PossibleStats[0][0].multipier = 2; new BaseItem(new Stat[][] @@ -8258,8 +8253,8 @@ public static void PopulateItems() new [] {ALL}, new [] {ALL}, new [] {BASESPELLDAMAGE,BASERANGEDDAMAGE,BASEMELEEDAMAGE, NONE}, - new [] {SPELLDMGFROMINT,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,DAMAGEREDUCTION}, - new [] {ALLATTRIBUTES,AGILITY,STRENGTH,INTELLIGENCE,VITALITY}, + new [] {SPELLDMGFROMINT,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,DAMAGE_REDUCTION}, + new [] {ALL_ATTRIBUTES,AGILITY,STRENGTH,INTELLIGENCE,VITALITY}, }) { @@ -8279,16 +8274,16 @@ public static void PopulateItems() }, onUnequip = () => { - ModdedPlayer.Stats.spell_berserkAttackSpeed.Substract(0.1f); - ModdedPlayer.Stats.spell_berserkMovementSpeed.Substract(0.1f); + ModdedPlayer.Stats.spell_berserkAttackSpeed.Sub(0.1f); + ModdedPlayer.Stats.spell_berserkMovementSpeed.Sub(0.1f); }, }; new BaseItem(new Stat[][] { - new [] {STRENGTH,VITALITY,AGILITY,ALLATTRIBUTES,INTELLIGENCE}, + new [] {STRENGTH,VITALITY,AGILITY,ALL_ATTRIBUTES,INTELLIGENCE}, new [] {MAXENERGYFROMAGI,MELEEDMGFROMSTR,SPELLDMGFROMINT,RANGEDDMGFROMAGI,MAXHEALTHFROMVIT}, - new [] {ARMOR,DAMAGEREDUCTION}, - new [] { CRITICALHITCHANCE, CRITICALHITDAMAGE}, + new [] {ARMOR,DAMAGE_REDUCTION}, + new [] { CRIT_CHANCE, CRIT_DAMAGE}, new [] {ALL}, new [] {ALL}, new [] {ALL}, @@ -8299,7 +8294,7 @@ public static void PopulateItems() new [] {ALL}, new [] {ALL}, new [] {BASESPELLDAMAGE,BASERANGEDDAMAGE,BASEMELEEDAMAGE, NONE}, - new [] {SPELLDMGFROMINT,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,DAMAGEREDUCTION}, + new [] {SPELLDMGFROMINT,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,DAMAGE_REDUCTION}, }) { @@ -8323,25 +8318,25 @@ public static void PopulateItems() { ModdedPlayer.Stats.meleeIncreasedDmg.Divide(2f); ModdedPlayer.Stats.rangedIncreasedDmg.Divide(2f); - ModdedPlayer.Stats.spell_berserkAttackSpeed.Substract(0.15f); - ModdedPlayer.Stats.spell_berserkMovementSpeed.Substract(0.3f); + ModdedPlayer.Stats.spell_berserkAttackSpeed.Sub(0.15f); + ModdedPlayer.Stats.spell_berserkMovementSpeed.Sub(0.3f); }, }; new BaseItem(new Stat[][] { - new[] { LIFEPERSECOND }, + new[] { LIFE_REGEN_BASE }, new[] { ARMOR, NONE, ALLHEALINGPERCENT }, new[] { ALL}, new[] { SPELLDMGFROMINT }, - new[] { SPELLCOSTREDUCTION,SPELLCOSTTOSTAMINA,ARMOR,ALLATTRIBUTES}, - new[] { BASESPELLDAMAGE, SPELLDAMAGEINCREASE, INTELLIGENCE, ALLATTRIBUTES }, - new[] { BASESPELLDAMAGE, SPELLDAMAGEINCREASE, INTELLIGENCE, DAMAGEREDUCTION }, - new[] { VITALITY, MAXHEALTHFROMVIT, MAXIMUMLIFE, PERCENTMAXIMUMLIFE, LIFEPERSECOND, LIFEONHIT }, - new[] { SPELLCOSTREDUCTION, COOLDOWNREDUCTION, CRITICALHITCHANCE, CRITICALHITDAMAGE, ARMOR,MAXHEALTHFROMVIT }, - new[] { DAMAGEREDUCTION, PERCENTMAXIMUMENERGY, LIFEREGENERATION }, + new[] { SPELLCOSTREDUCTION,SPELLCOSTTOSTAMINA,ARMOR,ALL_ATTRIBUTES}, + new[] { BASESPELLDAMAGE, SPELLDAMAGEINCREASE, INTELLIGENCE, ALL_ATTRIBUTES }, + new[] { BASESPELLDAMAGE, SPELLDAMAGEINCREASE, INTELLIGENCE, DAMAGE_REDUCTION }, + new[] { VITALITY, MAXHEALTHFROMVIT, MAX_LIFE, PERCENTMAXIMUMLIFE, LIFE_REGEN_BASE, LIFEONHIT }, + new[] { SPELLCOSTREDUCTION, COOLDOWNREDUCTION, CRIT_CHANCE, CRIT_DAMAGE, ARMOR,MAXHEALTHFROMVIT }, + new[] { DAMAGE_REDUCTION, PERCENTMAXIMUMENERGY, LIFE_REGEN_MULT }, new[] { ENERGYPERSECOND, PERCENTMAXIMUMENERGY, MAXENERGYFROMAGI }, - new[] { INTELLIGENCE, STAMINAPERSECOND, STAMINAREGENERATION, ALLATTRIBUTES, ALLHEALINGPERCENT }, - new[] { ENERGYONHIT, ENERGYPERSECOND, MAXIMUMLIFE, MASSACREDURATION, MAGICFIND, EXPLOSIONDAMAGE }, + new[] { INTELLIGENCE, STAMINA_REGEN_BASE, STAMINA_AND_ENERGY_REGEN_MULT, ALL_ATTRIBUTES, ALLHEALINGPERCENT }, + new[] { ENERGYONHIT, ENERGYPERSECOND, MAX_LIFE, MASSACREDURATION, MAGICFIND, EXPLOSIONDAMAGE }, }) { name = Translations.ItemDataBase_ItemDefinitions_617, //tr @@ -8356,11 +8351,11 @@ public static void PopulateItems() onEquip = () => { ModdedPlayer.Stats.spell_healingDomeCooldownRate.Add(1.0f); - ModdedPlayer.Stats.spell_healingDomeSpellCostReduction.Substract(0.4f); + ModdedPlayer.Stats.spell_healingDomeSpellCostReduction.Sub(0.4f); }, onUnequip = () => { - ModdedPlayer.Stats.spell_healingDomeCooldownRate.Substract(1.0f); + ModdedPlayer.Stats.spell_healingDomeCooldownRate.Sub(1.0f); ModdedPlayer.Stats.spell_healingDomeSpellCostReduction.Add(0.4f); }, }; diff --git a/Items/ItemDataBase_StatDefinitions.cs b/Items/ItemDataBase_StatDefinitions.cs index 5f84ee5..c52c6a3 100644 --- a/Items/ItemDataBase_StatDefinitions.cs +++ b/Items/ItemDataBase_StatDefinitions.cs @@ -22,15 +22,15 @@ public enum Stat AGILITY, VITALITY, INTELLIGENCE, - MAXIMUMLIFE, - MAXIMUMENERGY, - LIFEPERSECOND, - STAMINAPERSECOND, - STAMINAREGENERATION, - LIFEREGENERATION, - DAMAGEREDUCTION, - CRITICALHITCHANCE, - CRITICALHITDAMAGE, + MAX_LIFE, + MAX_ENERGY, + LIFE_REGEN_BASE, + STAMINA_REGEN_BASE, + STAMINA_AND_ENERGY_REGEN_MULT, + LIFE_REGEN_MULT, + DAMAGE_REDUCTION, + CRIT_CHANCE, + CRIT_DAMAGE, LIFEONHIT, DODGECHANCE, ARMOR, @@ -74,7 +74,7 @@ public enum Stat RANGEDARMORPIERCING, ARMORPIERCING, MAGICFIND, - ALLATTRIBUTES, + ALL_ATTRIBUTES, REFUNDPOINTS, JUMPPOWER, HEADSHOTDAMAGE, @@ -106,39 +106,106 @@ public enum Stat public static void PopulateStats() { + // Attributes new ItemStatBuilder(Stat.STRENGTH, "Strength", 2f, 3f) .AffectsStat(ModdedPlayer.Stats.strength) .Additive(ModdedPlayer.Stats.strength) - .AdditiveComparing() - .LevelScaling(0.4f) - + .LevelScaling(0.4f); + + new ItemStatBuilder(Stat.AGILITY, "Agility", 2f, 3f) + .AffectsStat(ModdedPlayer.Stats.agility) + .Additive(ModdedPlayer.Stats.agility) + .LevelScaling(0.4f); + + new ItemStatBuilder(Stat.VITALITY, "Vitality", 2f, 3f) + .AffectsStat(ModdedPlayer.Stats.vitality) + .Additive(ModdedPlayer.Stats.vitality) + .LevelScaling(0.4f); + + new ItemStatBuilder(Stat.INTELLIGENCE, "Intelligence", 2f, 3f) + .AffectsStat(ModdedPlayer.Stats.vitality) + .Additive(ModdedPlayer.Stats.vitality) + .LevelScaling(0.4f); + + new ItemStatBuilder(Stat.ALL_ATTRIBUTES, "All Attributes", 1f, 1.5f) + { + OnEquip = f => { + ModdedPlayer.Stats.strength.Add((int)f); + ModdedPlayer.Stats.intelligence.Add((int)f); + ModdedPlayer.Stats.agility.Add((int)f); + ModdedPlayer.Stats.vitality.Add((int)f); + }, + OnUnequip = f => { + ModdedPlayer.Stats.strength.Sub((int)f); + ModdedPlayer.Stats.intelligence.Sub((int)f); + ModdedPlayer.Stats.agility.Sub((int)f); + ModdedPlayer.Stats.vitality.Sub((int)f); + }, + GetTotalStat = () => $"{ModdedPlayer.Stats.strength} Str, {ModdedPlayer.Stats.agility} Agi, {ModdedPlayer.Stats.intelligence} Int, {ModdedPlayer.Stats.vitality} Vit" + }.LevelScaling(0.4f); + + + // Life + new ItemStatBuilder(Stat.MAX_LIFE, "Max Life", 3.75f, 5.65f) + .AffectsStat(ModdedPlayer.Stats.maxLife) + .Additive(ModdedPlayer.Stats.maxLife) + .LevelScaling(1.21f); + + new ItemStatBuilder(Stat.MAX_ENERGY, "Max Energy", 0.7f, 1.5f) + .AffectsStat(ModdedPlayer.Stats.maxEnergy) + .Additive(ModdedPlayer.Stats.maxEnergy) + .LevelScaling(0.5f); + + new ItemStatBuilder(Stat.LIFE_REGEN_BASE, "Life Regeneration", 0.013f, 0.023f) + .AffectsStat(ModdedPlayer.Stats.lifeRegenBase) + .Additive(ModdedPlayer.Stats.lifeRegenBase) + .LinearLevelScaling() + .RoundTo(2); + + new ItemStatBuilder(Stat.STAMINA_REGEN_BASE, "Stamina Regeneration", 0.035f, 0.11f) + .AffectsStat(ModdedPlayer.Stats.staminaRegenBase) + .Additive(ModdedPlayer.Stats.staminaRegenBase) + .LevelScaling(0.5f) + .RoundTo(2); + + new ItemStatBuilder(Stat.STAMINA_AND_ENERGY_REGEN_MULT, "Stamina and Energy Regeneration", 0.04f, 0.08f) + .AffectsStat(ModdedPlayer.Stats.energyRegenMult) + .Additive(ModdedPlayer.Stats.energyRegenMult) + .LevelScaling(0.1f) + .RarityScaling(0.2f) + .PercentFormatting() + .RoundTo(2); + + new ItemStatBuilder(Stat.LIFE_REGEN_MULT, "Life Regeneration", 0.04f, 0.08f) + .AffectsStat(ModdedPlayer.Stats.lifeRegenMult) + .Additive(ModdedPlayer.Stats.lifeRegenMult) + .LevelScaling(0.1f) + .RarityScaling(0.2f) + .PercentFormatting(); + + new ItemStatBuilder(Stat.DAMAGE_REDUCTION, "Reduced Damage Taken", 0.03f, 0.07f) // needs tweaking + .AffectsStat(ModdedPlayer.Stats.allDamageTaken) + .OneMinusMultiplier(ModdedPlayer.Stats.allDamageTaken) + .LevelScaling(0.1f) + .RarityScaling(0.33f) + .PercentFormatting(); + + new ItemStatBuilder(Stat.CRIT_CHANCE, "Critical Hit Chance", 0.035f, 0.06f) + .AffectsStat(ModdedPlayer.Stats.critChance) + .Additive(ModdedPlayer.Stats.critChance) // change to OneMinusMultiplier if you dont want players reaching 100% crit chance + .LevelScaling(0.1f) + .RarityScaling(0.1f) + .PercentFormatting() + .RoundTo(2); + + new ItemStatBuilder(Stat.CRIT_DAMAGE, "Critical Hit Damage", 0.30f, 0.50f) + .AffectsStat(ModdedPlayer.Stats.critDamage) + .Additive(ModdedPlayer.Stats.critDamage) + .LevelScaling(0.1f) + .RarityScaling(0.1f) + .PercentFormatting(); + - int i = 1; - new ItemStat(i, 1.5f, 2.2f, 0.8f, Translations.MainMenu_Guide_4/*Strength*/, scAdd, 4, //tr - ()=>ModdedPlayer.Stats.strength.GetFormattedAmount(), StatActions.AddStrength, StatActions.RemoveStrength, StatActions.AddStrength); - i++; - new ItemStat(i, 1.5f, 2.2f, 0.8f, Translations.MainMenu_Guide_6/*Agility*/, scAdd, 4, () => ModdedPlayer.Stats.agility.GetFormattedAmount(), StatActions.AddAgility, StatActions.RemoveAgility, StatActions.AddAgility); //tr - i++; - new ItemStat(i, 1.5f, 2.2f, 0.8f, Translations.MainMenu_Guide_8/*Vitality*/, scAdd, 4, () => ModdedPlayer.Stats.vitality.GetFormattedAmount(), StatActions.AddVitality, StatActions.RemoveVitality, StatActions.AddVitality); //tr - i++; - new ItemStat(i, 1.5f, 2.2f, 0.8f, Translations.MainMenu_Guide_10/*Intelligence*/, scAdd, 4, () => ModdedPlayer.Stats.intelligence.GetFormattedAmount(), StatActions.AddIntelligence, StatActions.RemoveIntelligence, StatActions.AddIntelligence); //tr - i++; - new ItemStat(i, 3.75f, 5.65f, 1.21f, Translations.ItemDataBase_StatDefinitions_1/*Maximum Life*/, scAdd, 3, () => ModdedPlayer.Stats.maxHealth.GetFormattedAmount(), StatActions.AddHealth, StatActions.RemoveHealth, StatActions.AddHealth); //tr - i++; - new ItemStat(i, 1f, 1.30f, 1.21f, Translations.ItemDataBase_StatDefinitions_2/*Maximum Energy*/, scAdd, 3, () => ModdedPlayer.Stats.maxEnergy.GetFormattedAmount(), StatActions.AddEnergy, StatActions.RemoveEnergy, StatActions.AddEnergy); //tr - i++; - new ItemStat(i, 0.013f, 0.0225f, 1.05f, Translations.ItemDataBase_StatDefinitions_3/*Life Per Second*/, scAdd, 3, () => ModdedPlayer.Stats.healthRecoveryPerSecond.GetFormattedAmount(), StatActions.AddHPRegen, StatActions.RemoveHPRegen, StatActions.AddHPRegen) { displayAsPercent = false, roundingCount = 2 }; //tr - i++; - new ItemStat(i, 0.025f, 0.031f, 1.23f, Translations.ItemDataBase_StatDefinitions_4/*Stamina Per Second*/, scAdd, 2, () => ModdedPlayer.Stats.staminaRecoveryperSecond.GetFormattedAmount(), StatActions.AddStaminaRegen, StatActions.RemoveStaminaRegen, StatActions.AddStaminaRegen) { displayAsPercent = false, roundingCount = 2 }; //tr - i++; - new ItemStat(i, 0.02f, 0.03f, 0.45f, Translations.ItemDataBase_StatDefinitions_5/*Energy Regeneration*/, scAdd,5, () => ModdedPlayer.Stats.staminaPerSecRate.GetFormattedAmount(), StatActions.AddStaminaRegenPercent, StatActions.RemoveStaminaRegenPercent, StatActions.AddStaminaRegenPercent) { displayAsPercent = true, roundingCount = 1, valueCap = 2f }; //tr - i++; - new ItemStat(i, 0.02f, 0.03f, 0.45f, Translations.ItemDataBase_StatDefinitions_6/*Life Regeneration*/, scAdd, 5, () => ModdedPlayer.Stats.healthPerSecRate.GetFormattedAmount(), StatActions.AddHealthRegenPercent, StatActions.RemoveHealthRegenPercent, StatActions.AddHealthRegenPercent) { displayAsPercent = true, roundingCount = 1, valueCap = 1.5f }; //tr - i++; - new ItemStat(i, 0.005f, 0.0075f, 0.5f, Translations.MainMenu_Guide_23/*Damage Reduction*/, scOneMinusMult, 4, () => (1-ModdedPlayer.Stats.allDamageTaken).ToString("P"), StatActions.AddDamageReduction, StatActions.RemoveDamageReduction, StatActions.AddDamageReduction) { valueCap = 0.4f, displayAsPercent = true, roundingCount = 1 }; //tr - i++; - new ItemStat(i, 0.008f, 0.0125f, 0.25f, Translations.ItemDataBase_StatDefinitions_7/*Critical Hit Chance*/, scAdd, 6, () => ModdedPlayer.Stats.critChance.GetFormattedAmount(), StatActions.AddCritChance, StatActions.RemoveCritChance, StatActions.AddCritChance) { displayAsPercent = true, roundingCount = 1, valueCap = 0.5f }; //tr - i++; new ItemStat(i, 0.03f, 0.06f, 0.4f, Translations.MainMenu_Guide_46, scAdd, 6, () => ModdedPlayer.Stats.critDamage.GetFormattedAmount(), StatActions.AddCritDamage, StatActions.RemoveCritDamage, StatActions.AddCritDamage) { displayAsPercent = true, roundingCount = 1, valueCap = 10f };//tr i++; new ItemStat(i, 0.07f, 0.13f, 1f, Translations.ItemDataBase_StatDefinitions_8/*Life on hit*/, scAdd, 4, () => ModdedPlayer.Stats.healthOnHit.GetFormattedAmount(), StatActions.AddLifeOnHit, StatActions.RemoveLifeOnHit, StatActions.AddLifeOnHit) diff --git a/Items/ItemDefinitions/Shields.cs b/Items/ItemDefinitions/Shields.cs new file mode 100644 index 0000000..0d76612 --- /dev/null +++ b/Items/ItemDefinitions/Shields.cs @@ -0,0 +1,11 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace ChampionsOfForest.Items.ItemDefinitions +{ + internal class Shields + { + } +} diff --git a/Items/ItemStat.cs b/Items/ItemStat.cs index da3fb5e..9c980f0 100644 --- a/Items/ItemStat.cs +++ b/Items/ItemStat.cs @@ -50,9 +50,17 @@ public ItemStatBuilder Additive(IAdditiveStat stat) { this.comparingFunc = CompareAdd; this.OnEquip = f => stat.Add(f); - this.OnUnequip = f => stat.Substract(f); + this.OnUnequip = f => stat.Sub(f); return this; } + public ItemStatBuilder Additive(IAdditiveStat stat) + { + this.comparingFunc = CompareAdd; + this.OnEquip = f => stat.Add((int)f); + this.OnUnequip = f => stat.Sub((int)f); + return this; + } + public ItemStatBuilder Multiplicative(IMultiplicativeStat stat) { this.comparingFunc = CompareMult; @@ -61,7 +69,7 @@ public ItemStatBuilder Multiplicative(IMultiplicativeStat stat) return this; } - public ItemStatBuilder MultPlus1Comparing(IMultiplicativeStat stat) + public ItemStatBuilder MultiplyPlusOne(IMultiplicativeStat stat) { this.comparingFunc = CompareMultPlus1; this.OnEquip = f => stat.Multiply(f+1f); @@ -69,7 +77,7 @@ public ItemStatBuilder MultPlus1Comparing(IMultiplicativeStat stat) return this; } - public ItemStatBuilder OneMinusMultComparing(IMultiplicativeStat stat) + public ItemStatBuilder OneMinusMultiplier(IMultiplicativeStat stat) { this.comparingFunc = Compare1MinusMult; this.OnEquip = f => stat.Multiply(1f-f); @@ -117,6 +125,23 @@ public ItemStatBuilder AffectsStat(NumericPlayerStatBase stat) where T : s return this; } + public ItemStatBuilder RoundTo(int digitsAfterZero) + { + this.roundingCount = digitsAfterZero; + return this; + } + + public ItemStatBuilder PercentFormatting() + { + this.displayAsPercent = true; + return this; + } + + public ItemStatBuilder Cap(float maximumPossibleValue) + { + this.valueCap = maximumPossibleValue; + return this; + } } public class ItemStat diff --git a/Items/ItemTemplates.cs b/Items/ItemTemplates.cs index afb6954..15e2628 100644 --- a/Items/ItemTemplates.cs +++ b/Items/ItemTemplates.cs @@ -15,12 +15,38 @@ public abstract class ItemTemplateBuilder : BaseItem { private static List defaultStats = null; + private static List magicStats = null; + private static List meleeStats = null; + private static List rangedStats = null; + private static List defenseStats = null; + private static List recoveryStats = null; public ItemTemplateBuilder() { if (defaultStats == null || defaultStats.Count() == 0) { defaultStats = ToItemStatList(defaultStatIds); } + if (magicStats == null || magicStats.Count() == 0) + { + magicStats = ToItemStatList(magicStatIds); + } + if (meleeStats == null || meleeStats.Count() == 0) + { + meleeStats = ToItemStatList(meleeStatIds); + } + if (rangedStats == null || rangedStats.Count() == 0) + { + rangedStats = ToItemStatList(rangedStatIds); + } + if (defenseStats == null || defenseStats.Count() == 0) + { + defenseStats = ToItemStatList(defenseStatIds); + } + if (recoveryStats == null || recoveryStats.Count() == 0) + { + recoveryStats = ToItemStatList(recoveryStatIds); + } + ID = ItemDataBase._Item_Bases.Count; ItemDataBase._Item_Bases.Add(this); } @@ -38,51 +64,51 @@ protected List ToItemStatList(Stat[] stats) // pool of stats to appear on items by default private readonly Stat[] defaultStatIds = new Stat[] { - STRENGTH, - AGILITY, - VITALITY, - INTELLIGENCE, - MAXIMUMLIFE, - MAXIMUMENERGY, - LIFEPERSECOND, - STAMINAPERSECOND, - STAMINAREGENERATION, - LIFEREGENERATION, - DAMAGEREDUCTION, - CRITICALHITCHANCE, - CRITICALHITDAMAGE, - LIFEONHIT, - DODGECHANCE, - ARMOR, - RESISTANCETOMAGIC, - ATTACKSPEED, - EXPGAIN, - MASSACREDURATION, - SPELLDAMAGEINCREASE, - MELEEDAMAGEINCREASE, - RANGEDDAMAGEINCREASE, - BASESPELLDAMAGE, - BASEMELEEDAMAGE, - BASERANGEDDAMAGE, - ALLHEALINGPERCENT, - MOVEMENTSPEED, - ATTACKCOSTREDUCTION, - SPELLCOSTREDUCTION, - SPELLCOSTTOSTAMINA, - LESSERSTRENGTH, - LESSERAGILITY, - LESSERVITALITY, - LESSERINTELLIGENCE, - LESSERARMOR, - ENERGYPERSECOND, - PERCENTMAXIMUMLIFE, - PERCENTMAXIMUMENERGY, - COOLDOWNREDUCTION, - ENERGYONHIT, - MAGICFIND, // think about keeping this later - ALLATTRIBUTES, - JUMPPOWER, - THORNS + STRENGTH, + AGILITY, + VITALITY, + INTELLIGENCE, + MAX_LIFE, + MAX_ENERGY, + LIFE_REGEN_BASE, + STAMINA_REGEN_BASE, + STAMINA_AND_ENERGY_REGEN_MULT, + LIFE_REGEN_MULT, + DAMAGE_REDUCTION, + CRIT_CHANCE, + CRIT_DAMAGE, + LIFEONHIT, + DODGECHANCE, + ARMOR, + RESISTANCETOMAGIC, + ATTACKSPEED, + EXPGAIN, + MASSACREDURATION, + SPELLDAMAGEINCREASE, + MELEEDAMAGEINCREASE, + RANGEDDAMAGEINCREASE, + BASESPELLDAMAGE, + BASEMELEEDAMAGE, + BASERANGEDDAMAGE, + ALLHEALINGPERCENT, + MOVEMENTSPEED, + ATTACKCOSTREDUCTION, + SPELLCOSTREDUCTION, + SPELLCOSTTOSTAMINA, + LESSERSTRENGTH, + LESSERAGILITY, + LESSERVITALITY, + LESSERINTELLIGENCE, + LESSERARMOR, + ENERGYPERSECOND, + PERCENTMAXIMUMLIFE, + PERCENTMAXIMUMENERGY, + COOLDOWNREDUCTION, + ENERGYONHIT, + MAGICFIND, // think about keeping this later + ALL_ATTRIBUTES, + JUMPPOWER, + THORNS }; // adds the defaultStatIds n times to the stat pool for the item @@ -158,7 +184,104 @@ public ItemTemplateBuilder Icon(int iconid) icon = Res.ResourceLoader.GetTexture(iconid); // Texture2D <- int return this; } - } + + private readonly Stat[] magicStatIds = new Stat[] + { + INTELLIGENCE, + SPELLDAMAGEINCREASE, + BASESPELLDAMAGE, + SPELLCOSTREDUCTION, + ENERGYPERSECOND, + PERCENTMAXIMUMENERGY, + COOLDOWNREDUCTION, + SPELLDMGFROMINT + }; + + public ItemTemplateBuilder MagicStatSlot(int n = 1) + { + for (int i = 0; i < n; i++) + PossibleStats.Add(magicStats); + return this; + } + + private readonly Stat[] meleeStatIds = new Stat[] + { + STRENGTH, + MELEEDAMAGEINCREASE, + BASEMELEEDAMAGE, + MELEEDMGFROMSTR, + MELEEWEAPONRANGE, + MELEEARMORPIERCING, + }; + + public ItemTemplateBuilder MeleeStatSlot(int n = 1) + { + for (int i = 0; i < n; i++) + PossibleStats.Add(meleeStats); + return this; + } + + private readonly Stat[] rangedStatIds = new Stat[] + { + AGILITY, + RANGEDDAMAGEINCREASE, + BASERANGEDDAMAGE, + RANGEDDMGFROMAGI, + PROJECTILESPEED, + PROJECTILESIZE, + RANGEDARMORPIERCING, + HEADSHOTDAMAGE, + PIERCECHANCE, + SPEARDAMAGE, + }; + + public ItemTemplateBuilder RangedStatSlot(int n = 1) + { + for (int i = 0; i < n; i++) + PossibleStats.Add(rangedStats); + return this; + } + + private readonly Stat[] defenseStatIds = new Stat[] + { + VITALITY, + MAX_LIFE, + DAMAGE_REDUCTION, + DODGECHANCE, + ARMOR, + RESISTANCETOMAGIC, + MAXHEALTHFROMVIT, + PERCENTMAXIMUMLIFE, + BLOCK, + THORNS, + }; + + public ItemTemplateBuilder DefenseStatSlot(int n = 1) + { + for (int i = 0; i < n; i++) + PossibleStats.Add(defenseStats); + return this; + } + + private readonly Stat[] recoveryStatIds = new Stat[] + { + LIFE_REGEN_BASE, + LIFE_REGEN_MULT, + LIFEONHIT, + ALLHEALINGPERCENT, + ENERGYPERSECOND, + ENERGYONHIT, + STAMINA_REGEN_BASE, + STAMINA_AND_ENERGY_REGEN_MULT, + }; + + public ItemTemplateBuilder RecoveryStatSlot(int n = 1) + { + for (int i = 0; i < n; i++) + PossibleStats.Add(recoveryStats); + return this; + } + } public class Greatsword : ItemTemplateBuilder { @@ -240,15 +363,15 @@ public class Shield : ItemTemplateBuilder { STRENGTH, VITALITY, - MAXIMUMLIFE, - MAXIMUMENERGY, - LIFEPERSECOND, - STAMINAPERSECOND, - STAMINAREGENERATION, - LIFEREGENERATION, - DAMAGEREDUCTION, - CRITICALHITCHANCE, - CRITICALHITDAMAGE, + MAX_LIFE, + MAX_ENERGY, + LIFE_REGEN_BASE, + STAMINA_REGEN_BASE, + STAMINA_AND_ENERGY_REGEN_MULT, + LIFE_REGEN_MULT, + DAMAGE_REDUCTION, + CRIT_CHANCE, + CRIT_DAMAGE, LIFEONHIT, DODGECHANCE, ARMOR, @@ -389,15 +512,15 @@ public class Amulet : ItemTemplateBuilder AGILITY, VITALITY, INTELLIGENCE, - MAXIMUMLIFE, - MAXIMUMENERGY, - LIFEPERSECOND, - STAMINAPERSECOND, - STAMINAREGENERATION, - LIFEREGENERATION, - DAMAGEREDUCTION, - CRITICALHITCHANCE, - CRITICALHITDAMAGE, + MAX_LIFE, + MAX_ENERGY, + LIFE_REGEN_BASE, + STAMINA_REGEN_BASE, + STAMINA_AND_ENERGY_REGEN_MULT, + LIFE_REGEN_MULT, + DAMAGE_REDUCTION, + CRIT_CHANCE, + CRIT_DAMAGE, LIFEONHIT, DODGECHANCE, ARMOR, @@ -433,7 +556,7 @@ public class Amulet : ItemTemplateBuilder MELEEARMORPIERCING, RANGEDARMORPIERCING, ARMORPIERCING, - ALLATTRIBUTES, + ALL_ATTRIBUTES, HEADSHOTDAMAGE, FIREDAMAGE, CHANCEONHITTOSLOW, @@ -480,14 +603,14 @@ public class Ring : ItemTemplateBuilder AGILITY, VITALITY, INTELLIGENCE, - MAXIMUMLIFE, - MAXIMUMENERGY, - LIFEPERSECOND, - STAMINAPERSECOND, - STAMINAREGENERATION, - LIFEREGENERATION, - CRITICALHITCHANCE, - CRITICALHITDAMAGE, + MAX_LIFE, + MAX_ENERGY, + LIFE_REGEN_BASE, + STAMINA_REGEN_BASE, + STAMINA_AND_ENERGY_REGEN_MULT, + LIFE_REGEN_MULT, + CRIT_CHANCE, + CRIT_DAMAGE, LIFEONHIT, ATTACKSPEED, EXPGAIN, @@ -508,7 +631,7 @@ public class Ring : ItemTemplateBuilder PROJECTILESPEED, PROJECTILESIZE, MAGICFIND, - ALLATTRIBUTES + ALL_ATTRIBUTES }; private static List ringStats = null; diff --git a/Items/Sets/ItemSets.cs b/Items/Sets/ItemSets.cs index 8b988c5..b3c0007 100644 --- a/Items/Sets/ItemSets.cs +++ b/Items/Sets/ItemSets.cs @@ -31,15 +31,15 @@ public static void Unequip() ModdedPlayer.Stats.spell_snowstormPullEnemiesIn.value = false; break; case 3: - ModdedPlayer.Stats.spell_snowstormMaxCharge.Substract(10); + ModdedPlayer.Stats.spell_snowstormMaxCharge.Sub(10); break; case 4: ModdedPlayer.Stats.spell_snowstormHitDelay.Divide(0.5f); - ModdedPlayer.Stats.spell_snowstormDamageMult.Substract(3f); + ModdedPlayer.Stats.spell_snowstormDamageMult.Sub(3f); break; } - ModdedPlayer.Stats.i_setcount_AkagisSet.Substract(1); - ModdedPlayer.Stats.spell_snowstormDamageMult.Substract(0.5f); + ModdedPlayer.Stats.i_setcount_AkagisSet.Sub(1); + ModdedPlayer.Stats.spell_snowstormDamageMult.Sub(0.5f); } } public static class BerserkSet @@ -61,12 +61,12 @@ public static void Unequip() switch (ModdedPlayer.Stats.i_setcount_BerserkSet.Value) { case 3: - ModdedPlayer.Stats.spell_berserkDuration.Substract(15); + ModdedPlayer.Stats.spell_berserkDuration.Sub(15); break; } ModdedPlayer.Stats.weaponRange.Divide(1.3f); ModdedPlayer.Stats.attackStaminaCost.Divide(0.5f); - ModdedPlayer.Stats.i_setcount_BerserkSet.Substract(1); + ModdedPlayer.Stats.i_setcount_BerserkSet.Sub(1); } } diff --git a/Items/StatActions.cs b/Items/StatActions.cs index b637af5..f9c4083 100644 --- a/Items/StatActions.cs +++ b/Items/StatActions.cs @@ -47,12 +47,12 @@ public static void RemoveIntelligence(float f) public static void AddHealth(float f) { - ModdedPlayer.Stats.maxHealth.Add(Mathf.RoundToInt(f)); + ModdedPlayer.Stats.maxLife.Add(Mathf.RoundToInt(f)); } public static void RemoveHealth(float f) { - ModdedPlayer.Stats.maxHealth.Substract(Mathf.RoundToInt(f)); + ModdedPlayer.Stats.maxLife.Substract(Mathf.RoundToInt(f)); } public static void AddEnergy(float f) @@ -67,22 +67,22 @@ public static void RemoveEnergy(float f) public static void AddHPRegen(float f) { - ModdedPlayer.Stats.healthRecoveryPerSecond.Add(f); + ModdedPlayer.Stats.lifeRegenBase.Add(f); } public static void RemoveHPRegen(float f) { - ModdedPlayer.Stats.healthRecoveryPerSecond.Substract(f); + ModdedPlayer.Stats.lifeRegenBase.Sub(f); } public static void AddStaminaRegen(float f) { - ModdedPlayer.Stats.staminaRecoveryperSecond.Add(f); + ModdedPlayer.Stats.energyRegenMult.Add(f); } public static void RemoveStaminaRegen(float f) { - ModdedPlayer.Stats.staminaRecoveryperSecond.Substract(f); + ModdedPlayer.Stats.energyRegenMult.Sub(f); } public static void AddEnergyRegen(float f) @@ -92,27 +92,27 @@ public static void AddEnergyRegen(float f) public static void RemoveEnergyRegen(float f) { - ModdedPlayer.Stats.energyRecoveryperSecond.Substract(f); + ModdedPlayer.Stats.energyRecoveryperSecond.Sub(f); } public static void AddStaminaRegenPercent(float f) { - ModdedPlayer.Stats.staminaPerSecRate.Add(f); + ModdedPlayer.Stats.staminaRegenBase.Add(f); } public static void RemoveStaminaRegenPercent(float f) { - ModdedPlayer.Stats.staminaPerSecRate.Substract(f); + ModdedPlayer.Stats.staminaRegenBase.Sub(f); } public static void AddHealthRegenPercent(float f) { - ModdedPlayer.Stats.healthPerSecRate.Add(f); + ModdedPlayer.Stats.lifeRegenMult.Add(f); } public static void RemoveHealthRegenPercent(float f) { - ModdedPlayer.Stats.healthPerSecRate.Substract(f); + ModdedPlayer.Stats.lifeRegenMult.Sub(f); } public static void AddDamageReduction(float f) @@ -132,7 +132,7 @@ public static void AddCritChance(float f) public static void RemoveCritChance(float f) { - ModdedPlayer.Stats.critChance.Substract(f); + ModdedPlayer.Stats.critChance.Sub(f); } public static void AddCritDamage(float f) @@ -142,7 +142,7 @@ public static void AddCritDamage(float f) public static void RemoveCritDamage(float f) { - ModdedPlayer.Stats.critDamage.Substract(f); + ModdedPlayer.Stats.critDamage.Sub(f); } public static void AddLifeOnHit(float f) @@ -152,7 +152,7 @@ public static void AddLifeOnHit(float f) public static void RemoveLifeOnHit(float f) { - ModdedPlayer.Stats.healthOnHit.Substract(f); + ModdedPlayer.Stats.healthOnHit.Sub(f); } public static void AddDodgeChance(float f) @@ -192,7 +192,7 @@ public static void AddAttackSpeed(float f) public static void RemoveAttackSpeed(float f) { - ModdedPlayer.Stats.attackSpeed.Substract(f); + ModdedPlayer.Stats.attackSpeed.Sub(f); } public static void AddExpFactor(float f) @@ -202,7 +202,7 @@ public static void AddExpFactor(float f) public static void RemoveExpFactor(float f) { - ModdedPlayer.Stats.expGain.Substract(f); + ModdedPlayer.Stats.expGain.Sub(f); } public static void AddMaxMassacreTime(float f) @@ -212,7 +212,7 @@ public static void AddMaxMassacreTime(float f) public static void RemoveMaxMassacreTime(float f) { - ModdedPlayer.Stats.maxMassacreTime.Substract(f); + ModdedPlayer.Stats.maxMassacreTime.Sub(f); } public static void AddSpellDamageAmplifier(float f) @@ -222,7 +222,7 @@ public static void AddSpellDamageAmplifier(float f) public static void RemoveSpellDamageAmplifier(float f) { - ModdedPlayer.Stats.spellIncreasedDmg.Substract(f); + ModdedPlayer.Stats.spellIncreasedDmg.Sub(f); } public static void AddMeleeDamageAmplifier(float f) @@ -232,7 +232,7 @@ public static void AddMeleeDamageAmplifier(float f) public static void RemoveMeleeDamageAmplifier(float f) { - ModdedPlayer.Stats.meleeIncreasedDmg.Substract(f); + ModdedPlayer.Stats.meleeIncreasedDmg.Sub(f); } public static void AddRangedDamageAmplifier(float f) @@ -242,7 +242,7 @@ public static void AddRangedDamageAmplifier(float f) public static void RemoveRangedDamageAmplifier(float f) { - ModdedPlayer.Stats.rangedIncreasedDmg.Substract(f); + ModdedPlayer.Stats.rangedIncreasedDmg.Sub(f); } public static void AddspellFlatDmg(float f) @@ -252,7 +252,7 @@ public static void AddspellFlatDmg(float f) public static void RemovespellFlatDmg(float f) { - ModdedPlayer.Stats.spellFlatDmg.Substract(f); + ModdedPlayer.Stats.spellFlatDmg.Sub(f); } public static void AddMeleeDamageBonus(float f) @@ -262,7 +262,7 @@ public static void AddMeleeDamageBonus(float f) public static void RemoveMeleeDamageBonus(float f) { - ModdedPlayer.Stats.meleeFlatDmg.Substract(f); + ModdedPlayer.Stats.meleeFlatDmg.Sub(f); } public static void AddRangedDamageBonus(float f) @@ -272,7 +272,7 @@ public static void AddRangedDamageBonus(float f) public static void RemoveRangedDamageBonus(float f) { - ModdedPlayer.Stats.rangedFlatDmg.Substract(f); + ModdedPlayer.Stats.rangedFlatDmg.Sub(f); } public static void AddmaxEnergyFromAgi(float f) @@ -282,7 +282,7 @@ public static void AddmaxEnergyFromAgi(float f) public static void RemovemaxEnergyFromAgi(float f) { - ModdedPlayer.Stats.maxEnergyFromAgi.Substract(f); + ModdedPlayer.Stats.maxEnergyFromAgi.Sub(f); } public static void AddmaxHealthFromVit(float f) @@ -292,7 +292,7 @@ public static void AddmaxHealthFromVit(float f) public static void RemovemaxHealthFromVit(float f) { - ModdedPlayer.Stats.maxHealthFromVit.Substract(f); + ModdedPlayer.Stats.maxHealthFromVit.Sub(f); } public static void AddspellDmgFromInt(float f) @@ -302,7 +302,7 @@ public static void AddspellDmgFromInt(float f) public static void RemovespellDmgFromInt(float f) { - ModdedPlayer.Stats.spellDmgFromInt.Substract(f); + ModdedPlayer.Stats.spellDmgFromInt.Sub(f); } public static void AddmeleeDmgFromStr(float f) @@ -312,7 +312,7 @@ public static void AddmeleeDmgFromStr(float f) public static void RemovemeleeDmgFromStr(float f) { - ModdedPlayer.Stats.meleeDmgFromStr.Substract(f); + ModdedPlayer.Stats.meleeDmgFromStr.Sub(f); } public static void AddHealingMultipier(float f) @@ -322,7 +322,7 @@ public static void AddHealingMultipier(float f) public static void RemoveHealingMultipier(float f) { - ModdedPlayer.Stats.allRecoveryMult.Substract(f); + ModdedPlayer.Stats.allRecoveryMult.Sub(f); } public static void AddMoveSpeed(float f) @@ -332,7 +332,7 @@ public static void AddMoveSpeed(float f) public static void RemoveMoveSpeed(float f) { - ModdedPlayer.Stats.movementSpeed.Substract(f); + ModdedPlayer.Stats.movementSpeed.Sub(f); } public static void AddJump(float f) @@ -342,7 +342,7 @@ public static void AddJump(float f) public static void RemoveJump(float f) { - ModdedPlayer.Stats.jumpPower.Substract(f); + ModdedPlayer.Stats.jumpPower.Sub(f); } // public static void Add( float f) @@ -372,7 +372,7 @@ public static void AddMagicFind(float f) public static void RemoveMagicFind(float f) { - ModdedPlayer.Stats.magicFind.Substract(f); + ModdedPlayer.Stats.magicFind.Sub(f); } diff --git a/Items/UniqueItemFunctions.cs b/Items/UniqueItemFunctions.cs index f80a0b9..3b01ce8 100644 --- a/Items/UniqueItemFunctions.cs +++ b/Items/UniqueItemFunctions.cs @@ -53,7 +53,7 @@ public static void EnemyBleedForPlayerHP(COTFEvents.HitOtherParams param) else { EnemyProgression prog = param.hitTarget as EnemyProgression; - prog.DoDoT(ModdedPlayer.Stats.maxHealth*150f, 15f); + prog.DoDoT(ModdedPlayer.Stats.maxLife*150f, 15f); } } diff --git a/Player/BuffDataBase.cs b/Player/BuffDataBase.cs index 4a4a05f..d986dfc 100644 --- a/Player/BuffDataBase.cs +++ b/Player/BuffDataBase.cs @@ -152,7 +152,7 @@ public static void FillBuffList() new Buff(10, 152, "Decreased Damage", true, false, 2, f => ModdedPlayer.Stats.allDamage.valueMultiplicative /= f, f => ModdedPlayer.Stats.allDamage.valueMultiplicative *= f); - new Buff(11, 160, "Stamina regen", false, false, 0, f => ModdedPlayer.Stats.staminaPerSecRate.Substract(f), f => ModdedPlayer.Stats.staminaPerSecRate.Add(f)); + new Buff(11, 160, "Stamina regen", false, false, 0, f => ModdedPlayer.Stats.staminaRegenBase.Sub(f), f => ModdedPlayer.Stats.staminaRegenBase.Add(f)); new Buff(12, 153, "Death Pact Damage", false, false) { OnAddOverrideAmount = true }; new Buff(13, 151, "Increased Melee Damage", false, false, 0, f => ModdedPlayer.Stats.meleeIncreasedDmg.valueMultiplicative /= f, f => ModdedPlayer.Stats.meleeIncreasedDmg.valueMultiplicative *= f); @@ -189,10 +189,10 @@ public static void FillBuffList() new Buff(21, 147, "Armor Corruption", true, true, 1, null, null) { DisplayAsPercent = false }; - new Buff(22, 151, "Increased Flat Melee Damage", false, false, 0, f => ModdedPlayer.Stats.meleeFlatDmg.Substract(f), f => ModdedPlayer.Stats.meleeFlatDmg.Add(f)) { DisplayAsPercent = false }; + new Buff(22, 151, "Increased Flat Melee Damage", false, false, 0, f => ModdedPlayer.Stats.meleeFlatDmg.Sub(f), f => ModdedPlayer.Stats.meleeFlatDmg.Add(f)) { DisplayAsPercent = false }; new Buff(23, 151, "Counter Strike", false, true, 0, f => ModdedPlayer.Stats.perk_parryCounterStrikeDamage.valueAdditive = 0) { DisplayAsPercent = false }; - new Buff(24, 151, "Critical Damage", false, false, 0, f => ModdedPlayer.Stats.critDamage.Substract(f), f => ModdedPlayer.Stats.critDamage.Add(f)); - new Buff(25, 146, "Life Regeneration", false, false, 0, f => ModdedPlayer.Stats.healthRecoveryPerSecond.Add(-f), f => ModdedPlayer.Stats.healthRecoveryPerSecond.Add(f)) { DisplayAsPercent = false }; + new Buff(24, 151, "Critical Damage", false, false, 0, f => ModdedPlayer.Stats.critDamage.Sub(f), f => ModdedPlayer.Stats.critDamage.Add(f)); + new Buff(25, 146, "Life Regeneration", false, false, 0, f => ModdedPlayer.Stats.lifeRegenBase.Add(-f), f => ModdedPlayer.Stats.lifeRegenBase.Add(f)) { DisplayAsPercent = false }; new Buff(26, 146, "Resistance", false, false, 0, f => ModdedPlayer.Stats.allDamageTaken.Divide(1 - f), f => ModdedPlayer.Stats.allDamageTaken.Multiply(1 - f)); new Buff(27, 136, "Fury Swipes", false, true, 1, f => { @@ -205,7 +205,7 @@ public static void FillBuffList() { DisplayAsPercent = false }; - new Buff(28, 151, "Critical Chance", false, false, 0, f => ModdedPlayer.Stats.critChance.Substract(f - 1), f => ModdedPlayer.Stats.critChance.Add(f - 1)) { DisplayAsPercent = true }; + new Buff(28, 151, "Critical Chance", false, false, 0, f => ModdedPlayer.Stats.critChance.Sub(f - 1), f => ModdedPlayer.Stats.critChance.Add(f - 1)) { DisplayAsPercent = true }; new Buff(29, 151, "Dodge Chance", false, false, 0, f => ModdedPlayer.Stats.getHitChance.Divide(f), f => ModdedPlayer.Stats.getHitChance.Multiply(f)) { DisplayAsPercent = true }; diff --git a/Player/Main Menu/MainMenu_Guide.cs b/Player/Main Menu/MainMenu_Guide.cs index e8b1c56..9011896 100644 --- a/Player/Main Menu/MainMenu_Guide.cs +++ b/Player/Main Menu/MainMenu_Guide.cs @@ -338,7 +338,7 @@ private void DrawGuide() Stat(Translations.MainMenu_Guide_13, ModdedPlayer.Stats.TotalMaxHealth.ToString(), Translations.MainMenu_Guide_14( - ModdedPlayer.ModdedPlayerStats.baseHealth, ModdedPlayer.Stats.maxHealthFromVit.GetAmount() * ModdedPlayer.Stats.vitality.GetAmount(), ModdedPlayer.Stats.maxHealth.GetFormattedAmount(), ModdedPlayer.Stats.maxHealthMult.GetFormattedAmount())); + ModdedPlayer.ModdedPlayerStats.baseHealth, ModdedPlayer.Stats.maxHealthFromVit.GetAmount() * ModdedPlayer.Stats.vitality.GetAmount(), ModdedPlayer.Stats.maxLife.GetFormattedAmount(), ModdedPlayer.Stats.maxHealthMult.GetFormattedAmount())); Stat(Translations.MainMenu_Guide_15, ModdedPlayer.Stats.TotalMaxEnergy.ToString(), @@ -373,11 +373,11 @@ private void DrawGuide() Stat(Translations.MainMenu_Guide_133, (ModdedPlayer.Stats.TotalStaminaRecoveryAmount).ToString("N2"), //tr Translations.MainMenu_Guide_35( - ModdedPlayer.Stats.staminaRecoveryperSecond.GetAmount(), ModdedPlayer.Stats.staminaPerSecRate.GetFormattedAmount())); + ModdedPlayer.Stats.energyRegenMult.GetAmount(), ModdedPlayer.Stats.staminaRegenBase.GetFormattedAmount())); Stat(Translations.MainMenu_Guide_37, ModdedPlayer.Stats.energyRecoveryperSecond.GetAmount() * ModdedPlayer.Stats.TotalStaminaRecoveryMultiplier + "", Translations.MainMenu_Guide_36( ModdedPlayer.Stats.energyRecoveryperSecond.GetAmount(), ModdedPlayer.Stats.TotalStaminaRecoveryMultiplier)); Stat(Translations.MainMenu_Guide_39, ModdedPlayer.Stats.energyOnHit.GetAmount() * ModdedPlayer.Stats.TotalStaminaRecoveryMultiplier + "", Translations.MainMenu_Guide_38( ModdedPlayer.Stats.energyOnHit.GetAmount())); - Stat(Translations.MainMenu_Guide_41, ModdedPlayer.Stats.healthRecoveryPerSecond.GetAmount() * (ModdedPlayer.Stats.healthPerSecRate.GetAmount()) * ModdedPlayer.Stats.allRecoveryMult.GetAmount() + "", Translations.MainMenu_Guide_40( ModdedPlayer.Stats.healthRecoveryPerSecond.GetAmount(), ModdedPlayer.Stats.healthPerSecRate.GetFormattedAmount(), ModdedPlayer.Stats.allRecoveryMult.GetAmount() - 1)); + Stat(Translations.MainMenu_Guide_41, ModdedPlayer.Stats.lifeRegenBase.GetAmount() * (ModdedPlayer.Stats.lifeRegenMult.GetAmount()) * ModdedPlayer.Stats.allRecoveryMult.GetAmount() + "", Translations.MainMenu_Guide_40( ModdedPlayer.Stats.lifeRegenBase.GetAmount(), ModdedPlayer.Stats.lifeRegenMult.GetFormattedAmount(), ModdedPlayer.Stats.allRecoveryMult.GetAmount() - 1)); Stat(Translations.MainMenu_Guide_43, ModdedPlayer.Stats.healthOnHit.GetAmount() * ModdedPlayer.Stats.allRecoveryMult.GetAmount() + "", Translations.MainMenu_Guide_42( ModdedPlayer.Stats.healthOnHit.GetAmount(), ModdedPlayer.Stats.allRecoveryMult.GetFormattedAmount(), ModdedPlayer.Stats.allRecoveryMult.GetAmount() - 1)); Space(60); diff --git a/Player/ModdedPlayer/ModdedPlayer.ModdedPlayerStats.cs b/Player/ModdedPlayer/ModdedPlayer.ModdedPlayerStats.cs index c4ea87d..5b6c51a 100644 --- a/Player/ModdedPlayer/ModdedPlayer.ModdedPlayerStats.cs +++ b/Player/ModdedPlayer/ModdedPlayer.ModdedPlayerStats.cs @@ -17,7 +17,7 @@ public class ModdedPlayerStats public readonly MultiOperationPlayerStat maxEnergyMult; public readonly AdditivePlayerStat maxEnergy; public readonly MultiOperationPlayerStat maxHealthMult; - public readonly AdditivePlayerStat maxHealth; + public readonly AdditivePlayerStat maxLife; public readonly AdditivePlayerStat meleeDmgFromStr; public readonly AdditivePlayerStat spellDmgFromInt; public readonly AdditivePlayerStat rangedDmgFromAgi; @@ -25,8 +25,8 @@ public class ModdedPlayerStats public readonly AdditivePlayerStat maxEnergyFromAgi; public readonly AdditivePlayerStat maxHealthFromVit; public readonly AdditivePlayerStat fireDamage; - public readonly MultiOperationPlayerStat healthPerSecRate; - public readonly MultiOperationPlayerStat staminaPerSecRate; + public readonly MultiOperationPlayerStat lifeRegenMult; + public readonly MultiOperationPlayerStat staminaRegenBase; public readonly MultiplicativePlayerStat cooldown, cooldownRate; public readonly MultiOperationPlayerStat allDamage; public readonly MultiOperationPlayerStat attackSpeed; @@ -62,8 +62,8 @@ public class ModdedPlayerStats public readonly AdditivePlayerStat healthOnHit; public readonly AdditivePlayerStat staminaOnHit; public readonly AdditivePlayerStat energyOnHit; - public readonly AdditivePlayerStat healthRecoveryPerSecond; - public readonly AdditivePlayerStat staminaRecoveryperSecond; + public readonly AdditivePlayerStat lifeRegenBase; + public readonly AdditivePlayerStat energyRegenMult; public readonly AdditivePlayerStat energyRecoveryperSecond; public readonly MultiplicativePlayerStat allDamageTaken; @@ -333,7 +333,7 @@ public ModdedPlayerStats() this.maxEnergyMult = new MultiOperationPlayerStat(1, 1, addfloat, substractfloat, multfloat, dividefloat, "P0"); this.maxEnergy = new AdditivePlayerStat(0, addint, substractint); this.maxHealthMult = new MultiOperationPlayerStat(1, 1, addfloat, substractfloat, multfloat, dividefloat, "P0"); - this.maxHealth = new AdditivePlayerStat(0, addint, substractint); + this.maxLife = new AdditivePlayerStat(0, addint, substractint); this.meleeDmgFromStr = new AdditivePlayerStat(0.0f, addfloat, substractfloat, "P0"); this.spellDmgFromInt = new AdditivePlayerStat(0.0f, addfloat, substractfloat, "P0"); this.rangedDmgFromAgi = new AdditivePlayerStat(0.0f, addfloat, substractfloat, "P0"); @@ -341,8 +341,8 @@ public ModdedPlayerStats() this.maxEnergyFromAgi = new AdditivePlayerStat(0.0f, addfloat, substractfloat); this.maxHealthFromVit = new AdditivePlayerStat(0.0f, addfloat, substractfloat); this.fireDamage = new AdditivePlayerStat(0.0f, addfloat, substractfloat, "P0"); - this.healthPerSecRate = new MultiOperationPlayerStat(1, 1, addfloat, substractfloat, multfloat, dividefloat, "P0"); - this.staminaPerSecRate = new MultiOperationPlayerStat(1, 1, addfloat, substractfloat, multfloat, dividefloat, "P0"); + this.lifeRegenMult = new MultiOperationPlayerStat(1, 1, addfloat, substractfloat, multfloat, dividefloat, "P0"); + this.staminaRegenBase = new MultiOperationPlayerStat(1, 1, addfloat, substractfloat, multfloat, dividefloat, "P0"); this.cooldown = new MultiplicativePlayerStat(1, multfloat, dividefloat, "P1"); this.cooldownRate = new MultiplicativePlayerStat(1, multfloat, dividefloat, "P1"); this.allDamage = new MultiOperationPlayerStat(1, 1, addfloat, substractfloat, multfloat, dividefloat, "P0"); @@ -380,8 +380,8 @@ public ModdedPlayerStats() this.healthOnHit = new AdditivePlayerStat(0.0f, addfloat, substractfloat); this.staminaOnHit = new AdditivePlayerStat(0.0f, addfloat, substractfloat); this.energyOnHit = new AdditivePlayerStat(0.0f, addfloat, substractfloat); - this.healthRecoveryPerSecond = new AdditivePlayerStat(0.0f, addfloat, substractfloat); - this.staminaRecoveryperSecond = new AdditivePlayerStat(0.0f, addfloat, substractfloat); + this.lifeRegenBase = new AdditivePlayerStat(0.0f, addfloat, substractfloat); + this.energyRegenMult = new AdditivePlayerStat(0.0f, addfloat, substractfloat); this.energyRecoveryperSecond = new AdditivePlayerStat(0.0f, addfloat, substractfloat); this.allDamageTaken = new MultiplicativePlayerStat(1, multfloat, dividefloat, "P0"); @@ -647,7 +647,7 @@ public float TotalMaxHealth { get { - float x = baseHealth + (vitality.Value * maxHealthFromVit.Value) + maxHealth.Value; + float x = baseHealth + (vitality.Value * maxHealthFromVit.Value) + maxLife.Value; x *= maxHealthMult; return x; } @@ -673,9 +673,9 @@ public float TotalMagicDamageMultiplier public float TotalThorns => thorns.Value + thornsPerStrenght * strength.Value + thornsPerVit * vitality.Value; public float TotalThornsDamage => TotalThorns * thornsDmgMult.Value * meleeIncreasedDmg * allDamage; public float TotalArmor => armor.Value - instance.lostArmor; - public float TotalStaminaRecoveryAmount => (baseStaminaRecovery + staminaRecoveryperSecond) * TotalStaminaRecoveryMultiplier; - public float TotalStaminaRecoveryMultiplier => 1 + (1 + intelligence * energyRecoveryFromInt) * allRecoveryMult * staminaPerSecRate; - public float TotalEnergyRecoveryMultiplier => 1 + (1 + intelligence * energyRecoveryFromInt) * allRecoveryMult * staminaPerSecRate; + public float TotalStaminaRecoveryAmount => (baseStaminaRecovery + energyRegenMult) * TotalStaminaRecoveryMultiplier; + public float TotalStaminaRecoveryMultiplier => 1 + (1 + intelligence * energyRecoveryFromInt) * allRecoveryMult * staminaRegenBase; + public float TotalEnergyRecoveryMultiplier => 1 + (1 + intelligence * energyRecoveryFromInt) * allRecoveryMult * staminaRegenBase; public float MeleeDamageMult => allDamage.Value * meleeIncreasedDmg.Value * (1 + (strength * meleeDmgFromStr)); diff --git a/Player/ModdedPlayer/ModdedPlayer.cs b/Player/ModdedPlayer/ModdedPlayer.cs index 1a229e6..1990261 100644 --- a/Player/ModdedPlayer/ModdedPlayer.cs +++ b/Player/ModdedPlayer/ModdedPlayer.cs @@ -440,11 +440,11 @@ private void Update() { if (LocalPlayer.Stats.Health < LocalPlayer.Stats.HealthTarget) { - LocalPlayer.Stats.Health += stats.healthRecoveryPerSecond* (stats.healthPerSecRate) * stats.allRecoveryMult; + LocalPlayer.Stats.Health += stats.lifeRegenBase* (stats.lifeRegenMult) * stats.allRecoveryMult; } else { - LocalPlayer.Stats.Health += stats.healthRecoveryPerSecond * (stats.healthPerSecRate) * stats.allRecoveryMult / 10; + LocalPlayer.Stats.Health += stats.lifeRegenBase * (stats.lifeRegenMult) * stats.allRecoveryMult / 10; } } diff --git a/Player/ModdedPlayer/Stats/AdditiveNetworkSyncedPlayerStat.cs b/Player/ModdedPlayer/Stats/AdditiveNetworkSyncedPlayerStat.cs index 3a1b379..a77aefd 100644 --- a/Player/ModdedPlayer/Stats/AdditiveNetworkSyncedPlayerStat.cs +++ b/Player/ModdedPlayer/Stats/AdditiveNetworkSyncedPlayerStat.cs @@ -32,7 +32,7 @@ public T Add(T amount) ValueChanged(); return Value; } - public T Substract(T amount) + public T Sub(T amount) { valueAdditive = substract(valueAdditive, amount); return Value; diff --git a/Player/ModdedPlayer/Stats/AdditivePlayerStat.cs b/Player/ModdedPlayer/Stats/AdditivePlayerStat.cs index 4defaa1..a6060c9 100644 --- a/Player/ModdedPlayer/Stats/AdditivePlayerStat.cs +++ b/Player/ModdedPlayer/Stats/AdditivePlayerStat.cs @@ -23,7 +23,7 @@ public T Add(T amount) valueAdditive = add(valueAdditive, amount); return Value; } - public T Substract(T amount) + public T Sub(T amount) { valueAdditive = substract(valueAdditive, amount); return Value; diff --git a/Player/ModdedPlayer/Stats/BooleanPlayerStat.cs b/Player/ModdedPlayer/Stats/BooleanPlayerStat.cs index db39d5d..5b6bc44 100644 --- a/Player/ModdedPlayer/Stats/BooleanPlayerStat.cs +++ b/Player/ModdedPlayer/Stats/BooleanPlayerStat.cs @@ -23,7 +23,7 @@ public bool Add(bool amount) value = true; return true; } - public bool Substract(bool amount) + public bool Sub(bool amount) { value = false; return false; diff --git a/Player/ModdedPlayer/Stats/Interfaces.cs b/Player/ModdedPlayer/Stats/Interfaces.cs index 99b1531..42d19ba 100644 --- a/Player/ModdedPlayer/Stats/Interfaces.cs +++ b/Player/ModdedPlayer/Stats/Interfaces.cs @@ -8,7 +8,7 @@ namespace ChampionsOfForest.Player public interface IAdditiveStat { T Add(T amount); - T Substract(T amount); + T Sub(T amount); } public interface IMultiplicativeStat { diff --git a/Player/ModdedPlayer/Stats/MultiOperationPlayerStat.cs b/Player/ModdedPlayer/Stats/MultiOperationPlayerStat.cs index 3791a3e..ba2ac40 100644 --- a/Player/ModdedPlayer/Stats/MultiOperationPlayerStat.cs +++ b/Player/ModdedPlayer/Stats/MultiOperationPlayerStat.cs @@ -60,7 +60,7 @@ public T Add(T amount) valueAdditive = add(valueAdditive, amount); return Value; } - public T Substract(T amount) + public T Sub(T amount) { valueAdditive = substract(valueAdditive, amount); return Value; diff --git a/Player/Overrides/PlayerStatsEx.cs b/Player/Overrides/PlayerStatsEx.cs index 842491d..70488cf 100644 --- a/Player/Overrides/PlayerStatsEx.cs +++ b/Player/Overrides/PlayerStatsEx.cs @@ -510,7 +510,7 @@ protected override void Update() } if (Health < HealthTarget) { - Health = Mathf.MoveTowards(Health, HealthTarget, (GameSettings.Survival.HealthRegenPerSecond + ModdedPlayer.Stats.TotalMaxHealth * 0.0025f + ModdedPlayer.Stats.healthRecoveryPerSecond) * (ModdedPlayer.Stats.healthPerSecRate + 1) * ModdedPlayer.Stats.allRecoveryMult * Time.deltaTime); + Health = Mathf.MoveTowards(Health, HealthTarget, (GameSettings.Survival.HealthRegenPerSecond + ModdedPlayer.Stats.TotalMaxHealth * 0.0025f + ModdedPlayer.Stats.lifeRegenBase) * (ModdedPlayer.Stats.lifeRegenMult + 1) * ModdedPlayer.Stats.allRecoveryMult * Time.deltaTime); Scene.HudGui.HealthBarTarget.enabled = true; } diff --git a/Player/Overrides/XBArrowDamageMod.cs b/Player/Overrides/XBArrowDamageMod.cs index 10c5510..874c32a 100644 --- a/Player/Overrides/XBArrowDamageMod.cs +++ b/Player/Overrides/XBArrowDamageMod.cs @@ -50,7 +50,7 @@ protected override void Start() { if (ModdedPlayer.Stats.i_HazardCrownBonus > 0) { - ModdedPlayer.Stats.i_HazardCrownBonus.Substract(1); + ModdedPlayer.Stats.i_HazardCrownBonus.Sub(1); } else ModdedPlayer.Stats.spell_bia_AccumulatedDamage.valueAdditive = 0; @@ -418,7 +418,7 @@ public override void CheckHit(Vector3 position, Transform target, bool isTrigger { if (ModdedPlayer.Stats.i_ArchangelBow && GreatBow.isEnabled) { - float lifePerSecond = (ModdedPlayer.Stats.healthRecoveryPerSecond) * ModdedPlayer.Stats.allRecoveryMult * (ModdedPlayer.Stats.healthPerSecRate) * 2; + float lifePerSecond = (ModdedPlayer.Stats.lifeRegenBase) * ModdedPlayer.Stats.allRecoveryMult * (ModdedPlayer.Stats.lifeRegenMult) * 2; using (System.IO.MemoryStream answerStream = new System.IO.MemoryStream()) { using (System.IO.BinaryWriter w = new System.IO.BinaryWriter(answerStream)) diff --git a/Player/Perks/PerkDatabase.cs b/Player/Perks/PerkDatabase.cs index 3946300..08e9ac2 100644 --- a/Player/Perks/PerkDatabase.cs +++ b/Player/Perks/PerkDatabase.cs @@ -168,7 +168,7 @@ public static void FillPerkList() }; new Perk() { - onApply = () => ModdedPlayer.Stats.staminaRecoveryperSecond.Add(0.5f), + onApply = () => ModdedPlayer.Stats.energyRegenMult.Add(0.5f), category = PerkCategory.Utility, texture = null, unlockPath = new int[] { 4 }, @@ -564,7 +564,7 @@ public static void FillPerkList() }; new Perk() { - onApply = () => ModdedPlayer.Stats.maxHealth.valueAdditive += 35, + onApply = () => ModdedPlayer.Stats.maxLife.valueAdditive += 35, category = PerkCategory.Defense, unlockPath = new int[] { 5 }, @@ -584,7 +584,7 @@ public static void FillPerkList() }; new Perk() { - onApply = () => ModdedPlayer.Stats.healthRecoveryPerSecond.valueAdditive += 0.25f, + onApply = () => ModdedPlayer.Stats.lifeRegenBase.valueAdditive += 0.25f, category = PerkCategory.Support, unlockPath = new int[] { 6 }, @@ -760,7 +760,7 @@ public static void FillPerkList() }; new Perk() { - onApply = () => ModdedPlayer.Stats.healthPerSecRate.valueAdditive += 0.1f, + onApply = () => ModdedPlayer.Stats.lifeRegenMult.valueAdditive += 0.1f, category = PerkCategory.Support, unlockPath = new int[] { 30 }, @@ -2325,7 +2325,7 @@ public static void FillPerkList() }; new Perk() { - onApply = () => { ModdedPlayer.Stats.attackSpeed.Substract(0.3f); ModdedPlayer.Stats.meleeIncreasedDmg.Multiply(2); }, + onApply = () => { ModdedPlayer.Stats.attackSpeed.Sub(0.3f); ModdedPlayer.Stats.meleeIncreasedDmg.Multiply(2); }, category = PerkCategory.MeleeOffense, texture = null, unlockPath = new int[] { 89 }, @@ -2411,7 +2411,7 @@ public static void FillPerkList() ModdedPlayer.Stats.projectileSize.Add(0.5f); ModdedPlayer.Stats.projectileSpeed.Add(0.5f); ModdedPlayer.Stats.critDamage.Add(0.5f); - ModdedPlayer.Stats.attackSpeed.Substract(0.2f); ModdedPlayer.Stats.spellCost.Multiply(3); }, + ModdedPlayer.Stats.attackSpeed.Sub(0.2f); ModdedPlayer.Stats.spellCost.Multiply(3); }, category = PerkCategory.RangedOffense, texture = null, unlockPath = new int[] { 89 }, @@ -2428,7 +2428,7 @@ public static void FillPerkList() new Perk() { - onApply = () => { ModdedPlayer.Stats.maxEnergyMult.Multiply(0.65f); ModdedPlayer.Stats.staminaPerSecRate.Multiply(0.65f); ModdedPlayer.Stats.spellIncreasedDmg.Multiply(2); }, + onApply = () => { ModdedPlayer.Stats.maxEnergyMult.Multiply(0.65f); ModdedPlayer.Stats.staminaRegenBase.Multiply(0.65f); ModdedPlayer.Stats.spellIncreasedDmg.Multiply(2); }, category = PerkCategory.MagicOffense, texture = null, unlockPath = new int[] { 89 }, @@ -3660,7 +3660,7 @@ public static void FillPerkList() { onApply = () => { - ModdedPlayer.Stats.spell_fireboltEnergyCost.Substract(8); + ModdedPlayer.Stats.spell_fireboltEnergyCost.Sub(8); }, category = PerkCategory.MagicOffense, unlockPath = new int[] { 212 }, @@ -3916,7 +3916,7 @@ public static void FillPerkList() }; new Perk() { - onApply = () => { ModdedPlayer.Stats.attackSpeed.Substract(0.1f); ModdedPlayer.Stats.allDamage.Add(0.01f); }, + onApply = () => { ModdedPlayer.Stats.attackSpeed.Sub(0.1f); ModdedPlayer.Stats.allDamage.Add(0.01f); }, canBuy = () => ModdedPlayer.Stats.attackSpeed.Value > 1.1f, category = PerkCategory.MeleeOffense, unlockPath = new int[] { 9 }, @@ -3933,7 +3933,7 @@ public static void FillPerkList() }; new Perk() { - onApply = () => { ModdedPlayer.Stats.projectileSpeed.Substract(0.1f); ModdedPlayer.Stats.critDamage.Add(0.1f); }, + onApply = () => { ModdedPlayer.Stats.projectileSpeed.Sub(0.1f); ModdedPlayer.Stats.critDamage.Add(0.1f); }, canBuy = () => ModdedPlayer.Stats.projectileSpeed.Value > 1.1f, category = PerkCategory.RangedOffense, unlockPath = new int[] { 152 }, diff --git a/Player/Spells/SpellActions.cs b/Player/Spells/SpellActions.cs index c5f9648..5fc7701 100644 --- a/Player/Spells/SpellActions.cs +++ b/Player/Spells/SpellActions.cs @@ -158,7 +158,7 @@ public static void CreateHealingDome() { Vector3 pos = LocalPlayer.Transform.position; float radius = 14f; - float healing = (ModdedPlayer.Stats.healthRecoveryPerSecond * ModdedPlayer.Stats.healthRecoveryPerSecond * 10 + 43.5f)*ModdedPlayer.Stats.allRecoveryMult; + float healing = (ModdedPlayer.Stats.lifeRegenBase * ModdedPlayer.Stats.lifeRegenBase * 10 + 43.5f)*ModdedPlayer.Stats.allRecoveryMult; healing += ModdedPlayer.Stats.spellFlatDmg * ModdedPlayer.Stats.SpellDamageMult * 0.1f; using (System.IO.MemoryStream answerStream = new System.IO.MemoryStream()) { @@ -215,7 +215,7 @@ public static void CastFlare() float boost = ModdedPlayer.Stats.spell_flareBoost; float duration = ModdedPlayer.Stats.spell_flareDuration; float radius = ModdedPlayer.Stats.spell_flareRadius; - float Healing = ModdedPlayer.Stats.spell_flareHeal + ModdedPlayer.Stats.spellFlatDmg / 20 + (ModdedPlayer.Stats.healthRecoveryPerSecond*2) * ModdedPlayer.Stats.healthPerSecRate; + float Healing = ModdedPlayer.Stats.spell_flareHeal + ModdedPlayer.Stats.spellFlatDmg / 20 + (ModdedPlayer.Stats.lifeRegenBase*2) * ModdedPlayer.Stats.lifeRegenMult; Healing *= ModdedPlayer.Stats.TotalMagicDamageMultiplier; using (System.IO.MemoryStream answerStream = new System.IO.MemoryStream()) { @@ -947,8 +947,8 @@ public static void DoParry(Vector3 parryPos) float dmg = ModdedPlayer.Stats.spell_parryDamage + ModdedPlayer.Stats.spellFlatDmg; dmg *= ModdedPlayer.Stats.TotalMagicDamageMultiplier *ModdedPlayer.Stats.spell_parryDamageScaling; - float heal = ModdedPlayer.Stats.spell_parryHeal + ModdedPlayer.Stats.spellFlatDmg / 6 + ModdedPlayer.Stats.healthRecoveryPerSecond + ModdedPlayer.Stats.healthOnHit * 3; - heal *= ModdedPlayer.Stats.allRecoveryMult * (1 + ModdedPlayer.Stats.healthPerSecRate); + float heal = ModdedPlayer.Stats.spell_parryHeal + ModdedPlayer.Stats.spellFlatDmg / 6 + ModdedPlayer.Stats.lifeRegenBase + ModdedPlayer.Stats.healthOnHit * 3; + heal *= ModdedPlayer.Stats.allRecoveryMult * (1 + ModdedPlayer.Stats.lifeRegenMult); LocalPlayer.Stats.HealthTarget += heal; ParrySound.Play(parryPos); float energy = (ModdedPlayer.Stats.spell_parryEnergy + ModdedPlayer.Stats.energyOnHit * 10) * ModdedPlayer.Stats.TotalEnergyRecoveryMultiplier + + ModdedPlayer.Stats.TotalMaxEnergy / 5.5f; From 5abcde96fd4f2b5caaf7209825dc7b0d876142d6 Mon Sep 17 00:00:00 2001 From: "Hazard (Cyprian Skrzypczak)" Date: Sun, 13 Apr 2025 00:14:53 +0200 Subject: [PATCH 07/27] Moved Item Definitions --- .../ItemDataBase_ItemDefinitions.cs | 380 +----------------- Items/ItemDefinitions/Shields.cs | 109 ++++- 2 files changed, 108 insertions(+), 381 deletions(-) rename Items/{ => ItemDefinitions}/ItemDataBase_ItemDefinitions.cs (97%) diff --git a/Items/ItemDataBase_ItemDefinitions.cs b/Items/ItemDefinitions/ItemDataBase_ItemDefinitions.cs similarity index 97% rename from Items/ItemDataBase_ItemDefinitions.cs rename to Items/ItemDefinitions/ItemDataBase_ItemDefinitions.cs index 21950b3..1c592ca 100644 --- a/Items/ItemDataBase_ItemDefinitions.cs +++ b/Items/ItemDefinitions/ItemDataBase_ItemDefinitions.cs @@ -14,385 +14,7 @@ namespace ChampionsOfForest public static partial class ItemDataBase { - static Dictionary>> randomitemNamesPool; - - static void SetNamesPool() - { - randomitemNamesPool = new Dictionary>>(); - - } - - static List> GetQuiverNames() - { - List brokenQualityNames = new List() - { - "Potato Sack", - "Cracked Buckler", - "Fractured Aegis", - "Rusted Battered Shield", - "Shattered Guard", - "Tattered Protector", - "Warped Kite Shield", - "Decayed Bulwark", - "Dilapidated Defender", - "Fragmented Ward", - }; - - List commonQualityNames = new List() - { - "Iron Shield", - "Wooden Buckler", - "Militia Guard", - "Footman's Protection", - "Simple Protector", - "Recruit's Shield", - "Basic Bulwark", - "Ordinary Defender", - "Standard Kite Shield", - "Copper Guard", - }; - - List uncommonQualityNames = new List() - { - "Reinforced Buckler", - "Knight's Guard", - "Polished Defender", - "Steel Bulwark", - "Hardwood Shield", - "Sentinel's Guard", - "Reliable Protector", - "Sturdy Aegis", - "Shieldbearer's Wall", - "Bronze-Rimmed Ward", - }; - - List magicQualityNames = new List() - { - "Frostbound Shield", - "Ember Ward", - "Arcane Defender", - "Enchanted Bulwark", - "Whispering Protector", - "Shield of Runes", - "Spellguard Barrier", - "Gleaming Aegis", - "Stormcaller's Shield", - "Mystic Bulwark", - }; - - List rareQualityNames = new List() - { - "Dragonscale Shield", - "Sunfire Aegis", - "Warden's Resolve", - "Shadowforged Bulwark", - "Astral Defender", - "Thunderous Guard", - "Shield of Ancient Kings", - "Celestial Protection", - "Mithril-Bound Guardian", - "Wyvern Wing Shield", - }; - - List uniqueQualityNames = new List() - { - "Bastion of the Fallen Hero", - "Moonlight Reflection", - "Stormheart Shield", - "Guardian of Lost Souls", - "The Unbroken Vow", - "Earthshaker's Wall", - "Twilight's Embrace", - "Dawnbreaker Shield", - "Defiance of the Phoenix", - "The Immovable Object", - }; - - List legendaryQualityNames = new List() - { - "Aegis of the Immortal Emperor", - "Bulwark of the Star Forger", - "The Divine Protector", - "Shield of Eternal Victory", - "Godslayer's Defender", - "Dragonlord's Guardian", - "The Titanic Wall", - "Salvation's Embrace", - "Avatar of Protection", - "The World's Edge", - }; - - List mythicQualityNames = new List() - { - "Cosmos Barrier", - "The Void's Edge", - "Shield of Infinite Worlds", - "Reality's Guardian", - "Divinity's Embrace", - "The Primordial Aegis", - "Eternity's Bulwark", - "Celestial Embodiment", - "The Universal Constant", - "Transcendence", - }; - - - // put all the names into a single list - List> rarityNames = new List>() - { - brokenQualityNames, - commonQualityNames, - uncommonQualityNames, - magicQualityNames, - rareQualityNames, - uniqueQualityNames, - legendaryQualityNames, - mythicQualityNames - }; - return rarityNames; - } - - static List> GetShieldNames() - { - // define names for each of the rarities - List brokenQualityNames = new List() - { - "Splintered Barrier", - "Cracked Buckler", - "Fractured Aegis", - "Rusted Battered Shield", - "Shattered Guard", - "Tattered Protector", - "Warped Kite Shield", - "Decayed Bulwark", - "Dilapidated Defender", - "Fragmented Ward", - }; - - List commonQualityNames = new List() - { - "Iron Shield", - "Wooden Buckler", - "Militia Guard", - "Footman's Protection", - "Simple Protector", - "Recruit's Shield", - "Basic Bulwark", - "Ordinary Defender", - "Standard Kite Shield", - "Copper Guard", - }; - - List uncommonQualityNames = new List() - { - "Reinforced Buckler", - "Knight's Guard", - "Polished Defender", - "Steel Bulwark", - "Hardwood Shield", - "Sentinel's Guard", - "Reliable Protector", - "Sturdy Aegis", - "Shieldbearer's Wall", - "Bronze-Rimmed Ward", - }; - - List magicQualityNames = new List() - { - "Frostbound Shield", - "Ember Ward", - "Arcane Defender", - "Enchanted Bulwark", - "Whispering Protector", - "Shield of Runes", - "Spellguard Barrier", - "Gleaming Aegis", - "Stormcaller's Shield", - "Mystic Bulwark", - }; - - List rareQualityNames = new List() - { - "Dragonscale Shield", - "Sunfire Aegis", - "Warden's Resolve", - "Shadowforged Bulwark", - "Astral Defender", - "Thunderous Guard", - "Shield of Ancient Kings", - "Celestial Protection", - "Mithril-Bound Guardian", - "Wyvern Wing Shield", - }; - - List uniqueQualityNames = new List() - { - "Bastion of the Fallen Hero", - "Moonlight Reflection", - "Stormheart Shield", - "Guardian of Lost Souls", - "The Unbroken Vow", - "Earthshaker's Wall", - "Twilight's Embrace", - "Dawnbreaker Shield", - "Defiance of the Phoenix", - "The Immovable Object", - }; - - List legendaryQualityNames = new List() - { - "Aegis of the Immortal Emperor", - "Bulwark of the Star Forger", - "The Divine Protector", - "Shield of Eternal Victory", - "Godslayer's Defender", - "Dragonlord's Guardian", - "The Titanic Wall", - "Salvation's Embrace", - "Avatar of Protection", - "The World's Edge", - }; - - List mythicQualityNames = new List() - { - "Cosmos Barrier", - "The Void's Edge", - "Shield of Infinite Worlds", - "Reality's Guardian", - "Divinity's Embrace", - "The Primordial Aegis", - "Eternity's Bulwark", - "Celestial Embodiment", - "The Universal Constant", - "Transcendence", - }; - - - // put all the names into a single list - List> rarityNames = new List>() - { - brokenQualityNames, - commonQualityNames, - uncommonQualityNames, - magicQualityNames, - rareQualityNames, - uniqueQualityNames, - legendaryQualityNames, - mythicQualityNames - }; - return rarityNames; - } - - public static void AddShields() - { - //------------------------------------------------------ - //Rarity 0 (Grey) - //------------------------------------------------------ - new Shield() - .ShieldStatSlot(1) - .StatSlot(new Stat[] { BLOCK }) - .Name("Rusten Battered Shield") - .Description("Covered in rust and scarred from countless blows, this battered shield has seen better days. It creaks with every movement, offering only the most basic protection.") - .Rarity(0); - - new Shield() - .StatSlot(new Stat[] { BLOCK }) - .Name("Cracked Buckler") - .Description("Cracked and barely holding together, this old buckler offers little more than false hope. Its surface is marred with dents and splits from battles long forgotten.") - .Rarity(0); - - - new Shield() - .StatSlot(new Stat[] { BLOCK }) - .StatSlot(new Stat[] { STRENGTH, NONE }) - .Name("Shattered Guard") - .Description("No warior would pick this up and call it a shield.") - .Rarity(0); - - //------------------------------------------------------ - //Rarity 1 (White) - //------------------------------------------------------ - - new Shield() - .ShieldStatSlot(2) - .StatSlot(new Stat[] { BLOCK }) - .Name("Plain Iron Shield") - .Description("Fuck you Hazard. ~Lama Mega~") - .Rarity(1); - - new Shield() - .ShieldStatSlot(1) - .StatSlot(new Stat[] { BLOCK }) - .StatSlot(new Stat[] { THORNS, BASEMELEEDAMAGE }) - .Name("Wooden Buckler") - .Description("This shield has a precariously sticking out nail.") - .Rarity(1); - - new Shield() - .ShieldStatSlot(1) - .DefaultStatSlot(1) - .StatSlot(new Stat[] { BLOCK }) - .Name("Footknights's Roundshield") - .Description("") - .Rarity(1); - - //------------------------------------------------------ - //Rarity 2 (Dark Blue) - //------------------------------------------------------ - - new Shield() - .ShieldStatSlot(3) - .StatSlot(new Stat[] { BLOCK }) - .Name("Runed Iron Bulwark") - .Description("Fuck you Hazard. ~Lama Mega~") - .Rarity(1); - - - new Shield() - .ShieldStatSlot(3) - .StatSlot(new Stat[] { BLOCK }) - .StatSlot(new Stat[] { DODGECHANCE }) - .Name("Reinforced Buckler") - .Description("Light and small shield that allows you to dodge attacks.") - .Rarity(2); - - new Shield() - .ShieldStatSlot(3) - .StatSlot(new Stat[] { BLOCK }) - .StatSlot(new Stat[] { DODGECHANCE }) - .Name("Knight's Guard") - .Description("") - .Rarity(2); - - new Shield() - .ShieldStatSlot(3) - .StatSlot(new Stat[] { BLOCK }) - .StatSlot(new Stat[] { DODGECHANCE }) - .Name("Knight's Guard") - .Description("") - .Rarity(2); - - //------------------------------------------------------ - //Rarity 3 (Blue) - //------------------------------------------------------ - - //------------------------------------------------------ - //Rarity 4 (Yellow) - //------------------------------------------------------ - - //------------------------------------------------------ - //Rarity 5 (Orange) - //------------------------------------------------------ - - //------------------------------------------------------ - //Rarity 6 (Green) - //------------------------------------------------------ - - //------------------------------------------------------ - //Rarity 7 (Red) - //------------------------------------------------------ - } - + // todo remove this method once rarity 7 items are re-added. public static void PopulateItems() { new BaseItem(new int[][] diff --git a/Items/ItemDefinitions/Shields.cs b/Items/ItemDefinitions/Shields.cs index 0d76612..4572e39 100644 --- a/Items/ItemDefinitions/Shields.cs +++ b/Items/ItemDefinitions/Shields.cs @@ -1,11 +1,116 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Security.Policy; using System.Text; -namespace ChampionsOfForest.Items.ItemDefinitions +using ChampionsOfForest.Items.ItemTemplates; +using static ChampionsOfForest.ItemDataBase.Stat; + +namespace ChampionsOfForest { - internal class Shields + public static partial class ItemDataBase { + public static void AddShields() + { + //------------------------------------------------------ + //Rarity 0 (Grey) + //------------------------------------------------------ + new Shield() + .ShieldStatSlot(1) + .StatSlot(new Stat[] { BLOCK }) + .Name("Rusten Battered Shield") + .Description("Covered in rust and scarred from countless blows, this battered shield has seen better days. It creaks with every movement, offering only the most basic protection.") + .Rarity(0); + + new Shield() + .StatSlot(new Stat[] { BLOCK }) + .Name("Cracked Buckler") + .Description("Cracked and barely holding together, this old buckler offers little more than false hope. Its surface is marred with dents and splits from battles long forgotten.") + .Rarity(0); + new Shield() + .StatSlot(new Stat[] { BLOCK }) + .StatSlot(new Stat[] { STRENGTH, NONE }) + .Name("Shattered Guard") + .Description("No warior would pick this up and call it a shield.") + .Rarity(0); + + //------------------------------------------------------ + //Rarity 1 (White) + //------------------------------------------------------ + + new Shield() + .ShieldStatSlot(2) + .StatSlot(new Stat[] { BLOCK }) + .Name("Plain Iron Shield") + .Description("Fuck you Hazard. ~Lama Mega~") + .Rarity(1); + + new Shield() + .ShieldStatSlot(1) + .StatSlot(new Stat[] { BLOCK }) + .StatSlot(new Stat[] { THORNS, BASEMELEEDAMAGE }) + .Name("Wooden Buckler") + .Description("This shield has a precariously sticking out nail.") + .Rarity(1); + + new Shield() + .ShieldStatSlot(1) + .DefaultStatSlot(1) + .StatSlot(new Stat[] { BLOCK }) + .Name("Footknights's Roundshield") + .Description("") + .Rarity(1); + + //------------------------------------------------------ + //Rarity 2 (Dark Blue) + //------------------------------------------------------ + + new Shield() + .ShieldStatSlot(3) + .StatSlot(new Stat[] { BLOCK }) + .Name("Runed Iron Bulwark") + .Description("Fuck you Hazard. ~Lama Mega~") + .Rarity(1); + + + new Shield() + .ShieldStatSlot(3) + .StatSlot(new Stat[] { BLOCK }) + .StatSlot(new Stat[] { DODGECHANCE }) + .Name("Reinforced Buckler") + .Description("Light and small shield that allows you to dodge attacks.") + .Rarity(2); + + new Shield() + .ShieldStatSlot(3) + .StatSlot(new Stat[] { BLOCK }) + .StatSlot(new Stat[] { DODGECHANCE }) + .Name("Knight's Guard") + .Description("") + .Rarity(2); + + + //------------------------------------------------------ + //Rarity 3 (Blue) + //------------------------------------------------------ + + //------------------------------------------------------ + //Rarity 4 (Yellow) + //------------------------------------------------------ + + //------------------------------------------------------ + //Rarity 5 (Orange) + //------------------------------------------------------ + + //------------------------------------------------------ + //Rarity 6 (Green) + //------------------------------------------------------ + + //------------------------------------------------------ + //Rarity 7 (Red) + //------------------------------------------------------ + } + } } From d658d4b1d6ffc2a075385950c8c88274ea629507 Mon Sep 17 00:00:00 2001 From: "Hazard (Cyprian Skrzypczak)" Date: Sun, 13 Apr 2025 00:15:31 +0200 Subject: [PATCH 08/27] Update ChampionsOfForest.csproj --- ChampionsOfForest.csproj | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ChampionsOfForest.csproj b/ChampionsOfForest.csproj index 864957c..c01ab8d 100644 --- a/ChampionsOfForest.csproj +++ b/ChampionsOfForest.csproj @@ -211,9 +211,10 @@ + - + From a3e872406af3c323ad1d7896a3bd7bb28a578eab Mon Sep 17 00:00:00 2001 From: "Hazard (Cyprian Skrzypczak)" Date: Sun, 13 Apr 2025 18:31:55 +0200 Subject: [PATCH 09/27] Finished rewriting item stats --- Effects/Berserker.cs | 4 +- Effects/BlackFlame.cs | 2 +- Effects/BlackHole.cs | 2 +- Effects/Cataclysm.cs | 4 +- Effects/Flare.cs | 2 +- Enemies/EnemyAbilities/EnemyLaserBeam.cs | 2 +- Enemies/EnemyAbilities/FireAura.cs | 2 +- Enemies/EnemyProgression/EnemyProgression.cs | 2 +- ExpSources/CutEffigyMod.cs | 4 +- Items/ItemDataBase_Loot.cs | 6 +- Items/ItemDataBase_StatDefinitions.cs | 778 ++++++++----- .../ItemDataBase_ItemDefinitions.cs | 1000 ++++++++--------- Items/ItemDefinitions/Shields.cs | 6 +- Items/ItemStat.cs | 31 +- Items/ItemTemplates.cs | 248 ++-- Items/StatActions.cs | 32 +- Player/BuffDataBase.cs | 12 +- Player/Main Menu/MainMenu_Guide.cs | 20 +- .../ModdedPlayer.ModdedPlayerStats.cs | 48 +- Player/ModdedPlayer/ModdedPlayer.cs | 30 +- Player/Overrides/PlayerStatsEx.cs | 4 +- Player/Overrides/WeaponInfoMod.cs | 8 +- Player/Overrides/XBArrowDamageMod.cs | 4 +- Player/Perks/PerkDatabase.cs | 34 +- Player/PlayerUtils.cs | 6 +- Player/Spells/ActiveSpellManager.cs | 8 +- Player/Spells/SpellActions.cs | 36 +- 27 files changed, 1274 insertions(+), 1061 deletions(-) diff --git a/Effects/Berserker.cs b/Effects/Berserker.cs index b8a9962..a50b2a7 100644 --- a/Effects/Berserker.cs +++ b/Effects/Berserker.cs @@ -23,7 +23,7 @@ public static void OnEnable() ModdedPlayer.Stats.allDamage.Multiply(ModdedPlayer.Stats.spell_berserkDamage); ModdedPlayer.Stats.attackSpeed.Multiply(ModdedPlayer.Stats.spell_berserkAttackSpeed); ModdedPlayer.Stats.movementSpeed.Multiply(ModdedPlayer.Stats.spell_berserkMovementSpeed); - ModdedPlayer.Stats.maxHealthMult.Multiply(ModdedPlayer.Stats.spell_berserkMaxHP); + ModdedPlayer.Stats.maxLifeMult.Multiply(ModdedPlayer.Stats.spell_berserkMaxHP); ModdedPlayer.Stats.allDamageTaken.Multiply(2f); castTimestamp = Time.time; @@ -36,7 +36,7 @@ public static void OnDisable() ModdedPlayer.Stats.allDamage.Divide(ModdedPlayer.Stats.spell_berserkDamage); ModdedPlayer.Stats.attackSpeed.Divide(ModdedPlayer.Stats.spell_berserkAttackSpeed); ModdedPlayer.Stats.movementSpeed.Divide(ModdedPlayer.Stats.spell_berserkMovementSpeed); - ModdedPlayer.Stats.maxHealthMult.Divide(ModdedPlayer.Stats.spell_berserkMaxHP); + ModdedPlayer.Stats.maxLifeMult.Divide(ModdedPlayer.Stats.spell_berserkMaxHP); ModdedPlayer.Stats.allDamageTaken.Divide( 2f); if (ModdedPlayer.Stats.i_setcount_BerserkSet < 2) BuffDB.AddBuff(18, 51, LocalPlayer.Stats.Energy, 15); diff --git a/Effects/BlackFlame.cs b/Effects/BlackFlame.cs index 6b8177c..fe1ad51 100644 --- a/Effects/BlackFlame.cs +++ b/Effects/BlackFlame.cs @@ -14,7 +14,7 @@ public class BlackFlame : MonoBehaviour { public static BlackFlame instance; public static float DmgAmp = 1; - public static float FireDamageBonus => (30 + ModdedPlayer.Stats.spellFlatDmg / ModdedPlayer.Stats.spell_blackFlameDamageScaling) * ModdedPlayer.Stats.TotalMagicDamageMultiplier * DmgAmp / 3; + public static float FireDamageBonus => (30 + ModdedPlayer.Stats.baseSpellDamage / ModdedPlayer.Stats.spell_blackFlameDamageScaling) * ModdedPlayer.Stats.TotalMagicDamageMultiplier * DmgAmp / 3; private static Material mat1; private static Material mat2; diff --git a/Effects/BlackHole.cs b/Effects/BlackHole.cs index 642f907..90b2e6e 100644 --- a/Effects/BlackHole.cs +++ b/Effects/BlackHole.cs @@ -205,7 +205,7 @@ private IEnumerator HitEverySecond() { if ((LocalPlayer.Transform.position - transform.position).sqrMagnitude < scale * scale * 2) { - LocalPlayer.Stats.HealthChange(-damage * ModdedPlayer.Stats.allDamageTaken * ModdedPlayer.Stats.damageFromElite * 0.5f); + LocalPlayer.Stats.HealthChange(-damage * ModdedPlayer.Stats.allDamageTaken * ModdedPlayer.Stats.damageFromElites * 0.5f); yield return new WaitForSeconds(0.5f); } else diff --git a/Effects/Cataclysm.cs b/Effects/Cataclysm.cs index c0b0b98..f22938a 100644 --- a/Effects/Cataclysm.cs +++ b/Effects/Cataclysm.cs @@ -176,7 +176,7 @@ private void SendHitFromEnemy() float sqrMagnitude = (LocalPlayer.Transform.position - transform.position).sqrMagnitude; if (sqrMagnitude < radius * radius) { - int dmg = (int)(damage * (ModdedPlayer.Stats.damageFromElite)); + int dmg = (int)(damage * (ModdedPlayer.Stats.damageFromElites)); if (isArcane) { @@ -192,7 +192,7 @@ private void SendHitFromEnemy() BuffDB.AddBuff(2, 65, 0.7f, 6); LocalPlayer.Stats.Burn(); } - LocalPlayer.Stats.Hit((int)(dmg * (ModdedPlayer.Stats.damageFromElite)), false, PlayerStats.DamageType.Drowning); + LocalPlayer.Stats.Hit((int)(dmg * (ModdedPlayer.Stats.damageFromElites)), false, PlayerStats.DamageType.Drowning); } } diff --git a/Effects/Flare.cs b/Effects/Flare.cs index 59b6c66..c93ea1e 100644 --- a/Effects/Flare.cs +++ b/Effects/Flare.cs @@ -229,7 +229,7 @@ private void Update() { if (Random.value <= ModdedPlayer.Stats.getHitChance) { - LocalPlayer.Stats.HealthChange(-damageAmount * Time.deltaTime * ( ModdedPlayer.Stats.damageFromElite) * ModdedPlayer.Stats.allDamageTaken); + LocalPlayer.Stats.HealthChange(-damageAmount * Time.deltaTime * ( ModdedPlayer.Stats.damageFromElites) * ModdedPlayer.Stats.allDamageTaken); BuffDB.AddBuff(1, 5, slowAmount, 20); LocalPlayer.Stats.Burn(); } diff --git a/Enemies/EnemyAbilities/EnemyLaserBeam.cs b/Enemies/EnemyAbilities/EnemyLaserBeam.cs index f169564..4421cd4 100644 --- a/Enemies/EnemyAbilities/EnemyLaserBeam.cs +++ b/Enemies/EnemyAbilities/EnemyLaserBeam.cs @@ -32,7 +32,7 @@ public IEnumerator DoAction() { if (hit.transform.root == LocalPlayer.Transform.root) { - LocalPlayer.Stats.Hit((int)(dmg * 0.3f * (ModdedPlayer.Stats.damageFromElite)), false, PlayerStats.DamageType.Fire); + LocalPlayer.Stats.Hit((int)(dmg * 0.3f * (ModdedPlayer.Stats.damageFromElites)), false, PlayerStats.DamageType.Fire); BuffDB.AddBuff(10, 67, 0.5f, 15); BuffDB.AddBuff(2, 66, 0.5f, 15); BuffDB.AddBuff(3, 68, dmg / 13, 5); diff --git a/Enemies/EnemyAbilities/FireAura.cs b/Enemies/EnemyAbilities/FireAura.cs index 23f0ce6..9dc7a25 100644 --- a/Enemies/EnemyAbilities/FireAura.cs +++ b/Enemies/EnemyAbilities/FireAura.cs @@ -51,7 +51,7 @@ private void Update() { if ((LocalPlayer.Transform.position - transform.position).sqrMagnitude < 49) { - float dmgPerTick = Time.deltaTime * damage * ModdedPlayer.Stats.allDamageTaken * ModdedPlayer.Stats.damageFromElite * ModReferences.DamageReduction((int)ModdedPlayer.Stats.TotalArmor); + float dmgPerTick = Time.deltaTime * damage * ModdedPlayer.Stats.allDamageTaken * ModdedPlayer.Stats.damageFromElites * ModReferences.DamageReduction((int)ModdedPlayer.Stats.TotalArmor); if (LocalPlayer.Stats.Health - 1 > dmgPerTick) LocalPlayer.Stats.Health -= dmgPerTick; diff --git a/Enemies/EnemyProgression/EnemyProgression.cs b/Enemies/EnemyProgression/EnemyProgression.cs index 9182c96..b5c20ca 100644 --- a/Enemies/EnemyProgression/EnemyProgression.cs +++ b/Enemies/EnemyProgression/EnemyProgression.cs @@ -398,7 +398,7 @@ public bool OnDie() private void DropLoot() { - if (Random.value <= 0.1f * ModSettings.DropChanceMultiplier * ModdedPlayer.Stats.magicFind.Value || AIScript.creepy_boss || abilities.Count > 0) + if (Random.value <= 0.1f * ModSettings.DropChanceMultiplier * ModdedPlayer.Stats.magicFind_quantity.Value || AIScript.creepy_boss || abilities.Count > 0) { int itemCount = Random.Range(2, 4); if (AIScript.creepy_boss) diff --git a/ExpSources/CutEffigyMod.cs b/ExpSources/CutEffigyMod.cs index 268c561..11b84d9 100644 --- a/ExpSources/CutEffigyMod.cs +++ b/ExpSources/CutEffigyMod.cs @@ -14,9 +14,9 @@ protected override void CutDown() { long expAmount = 35; ModdedPlayer.instance.AddFinalExperience(expAmount); - if (!GameSetup.IsMpClient && Random.value * ModdedPlayer.Stats.magicFind < 0.5f) + if (!GameSetup.IsMpClient && Random.value * ModdedPlayer.Stats.magicFind_quantity < 0.5f) { - Network.NetworkManager.SendItemDrop(ItemDataBase.GetRandomItem(170*ModdedPlayer.Stats.magicFind.Value, EnemyProgression.Enemy.NormalSkinnyMale,ModSettings.difficulty, transform.position), transform.position + Vector3.up * (1.75f), ItemPickUp.DropSource.Effigy); + Network.NetworkManager.SendItemDrop(ItemDataBase.GetRandomItem(170*ModdedPlayer.Stats.magicFind_quantity.Value, EnemyProgression.Enemy.NormalSkinnyMale,ModSettings.difficulty, transform.position), transform.position + Vector3.up * (1.75f), ItemPickUp.DropSource.Effigy); } if (ModdedPlayer.Stats.perk_doubleStickHarvesting) { diff --git a/Items/ItemDataBase_Loot.cs b/Items/ItemDataBase_Loot.cs index bc9350b..a10f448 100644 --- a/Items/ItemDataBase_Loot.cs +++ b/Items/ItemDataBase_Loot.cs @@ -94,7 +94,7 @@ public static Item GetRandomItem(float Worth, Vector3 pos) { int level = GetLevel(pos); float w = Worth; - w *= ModdedPlayer.Stats.magicFind.Value; + w *= ModdedPlayer.Stats.magicFind_quantity.Value; int rarity = GetRarity(w, ModSettings.difficulty); @@ -136,7 +136,7 @@ public static Item GetRandomItem(float Worth, EnemyProgression.Enemy killedEnemy { int level = GetLevel(pos); float w = Worth / (level); - w *= ModdedPlayer.Stats.magicFind.Value; + w *= ModdedPlayer.Stats.magicFind_quantity.Value; int rarity = GetRarity(w, difficulty); @@ -167,7 +167,7 @@ public static int GetRarity(float w, ModSettings.Difficulty difficulty) { int dif = (int)difficulty; int rarity = 0; - float mf = Mathf.Sqrt(ModdedPlayer.Stats.magicFind.Value) - 1; + float mf = Mathf.Sqrt(ModdedPlayer.Stats.magicFind_quantity.Value) - 1; if ((w > 20 && Random.value < 0.70f + 0.45 * mf + dif * 0.075) || (dif > 5 && w > 2000)) { rarity = 1; diff --git a/Items/ItemDataBase_StatDefinitions.cs b/Items/ItemDataBase_StatDefinitions.cs index c52c6a3..9798515 100644 --- a/Items/ItemDataBase_StatDefinitions.cs +++ b/Items/ItemDataBase_StatDefinitions.cs @@ -16,7 +16,6 @@ public static partial class ItemDataBase { public enum Stat { - ALL = -1, NONE = 0, STRENGTH = 1, AGILITY, @@ -31,77 +30,71 @@ public enum Stat DAMAGE_REDUCTION, CRIT_CHANCE, CRIT_DAMAGE, - LIFEONHIT, - DODGECHANCE, + LIFE_ON_HIT, + DODGE_CHANCE, ARMOR, - RESISTANCETOMAGIC, + ELITE_DAMAGE_REDUCTION, ATTACKSPEED, - EXPGAIN, - MASSACREDURATION, - SPELLDAMAGEINCREASE, - MELEEDAMAGEINCREASE, - RANGEDDAMAGEINCREASE, - BASESPELLDAMAGE, - BASEMELEEDAMAGE, - BASERANGEDDAMAGE, - MAXENERGYFROMAGI, - MAXHEALTHFROMVIT, - SPELLDMGFROMINT, - MELEEDMGFROMSTR, - ALLHEALINGPERCENT, - PERMANENTPERKPOINTS, - EXPERIENCE, - MOVEMENTSPEED, - MELEEWEAPONRANGE, - ATTACKCOSTREDUCTION, - SPELLCOSTREDUCTION, - SPELLCOSTTOSTAMINA, - LESSERSTRENGTH, - LESSERAGILITY, - LESSERVITALITY, - LESSERINTELLIGENCE, - LESSERARMOR, - ENERGYPERSECOND, - PERCENTMAXIMUMLIFE, - PERCENTMAXIMUMENERGY, - COOLDOWNREDUCTION, - RANGEDDMGFROMAGI, - ENERGYONHIT, + EXP_GAIN_MULT, + MASSACRE_DURATION, + SPELL_DAMAGE_MULTIPLIER, + MELEE_DAMAGE_INCREASE, + RANGED_DAMAGE_INCREASE, + BASE_SPELL_DAMAGE, + BASE_MELEE_DAMAGE, + BASE_RANGED_DAMAGE, + MAX_ENERGY_FROM_AGILITY, + MAX_HEALTH_FROM_VITALITY, + SPELL_DMG_FROM_INT, + MELEE_DMG_FROM_STR, + ALL_RECOVERY, + MOVEMENT_SPEED, + MELEE_WEAPON_RANGE, + ATTACK_COST_REDUCTION, + SPELL_COST_REDUCTION, + SPELL_COST_TO_STAMINA, + ENERGY_REGEN_BASE, + MAX_LIFE_MULT, + MAX_ENERGY_MULT, + COOLDOWN_REDUCTION, + RANGED_DMG_FROM_AGI, + ENERGY_ON_HIT, BLOCK, - PROJECTILESPEED, - PROJECTILESIZE, - MELEEARMORPIERCING, - RANGEDARMORPIERCING, - ARMORPIERCING, - MAGICFIND, + PROJECTILE_SPEED, + PROJECTILE_SIZE, + MELEE_ARMOR_PIERCING, + RANGED_ARMOR_PIERCING, + ARMOR_PIERCING, + LOOT_QUANTITY, + LOOT_QUALITY, ALL_ATTRIBUTES, REFUNDPOINTS, - JUMPPOWER, - HEADSHOTDAMAGE, - FIREDAMAGE, - CHANCEONHITTOSLOW, - CHANCEONHITTOBLEED, - CHANCEONHITTOWEAKEN, + JUMP_POWER, + HEADSHOT_DAMAGE_MULT, + FIRE_DAMAGE, + CHANCE_ON_HIT_TO_SLOW, + CHANCE_ON_HIT_TO_BLEED, + CHANCE_ON_HIT_TO_WEAKEN, THORNS, - PIERCECHANCE, - EXPLOSIONDAMAGE, - SPEARDAMAGE, - - EXTRACARRIEDSTICKS = 1000, - EXTRACARRIEDROCKS, - EXTRACARRIEDROPES, - EXTRACARRIEDDRINKS, - EXTRACARRIEDFOOD, - - BLACKHOLESIZE = 2000, - BLACKHOLELIFETIME, - BLACKHOLEGRAVITATIONALFORCE, - BLACKHOLEDAMAGE, - STUNONHIT, - SNAPFREEZEDURATION, - RAFTSPEED, - - EMPTYSOCKET = 3000, + THORNS_MULT, + PROJECTILE_PIERCE_CHANCE, + EXPLOSION_DAMAGE, + THROWN_SPEAR_DAMAGE, + + EXTRA_CARRIED_STICKS, + EXTRA_CARRIED_ROCKS, + EXTRA_CARRIED_ROPES, + EXTRA_CARRIED_DRINKS, + EXTRA_CARRIED_FOOD, + + BLACKHOLE_SIZE, + BLACK_HOLE_DURATION, + BLACK_HOLE_GRAVITY_FORCE, + BLACK_HOLE_DAMAGE, + HAMMER_STUN_ON_HIT, + SNAP_FREEZE_DURATION, + RAFT_SPEED, + } public static void PopulateStats() @@ -127,7 +120,7 @@ public static void PopulateStats() .Additive(ModdedPlayer.Stats.vitality) .LevelScaling(0.4f); - new ItemStatBuilder(Stat.ALL_ATTRIBUTES, "All Attributes", 1f, 1.5f) + new ItemStatBuilder(Stat.ALL_ATTRIBUTES, "All attributes", 1f, 1.5f) { OnEquip = f => { ModdedPlayer.Stats.strength.Add((int)f); @@ -146,29 +139,29 @@ public static void PopulateStats() // Life - new ItemStatBuilder(Stat.MAX_LIFE, "Max Life", 3.75f, 5.65f) + new ItemStatBuilder(Stat.MAX_LIFE, "Increased life", 3.75f, 5.65f) .AffectsStat(ModdedPlayer.Stats.maxLife) .Additive(ModdedPlayer.Stats.maxLife) .LevelScaling(1.21f); - new ItemStatBuilder(Stat.MAX_ENERGY, "Max Energy", 0.7f, 1.5f) + new ItemStatBuilder(Stat.MAX_ENERGY, "Increased energy", 0.7f, 1.5f) .AffectsStat(ModdedPlayer.Stats.maxEnergy) .Additive(ModdedPlayer.Stats.maxEnergy) .LevelScaling(0.5f); - new ItemStatBuilder(Stat.LIFE_REGEN_BASE, "Life Regeneration", 0.013f, 0.023f) + new ItemStatBuilder(Stat.LIFE_REGEN_BASE, "Life regeneration", 0.013f, 0.023f) .AffectsStat(ModdedPlayer.Stats.lifeRegenBase) .Additive(ModdedPlayer.Stats.lifeRegenBase) .LinearLevelScaling() .RoundTo(2); - new ItemStatBuilder(Stat.STAMINA_REGEN_BASE, "Stamina Regeneration", 0.035f, 0.11f) + new ItemStatBuilder(Stat.STAMINA_REGEN_BASE, "Stamina regeneration", 0.035f, 0.11f) .AffectsStat(ModdedPlayer.Stats.staminaRegenBase) .Additive(ModdedPlayer.Stats.staminaRegenBase) .LevelScaling(0.5f) .RoundTo(2); - new ItemStatBuilder(Stat.STAMINA_AND_ENERGY_REGEN_MULT, "Stamina and Energy Regeneration", 0.04f, 0.08f) + new ItemStatBuilder(Stat.STAMINA_AND_ENERGY_REGEN_MULT, "Stamina and energy regeneration", 0.04f, 0.08f) .AffectsStat(ModdedPlayer.Stats.energyRegenMult) .Additive(ModdedPlayer.Stats.energyRegenMult) .LevelScaling(0.1f) @@ -176,21 +169,21 @@ public static void PopulateStats() .PercentFormatting() .RoundTo(2); - new ItemStatBuilder(Stat.LIFE_REGEN_MULT, "Life Regeneration", 0.04f, 0.08f) + new ItemStatBuilder(Stat.LIFE_REGEN_MULT, "Life regeneration", 0.04f, 0.08f) .AffectsStat(ModdedPlayer.Stats.lifeRegenMult) .Additive(ModdedPlayer.Stats.lifeRegenMult) .LevelScaling(0.1f) .RarityScaling(0.2f) .PercentFormatting(); - new ItemStatBuilder(Stat.DAMAGE_REDUCTION, "Reduced Damage Taken", 0.03f, 0.07f) // needs tweaking + new ItemStatBuilder(Stat.DAMAGE_REDUCTION, "Reduced damage taken", 0.03f, 0.07f) // needs tweaking .AffectsStat(ModdedPlayer.Stats.allDamageTaken) .OneMinusMultiplier(ModdedPlayer.Stats.allDamageTaken) .LevelScaling(0.1f) .RarityScaling(0.33f) .PercentFormatting(); - new ItemStatBuilder(Stat.CRIT_CHANCE, "Critical Hit Chance", 0.035f, 0.06f) + new ItemStatBuilder(Stat.CRIT_CHANCE, "Critical hit chance", 0.035f, 0.06f) .AffectsStat(ModdedPlayer.Stats.critChance) .Additive(ModdedPlayer.Stats.critChance) // change to OneMinusMultiplier if you dont want players reaching 100% crit chance .LevelScaling(0.1f) @@ -198,239 +191,426 @@ public static void PopulateStats() .PercentFormatting() .RoundTo(2); - new ItemStatBuilder(Stat.CRIT_DAMAGE, "Critical Hit Damage", 0.30f, 0.50f) + new ItemStatBuilder(Stat.CRIT_DAMAGE, "Critical hit damage", 0.30f, 0.50f) .AffectsStat(ModdedPlayer.Stats.critDamage) .Additive(ModdedPlayer.Stats.critDamage) .LevelScaling(0.1f) .RarityScaling(0.1f) .PercentFormatting(); + new ItemStatBuilder(Stat.LIFE_ON_HIT, "Life on hit", 0.30f, 0.50f) + .AffectsStat(ModdedPlayer.Stats.lifeOnHit) + .Additive(ModdedPlayer.Stats.lifeOnHit) + .LevelScaling(0.5f) + .RarityScaling(0.6666f); + + new ItemStatBuilder(Stat.DODGE_CHANCE, "Dodge chance", 0.035f, 0.06f) + .AffectsStat(ModdedPlayer.Stats.getHitChance) + .OneMinusMultiplier(ModdedPlayer.Stats.getHitChance) + .LevelScaling(0.1f) + .RarityScaling(0.1f) + .PercentFormatting() + .RoundTo(2); + + new ItemStatBuilder(Stat.ARMOR, "Armor", 5f, 10f) + .AffectsStat(ModdedPlayer.Stats.armor) + .Additive(ModdedPlayer.Stats.armor) + .LevelScaling(1.4f) + .RarityScaling(1.1f); + + new ItemStatBuilder(Stat.ELITE_DAMAGE_REDUCTION, "Reduced damage taken from elites", 0.04f, 0.09f) + .AffectsStat(ModdedPlayer.Stats.damageFromElites) + .OneMinusMultiplier(ModdedPlayer.Stats.damageFromElites) + .LevelScaling(0.05f) + .RarityScaling(0.2f) + .RoundTo(2) + .PercentFormatting() + .Cap(0.5f); + + new ItemStatBuilder(Stat.MAX_LIFE, "Attack speed", 0.025f, 0.05f) + .AffectsStat(ModdedPlayer.Stats.attackSpeed) + .Additive(ModdedPlayer.Stats.attackSpeed) + .LevelScaling(0.05f) + .RarityScaling(0.2f) + .RoundTo(2) + .PercentFormatting() + .Cap(0.5f); + + new ItemStatBuilder(Stat.EXP_GAIN_MULT, "Increased experience gained", 0.025f, 0.05f) + .AffectsStat(ModdedPlayer.Stats.attackSpeed) + .Additive(ModdedPlayer.Stats.attackSpeed) + .LevelScaling(0.1f) + .RarityScaling(0.3f) + .RoundTo(2) + .PercentFormatting() + .Cap(0.5f); + + new ItemStatBuilder(Stat.MASSACRE_DURATION, "Increased massacre duration", 1, 2) + .AffectsStat(ModdedPlayer.Stats.maxMassacreTime) + .Additive(ModdedPlayer.Stats.maxMassacreTime) + .LevelScaling(0.1f) + .RoundTo(2) + .Cap(0.5f); + + new ItemStatBuilder(Stat.SPELL_DAMAGE_MULTIPLIER, "Increased spell damage", 0.03f, 0.06f) + .AffectsStat(ModdedPlayer.Stats.spellDamageMult) + .Additive(ModdedPlayer.Stats.spellDamageMult) + .LevelScaling(0.1f) + .PercentFormatting() + .RoundTo(2) + .Cap(0.5f); + + new ItemStatBuilder(Stat.MELEE_DAMAGE_INCREASE, "Increased melee damage", 0.03f, 0.06f) + .AffectsStat(ModdedPlayer.Stats.meleeIncreasedDmg) + .Additive(ModdedPlayer.Stats.meleeIncreasedDmg) + .LevelScaling(0.1f) + .PercentFormatting() + .RoundTo(2) + .Cap(0.5f); + + new ItemStatBuilder(Stat.RANGED_DAMAGE_INCREASE, "Increased ranged damage", 0.03f, 0.06f) + .AffectsStat(ModdedPlayer.Stats.rangedIncreasedDmg) + .Additive(ModdedPlayer.Stats.rangedIncreasedDmg) + .LevelScaling(0.1f) + .PercentFormatting() + .RoundTo(2) + .Cap(0.5f); + + + new ItemStatBuilder(Stat.BASE_MELEE_DAMAGE, "Bonus melee damage", 1.5f, 3f) + .AffectsStat(ModdedPlayer.Stats.baseMeleeDamage) + .Additive(ModdedPlayer.Stats.baseMeleeDamage) + .LevelScaling(0.6f); + + new ItemStatBuilder(Stat.BASE_SPELL_DAMAGE, "Bonus spell damage", 1.5f, 3f) + .AffectsStat(ModdedPlayer.Stats.baseSpellDamage) + .Additive(ModdedPlayer.Stats.baseSpellDamage) + .LevelScaling(0.6f); + + new ItemStatBuilder(Stat.BASE_RANGED_DAMAGE, "Bonus ranged damage", 1.5f, 3f) + .AffectsStat(ModdedPlayer.Stats.baseRangedDamage) + .Additive(ModdedPlayer.Stats.baseMeleeDamage) + .LevelScaling(0.6f); + + new ItemStatBuilder(Stat.MAX_ENERGY_FROM_AGILITY, "Each point of agility increases max energy", 0.0125f, 0.025f) + .AffectsStat(ModdedPlayer.Stats.maxEnergyFromAgi) + .Additive(ModdedPlayer.Stats.maxEnergyFromAgi) + .RarityScaling(0.5f) + .NoLevelScaling(); + + new ItemStatBuilder(Stat.MAX_HEALTH_FROM_VITALITY, "Each point of vitality increases max health", 0.075f, 0.25f) + .AffectsStat(ModdedPlayer.Stats.maxHealthFromVit) + .Additive(ModdedPlayer.Stats.maxHealthFromVit) + .RarityScaling(0.5f) + .NoLevelScaling(); + + new ItemStatBuilder(Stat.SPELL_DMG_FROM_INT, "Each point of intelligence increases spell damage", 0.004f, 0.008f) + .AffectsStat(ModdedPlayer.Stats.spellDmgFromInt) + .Additive(ModdedPlayer.Stats.spellDmgFromInt) + .RarityScaling(0.5f) + .NoLevelScaling(); + + new ItemStatBuilder(Stat.MELEE_DMG_FROM_STR, "Each point of strength increases melee damage", 0.001f, 0.0018f) + .AffectsStat(ModdedPlayer.Stats.meleeDmgFromStr) + .Additive(ModdedPlayer.Stats.meleeDmgFromStr) + .RarityScaling(0.5f) + .NoLevelScaling(); + + new ItemStatBuilder(Stat.RANGED_DMG_FROM_AGI, "Each point of agility increases ranged damage", 0.001f, 0.0018f) + .AffectsStat(ModdedPlayer.Stats.rangedDmgFromAgi) + .Additive(ModdedPlayer.Stats.rangedDmgFromAgi) + .RarityScaling(0.5f) + .NoLevelScaling(); + + new ItemStatBuilder(Stat.ALL_RECOVERY, "Energy and health recovery", 0.03f, 0.07f) + .AffectsStat(ModdedPlayer.Stats.allRecoveryMult) + .Additive(ModdedPlayer.Stats.allRecoveryMult) + .PercentFormatting() + .LevelScaling(0.1f) + .RarityScaling(0.2f); + + new ItemStatBuilder(Stat.MOVEMENT_SPEED, "Movement speed", 0.03f, 0.07f) + .AffectsStat(ModdedPlayer.Stats.movementSpeed) + .Additive(ModdedPlayer.Stats.movementSpeed) + .PercentFormatting() + .LevelScaling(0.1f) + .RarityScaling(0.2f); + + new ItemStatBuilder(Stat.JUMP_POWER, "Jump power", 0.03f, 0.07f) + .AffectsStat(ModdedPlayer.Stats.movementSpeed) + .Additive(ModdedPlayer.Stats.movementSpeed) + .PercentFormatting() + .LevelScaling(0.1f) + .RarityScaling(0.2f); + + new ItemStatBuilder(Stat.MELEE_WEAPON_RANGE, "Melee weapon range", 0.03f, 0.07f) + .AffectsStat(ModdedPlayer.Stats.weaponRange) + .MultiplyPlusOne(ModdedPlayer.Stats.weaponRange) + .PercentFormatting() + .LevelScaling(0.1f) + .RarityScaling(0.2f); + + new ItemStatBuilder(Stat.ATTACK_COST_REDUCTION, "Reduced stamina cost of attacks", 0.045f, 0.09f) + .AffectsStat(ModdedPlayer.Stats.attackStaminaCost) + .OneMinusMultiplier(ModdedPlayer.Stats.attackStaminaCost) + .PercentFormatting() + .LevelScaling(0.1f) + .RarityScaling(0.2f); + + new ItemStatBuilder(Stat.SPELL_COST_REDUCTION, "Reduced resource cost of spells", 0.03f, 0.07f) + .AffectsStat(ModdedPlayer.Stats.spellCost) + .OneMinusMultiplier(ModdedPlayer.Stats.spellCost) + .PercentFormatting() + .LevelScaling(0.1f) + .RarityScaling(0.2f); + + new ItemStatBuilder(Stat.SPELL_COST_TO_STAMINA, "Spells partially use stamina instead of energy", 0.6f, 0.13f) + .AffectsStat(ModdedPlayer.Stats.spellCostEnergyCost) + .OneMinusMultiplier(ModdedPlayer.Stats.spellCostEnergyCost) + .PercentFormatting() + .LevelScaling(0.05f) + .RarityScaling(0.2f); + + new ItemStatBuilder(Stat.ENERGY_REGEN_BASE, "Energy regeneration", 0.06f, 0.13f) + .AffectsStat(ModdedPlayer.Stats.energyRecoveryBase) + .Additive(ModdedPlayer.Stats.energyRecoveryBase) + .RoundTo(2) + .LevelScaling(0.5f); + + new ItemStatBuilder(Stat.MAX_LIFE_MULT, "Increased life", 0.03f, 0.07f) + .AffectsStat(ModdedPlayer.Stats.maxLifeMult) + .Additive(ModdedPlayer.Stats.maxLifeMult) + .RoundTo(1) + .LevelScaling(0.05f) + .PercentFormatting(); + + new ItemStatBuilder(Stat.MAX_ENERGY_MULT, "Increased energy", 0.03f, 0.07f) + .AffectsStat(ModdedPlayer.Stats.maxEnergyMult) + .Additive(ModdedPlayer.Stats.maxEnergyMult) + .RoundTo(1) + .LevelScaling(0.05f) + .PercentFormatting(); + + new ItemStatBuilder(Stat.COOLDOWN_REDUCTION, "Reduced spell cooldown", 0.03f, 0.07f) + .AffectsStat(ModdedPlayer.Stats.cooldown) + .OneMinusMultiplier(ModdedPlayer.Stats.cooldown) + .PercentFormatting() + .LevelScaling(0.1f) + .RarityScaling(0.2f); + + new ItemStatBuilder(Stat.ENERGY_ON_HIT, "Energy on hit", 0.1f, 0.2f) + .AffectsStat(ModdedPlayer.Stats.energyOnHit) + .Additive(ModdedPlayer.Stats.energyOnHit) + .RoundTo(2) + .LevelScaling(0.5f); + + new ItemStatBuilder(Stat.BLOCK, "Block", 1, 1.7f) + .AffectsStat(ModdedPlayer.Stats.block) + .Additive(ModdedPlayer.Stats.block); + + new ItemStatBuilder(Stat.PROJECTILE_SPEED, "Projectile speed", 0.02f, 0.05f) + .AffectsStat(ModdedPlayer.Stats.projectileSpeed) + .Additive(ModdedPlayer.Stats.projectileSpeed) + .PercentFormatting() + .LevelScaling(0.25f); + + new ItemStatBuilder(Stat.PROJECTILE_SIZE, "Projectile size", 0.03f, 0.06f) + .AffectsStat(ModdedPlayer.Stats.projectileSize) + .Additive(ModdedPlayer.Stats.projectileSize) + .PercentFormatting() + .LevelScaling(0.25f); + + new ItemStatBuilder(Stat.PROJECTILE_PIERCE_CHANCE, "Chance for projectiles to pierce", 0.16f, 0.36f) + .AffectsStat(ModdedPlayer.Stats.projectilePierceChance) + .Additive(ModdedPlayer.Stats.projectilePierceChance) + .PercentFormatting() + .LevelScaling(0.075f); + + new ItemStatBuilder(Stat.HEADSHOT_DAMAGE_MULT, "Headshot damage", 0.1f, 0.26f) + .AffectsStat(ModdedPlayer.Stats.headShotDamage) + .Additive(ModdedPlayer.Stats.headShotDamage) + .PercentFormatting() + .LevelScaling(0.35f); + + new ItemStatBuilder(Stat.MELEE_ARMOR_PIERCING, "Armor damage on melee hit", 1.5f, 3f) + .AffectsStat(ModdedPlayer.Stats.meleeArmorPiercing) + .Additive(ModdedPlayer.Stats.block) + .LevelScaling(1.1f) + .RarityScaling(1.5f); + + new ItemStatBuilder(Stat.RANGED_ARMOR_PIERCING, "Armor damage on ranged hit", 0.6f, 1.2f) + .AffectsStat(ModdedPlayer.Stats.rangedArmorPiercing) + .Additive(ModdedPlayer.Stats.block) + .LevelScaling(1.1f) + .RarityScaling(1.5f); + + new ItemStatBuilder(Stat.ARMOR_PIERCING, "Armor damage on hit", 0.5f, 1f) + .AffectsStat(ModdedPlayer.Stats.allArmorPiercing) + .Additive(ModdedPlayer.Stats.block) + .LevelScaling(1.1f) + .RarityScaling(1.5f); + + new ItemStatBuilder(Stat.PROJECTILE_SPEED, "Increased quantity of loot", 0.01f, 0.06f) + .AffectsStat(ModdedPlayer.Stats.magicFind_quantity) + .Additive(ModdedPlayer.Stats.magicFind_quantity) + .PercentFormatting() + .LevelScaling(0.15f); + + new ItemStatBuilder(Stat.PROJECTILE_SPEED, "Increased quality of loot", 0.01f, 0.06f) + .AffectsStat(ModdedPlayer.Stats.projectileSpeed) + .Additive(ModdedPlayer.Stats.projectileSpeed) + .PercentFormatting() + .LevelScaling(0.15f); + + new ItemStatBuilder(Stat.FIRE_DAMAGE, "Fire damage", 0.035f, 0.07f) + .AffectsStat(ModdedPlayer.Stats.fireDamage) + .Additive(ModdedPlayer.Stats.fireDamage) + .PercentFormatting() + .LevelScaling(0.25f) + .RarityScaling(0.5f); + + + new ItemStatBuilder(Stat.CHANCE_ON_HIT_TO_BLEED, "Chance to cause bleeding on hit", 0.01f, 0.03f) + .AffectsStat(ModdedPlayer.Stats.chanceToBleed) + .Additive(ModdedPlayer.Stats.chanceToBleed) + .PercentFormatting() + .LevelScaling(0.2f) + .RarityScaling(0.5f); + + new ItemStatBuilder(Stat.CHANCE_ON_HIT_TO_SLOW, "Chance to slow enemies on hit", 0.02f, 0.04f) + .AffectsStat(ModdedPlayer.Stats.chanceToSlow) + .Additive(ModdedPlayer.Stats.chanceToSlow) + .PercentFormatting() + .LevelScaling(0.2f) + .RarityScaling(0.5f); + + new ItemStatBuilder(Stat.CHANCE_ON_HIT_TO_WEAKEN, "Chance to weaken enemies on hit", 0.02f, 0.04f) + .AffectsStat(ModdedPlayer.Stats.chanceToWeaken) + .Additive(ModdedPlayer.Stats.chanceToWeaken) + .PercentFormatting() + .LevelScaling(0.2f) + .RarityScaling(0.5f); + + new ItemStatBuilder(Stat.THORNS, "Thorns", 1.5f, 2f) + .AffectsStat(ModdedPlayer.Stats.thorns) + .Additive(ModdedPlayer.Stats.thorns) + .LevelScaling(1.2f) + .RarityScaling(1.5f); + + new ItemStatBuilder(Stat.THORNS_MULT, "Thorns Damage", 0.05f, 0.07f) + .AffectsStat(ModdedPlayer.Stats.thornsDmgMult) + .MultiplyPlusOne(ModdedPlayer.Stats.thornsDmgMult) + .PercentFormatting() + .LevelScaling(0.5f) + .RarityScaling(1f); + + new ItemStatBuilder(Stat.EXPLOSION_DAMAGE, "Explosion damage", 0.15f, 0.5f) + .AffectsStat(ModdedPlayer.Stats.explosionDamage) + .Additive(ModdedPlayer.Stats.explosionDamage) + .LevelScaling(0.3f) + .RoundTo(2) + .PercentFormatting(); + + new ItemStatBuilder(Stat.THROWN_SPEAR_DAMAGE, "Increased spear throw damage", 0.25f, 0.5f) + .AffectsStat(ModdedPlayer.Stats.perk_thrownSpearDamageMult) + .MultiplyPlusOne(ModdedPlayer.Stats.perk_thrownSpearDamageMult) + .LevelScaling(0.16f) + .RoundTo(2) + .PercentFormatting(); + + + + new ItemStatBuilder(Stat.THROWN_SPEAR_DAMAGE, "Increased spear throw damage", 0.25f, 0.5f) + .AffectsStat(ModdedPlayer.Stats.perk_thrownSpearDamageMult) + .MultiplyPlusOne(ModdedPlayer.Stats.perk_thrownSpearDamageMult) + .NoLevelScaling() + .RoundTo(0); - new ItemStat(i, 0.03f, 0.06f, 0.4f, Translations.MainMenu_Guide_46, scAdd, 6, () => ModdedPlayer.Stats.critDamage.GetFormattedAmount(), StatActions.AddCritDamage, StatActions.RemoveCritDamage, StatActions.AddCritDamage) { displayAsPercent = true, roundingCount = 1, valueCap = 10f };//tr - i++; - new ItemStat(i, 0.07f, 0.13f, 1f, Translations.ItemDataBase_StatDefinitions_8/*Life on hit*/, scAdd, 4, () => ModdedPlayer.Stats.healthOnHit.GetFormattedAmount(), StatActions.AddLifeOnHit, StatActions.RemoveLifeOnHit, StatActions.AddLifeOnHit) - { - displayAsPercent = false, - roundingCount = 1 - }; //tr - i++; - new ItemStat(i, 0.003f, 0.008f, 0.38f, Translations.ItemDataBase_StatDefinitions_9/*Dodge chance*/, scOneMinusMult, 4, () => (1-ModdedPlayer.Stats.getHitChance).ToString("P"), StatActions.AddDodgeChance, StatActions.RemoveDodgeChance, StatActions.AddDodgeChance) { valueCap = 0.35f, displayAsPercent = true, roundingCount = 1 }; //tr - i++; - new ItemStat(i, 5f, 9f, 1.4f, Translations.MainMenu_Guide_17/*Armor*/, scAdd, 3, () => ModdedPlayer.Stats.armor.GetFormattedAmount(), StatActions.AddArmor, StatActions.RemoveArmor, StatActions.AddArmor); //tr - i++; - new ItemStat(i, 0.004f, 0.018f, 0.5f, Translations.ItemDataBase_StatDefinitions_10/*Resistance to magic*/, scOneMinusMult, 5, () => ModdedPlayer.Stats.damageFromElite.Value.ToString("P"), StatActions.AddEliteDamageReduction, StatActions.RemoveEliteDamageReduction, StatActions.AddEliteDamageReduction) { valueCap = 0.5f, displayAsPercent = true, roundingCount = 1 }; //tr - i++; - new ItemStat(i, 0.004f, 0.005f, 0.2f, Translations.MainMenu_Guide_49/*Attack speed*/, scAdd, 6, () => ModdedPlayer.Stats.attackSpeed.GetFormattedAmount(), StatActions.AddAttackSpeed, StatActions.RemoveAttackSpeed, StatActions.AddAttackSpeed) { displayAsPercent = true, roundingCount = 1 }; //tr - i++; - new ItemStat(i, 0.015f, 0.025f, 0.25f, Translations.ItemDataBase_StatDefinitions_11/*Experience gain*/, scMult, 7, () => ModdedPlayer.Stats.expGain.GetFormattedAmount(), StatActions.AddExpFactor, StatActions.RemoveExpFactor, StatActions.AddExpFactor) { displayAsPercent = true, roundingCount = 1, valueCap = 1f }; //tr - i++; - new ItemStat(i, 1.5f, 2f, 0f, Translations.MainMenu_Guide_120/*Massacre Duration*/, scAdd, 7, () => ModdedPlayer.Stats.maxMassacreTime.GetFormattedAmount(), StatActions.AddMaxMassacreTime, StatActions.RemoveMaxMassacreTime, StatActions.AddMaxMassacreTime) //tr - { - roundingCount = 1 - }; - i++; - new ItemStat(i, 0.014f, 0.018f, 0.3f, Translations.ItemDataBase_StatDefinitions_12/*Spell Damage Increase*/, scAdd, 5, () => ModdedPlayer.Stats.spellIncreasedDmg.GetFormattedAmount(), StatActions.AddSpellDamageAmplifier, StatActions.RemoveSpellDamageAmplifier, StatActions.AddSpellDamageAmplifier) //tr - { - displayAsPercent = true, - roundingCount = 1 - }; - i++; - new ItemStat(i, 0.014f, 0.018f, 0.3f, Translations.ItemDataBase_StatDefinitions_13/*Melee Damage Increase*/, scAdd, 5, () => ModdedPlayer.Stats.meleeIncreasedDmg.GetFormattedAmount(), StatActions.AddMeleeDamageAmplifier, StatActions.RemoveMeleeDamageAmplifier, StatActions.AddMeleeDamageAmplifier) { displayAsPercent = true, roundingCount = 1, valueCap =2f }; //tr - i++; - new ItemStat(i, 0.014f, 0.018f, 0.3f, Translations.ItemDataBase_StatDefinitions_14/*Ranged Damage Increase*/, scAdd, 5, () => ModdedPlayer.Stats.rangedIncreasedDmg.GetFormattedAmount(), StatActions.AddRangedDamageAmplifier, StatActions.RemoveRangedDamageAmplifier, StatActions.AddRangedDamageAmplifier) { displayAsPercent = true, roundingCount = 1, valueCap = 2f }; //tr - i++; - new ItemStat(i, 0.5f, 1.1f, 0.8f, Translations.ItemDataBase_StatDefinitions_15/*Base Spell Damage*/, scAdd, 4, () => ModdedPlayer.Stats.spellFlatDmg.GetFormattedAmount(), StatActions.AddspellFlatDmg, StatActions.RemovespellFlatDmg, StatActions.AddspellFlatDmg); //tr - i++; - new ItemStat(i, 0.5f, 1.1f, 0.8f, Translations.ItemDataBase_StatDefinitions_16/*Base Melee Damage*/, scAdd, 4, () => ModdedPlayer.Stats.meleeFlatDmg.GetFormattedAmount(), StatActions.AddMeleeDamageBonus, StatActions.RemoveMeleeDamageBonus, StatActions.AddMeleeDamageBonus); //tr - i++; - new ItemStat(i, 0.5f, 1.1f, 0.8f, Translations.ItemDataBase_StatDefinitions_17/*Base Ranged Damage*/, scAdd, 4,() => ModdedPlayer.Stats.rangedFlatDmg.GetFormattedAmount(), StatActions.AddRangedDamageBonus, StatActions.RemoveRangedDamageBonus, StatActions.AddRangedDamageBonus); //tr - i++; - new ItemStat(i, 0.011f, 0.025f, 0f, Translations.ItemDataBase_StatDefinitions_18/*Energy Per Agility*/, scAdd, 7, () => ModdedPlayer.Stats.maxEnergyFromAgi.GetFormattedAmount(), StatActions.AddmaxEnergyFromAgi, StatActions.RemovemaxEnergyFromAgi, StatActions.AddmaxEnergyFromAgi) { displayAsPercent = false, roundingCount = 2 }; //tr - i++; - new ItemStat(i, 0.07f, 0.25f, 0f, Translations.ItemDataBase_StatDefinitions_19/*Health Per Vitality*/, scAdd, 7, () => ModdedPlayer.Stats.maxHealthFromVit.GetFormattedAmount(), StatActions.AddmaxHealthFromVit, StatActions.RemovemaxHealthFromVit, StatActions.AddmaxHealthFromVit) { displayAsPercent = false, roundingCount = 2 }; //tr - i++; - new ItemStat(i, 0.001f, 0.0018f, 0f, Translations.ItemDataBase_StatDefinitions_20/*Spell Damage Per Int*/, scAdd, 7, () => ModdedPlayer.Stats.spellDmgFromInt.GetFormattedAmount(), StatActions.AddspellDmgFromInt, StatActions.RemovespellDmgFromInt, StatActions.AddspellDmgFromInt) { displayAsPercent = true, roundingCount = 2 }; //tr - i++; - new ItemStat(i, 0.001f, 0.0018f, 0f, Translations.ItemDataBase_StatDefinitions_21/*Melee Damage Per Strength*/, scAdd,7, () => ModdedPlayer.Stats.meleeDmgFromStr.GetFormattedAmount(), StatActions.AddmeleeDmgFromStr, StatActions.RemovemeleeDmgFromStr, StatActions.AddmeleeDmgFromStr) { displayAsPercent = true, roundingCount = 2 }; //tr - i++; - new ItemStat(i, 0.0015f, 0.007f, 0.6f, Translations.ItemDataBase_StatDefinitions_22/*All Recovery*/, scMultPlusOne, 6, () => ModdedPlayer.Stats.allRecoveryMult.GetFormattedAmount(), StatActions.AddHealingMultipier, StatActions.RemoveHealingMultipier, StatActions.AddHealingMultipier) { displayAsPercent = true, roundingCount = 1 }; //tr - i++; - new ItemStat(i, 1f / 4f, 1f / 4f, 0f, Translations.ItemDataBase_StatDefinitions_23/*PERMANENT PERK POINTS*/, scAdd, 6,()=> ModdedPlayer.instance.MutationPoints.ToString(), null, null, StatActions.PERMANENT_perkPointIncrease); //tr - i++; - new ItemStat(i, 10f, 20f, 2f, Translations.ItemDataBase_StatDefinitions_25/*EXPERIENCE*/, scAdd, 5,()=> ModdedPlayer.instance.ExpCurrent.ToString("N")+ Translations.ItemDataBase_StatDefinitions_24/* / */ + ModdedPlayer.instance.ExpGoal.ToString("N"), null, null, StatActions.PERMANENT_expIncrease); //tr - i++; - new ItemStat(i, 0.01f, 0.020f, 0.2f, Translations.MainMenu_Guide_109/*Movement Speed*/, scAdd, 6, () => ModdedPlayer.Stats.movementSpeed.GetFormattedAmount(), StatActions.AddMoveSpeed, StatActions.RemoveMoveSpeed, StatActions.AddMoveSpeed) { displayAsPercent = true, roundingCount = 2, valueCap = 0.5f }; //tr - i++; - new ItemStat(i, 0.01f, 0.03f, 0.35f, Translations.ItemDataBase_StatDefinitions_26/*Weapon Size*/, scMultPlusOne, 4, () => ModdedPlayer.Stats.weaponRange.GetFormattedAmount(), f => ModdedPlayer.Stats.weaponRange.Multiply(1 + f), f => ModdedPlayer.Stats.weaponRange.Divide(1 + f), null) { displayAsPercent = true, roundingCount = 2, valueCap = 0.4f }; //tr - i++; - new ItemStat(i, 0.02f, 0.038f, 0.4f, Translations.ItemDataBase_StatDefinitions_27/*Attack Cost Reduction*/, scOneMinusMult, 3, () => (ModdedPlayer.Stats.attackStaminaCost-1).ToString("P"), f => ModdedPlayer.Stats.attackStaminaCost.Multiply(1 - f), f => ModdedPlayer.Stats.attackStaminaCost.Divide(1 - f)) { displayAsPercent = true, roundingCount = 2, valueCap = 0.75f }; //tr - i++; - new ItemStat(i, 0.005f, 0.01f, 0.3f, Translations.MainMenu_Guide_96/*Spell Cost Reduction*/, scOneMinusMult, 6, () => (1 - ModdedPlayer.Stats.spellCost).ToString("P"), f => ModdedPlayer.Stats.spellCost.valueMultiplicative *= 1 - f, f => ModdedPlayer.Stats.spellCost.valueMultiplicative /= 1 - f, f => ModdedPlayer.Stats.spellCost.valueMultiplicative*= 1 - f) { displayAsPercent = true, roundingCount = 2, valueCap = 0.5f }; //tr - i++; - new ItemStat(i, 0.0075f, 0.01f, 0.34f, Translations.ItemDataBase_StatDefinitions_28/*Spell Cost to Stamina*/, scOneMinusMult, 2, () => (ModdedPlayer.Stats.SpellCostToStamina).ToString("P"), f => ModdedPlayer.Stats.spellCostEnergyCost.Multiply(1-f), f => ModdedPlayer.Stats.spellCostEnergyCost.Divide(1 - f)) { valueCap = 0.55f, displayAsPercent = true, roundingCount = 2 }; //tr - i++; - new ItemStat(i, 0.6f, 1f, 0.8f, Translations.MainMenu_Guide_4/*Strength*/, scAdd, 2, () => ModdedPlayer.Stats.strength.GetFormattedAmount(), StatActions.AddStrength, StatActions.RemoveStrength, StatActions.AddStrength); //tr - i++; - new ItemStat(i, 0.6f, 1f, 0.8f, Translations.MainMenu_Guide_6/*Agility*/, scAdd, 2, () => ModdedPlayer.Stats.agility.GetFormattedAmount(), StatActions.AddAgility, StatActions.RemoveAgility, StatActions.AddAgility); //tr - i++; - new ItemStat(i, 0.6f, 1f, 0.8f, Translations.MainMenu_Guide_8/*Vitality*/, scAdd, 2, () => ModdedPlayer.Stats.vitality.GetFormattedAmount(), StatActions.AddVitality, StatActions.RemoveVitality, StatActions.AddVitality); //tr - i++; - new ItemStat(i, 0.6f, 1f, 0.8f, Translations.MainMenu_Guide_10/*Intelligence*/, scAdd, 2, () => ModdedPlayer.Stats.intelligence.GetFormattedAmount(), StatActions.AddIntelligence, StatActions.RemoveIntelligence, StatActions.AddIntelligence); //tr - i++; - new ItemStat(i, 1f, 1.75f, 1.35f, Translations.MainMenu_Guide_17/*Armor*/, scAdd, 2, () => ModdedPlayer.Stats.armor.GetFormattedAmount(), StatActions.AddArmor, StatActions.RemoveArmor, StatActions.AddArmor); //tr - i++; - new ItemStat(i, 0.0075f, 0.01f, 0.833f, Translations.ItemDataBase_StatDefinitions_29/*Energy Per Second*/, scAdd, 5, () => ModdedPlayer.Stats.energyRecoveryperSecond.GetFormattedAmount(), StatActions.AddEnergyRegen, StatActions.RemoveEnergyRegen, StatActions.AddEnergyRegen) { roundingCount = 2 }; //tr - i++; - new ItemStat(i, 0.006f, 0.009f, 0.35f, Translations.ItemDataBase_StatDefinitions_1/*Maximum Life*/, scAdd, 6, () => ModdedPlayer.Stats.maxHealthMult.GetFormattedAmount(), f => ModdedPlayer.Stats.maxHealthMult.valueAdditive += f, f => ModdedPlayer.Stats.maxHealthMult.valueAdditive -= f) { displayAsPercent = true, roundingCount = 1 }; //tr - i++; - new ItemStat(i, 0.006f, 0.009f, 0.35f, Translations.ItemDataBase_StatDefinitions_2/*Maximum Energy*/, scAdd, 6, () => ModdedPlayer.Stats.maxEnergyMult.GetFormattedAmount(), f => ModdedPlayer.Stats.maxEnergyMult.valueAdditive+= f, f => ModdedPlayer.Stats.maxEnergyMult.valueAdditive -= f, f => ModdedPlayer.Stats.maxEnergyMult.valueAdditive += f) { displayAsPercent = true, roundingCount = 1 }; //tr - i++; - new ItemStat(i, 0.004f, 0.00675f, 0.35f, Translations.MainMenu_Guide_99/*Cooldown Reduction*/, scOneMinusMult, 6, () => (1-ModdedPlayer.Stats.cooldown).ToString("P"), f => ModdedPlayer.Stats.cooldown.valueMultiplicative *= (1 - f), f => ModdedPlayer.Stats.cooldown.valueMultiplicative /= (1 - f), f => ModdedPlayer.Stats.cooldown.valueMultiplicative *= (1 - f)) { displayAsPercent = true, roundingCount = 2, valueCap = 0.5f }; //tr - i++; - new ItemStat(i, 0.001f, 0.0018f, 0f, Translations.ItemDataBase_StatDefinitions_30/*Ranged Damage Per Agi*/, scAdd, 7, () => ModdedPlayer.Stats.rangedDmgFromAgi.GetFormattedAmount(), f => ModdedPlayer.Stats.rangedDmgFromAgi.valueAdditive += f, f => ModdedPlayer.Stats.rangedDmgFromAgi.valueAdditive += -f, f => ModdedPlayer.Stats.rangedDmgFromAgi.valueAdditive += f) { displayAsPercent = true, roundingCount = 2 }; //tr - i++; - new ItemStat(i, 0.02f, 0.04f, 0.67f, Translations.MainMenu_Guide_39/*Energy on hit*/, scAdd, 4, () => ModdedPlayer.Stats.energyOnHit.GetFormattedAmount(), f => ModdedPlayer.Stats.energyOnHit.valueAdditive += f, f => ModdedPlayer.Stats.energyOnHit.valueAdditive += -f, f => ModdedPlayer.Stats.energyOnHit.valueAdditive += f) { roundingCount = 2 }; //tr - i++; - new ItemStat(i, 0.95f, 1.65f, 1f, Translations.PerkDatabase_387/*Block*/, scAdd, 1, () => ModdedPlayer.Stats.block.GetFormattedAmount(), f => ModdedPlayer.Stats.block.valueAdditive += f, f => ModdedPlayer.Stats.block.valueAdditive += -f, f => ModdedPlayer.Stats.block.valueAdditive += f); //tr - i++; - new ItemStat(i, 0.01f, 0.02f, 0.3f, Translations.MainMenu_Guide_71/*Projectile speed*/, scAdd, 4, () => ModdedPlayer.Stats.projectileSpeed.GetFormattedAmount(), f => ModdedPlayer.Stats.projectileSpeed.valueAdditive += f, f => ModdedPlayer.Stats.projectileSpeed.valueAdditive += -f, f => ModdedPlayer.Stats.projectileSpeed.valueAdditive += f) { displayAsPercent = true, roundingCount = 1 }; //tr - i++; - new ItemStat(i, 0.02f, 0.03f, 0.34f, Translations.MainMenu_Guide_73/*Projectile size*/, scAdd, 4, () => ModdedPlayer.Stats.projectileSize.GetFormattedAmount(), f => ModdedPlayer.Stats.projectileSize.valueAdditive += f, f => ModdedPlayer.Stats.projectileSize.valueAdditive += -f, f => ModdedPlayer.Stats.projectileSize.valueAdditive += f) { displayAsPercent = true, roundingCount = 1 }; //tr - i++; - new ItemStat(i, 1.5f, 2.25f, 1.21f, Translations.ItemDataBase_StatDefinitions_31/*Melee armor piercing*/, scAdd, 5, () => ModdedPlayer.Stats.TotalMeleeArmorPiercing.ToString(), f => ModdedPlayer.Stats.meleeArmorPiercing.valueAdditive += Mathf.RoundToInt(f), f => ModdedPlayer.Stats.meleeArmorPiercing.valueAdditive += -Mathf.RoundToInt(f), f => ModdedPlayer.Stats.meleeArmorPiercing.valueAdditive += Mathf.RoundToInt(f)); //tr - i++; - new ItemStat(i, 0.95f, 1.25f, 1.2f, Translations.ItemDataBase_StatDefinitions_32/*Ranged armor piercing*/, scAdd, 5, () => ModdedPlayer.Stats.TotalRangedArmorPiercing.ToString(), f => ModdedPlayer.Stats.rangedArmorPiercing.valueAdditive += Mathf.RoundToInt(f), f => ModdedPlayer.Stats.rangedArmorPiercing.valueAdditive += -Mathf.RoundToInt(f), f => ModdedPlayer.Stats.rangedArmorPiercing.valueAdditive += Mathf.RoundToInt(f)); //tr - i++; - new ItemStat(i, 0.75f, 1f, 1.2f, Translations.ItemDataBase_StatDefinitions_33/*Armor piercing*/, //tr - scAdd, 5, () => $"M{ModdedPlayer.Stats.TotalMeleeArmorPiercing} R{ModdedPlayer.Stats.TotalRangedArmorPiercing}", f => ModdedPlayer.Stats.allArmorPiercing.valueAdditive += Mathf.RoundToInt(f), f => ModdedPlayer.Stats.allArmorPiercing.valueAdditive += -Mathf.RoundToInt(f), f => ModdedPlayer.Stats.allArmorPiercing.valueAdditive += Mathf.RoundToInt(f)); - i++; - new ItemStat(i, 0.01f, 0.02f, 0.15f, Translations.MainMenu_Guide_126/*Magic Find*/, scMultPlusOne, 7, () => ModdedPlayer.Stats.magicFind.Value.ToString("P"), StatActions.AddMagicFind, StatActions.RemoveMagicFind, StatActions.AddMagicFind) { displayAsPercent = true, roundingCount = 1, valueCap = 0.25f }; //tr - i++; - new ItemStat(i, 0.5f, 0.8f, 0.8f, Translations.PerkDatabase_44/*All attributes*/, scAdd, 4, () => //tr - $"S{ModdedPlayer.Stats.strength} A{ModdedPlayer.Stats.agility} I{ModdedPlayer.Stats.intelligence} V{ModdedPlayer.Stats.vitality}", StatActions.AddAllStats, StatActions.RemoveAllStats, StatActions.AddAllStats); - i++; - new ItemStat(i, 0, 0, 0, Translations.ItemDataBase_StatDefinitions_34/*Refund points*/, scAdd, 7,()=>"", f => ModdedPlayer.Respec(), f => ModdedPlayer.Respec(), f => ModdedPlayer.Respec()); //tr - i++; - new ItemStat(i, 0.02f, 0.033f, 0.24f, Translations.MainMenu_Guide_111/*Jump Power*/, scAdd, 4,()=> ModdedPlayer.Stats.jumpPower.GetFormattedAmount() ,StatActions.AddJump, StatActions.RemoveJump, StatActions.AddJump) { displayAsPercent = true, roundingCount = 2 }; //tr - i++; - new ItemStat(i, 0.052f, 0.13f, 0.35f, Translations.ItemDataBase_StatDefinitions_35/*Headshot Damage*/, scMultPlusOne, 4, () => ModdedPlayer.Stats.headShotDamage.GetFormattedAmount(), f => ModdedPlayer.Stats.headShotDamage.Add(f), f => ModdedPlayer.Stats.headShotDamage.Substract(f), null) { displayAsPercent = true, roundingCount = 2 }; //tr - i++; - new ItemStat(i, 0.015f, 0.042f, 0.34f, Translations.ItemDataBase_StatDefinitions_36/*Fire Damage*/, scAdd, 4, () => ModdedPlayer.Stats.fireDamage.GetFormattedAmount(), f => ModdedPlayer.Stats.fireDamage.valueAdditive += f, f => ModdedPlayer.Stats.fireDamage.valueAdditive -= f, null) { displayAsPercent = true, roundingCount = 2 }; //tr - i++; - new ItemStat(i, 0.008f, 0.015f, 0.25f, Translations.ItemDataBase_StatDefinitions_37/*Chance on hit to slow*/, scAdd, 3, () => ModdedPlayer.Stats.chanceToSlow.GetFormattedAmount(), f => ModdedPlayer.Stats.chanceToSlow.valueAdditive += f, f => ModdedPlayer.Stats.chanceToSlow.valueAdditive -= f, null) { displayAsPercent = true, roundingCount = 2 }; //tr - i++; - new ItemStat(i, 0.006f, 0.01f, 0.25f, Translations.ItemDataBase_StatDefinitions_38/*Chance on hit to bleed*/, scAdd, 3, () => ModdedPlayer.Stats.chanceToBleed.GetFormattedAmount(), f => ModdedPlayer.Stats.chanceToBleed.valueAdditive += f, f => ModdedPlayer.Stats.chanceToBleed.valueAdditive -= f, null) { displayAsPercent = true, roundingCount = 2 }; //tr - i++; - new ItemStat(i, 0.008f, 0.015f, 0.25f, Translations.ItemDataBase_StatDefinitions_39/*Chance on hit to weaken*/, scAdd, 3, () => ModdedPlayer.Stats.chanceToWeaken.GetFormattedAmount(), f => ModdedPlayer.Stats.chanceToWeaken.valueAdditive += f, f => ModdedPlayer.Stats.chanceToWeaken.valueAdditive -= f, null) { displayAsPercent = true, roundingCount = 2 }; //tr - i++; - new ItemStat(i, 1.1f, 1.8f, 1.2f, Translations.MainMenu_Guide_104/*Thorns*/, scAdd, 4, () => ModdedPlayer.Stats.thorns.GetFormattedAmount(), f => ModdedPlayer.Stats.thorns.valueAdditive += f, f => ModdedPlayer.Stats.thorns.valueAdditive -= f, f => ModdedPlayer.Stats.thorns.valueAdditive += f); //tr - i++; - new ItemStat(i, 0.035f, 0.145f, 0.1f, Translations.MainMenu_Guide_77/*Projectile pierce chance*/, scAdd, 6, () => ModdedPlayer.Stats.projectilePierceChance.GetFormattedAmount(), f => ModdedPlayer.Stats.projectilePierceChance.valueAdditive += f, f => ModdedPlayer.Stats.projectilePierceChance.valueAdditive += -f, f => ModdedPlayer.Stats.projectilePierceChance.valueAdditive += f) { displayAsPercent = true, roundingCount = 1 }; //tr - i++; - new ItemStat(i, 0.04f, 0.11f, 1f, Translations.ItemDataBase_StatDefinitions_40/*Explosive damage*/, scAdd, 6, () => ModdedPlayer.Stats.explosionDamage.GetFormattedAmount(), f => ModdedPlayer.Stats.explosionDamage.Add( f), f => ModdedPlayer.Stats.projectilePierceChance.Substract(f)) { roundingCount = 1, displayAsPercent = true }; //tr - i++; - new ItemStat(i, 0.17f, 0.55f, 0.3f, Translations.ItemDataBase_StatDefinitions_41/*Thrown spear damage*/, scAdd, 6, () => ModdedPlayer.Stats.perk_thrownSpearDamageMult.GetFormattedAmount(), f => ModdedPlayer.Stats.perk_thrownSpearDamageMult.Multiply(1+ f), f => ModdedPlayer.Stats.perk_thrownSpearDamageMult.Divide(1+f)) { displayAsPercent = true, roundingCount = 1 }; //tr - i++; //Extra carry items - i = 1000; - new ItemStat(i, 9f, 18f, 0f, Translations.ItemDataBase_StatDefinitions_42/*Extra Carried Sticks*/, scAdd, 4, () =>LocalPlayer.Inventory.GetMaxAmountOf(57).ToString(), f => ModdedPlayer.instance.AddExtraItemCapacity(57, Mathf.RoundToInt(f)), f => ModdedPlayer.instance.AddExtraItemCapacity(57, -Mathf.RoundToInt(f)), null); //tr - i++; - new ItemStat(i, 7f, 18f, 0f, Translations.ItemDataBase_StatDefinitions_43/*Extra Carried Rocks*/, scAdd, 4, () => LocalPlayer.Inventory.GetMaxAmountOf(53).ToString(), f => ModdedPlayer.instance.AddExtraItemCapacity(53, Mathf.RoundToInt(f)), f => ModdedPlayer.instance.AddExtraItemCapacity(53, -Mathf.RoundToInt(f)), null); //tr - i++; - new ItemStat(i, 6f, 18f, 0f, Translations.ItemDataBase_StatDefinitions_44/*Extra Carried Ropes*/, scAdd, 4, () => LocalPlayer.Inventory.GetMaxAmountOf(43).ToString(), f => ModdedPlayer.instance.AddExtraItemCapacity(54, Mathf.RoundToInt(f)), f => ModdedPlayer.instance.AddExtraItemCapacity(43, -Mathf.RoundToInt(f)), null); //tr - i++; - new ItemStat(i, 15f, 25f, 0f, Translations.ItemDataBase_StatDefinitions_47/*Extra Carried Drinks*/, scAdd, 4, () => Translations.ItemDataBase_StatDefinitions_46/*Booze: */ + LocalPlayer.Inventory.GetMaxAmountOf((int)MoreCraftingReceipes.VanillaItemIDs.BOOZE).ToString() + Translations.ItemDataBase_StatDefinitions_45/* Soda: */ + LocalPlayer.Inventory.GetMaxAmountOf((int)MoreCraftingReceipes.VanillaItemIDs.SODA), f => //tr - { - ModdedPlayer.instance.AddExtraItemCapacity((int)MoreCraftingReceipes.VanillaItemIDs.BOOZE, Mathf.RoundToInt(f)); - ModdedPlayer.instance.AddExtraItemCapacity((int)MoreCraftingReceipes.VanillaItemIDs.SODA, Mathf.RoundToInt(f)); - }, - f => - { - ModdedPlayer.instance.AddExtraItemCapacity((int)MoreCraftingReceipes.VanillaItemIDs.BOOZE, -Mathf.RoundToInt(f)); - ModdedPlayer.instance.AddExtraItemCapacity((int)MoreCraftingReceipes.VanillaItemIDs.SODA, -Mathf.RoundToInt(f)); - }, - null); - i++; - new ItemStat(i, 7f, 20f, 0f, Translations.ItemDataBase_StatDefinitions_48/*Extra Carried Food*/, scAdd, 4, //tr - () => "...", f => - { - ModdedPlayer.instance.AddExtraItemCapacity((int)MoreCraftingReceipes.VanillaItemIDs.GENERICMEAT, Mathf.RoundToInt(f)); - ModdedPlayer.instance.AddExtraItemCapacity((int)MoreCraftingReceipes.VanillaItemIDs.SMALLGENERICMEAT, Mathf.RoundToInt(f)); - ModdedPlayer.instance.AddExtraItemCapacity((int)MoreCraftingReceipes.VanillaItemIDs.BLACKBERRY, Mathf.RoundToInt(f)); - ModdedPlayer.instance.AddExtraItemCapacity((int)MoreCraftingReceipes.VanillaItemIDs.BLUEBERRY, Mathf.RoundToInt(f)); - ModdedPlayer.instance.AddExtraItemCapacity((int)MoreCraftingReceipes.VanillaItemIDs.CHOCOLATEBAR, Mathf.RoundToInt(f)); - ModdedPlayer.instance.AddExtraItemCapacity((int)MoreCraftingReceipes.VanillaItemIDs.LIZARD, Mathf.RoundToInt(f)); - ModdedPlayer.instance.AddExtraItemCapacity((int)MoreCraftingReceipes.VanillaItemIDs.RABBITDEAD, Mathf.RoundToInt(f)); - }, - f => - { - ModdedPlayer.instance.AddExtraItemCapacity((int)MoreCraftingReceipes.VanillaItemIDs.GENERICMEAT, -Mathf.RoundToInt(f)); - ModdedPlayer.instance.AddExtraItemCapacity((int)MoreCraftingReceipes.VanillaItemIDs.SMALLGENERICMEAT, -Mathf.RoundToInt(f)); - ModdedPlayer.instance.AddExtraItemCapacity((int)MoreCraftingReceipes.VanillaItemIDs.BLACKBERRY,- Mathf.RoundToInt(f)); - ModdedPlayer.instance.AddExtraItemCapacity((int)MoreCraftingReceipes.VanillaItemIDs.BLUEBERRY, -Mathf.RoundToInt(f)); - ModdedPlayer.instance.AddExtraItemCapacity((int)MoreCraftingReceipes.VanillaItemIDs.CHOCOLATEBAR, -Mathf.RoundToInt(f)); - ModdedPlayer.instance.AddExtraItemCapacity((int)MoreCraftingReceipes.VanillaItemIDs.LIZARD, -Mathf.RoundToInt(f)); - ModdedPlayer.instance.AddExtraItemCapacity((int)MoreCraftingReceipes.VanillaItemIDs.RABBITDEAD, -Mathf.RoundToInt(f)); - }, - null); - i++; - - - i = 2000; - new ItemStat(i, 3f, 6f, 0f, Translations.ItemDataBase_StatDefinitions_49/*Black Hole Size*/, scAdd, 6, () => ModdedPlayer.Stats.spell_blackhole_radius.GetFormattedAmount(), f => ModdedPlayer.Stats.spell_blackhole_radius.valueAdditive += f, f => ModdedPlayer.Stats.spell_blackhole_radius.valueAdditive += -f, f => ModdedPlayer.Stats.spell_blackhole_radius.valueAdditive += f) { roundingCount = 1 }; //tr - i++; - new ItemStat(i, 2f, 3f, 0f, Translations.ItemDataBase_StatDefinitions_50/*Black Hole Lifetime*/, scAdd, 6, () => ModdedPlayer.Stats.spell_blackhole_duration.GetFormattedAmount(), f => ModdedPlayer.Stats.spell_blackhole_duration.valueAdditive += f, f => ModdedPlayer.Stats.spell_blackhole_duration.valueAdditive += -f, f => ModdedPlayer.Stats.spell_blackhole_duration.valueAdditive += f) { roundingCount = 1 }; //tr - i++; - new ItemStat(i, 5f, 7f, 0f, Translations.ItemDataBase_StatDefinitions_51/*Black Hole Gravitational Force*/, scAdd, 6, () => ModdedPlayer.Stats.spell_blackhole_pullforce.GetFormattedAmount(), f => ModdedPlayer.Stats.spell_blackhole_pullforce.valueAdditive += f, f => ModdedPlayer.Stats.spell_blackhole_pullforce.valueAdditive += -f, f => ModdedPlayer.Stats.spell_blackhole_pullforce.valueAdditive += f) { roundingCount = 1 }; //tr - i++; - new ItemStat(i, 0.2f, 0.3f, 0.9f, Translations.ItemDataBase_StatDefinitions_52/*Black Hole damage*/, scAdd, 6, () => ModdedPlayer.Stats.spell_blackhole_damage.GetFormattedAmount(), f => ModdedPlayer.Stats.spell_blackhole_damage.valueAdditive += f, f => ModdedPlayer.Stats.spell_blackhole_damage.valueAdditive += -f, f => ModdedPlayer.Stats.spell_blackhole_damage.valueAdditive += f) { roundingCount = 1 }; //tr - i++; - new ItemStat(i, 1, 1, 0, Translations.ItemDataBase_StatDefinitions_53/*Stun on hit*/, scAdd, 1, () =>"", f => ModdedPlayer.Stats.i_HammerStun.value = true, f => ModdedPlayer.Stats.i_HammerStun.value = false, null); //tr - i++; - new ItemStat(i, 3, 5f, 0, Translations.ItemDataBase_StatDefinitions_54/*Snap Freeze Duration*/, scAdd, 3, () => ModdedPlayer.Stats.spell_snapFreezeDuration.GetFormattedAmount(), f => ModdedPlayer.Stats.spell_snapFreezeDuration.valueAdditive += f, f => ModdedPlayer.Stats.spell_snapFreezeDuration.valueAdditive -= f, null); //tr - i++; - new ItemStat(i, 1f, 1.15f, 0, Translations.ItemDataBase_StatDefinitions_55/*Raft Speed*/, scAdd, 4, () => ModdedPlayer.Stats.perk_RaftSpeedMultipier.GetFormattedAmount(), f => ModdedPlayer.Stats.perk_RaftSpeedMultipier.Add(f), f => ModdedPlayer.Stats.perk_RaftSpeedMultipier.Substract(f), null) { displayAsPercent = true, roundingCount = 2 }; //tr - i++; - - //Sockets - i = 3000; - new ItemStat(i++, 1, 3.5f, 0, Translations.ItemDataBase_StatDefinitions_56/*Empty Socket*/, scAdd, 0, null, null, null) { multipier = 0 }; //tr - new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_57/*Socket: Crit Chance*/, scAdd, 0,null, f=> ModdedPlayer.Stats.critChance.Add(f), f => ModdedPlayer.Stats.critChance.Substract(f)) //tr - { displayAsPercent = true, roundingCount = 1}; - new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_58/*Socket: Agility*/, scAdd, 0,null, StatActions.AddAgility, StatActions.RemoveAgility, null) //tr - { roundingCount = 0 }; - new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_59/*Socket: Movement Speed*/, scAdd, 0,null, StatActions.AddMoveSpeed, StatActions.RemoveMoveSpeed, null) { displayAsPercent = true, roundingCount = 1 }; //tr - new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_60/*Socket: Ranged Damage*/, scAdd, 0,null, StatActions.AddRangedDamageAmplifier, StatActions.RemoveRangedDamageAmplifier, null) { displayAsPercent = true, roundingCount = 1 }; //tr - new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_61/*Socket: Ranged Armor Piercing*/, scAdd, 0,null, f => ModdedPlayer.Stats.rangedArmorPiercing.valueAdditive += Mathf.RoundToInt(f), f => ModdedPlayer.Stats.rangedArmorPiercing.valueAdditive += -Mathf.RoundToInt(f), null) { roundingCount = 0 }; //tr - - //3006 - new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_62/*Socketed Shark Tooth: Attack Speed*/, scAdd, 0,null, StatActions.AddAttackSpeed, StatActions.RemoveAttackSpeed, null) { displayAsPercent = true, roundingCount = 1 }; //tr - new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_63/*Socketed Shark Tooth: Strength*/, scAdd, 0,null, StatActions.AddStrength, StatActions.RemoveStrength, null) { roundingCount = 0 }; //tr - new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_64/*Socketed Shark Tooth: Damage Reduction*/, scOneMinusMult, 0,null, StatActions.AddDamageReduction, StatActions.RemoveDamageReduction, null) { displayAsPercent = true, roundingCount = 1 }; //tr - new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_65/*Socketed Shark Tooth: Melee Damage*/, scAdd, 0,null, StatActions.AddMeleeDamageAmplifier, StatActions.RemoveMeleeDamageAmplifier, null) { displayAsPercent = true, roundingCount = 1 }; //tr - new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_66/*Socketed Shark Tooth: Melee Armor Piercing*/, scAdd, 0,null, f => ModdedPlayer.Stats.meleeArmorPiercing.valueAdditive += Mathf.RoundToInt(f), f => ModdedPlayer.Stats.meleeArmorPiercing.valueAdditive += -Mathf.RoundToInt(f), null) { roundingCount = 0 }; //tr - - //30011 - new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_67/*Socket: Cooldown Reduction*/, scOneMinusMult, 0,null, f => ModdedPlayer.Stats.cooldown.valueMultiplicative *= (1 - f), f => ModdedPlayer.Stats.cooldown.valueMultiplicative /= (1 - f), null) { displayAsPercent = true, roundingCount = 1 }; //tr - new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_68/*Socket: Intelligence*/, scAdd, 0,null, StatActions.AddIntelligence, StatActions.RemoveIntelligence, null) { roundingCount = 0 }; //tr - new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_69/*Socket: Spell Cost Reduction*/, scOneMinusMult, 0,null, f => ModdedPlayer.Stats.spellCost.valueMultiplicative *= 1 - f, f => ModdedPlayer.Stats.spellCost.valueMultiplicative /= 1 - f, null) { displayAsPercent = true, roundingCount = 1 }; //tr - new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_70/*Socket: Spell Damage*/, scAdd, 0,null, StatActions.AddSpellDamageAmplifier, StatActions.RemoveSpellDamageAmplifier, null) { displayAsPercent = true, roundingCount = 1 }; //tr - new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_71/*Socket: Energy On Hit*/, scAdd, 0,null, f => ModdedPlayer.Stats.energyOnHit.valueAdditive += f, f => ModdedPlayer.Stats.energyOnHit.valueAdditive += -f, null) { roundingCount = 2, multipier = 0.02f }; //tr - - //3016 - new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_72/*Socket: Experience Gain*/, scMultPlusOne, 0,null, StatActions.AddExpFactor, StatActions.RemoveExpFactor, null) { displayAsPercent = true, roundingCount = 1 }; //tr - new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_73/*Socket: Vitality */, scAdd, 0,null, StatActions.AddVitality, StatActions.RemoveVitality, null) { roundingCount = 0 }; //tr - new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_74/*Socket: Magic Find*/, scAdd, 0,null, f => StatActions.AddMagicFind(f), f => StatActions.AddMagicFind(-f), null) { displayAsPercent = true, roundingCount = 1 }; //tr - new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_75/*Socket: All Healing*/, scMultPlusOne, 0,null, StatActions.AddHealingMultipier, StatActions.RemoveHealingMultipier, null) { displayAsPercent = true, roundingCount = 1, multipier = 1.25f }; //tr - new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_76/*Socket: Life Per Second*/, scAdd, 0,null, StatActions.AddHPRegen, StatActions.RemoveHPRegen, null) { roundingCount = 1, multipier = 0.04f }; //tr - - //3021 - new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_77/*Socket: Maximum Health */, scMultPlusOne, 0,null, f => ModdedPlayer.Stats.maxHealthMult.valueMultiplicative *= 1 + f, f => ModdedPlayer.Stats.maxHealthMult.valueMultiplicative /= 1 + f, null) { displayAsPercent = true, roundingCount = 1 }; //tr - new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_78/*Socket: Armor */, scAdd, 0,null, StatActions.AddArmor, StatActions.RemoveArmor, null) { roundingCount = 0, multipier = 10f }; //tr - new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_79/*Socket: Resistance To Magic*/, scOneMinusMult, 0,null, StatActions.AddEliteDamageReduction, StatActions.RemoveEliteDamageReduction, null) { displayAsPercent = true, roundingCount = 1 }; //tr - new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_80/*Socket: Crit Damage*/, scMultPlusOne, 0,null, f => ModdedPlayer.Stats.critDamage.Add(f), f => ModdedPlayer.Stats.critDamage.Substract(f), null) { displayAsPercent = true, roundingCount = 1, multipier = 5f }; //tr - new ItemStat(i++, 0,0,1, Translations.ItemDataBase_StatDefinitions_81/*Socket: Thorns*/, scAdd, 0,null, f => ModdedPlayer.Stats.thorns.valueAdditive += f, f => ModdedPlayer.Stats.thorns.valueAdditive -= f, null) { roundingCount = 0, multipier = 5f }; //tr + new ItemStatBuilder(Stat.EXTRA_CARRIED_STICKS, "More carried sticks", 5, 15) + .AffectsCarryCapacity(MoreCraftingReceipes.VanillaItemIDs.STICK) + .NoLevelScaling() + .RoundTo(0); + + new ItemStatBuilder(Stat.EXTRA_CARRIED_ROCKS, "More carried rocks", 5, 15) + .AffectsCarryCapacity(MoreCraftingReceipes.VanillaItemIDs.ROCK) + .NoLevelScaling() + .RoundTo(0); + + new ItemStatBuilder(Stat.EXTRA_CARRIED_ROPES, "More carried ropes", 5, 15) + .AffectsCarryCapacity(MoreCraftingReceipes.VanillaItemIDs.ROPE) + .NoLevelScaling() + .RoundTo(0); + + new ItemStatBuilder(Stat.EXTRA_CARRIED_DRINKS, "More carried booze and soda", 15, 30) + .AffectsCarryCapacity( + MoreCraftingReceipes.VanillaItemIDs.BOOZE, + MoreCraftingReceipes.VanillaItemIDs.SODA) + .NoLevelScaling() + .RoundTo(0); + + new ItemStatBuilder(Stat.EXTRA_CARRIED_FOOD, "More carried food", 10, 20) + .AffectsCarryCapacity( + MoreCraftingReceipes.VanillaItemIDs.GENERICMEAT, + MoreCraftingReceipes.VanillaItemIDs.SMALLGENERICMEAT, + MoreCraftingReceipes.VanillaItemIDs.BLACKBERRY, + MoreCraftingReceipes.VanillaItemIDs.BLUEBERRY, + MoreCraftingReceipes.VanillaItemIDs.CHOCOLATEBAR, + MoreCraftingReceipes.VanillaItemIDs.LIZARD, + MoreCraftingReceipes.VanillaItemIDs.RABBITDEAD) + .NoLevelScaling() + .RoundTo(0); + + + // Black hole stats + new ItemStatBuilder(Stat.BLACK_HOLE_DAMAGE, "Bonus black hole damage", 3f, 12f) + .AffectsStat(ModdedPlayer.Stats.spell_blackhole_damage) + .Additive(ModdedPlayer.Stats.spell_blackhole_damage) + .LevelScaling(0.6f); + + new ItemStatBuilder(Stat.BLACK_HOLE_GRAVITY_FORCE, "Black hole gravitational force", 10f, 30f) + .AffectsStat(ModdedPlayer.Stats.spell_blackhole_pullforce) + .Additive(ModdedPlayer.Stats.spell_blackhole_pullforce) + .NoLevelScaling() + .NoRarityScaling(); + + new ItemStatBuilder(Stat.BLACKHOLE_SIZE, "Black hole radius", 5f, 20f) + .AffectsStat(ModdedPlayer.Stats.spell_blackhole_radius) + .Additive(ModdedPlayer.Stats.spell_blackhole_radius) + .NoLevelScaling() + .NoRarityScaling(); + + new ItemStatBuilder(Stat.BLACK_HOLE_DURATION, "Black hole duration", 5f, 20f) + .AffectsStat(ModdedPlayer.Stats.spell_blackhole_duration) + .Additive(ModdedPlayer.Stats.spell_blackhole_duration) + .NoLevelScaling() + .NoRarityScaling(); + + + + new ItemStatBuilder(Stat.HAMMER_STUN_ON_HIT, "Stuns enemies on hit", 1, 1) + .Additive(ModdedPlayer.Stats.i_HammerStun) + .NoLevelScaling() + .NoRarityScaling() + .NoRarityScaling() + .NoLevelScaling() + .GetTotalStat = () => ""; + + new ItemStatBuilder(Stat.SNAP_FREEZE_DURATION, "Snap freeze duration", 1f, 5f) + .AffectsStat(ModdedPlayer.Stats.spell_snapFreezeDuration) + .Additive(ModdedPlayer.Stats.spell_snapFreezeDuration) + .NoLevelScaling() + .NoRarityScaling(); + + new ItemStatBuilder(Stat.RAFT_SPEED, "Global raft speed", 0.5f, 4f) + .AffectsStat(ModdedPlayer.Stats.perk_RaftSpeedMultipier) + .Additive(ModdedPlayer.Stats.perk_RaftSpeedMultipier) + .PercentFormatting() + .RoundTo(2) + .NoLevelScaling() + .NoRarityScaling(); + } } } \ No newline at end of file diff --git a/Items/ItemDefinitions/ItemDataBase_ItemDefinitions.cs b/Items/ItemDefinitions/ItemDataBase_ItemDefinitions.cs index 1c592ca..9544a74 100644 --- a/Items/ItemDefinitions/ItemDataBase_ItemDefinitions.cs +++ b/Items/ItemDefinitions/ItemDataBase_ItemDefinitions.cs @@ -3490,8 +3490,8 @@ public static void PopulateItems() StackSize = 1, type = BaseItem.ItemType.Glove, icon = Res.ResourceLoader.GetTexture(86), - onEquip = () => { ModdedPlayer.Stats.spellIncreasedDmg.valueMultiplicative *= 2f; ModdedPlayer.Stats.spellCost.valueMultiplicative *= 2f; }, - onUnequip = () => { ModdedPlayer.Stats.spellIncreasedDmg.valueMultiplicative /= 2f; ModdedPlayer.Stats.spellCost.valueMultiplicative /= 2f; } + onEquip = () => { ModdedPlayer.Stats.spellDamageMult.valueMultiplicative *= 2f; ModdedPlayer.Stats.spellCost.valueMultiplicative *= 2f; }, + onUnequip = () => { ModdedPlayer.Stats.spellDamageMult.valueMultiplicative /= 2f; ModdedPlayer.Stats.spellCost.valueMultiplicative /= 2f; } }; new BaseItem(new int[][] { @@ -4392,14 +4392,14 @@ public static void PopulateItems() //This is the new better way of defining items, no longer uses item ids, now uses enum like in C++, the enum is Stats, you can find it in ItemDataBase_StatDefinitons.cs new BaseItem(new Stat[][] { - new [] {MELEEDMGFROMSTR}, + new [] {MELEE_DMG_FROM_STR}, new [] {STRENGTH}, - new [] {BASEMELEEDAMAGE,MELEEDAMAGEINCREASE}, - new [] {MELEEARMORPIERCING,ARMORPIERCING,ALL_ATTRIBUTES}, - new [] {ATTACKCOSTREDUCTION,ATTACKSPEED}, + new [] {BASE_MELEE_DAMAGE,MELEE_DAMAGE_INCREASE}, + new [] {MELEE_ARMOR_PIERCING,ARMOR_PIERCING,ALL_ATTRIBUTES}, + new [] {ATTACK_COST_REDUCTION,ATTACKSPEED}, new [] {ATTACKSPEED}, - new [] {ALL_ATTRIBUTES,MELEEWEAPONRANGE,VITALITY,MAX_LIFE}, - new [] {ENERGYONHIT,VITALITY,LIFEONHIT } + new [] {ALL_ATTRIBUTES,MELEE_WEAPON_RANGE,VITALITY,MAX_LIFE}, + new [] {ENERGY_ON_HIT,VITALITY,LIFE_ON_HIT } }) { name = Translations.ItemDataBase_ItemDefinitions_372/*Knife on a stick*/, //tr @@ -4416,17 +4416,17 @@ public static void PopulateItems() new BaseItem(new Stat[][] { new [] {STRENGTH}, - new [] {STRENGTH,ALL_ATTRIBUTES,MELEEARMORPIERCING,MELEEDAMAGEINCREASE,COOLDOWNREDUCTION,SPELLDAMAGEINCREASE}, - new [] {MAX_LIFE,VITALITY,PERCENTMAXIMUMLIFE,ALL_ATTRIBUTES}, - new [] {MELEEDAMAGEINCREASE,DAMAGE_REDUCTION}, + new [] {STRENGTH,ALL_ATTRIBUTES,MELEE_ARMOR_PIERCING,MELEE_DAMAGE_INCREASE,COOLDOWN_REDUCTION,SPELL_DAMAGE_MULTIPLIER}, + new [] {MAX_LIFE,VITALITY,MAX_LIFE_MULT,ALL_ATTRIBUTES}, + new [] {MELEE_DAMAGE_INCREASE,DAMAGE_REDUCTION}, new [] {THORNS}, new [] {VITALITY,LIFE_REGEN_BASE,LIFE_REGEN_MULT}, new [] {VITALITY,LIFE_REGEN_BASE,LIFE_REGEN_MULT,THORNS}, new [] {ALL}, new [] {ALL}, new [] {ALL}, - new [] {ENERGYPERSECOND,MAX_ENERGY,DODGECHANCE,ARMOR,}, - new [] {STRENGTH,INTELLIGENCE,ARMOR,ARMORPIERCING,THORNS,} + new [] {ENERGY_REGEN_BASE,MAX_ENERGY,DODGE_CHANCE,ARMOR,}, + new [] {STRENGTH,INTELLIGENCE,ARMOR,ARMOR_PIERCING,THORNS,} }) { name = Translations.ItemDataBase_ItemDefinitions_374/*Fists of Nails*/, //tr @@ -4469,17 +4469,17 @@ public static void PopulateItems() new BaseItem(new Stat[][] { new [] {INTELLIGENCE,AGILITY}, - new [] {MAGICFIND,SPELLDAMAGEINCREASE,BASESPELLDAMAGE}, - new [] {SPELLDAMAGEINCREASE,BASESPELLDAMAGE}, - new [] {MAXENERGYFROMAGI,SPELLDMGFROMINT,RANGEDDMGFROMAGI}, + new [] {LOOT_QUANTITY,SPELL_DAMAGE_MULTIPLIER,BASE_SPELL_DAMAGE}, + new [] {SPELL_DAMAGE_MULTIPLIER,BASE_SPELL_DAMAGE}, + new [] {MAX_ENERGY_FROM_AGILITY,SPELL_DMG_FROM_INT,RANGED_DMG_FROM_AGI}, new [] {ARMOR}, new [] {VITALITY,LIFE_REGEN_BASE,LIFE_REGEN_MULT,INTELLIGENCE,AGILITY,STRENGTH,ALL_ATTRIBUTES}, - new [] {COOLDOWNREDUCTION,SPELLCOSTREDUCTION,SPELLCOSTTOSTAMINA,MOVEMENTSPEED,DAMAGE_REDUCTION}, + new [] {COOLDOWN_REDUCTION,SPELL_COST_REDUCTION,SPELL_COST_TO_STAMINA,MOVEMENT_SPEED,DAMAGE_REDUCTION}, new [] {ALL}, new [] {ALL}, new [] {ALL}, - new [] {DODGECHANCE,ARMOR,BASESPELLDAMAGE,BASERANGEDDAMAGE}, - new [] {BASERANGEDDAMAGE,RANGEDARMORPIERCING,RANGEDDAMAGEINCREASE} + new [] {DODGE_CHANCE,ARMOR,BASE_SPELL_DAMAGE,BASE_RANGED_DAMAGE}, + new [] {BASE_RANGED_DAMAGE,RANGED_ARMOR_PIERCING,RANGED_DAMAGE_INCREASE} }) { name = Translations.ItemDataBase_ItemDefinitions_380/*Aezyn*/, //tr @@ -4501,14 +4501,14 @@ public static void PopulateItems() new [] {CRIT_CHANCE}, new [] {CRIT_DAMAGE}, new [] {VITALITY,LIFE_REGEN_BASE,LIFE_REGEN_MULT,INTELLIGENCE,AGILITY,STRENGTH,ALL_ATTRIBUTES}, - new [] {COOLDOWNREDUCTION,SPELLCOSTREDUCTION,SPELLCOSTTOSTAMINA,MOVEMENTSPEED,DAMAGE_REDUCTION}, + new [] {COOLDOWN_REDUCTION,SPELL_COST_REDUCTION,SPELL_COST_TO_STAMINA,MOVEMENT_SPEED,DAMAGE_REDUCTION}, new [] {ALL}, new [] {ALL}, new [] {ALL}, new [] {ALL}, new [] {ALL}, - new [] {DODGECHANCE,ARMOR,BASESPELLDAMAGE,BASERANGEDDAMAGE}, - new [] {BASERANGEDDAMAGE,RANGEDARMORPIERCING,RANGEDDAMAGEINCREASE} + new [] {DODGE_CHANCE,ARMOR,BASE_SPELL_DAMAGE,BASE_RANGED_DAMAGE}, + new [] {BASE_RANGED_DAMAGE,RANGED_ARMOR_PIERCING,RANGED_DAMAGE_INCREASE} }) { name = Translations.ItemDataBase_ItemDefinitions_383/*Punny's Reflective Ring*/, //tr @@ -4545,13 +4545,13 @@ public static void PopulateItems() }; new BaseItem(new Stat[][] { - new [] {RANGEDARMORPIERCING}, + new [] {RANGED_ARMOR_PIERCING}, new [] {AGILITY}, - new [] {BASERANGEDDAMAGE,RANGEDDAMAGEINCREASE}, - new [] {SPEARDAMAGE}, - new [] {PROJECTILESPEED}, - new [] {ALL_ATTRIBUTES,PROJECTILESIZE,LESSERAGILITY}, - new [] {ENERGYONHIT,VITALITY,LIFEONHIT } + new [] {BASE_RANGED_DAMAGE,RANGED_DAMAGE_INCREASE}, + new [] {THROWN_SPEAR_DAMAGE}, + new [] {PROJECTILE_SPEED}, + new [] {ALL_ATTRIBUTES,PROJECTILE_SIZE,LESSERAGILITY}, + new [] {ENERGY_ON_HIT,VITALITY,LIFE_ON_HIT } }) { name = Translations.ItemDataBase_ItemDefinitions_389/*Javelin*/, //tr @@ -4567,12 +4567,12 @@ public static void PopulateItems() new BaseItem(new Stat[][] { new [] {STRENGTH}, - new [] {MAX_LIFE, VITALITY,PERCENTMAXIMUMLIFE}, - new [] {MELEEARMORPIERCING, MELEEDAMAGEINCREASE,BASEMELEEDAMAGE}, - new [] {MELEEDAMAGEINCREASE,BASEMELEEDAMAGE}, + new [] {MAX_LIFE, VITALITY,MAX_LIFE_MULT}, + new [] {MELEE_ARMOR_PIERCING, MELEE_DAMAGE_INCREASE,BASE_MELEE_DAMAGE}, + new [] {MELEE_DAMAGE_INCREASE,BASE_MELEE_DAMAGE}, new [] {ATTACKSPEED, CRIT_DAMAGE,CRIT_CHANCE}, - new [] {MAXENERGYFROMAGI,PERCENTMAXIMUMENERGY,ENERGYONHIT,LIFEONHIT,LIFE_REGEN_BASE,LIFE_REGEN_MULT,STAMINA_REGEN_BASE,STAMINA_AND_ENERGY_REGEN_MULT}, - new [] {ARMOR,THORNS,DAMAGE_REDUCTION,PERCENTMAXIMUMLIFE}, + new [] {MAX_ENERGY_FROM_AGILITY,MAX_ENERGY_MULT,ENERGY_ON_HIT,LIFE_ON_HIT,LIFE_REGEN_BASE,LIFE_REGEN_MULT,STAMINA_REGEN_BASE,STAMINA_AND_ENERGY_REGEN_MULT}, + new [] {ARMOR,THORNS,DAMAGE_REDUCTION,MAX_LIFE_MULT}, new [] {ALL}, new [] {ALL}, @@ -4593,9 +4593,9 @@ public static void PopulateItems() var SomeItem = new BaseItem(new Stat[][] { new [] {STRENGTH}, - new [] {MAX_LIFE, VITALITY,MAXHEALTHFROMVIT,PERCENTMAXIMUMLIFE}, - new [] {MELEEARMORPIERCING, MELEEDAMAGEINCREASE,BASEMELEEDAMAGE,ATTACKSPEED}, - new [] {SPELLCOSTREDUCTION, CRIT_DAMAGE,CRIT_CHANCE}, + new [] {MAX_LIFE, VITALITY,MAX_HEALTH_FROM_VITALITY,MAX_LIFE_MULT}, + new [] {MELEE_ARMOR_PIERCING, MELEE_DAMAGE_INCREASE,BASE_MELEE_DAMAGE,ATTACKSPEED}, + new [] {SPELL_COST_REDUCTION, CRIT_DAMAGE,CRIT_CHANCE}, new [] {ALL}, new [] {STRENGTH, THORNS}, }) @@ -4615,13 +4615,13 @@ public static void PopulateItems() { var demoVestItem = new BaseItem(new Stat[][] { - new [] {EXPLOSIONDAMAGE}, + new [] {EXPLOSION_DAMAGE}, new [] {AGILITY,INTELLIGENCE, ALL_ATTRIBUTES}, - new [] {MAX_LIFE, VITALITY, LIFEONHIT}, - new [] {ALLHEALINGPERCENT}, + new [] {MAX_LIFE, VITALITY, LIFE_ON_HIT}, + new [] {ALL_RECOVERY}, new [] {ALL}, - new [] {MELEEWEAPONRANGE,ENERGYONHIT,ARMORPIERCING, DODGECHANCE}, - new [] {MOVEMENTSPEED,BLOCK,MAGICFIND}, + new [] {MELEE_WEAPON_RANGE,ENERGY_ON_HIT,ARMOR_PIERCING, DODGE_CHANCE}, + new [] {MOVEMENT_SPEED,BLOCK,LOOT_QUANTITY}, }) { @@ -4641,13 +4641,13 @@ public static void PopulateItems() } new BaseItem(new Stat[][] { - new [] {STRENGTH,ALL_ATTRIBUTES,BASEMELEEDAMAGE}, - new [] {MAX_LIFE, VITALITY,DAMAGE_REDUCTION,MELEEWEAPONRANGE}, - new [] {MELEEARMORPIERCING, MELEEDAMAGEINCREASE}, - new [] {MELEEDAMAGEINCREASE,MELEEDMGFROMSTR}, - new [] {SPELLCOSTREDUCTION, CRIT_DAMAGE}, + new [] {STRENGTH,ALL_ATTRIBUTES,BASE_MELEE_DAMAGE}, + new [] {MAX_LIFE, VITALITY,DAMAGE_REDUCTION,MELEE_WEAPON_RANGE}, + new [] {MELEE_ARMOR_PIERCING, MELEE_DAMAGE_INCREASE}, + new [] {MELEE_DAMAGE_INCREASE,MELEE_DMG_FROM_STR}, + new [] {SPELL_COST_REDUCTION, CRIT_DAMAGE}, new [] {ALL}, - new [] {STRENGTH,THORNS,BASEMELEEDAMAGE,CRIT_CHANCE,ATTACKSPEED,MELEEWEAPONRANGE}, + new [] {STRENGTH,THORNS,BASE_MELEE_DAMAGE,CRIT_CHANCE,ATTACKSPEED,MELEE_WEAPON_RANGE}, new [] {ARMOR}, }) @@ -4665,11 +4665,11 @@ public static void PopulateItems() { new [] {ALL_ATTRIBUTES,STRENGTH,AGILITY,INTELLIGENCE}, new [] {MAX_LIFE, VITALITY,STRENGTH,INTELLIGENCE}, - new [] {MELEEARMORPIERCING, MELEEDAMAGEINCREASE,RANGEDDAMAGEINCREASE,BASERANGEDDAMAGE,RANGEDARMORPIERCING}, - new [] {SPELLCOSTREDUCTION, CRIT_DAMAGE,CRIT_CHANCE,SPELLDAMAGEINCREASE,COOLDOWNREDUCTION}, - new [] {ARMORPIERCING}, + new [] {MELEE_ARMOR_PIERCING, MELEE_DAMAGE_INCREASE,RANGED_DAMAGE_INCREASE,BASE_RANGED_DAMAGE,RANGED_ARMOR_PIERCING}, + new [] {SPELL_COST_REDUCTION, CRIT_DAMAGE,CRIT_CHANCE,SPELL_DAMAGE_MULTIPLIER,COOLDOWN_REDUCTION}, + new [] {ARMOR_PIERCING}, new [] {ALL}, - new [] {ARMOR,DAMAGE_REDUCTION,RESISTANCETOMAGIC,VITALITY,LESSERVITALITY}, + new [] {ARMOR,DAMAGE_REDUCTION,ELITE_DAMAGE_REDUCTION,VITALITY,LESSERVITALITY}, }) { @@ -4687,13 +4687,13 @@ public static void PopulateItems() new BaseItem(new Stat[][] { new [] {ATTACKSPEED}, - new [] {RANGEDDAMAGEINCREASE,RANGEDDMGFROMAGI}, - new [] {BASERANGEDDAMAGE}, - new [] {BASERANGEDDAMAGE,NONE}, - new [] {PROJECTILESIZE,LESSERAGILITY,AGILITY}, - new [] {PROJECTILESPEED,CRIT_CHANCE,CRIT_DAMAGE}, + new [] {RANGED_DAMAGE_INCREASE,RANGED_DMG_FROM_AGI}, + new [] {BASE_RANGED_DAMAGE}, + new [] {BASE_RANGED_DAMAGE,NONE}, + new [] {PROJECTILE_SIZE,LESSERAGILITY,AGILITY}, + new [] {PROJECTILE_SPEED,CRIT_CHANCE,CRIT_DAMAGE}, new [] {AGILITY,NONE}, - new [] {RANGEDARMORPIERCING, ARMORPIERCING,ENERGYONHIT}, + new [] {RANGED_ARMOR_PIERCING, ARMOR_PIERCING,ENERGY_ON_HIT}, new [] {ALL}, }) { @@ -4712,8 +4712,8 @@ public static void PopulateItems() new BaseItem(new Stat[][] { new [] {STRENGTH,LESSERSTRENGTH}, - new [] {MAX_LIFE, VITALITY,MELEEDMGFROMSTR,ARMOR}, - new [] {MELEEARMORPIERCING, MELEEDAMAGEINCREASE}, + new [] {MAX_LIFE, VITALITY,MELEE_DMG_FROM_STR,ARMOR}, + new [] {MELEE_ARMOR_PIERCING, MELEE_DAMAGE_INCREASE}, }) { @@ -4729,10 +4729,10 @@ public static void PopulateItems() }; new BaseItem(new Stat[][] { - new [] {MELEEDAMAGEINCREASE,MELEEDMGFROMSTR}, - new [] {MAX_LIFE, VITALITY,MELEEDAMAGEINCREASE,BASEMELEEDAMAGE}, - new [] {MELEEARMORPIERCING, MELEEDAMAGEINCREASE,MELEEWEAPONRANGE,ARMOR}, - new [] {SPELLCOSTREDUCTION, CRIT_DAMAGE,CRIT_CHANCE}, + new [] {MELEE_DAMAGE_INCREASE,MELEE_DMG_FROM_STR}, + new [] {MAX_LIFE, VITALITY,MELEE_DAMAGE_INCREASE,BASE_MELEE_DAMAGE}, + new [] {MELEE_ARMOR_PIERCING, MELEE_DAMAGE_INCREASE,MELEE_WEAPON_RANGE,ARMOR}, + new [] {SPELL_COST_REDUCTION, CRIT_DAMAGE,CRIT_CHANCE}, new [] {ALL}, new [] {STRENGTH,LESSERSTRENGTH}, @@ -4751,8 +4751,8 @@ public static void PopulateItems() { new [] {STRENGTH}, new [] {MAX_LIFE, VITALITY}, - new [] {MELEEARMORPIERCING, MELEEDAMAGEINCREASE}, - new [] {SPELLCOSTREDUCTION, CRIT_DAMAGE}, + new [] {MELEE_ARMOR_PIERCING, MELEE_DAMAGE_INCREASE}, + new [] {SPELL_COST_REDUCTION, CRIT_DAMAGE}, new [] {STRENGTH}, }) @@ -4768,7 +4768,7 @@ public static void PopulateItems() }; new BaseItem(new Stat[][] { - new [] {EXPLOSIONDAMAGE}, + new [] {EXPLOSION_DAMAGE}, new [] {ALL}, new [] {ALL}, new [] {ALL}, @@ -4777,9 +4777,9 @@ public static void PopulateItems() new [] {ALL}, new [] {ALL}, new [] {ALL}, - new [] {EXPLOSIONDAMAGE}, - new [] {EXPLOSIONDAMAGE}, - new [] {EXPLOSIONDAMAGE,NONE}, + new [] {EXPLOSION_DAMAGE}, + new [] {EXPLOSION_DAMAGE}, + new [] {EXPLOSION_DAMAGE,NONE}, }) { @@ -4795,7 +4795,7 @@ public static void PopulateItems() new BaseItem(new Stat[][] { new [] {STRENGTH,VITALITY,AGILITY,ALL_ATTRIBUTES,INTELLIGENCE}, - new [] {MAXENERGYFROMAGI,MELEEDMGFROMSTR,SPELLDMGFROMINT,RANGEDDMGFROMAGI,MAXHEALTHFROMVIT}, + new [] {MAX_ENERGY_FROM_AGILITY,MELEE_DMG_FROM_STR,SPELL_DMG_FROM_INT,RANGED_DMG_FROM_AGI,MAX_HEALTH_FROM_VITALITY}, new [] {ARMOR,DAMAGE_REDUCTION}, new [] { CRIT_CHANCE, CRIT_DAMAGE}, new [] {ALL}, @@ -4803,9 +4803,9 @@ public static void PopulateItems() new [] {ALL}, new [] {ALL}, new [] {ALL}, - new [] {EXPLOSIONDAMAGE}, - new [] {EXPLOSIONDAMAGE,NONE}, - new [] {EXPLOSIONDAMAGE,NONE}, + new [] {EXPLOSION_DAMAGE}, + new [] {EXPLOSION_DAMAGE,NONE}, + new [] {EXPLOSION_DAMAGE,NONE}, }) { @@ -4824,15 +4824,15 @@ public static void PopulateItems() { new [] {ARMOR}, new [] {MAX_LIFE, VITALITY}, - new [] {CRIT_CHANCE, CRIT_DAMAGE,ATTACKSPEED,BASESPELLDAMAGE,STAMINA_REGEN_BASE}, + new [] {CRIT_CHANCE, CRIT_DAMAGE,ATTACKSPEED,BASE_SPELL_DAMAGE,STAMINA_REGEN_BASE}, new [] {ALL}, new [] {ALL}, new [] {ALL}, new [] {ALL}, new [] {ALL}, new [] {ALL_ATTRIBUTES}, - new [] {EXPLOSIONDAMAGE}, - new [] {EXPLOSIONDAMAGE}, + new [] {EXPLOSION_DAMAGE}, + new [] {EXPLOSION_DAMAGE}, }) { @@ -4851,7 +4851,7 @@ public static void PopulateItems() { new [] {ARMOR}, new [] {MAX_LIFE, VITALITY}, - new [] {CRIT_CHANCE, CRIT_DAMAGE,ATTACKSPEED,BASESPELLDAMAGE,STAMINA_REGEN_BASE}, + new [] {CRIT_CHANCE, CRIT_DAMAGE,ATTACKSPEED,BASE_SPELL_DAMAGE,STAMINA_REGEN_BASE}, new [] {ALL}, new [] {ALL}, new [] {ALL}, @@ -4859,8 +4859,8 @@ public static void PopulateItems() new [] {ALL}, new [] {EMPTYSOCKET}, new [] {EMPTYSOCKET}, - new [] {EXPLOSIONDAMAGE}, - new [] {EXPLOSIONDAMAGE}, + new [] {EXPLOSION_DAMAGE}, + new [] {EXPLOSION_DAMAGE}, }) { @@ -4881,13 +4881,13 @@ public static void PopulateItems() new [] {ALL}, new [] {ALL}, new [] {ALL}, - new [] {MAX_LIFE, VITALITY,ARMOR,PERCENTMAXIMUMLIFE,PERCENTMAXIMUMENERGY,MAXHEALTHFROMVIT,THORNS,RESISTANCETOMAGIC}, - new [] {JUMPPOWER}, - new [] {MOVEMENTSPEED}, + new [] {MAX_LIFE, VITALITY,ARMOR,MAX_LIFE_MULT,MAX_ENERGY_MULT,MAX_HEALTH_FROM_VITALITY,THORNS,ELITE_DAMAGE_REDUCTION}, + new [] {JUMP_POWER}, + new [] {MOVEMENT_SPEED}, new [] {EMPTYSOCKET}, new [] {EMPTYSOCKET}, - new [] {EXPLOSIONDAMAGE}, - new [] {EXPLOSIONDAMAGE}, + new [] {EXPLOSION_DAMAGE}, + new [] {EXPLOSION_DAMAGE}, }) { @@ -4907,11 +4907,11 @@ public static void PopulateItems() new [] {ALL}, new [] {ALL}, new [] {ALL}, - new [] {MAX_LIFE, VITALITY,ARMOR,PERCENTMAXIMUMLIFE,PERCENTMAXIMUMENERGY,MAXHEALTHFROMVIT,THORNS,RESISTANCETOMAGIC}, + new [] {MAX_LIFE, VITALITY,ARMOR,MAX_LIFE_MULT,MAX_ENERGY_MULT,MAX_HEALTH_FROM_VITALITY,THORNS,ELITE_DAMAGE_REDUCTION}, new [] {EMPTYSOCKET}, new [] {EMPTYSOCKET}, - new [] {EXPLOSIONDAMAGE}, - new [] {EXPLOSIONDAMAGE}, + new [] {EXPLOSION_DAMAGE}, + new [] {EXPLOSION_DAMAGE}, }) { @@ -4928,11 +4928,11 @@ public static void PopulateItems() { new [] {ALL}, new [] {MAX_LIFE, VITALITY,ARMOR}, - new [] {MELEEARMORPIERCING, RANGEDARMORPIERCING}, + new [] {MELEE_ARMOR_PIERCING, RANGED_ARMOR_PIERCING}, new [] {ARMOR, ALL_ATTRIBUTES,VITALITY,LESSERVITALITY}, - new [] {EXTRACARRIEDSTICKS,EXTRACARRIEDROCKS,EXTRACARRIEDROPES}, - new [] {EXPLOSIONDAMAGE}, - new [] {EXPLOSIONDAMAGE}, + new [] {EXTRA_CARRIED_STICKS,EXTRA_CARRIED_ROCKS,EXTRA_CARRIED_ROPES}, + new [] {EXPLOSION_DAMAGE}, + new [] {EXPLOSION_DAMAGE}, }) { name = Translations.ItemDataBase_ItemDefinitions_412/*Gunpowder Boxers*/, //tr @@ -4947,16 +4947,16 @@ public static void PopulateItems() new BaseItem(new Stat[][] { - new [] {EXPLOSIONDAMAGE}, - new [] {EXPLOSIONDAMAGE}, - new [] {EXPLOSIONDAMAGE}, - new [] {EXPLOSIONDAMAGE}, - new [] {EXPLOSIONDAMAGE}, - new [] {EXPLOSIONDAMAGE}, - new [] {EXPLOSIONDAMAGE,NONE}, - new [] {EXPLOSIONDAMAGE,NONE}, + new [] {EXPLOSION_DAMAGE}, + new [] {EXPLOSION_DAMAGE}, + new [] {EXPLOSION_DAMAGE}, + new [] {EXPLOSION_DAMAGE}, + new [] {EXPLOSION_DAMAGE}, + new [] {EXPLOSION_DAMAGE}, + new [] {EXPLOSION_DAMAGE,NONE}, + new [] {EXPLOSION_DAMAGE,NONE}, new [] {ARMOR}, - new [] {PERCENTMAXIMUMLIFE}, + new [] {MAX_LIFE_MULT}, }) { @@ -4973,14 +4973,14 @@ public static void PopulateItems() new BaseItem(new Stat[][] { new [] {CRIT_CHANCE}, - new [] {MAGICFIND,NONE,EXPGAIN}, - new [] {RANGEDDAMAGEINCREASE,MELEEDAMAGEINCREASE}, + new [] {LOOT_QUANTITY,NONE,EXP_GAIN_MULT}, + new [] {RANGED_DAMAGE_INCREASE,MELEE_DAMAGE_INCREASE}, new [] {STRENGTH,AGILITY}, new [] {ALL}, - new [] {CHANCEONHITTOBLEED}, - new [] {CHANCEONHITTOSLOW}, - new [] {CHANCEONHITTOWEAKEN}, - new [] {MAXENERGYFROMAGI,FIREDAMAGE,CRIT_DAMAGE,RANGEDDMGFROMAGI,MELEEDMGFROMSTR}, + new [] {CHANCE_ON_HIT_TO_BLEED}, + new [] {CHANCE_ON_HIT_TO_SLOW}, + new [] {CHANCE_ON_HIT_TO_WEAKEN}, + new [] {MAX_ENERGY_FROM_AGILITY,FIRE_DAMAGE,CRIT_DAMAGE,RANGED_DMG_FROM_AGI,MELEE_DMG_FROM_STR}, }) @@ -4996,14 +4996,14 @@ public static void PopulateItems() }; new BaseItem(new Stat[][] { - new [] {SPELLDAMAGEINCREASE}, + new [] {SPELL_DAMAGE_MULTIPLIER}, new [] {INTELLIGENCE}, - new [] {COOLDOWNREDUCTION}, - new [] {ALL_ATTRIBUTES, INTELLIGENCE,SPELLDAMAGEINCREASE}, - new [] {SPELLDMGFROMINT,MAXENERGYFROMAGI}, - new [] {BASESPELLDAMAGE}, - new [] {PERCENTMAXIMUMENERGY,ENERGYONHIT,ENERGYPERSECOND}, - new [] {FIREDAMAGE,SPELLCOSTREDUCTION,SPELLCOSTTOSTAMINA}, + new [] {COOLDOWN_REDUCTION}, + new [] {ALL_ATTRIBUTES, INTELLIGENCE,SPELL_DAMAGE_MULTIPLIER}, + new [] {SPELL_DMG_FROM_INT,MAX_ENERGY_FROM_AGILITY}, + new [] {BASE_SPELL_DAMAGE}, + new [] {MAX_ENERGY_MULT,ENERGY_ON_HIT,ENERGY_REGEN_BASE}, + new [] {FIRE_DAMAGE,SPELL_COST_REDUCTION,SPELL_COST_TO_STAMINA}, }) @@ -5019,16 +5019,16 @@ public static void PopulateItems() }; new BaseItem(new Stat[][] { - new [] {MELEEDMGFROMSTR,ALL_ATTRIBUTES,STAMINA_REGEN_BASE,STAMINA_AND_ENERGY_REGEN_MULT,DODGECHANCE}, + new [] {MELEE_DMG_FROM_STR,ALL_ATTRIBUTES,STAMINA_REGEN_BASE,STAMINA_AND_ENERGY_REGEN_MULT,DODGE_CHANCE}, new [] {STRENGTH,LESSERSTRENGTH,VITALITY,ARMOR}, - new [] {MELEEWEAPONRANGE,BASERANGEDDAMAGE,BASEMELEEDAMAGE}, + new [] {MELEE_WEAPON_RANGE,BASE_RANGED_DAMAGE,BASE_MELEE_DAMAGE}, new [] {VITALITY}, - new [] {MAXHEALTHFROMVIT,MAXENERGYFROMAGI}, + new [] {MAX_HEALTH_FROM_VITALITY,MAX_ENERGY_FROM_AGILITY}, new [] {LIFE_REGEN_BASE}, - new [] {LIFEONHIT}, - new [] {ENERGYONHIT,ENERGYPERSECOND,INTELLIGENCE,AGILITY}, + new [] {LIFE_ON_HIT}, + new [] {ENERGY_ON_HIT,ENERGY_REGEN_BASE,INTELLIGENCE,AGILITY}, new [] {MAX_LIFE}, - new [] {PERCENTMAXIMUMLIFE,CRIT_CHANCE}, + new [] {MAX_LIFE_MULT,CRIT_CHANCE}, }) { name = Translations.ItemDataBase_ItemDefinitions_416/*Life Ring*/, //tr @@ -5043,17 +5043,17 @@ public static void PopulateItems() new BaseItem(new Stat[][] { new [] {STRENGTH}, - new [] {MOVEMENTSPEED,DODGECHANCE,DAMAGE_REDUCTION}, - new [] {VITALITY,MAXHEALTHFROMVIT,MAX_LIFE,PERCENTMAXIMUMLIFE,ARMOR}, - new [] {INTELLIGENCE,MAXENERGYFROMAGI,PERCENTMAXIMUMENERGY,MAX_ENERGY,BASEMELEEDAMAGE,MELEEDAMAGEINCREASE,ARMOR,DAMAGE_REDUCTION}, - new [] {MELEEARMORPIERCING,MELEEDAMAGEINCREASE}, + new [] {MOVEMENT_SPEED,DODGE_CHANCE,DAMAGE_REDUCTION}, + new [] {VITALITY,MAX_HEALTH_FROM_VITALITY,MAX_LIFE,MAX_LIFE_MULT,ARMOR}, + new [] {INTELLIGENCE,MAX_ENERGY_FROM_AGILITY,MAX_ENERGY_MULT,MAX_ENERGY,BASE_MELEE_DAMAGE,MELEE_DAMAGE_INCREASE,ARMOR,DAMAGE_REDUCTION}, + new [] {MELEE_ARMOR_PIERCING,MELEE_DAMAGE_INCREASE}, new [] {ARMOR,ATTACKSPEED,STRENGTH}, - new [] {BASEMELEEDAMAGE}, - new [] {BASEMELEEDAMAGE,MELEEDAMAGEINCREASE}, - new [] {MELEEDAMAGEINCREASE,MELEEDMGFROMSTR}, - new [] {CRIT_CHANCE,MELEEWEAPONRANGE,ATTACKSPEED}, - new [] {CRIT_DAMAGE, MELEEDAMAGEINCREASE, STRENGTH}, - new [] {ENERGYONHIT,ENERGYPERSECOND,MAX_LIFE}, + new [] {BASE_MELEE_DAMAGE}, + new [] {BASE_MELEE_DAMAGE,MELEE_DAMAGE_INCREASE}, + new [] {MELEE_DAMAGE_INCREASE,MELEE_DMG_FROM_STR}, + new [] {CRIT_CHANCE,MELEE_WEAPON_RANGE,ATTACKSPEED}, + new [] {CRIT_DAMAGE, MELEE_DAMAGE_INCREASE, STRENGTH}, + new [] {ENERGY_ON_HIT,ENERGY_REGEN_BASE,MAX_LIFE}, }) { name = Translations.ItemDataBase_ItemDefinitions_417/*Moritz's Gear*/, //tr @@ -5067,16 +5067,16 @@ public static void PopulateItems() }; new BaseItem(new Stat[][] { - new [] {STRENGTH,BASEMELEEDAMAGE,MELEEDAMAGEINCREASE,ATTACKSPEED}, - new [] {MOVEMENTSPEED,DODGECHANCE,DAMAGE_REDUCTION}, - new [] {VITALITY,MAXHEALTHFROMVIT,MAX_LIFE,PERCENTMAXIMUMLIFE,MELEEARMORPIERCING}, - new [] {INTELLIGENCE,STRENGTH,CRIT_DAMAGE,PERCENTMAXIMUMENERGY,MAX_ENERGY}, - new [] {BASEMELEEDAMAGE}, - new [] {BASEMELEEDAMAGE,MELEEDAMAGEINCREASE}, - new [] {MELEEDAMAGEINCREASE,MELEEDMGFROMSTR}, - new [] {CRIT_CHANCE,MELEEWEAPONRANGE}, - new [] {CRIT_DAMAGE, MELEEDAMAGEINCREASE, STRENGTH}, - new [] {ENERGYONHIT,ENERGYPERSECOND,MAX_LIFE}, + new [] {STRENGTH,BASE_MELEE_DAMAGE,MELEE_DAMAGE_INCREASE,ATTACKSPEED}, + new [] {MOVEMENT_SPEED,DODGE_CHANCE,DAMAGE_REDUCTION}, + new [] {VITALITY,MAX_HEALTH_FROM_VITALITY,MAX_LIFE,MAX_LIFE_MULT,MELEE_ARMOR_PIERCING}, + new [] {INTELLIGENCE,STRENGTH,CRIT_DAMAGE,MAX_ENERGY_MULT,MAX_ENERGY}, + new [] {BASE_MELEE_DAMAGE}, + new [] {BASE_MELEE_DAMAGE,MELEE_DAMAGE_INCREASE}, + new [] {MELEE_DAMAGE_INCREASE,MELEE_DMG_FROM_STR}, + new [] {CRIT_CHANCE,MELEE_WEAPON_RANGE}, + new [] {CRIT_DAMAGE, MELEE_DAMAGE_INCREASE, STRENGTH}, + new [] {ENERGY_ON_HIT,ENERGY_REGEN_BASE,MAX_LIFE}, }) { name = Translations.ItemDataBase_ItemDefinitions_418/*Band of Hurting*/, //tr @@ -5092,8 +5092,8 @@ public static void PopulateItems() new BaseItem(new Stat[][] { - new [] {AGILITY,RANGEDDAMAGEINCREASE}, - new [] {ALL_ATTRIBUTES, ARMOR,PERCENTMAXIMUMLIFE}, + new [] {AGILITY,RANGED_DAMAGE_INCREASE}, + new [] {ALL_ATTRIBUTES, ARMOR,MAX_LIFE_MULT}, new [] {CRIT_CHANCE}, new [] {CRIT_DAMAGE,NONE}, }) @@ -5110,9 +5110,9 @@ public static void PopulateItems() new BaseItem(new Stat[][] { new [] {INTELLIGENCE}, - new [] {ALL_ATTRIBUTES, ARMOR,ENERGYONHIT}, - new [] {BASESPELLDAMAGE}, - new [] {FIREDAMAGE,SPELLDAMAGEINCREASE,SPELLCOSTREDUCTION}, + new [] {ALL_ATTRIBUTES, ARMOR,ENERGY_ON_HIT}, + new [] {BASE_SPELL_DAMAGE}, + new [] {FIRE_DAMAGE,SPELL_DAMAGE_MULTIPLIER,SPELL_COST_REDUCTION}, }) { name = Translations.ItemDataBase_ItemDefinitions_318/*Hood*/, //tr @@ -5126,7 +5126,7 @@ public static void PopulateItems() }; new BaseItem(new Stat[][] { - new [] {SPEARDAMAGE}, + new [] {THROWN_SPEAR_DAMAGE}, new [] {AGILITY}, new [] {STAMINA_REGEN_BASE}, }) @@ -5144,17 +5144,17 @@ public static void PopulateItems() new BaseItem(new Stat[][] { new [] {INTELLIGENCE}, - new [] {DODGECHANCE,DAMAGE_REDUCTION}, - new [] {VITALITY,MAXHEALTHFROMVIT,MAX_LIFE,PERCENTMAXIMUMLIFE}, - new [] {SPELLDMGFROMINT}, - new [] {SPELLCOSTREDUCTION,COOLDOWNREDUCTION}, - new [] {SPELLCOSTREDUCTION,COOLDOWNREDUCTION}, - new [] {ENERGYPERSECOND,PERCENTMAXIMUMENERGY,MAXENERGYFROMAGI}, - new [] {BASESPELLDAMAGE,SPELLDAMAGEINCREASE,INTELLIGENCE}, - new [] {BASESPELLDAMAGE,SPELLDAMAGEINCREASE,INTELLIGENCE}, - new [] {BASESPELLDAMAGE,SPELLDAMAGEINCREASE,INTELLIGENCE}, - new [] {BASESPELLDAMAGE,SPELLDAMAGEINCREASE,INTELLIGENCE}, - new [] {ENERGYONHIT,ENERGYPERSECOND,MAX_LIFE}, + new [] {DODGE_CHANCE,DAMAGE_REDUCTION}, + new [] {VITALITY,MAX_HEALTH_FROM_VITALITY,MAX_LIFE,MAX_LIFE_MULT}, + new [] {SPELL_DMG_FROM_INT}, + new [] {SPELL_COST_REDUCTION,COOLDOWN_REDUCTION}, + new [] {SPELL_COST_REDUCTION,COOLDOWN_REDUCTION}, + new [] {ENERGY_REGEN_BASE,MAX_ENERGY_MULT,MAX_ENERGY_FROM_AGILITY}, + new [] {BASE_SPELL_DAMAGE,SPELL_DAMAGE_MULTIPLIER,INTELLIGENCE}, + new [] {BASE_SPELL_DAMAGE,SPELL_DAMAGE_MULTIPLIER,INTELLIGENCE}, + new [] {BASE_SPELL_DAMAGE,SPELL_DAMAGE_MULTIPLIER,INTELLIGENCE}, + new [] {BASE_SPELL_DAMAGE,SPELL_DAMAGE_MULTIPLIER,INTELLIGENCE}, + new [] {ENERGY_ON_HIT,ENERGY_REGEN_BASE,MAX_LIFE}, }) { name = Translations.ItemDataBase_ItemDefinitions_422/*Star Robe*/, //tr @@ -5169,17 +5169,17 @@ public static void PopulateItems() new BaseItem(new Stat[][] { new [] {ATTACKSPEED}, - new [] {BASESPELLDAMAGE}, - new [] {DODGECHANCE,DAMAGE_REDUCTION,MELEEWEAPONRANGE,ARMORPIERCING,FIREDAMAGE,CRIT_CHANCE}, - new [] {VITALITY,MAXHEALTHFROMVIT,MAX_LIFE,PERCENTMAXIMUMLIFE,LIFE_REGEN_BASE,LIFEONHIT}, - new [] {SPELLDMGFROMINT}, - new [] {SPELLCOSTREDUCTION,COOLDOWNREDUCTION,CRIT_CHANCE,CRIT_DAMAGE}, - new [] {SPELLCOSTREDUCTION,COOLDOWNREDUCTION,SPELLCOSTTOSTAMINA,PERCENTMAXIMUMENERGY,LIFE_REGEN_MULT}, - new [] {ENERGYPERSECOND,PERCENTMAXIMUMENERGY,MAXENERGYFROMAGI}, + new [] {BASE_SPELL_DAMAGE}, + new [] {DODGE_CHANCE,DAMAGE_REDUCTION,MELEE_WEAPON_RANGE,ARMOR_PIERCING,FIRE_DAMAGE,CRIT_CHANCE}, + new [] {VITALITY,MAX_HEALTH_FROM_VITALITY,MAX_LIFE,MAX_LIFE_MULT,LIFE_REGEN_BASE,LIFE_ON_HIT}, + new [] {SPELL_DMG_FROM_INT}, + new [] {SPELL_COST_REDUCTION,COOLDOWN_REDUCTION,CRIT_CHANCE,CRIT_DAMAGE}, + new [] {SPELL_COST_REDUCTION,COOLDOWN_REDUCTION,SPELL_COST_TO_STAMINA,MAX_ENERGY_MULT,LIFE_REGEN_MULT}, + new [] {ENERGY_REGEN_BASE,MAX_ENERGY_MULT,MAX_ENERGY_FROM_AGILITY}, new [] {INTELLIGENCE,STAMINA_REGEN_BASE,STAMINA_AND_ENERGY_REGEN_MULT}, - new [] {BASESPELLDAMAGE,SPELLDAMAGEINCREASE,INTELLIGENCE,BASEMELEEDAMAGE,ALL_ATTRIBUTES}, - new [] {BASESPELLDAMAGE,SPELLDAMAGEINCREASE,INTELLIGENCE,DAMAGE_REDUCTION}, - new [] {ENERGYONHIT,ENERGYPERSECOND,MAX_LIFE,MASSACREDURATION,MAGICFIND,EXPLOSIONDAMAGE}, + new [] {BASE_SPELL_DAMAGE,SPELL_DAMAGE_MULTIPLIER,INTELLIGENCE,BASE_MELEE_DAMAGE,ALL_ATTRIBUTES}, + new [] {BASE_SPELL_DAMAGE,SPELL_DAMAGE_MULTIPLIER,INTELLIGENCE,DAMAGE_REDUCTION}, + new [] {ENERGY_ON_HIT,ENERGY_REGEN_BASE,MAX_LIFE,MASSACRE_DURATION,LOOT_QUANTITY,EXPLOSION_DAMAGE}, }) { name = Translations.ItemDataBase_ItemDefinitions_423/*Anger*/, //tr @@ -5201,17 +5201,17 @@ public static void PopulateItems() new BaseItem(new Stat[][] { new[] { ARMOR }, - new[] { MOVEMENTSPEED}, - new[] { SPELLDMGFROMINT }, - new[] { SPELLCOSTREDUCTION,SPELLCOSTTOSTAMINA,ARMOR,ALL_ATTRIBUTES}, - new[] { BASESPELLDAMAGE, SPELLDAMAGEINCREASE, INTELLIGENCE, ALL_ATTRIBUTES }, - new[] { BASESPELLDAMAGE, SPELLDAMAGEINCREASE, INTELLIGENCE, DAMAGE_REDUCTION }, - new[] { VITALITY, MAXHEALTHFROMVIT, MAX_LIFE, PERCENTMAXIMUMLIFE, LIFE_REGEN_BASE, LIFEONHIT }, - new[] { SPELLCOSTREDUCTION, COOLDOWNREDUCTION, CRIT_CHANCE, CRIT_DAMAGE, ARMOR,MAXHEALTHFROMVIT }, - new[] { SPELLCOSTREDUCTION, COOLDOWNREDUCTION, SPELLCOSTTOSTAMINA, PERCENTMAXIMUMENERGY, LIFE_REGEN_MULT }, - new[] { ENERGYPERSECOND, PERCENTMAXIMUMENERGY, MAXENERGYFROMAGI }, - new[] { INTELLIGENCE, STAMINA_REGEN_BASE, STAMINA_AND_ENERGY_REGEN_MULT, ALL_ATTRIBUTES, ALLHEALINGPERCENT }, - new[] { ENERGYONHIT, ENERGYPERSECOND, MAX_LIFE, MASSACREDURATION, MAGICFIND, EXPLOSIONDAMAGE }, + new[] { MOVEMENT_SPEED}, + new[] { SPELL_DMG_FROM_INT }, + new[] { SPELL_COST_REDUCTION,SPELL_COST_TO_STAMINA,ARMOR,ALL_ATTRIBUTES}, + new[] { BASE_SPELL_DAMAGE, SPELL_DAMAGE_MULTIPLIER, INTELLIGENCE, ALL_ATTRIBUTES }, + new[] { BASE_SPELL_DAMAGE, SPELL_DAMAGE_MULTIPLIER, INTELLIGENCE, DAMAGE_REDUCTION }, + new[] { VITALITY, MAX_HEALTH_FROM_VITALITY, MAX_LIFE, MAX_LIFE_MULT, LIFE_REGEN_BASE, LIFE_ON_HIT }, + new[] { SPELL_COST_REDUCTION, COOLDOWN_REDUCTION, CRIT_CHANCE, CRIT_DAMAGE, ARMOR,MAX_HEALTH_FROM_VITALITY }, + new[] { SPELL_COST_REDUCTION, COOLDOWN_REDUCTION, SPELL_COST_TO_STAMINA, MAX_ENERGY_MULT, LIFE_REGEN_MULT }, + new[] { ENERGY_REGEN_BASE, MAX_ENERGY_MULT, MAX_ENERGY_FROM_AGILITY }, + new[] { INTELLIGENCE, STAMINA_REGEN_BASE, STAMINA_AND_ENERGY_REGEN_MULT, ALL_ATTRIBUTES, ALL_RECOVERY }, + new[] { ENERGY_ON_HIT, ENERGY_REGEN_BASE, MAX_LIFE, MASSACRE_DURATION, LOOT_QUANTITY, EXPLOSION_DAMAGE }, }) { name = Translations.ItemDataBase_ItemDefinitions_426/*Yuki-Onna Strides*/, //tr @@ -5233,16 +5233,16 @@ public static void PopulateItems() { new[] { INTELLIGENCE,NONE }, new[] { ARMOR }, - new[] { ALLHEALINGPERCENT,DODGECHANCE,SPELLDAMAGEINCREASE,BASESPELLDAMAGE}, - new[] { SPELLDMGFROMINT,DAMAGE_REDUCTION }, - new[] { SPELLCOSTREDUCTION,SPELLCOSTTOSTAMINA,ARMOR,ALL_ATTRIBUTES}, - new[] { ARMOR,DAMAGE_REDUCTION ,RESISTANCETOMAGIC}, - new[] { INTELLIGENCE, MAX_LIFE,LIFE_REGEN_BASE,SPELLDAMAGEINCREASE,BASESPELLDAMAGE }, - new[] { VITALITY, MAX_LIFE, PERCENTMAXIMUMLIFE, LIFE_REGEN_BASE, LIFEONHIT }, - new[] { SPELLCOSTREDUCTION, COOLDOWNREDUCTION, CRIT_CHANCE, CRIT_DAMAGE, ARMOR }, - new[] { SPELLCOSTREDUCTION, COOLDOWNREDUCTION, SPELLCOSTTOSTAMINA, PERCENTMAXIMUMENERGY, LIFE_REGEN_MULT,RESISTANCETOMAGIC }, - new[] { ENERGYPERSECOND, PERCENTMAXIMUMENERGY, MAXENERGYFROMAGI,MAXHEALTHFROMVIT }, - new[] { INTELLIGENCE, STAMINA_REGEN_BASE, STAMINA_AND_ENERGY_REGEN_MULT, ALL_ATTRIBUTES, ALLHEALINGPERCENT }, + new[] { ALL_RECOVERY,DODGE_CHANCE,SPELL_DAMAGE_MULTIPLIER,BASE_SPELL_DAMAGE}, + new[] { SPELL_DMG_FROM_INT,DAMAGE_REDUCTION }, + new[] { SPELL_COST_REDUCTION,SPELL_COST_TO_STAMINA,ARMOR,ALL_ATTRIBUTES}, + new[] { ARMOR,DAMAGE_REDUCTION ,ELITE_DAMAGE_REDUCTION}, + new[] { INTELLIGENCE, MAX_LIFE,LIFE_REGEN_BASE,SPELL_DAMAGE_MULTIPLIER,BASE_SPELL_DAMAGE }, + new[] { VITALITY, MAX_LIFE, MAX_LIFE_MULT, LIFE_REGEN_BASE, LIFE_ON_HIT }, + new[] { SPELL_COST_REDUCTION, COOLDOWN_REDUCTION, CRIT_CHANCE, CRIT_DAMAGE, ARMOR }, + new[] { SPELL_COST_REDUCTION, COOLDOWN_REDUCTION, SPELL_COST_TO_STAMINA, MAX_ENERGY_MULT, LIFE_REGEN_MULT,ELITE_DAMAGE_REDUCTION }, + new[] { ENERGY_REGEN_BASE, MAX_ENERGY_MULT, MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY }, + new[] { INTELLIGENCE, STAMINA_REGEN_BASE, STAMINA_AND_ENERGY_REGEN_MULT, ALL_ATTRIBUTES, ALL_RECOVERY }, }) { name = Translations.ItemDataBase_ItemDefinitions_430/*Yuki-Onna Greaves*/, //tr @@ -5263,16 +5263,16 @@ public static void PopulateItems() { new[] { INTELLIGENCE,NONE }, new[] { ARMOR }, - new[] { ALLHEALINGPERCENT,DODGECHANCE}, - new[] { SPELLDMGFROMINT,DAMAGE_REDUCTION }, - new[] { SPELLCOSTREDUCTION,SPELLCOSTTOSTAMINA,ARMOR,ALL_ATTRIBUTES}, - new[] { ARMOR,DAMAGE_REDUCTION ,RESISTANCETOMAGIC,SPELLDAMAGEINCREASE,BASESPELLDAMAGE}, - new[] { INTELLIGENCE, MAX_LIFE,LIFE_REGEN_BASE,SPELLDAMAGEINCREASE,BASESPELLDAMAGE }, - new[] { VITALITY, MAX_LIFE, PERCENTMAXIMUMLIFE, LIFE_REGEN_BASE, LIFEONHIT }, - new[] { SPELLCOSTREDUCTION, COOLDOWNREDUCTION, CRIT_CHANCE, CRIT_DAMAGE, ARMOR }, - new[] { SPELLCOSTREDUCTION, COOLDOWNREDUCTION, SPELLCOSTTOSTAMINA, PERCENTMAXIMUMENERGY, LIFE_REGEN_MULT,RESISTANCETOMAGIC }, - new[] { ENERGYPERSECOND, PERCENTMAXIMUMENERGY, MAXENERGYFROMAGI,MAXHEALTHFROMVIT }, - new[] { INTELLIGENCE, STAMINA_REGEN_BASE, STAMINA_AND_ENERGY_REGEN_MULT, ALL_ATTRIBUTES, ALLHEALINGPERCENT }, + new[] { ALL_RECOVERY,DODGE_CHANCE}, + new[] { SPELL_DMG_FROM_INT,DAMAGE_REDUCTION }, + new[] { SPELL_COST_REDUCTION,SPELL_COST_TO_STAMINA,ARMOR,ALL_ATTRIBUTES}, + new[] { ARMOR,DAMAGE_REDUCTION ,ELITE_DAMAGE_REDUCTION,SPELL_DAMAGE_MULTIPLIER,BASE_SPELL_DAMAGE}, + new[] { INTELLIGENCE, MAX_LIFE,LIFE_REGEN_BASE,SPELL_DAMAGE_MULTIPLIER,BASE_SPELL_DAMAGE }, + new[] { VITALITY, MAX_LIFE, MAX_LIFE_MULT, LIFE_REGEN_BASE, LIFE_ON_HIT }, + new[] { SPELL_COST_REDUCTION, COOLDOWN_REDUCTION, CRIT_CHANCE, CRIT_DAMAGE, ARMOR }, + new[] { SPELL_COST_REDUCTION, COOLDOWN_REDUCTION, SPELL_COST_TO_STAMINA, MAX_ENERGY_MULT, LIFE_REGEN_MULT,ELITE_DAMAGE_REDUCTION }, + new[] { ENERGY_REGEN_BASE, MAX_ENERGY_MULT, MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY }, + new[] { INTELLIGENCE, STAMINA_REGEN_BASE, STAMINA_AND_ENERGY_REGEN_MULT, ALL_ATTRIBUTES, ALL_RECOVERY }, }) { name = Translations.ItemDataBase_ItemDefinitions_431/*Yuki-Onna Kimono*/, //tr @@ -5294,15 +5294,15 @@ public static void PopulateItems() new[] { INTELLIGENCE,NONE }, new[] { ARMOR }, new[] { CRIT_CHANCE,CRIT_DAMAGE}, - new[] { SPELLDMGFROMINT }, - new[] { SPELLCOSTREDUCTION,SPELLCOSTTOSTAMINA,ARMOR,ALL_ATTRIBUTES}, - new[] { ARMOR, SPELLDAMAGEINCREASE, BASESPELLDAMAGE, RESISTANCETOMAGIC}, + new[] { SPELL_DMG_FROM_INT }, + new[] { SPELL_COST_REDUCTION,SPELL_COST_TO_STAMINA,ARMOR,ALL_ATTRIBUTES}, + new[] { ARMOR, SPELL_DAMAGE_MULTIPLIER, BASE_SPELL_DAMAGE, ELITE_DAMAGE_REDUCTION}, new[] { INTELLIGENCE, MAX_LIFE,LIFE_REGEN_BASE }, - new[] { SPELLDAMAGEINCREASE,BASESPELLDAMAGE, MAX_LIFE, PERCENTMAXIMUMLIFE, LIFE_REGEN_BASE, LIFEONHIT }, - new[] { SPELLCOSTREDUCTION, COOLDOWNREDUCTION, CRIT_CHANCE, CRIT_DAMAGE, ARMOR }, - new[] { SPELLCOSTREDUCTION, COOLDOWNREDUCTION, SPELLCOSTTOSTAMINA, PERCENTMAXIMUMENERGY, LIFE_REGEN_MULT,RESISTANCETOMAGIC }, - new[] { ENERGYPERSECOND, PERCENTMAXIMUMENERGY, MAXENERGYFROMAGI,MAXHEALTHFROMVIT }, - new[] { INTELLIGENCE, STAMINA_REGEN_BASE, STAMINA_AND_ENERGY_REGEN_MULT, ALL_ATTRIBUTES, ALLHEALINGPERCENT }, + new[] { SPELL_DAMAGE_MULTIPLIER,BASE_SPELL_DAMAGE, MAX_LIFE, MAX_LIFE_MULT, LIFE_REGEN_BASE, LIFE_ON_HIT }, + new[] { SPELL_COST_REDUCTION, COOLDOWN_REDUCTION, CRIT_CHANCE, CRIT_DAMAGE, ARMOR }, + new[] { SPELL_COST_REDUCTION, COOLDOWN_REDUCTION, SPELL_COST_TO_STAMINA, MAX_ENERGY_MULT, LIFE_REGEN_MULT,ELITE_DAMAGE_REDUCTION }, + new[] { ENERGY_REGEN_BASE, MAX_ENERGY_MULT, MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY }, + new[] { INTELLIGENCE, STAMINA_REGEN_BASE, STAMINA_AND_ENERGY_REGEN_MULT, ALL_ATTRIBUTES, ALL_RECOVERY }, }) { name = Translations.ItemDataBase_ItemDefinitions_432/*Yuki-Onna's Headdress*/, //tr @@ -5324,15 +5324,15 @@ public static void PopulateItems() new[] { INTELLIGENCE,NONE }, new[] { ARMOR }, new[] { CRIT_CHANCE,CRIT_DAMAGE}, - new[] { SPELLDMGFROMINT }, - new[] { SPELLCOSTREDUCTION,SPELLCOSTTOSTAMINA,ARMOR,ALL_ATTRIBUTES}, - new[] { ARMOR, SPELLDAMAGEINCREASE, BASESPELLDAMAGE, RESISTANCETOMAGIC}, + new[] { SPELL_DMG_FROM_INT }, + new[] { SPELL_COST_REDUCTION,SPELL_COST_TO_STAMINA,ARMOR,ALL_ATTRIBUTES}, + new[] { ARMOR, SPELL_DAMAGE_MULTIPLIER, BASE_SPELL_DAMAGE, ELITE_DAMAGE_REDUCTION}, new[] { INTELLIGENCE, MAX_LIFE,LIFE_REGEN_BASE }, - new[] { SPELLDAMAGEINCREASE,BASESPELLDAMAGE, MAX_LIFE, PERCENTMAXIMUMLIFE, LIFE_REGEN_BASE, LIFEONHIT }, - new[] { SPELLCOSTREDUCTION, COOLDOWNREDUCTION, CRIT_CHANCE, CRIT_DAMAGE, ARMOR }, - new[] { SPELLCOSTREDUCTION, COOLDOWNREDUCTION, SPELLCOSTTOSTAMINA, PERCENTMAXIMUMENERGY, LIFE_REGEN_MULT,RESISTANCETOMAGIC }, - new[] { ENERGYPERSECOND, PERCENTMAXIMUMENERGY, MAXENERGYFROMAGI,MAXHEALTHFROMVIT }, - new[] { INTELLIGENCE, STAMINA_REGEN_BASE, STAMINA_AND_ENERGY_REGEN_MULT, ALL_ATTRIBUTES, ALLHEALINGPERCENT }, + new[] { SPELL_DAMAGE_MULTIPLIER,BASE_SPELL_DAMAGE, MAX_LIFE, MAX_LIFE_MULT, LIFE_REGEN_BASE, LIFE_ON_HIT }, + new[] { SPELL_COST_REDUCTION, COOLDOWN_REDUCTION, CRIT_CHANCE, CRIT_DAMAGE, ARMOR }, + new[] { SPELL_COST_REDUCTION, COOLDOWN_REDUCTION, SPELL_COST_TO_STAMINA, MAX_ENERGY_MULT, LIFE_REGEN_MULT,ELITE_DAMAGE_REDUCTION }, + new[] { ENERGY_REGEN_BASE, MAX_ENERGY_MULT, MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY }, + new[] { INTELLIGENCE, STAMINA_REGEN_BASE, STAMINA_AND_ENERGY_REGEN_MULT, ALL_ATTRIBUTES, ALL_RECOVERY }, }) { name = Translations.ItemDataBase_ItemDefinitions_434/*Lama Mega's Blood Bag*/, //tr @@ -5375,11 +5375,11 @@ public static void PopulateItems() }; new BaseItem(new Stat[][] { - new[] { MOVEMENTSPEED}, + new[] { MOVEMENT_SPEED}, new[] { INTELLIGENCE,STRENGTH,AGILITY }, new[] { ALL_ATTRIBUTES,VITALITY }, new[] { ARMOR }, - new[] { NONE,JUMPPOWER}, + new[] { NONE,JUMP_POWER}, }) { name = Translations.ItemDataBase_ItemDefinitions_440/*Moonwalkers*/, //tr @@ -5399,11 +5399,11 @@ public static void PopulateItems() new BaseItem(new Stat[][] { - new[] { JUMPPOWER}, + new[] { JUMP_POWER}, new[] { LESSERAGILITY}, new[] { LESSERARMOR}, - new[] { PROJECTILESIZE,PROJECTILESIZE,ALL_ATTRIBUTES,LIFE_REGEN_MULT,LIFE_REGEN_BASE,LESSERVITALITY,AGILITY}, - new[] { RANGEDARMORPIERCING,RANGEDDAMAGEINCREASE,BASERANGEDDAMAGE,ATTACKSPEED}, + new[] { PROJECTILE_SIZE,PROJECTILE_SIZE,ALL_ATTRIBUTES,LIFE_REGEN_MULT,LIFE_REGEN_BASE,LESSERVITALITY,AGILITY}, + new[] { RANGED_ARMOR_PIERCING,RANGED_DAMAGE_INCREASE,BASE_RANGED_DAMAGE,ATTACKSPEED}, }) { name = Translations.ItemDataBase_ItemDefinitions_443/*Rabbit Ears Hairband*/, //tr @@ -5419,11 +5419,11 @@ public static void PopulateItems() }; new BaseItem(new Stat[][] { - new[] { JUMPPOWER}, + new[] { JUMP_POWER}, new[] { AGILITY}, new[] { ARMOR}, - new[] { PROJECTILESIZE,PROJECTILESIZE,ALL_ATTRIBUTES,LIFE_REGEN_MULT,LIFE_REGEN_BASE,VITALITY,INTELLIGENCE,AGILITY}, - new[] { RANGEDARMORPIERCING,RANGEDDAMAGEINCREASE,BASERANGEDDAMAGE,ATTACKSPEED}, + new[] { PROJECTILE_SIZE,PROJECTILE_SIZE,ALL_ATTRIBUTES,LIFE_REGEN_MULT,LIFE_REGEN_BASE,VITALITY,INTELLIGENCE,AGILITY}, + new[] { RANGED_ARMOR_PIERCING,RANGED_DAMAGE_INCREASE,BASE_RANGED_DAMAGE,ATTACKSPEED}, }) { name = Translations.ItemDataBase_ItemDefinitions_445/*Bunny Ears Hairband*/, //tr @@ -5484,8 +5484,8 @@ public static void PopulateItems() new BaseItem(new Stat[][] { new [] {ALL}, - new [] {BASESPELLDAMAGE,BASERANGEDDAMAGE,BASEMELEEDAMAGE}, - new [] {SPELLDMGFROMINT,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,DAMAGE_REDUCTION}, + new [] {BASE_SPELL_DAMAGE,BASE_RANGED_DAMAGE,BASE_MELEE_DAMAGE}, + new [] {SPELL_DMG_FROM_INT,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,DAMAGE_REDUCTION}, new [] {ALL_ATTRIBUTES,AGILITY,STRENGTH,INTELLIGENCE,VITALITY}, }) @@ -5506,8 +5506,8 @@ public static void PopulateItems() { new [] {ALL}, new [] {ALL}, - new [] {BASESPELLDAMAGE,BASERANGEDDAMAGE,BASEMELEEDAMAGE}, - new [] {SPELLDMGFROMINT,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,DAMAGE_REDUCTION}, + new [] {BASE_SPELL_DAMAGE,BASE_RANGED_DAMAGE,BASE_MELEE_DAMAGE}, + new [] {SPELL_DMG_FROM_INT,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,DAMAGE_REDUCTION}, new [] {ALL_ATTRIBUTES,AGILITY,STRENGTH,INTELLIGENCE,VITALITY}, }) @@ -5529,8 +5529,8 @@ public static void PopulateItems() new [] {ALL}, new [] {ALL}, new [] {ALL}, - new [] {BASESPELLDAMAGE,BASERANGEDDAMAGE,BASEMELEEDAMAGE}, - new [] {SPELLDMGFROMINT,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,DAMAGE_REDUCTION}, + new [] {BASE_SPELL_DAMAGE,BASE_RANGED_DAMAGE,BASE_MELEE_DAMAGE}, + new [] {SPELL_DMG_FROM_INT,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,DAMAGE_REDUCTION}, new [] {ALL_ATTRIBUTES,AGILITY,STRENGTH,INTELLIGENCE,VITALITY}, }) @@ -5551,9 +5551,9 @@ public static void PopulateItems() { new [] {ALL}, new [] {ALL}, - new [] {MOVEMENTSPEED,COOLDOWNREDUCTION}, - new [] {JUMPPOWER,ATTACKSPEED,MOVEMENTSPEED,ENERGYPERSECOND}, - new [] {BASESPELLDAMAGE,BASERANGEDDAMAGE,BASEMELEEDAMAGE,CRIT_CHANCE,CRIT_DAMAGE}, + new [] {MOVEMENT_SPEED,COOLDOWN_REDUCTION}, + new [] {JUMP_POWER,ATTACKSPEED,MOVEMENT_SPEED,ENERGY_REGEN_BASE}, + new [] {BASE_SPELL_DAMAGE,BASE_RANGED_DAMAGE,BASE_MELEE_DAMAGE,CRIT_CHANCE,CRIT_DAMAGE}, new [] {ALL_ATTRIBUTES,AGILITY,STRENGTH,INTELLIGENCE,VITALITY}, }) { @@ -5576,7 +5576,7 @@ public static void PopulateItems() new [] {ALL}, new [] {ALL}, new [] {ALL}, - new [] {COOLDOWNREDUCTION,NONE}, + new [] {COOLDOWN_REDUCTION,NONE}, }) { name = Translations.ItemDataBase_ItemDefinitions_456/*Destroyed Void Shard*/, //tr @@ -5647,11 +5647,11 @@ public static void PopulateItems() { new [] {ALL}, new [] {ALL}, - new [] {MELEEDAMAGEINCREASE,MELEEDMGFROMSTR}, + new [] {MELEE_DAMAGE_INCREASE,MELEE_DMG_FROM_STR}, new [] {STRENGTH}, - new [] {BASEMELEEDAMAGE}, - new [] {ATTACKCOSTREDUCTION,ATTACKSPEED,LIFEONHIT,ENERGYONHIT,NONE,NONE,NONE}, - new [] {ALL_ATTRIBUTES,VITALITY,MELEEDAMAGEINCREASE,MELEEARMORPIERCING}, + new [] {BASE_MELEE_DAMAGE}, + new [] {ATTACK_COST_REDUCTION,ATTACKSPEED,LIFE_ON_HIT,ENERGY_ON_HIT,NONE,NONE,NONE}, + new [] {ALL_ATTRIBUTES,VITALITY,MELEE_DAMAGE_INCREASE,MELEE_ARMOR_PIERCING}, }) { name = Translations.ItemDataBase_ItemDefinitions_464/*Smasher*/, //tr @@ -5671,9 +5671,9 @@ public static void PopulateItems() new BaseItem(new Stat[][] { new [] {ALL}, - new [] {LIFEONHIT}, - new [] {ENERGYONHIT}, - new [] {STAMINA_AND_ENERGY_REGEN_MULT,PERCENTMAXIMUMENERGY,PERCENTMAXIMUMLIFE}, + new [] {LIFE_ON_HIT}, + new [] {ENERGY_ON_HIT}, + new [] {STAMINA_AND_ENERGY_REGEN_MULT,MAX_ENERGY_MULT,MAX_LIFE_MULT}, }) { name = Translations.ItemDataBase_ItemDefinitions_466/*Vampiric Band*/, //tr @@ -5693,11 +5693,11 @@ public static void PopulateItems() new [] {ALL}, new [] {ALL}, new [] {ALL}, - new [] {LIFEONHIT}, + new [] {LIFE_ON_HIT}, new [] {CRIT_CHANCE,CRIT_DAMAGE}, - new [] {MELEEDAMAGEINCREASE,RANGEDDAMAGEINCREASE,SPELLDAMAGEINCREASE}, - new [] {ENERGYONHIT}, - new [] {STAMINA_AND_ENERGY_REGEN_MULT,PERCENTMAXIMUMENERGY,PERCENTMAXIMUMLIFE}, + new [] {MELEE_DAMAGE_INCREASE,RANGED_DAMAGE_INCREASE,SPELL_DAMAGE_MULTIPLIER}, + new [] {ENERGY_ON_HIT}, + new [] {STAMINA_AND_ENERGY_REGEN_MULT,MAX_ENERGY_MULT,MAX_LIFE_MULT}, }) { name = Translations.ItemDataBase_ItemDefinitions_468/*Vampire Ring*/, //tr @@ -5714,10 +5714,10 @@ public static void PopulateItems() }; new BaseItem(new Stat[][] { - new [] {SPELLDAMAGEINCREASE,INTELLIGENCE,BASESPELLDAMAGE}, - new [] {SPELLDAMAGEINCREASE,INTELLIGENCE,BASESPELLDAMAGE}, + new [] {SPELL_DAMAGE_MULTIPLIER,INTELLIGENCE,BASE_SPELL_DAMAGE}, + new [] {SPELL_DAMAGE_MULTIPLIER,INTELLIGENCE,BASE_SPELL_DAMAGE}, new [] {VITALITY,LIFE_REGEN_BASE,LIFE_REGEN_MULT,INTELLIGENCE,AGILITY,STRENGTH,ALL_ATTRIBUTES}, - new [] {COOLDOWNREDUCTION,SPELLCOSTREDUCTION,SPELLCOSTTOSTAMINA,INTELLIGENCE,DAMAGE_REDUCTION}, + new [] {COOLDOWN_REDUCTION,SPELL_COST_REDUCTION,SPELL_COST_TO_STAMINA,INTELLIGENCE,DAMAGE_REDUCTION}, }) { name = Translations.ItemDataBase_ItemDefinitions_470/*Tricksters Scarf*/, //tr @@ -5735,10 +5735,10 @@ public static void PopulateItems() }; new BaseItem(new Stat[][] { - new [] {SPELLDAMAGEINCREASE,INTELLIGENCE,BASESPELLDAMAGE}, - new [] {SPELLDAMAGEINCREASE,INTELLIGENCE,BASESPELLDAMAGE}, + new [] {SPELL_DAMAGE_MULTIPLIER,INTELLIGENCE,BASE_SPELL_DAMAGE}, + new [] {SPELL_DAMAGE_MULTIPLIER,INTELLIGENCE,BASE_SPELL_DAMAGE}, new [] {VITALITY,LIFE_REGEN_BASE,LIFE_REGEN_MULT,INTELLIGENCE,AGILITY,STRENGTH,ALL_ATTRIBUTES}, - new [] {COOLDOWNREDUCTION,SPELLCOSTREDUCTION,SPELLCOSTTOSTAMINA,INTELLIGENCE,DAMAGE_REDUCTION}, + new [] {COOLDOWN_REDUCTION,SPELL_COST_REDUCTION,SPELL_COST_TO_STAMINA,INTELLIGENCE,DAMAGE_REDUCTION}, new [] {INTELLIGENCE}, new [] {ALL}, @@ -5866,8 +5866,8 @@ public static void PopulateItems() var stats = x.Stats.Where(y => y.id == (int)VITALITY || y.id == (int)INTELLIGENCE || y.id == (int)AGILITY || y.id == (int)LESSERVITALITY || y.id == (int)LESSERINTELLIGENCE || y.id == (int)LESSERAGILITY - || y.id == (int)BASERANGEDDAMAGE || y.id == (int)BASESPELLDAMAGE - || y.id == (int)RANGEDDAMAGEINCREASE || y.id == (int)SPELLDAMAGEINCREASE).ToArray(); + || y.id == (int)BASE_RANGED_DAMAGE || y.id == (int)BASE_SPELL_DAMAGE + || y.id == (int)RANGED_DAMAGE_INCREASE || y.id == (int)SPELL_DAMAGE_MULTIPLIER).ToArray(); int c = stats.Count(); @@ -5892,13 +5892,13 @@ public static void PopulateItems() case LESSERAGILITY: newStat = new ItemStat(StatByID((int)LESSERSTRENGTH)); break; - case BASERANGEDDAMAGE: - case BASESPELLDAMAGE: - newStat = new ItemStat(StatByID((int)BASEMELEEDAMAGE)); + case BASE_RANGED_DAMAGE: + case BASE_SPELL_DAMAGE: + newStat = new ItemStat(StatByID((int)BASE_MELEE_DAMAGE)); break; - case RANGEDDAMAGEINCREASE: - case SPELLDAMAGEINCREASE: - newStat = new ItemStat(StatByID((int)MELEEDAMAGEINCREASE)); + case RANGED_DAMAGE_INCREASE: + case SPELL_DAMAGE_MULTIPLIER: + newStat = new ItemStat(StatByID((int)MELEE_DAMAGE_INCREASE)); break; default: return false; @@ -5928,8 +5928,8 @@ public static void PopulateItems() var stats = x.Stats.Where(y => y.id == (int)VITALITY || y.id == (int)STRENGTH || y.id == (int)AGILITY || y.id == (int)LESSERVITALITY || y.id == (int)LESSERSTRENGTH || y.id == (int)LESSERAGILITY - || y.id == (int)BASERANGEDDAMAGE || y.id == (int)BASEMELEEDAMAGE - || y.id == (int)RANGEDDAMAGEINCREASE || y.id == (int)MELEEDAMAGEINCREASE).ToArray(); + || y.id == (int)BASE_RANGED_DAMAGE || y.id == (int)BASE_MELEE_DAMAGE + || y.id == (int)RANGED_DAMAGE_INCREASE || y.id == (int)MELEE_DAMAGE_INCREASE).ToArray(); int c = stats.Count(); @@ -5954,13 +5954,13 @@ public static void PopulateItems() case LESSERAGILITY: newStat = new ItemStat(StatByID((int)LESSERINTELLIGENCE)); break; - case BASERANGEDDAMAGE: - case BASEMELEEDAMAGE: - newStat = new ItemStat(StatByID((int)BASESPELLDAMAGE)); + case BASE_RANGED_DAMAGE: + case BASE_MELEE_DAMAGE: + newStat = new ItemStat(StatByID((int)BASE_SPELL_DAMAGE)); break; - case RANGEDDAMAGEINCREASE: - case MELEEDAMAGEINCREASE: - newStat = new ItemStat(StatByID((int)SPELLDAMAGEINCREASE)); + case RANGED_DAMAGE_INCREASE: + case MELEE_DAMAGE_INCREASE: + newStat = new ItemStat(StatByID((int)SPELL_DAMAGE_MULTIPLIER)); break; default: return false; @@ -5990,8 +5990,8 @@ public static void PopulateItems() var stats = x.Stats.Where(y => y.id == (int)VITALITY || y.id == (int)STRENGTH || y.id == (int)INTELLIGENCE || y.id == (int)LESSERVITALITY || y.id == (int)LESSERSTRENGTH || y.id == (int)LESSERINTELLIGENCE - || y.id == (int)BASESPELLDAMAGE || y.id == (int)BASEMELEEDAMAGE - || y.id == (int)SPELLDAMAGEINCREASE || y.id == (int)MELEEDAMAGEINCREASE).ToArray(); + || y.id == (int)BASE_SPELL_DAMAGE || y.id == (int)BASE_MELEE_DAMAGE + || y.id == (int)SPELL_DAMAGE_MULTIPLIER || y.id == (int)MELEE_DAMAGE_INCREASE).ToArray(); int c = stats.Count(); @@ -6016,13 +6016,13 @@ public static void PopulateItems() case LESSERSTRENGTH: newStat = new ItemStat(StatByID((int)LESSERAGILITY)); break; - case BASEMELEEDAMAGE: - case BASESPELLDAMAGE: - newStat = new ItemStat(StatByID((int)BASERANGEDDAMAGE)); + case BASE_MELEE_DAMAGE: + case BASE_SPELL_DAMAGE: + newStat = new ItemStat(StatByID((int)BASE_RANGED_DAMAGE)); break; - case MELEEDAMAGEINCREASE: - case SPELLDAMAGEINCREASE: - newStat = new ItemStat(StatByID((int)RANGEDDAMAGEINCREASE)); + case MELEE_DAMAGE_INCREASE: + case SPELL_DAMAGE_MULTIPLIER: + newStat = new ItemStat(StatByID((int)RANGED_DAMAGE_INCREASE)); break; default: return false; @@ -6298,13 +6298,13 @@ public static void PopulateItems() }; new BaseItem(new Stat[][] { - new [] {SPELLCOSTREDUCTION,MELEEDAMAGEINCREASE,SPELLDAMAGEINCREASE,COOLDOWNREDUCTION,DAMAGE_REDUCTION, RANGEDDMGFROMAGI, ATTACKSPEED}, + new [] {SPELL_COST_REDUCTION,MELEE_DAMAGE_INCREASE,SPELL_DAMAGE_MULTIPLIER,COOLDOWN_REDUCTION,DAMAGE_REDUCTION, RANGED_DMG_FROM_AGI, ATTACKSPEED}, new [] {AGILITY,LESSERAGILITY}, - new [] {MELEEARMORPIERCING,RANGEDARMORPIERCING,ARMORPIERCING,ARMOR}, - new [] {RANGEDDAMAGEINCREASE,RANGEDDMGFROMAGI,BASERANGEDDAMAGE,CRIT_CHANCE,CRIT_DAMAGE,ALL_ATTRIBUTES}, + new [] {MELEE_ARMOR_PIERCING,RANGED_ARMOR_PIERCING,ARMOR_PIERCING,ARMOR}, + new [] {RANGED_DAMAGE_INCREASE,RANGED_DMG_FROM_AGI,BASE_RANGED_DAMAGE,CRIT_CHANCE,CRIT_DAMAGE,ALL_ATTRIBUTES}, new [] {INTELLIGENCE,STRENGTH,AGILITY,VITALITY,ALL_ATTRIBUTES,MAX_LIFE,MAX_ENERGY}, - new [] {INTELLIGENCE,STRENGTH,AGILITY,VITALITY,ALL_ATTRIBUTES,LIFEONHIT,ENERGYONHIT,ENERGYPERSECOND,ALLHEALINGPERCENT}, - new [] {RANGEDDAMAGEINCREASE,BASERANGEDDAMAGE,AGILITY}, + new [] {INTELLIGENCE,STRENGTH,AGILITY,VITALITY,ALL_ATTRIBUTES,LIFE_ON_HIT,ENERGY_ON_HIT,ENERGY_REGEN_BASE,ALL_RECOVERY}, + new [] {RANGED_DAMAGE_INCREASE,BASE_RANGED_DAMAGE,AGILITY}, new [] {ALL}, new [] {ALL}, }) @@ -6325,16 +6325,16 @@ public static void PopulateItems() new BaseItem(new Stat[][] { - new [] {SPELLCOSTREDUCTION,BASESPELLDAMAGE,SPELLDAMAGEINCREASE,COOLDOWNREDUCTION,DAMAGE_REDUCTION}, - new [] {ATTACKSPEED,PROJECTILESIZE,PROJECTILESPEED}, + new [] {SPELL_COST_REDUCTION,BASE_SPELL_DAMAGE,SPELL_DAMAGE_MULTIPLIER,COOLDOWN_REDUCTION,DAMAGE_REDUCTION}, + new [] {ATTACKSPEED,PROJECTILE_SIZE,PROJECTILE_SPEED}, new [] {AGILITY,LESSERAGILITY}, - new [] {HEADSHOTDAMAGE}, - new [] {MELEEARMORPIERCING,RANGEDARMORPIERCING,ARMORPIERCING,ARMOR,RESISTANCETOMAGIC,MAGICFIND}, - new [] {RANGEDDAMAGEINCREASE,RANGEDDMGFROMAGI,BASERANGEDDAMAGE,CRIT_CHANCE,CRIT_DAMAGE,ALL_ATTRIBUTES,MAXENERGYFROMAGI}, - new [] {RANGEDDAMAGEINCREASE,BASERANGEDDAMAGE,AGILITY,VITALITY,INTELLIGENCE,CRIT_CHANCE,CRIT_DAMAGE}, - new [] {RANGEDDAMAGEINCREASE,BASERANGEDDAMAGE,AGILITY,VITALITY,INTELLIGENCE,HEADSHOTDAMAGE}, + new [] {HEADSHOT_DAMAGE_MULT}, + new [] {MELEE_ARMOR_PIERCING,RANGED_ARMOR_PIERCING,ARMOR_PIERCING,ARMOR,ELITE_DAMAGE_REDUCTION,LOOT_QUANTITY}, + new [] {RANGED_DAMAGE_INCREASE,RANGED_DMG_FROM_AGI,BASE_RANGED_DAMAGE,CRIT_CHANCE,CRIT_DAMAGE,ALL_ATTRIBUTES,MAX_ENERGY_FROM_AGILITY}, + new [] {RANGED_DAMAGE_INCREASE,BASE_RANGED_DAMAGE,AGILITY,VITALITY,INTELLIGENCE,CRIT_CHANCE,CRIT_DAMAGE}, + new [] {RANGED_DAMAGE_INCREASE,BASE_RANGED_DAMAGE,AGILITY,VITALITY,INTELLIGENCE,HEADSHOT_DAMAGE_MULT}, new [] {INTELLIGENCE,STRENGTH,AGILITY,VITALITY,ALL_ATTRIBUTES,MAX_LIFE,MAX_ENERGY}, - new [] {INTELLIGENCE,STRENGTH,AGILITY,VITALITY,ALL_ATTRIBUTES,LIFEONHIT,ENERGYONHIT,ENERGYPERSECOND,ALLHEALINGPERCENT}, + new [] {INTELLIGENCE,STRENGTH,AGILITY,VITALITY,ALL_ATTRIBUTES,LIFE_ON_HIT,ENERGY_ON_HIT,ENERGY_REGEN_BASE,ALL_RECOVERY}, new [] {ALL}, new [] {ALL}, }) @@ -6354,15 +6354,15 @@ public static void PopulateItems() }; new BaseItem(new Stat[][] { - new [] {ARMORPIERCING,MELEEARMORPIERCING,NONE}, + new [] {ARMOR_PIERCING,MELEE_ARMOR_PIERCING,NONE}, new [] {BLOCK,NONE}, - new [] {ARMOR,MAX_LIFE,MAXHEALTHFROMVIT,DAMAGE_REDUCTION,RESISTANCETOMAGIC,DODGECHANCE}, - new [] {ARMOR,MAX_LIFE,MAXHEALTHFROMVIT,DAMAGE_REDUCTION,VITALITY,STRENGTH,ALL_ATTRIBUTES}, - new [] {ARMOR,MAX_LIFE,MAXHEALTHFROMVIT,DAMAGE_REDUCTION,VITALITY,STRENGTH,ALL_ATTRIBUTES,THORNS}, - new [] {THORNS,MELEEDAMAGEINCREASE,VITALITY,STRENGTH}, - new [] {STRENGTH,ARMOR,MELEEARMORPIERCING}, - new [] {MELEEDAMAGEINCREASE,MELEEDMGFROMSTR,BASEMELEEDAMAGE}, - new [] {MELEEDAMAGEINCREASE,ATTACKSPEED,BASEMELEEDAMAGE,MELEEWEAPONRANGE}, + new [] {ARMOR,MAX_LIFE,MAX_HEALTH_FROM_VITALITY,DAMAGE_REDUCTION,ELITE_DAMAGE_REDUCTION,DODGE_CHANCE}, + new [] {ARMOR,MAX_LIFE,MAX_HEALTH_FROM_VITALITY,DAMAGE_REDUCTION,VITALITY,STRENGTH,ALL_ATTRIBUTES}, + new [] {ARMOR,MAX_LIFE,MAX_HEALTH_FROM_VITALITY,DAMAGE_REDUCTION,VITALITY,STRENGTH,ALL_ATTRIBUTES,THORNS}, + new [] {THORNS,MELEE_DAMAGE_INCREASE,VITALITY,STRENGTH}, + new [] {STRENGTH,ARMOR,MELEE_ARMOR_PIERCING}, + new [] {MELEE_DAMAGE_INCREASE,MELEE_DMG_FROM_STR,BASE_MELEE_DAMAGE}, + new [] {MELEE_DAMAGE_INCREASE,ATTACKSPEED,BASE_MELEE_DAMAGE,MELEE_WEAPON_RANGE}, }) { name = Translations.ItemDataBase_ItemDefinitions_509/*Shield Blade*/, //tr @@ -6379,15 +6379,15 @@ public static void PopulateItems() }; new BaseItem(new Stat[][] { - new [] {ARMORPIERCING,MELEEARMORPIERCING}, + new [] {ARMOR_PIERCING,MELEE_ARMOR_PIERCING}, new [] {BLOCK,NONE}, - new [] {ARMOR,MAX_LIFE,MAXHEALTHFROMVIT,DAMAGE_REDUCTION,RESISTANCETOMAGIC,DODGECHANCE}, - new [] {ARMOR,MAX_LIFE,MAXHEALTHFROMVIT,DAMAGE_REDUCTION,VITALITY,STRENGTH,ALL_ATTRIBUTES}, - new [] {ARMOR,MAX_LIFE,MAXHEALTHFROMVIT,DAMAGE_REDUCTION,VITALITY,STRENGTH,ALL_ATTRIBUTES,THORNS}, - new [] {THORNS,MELEEDAMAGEINCREASE,VITALITY,STRENGTH}, - new [] {STRENGTH,ARMOR,MELEEARMORPIERCING}, - new [] {MELEEDAMAGEINCREASE,MELEEDMGFROMSTR,BASEMELEEDAMAGE}, - new [] {MELEEDAMAGEINCREASE,ATTACKSPEED,BASEMELEEDAMAGE,MELEEWEAPONRANGE}, + new [] {ARMOR,MAX_LIFE,MAX_HEALTH_FROM_VITALITY,DAMAGE_REDUCTION,ELITE_DAMAGE_REDUCTION,DODGE_CHANCE}, + new [] {ARMOR,MAX_LIFE,MAX_HEALTH_FROM_VITALITY,DAMAGE_REDUCTION,VITALITY,STRENGTH,ALL_ATTRIBUTES}, + new [] {ARMOR,MAX_LIFE,MAX_HEALTH_FROM_VITALITY,DAMAGE_REDUCTION,VITALITY,STRENGTH,ALL_ATTRIBUTES,THORNS}, + new [] {THORNS,MELEE_DAMAGE_INCREASE,VITALITY,STRENGTH}, + new [] {STRENGTH,ARMOR,MELEE_ARMOR_PIERCING}, + new [] {MELEE_DAMAGE_INCREASE,MELEE_DMG_FROM_STR,BASE_MELEE_DAMAGE}, + new [] {MELEE_DAMAGE_INCREASE,ATTACKSPEED,BASE_MELEE_DAMAGE,MELEE_WEAPON_RANGE}, new [] {ALL}, }) { @@ -6409,15 +6409,15 @@ public static void PopulateItems() new BaseItem(new Stat[][] { - new[] { ARMORPIERCING, MELEEARMORPIERCING }, + new[] { ARMOR_PIERCING, MELEE_ARMOR_PIERCING }, new[] { BLOCK,STRENGTH}, - new[] { ARMOR, MAX_LIFE, MAXHEALTHFROMVIT, DAMAGE_REDUCTION, RESISTANCETOMAGIC, DODGECHANCE }, + new[] { ARMOR, MAX_LIFE, MAX_HEALTH_FROM_VITALITY, DAMAGE_REDUCTION, ELITE_DAMAGE_REDUCTION, DODGE_CHANCE }, new[] { ARMOR, MAX_LIFE , DAMAGE_REDUCTION, VITALITY, STRENGTH, ALL_ATTRIBUTES }, new[] { ARMOR, MAX_LIFE, DAMAGE_REDUCTION, VITALITY, STRENGTH, ALL_ATTRIBUTES, THORNS }, - new[] { THORNS, MELEEDAMAGEINCREASE, VITALITY, STRENGTH }, - new[] { STRENGTH, ARMOR, MELEEARMORPIERCING }, - new[] { MELEEDAMAGEINCREASE, MELEEDMGFROMSTR, BASEMELEEDAMAGE }, - new[] { MELEEDAMAGEINCREASE, ATTACKSPEED, BASEMELEEDAMAGE, MELEEWEAPONRANGE }, + new[] { THORNS, MELEE_DAMAGE_INCREASE, VITALITY, STRENGTH }, + new[] { STRENGTH, ARMOR, MELEE_ARMOR_PIERCING }, + new[] { MELEE_DAMAGE_INCREASE, MELEE_DMG_FROM_STR, BASE_MELEE_DAMAGE }, + new[] { MELEE_DAMAGE_INCREASE, ATTACKSPEED, BASE_MELEE_DAMAGE, MELEE_WEAPON_RANGE }, new[] { ALL }, new[] { ALL }, new[] { ALL }, @@ -6437,13 +6437,13 @@ public static void PopulateItems() }; new BaseItem(new Stat[][] { - new[] { ARMOR,BASEMELEEDAMAGE }, + new[] { ARMOR,BASE_MELEE_DAMAGE }, new[] { BLOCK}, - new[] { ARMOR, MAX_LIFE,MAX_ENERGY,STAMINA_AND_ENERGY_REGEN_MULT, DAMAGE_REDUCTION, RESISTANCETOMAGIC, DODGECHANCE }, - new[] { ARMOR, MAX_LIFE, MAX_ENERGY, DAMAGE_REDUCTION, VITALITY, STRENGTH, ALL_ATTRIBUTES,CHANCEONHITTOBLEED,CHANCEONHITTOSLOW,CHANCEONHITTOWEAKEN }, - new[] { ARMOR, MAX_LIFE, MAXHEALTHFROMVIT, DAMAGE_REDUCTION, VITALITY, STRENGTH, ALL_ATTRIBUTES, THORNS }, - new[] { THORNS, MELEEDAMAGEINCREASE, VITALITY, STRENGTH }, - new[] { MELEEDAMAGEINCREASE, ATTACKSPEED, BASEMELEEDAMAGE, MELEEWEAPONRANGE,PERCENTMAXIMUMLIFE,PERCENTMAXIMUMENERGY,ALLHEALINGPERCENT }, + new[] { ARMOR, MAX_LIFE,MAX_ENERGY,STAMINA_AND_ENERGY_REGEN_MULT, DAMAGE_REDUCTION, ELITE_DAMAGE_REDUCTION, DODGE_CHANCE }, + new[] { ARMOR, MAX_LIFE, MAX_ENERGY, DAMAGE_REDUCTION, VITALITY, STRENGTH, ALL_ATTRIBUTES,CHANCE_ON_HIT_TO_BLEED,CHANCE_ON_HIT_TO_SLOW,CHANCE_ON_HIT_TO_WEAKEN }, + new[] { ARMOR, MAX_LIFE, MAX_HEALTH_FROM_VITALITY, DAMAGE_REDUCTION, VITALITY, STRENGTH, ALL_ATTRIBUTES, THORNS }, + new[] { THORNS, MELEE_DAMAGE_INCREASE, VITALITY, STRENGTH }, + new[] { MELEE_DAMAGE_INCREASE, ATTACKSPEED, BASE_MELEE_DAMAGE, MELEE_WEAPON_RANGE,MAX_LIFE_MULT,MAX_ENERGY_MULT,ALL_RECOVERY }, }) { name = Translations.ItemDataBase_ItemDefinitions_516/*Buckler*/, //tr @@ -6457,13 +6457,13 @@ public static void PopulateItems() }; new BaseItem(new Stat[][] { - new [] {FIREDAMAGE}, - new [] {MAX_ENERGY,MAX_LIFE,PERCENTMAXIMUMENERGY,PERCENTMAXIMUMLIFE}, - new [] {STRENGTH,INTELLIGENCE,AGILITY,SPELLCOSTREDUCTION}, - new [] {SPELLDAMAGEINCREASE,BASESPELLDAMAGE, INTELLIGENCE ,ALL_ATTRIBUTES}, - new [] {SPELLDAMAGEINCREASE,BASESPELLDAMAGE, INTELLIGENCE ,ALL_ATTRIBUTES}, + new [] {FIRE_DAMAGE}, + new [] {MAX_ENERGY,MAX_LIFE,MAX_ENERGY_MULT,MAX_LIFE_MULT}, + new [] {STRENGTH,INTELLIGENCE,AGILITY,SPELL_COST_REDUCTION}, + new [] {SPELL_DAMAGE_MULTIPLIER,BASE_SPELL_DAMAGE, INTELLIGENCE ,ALL_ATTRIBUTES}, + new [] {SPELL_DAMAGE_MULTIPLIER,BASE_SPELL_DAMAGE, INTELLIGENCE ,ALL_ATTRIBUTES}, new [] {ARMOR,DAMAGE_REDUCTION}, - new [] {RESISTANCETOMAGIC,MAGICFIND,MOVEMENTSPEED,ARMOR}, + new [] {ELITE_DAMAGE_REDUCTION,LOOT_QUANTITY,MOVEMENT_SPEED,ARMOR}, }) { name = Translations.ItemDataBase_ItemDefinitions_517/*Pyromancy Mask*/, //tr @@ -6481,17 +6481,17 @@ public static void PopulateItems() new BaseItem(new Stat[][] { - new [] {FIREDAMAGE}, - new [] {SPELLDMGFROMINT,MELEEDMGFROMSTR,RANGEDDMGFROMAGI}, - new [] {MAXENERGYFROMAGI,MAXHEALTHFROMVIT}, - new [] {MAX_ENERGY,MAX_LIFE,PERCENTMAXIMUMENERGY,PERCENTMAXIMUMLIFE}, - new [] {STRENGTH,INTELLIGENCE,AGILITY,SPELLCOSTREDUCTION}, - new [] {SPELLDAMAGEINCREASE,BASESPELLDAMAGE, INTELLIGENCE ,ALL_ATTRIBUTES}, - new [] {SPELLDAMAGEINCREASE,BASESPELLDAMAGE, INTELLIGENCE ,ALL_ATTRIBUTES}, + new [] {FIRE_DAMAGE}, + new [] {SPELL_DMG_FROM_INT,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI}, + new [] {MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY}, + new [] {MAX_ENERGY,MAX_LIFE,MAX_ENERGY_MULT,MAX_LIFE_MULT}, + new [] {STRENGTH,INTELLIGENCE,AGILITY,SPELL_COST_REDUCTION}, + new [] {SPELL_DAMAGE_MULTIPLIER,BASE_SPELL_DAMAGE, INTELLIGENCE ,ALL_ATTRIBUTES}, + new [] {SPELL_DAMAGE_MULTIPLIER,BASE_SPELL_DAMAGE, INTELLIGENCE ,ALL_ATTRIBUTES}, new [] {ALL}, new [] {ALL}, new [] {ARMOR,DAMAGE_REDUCTION}, - new [] {RESISTANCETOMAGIC,MAGICFIND,MOVEMENTSPEED,ARMOR}, + new [] {ELITE_DAMAGE_REDUCTION,LOOT_QUANTITY,MOVEMENT_SPEED,ARMOR}, }) { name = Translations.ItemDataBase_ItemDefinitions_519/*Ember Mask*/, //tr @@ -6510,18 +6510,18 @@ public static void PopulateItems() new BaseItem(new Stat[][] { - new [] {FIREDAMAGE}, - new [] {ARMOR,DODGECHANCE}, - new [] {MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT,MELEEDMGFROMSTR,RANGEDDMGFROMAGI}, - new [] {MAX_ENERGY,MAX_LIFE,PERCENTMAXIMUMENERGY,PERCENTMAXIMUMLIFE}, - new [] {STRENGTH,INTELLIGENCE,AGILITY,SPELLCOSTREDUCTION,PROJECTILESPEED,PROJECTILESIZE}, - new [] {SPELLDAMAGEINCREASE,BASESPELLDAMAGE, INTELLIGENCE ,ALL_ATTRIBUTES}, - new [] {SPELLDAMAGEINCREASE,BASESPELLDAMAGE, INTELLIGENCE ,ALL_ATTRIBUTES}, + new [] {FIRE_DAMAGE}, + new [] {ARMOR,DODGE_CHANCE}, + new [] {MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI}, + new [] {MAX_ENERGY,MAX_LIFE,MAX_ENERGY_MULT,MAX_LIFE_MULT}, + new [] {STRENGTH,INTELLIGENCE,AGILITY,SPELL_COST_REDUCTION,PROJECTILE_SPEED,PROJECTILE_SIZE}, + new [] {SPELL_DAMAGE_MULTIPLIER,BASE_SPELL_DAMAGE, INTELLIGENCE ,ALL_ATTRIBUTES}, + new [] {SPELL_DAMAGE_MULTIPLIER,BASE_SPELL_DAMAGE, INTELLIGENCE ,ALL_ATTRIBUTES}, new [] {ALL}, new [] {ALL}, new [] {ALL}, new [] {ARMOR,DAMAGE_REDUCTION}, - new [] {RESISTANCETOMAGIC,MAGICFIND,MOVEMENTSPEED,ARMOR}, + new [] {ELITE_DAMAGE_REDUCTION,LOOT_QUANTITY,MOVEMENT_SPEED,ARMOR}, }) { name = Translations.ItemDataBase_ItemDefinitions_521/*Flame Pauldrons*/, //tr @@ -6547,15 +6547,15 @@ public static void PopulateItems() }; new BaseItem(new Stat[][] { - new [] {SPELLDMGFROMINT}, - new [] {MAXENERGYFROMAGI,MAXHEALTHFROMVIT}, - new [] {MAX_ENERGY,MAX_LIFE,PERCENTMAXIMUMENERGY,PERCENTMAXIMUMLIFE}, - new [] {STRENGTH,INTELLIGENCE,AGILITY,SPELLCOSTREDUCTION,COOLDOWNREDUCTION,SPELLCOSTTOSTAMINA}, - new [] {SPELLDAMAGEINCREASE,BASESPELLDAMAGE, INTELLIGENCE ,ALL_ATTRIBUTES}, - new [] {SPELLDAMAGEINCREASE,BASESPELLDAMAGE, INTELLIGENCE ,ALL_ATTRIBUTES}, + new [] {SPELL_DMG_FROM_INT}, + new [] {MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY}, + new [] {MAX_ENERGY,MAX_LIFE,MAX_ENERGY_MULT,MAX_LIFE_MULT}, + new [] {STRENGTH,INTELLIGENCE,AGILITY,SPELL_COST_REDUCTION,COOLDOWN_REDUCTION,SPELL_COST_TO_STAMINA}, + new [] {SPELL_DAMAGE_MULTIPLIER,BASE_SPELL_DAMAGE, INTELLIGENCE ,ALL_ATTRIBUTES}, + new [] {SPELL_DAMAGE_MULTIPLIER,BASE_SPELL_DAMAGE, INTELLIGENCE ,ALL_ATTRIBUTES}, new [] {ALL}, new [] {ALL}, - new [] {RESISTANCETOMAGIC,ENERGYONHIT,ENERGYPERSECOND,STAMINA_AND_ENERGY_REGEN_MULT,STAMINA_REGEN_BASE}, + new [] {ELITE_DAMAGE_REDUCTION,ENERGY_ON_HIT,ENERGY_REGEN_BASE,STAMINA_AND_ENERGY_REGEN_MULT,STAMINA_REGEN_BASE}, }) { name = Translations.ItemDataBase_ItemDefinitions_523/*Ancient Scroll*/, //tr @@ -6572,19 +6572,19 @@ public static void PopulateItems() }; new BaseItem(new Stat[][] { - new [] {SPELLDMGFROMINT}, - new [] {MAXENERGYFROMAGI,MAXHEALTHFROMVIT}, - new [] {MAX_ENERGY,MAX_LIFE,PERCENTMAXIMUMENERGY,PERCENTMAXIMUMLIFE}, - new [] {STRENGTH,INTELLIGENCE,AGILITY,SPELLCOSTREDUCTION,COOLDOWNREDUCTION,SPELLCOSTTOSTAMINA}, - new [] {SPELLDAMAGEINCREASE,BASESPELLDAMAGE, INTELLIGENCE ,ALL_ATTRIBUTES}, - new [] {SPELLDAMAGEINCREASE,BASESPELLDAMAGE, INTELLIGENCE ,ALL_ATTRIBUTES}, + new [] {SPELL_DMG_FROM_INT}, + new [] {MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY}, + new [] {MAX_ENERGY,MAX_LIFE,MAX_ENERGY_MULT,MAX_LIFE_MULT}, + new [] {STRENGTH,INTELLIGENCE,AGILITY,SPELL_COST_REDUCTION,COOLDOWN_REDUCTION,SPELL_COST_TO_STAMINA}, + new [] {SPELL_DAMAGE_MULTIPLIER,BASE_SPELL_DAMAGE, INTELLIGENCE ,ALL_ATTRIBUTES}, + new [] {SPELL_DAMAGE_MULTIPLIER,BASE_SPELL_DAMAGE, INTELLIGENCE ,ALL_ATTRIBUTES}, new [] {ALL}, new [] {ALL}, new [] {ALL}, new [] {ALL}, new [] {ALL}, new [] {ALL}, - new [] {RESISTANCETOMAGIC,ENERGYONHIT,ENERGYPERSECOND,STAMINA_AND_ENERGY_REGEN_MULT,STAMINA_REGEN_BASE}, + new [] {ELITE_DAMAGE_REDUCTION,ENERGY_ON_HIT,ENERGY_REGEN_BASE,STAMINA_AND_ENERGY_REGEN_MULT,STAMINA_REGEN_BASE}, }) { name = Translations.ItemDataBase_ItemDefinitions_524/*Guide on Tearing Spacetime*/, //tr @@ -6602,16 +6602,16 @@ public static void PopulateItems() new BaseItem(new Stat[][] { new [] {STRENGTH}, - new [] {MELEEDAMAGEINCREASE}, + new [] {MELEE_DAMAGE_INCREASE}, new [] {ATTACKSPEED}, - new [] {MELEEDMGFROMSTR}, + new [] {MELEE_DMG_FROM_STR}, new [] {BLOCK,ARMOR,DAMAGE_REDUCTION}, - new [] {BASEMELEEDAMAGE,NONE}, - new [] {BASEMELEEDAMAGE,MELEEDAMAGEINCREASE,STRENGTH}, - new [] {MELEEARMORPIERCING,ARMORPIERCING,ALL_ATTRIBUTES}, - new [] {ATTACKCOSTREDUCTION,ATTACKSPEED}, - new [] {ALL_ATTRIBUTES,MELEEWEAPONRANGE,VITALITY,MAX_LIFE}, - new [] {ENERGYONHIT,VITALITY,LIFEONHIT } + new [] {BASE_MELEE_DAMAGE,NONE}, + new [] {BASE_MELEE_DAMAGE,MELEE_DAMAGE_INCREASE,STRENGTH}, + new [] {MELEE_ARMOR_PIERCING,ARMOR_PIERCING,ALL_ATTRIBUTES}, + new [] {ATTACK_COST_REDUCTION,ATTACKSPEED}, + new [] {ALL_ATTRIBUTES,MELEE_WEAPON_RANGE,VITALITY,MAX_LIFE}, + new [] {ENERGY_ON_HIT,VITALITY,LIFE_ON_HIT } }) { name = Translations.ItemDataBase_ItemDefinitions_526/*300th Spear*/, //tr @@ -6629,8 +6629,8 @@ public static void PopulateItems() new BaseItem(new Stat[][] { - new [] {MOVEMENTSPEED,ATTACKSPEED}, - new [] {ALL,EXPGAIN,MAGICFIND}, + new [] {MOVEMENT_SPEED,ATTACKSPEED}, + new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, new [] {ALL}, new [] {ALL,NONE}, }) @@ -6649,8 +6649,8 @@ public static void PopulateItems() }.PossibleStats[0][0].multipier = -0.3f; new BaseItem(new Stat[][] { - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, + new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, new [] {ALL,NONE}, new [] {ALL}, }) @@ -6669,8 +6669,8 @@ public static void PopulateItems() }; new BaseItem(new Stat[][] { - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, + new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, new [] {ALL,NONE}, new [] {ALL}, new [] {ALL}, @@ -6690,8 +6690,8 @@ public static void PopulateItems() }; new BaseItem(new Stat[][] { - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, + new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, new [] {ALL,NONE}, new [] {ALL}, new [] {ALL}, @@ -6714,8 +6714,8 @@ public static void PopulateItems() new BaseItem(new Stat[][] { - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, + new [] {MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, new [] {ALL,NONE}, new [] {ALL}, new [] {ALL}, @@ -6740,8 +6740,8 @@ public static void PopulateItems() new BaseItem(new Stat[][] { - new [] {MOVEMENTSPEED,ATTACKSPEED}, - new [] {ALL,EXPGAIN,MAGICFIND}, + new [] {MOVEMENT_SPEED,ATTACKSPEED}, + new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, new [] {ALL}, new [] {ALL,NONE}, new [] {BLOCK}, @@ -6761,8 +6761,8 @@ public static void PopulateItems() }.PossibleStats[0][0].multipier = -0.3f; new BaseItem(new Stat[][] { - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, + new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, new [] {ALL,NONE}, new [] {ALL,NONE}, new [] {ALL}, @@ -6783,8 +6783,8 @@ public static void PopulateItems() }; new BaseItem(new Stat[][] { - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, + new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, new [] {ALL,NONE}, new [] {ALL,NONE}, new [] {ALL}, @@ -6807,8 +6807,8 @@ public static void PopulateItems() new BaseItem(new Stat[][] { - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, + new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, new [] {ALL,NONE}, new [] {ALL,NONE}, new [] {ALL}, @@ -6834,8 +6834,8 @@ public static void PopulateItems() new BaseItem(new Stat[][] { new [] {BLOCK}, - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, + new [] {MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, new [] {ALL,NONE}, new [] {ALL,NONE}, new [] {ALL}, @@ -6862,8 +6862,8 @@ public static void PopulateItems() new BaseItem(new Stat[][] { - new [] {MOVEMENTSPEED}, - new [] {ALL,EXPGAIN,MAGICFIND}, + new [] {MOVEMENT_SPEED}, + new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, new [] {ALL}, new [] {ALL,NONE}, }) @@ -6882,9 +6882,9 @@ public static void PopulateItems() }.PossibleStats[0][0].multipier = 1.3f; new BaseItem(new Stat[][] { - new [] {MOVEMENTSPEED}, - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {MOVEMENT_SPEED}, + new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, + new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, new [] {ALL,NONE}, new [] {ALL,NONE}, }) @@ -6903,9 +6903,9 @@ public static void PopulateItems() }; new BaseItem(new Stat[][] { - new [] {MOVEMENTSPEED}, - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {MOVEMENT_SPEED}, + new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, + new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, new [] {ALL,NONE}, new [] {ALL}, new [] {ALL,ARMOR}, @@ -6925,9 +6925,9 @@ public static void PopulateItems() }; new BaseItem(new Stat[][] { - new [] {MOVEMENTSPEED}, - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {MOVEMENT_SPEED}, + new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, + new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, new [] {ALL,NONE}, new [] {ALL}, new [] {ALL}, @@ -6950,9 +6950,9 @@ public static void PopulateItems() new BaseItem(new Stat[][] { - new [] {MOVEMENTSPEED}, - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {MOVEMENT_SPEED}, + new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, + new [] {MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, new [] {ALL,NONE}, new [] {ALL}, new [] {ALL}, @@ -6980,7 +6980,7 @@ public static void PopulateItems() new BaseItem(new Stat[][] { - new [] {ALL,EXPGAIN,MAGICFIND}, + new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, new [] {ALL}, new [] {ALL,NONE}, }) @@ -6999,8 +6999,8 @@ public static void PopulateItems() }.PossibleStats[0][0].multipier = -0.3f; new BaseItem(new Stat[][] { - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, + new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, new [] {ALL,NONE}, new [] {ALL}, }) @@ -7019,8 +7019,8 @@ public static void PopulateItems() }; new BaseItem(new Stat[][] { - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, + new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, new [] {ALL,NONE}, new [] {ALL}, new [] {ALL}, @@ -7040,8 +7040,8 @@ public static void PopulateItems() }; new BaseItem(new Stat[][] { - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, + new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, new [] {ALL,NONE}, new [] {ALL}, new [] {ALL}, @@ -7064,8 +7064,8 @@ public static void PopulateItems() new BaseItem(new Stat[][] { - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, + new [] {MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, new [] {ALL,NONE}, new [] {ALL}, new [] {ALL}, @@ -7092,7 +7092,7 @@ public static void PopulateItems() new BaseItem(new Stat[][] { - new [] {ALL,EXPGAIN,MAGICFIND}, + new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, new [] {ALL}, new [] {ALL,NONE}, new [] {ALL,NONE}, @@ -7112,8 +7112,8 @@ public static void PopulateItems() }.PossibleStats[0][0].multipier = -0.3f; new BaseItem(new Stat[][] { - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, + new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, new [] {ALL,NONE}, new [] {ALL,NONE}, new [] {ALL}, @@ -7133,8 +7133,8 @@ public static void PopulateItems() }; new BaseItem(new Stat[][] { - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, + new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, new [] {ALL,NONE}, new [] {ALL,NONE}, new [] {ALL}, @@ -7155,8 +7155,8 @@ public static void PopulateItems() }; new BaseItem(new Stat[][] { - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, + new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, new [] {ALL,NONE}, new [] {ALL,NONE}, new [] {ALL}, @@ -7180,8 +7180,8 @@ public static void PopulateItems() new BaseItem(new Stat[][] { - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, + new [] {MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, new [] {ALL,NONE}, new [] {ALL,NONE}, new [] {ALL}, @@ -7207,7 +7207,7 @@ public static void PopulateItems() new BaseItem(new Stat[][] { - new [] {ALL,EXPGAIN,MAGICFIND}, + new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, new [] {ALL}, new [] {ALL,NONE}, }) @@ -7226,8 +7226,8 @@ public static void PopulateItems() }.PossibleStats[0][0].multipier = -0.3f; new BaseItem(new Stat[][] { - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, + new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, new [] {ALL,NONE}, new [] {ALL}, }) @@ -7246,8 +7246,8 @@ public static void PopulateItems() }; new BaseItem(new Stat[][] { - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, + new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, new [] {ALL,NONE}, new [] {ALL}, new [] {ALL}, @@ -7267,8 +7267,8 @@ public static void PopulateItems() }; new BaseItem(new Stat[][] { - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, + new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, new [] {ALL,NONE}, new [] {ALL,NONE}, new [] {ALL}, @@ -7292,8 +7292,8 @@ public static void PopulateItems() new BaseItem(new Stat[][] { - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, + new [] {MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, new [] {ALL,NONE}, new [] {ALL,NONE}, new [] {ALL}, @@ -7319,7 +7319,7 @@ public static void PopulateItems() new BaseItem(new Stat[][] { - new [] {ALL,EXPGAIN,MAGICFIND}, + new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, new [] {ALL}, new [] {ALL,NONE}, }) @@ -7338,8 +7338,8 @@ public static void PopulateItems() }.PossibleStats[0][0].multipier = -0.3f; new BaseItem(new Stat[][] { - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, + new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, new [] {ALL,NONE}, new [] {ALL}, }) @@ -7358,8 +7358,8 @@ public static void PopulateItems() }; new BaseItem(new Stat[][] { - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, + new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, new [] {ALL,NONE}, new [] {ALL}, new [] {ALL}, @@ -7379,8 +7379,8 @@ public static void PopulateItems() }; new BaseItem(new Stat[][] { - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, + new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, new [] {ALL,NONE}, new [] {ALL}, new [] {ALL}, @@ -7403,8 +7403,8 @@ public static void PopulateItems() new BaseItem(new Stat[][] { - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, + new [] {MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, new [] {ALL,NONE}, new [] {ALL}, new [] {ALL}, @@ -7430,7 +7430,7 @@ public static void PopulateItems() new BaseItem(new Stat[][] { - new [] {ALL,EXPGAIN,MAGICFIND}, + new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, new [] {ALL}, new [] {ALL,NONE}, new [] {ALL,NONE}, @@ -7450,8 +7450,8 @@ public static void PopulateItems() }.PossibleStats[0][0].multipier = -0.3f; new BaseItem(new Stat[][] { - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, + new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, new [] {ALL,NONE}, new [] {ALL,NONE}, new [] {ALL}, @@ -7471,8 +7471,8 @@ public static void PopulateItems() }; new BaseItem(new Stat[][] { - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, + new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, new [] {ALL,NONE}, new [] {ALL,NONE}, new [] {ALL}, @@ -7493,8 +7493,8 @@ public static void PopulateItems() }; new BaseItem(new Stat[][] { - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {ALL,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, + new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, new [] {ALL,NONE}, new [] {ALL,NONE}, new [] {ALL}, @@ -7518,8 +7518,8 @@ public static void PopulateItems() new BaseItem(new Stat[][] { - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {MELEEDMGFROMSTR,RANGEDDMGFROMAGI,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, + new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, + new [] {MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, new [] {ALL,NONE}, new [] {ALL,NONE}, new [] {ALL}, @@ -7545,13 +7545,13 @@ public static void PopulateItems() new BaseItem(new Stat[][] { - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {MELEEDMGFROMSTR,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, - new [] {MELEEDAMAGEINCREASE,MELEEWEAPONRANGE,BASEMELEEDAMAGE,STRENGTH}, - new [] {MELEEDAMAGEINCREASE,ATTACKSPEED,BASEMELEEDAMAGE,STRENGTH}, + new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, + new [] {MELEE_DMG_FROM_STR,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, + new [] {MELEE_DAMAGE_INCREASE,MELEE_WEAPON_RANGE,BASE_MELEE_DAMAGE,STRENGTH}, + new [] {MELEE_DAMAGE_INCREASE,ATTACKSPEED,BASE_MELEE_DAMAGE,STRENGTH}, new [] {CRIT_CHANCE,CRIT_DAMAGE,}, - new [] {MELEEDAMAGEINCREASE,NONE,MAX_LIFE,PERCENTMAXIMUMLIFE}, - new [] {STRENGTH,VITALITY,INTELLIGENCE,ATTACKSPEED,ATTACKCOSTREDUCTION,COOLDOWNREDUCTION}, + new [] {MELEE_DAMAGE_INCREASE,NONE,MAX_LIFE,MAX_LIFE_MULT}, + new [] {STRENGTH,VITALITY,INTELLIGENCE,ATTACKSPEED,ATTACK_COST_REDUCTION,COOLDOWN_REDUCTION}, new [] {ALL}, new [] {ALL,NONE}, new [] {ALL,NONE}, @@ -7576,13 +7576,13 @@ public static void PopulateItems() }; new BaseItem(new Stat[][] { - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {MELEEDMGFROMSTR,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, - new [] {MELEEDAMAGEINCREASE,MELEEWEAPONRANGE,BASEMELEEDAMAGE,STRENGTH}, - new [] {MELEEDAMAGEINCREASE,ATTACKSPEED,BASEMELEEDAMAGE,STRENGTH}, + new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, + new [] {MELEE_DMG_FROM_STR,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, + new [] {MELEE_DAMAGE_INCREASE,MELEE_WEAPON_RANGE,BASE_MELEE_DAMAGE,STRENGTH}, + new [] {MELEE_DAMAGE_INCREASE,ATTACKSPEED,BASE_MELEE_DAMAGE,STRENGTH}, new [] {MAX_LIFE}, - new [] {MELEEDAMAGEINCREASE,MAX_LIFE,PERCENTMAXIMUMLIFE}, - new [] {STRENGTH,VITALITY,INTELLIGENCE,ATTACKSPEED,ATTACKCOSTREDUCTION,COOLDOWNREDUCTION}, + new [] {MELEE_DAMAGE_INCREASE,MAX_LIFE,MAX_LIFE_MULT}, + new [] {STRENGTH,VITALITY,INTELLIGENCE,ATTACKSPEED,ATTACK_COST_REDUCTION,COOLDOWN_REDUCTION}, new [] {ALL}, new [] {ALL,NONE}, new [] {ALL,NONE}, @@ -7608,12 +7608,12 @@ public static void PopulateItems() new BaseItem(new Stat[][] { new [] {ALL,}, - new [] {MELEEDMGFROMSTR,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, - new [] {MELEEDAMAGEINCREASE,MELEEWEAPONRANGE,BASEMELEEDAMAGE,STRENGTH}, - new [] {MELEEDAMAGEINCREASE,ATTACKSPEED,BASEMELEEDAMAGE,STRENGTH}, + new [] {MELEE_DMG_FROM_STR,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, + new [] {MELEE_DAMAGE_INCREASE,MELEE_WEAPON_RANGE,BASE_MELEE_DAMAGE,STRENGTH}, + new [] {MELEE_DAMAGE_INCREASE,ATTACKSPEED,BASE_MELEE_DAMAGE,STRENGTH}, new [] {MAX_LIFE}, - new [] {MELEEDAMAGEINCREASE,MAX_LIFE,PERCENTMAXIMUMLIFE}, - new [] {STRENGTH,VITALITY,INTELLIGENCE,ATTACKSPEED,ATTACKCOSTREDUCTION,COOLDOWNREDUCTION}, + new [] {MELEE_DAMAGE_INCREASE,MAX_LIFE,MAX_LIFE_MULT}, + new [] {STRENGTH,VITALITY,INTELLIGENCE,ATTACKSPEED,ATTACK_COST_REDUCTION,COOLDOWN_REDUCTION}, new [] {ALL}, new [] {ALL,NONE}, new [] {ALL,NONE}, @@ -7642,12 +7642,12 @@ public static void PopulateItems() new BaseItem(new Stat[][] { new [] {ALL,}, - new [] {MELEEDMGFROMSTR,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, - new [] {MELEEDAMAGEINCREASE,MELEEWEAPONRANGE,BASEMELEEDAMAGE,STRENGTH}, - new [] {MELEEDAMAGEINCREASE,ATTACKSPEED,BASEMELEEDAMAGE,STRENGTH}, + new [] {MELEE_DMG_FROM_STR,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, + new [] {MELEE_DAMAGE_INCREASE,MELEE_WEAPON_RANGE,BASE_MELEE_DAMAGE,STRENGTH}, + new [] {MELEE_DAMAGE_INCREASE,ATTACKSPEED,BASE_MELEE_DAMAGE,STRENGTH}, new [] {MAX_LIFE}, - new [] {MELEEDAMAGEINCREASE,MAX_LIFE,PERCENTMAXIMUMLIFE}, - new [] {STRENGTH,VITALITY,INTELLIGENCE,ATTACKSPEED,ATTACKCOSTREDUCTION,COOLDOWNREDUCTION}, + new [] {MELEE_DAMAGE_INCREASE,MAX_LIFE,MAX_LIFE_MULT}, + new [] {STRENGTH,VITALITY,INTELLIGENCE,ATTACKSPEED,ATTACK_COST_REDUCTION,COOLDOWN_REDUCTION}, new [] {ALL}, new [] {ALL,NONE}, new [] {ALL,NONE}, @@ -7675,13 +7675,13 @@ public static void PopulateItems() }; new BaseItem(new Stat[][] { - new [] {MOVEMENTSPEED}, - new [] {MELEEDMGFROMSTR,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, - new [] {MELEEDAMAGEINCREASE,MELEEWEAPONRANGE,BASEMELEEDAMAGE,STRENGTH}, - new [] {MELEEDAMAGEINCREASE,ATTACKSPEED,BASEMELEEDAMAGE,STRENGTH}, + new [] {MOVEMENT_SPEED}, + new [] {MELEE_DMG_FROM_STR,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, + new [] {MELEE_DAMAGE_INCREASE,MELEE_WEAPON_RANGE,BASE_MELEE_DAMAGE,STRENGTH}, + new [] {MELEE_DAMAGE_INCREASE,ATTACKSPEED,BASE_MELEE_DAMAGE,STRENGTH}, new [] {MAX_LIFE}, - new [] {MELEEDAMAGEINCREASE,MAX_LIFE,PERCENTMAXIMUMLIFE}, - new [] {STRENGTH,VITALITY,INTELLIGENCE,ATTACKSPEED,ATTACKCOSTREDUCTION,COOLDOWNREDUCTION}, + new [] {MELEE_DAMAGE_INCREASE,MAX_LIFE,MAX_LIFE_MULT}, + new [] {STRENGTH,VITALITY,INTELLIGENCE,ATTACKSPEED,ATTACK_COST_REDUCTION,COOLDOWN_REDUCTION}, new [] {ALL}, new [] {ALL,NONE}, new [] {ALL,NONE}, @@ -7708,12 +7708,12 @@ public static void PopulateItems() new BaseItem(new Stat[][] { new [] {ALL,}, - new [] {MELEEDMGFROMSTR,MAXENERGYFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, - new [] {MELEEDAMAGEINCREASE,MELEEWEAPONRANGE,BASEMELEEDAMAGE,STRENGTH}, - new [] {MELEEDAMAGEINCREASE,ATTACKSPEED,BASEMELEEDAMAGE,STRENGTH}, + new [] {MELEE_DMG_FROM_STR,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, + new [] {MELEE_DAMAGE_INCREASE,MELEE_WEAPON_RANGE,BASE_MELEE_DAMAGE,STRENGTH}, + new [] {MELEE_DAMAGE_INCREASE,ATTACKSPEED,BASE_MELEE_DAMAGE,STRENGTH}, new [] {MAX_LIFE}, - new [] {MELEEDAMAGEINCREASE,MAX_LIFE,PERCENTMAXIMUMLIFE}, - new [] {STRENGTH,VITALITY,INTELLIGENCE,ATTACKSPEED,ATTACKCOSTREDUCTION,COOLDOWNREDUCTION}, + new [] {MELEE_DAMAGE_INCREASE,MAX_LIFE,MAX_LIFE_MULT}, + new [] {STRENGTH,VITALITY,INTELLIGENCE,ATTACKSPEED,ATTACK_COST_REDUCTION,COOLDOWN_REDUCTION}, new [] {ALL}, new [] {ALL,NONE}, new [] {ALL,NONE}, @@ -7741,15 +7741,15 @@ public static void PopulateItems() }; new BaseItem(new Stat[][] { - new [] {ALL,EXPGAIN,MAGICFIND}, - new [] {MELEEDMGFROMSTR,MAXENERGYFROMAGI,RANGEDDMGFROMAGI,MAXHEALTHFROMVIT,SPELLDMGFROMINT}, - new [] {MELEEDAMAGEINCREASE,BASEMELEEDAMAGE,STRENGTH}, - new [] {RANGEDDAMAGEINCREASE,BASERANGEDDAMAGE,AGILITY}, - new [] {SPELLDAMAGEINCREASE,BASESPELLDAMAGE,INTELLIGENCE}, + new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, + new [] {MELEE_DMG_FROM_STR,MAX_ENERGY_FROM_AGILITY,RANGED_DMG_FROM_AGI,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, + new [] {MELEE_DAMAGE_INCREASE,BASE_MELEE_DAMAGE,STRENGTH}, + new [] {RANGED_DAMAGE_INCREASE,BASE_RANGED_DAMAGE,AGILITY}, + new [] {SPELL_DAMAGE_MULTIPLIER,BASE_SPELL_DAMAGE,INTELLIGENCE}, new [] {ALL}, new [] {MAX_LIFE}, - new [] {MAX_LIFE,PERCENTMAXIMUMLIFE,MAX_ENERGY,PERCENTMAXIMUMENERGY}, - new [] {STRENGTH,VITALITY,INTELLIGENCE,AGILITY,ALL_ATTRIBUTES,ATTACKSPEED,ATTACKCOSTREDUCTION,SPELLCOSTREDUCTION,COOLDOWNREDUCTION}, + new [] {MAX_LIFE,MAX_LIFE_MULT,MAX_ENERGY,MAX_ENERGY_MULT}, + new [] {STRENGTH,VITALITY,INTELLIGENCE,AGILITY,ALL_ATTRIBUTES,ATTACKSPEED,ATTACK_COST_REDUCTION,SPELL_COST_REDUCTION,COOLDOWN_REDUCTION}, new [] {ALL}, new [] {ALL,NONE}, new [] {ALL,NONE}, @@ -7807,14 +7807,14 @@ public static void PopulateItems() new BaseItem(new Stat[][] { - new [] {BASEMELEEDAMAGE,BASESPELLDAMAGE}, - new [] {BASEMELEEDAMAGE,BASESPELLDAMAGE}, + new [] {BASE_MELEE_DAMAGE,BASE_SPELL_DAMAGE}, + new [] {BASE_MELEE_DAMAGE,BASE_SPELL_DAMAGE}, new [] {STRENGTH,VITALITY,INTELLIGENCE,AGILITY }, - new [] {MELEEDAMAGEINCREASE, SPELLDAMAGEINCREASE }, + new [] {MELEE_DAMAGE_INCREASE, SPELL_DAMAGE_MULTIPLIER }, new [] {ATTACKSPEED}, new [] {CRIT_CHANCE}, new [] {CRIT_DAMAGE}, - new [] {MELEEDMGFROMSTR}, + new [] {MELEE_DMG_FROM_STR}, new [] {ALL}, new [] {ALL}, new [] {ALL}, @@ -7841,14 +7841,14 @@ public static void PopulateItems() }.PossibleStats[0][0].multipier = 5; new BaseItem(new Stat[][] { - new [] {BASEMELEEDAMAGE,BASESPELLDAMAGE}, - new [] {BASEMELEEDAMAGE, NONE}, + new [] {BASE_MELEE_DAMAGE,BASE_SPELL_DAMAGE}, + new [] {BASE_MELEE_DAMAGE, NONE}, new [] {STRENGTH,VITALITY,INTELLIGENCE,AGILITY }, - new [] {MELEEDAMAGEINCREASE, SPELLDAMAGEINCREASE }, + new [] {MELEE_DAMAGE_INCREASE, SPELL_DAMAGE_MULTIPLIER }, new [] {ATTACKSPEED}, new [] {CRIT_CHANCE}, new [] {CRIT_DAMAGE}, - new [] {MELEEDMGFROMSTR}, + new [] {MELEE_DMG_FROM_STR}, new [] {STRENGTH}, new [] {ALL}, new [] {ALL}, @@ -7874,8 +7874,8 @@ public static void PopulateItems() new [] {ALL}, new [] {ALL}, new [] {ALL}, - new [] {BASESPELLDAMAGE,BASERANGEDDAMAGE,BASEMELEEDAMAGE, NONE}, - new [] {SPELLDMGFROMINT,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,DAMAGE_REDUCTION}, + new [] {BASE_SPELL_DAMAGE,BASE_RANGED_DAMAGE,BASE_MELEE_DAMAGE, NONE}, + new [] {SPELL_DMG_FROM_INT,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,DAMAGE_REDUCTION}, new [] {ALL_ATTRIBUTES,AGILITY,STRENGTH,INTELLIGENCE,VITALITY}, }) @@ -7903,7 +7903,7 @@ public static void PopulateItems() new BaseItem(new Stat[][] { new [] {STRENGTH,VITALITY,AGILITY,ALL_ATTRIBUTES,INTELLIGENCE}, - new [] {MAXENERGYFROMAGI,MELEEDMGFROMSTR,SPELLDMGFROMINT,RANGEDDMGFROMAGI,MAXHEALTHFROMVIT}, + new [] {MAX_ENERGY_FROM_AGILITY,MELEE_DMG_FROM_STR,SPELL_DMG_FROM_INT,RANGED_DMG_FROM_AGI,MAX_HEALTH_FROM_VITALITY}, new [] {ARMOR,DAMAGE_REDUCTION}, new [] { CRIT_CHANCE, CRIT_DAMAGE}, new [] {ALL}, @@ -7915,8 +7915,8 @@ public static void PopulateItems() new [] {ALL}, new [] {ALL}, new [] {ALL}, - new [] {BASESPELLDAMAGE,BASERANGEDDAMAGE,BASEMELEEDAMAGE, NONE}, - new [] {SPELLDMGFROMINT,MELEEDMGFROMSTR,RANGEDDMGFROMAGI,DAMAGE_REDUCTION}, + new [] {BASE_SPELL_DAMAGE,BASE_RANGED_DAMAGE,BASE_MELEE_DAMAGE, NONE}, + new [] {SPELL_DMG_FROM_INT,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,DAMAGE_REDUCTION}, }) { @@ -7947,18 +7947,18 @@ public static void PopulateItems() new BaseItem(new Stat[][] { new[] { LIFE_REGEN_BASE }, - new[] { ARMOR, NONE, ALLHEALINGPERCENT }, + new[] { ARMOR, NONE, ALL_RECOVERY }, new[] { ALL}, - new[] { SPELLDMGFROMINT }, - new[] { SPELLCOSTREDUCTION,SPELLCOSTTOSTAMINA,ARMOR,ALL_ATTRIBUTES}, - new[] { BASESPELLDAMAGE, SPELLDAMAGEINCREASE, INTELLIGENCE, ALL_ATTRIBUTES }, - new[] { BASESPELLDAMAGE, SPELLDAMAGEINCREASE, INTELLIGENCE, DAMAGE_REDUCTION }, - new[] { VITALITY, MAXHEALTHFROMVIT, MAX_LIFE, PERCENTMAXIMUMLIFE, LIFE_REGEN_BASE, LIFEONHIT }, - new[] { SPELLCOSTREDUCTION, COOLDOWNREDUCTION, CRIT_CHANCE, CRIT_DAMAGE, ARMOR,MAXHEALTHFROMVIT }, - new[] { DAMAGE_REDUCTION, PERCENTMAXIMUMENERGY, LIFE_REGEN_MULT }, - new[] { ENERGYPERSECOND, PERCENTMAXIMUMENERGY, MAXENERGYFROMAGI }, - new[] { INTELLIGENCE, STAMINA_REGEN_BASE, STAMINA_AND_ENERGY_REGEN_MULT, ALL_ATTRIBUTES, ALLHEALINGPERCENT }, - new[] { ENERGYONHIT, ENERGYPERSECOND, MAX_LIFE, MASSACREDURATION, MAGICFIND, EXPLOSIONDAMAGE }, + new[] { SPELL_DMG_FROM_INT }, + new[] { SPELL_COST_REDUCTION,SPELL_COST_TO_STAMINA,ARMOR,ALL_ATTRIBUTES}, + new[] { BASE_SPELL_DAMAGE, SPELL_DAMAGE_MULTIPLIER, INTELLIGENCE, ALL_ATTRIBUTES }, + new[] { BASE_SPELL_DAMAGE, SPELL_DAMAGE_MULTIPLIER, INTELLIGENCE, DAMAGE_REDUCTION }, + new[] { VITALITY, MAX_HEALTH_FROM_VITALITY, MAX_LIFE, MAX_LIFE_MULT, LIFE_REGEN_BASE, LIFE_ON_HIT }, + new[] { SPELL_COST_REDUCTION, COOLDOWN_REDUCTION, CRIT_CHANCE, CRIT_DAMAGE, ARMOR,MAX_HEALTH_FROM_VITALITY }, + new[] { DAMAGE_REDUCTION, MAX_ENERGY_MULT, LIFE_REGEN_MULT }, + new[] { ENERGY_REGEN_BASE, MAX_ENERGY_MULT, MAX_ENERGY_FROM_AGILITY }, + new[] { INTELLIGENCE, STAMINA_REGEN_BASE, STAMINA_AND_ENERGY_REGEN_MULT, ALL_ATTRIBUTES, ALL_RECOVERY }, + new[] { ENERGY_ON_HIT, ENERGY_REGEN_BASE, MAX_LIFE, MASSACRE_DURATION, LOOT_QUANTITY, EXPLOSION_DAMAGE }, }) { name = Translations.ItemDataBase_ItemDefinitions_617, //tr diff --git a/Items/ItemDefinitions/Shields.cs b/Items/ItemDefinitions/Shields.cs index 4572e39..91eb168 100644 --- a/Items/ItemDefinitions/Shields.cs +++ b/Items/ItemDefinitions/Shields.cs @@ -49,7 +49,7 @@ public static void AddShields() new Shield() .ShieldStatSlot(1) .StatSlot(new Stat[] { BLOCK }) - .StatSlot(new Stat[] { THORNS, BASEMELEEDAMAGE }) + .StatSlot(new Stat[] { THORNS, BASE_MELEE_DAMAGE }) .Name("Wooden Buckler") .Description("This shield has a precariously sticking out nail.") .Rarity(1); @@ -77,7 +77,7 @@ public static void AddShields() new Shield() .ShieldStatSlot(3) .StatSlot(new Stat[] { BLOCK }) - .StatSlot(new Stat[] { DODGECHANCE }) + .StatSlot(new Stat[] { DODGE_CHANCE }) .Name("Reinforced Buckler") .Description("Light and small shield that allows you to dodge attacks.") .Rarity(2); @@ -85,7 +85,7 @@ public static void AddShields() new Shield() .ShieldStatSlot(3) .StatSlot(new Stat[] { BLOCK }) - .StatSlot(new Stat[] { DODGECHANCE }) + .StatSlot(new Stat[] { DODGE_CHANCE }) .Name("Knight's Guard") .Description("") .Rarity(2); diff --git a/Items/ItemStat.cs b/Items/ItemStat.cs index 9c980f0..5a78f1d 100644 --- a/Items/ItemStat.cs +++ b/Items/ItemStat.cs @@ -45,7 +45,13 @@ public ItemStatBuilder(Stat id, string name, float min, float max) this.rangeMax = max; ItemDataBase.AddStat(this); } - + public ItemStatBuilder Additive(IAdditiveStat stat) + { + this.comparingFunc = CompareAdd; + this.OnEquip = f => stat.Add(true); + this.OnUnequip = f => stat.Sub(false); + return this; + } public ItemStatBuilder Additive(IAdditiveStat stat) { this.comparingFunc = CompareAdd; @@ -143,6 +149,29 @@ public ItemStatBuilder Cap(float maximumPossibleValue) return this; } + public ItemStatBuilder AffectsCarryCapacity(params MoreCraftingReceipes.VanillaItemIDs[] itemIdsToExpandCarryCapacity) + { + this.comparingFunc = CompareAdd; + this.OnEquip = f => + { + for (int i = 0; i < itemIdsToExpandCarryCapacity.Length; i++) + { + ModdedPlayer.instance.AddExtraItemCapacity((int)itemIdsToExpandCarryCapacity[i], Mathf.RoundToInt(f)); + } + }; + this.OnUnequip = f => + { + for (int i = 0; i < itemIdsToExpandCarryCapacity.Length; i++) + { + ModdedPlayer.instance.AddExtraItemCapacity((int)itemIdsToExpandCarryCapacity[i], -Mathf.RoundToInt(f)); + } + }; + this.GetTotalStat = () => string.Join("," , itemIdsToExpandCarryCapacity.Select(id => LocalPlayer.Inventory.GetMaxAmountOf((int)id).ToString())); + return this; + } + + + } public class ItemStat { diff --git a/Items/ItemTemplates.cs b/Items/ItemTemplates.cs index 15e2628..fb337d6 100644 --- a/Items/ItemTemplates.cs +++ b/Items/ItemTemplates.cs @@ -77,37 +77,37 @@ protected List ToItemStatList(Stat[] stats) DAMAGE_REDUCTION, CRIT_CHANCE, CRIT_DAMAGE, - LIFEONHIT, - DODGECHANCE, + LIFE_ON_HIT, + DODGE_CHANCE, ARMOR, - RESISTANCETOMAGIC, + ELITE_DAMAGE_REDUCTION, ATTACKSPEED, - EXPGAIN, - MASSACREDURATION, - SPELLDAMAGEINCREASE, - MELEEDAMAGEINCREASE, - RANGEDDAMAGEINCREASE, - BASESPELLDAMAGE, - BASEMELEEDAMAGE, - BASERANGEDDAMAGE, - ALLHEALINGPERCENT, - MOVEMENTSPEED, - ATTACKCOSTREDUCTION, - SPELLCOSTREDUCTION, - SPELLCOSTTOSTAMINA, + EXP_GAIN_MULT, + MASSACRE_DURATION, + SPELL_DAMAGE_MULTIPLIER, + MELEE_DAMAGE_INCREASE, + RANGED_DAMAGE_INCREASE, + BASE_SPELL_DAMAGE, + BASE_MELEE_DAMAGE, + BASE_RANGED_DAMAGE, + ALL_RECOVERY, + MOVEMENT_SPEED, + ATTACK_COST_REDUCTION, + SPELL_COST_REDUCTION, + SPELL_COST_TO_STAMINA, LESSERSTRENGTH, LESSERAGILITY, LESSERVITALITY, LESSERINTELLIGENCE, LESSERARMOR, - ENERGYPERSECOND, - PERCENTMAXIMUMLIFE, - PERCENTMAXIMUMENERGY, - COOLDOWNREDUCTION, - ENERGYONHIT, - MAGICFIND, // think about keeping this later + ENERGY_REGEN_BASE, + MAX_LIFE_MULT, + MAX_ENERGY_MULT, + COOLDOWN_REDUCTION, + ENERGY_ON_HIT, + LOOT_QUANTITY, // think about keeping this later ALL_ATTRIBUTES, - JUMPPOWER, + JUMP_POWER, THORNS }; @@ -188,13 +188,13 @@ public ItemTemplateBuilder Icon(int iconid) private readonly Stat[] magicStatIds = new Stat[] { INTELLIGENCE, - SPELLDAMAGEINCREASE, - BASESPELLDAMAGE, - SPELLCOSTREDUCTION, - ENERGYPERSECOND, - PERCENTMAXIMUMENERGY, - COOLDOWNREDUCTION, - SPELLDMGFROMINT + SPELL_DAMAGE_MULTIPLIER, + BASE_SPELL_DAMAGE, + SPELL_COST_REDUCTION, + ENERGY_REGEN_BASE, + MAX_ENERGY_MULT, + COOLDOWN_REDUCTION, + SPELL_DMG_FROM_INT }; public ItemTemplateBuilder MagicStatSlot(int n = 1) @@ -207,11 +207,11 @@ public ItemTemplateBuilder MagicStatSlot(int n = 1) private readonly Stat[] meleeStatIds = new Stat[] { STRENGTH, - MELEEDAMAGEINCREASE, - BASEMELEEDAMAGE, - MELEEDMGFROMSTR, - MELEEWEAPONRANGE, - MELEEARMORPIERCING, + MELEE_DAMAGE_INCREASE, + BASE_MELEE_DAMAGE, + MELEE_DMG_FROM_STR, + MELEE_WEAPON_RANGE, + MELEE_ARMOR_PIERCING, }; public ItemTemplateBuilder MeleeStatSlot(int n = 1) @@ -224,15 +224,15 @@ public ItemTemplateBuilder MeleeStatSlot(int n = 1) private readonly Stat[] rangedStatIds = new Stat[] { AGILITY, - RANGEDDAMAGEINCREASE, - BASERANGEDDAMAGE, - RANGEDDMGFROMAGI, - PROJECTILESPEED, - PROJECTILESIZE, - RANGEDARMORPIERCING, - HEADSHOTDAMAGE, - PIERCECHANCE, - SPEARDAMAGE, + RANGED_DAMAGE_INCREASE, + BASE_RANGED_DAMAGE, + RANGED_DMG_FROM_AGI, + PROJECTILE_SPEED, + PROJECTILE_SIZE, + RANGED_ARMOR_PIERCING, + HEADSHOT_DAMAGE_MULT, + PROJECTILE_PIERCE_CHANCE, + THROWN_SPEAR_DAMAGE, }; public ItemTemplateBuilder RangedStatSlot(int n = 1) @@ -247,11 +247,11 @@ public ItemTemplateBuilder RangedStatSlot(int n = 1) VITALITY, MAX_LIFE, DAMAGE_REDUCTION, - DODGECHANCE, + DODGE_CHANCE, ARMOR, - RESISTANCETOMAGIC, - MAXHEALTHFROMVIT, - PERCENTMAXIMUMLIFE, + ELITE_DAMAGE_REDUCTION, + MAX_HEALTH_FROM_VITALITY, + MAX_LIFE_MULT, BLOCK, THORNS, }; @@ -267,10 +267,10 @@ public ItemTemplateBuilder DefenseStatSlot(int n = 1) { LIFE_REGEN_BASE, LIFE_REGEN_MULT, - LIFEONHIT, - ALLHEALINGPERCENT, - ENERGYPERSECOND, - ENERGYONHIT, + LIFE_ON_HIT, + ALL_RECOVERY, + ENERGY_REGEN_BASE, + ENERGY_ON_HIT, STAMINA_REGEN_BASE, STAMINA_AND_ENERGY_REGEN_MULT, }; @@ -372,28 +372,28 @@ public class Shield : ItemTemplateBuilder DAMAGE_REDUCTION, CRIT_CHANCE, CRIT_DAMAGE, - LIFEONHIT, - DODGECHANCE, + LIFE_ON_HIT, + DODGE_CHANCE, ARMOR, - RESISTANCETOMAGIC, + ELITE_DAMAGE_REDUCTION, ATTACKSPEED, - MASSACREDURATION, - MELEEDAMAGEINCREASE, - BASEMELEEDAMAGE, - ALLHEALINGPERCENT, - MELEEWEAPONRANGE, - ATTACKCOSTREDUCTION, - SPELLCOSTREDUCTION, - SPELLCOSTTOSTAMINA, - ENERGYPERSECOND, - PERCENTMAXIMUMLIFE, - PERCENTMAXIMUMENERGY, - COOLDOWNREDUCTION, - ENERGYONHIT, + MASSACRE_DURATION, + MELEE_DAMAGE_INCREASE, + BASE_MELEE_DAMAGE, + ALL_RECOVERY, + MELEE_WEAPON_RANGE, + ATTACK_COST_REDUCTION, + SPELL_COST_REDUCTION, + SPELL_COST_TO_STAMINA, + ENERGY_REGEN_BASE, + MAX_LIFE_MULT, + MAX_ENERGY_MULT, + COOLDOWN_REDUCTION, + ENERGY_ON_HIT, BLOCK, - MELEEARMORPIERCING, + MELEE_ARMOR_PIERCING, THORNS, - SPEARDAMAGE, + THROWN_SPEAR_DAMAGE, }; private static List shieldStats = null; @@ -521,51 +521,51 @@ public class Amulet : ItemTemplateBuilder DAMAGE_REDUCTION, CRIT_CHANCE, CRIT_DAMAGE, - LIFEONHIT, - DODGECHANCE, + LIFE_ON_HIT, + DODGE_CHANCE, ARMOR, - RESISTANCETOMAGIC, + ELITE_DAMAGE_REDUCTION, ATTACKSPEED, - EXPGAIN, - MASSACREDURATION, - SPELLDAMAGEINCREASE, - MELEEDAMAGEINCREASE, - RANGEDDAMAGEINCREASE, - BASESPELLDAMAGE, - BASEMELEEDAMAGE, - BASERANGEDDAMAGE, - MAXENERGYFROMAGI, - MAXHEALTHFROMVIT, - SPELLDMGFROMINT, - MELEEDMGFROMSTR, - ALLHEALINGPERCENT, - MOVEMENTSPEED, - MELEEWEAPONRANGE, - ATTACKCOSTREDUCTION, - SPELLCOSTREDUCTION, - SPELLCOSTTOSTAMINA, - ENERGYPERSECOND, - PERCENTMAXIMUMLIFE, - PERCENTMAXIMUMENERGY, - COOLDOWNREDUCTION, - RANGEDDMGFROMAGI, - ENERGYONHIT, + EXP_GAIN_MULT, + MASSACRE_DURATION, + SPELL_DAMAGE_MULTIPLIER, + MELEE_DAMAGE_INCREASE, + RANGED_DAMAGE_INCREASE, + BASE_SPELL_DAMAGE, + BASE_MELEE_DAMAGE, + BASE_RANGED_DAMAGE, + MAX_ENERGY_FROM_AGILITY, + MAX_HEALTH_FROM_VITALITY, + SPELL_DMG_FROM_INT, + MELEE_DMG_FROM_STR, + ALL_RECOVERY, + MOVEMENT_SPEED, + MELEE_WEAPON_RANGE, + ATTACK_COST_REDUCTION, + SPELL_COST_REDUCTION, + SPELL_COST_TO_STAMINA, + ENERGY_REGEN_BASE, + MAX_LIFE_MULT, + MAX_ENERGY_MULT, + COOLDOWN_REDUCTION, + RANGED_DMG_FROM_AGI, + ENERGY_ON_HIT, BLOCK, - PROJECTILESPEED, - PROJECTILESIZE, - MELEEARMORPIERCING, - RANGEDARMORPIERCING, - ARMORPIERCING, + PROJECTILE_SPEED, + PROJECTILE_SIZE, + MELEE_ARMOR_PIERCING, + RANGED_ARMOR_PIERCING, + ARMOR_PIERCING, ALL_ATTRIBUTES, - HEADSHOTDAMAGE, - FIREDAMAGE, - CHANCEONHITTOSLOW, - CHANCEONHITTOBLEED, - CHANCEONHITTOWEAKEN, + HEADSHOT_DAMAGE_MULT, + FIRE_DAMAGE, + CHANCE_ON_HIT_TO_SLOW, + CHANCE_ON_HIT_TO_BLEED, + CHANCE_ON_HIT_TO_WEAKEN, THORNS, - PIERCECHANCE, - EXPLOSIONDAMAGE, - SPEARDAMAGE, + PROJECTILE_PIERCE_CHANCE, + EXPLOSION_DAMAGE, + THROWN_SPEAR_DAMAGE, }; @@ -611,26 +611,26 @@ public class Ring : ItemTemplateBuilder LIFE_REGEN_MULT, CRIT_CHANCE, CRIT_DAMAGE, - LIFEONHIT, + LIFE_ON_HIT, ATTACKSPEED, - EXPGAIN, - ALLHEALINGPERCENT, + EXP_GAIN_MULT, + ALL_RECOVERY, EXPERIENCE, - ATTACKCOSTREDUCTION, - SPELLCOSTREDUCTION, - SPELLCOSTTOSTAMINA, + ATTACK_COST_REDUCTION, + SPELL_COST_REDUCTION, + SPELL_COST_TO_STAMINA, LESSERSTRENGTH, LESSERAGILITY, LESSERVITALITY, LESSERINTELLIGENCE, - ENERGYPERSECOND, - PERCENTMAXIMUMLIFE, - PERCENTMAXIMUMENERGY, - COOLDOWNREDUCTION, - ENERGYONHIT, - PROJECTILESPEED, - PROJECTILESIZE, - MAGICFIND, + ENERGY_REGEN_BASE, + MAX_LIFE_MULT, + MAX_ENERGY_MULT, + COOLDOWN_REDUCTION, + ENERGY_ON_HIT, + PROJECTILE_SPEED, + PROJECTILE_SIZE, + LOOT_QUANTITY, ALL_ATTRIBUTES }; diff --git a/Items/StatActions.cs b/Items/StatActions.cs index f9c4083..61542a8 100644 --- a/Items/StatActions.cs +++ b/Items/StatActions.cs @@ -87,12 +87,12 @@ public static void RemoveStaminaRegen(float f) public static void AddEnergyRegen(float f) { - ModdedPlayer.Stats.energyRecoveryperSecond.Add(f); + ModdedPlayer.Stats.energyRecoveryBase.Add(f); } public static void RemoveEnergyRegen(float f) { - ModdedPlayer.Stats.energyRecoveryperSecond.Sub(f); + ModdedPlayer.Stats.energyRecoveryBase.Sub(f); } public static void AddStaminaRegenPercent(float f) @@ -147,12 +147,12 @@ public static void RemoveCritDamage(float f) public static void AddLifeOnHit(float f) { - ModdedPlayer.Stats.healthOnHit.Add(f); + ModdedPlayer.Stats.lifeOnHit.Add(f); } public static void RemoveLifeOnHit(float f) { - ModdedPlayer.Stats.healthOnHit.Sub(f); + ModdedPlayer.Stats.lifeOnHit.Sub(f); } public static void AddDodgeChance(float f) @@ -177,12 +177,12 @@ public static void RemoveArmor(float f) public static void AddEliteDamageReduction(float f) { - ModdedPlayer.Stats.damageFromElite.valueMultiplicative *= 1 - f; + ModdedPlayer.Stats.damageFromElites.valueMultiplicative *= 1 - f; } public static void RemoveEliteDamageReduction(float f) { - ModdedPlayer.Stats.damageFromElite.valueMultiplicative /= 1 - f; + ModdedPlayer.Stats.damageFromElites.valueMultiplicative /= 1 - f; } public static void AddAttackSpeed(float f) @@ -217,12 +217,12 @@ public static void RemoveMaxMassacreTime(float f) public static void AddSpellDamageAmplifier(float f) { - ModdedPlayer.Stats.spellIncreasedDmg.Add(f); + ModdedPlayer.Stats.spellDamageMult.Add(f); } public static void RemoveSpellDamageAmplifier(float f) { - ModdedPlayer.Stats.spellIncreasedDmg.Sub(f); + ModdedPlayer.Stats.spellDamageMult.Sub(f); } public static void AddMeleeDamageAmplifier(float f) @@ -247,32 +247,32 @@ public static void RemoveRangedDamageAmplifier(float f) public static void AddspellFlatDmg(float f) { - ModdedPlayer.Stats.spellFlatDmg.Add(f); + ModdedPlayer.Stats.baseSpellDamage.Add(f); } public static void RemovespellFlatDmg(float f) { - ModdedPlayer.Stats.spellFlatDmg.Sub(f); + ModdedPlayer.Stats.baseSpellDamage.Sub(f); } public static void AddMeleeDamageBonus(float f) { - ModdedPlayer.Stats.meleeFlatDmg.Add(f); + ModdedPlayer.Stats.baseMeleeDamage.Add(f); } public static void RemoveMeleeDamageBonus(float f) { - ModdedPlayer.Stats.meleeFlatDmg.Sub(f); + ModdedPlayer.Stats.baseMeleeDamage.Sub(f); } public static void AddRangedDamageBonus(float f) { - ModdedPlayer.Stats.rangedFlatDmg.Add(f); + ModdedPlayer.Stats.baseRangedDamage.Add(f); } public static void RemoveRangedDamageBonus(float f) { - ModdedPlayer.Stats.rangedFlatDmg.Sub(f); + ModdedPlayer.Stats.baseRangedDamage.Sub(f); } public static void AddmaxEnergyFromAgi(float f) @@ -367,12 +367,12 @@ public static void PERMANENT_expIncrease(float f) public static void AddMagicFind(float f) { - ModdedPlayer.Stats.magicFind.Add(f); + ModdedPlayer.Stats.magicFind_quantity.Add(f); } public static void RemoveMagicFind(float f) { - ModdedPlayer.Stats.magicFind.Sub(f); + ModdedPlayer.Stats.magicFind_quantity.Sub(f); } diff --git a/Player/BuffDataBase.cs b/Player/BuffDataBase.cs index d986dfc..ee72975 100644 --- a/Player/BuffDataBase.cs +++ b/Player/BuffDataBase.cs @@ -164,7 +164,7 @@ public static void FillBuffList() new Buff(17, 131, "Berserk", false, false, 1, f => Berserker.OnDisable(), f => Berserker.OnEnable()) { DisplayAmount = false }; - new Buff(18, 161, "Energy Leak", true, false, 1, f => ModdedPlayer.Stats.energyRecoveryperSecond.valueAdditive += f, f => ModdedPlayer.Stats.energyRecoveryperSecond.valueAdditive -= f) { DisplayAmount = false }; + new Buff(18, 161, "Energy Leak", true, false, 1, f => ModdedPlayer.Stats.energyRecoveryBase.valueAdditive += f, f => ModdedPlayer.Stats.energyRecoveryBase.valueAdditive -= f) { DisplayAmount = false }; new Buff(19, 136, "Frenzy", false, false, 1, f => { @@ -189,7 +189,7 @@ public static void FillBuffList() new Buff(21, 147, "Armor Corruption", true, true, 1, null, null) { DisplayAsPercent = false }; - new Buff(22, 151, "Increased Flat Melee Damage", false, false, 0, f => ModdedPlayer.Stats.meleeFlatDmg.Sub(f), f => ModdedPlayer.Stats.meleeFlatDmg.Add(f)) { DisplayAsPercent = false }; + new Buff(22, 151, "Increased Flat Melee Damage", false, false, 0, f => ModdedPlayer.Stats.baseMeleeDamage.Sub(f), f => ModdedPlayer.Stats.baseMeleeDamage.Add(f)) { DisplayAsPercent = false }; new Buff(23, 151, "Counter Strike", false, true, 0, f => ModdedPlayer.Stats.perk_parryCounterStrikeDamage.valueAdditive = 0) { DisplayAsPercent = false }; new Buff(24, 151, "Critical Damage", false, false, 0, f => ModdedPlayer.Stats.critDamage.Sub(f), f => ModdedPlayer.Stats.critDamage.Add(f)); new Buff(25, 146, "Life Regeneration", false, false, 0, f => ModdedPlayer.Stats.lifeRegenBase.Add(-f), f => ModdedPlayer.Stats.lifeRegenBase.Add(f)) { DisplayAsPercent = false }; @@ -197,9 +197,9 @@ public static void FillBuffList() new Buff(27, 136, "Fury Swipes", false, true, 1, f => { ModdedPlayer.instance.FurySwipesLastHit = null; - ModdedPlayer.Stats.rangedFlatDmg.valueAdditive -= ModdedPlayer.instance.FurySwipesDmg; - ModdedPlayer.Stats.spellFlatDmg.valueAdditive -= ModdedPlayer.instance.FurySwipesDmg; - ModdedPlayer.Stats.meleeFlatDmg.valueAdditive -= ModdedPlayer.instance.FurySwipesDmg; + ModdedPlayer.Stats.baseRangedDamage.valueAdditive -= ModdedPlayer.instance.FurySwipesDmg; + ModdedPlayer.Stats.baseSpellDamage.valueAdditive -= ModdedPlayer.instance.FurySwipesDmg; + ModdedPlayer.Stats.baseMeleeDamage.valueAdditive -= ModdedPlayer.instance.FurySwipesDmg; ModdedPlayer.instance.FurySwipesDmg = 0; }) { @@ -212,7 +212,7 @@ public static void FillBuffList() new Buff(30, 151, "Cooldown Rate", false, false, 0, f => ModdedPlayer.Stats.cooldownRate.Divide(f), f => ModdedPlayer.Stats.cooldownRate.Multiply(f)) { DisplayAsPercent = true }; new Buff(31, 151, "Resource Cost", false, false, 0, f => { ModdedPlayer.Stats.attackStaminaCost.Divide(f); ModdedPlayer.Stats.spellCost.Divide(f); }, f => { ModdedPlayer.Stats.attackStaminaCost.Multiply(f); ModdedPlayer.Stats.spellCost.Multiply(f); }) { DisplayAsPercent = true }; - new Buff(32, 161, "Energy Regen", false, false, 1, f => ModdedPlayer.Stats.energyRecoveryperSecond.valueAdditive -= f, f => ModdedPlayer.Stats.energyRecoveryperSecond.valueAdditive += f) { DisplayAmount = false }; + new Buff(32, 161, "Energy Regen", false, false, 1, f => ModdedPlayer.Stats.energyRecoveryBase.valueAdditive -= f, f => ModdedPlayer.Stats.energyRecoveryBase.valueAdditive += f) { DisplayAmount = false }; } catch (System.Exception ex) diff --git a/Player/Main Menu/MainMenu_Guide.cs b/Player/Main Menu/MainMenu_Guide.cs index 9011896..d781085 100644 --- a/Player/Main Menu/MainMenu_Guide.cs +++ b/Player/Main Menu/MainMenu_Guide.cs @@ -338,7 +338,7 @@ private void DrawGuide() Stat(Translations.MainMenu_Guide_13, ModdedPlayer.Stats.TotalMaxHealth.ToString(), Translations.MainMenu_Guide_14( - ModdedPlayer.ModdedPlayerStats.baseHealth, ModdedPlayer.Stats.maxHealthFromVit.GetAmount() * ModdedPlayer.Stats.vitality.GetAmount(), ModdedPlayer.Stats.maxLife.GetFormattedAmount(), ModdedPlayer.Stats.maxHealthMult.GetFormattedAmount())); + ModdedPlayer.ModdedPlayerStats.baseHealth, ModdedPlayer.Stats.maxHealthFromVit.GetAmount() * ModdedPlayer.Stats.vitality.GetAmount(), ModdedPlayer.Stats.maxLife.GetFormattedAmount(), ModdedPlayer.Stats.maxLifeMult.GetFormattedAmount())); Stat(Translations.MainMenu_Guide_15, ModdedPlayer.Stats.TotalMaxEnergy.ToString(), @@ -350,7 +350,7 @@ private void DrawGuide() Translations.MainMenu_Guide_18( ModReferences.DamageReduction(ModdedPlayer.Stats.armor.Value).ToString("P2"))); Stat("Reduced damage from Elites", - (1 - ModdedPlayer.Stats.damageFromElite.GetAmount()).ToString("P"), + (1 - ModdedPlayer.Stats.damageFromElites.GetAmount()).ToString("P"), "Decreases the damage taken from elite monsters and their abilities."); Stat(Translations.MainMenu_Guide_21, (1 - ModdedPlayer.Stats.getHitChance.GetAmount()).ToString("P"), @@ -375,10 +375,10 @@ private void DrawGuide() Translations.MainMenu_Guide_35( ModdedPlayer.Stats.energyRegenMult.GetAmount(), ModdedPlayer.Stats.staminaRegenBase.GetFormattedAmount())); - Stat(Translations.MainMenu_Guide_37, ModdedPlayer.Stats.energyRecoveryperSecond.GetAmount() * ModdedPlayer.Stats.TotalStaminaRecoveryMultiplier + "", Translations.MainMenu_Guide_36( ModdedPlayer.Stats.energyRecoveryperSecond.GetAmount(), ModdedPlayer.Stats.TotalStaminaRecoveryMultiplier)); + Stat(Translations.MainMenu_Guide_37, ModdedPlayer.Stats.energyRecoveryBase.GetAmount() * ModdedPlayer.Stats.TotalStaminaRecoveryMultiplier + "", Translations.MainMenu_Guide_36( ModdedPlayer.Stats.energyRecoveryBase.GetAmount(), ModdedPlayer.Stats.TotalStaminaRecoveryMultiplier)); Stat(Translations.MainMenu_Guide_39, ModdedPlayer.Stats.energyOnHit.GetAmount() * ModdedPlayer.Stats.TotalStaminaRecoveryMultiplier + "", Translations.MainMenu_Guide_38( ModdedPlayer.Stats.energyOnHit.GetAmount())); Stat(Translations.MainMenu_Guide_41, ModdedPlayer.Stats.lifeRegenBase.GetAmount() * (ModdedPlayer.Stats.lifeRegenMult.GetAmount()) * ModdedPlayer.Stats.allRecoveryMult.GetAmount() + "", Translations.MainMenu_Guide_40( ModdedPlayer.Stats.lifeRegenBase.GetAmount(), ModdedPlayer.Stats.lifeRegenMult.GetFormattedAmount(), ModdedPlayer.Stats.allRecoveryMult.GetAmount() - 1)); - Stat(Translations.MainMenu_Guide_43, ModdedPlayer.Stats.healthOnHit.GetAmount() * ModdedPlayer.Stats.allRecoveryMult.GetAmount() + "", Translations.MainMenu_Guide_42( ModdedPlayer.Stats.healthOnHit.GetAmount(), ModdedPlayer.Stats.allRecoveryMult.GetFormattedAmount(), ModdedPlayer.Stats.allRecoveryMult.GetAmount() - 1)); + Stat(Translations.MainMenu_Guide_43, ModdedPlayer.Stats.lifeOnHit.GetAmount() * ModdedPlayer.Stats.allRecoveryMult.GetAmount() + "", Translations.MainMenu_Guide_42( ModdedPlayer.Stats.lifeOnHit.GetAmount(), ModdedPlayer.Stats.allRecoveryMult.GetFormattedAmount(), ModdedPlayer.Stats.allRecoveryMult.GetAmount() - 1)); Space(60); Header(Translations.MainMenu_Guide_44); @@ -398,7 +398,7 @@ private void DrawGuide() Space(10); Stat(Translations.MainMenu_Guide_60, ModdedPlayer.Stats.MeleeDamageMult.ToString("P"), Translations.MainMenu_Guide_59( ModdedPlayer.Stats.strength.GetAmount() * ModdedPlayer.Stats.meleeDmgFromStr.GetAmount() * 100, (ModdedPlayer.Stats.meleeIncreasedDmg - 1).ToString("P"), (ModdedPlayer.Stats.allDamage - 1).ToString("P"))); - Stat(Translations.MainMenu_Guide_62, ModdedPlayer.Stats.meleeFlatDmg.GetFormattedAmount(), Translations.MainMenu_Guide_62); + Stat(Translations.MainMenu_Guide_62, ModdedPlayer.Stats.baseMeleeDamage.GetFormattedAmount(), Translations.MainMenu_Guide_62); Stat(Translations.MainMenu_Guide_63, ModdedPlayer.Stats.weaponRange.GetFormattedAmount()); Stat(Translations.MainMenu_Guide_64, ModdedPlayer.Stats.heavyAttackDmg.GetFormattedAmount()); @@ -408,7 +408,7 @@ private void DrawGuide() Space(10); Stat(Translations.MainMenu_Guide_67, ModdedPlayer.Stats.RangedDamageMult.ToString("P"), Translations.MainMenu_Guide_66( (ModdedPlayer.Stats.agility.GetAmount() * ModdedPlayer.Stats.rangedDmgFromAgi.GetAmount()).ToString("P"), (ModdedPlayer.Stats.rangedIncreasedDmg.GetAmount() - 1).ToString("P"), (ModdedPlayer.Stats.perk_projectileDamageIncreasedBySize.GetAmount() ? (ModdedPlayer.Stats.projectileSize.GetAmount() - 1) : 0f).ToString("P"), (ModdedPlayer.Stats.allDamage - 1).ToString("P"))); - Stat(Translations.MainMenu_Guide_69, ModdedPlayer.Stats.rangedFlatDmg.GetFormattedAmount(), Translations.MainMenu_Guide_69); + Stat(Translations.MainMenu_Guide_69, ModdedPlayer.Stats.baseRangedDamage.GetFormattedAmount(), Translations.MainMenu_Guide_69); Stat(Translations.MainMenu_Guide_71, ModdedPlayer.Stats.projectileSpeed.GetFormattedAmount(), Translations.MainMenu_Guide_71); Stat(Translations.MainMenu_Guide_73, ModdedPlayer.Stats.projectileSize.GetFormattedAmount(), Translations.MainMenu_Guide_73); Stat(Translations.MainMenu_Guide_75, ModdedPlayer.Stats.headShotDamage.GetFormattedAmount(), Translations.MainMenu_Guide_75); @@ -437,8 +437,8 @@ private void DrawGuide() Header(Translations.MainMenu_Guide_90); Space(10); - Stat(Translations.MainMenu_Guide_92, ModdedPlayer.Stats.TotalMagicDamageMultiplier.ToString("P"), Translations.MainMenu_Guide_91( (ModdedPlayer.Stats.intelligence.GetAmount() * ModdedPlayer.Stats.spellDmgFromInt.GetAmount()).ToString("P"), (ModdedPlayer.Stats.spellIncreasedDmg - 1).ToString("P"), (ModdedPlayer.Stats.allDamage - 1).ToString("P"))); - Stat(Translations.MainMenu_Guide_94, ModdedPlayer.Stats.spellFlatDmg.GetFormattedAmount(), Translations.MainMenu_Guide_94); + Stat(Translations.MainMenu_Guide_92, ModdedPlayer.Stats.TotalMagicDamageMultiplier.ToString("P"), Translations.MainMenu_Guide_91( (ModdedPlayer.Stats.intelligence.GetAmount() * ModdedPlayer.Stats.spellDmgFromInt.GetAmount()).ToString("P"), (ModdedPlayer.Stats.spellDamageMult - 1).ToString("P"), (ModdedPlayer.Stats.allDamage - 1).ToString("P"))); + Stat(Translations.MainMenu_Guide_94, ModdedPlayer.Stats.baseSpellDamage.GetFormattedAmount(), Translations.MainMenu_Guide_94); Stat(Translations.MainMenu_Guide_96, (1 - ModdedPlayer.Stats.spellCost.GetAmount()).ToString("P"), Translations.MainMenu_Guide_96); Stat(Translations.MainMenu_Guide_98, ModdedPlayer.Stats.SpellCostToStamina.ToString("P"), Translations.MainMenu_Guide_98); Stat(Translations.MainMenu_Guide_99, (1 - ModdedPlayer.Stats.cooldown.GetAmount()).ToString("P")); @@ -468,8 +468,8 @@ private void DrawGuide() Stat(Translations.MainMenu_Guide_122, ModdedPlayer.Stats.timeBonusPerKill.ToString() +"s", Translations.MainMenu_Guide_121); if (ModdedPlayer.Stats.perk_turboRaftOwners.GetAmount() > 0) Stat(Translations.MainMenu_Guide_124, ModdedPlayer.Stats.perk_RaftSpeedMultipier.ToString(), Translations.MainMenu_Guide_124); - Stat(Translations.MainMenu_Guide_126, ModdedPlayer.Stats.magicFind.Value.ToString("P"), Translations.MainMenu_Guide_126); - foreach (var mfStat in ModdedPlayer.Stats.magicFind.OtherPlayerValues) + Stat(Translations.MainMenu_Guide_126, ModdedPlayer.Stats.magicFind_quantity.Value.ToString("P"), Translations.MainMenu_Guide_126); + foreach (var mfStat in ModdedPlayer.Stats.magicFind_quantity.OtherPlayerValues) { Stat(mfStat.Key + Translations.MainMenu_Guide_128, mfStat.Value.ToString("P"), Translations.MainMenu_Guide_128); } diff --git a/Player/ModdedPlayer/ModdedPlayer.ModdedPlayerStats.cs b/Player/ModdedPlayer/ModdedPlayer.ModdedPlayerStats.cs index 5b6c51a..855793e 100644 --- a/Player/ModdedPlayer/ModdedPlayer.ModdedPlayerStats.cs +++ b/Player/ModdedPlayer/ModdedPlayer.ModdedPlayerStats.cs @@ -16,7 +16,7 @@ public class ModdedPlayerStats public readonly AdditivePlayerStat vitality; public readonly MultiOperationPlayerStat maxEnergyMult; public readonly AdditivePlayerStat maxEnergy; - public readonly MultiOperationPlayerStat maxHealthMult; + public readonly MultiOperationPlayerStat maxLifeMult; public readonly AdditivePlayerStat maxLife; public readonly AdditivePlayerStat meleeDmgFromStr; public readonly AdditivePlayerStat spellDmgFromInt; @@ -34,12 +34,12 @@ public class ModdedPlayerStats public readonly AdditivePlayerStat critChance; public readonly AdditivePlayerStat critDamage; - public readonly MultiOperationPlayerStat rangedFlatDmg; - public readonly MultiOperationPlayerStat meleeFlatDmg; - public readonly AdditivePlayerStat spellFlatDmg; + public readonly MultiOperationPlayerStat baseRangedDamage; + public readonly MultiOperationPlayerStat baseMeleeDamage; + public readonly AdditivePlayerStat baseSpellDamage; public readonly MultiOperationPlayerStat rangedIncreasedDmg; public readonly MultiOperationPlayerStat meleeIncreasedDmg; - public readonly MultiOperationPlayerStat spellIncreasedDmg; + public readonly MultiOperationPlayerStat spellDamageMult; public readonly AdditivePlayerStat meleeArmorPiercing; public readonly AdditivePlayerStat rangedArmorPiercing; public readonly AdditivePlayerStat thornsArmorPiercing; @@ -59,18 +59,19 @@ public class ModdedPlayerStats public readonly AdditivePlayerStat headShotDamage; public readonly MultiOperationPlayerStat allRecoveryMult; - public readonly AdditivePlayerStat healthOnHit; + public readonly AdditivePlayerStat lifeOnHit; public readonly AdditivePlayerStat staminaOnHit; public readonly AdditivePlayerStat energyOnHit; public readonly AdditivePlayerStat lifeRegenBase; public readonly AdditivePlayerStat energyRegenMult; - public readonly AdditivePlayerStat energyRecoveryperSecond; + public readonly AdditivePlayerStat energyRecoveryBase; public readonly MultiplicativePlayerStat allDamageTaken; - public readonly MultiplicativePlayerStat damageFromElite; + public readonly MultiplicativePlayerStat damageFromElites; public readonly MultiplicativePlayerStat fireDamageTaken; public readonly MultiplicativePlayerStat getHitChance; public readonly AdditivePlayerStat armor; + public readonly AdditivePlayerStat armorPerStrength; public readonly MultiplicativePlayerStat thornsDmgMult; public readonly AdditivePlayerStat thorns; public readonly AdditivePlayerStat thornsPerStrenght; @@ -95,7 +96,8 @@ public class ModdedPlayerStats public readonly BooleanPlayerStat silenced; public readonly BooleanPlayerStat rooted; public readonly BooleanPlayerStat stunned; - public readonly AdditiveNetworkSyncedPlayerStat magicFind; + public readonly AdditiveNetworkSyncedPlayerStat magicFind_quantity; + public readonly AdditiveNetworkSyncedPlayerStat magicFind_quality; public readonly AdditiveNetworkSyncedPlayerStat explosionDamage; public readonly AdditiveNetworkSyncedPlayerStat fireTickRate; public readonly AdditiveNetworkSyncedPlayerStat fireDuration; @@ -332,7 +334,7 @@ public ModdedPlayerStats() this.vitality = new AdditivePlayerStat(1, addint, substractint); this.maxEnergyMult = new MultiOperationPlayerStat(1, 1, addfloat, substractfloat, multfloat, dividefloat, "P0"); this.maxEnergy = new AdditivePlayerStat(0, addint, substractint); - this.maxHealthMult = new MultiOperationPlayerStat(1, 1, addfloat, substractfloat, multfloat, dividefloat, "P0"); + this.maxLifeMult = new MultiOperationPlayerStat(1, 1, addfloat, substractfloat, multfloat, dividefloat, "P0"); this.maxLife = new AdditivePlayerStat(0, addint, substractint); this.meleeDmgFromStr = new AdditivePlayerStat(0.0f, addfloat, substractfloat, "P0"); this.spellDmgFromInt = new AdditivePlayerStat(0.0f, addfloat, substractfloat, "P0"); @@ -351,12 +353,12 @@ public ModdedPlayerStats() this.critChance = new AdditivePlayerStat(0.05f, addfloat, substractfloat, "P1"); this.critDamage = new AdditivePlayerStat(0.5f, addfloat, substractfloat, "P0"); - this.rangedFlatDmg = new MultiOperationPlayerStat(0.0f, 1.0f, addfloat, substractfloat, multfloat, dividefloat); - this.meleeFlatDmg = new MultiOperationPlayerStat(0.0f,1.0f, addfloat, substractfloat, multfloat, dividefloat); - this.spellFlatDmg = new AdditivePlayerStat(0.0f, addfloat, substractfloat); + this.baseRangedDamage = new MultiOperationPlayerStat(0.0f, 1.0f, addfloat, substractfloat, multfloat, dividefloat); + this.baseMeleeDamage = new MultiOperationPlayerStat(0.0f,1.0f, addfloat, substractfloat, multfloat, dividefloat); + this.baseSpellDamage = new AdditivePlayerStat(0.0f, addfloat, substractfloat); this.rangedIncreasedDmg = new MultiOperationPlayerStat(1, 1, addfloat, substractfloat, multfloat, dividefloat, "P0"); this.meleeIncreasedDmg = new MultiOperationPlayerStat(1, 1, addfloat, substractfloat, multfloat, dividefloat, "P0"); - this.spellIncreasedDmg = new MultiOperationPlayerStat(1, 1, addfloat, substractfloat, multfloat, dividefloat, "P0"); + this.spellDamageMult = new MultiOperationPlayerStat(1, 1, addfloat, substractfloat, multfloat, dividefloat, "P0"); this.meleeArmorPiercing = new AdditivePlayerStat(0, addint, substractint); this.rangedArmorPiercing = new AdditivePlayerStat(0, addint, substractint); this.thornsArmorPiercing = new AdditivePlayerStat(0.0f, addfloat, substractfloat, "P0"); @@ -377,18 +379,19 @@ public ModdedPlayerStats() this.projectile_DamagePerDistance = new AdditivePlayerStat(0.00f, addfloat, substractfloat); this.allRecoveryMult = new MultiOperationPlayerStat(1,1, addfloat, substractfloat, multfloat, dividefloat, "P0"); - this.healthOnHit = new AdditivePlayerStat(0.0f, addfloat, substractfloat); + this.lifeOnHit = new AdditivePlayerStat(0.0f, addfloat, substractfloat); this.staminaOnHit = new AdditivePlayerStat(0.0f, addfloat, substractfloat); this.energyOnHit = new AdditivePlayerStat(0.0f, addfloat, substractfloat); this.lifeRegenBase = new AdditivePlayerStat(0.0f, addfloat, substractfloat); this.energyRegenMult = new AdditivePlayerStat(0.0f, addfloat, substractfloat); - this.energyRecoveryperSecond = new AdditivePlayerStat(0.0f, addfloat, substractfloat); + this.energyRecoveryBase = new AdditivePlayerStat(0.0f, addfloat, substractfloat); this.allDamageTaken = new MultiplicativePlayerStat(1, multfloat, dividefloat, "P0"); - this.damageFromElite = new MultiplicativePlayerStat(1, multfloat, dividefloat, "P0"); + this.damageFromElites = new MultiplicativePlayerStat(1, multfloat, dividefloat, "P0"); this.fireDamageTaken = new MultiplicativePlayerStat(1, multfloat, dividefloat, "P0"); this.getHitChance = new MultiplicativePlayerStat(1, multfloat, dividefloat, "P0"); this.armor = new AdditivePlayerStat(0, addint, substractint); + this.armorPerStrength = new AdditivePlayerStat(0.0f, addfloat, substractfloat); this.thornsDmgMult = new MultiplicativePlayerStat(1, multfloat, dividefloat, "P0"); this.thorns = new AdditivePlayerStat(0.0f, addfloat, substractfloat); this.thornsPerStrenght = new AdditivePlayerStat(0.0f, addfloat, substractfloat); @@ -414,7 +417,8 @@ public ModdedPlayerStats() this.rooted = new BooleanPlayerStat(false); this.stunned = new BooleanPlayerStat(false); - this.magicFind = new AdditiveNetworkSyncedPlayerStat(1.0f, addfloat, substractfloat, "P0"); + this.magicFind_quantity = new AdditiveNetworkSyncedPlayerStat(1.0f, addfloat, substractfloat, "P0"); + this.magicFind_quality = new AdditiveNetworkSyncedPlayerStat(1.0f, addfloat, substractfloat, "P0"); this.explosionDamage = new AdditiveNetworkSyncedPlayerStat(0.0f, addfloat, substractfloat, "N1"); this.fireTickRate = new AdditiveNetworkSyncedPlayerStat(0.0f, addfloat, substractfloat); this.fireDuration = new AdditiveNetworkSyncedPlayerStat(0.0f, addfloat, substractfloat); @@ -648,7 +652,7 @@ public float TotalMaxHealth get { float x = baseHealth + (vitality.Value * maxHealthFromVit.Value) + maxLife.Value; - x *= maxHealthMult; + x *= maxLifeMult; return x; } } @@ -666,13 +670,13 @@ public float TotalMagicDamageMultiplier get { float f = spellDmgFromInt.Value * intelligence.Value; - return (1 + f) * spellIncreasedDmg.Value * allDamage.Value; + return (1 + f) * spellDamageMult.Value * allDamage.Value; } } public float SpellCostToStamina => 1 - spellCostEnergyCost; public float TotalThorns => thorns.Value + thornsPerStrenght * strength.Value + thornsPerVit * vitality.Value; public float TotalThornsDamage => TotalThorns * thornsDmgMult.Value * meleeIncreasedDmg * allDamage; - public float TotalArmor => armor.Value - instance.lostArmor; + public float TotalArmor => armorPerStrength.Value * strength + armor.Value - instance.lostArmor; public float TotalStaminaRecoveryAmount => (baseStaminaRecovery + energyRegenMult) * TotalStaminaRecoveryMultiplier; public float TotalStaminaRecoveryMultiplier => 1 + (1 + intelligence * energyRecoveryFromInt) * allRecoveryMult * staminaRegenBase; public float TotalEnergyRecoveryMultiplier => 1 + (1 + intelligence * energyRecoveryFromInt) * allRecoveryMult * staminaRegenBase; @@ -680,7 +684,7 @@ public float TotalMagicDamageMultiplier public float MeleeDamageMult => allDamage.Value * meleeIncreasedDmg.Value * (1 + (strength * meleeDmgFromStr)); public float RangedDamageMult => allDamage.Value * rangedIncreasedDmg.Value * (1 + (agility * rangedDmgFromAgi)) * (perk_projectileDamageIncreasedBySize ? 1 + (projectileSize.Value - 1) : 1f); - public float SpellDamageMult => allDamage.Value * spellIncreasedDmg.Value * (1 + intelligence * spellDmgFromInt); + public float SpellDamageMult => allDamage.Value * spellDamageMult.Value * (1 + intelligence * spellDmgFromInt); public int TotalMeleeArmorPiercing => allArmorPiercing + meleeArmorPiercing; public int TotalRangedArmorPiercing => allArmorPiercing + rangedArmorPiercing; diff --git a/Player/ModdedPlayer/ModdedPlayer.cs b/Player/ModdedPlayer/ModdedPlayer.cs index 1990261..8afc1b8 100644 --- a/Player/ModdedPlayer/ModdedPlayer.cs +++ b/Player/ModdedPlayer/ModdedPlayer.cs @@ -396,7 +396,7 @@ private void Update() } if (dmgPerSecond != 0) { - dmgPerSecond *= stats.damageFromElite; + dmgPerSecond *= stats.damageFromElites; dmgPerSecond *= Stats.allDamageTaken; LocalPlayer.Stats.Health -= dmgPerSecond * Time.deltaTime; LocalPlayer.Stats.HealthTarget -= dmgPerSecond * Time.deltaTime * 2; @@ -727,8 +727,8 @@ public void OnGetHit() public void OnHit() { - LocalPlayer.Stats.HealthTarget +=stats.healthOnHit *stats.allRecoveryMult; - LocalPlayer.Stats.Health += stats.healthOnHit * stats.allRecoveryMult; + LocalPlayer.Stats.HealthTarget +=stats.lifeOnHit *stats.allRecoveryMult; + LocalPlayer.Stats.Health += stats.lifeOnHit * stats.allRecoveryMult; LocalPlayer.Stats.Energy += stats.energyOnHit * stats.TotalEnergyRecoveryMultiplier; LocalPlayer.Stats.Stamina += stats.staminaOnHit * Stats.TotalEnergyRecoveryMultiplier; SpellActions.OnFrenzyAttack(); @@ -822,18 +822,18 @@ public void OnHit_Ranged(Transform hit) if (hit == FurySwipesLastHit) { FurySwipesDmg += 10; - Stats.rangedFlatDmg.valueAdditive += 10; - Stats.spellFlatDmg.valueAdditive += 10; - Stats.meleeFlatDmg.valueAdditive += 10; + Stats.baseRangedDamage.valueAdditive += 10; + Stats.baseSpellDamage.valueAdditive += 10; + Stats.baseMeleeDamage.valueAdditive += 10; AddBuff(27, 98, 10, 60); } else { FurySwipesLastHit = hit; - Stats.rangedFlatDmg.valueAdditive -= FurySwipesDmg; - Stats.spellFlatDmg.valueAdditive -= FurySwipesDmg; - Stats.meleeFlatDmg.valueAdditive -= FurySwipesDmg; + Stats.baseRangedDamage.valueAdditive -= FurySwipesDmg; + Stats.baseSpellDamage.valueAdditive -= FurySwipesDmg; + Stats.baseMeleeDamage.valueAdditive -= FurySwipesDmg; FurySwipesDmg = 0; if (activeBuffs.ContainsKey(98)) activeBuffs[98].amount = 0; @@ -854,18 +854,18 @@ public void OnHit_Melee(Transform hit) if (hit == FurySwipesLastHit) { FurySwipesDmg += 100; - Stats.rangedFlatDmg.valueAdditive += 100; - Stats.spellFlatDmg.valueAdditive +=100; - Stats.meleeFlatDmg.valueAdditive += 100; + Stats.baseRangedDamage.valueAdditive += 100; + Stats.baseSpellDamage.valueAdditive +=100; + Stats.baseMeleeDamage.valueAdditive += 100; AddBuff(27, 98, 100, 60); } else { FurySwipesLastHit = hit; - Stats.rangedFlatDmg.valueAdditive -= FurySwipesDmg; - Stats.spellFlatDmg.valueAdditive -= FurySwipesDmg; - Stats.meleeFlatDmg.valueAdditive -= FurySwipesDmg; + Stats.baseRangedDamage.valueAdditive -= FurySwipesDmg; + Stats.baseSpellDamage.valueAdditive -= FurySwipesDmg; + Stats.baseMeleeDamage.valueAdditive -= FurySwipesDmg; FurySwipesDmg = 0; if (activeBuffs.ContainsKey(98)) activeBuffs[98].amount = 0; diff --git a/Player/Overrides/PlayerStatsEx.cs b/Player/Overrides/PlayerStatsEx.cs index 70488cf..ea1f1f9 100644 --- a/Player/Overrides/PlayerStatsEx.cs +++ b/Player/Overrides/PlayerStatsEx.cs @@ -551,7 +551,7 @@ protected override void Update() if (!LocalPlayer.FpCharacter.running && !(LocalPlayer.FpCharacter.recoveringFromRun > 0f)) { Stamina += ModdedPlayer.Stats.TotalStaminaRecoveryAmount * Time.deltaTime; - Energy += ModdedPlayer.Stats.energyRecoveryperSecond.Value * ModdedPlayer.Stats.TotalEnergyRecoveryMultiplier * Time.deltaTime; + Energy += ModdedPlayer.Stats.energyRecoveryBase.Value * ModdedPlayer.Stats.TotalEnergyRecoveryMultiplier * Time.deltaTime; } else if (LocalPlayer.FpCharacter.recoveringFromRun > 0f && Thirst < 1) { @@ -561,7 +561,7 @@ protected override void Update() else { Stamina = Energy; - Energy += ModdedPlayer.Stats.energyRecoveryperSecond.Value * ModdedPlayer.Stats.TotalEnergyRecoveryMultiplier * Time.deltaTime; + Energy += ModdedPlayer.Stats.energyRecoveryBase.Value * ModdedPlayer.Stats.TotalEnergyRecoveryMultiplier * Time.deltaTime; } if (CheckingBlood && Scene.SceneTracker.proxyAttackers.arrayList.Count > 0) { diff --git a/Player/Overrides/WeaponInfoMod.cs b/Player/Overrides/WeaponInfoMod.cs index 5fae8f3..86ff2bb 100644 --- a/Player/Overrides/WeaponInfoMod.cs +++ b/Player/Overrides/WeaponInfoMod.cs @@ -119,7 +119,7 @@ private bool COTFHit(Collider other) outputdmg = smashDamage; else outputdmg = weaponDamage; - outputdmg += ModdedPlayer.Stats.meleeFlatDmg + SpellActions.GetParryCounterStrikeDmg(); + outputdmg += ModdedPlayer.Stats.baseMeleeDamage + SpellActions.GetParryCounterStrikeDmg(); float critDmg = ModdedPlayer.Stats.RandomCritDamage; outputdmg *= critDmg * ModdedPlayer.Stats.MeleeDamageMult; @@ -227,7 +227,7 @@ private bool COTFHit(Collider other) if (ModdedPlayer.Stats.perk_fireDmgIncreaseOnHit) { int myID = 2000 + ModReferences.Players.IndexOf(LocalPlayer.GameObject); - float fireDmg = 1 + ModdedPlayer.Stats.spellFlatDmg / 3; + float fireDmg = 1 + ModdedPlayer.Stats.baseSpellDamage / 3; fireDmg *= ModdedPlayer.Stats.TotalMagicDamageMultiplier; fireDmg *= ModdedPlayer.Stats.fireDamage + 1; fireDmg *= 0.35f; @@ -316,7 +316,7 @@ private bool COTFHit(Collider other) if (ModdedPlayer.Stats.perk_fireDmgIncreaseOnHit) { int myID = 2000 + ModReferences.Players.IndexOf(LocalPlayer.GameObject); - float fireDmg = 1 + ModdedPlayer.Stats.spellFlatDmg / 3; + float fireDmg = 1 + ModdedPlayer.Stats.baseSpellDamage / 3; fireDmg *= ModdedPlayer.Stats.TotalMagicDamageMultiplier; fireDmg *= ModdedPlayer.Stats.fireDamage + 1; fireDmg *= 0.35f; @@ -356,7 +356,7 @@ private bool COTFHit(Collider other) ModdedPlayer.instance.OnHit(); ModdedPlayer.instance.OnHit_Melee(other.transform); - DamageMath.ReduceDamageToSendOverNet(2f * (WeaponDamage + ModdedPlayer.Stats.meleeFlatDmg + SpellActions.GetParryCounterStrikeDmg()) * ModdedPlayer.Stats.MeleeDamageMult * ModdedPlayer.Stats.RandomCritDamage, out int dmg, out int repetitions); + DamageMath.ReduceDamageToSendOverNet(2f * (WeaponDamage + ModdedPlayer.Stats.baseMeleeDamage + SpellActions.GetParryCounterStrikeDmg()) * ModdedPlayer.Stats.MeleeDamageMult * ModdedPlayer.Stats.RandomCritDamage, out int dmg, out int repetitions); HitPlayer hitPlayer = HitPlayer.Create(component3, EntityTargets.Everyone); hitPlayer.damage = dmg; diff --git a/Player/Overrides/XBArrowDamageMod.cs b/Player/Overrides/XBArrowDamageMod.cs index 874c32a..b7fe63d 100644 --- a/Player/Overrides/XBArrowDamageMod.cs +++ b/Player/Overrides/XBArrowDamageMod.cs @@ -28,7 +28,7 @@ protected override void Start() pierceCount = 0; //flat damage part - OutputDmg = damage + ModdedPlayer.Stats.rangedFlatDmg; + OutputDmg = damage + ModdedPlayer.Stats.baseRangedDamage; if (ModdedPlayer.Stats.spell_seekingArrow) { OutputDmg += ModdedPlayer.Stats.spell_seekingArrow_DamageBonus.Value; @@ -327,7 +327,7 @@ public override void CheckHit(Vector3 position, Transform target, bool isTrigger if (ModdedPlayer.Stats.perk_fireDmgIncreaseOnHit) { int myID = 1000 + ModReferences.Players.IndexOf(LocalPlayer.GameObject); - float dmg = 1 + ModdedPlayer.Stats.spellFlatDmg / 3; + float dmg = 1 + ModdedPlayer.Stats.baseSpellDamage / 3; dmg *= ModdedPlayer.Stats.TotalMagicDamageMultiplier; dmg *= ModdedPlayer.Stats.fireDamage + 1; dmg *= 0.3f; diff --git a/Player/Perks/PerkDatabase.cs b/Player/Perks/PerkDatabase.cs index 08e9ac2..2a9c8d3 100644 --- a/Player/Perks/PerkDatabase.cs +++ b/Player/Perks/PerkDatabase.cs @@ -185,7 +185,7 @@ public static void FillPerkList() }; new Perk() { - onApply = () => ModdedPlayer.Stats.meleeFlatDmg.valueAdditive += 5, + onApply = () => ModdedPlayer.Stats.baseMeleeDamage.valueAdditive += 5, category = PerkCategory.MeleeOffense, texture = null, unlockPath = new int[] { 0, 10 }, @@ -238,7 +238,7 @@ public static void FillPerkList() }; new Perk() { - onApply = () => ModdedPlayer.Stats.rangedFlatDmg.valueAdditive += 5, + onApply = () => ModdedPlayer.Stats.baseRangedDamage.valueAdditive += 5, category = PerkCategory.RangedOffense, texture = null, unlockPath = new int[] { 2 }, @@ -673,7 +673,7 @@ public static void FillPerkList() new Perk() { - onApply = () => ModdedPlayer.Stats.damageFromElite.Multiply(0.85f), + onApply = () => ModdedPlayer.Stats.damageFromElites.Multiply(0.85f), category = PerkCategory.Defense, unlockPath = new int[] { 29, 31 }, @@ -776,7 +776,7 @@ public static void FillPerkList() }; new Perk() { - onApply = () => ModdedPlayer.Stats.energyRecoveryperSecond.valueAdditive += 0.15f, + onApply = () => ModdedPlayer.Stats.energyRecoveryBase.valueAdditive += 0.15f, category = PerkCategory.Support, unlockPath = new int[] { 30 }, @@ -809,7 +809,7 @@ public static void FillPerkList() }; new Perk() { - onApply = () => ModdedPlayer.Stats.healthOnHit.valueAdditive += 1f, + onApply = () => ModdedPlayer.Stats.lifeOnHit.valueAdditive += 1f, category = PerkCategory.Support, unlockPath = new int[] { 40 }, @@ -1009,7 +1009,7 @@ public static void FillPerkList() }; new Perk() { - onApply = () => ModdedPlayer.Stats.spellFlatDmg.valueAdditive += 10, + onApply = () => ModdedPlayer.Stats.baseSpellDamage.valueAdditive += 10, category = PerkCategory.MagicOffense, unlockPath = new int[] { 1 }, @@ -1299,7 +1299,7 @@ public static void FillPerkList() }; new Perk() { - onApply = () => { ModdedPlayer.Stats.spellIncreasedDmg.Multiply(1.35f); ModdedPlayer.Stats.spellCost.Multiply(1.7f); }, + onApply = () => { ModdedPlayer.Stats.spellDamageMult.Multiply(1.35f); ModdedPlayer.Stats.spellCost.Multiply(1.7f); }, category = PerkCategory.MagicOffense, unlockPath = new int[] { 15, 55 }, @@ -1580,7 +1580,7 @@ public static void FillPerkList() }; new Perk() { - onApply = () => ModdedPlayer.Stats.spellIncreasedDmg.valueAdditive *= 1.7f, + onApply = () => ModdedPlayer.Stats.spellDamageMult.valueAdditive *= 1.7f, category = PerkCategory.MagicOffense, unlockPath = new int[] { 88 }, @@ -1982,7 +1982,7 @@ public static void FillPerkList() }; new Perk() { - onApply = () => ModdedPlayer.Stats.maxHealthMult.valueAdditive += 0.20f, + onApply = () => ModdedPlayer.Stats.maxLifeMult.valueAdditive += 0.20f, category = PerkCategory.Defense, unlockPath = new int[] { 29 }, @@ -2428,7 +2428,7 @@ public static void FillPerkList() new Perk() { - onApply = () => { ModdedPlayer.Stats.maxEnergyMult.Multiply(0.65f); ModdedPlayer.Stats.staminaRegenBase.Multiply(0.65f); ModdedPlayer.Stats.spellIncreasedDmg.Multiply(2); }, + onApply = () => { ModdedPlayer.Stats.maxEnergyMult.Multiply(0.65f); ModdedPlayer.Stats.staminaRegenBase.Multiply(0.65f); ModdedPlayer.Stats.spellDamageMult.Multiply(2); }, category = PerkCategory.MagicOffense, texture = null, unlockPath = new int[] { 89 }, @@ -2460,7 +2460,7 @@ public static void FillPerkList() }; new Perk() { - onApply = () => { ModdedPlayer.Stats.meleeFlatDmg.valueMultiplicative *= 0.5f; ModdedPlayer.Stats.rangedFlatDmg.valueMultiplicative *= 0.5f; ModdedPlayer.Stats.spellIncreasedDmg.Add(4f); }, + onApply = () => { ModdedPlayer.Stats.baseMeleeDamage.valueMultiplicative *= 0.5f; ModdedPlayer.Stats.baseRangedDamage.valueMultiplicative *= 0.5f; ModdedPlayer.Stats.spellDamageMult.Add(4f); }, category = PerkCategory.MagicOffense, texture = null, unlockPath = new int[] { 89 }, @@ -2622,7 +2622,7 @@ public static void FillPerkList() else new Perk() { - onApply = () => ModdedPlayer.Stats.magicFind.Add(0.15f), + onApply = () => ModdedPlayer.Stats.magicFind_quantity.Add(0.15f), category = PerkCategory.Utility, unlockPath = new int[] { 110 }, levelReq = 25, @@ -2751,7 +2751,7 @@ public static void FillPerkList() }; new Perk() { - onApply = () => { ModdedPlayer.Stats.energyOnHit.valueAdditive += 1f; ModdedPlayer.Stats.healthOnHit.valueAdditive += 1.5f; }, + onApply = () => { ModdedPlayer.Stats.energyOnHit.valueAdditive += 1f; ModdedPlayer.Stats.lifeOnHit.valueAdditive += 1.5f; }, category = PerkCategory.Support, unlockPath = new int[] { 44, 43 }, levelReq = 47, @@ -2826,7 +2826,7 @@ public static void FillPerkList() }; new Perk() { - onApply = () => ModdedPlayer.Stats.damageFromElite.Multiply(0.7f), + onApply = () => ModdedPlayer.Stats.damageFromElites.Multiply(0.7f), category = PerkCategory.Defense, unlockPath = new int[] { 35, 32 }, @@ -3379,7 +3379,7 @@ public static void FillPerkList() }; new Perk() { - onApply = () => ModdedPlayer.Stats.spellFlatDmg.Add(2022), + onApply = () => ModdedPlayer.Stats.baseSpellDamage.Add(2022), category = PerkCategory.MagicOffense, unlockPath = new int[] { 89 }, @@ -3461,8 +3461,8 @@ public static void FillPerkList() ModdedPlayer.Stats.thornsDmgMult.Multiply(3f); ModdedPlayer.Stats.thornsArmorPiercing.Add(3f); ModdedPlayer.Stats.allDamageTaken.Multiply(0.95f); - ModdedPlayer.Stats.meleeFlatDmg.Multiply(0.8f); - ModdedPlayer.Stats.rangedFlatDmg.Multiply(0.8f); + ModdedPlayer.Stats.baseMeleeDamage.Multiply(0.8f); + ModdedPlayer.Stats.baseRangedDamage.Multiply(0.8f); }, category = PerkCategory.Defense, unlockPath = new int[] { 89 }, diff --git a/Player/PlayerUtils.cs b/Player/PlayerUtils.cs index 10e1e36..c88cc86 100644 --- a/Player/PlayerUtils.cs +++ b/Player/PlayerUtils.cs @@ -18,7 +18,7 @@ internal static float GetPlayerMeleeDamageRating() dmg = cw.damage; } } - float dps = dmg + ModdedPlayer.Stats.meleeFlatDmg; + float dps = dmg + ModdedPlayer.Stats.baseMeleeDamage; dps *= ModdedPlayer.Stats.MeleeDamageMult; dps *= atkSpeed * ModdedPlayer.Stats.attackSpeed; dps *= 1 + (ModdedPlayer.Stats.critChance * ModdedPlayer.Stats.critDamage); @@ -40,7 +40,7 @@ internal static float GetPlayerRangedDamageRating() atkSpeed = 0.2f; } } - float dps = dmg + ModdedPlayer.Stats.rangedFlatDmg; + float dps = dmg + ModdedPlayer.Stats.baseRangedDamage; dps *= ModdedPlayer.Stats.RangedDamageMult; if (greatbow) dps *= 1.75f; @@ -51,7 +51,7 @@ internal static float GetPlayerRangedDamageRating() } internal static float GetPlayerSpellDamageRating() { - float dps = ModdedPlayer.Stats.spellFlatDmg +1; + float dps = ModdedPlayer.Stats.baseSpellDamage +1; dps *= ModdedPlayer.Stats.SpellDamageMult; return dps; diff --git a/Player/Spells/ActiveSpellManager.cs b/Player/Spells/ActiveSpellManager.cs index 5921546..8be963c 100644 --- a/Player/Spells/ActiveSpellManager.cs +++ b/Player/Spells/ActiveSpellManager.cs @@ -162,7 +162,7 @@ IEnumerator DealContinousDamage() } IEnumerator DealDamage() { - float dmg = 5 + ModdedPlayer.Stats.spellFlatDmg * ModdedPlayer.Stats.spell_snowstormDmgScaling; + float dmg = 5 + ModdedPlayer.Stats.baseSpellDamage * ModdedPlayer.Stats.spell_snowstormDmgScaling; dmg *= ModdedPlayer.Stats.SpellDamageMult; float crit = ModdedPlayer.Stats.RandomCritDamage; dmg *= crit; @@ -277,7 +277,7 @@ private IEnumerator CastAsync(int count) var posOffset = pos; if (i > 0) posOffset += 0.5f * right * (((i - 1) % 3) - 1); - float damage = ModdedPlayer.Stats.spellFlatDmg * ModdedPlayer.Stats.spell_fireboltDamageScaling + 27f + ModdedPlayer.instance.FurySwipesDmg; + float damage = ModdedPlayer.Stats.baseSpellDamage * ModdedPlayer.Stats.spell_fireboltDamageScaling + 27f + ModdedPlayer.instance.FurySwipesDmg; damage = damage * ModdedPlayer.Stats.SpellDamageMult * (1.1f + ModdedPlayer.Stats.fireDamage); damage = damage * ModdedPlayer.Stats.RandomCritDamage; //if (i > 0) @@ -492,7 +492,7 @@ void OnTriggerEnter(Collider other) if (crit > 1) { int myID = 3000 + ModReferences.Players.IndexOf(LocalPlayer.GameObject); - float fireDmg = 1 + ModdedPlayer.Stats.spellFlatDmg / 3; + float fireDmg = 1 + ModdedPlayer.Stats.baseSpellDamage / 3; fireDmg *= ModdedPlayer.Stats.TotalMagicDamageMultiplier; fireDmg *= ModdedPlayer.Stats.fireDamage + 1; using (System.IO.MemoryStream answerStream = new System.IO.MemoryStream()) @@ -531,7 +531,7 @@ void OnTriggerEnter(Collider other) if (ModdedPlayer.Stats.perk_fireDmgIncreaseOnHit) { //int myID = 3000 + ModReferences.Players.IndexOf(LocalPlayer.GameObject); - float fireDmg = 1 + ModdedPlayer.Stats.spellFlatDmg / 3; + float fireDmg = 1 + ModdedPlayer.Stats.baseSpellDamage / 3; fireDmg *= ModdedPlayer.Stats.TotalMagicDamageMultiplier; fireDmg *= ModdedPlayer.Stats.fireDamage + 1; progression.FireDebuff(3000, fireDmg, 14); diff --git a/Player/Spells/SpellActions.cs b/Player/Spells/SpellActions.cs index 5fc7701..dd8a49f 100644 --- a/Player/Spells/SpellActions.cs +++ b/Player/Spells/SpellActions.cs @@ -60,7 +60,7 @@ public static void DoBlink() { if (hit.transform.CompareTag("enemyCollide")) { - float dmg = ModdedPlayer.Stats.spell_blinkDamage + ModdedPlayer.Stats.spellFlatDmg* ModdedPlayer.Stats.spell_blinkDamageScaling; + float dmg = ModdedPlayer.Stats.spell_blinkDamage + ModdedPlayer.Stats.baseSpellDamage* ModdedPlayer.Stats.spell_blinkDamageScaling; dmg *= ModdedPlayer.Stats.TotalMagicDamageMultiplier; if (GameSetup.IsMpClient) { @@ -95,7 +95,7 @@ public static void DoBlink() { Effects.Sound_Effects.GlobalSFX.Play(Effects.Sound_Effects.GlobalSFX.SFX.Boom); var raycastHitExplosion = Physics.OverlapSphere(blinkPoint, (blinkPoint - t.position).magnitude / 4f); - float dmg = ModdedPlayer.Stats.spell_blinkDamage + LocalPlayer.Rigidbody.velocity.magnitude * ModdedPlayer.Stats.spellFlatDmg * ModdedPlayer.Stats.spell_blinkDamageScaling/7f; + float dmg = ModdedPlayer.Stats.spell_blinkDamage + LocalPlayer.Rigidbody.velocity.magnitude * ModdedPlayer.Stats.baseSpellDamage * ModdedPlayer.Stats.spell_blinkDamageScaling/7f; dmg *= ModdedPlayer.Stats.TotalMagicDamageMultiplier * ModdedPlayer.Stats.RandomCritDamage; foreach (var hitCollider in raycastHitExplosion) { @@ -159,7 +159,7 @@ public static void CreateHealingDome() Vector3 pos = LocalPlayer.Transform.position; float radius = 14f; float healing = (ModdedPlayer.Stats.lifeRegenBase * ModdedPlayer.Stats.lifeRegenBase * 10 + 43.5f)*ModdedPlayer.Stats.allRecoveryMult; - healing += ModdedPlayer.Stats.spellFlatDmg * ModdedPlayer.Stats.SpellDamageMult * 0.1f; + healing += ModdedPlayer.Stats.baseSpellDamage * ModdedPlayer.Stats.SpellDamageMult * 0.1f; using (System.IO.MemoryStream answerStream = new System.IO.MemoryStream()) { using (System.IO.BinaryWriter w = new System.IO.BinaryWriter(answerStream)) @@ -209,13 +209,13 @@ public static void BUFF_DivideAS(float f) public static void CastFlare() { Vector3 dir = LocalPlayer.Transform.position; - float dmg = ModdedPlayer.Stats.spell_flareDamage + ModdedPlayer.Stats.spellFlatDmg *ModdedPlayer.Stats.spell_flareDamageScaling; + float dmg = ModdedPlayer.Stats.spell_flareDamage + ModdedPlayer.Stats.baseSpellDamage *ModdedPlayer.Stats.spell_flareDamageScaling; dmg *= ModdedPlayer.Stats.TotalMagicDamageMultiplier ; float slow = ModdedPlayer.Stats.spell_flareSlow; float boost = ModdedPlayer.Stats.spell_flareBoost; float duration = ModdedPlayer.Stats.spell_flareDuration; float radius = ModdedPlayer.Stats.spell_flareRadius; - float Healing = ModdedPlayer.Stats.spell_flareHeal + ModdedPlayer.Stats.spellFlatDmg / 20 + (ModdedPlayer.Stats.lifeRegenBase*2) * ModdedPlayer.Stats.lifeRegenMult; + float Healing = ModdedPlayer.Stats.spell_flareHeal + ModdedPlayer.Stats.baseSpellDamage / 20 + (ModdedPlayer.Stats.lifeRegenBase*2) * ModdedPlayer.Stats.lifeRegenMult; Healing *= ModdedPlayer.Stats.TotalMagicDamageMultiplier; using (System.IO.MemoryStream answerStream = new System.IO.MemoryStream()) { @@ -276,7 +276,7 @@ public static void BlackHoleAim() public static void CreatePlayerBlackHole() { - float damage = (ModdedPlayer.Stats.spell_blackhole_damage + ModdedPlayer.Stats.spellFlatDmg * ModdedPlayer.Stats.spell_blackhole_damageScaling) * ModdedPlayer.Stats.TotalMagicDamageMultiplier; + float damage = (ModdedPlayer.Stats.spell_blackhole_damage + ModdedPlayer.Stats.baseSpellDamage * ModdedPlayer.Stats.spell_blackhole_damageScaling) * ModdedPlayer.Stats.TotalMagicDamageMultiplier; Transform t = Camera.main.transform; Vector3 point = Vector3.zero; @@ -355,9 +355,9 @@ public static void CallbackSparkOfLightAfterDarkness(Vector3 pos) public static void CastSustainShieldActive() { - float max = ModdedPlayer.Stats.spell_shieldMax + ModdedPlayer.Stats.spellFlatDmg; + float max = ModdedPlayer.Stats.spell_shieldMax + ModdedPlayer.Stats.baseSpellDamage; max *= ModdedPlayer.Stats.TotalMagicDamageMultiplier; - float gain = ModdedPlayer.Stats.spell_shieldPerSecond + ModdedPlayer.Stats.spellFlatDmg / 35; + float gain = ModdedPlayer.Stats.spell_shieldPerSecond + ModdedPlayer.Stats.baseSpellDamage / 35; gain *= ModdedPlayer.Stats.TotalMagicDamageMultiplier; ModdedPlayer.instance.damageAbsorbAmounts[1] = Mathf.Clamp(ModdedPlayer.instance.damageAbsorbAmounts[1] + Time.deltaTime * gain, 0, max); ShieldCastTime = Time.time; @@ -374,7 +374,7 @@ public static void CastSustainShieldPassive(bool on) { if (ShieldCastTime + ModdedPlayer.Stats.spell_shieldPersistanceLifetime < Time.time) { - float loss = Time.deltaTime * (ModdedPlayer.Stats.spell_shieldPerSecond + ModdedPlayer.Stats.spellFlatDmg / 5) * 5 * ModdedPlayer.Stats.spellFlatDmg; + float loss = Time.deltaTime * (ModdedPlayer.Stats.spell_shieldPerSecond + ModdedPlayer.Stats.baseSpellDamage / 5) * 5 * ModdedPlayer.Stats.baseSpellDamage; ModdedPlayer.instance.damageAbsorbAmounts[1] = Mathf.Max(0, ModdedPlayer.instance.damageAbsorbAmounts[1] - loss); } } @@ -573,7 +573,7 @@ public static void CastMagicArrow() } public static void CastMagicArrow(Vector3 pos, Vector3 dir) { - float damage = 55 + ModdedPlayer.Stats.spellFlatDmg * ModdedPlayer.Stats.spell_magicArrowDamageScaling + ModdedPlayer.Stats.rangedFlatDmg/ 2; + float damage = 55 + ModdedPlayer.Stats.baseSpellDamage * ModdedPlayer.Stats.spell_magicArrowDamageScaling + ModdedPlayer.Stats.baseRangedDamage/ 2; damage = damage * ModdedPlayer.Stats.TotalMagicDamageMultiplier * 2; if (ModdedPlayer.Stats.spell_magicArrowCrit) damage *= ModdedPlayer.Stats.RandomCritDamage; @@ -637,7 +637,7 @@ public static void SnapFreezeAim() public static void CastSnapFreeze() { Vector3 pos = LocalPlayer.Transform.position; - float dmg = 23 + ModdedPlayer.Stats.spellFlatDmg * ModdedPlayer.Stats.spell_snapDamageScaling; + float dmg = 23 + ModdedPlayer.Stats.baseSpellDamage * ModdedPlayer.Stats.spell_snapDamageScaling; dmg *= ModdedPlayer.Stats.TotalMagicDamageMultiplier; if (GameSetup.IsSinglePlayer) { @@ -671,7 +671,7 @@ public static void CastSnapFreeze() public static void CastBallLightning(Vector3 pos, Vector3 speed) { - float dmg = ModdedPlayer.Stats.spell_ballLightning_Damage + (ModdedPlayer.Stats.spell_ballLightning_DamageScaling * ModdedPlayer.Stats.spellFlatDmg); + float dmg = ModdedPlayer.Stats.spell_ballLightning_Damage + (ModdedPlayer.Stats.spell_ballLightning_DamageScaling * ModdedPlayer.Stats.baseSpellDamage); dmg *= ModdedPlayer.Stats.TotalMagicDamageMultiplier; if (ModdedPlayer.Stats.spell_ballLightning_Crit) dmg *= ModdedPlayer.Stats.RandomCritDamage; @@ -944,10 +944,10 @@ public static void DoParry(Vector3 parryPos) if (ModdedPlayer.Stats.spell_parry) { BuffDB.AddBuff(6, 61, 1, ModdedPlayer.Stats.spell_parryBuffDuration); - float dmg = ModdedPlayer.Stats.spell_parryDamage + ModdedPlayer.Stats.spellFlatDmg; + float dmg = ModdedPlayer.Stats.spell_parryDamage + ModdedPlayer.Stats.baseSpellDamage; dmg *= ModdedPlayer.Stats.TotalMagicDamageMultiplier *ModdedPlayer.Stats.spell_parryDamageScaling; - float heal = ModdedPlayer.Stats.spell_parryHeal + ModdedPlayer.Stats.spellFlatDmg / 6 + ModdedPlayer.Stats.lifeRegenBase + ModdedPlayer.Stats.healthOnHit * 3; + float heal = ModdedPlayer.Stats.spell_parryHeal + ModdedPlayer.Stats.baseSpellDamage / 6 + ModdedPlayer.Stats.lifeRegenBase + ModdedPlayer.Stats.lifeOnHit * 3; heal *= ModdedPlayer.Stats.allRecoveryMult * (1 + ModdedPlayer.Stats.lifeRegenMult); LocalPlayer.Stats.HealthTarget += heal; ParrySound.Play(parryPos); @@ -1025,7 +1025,7 @@ public static void CastCataclysm() { Vector3 pos = LocalPlayer.Transform.position; BuffDB.AddBuff(1, 66, 0.025f, 2f); - float dmg = ModdedPlayer.Stats.spell_cataclysmDamage + ModdedPlayer.Stats.spellFlatDmg * ModdedPlayer.Stats.spell_cataclysmDamageScaling; + float dmg = ModdedPlayer.Stats.spell_cataclysmDamage + ModdedPlayer.Stats.baseSpellDamage * ModdedPlayer.Stats.spell_cataclysmDamageScaling; dmg *= ModdedPlayer.Stats.TotalMagicDamageMultiplier * ModdedPlayer.Stats.fireDamage; using (System.IO.MemoryStream answerStream = new System.IO.MemoryStream()) { @@ -1060,7 +1060,7 @@ public static void CastBloodInfArr() takenHP = LocalPlayer.Stats.Health - 5; LocalPlayer.Stats.Health -= takenHP; LocalPlayer.Stats.HealthTarget -= takenHP; - ModdedPlayer.Stats.spell_bia_AccumulatedDamage.valueAdditive = (takenHP * ModdedPlayer.Stats.spell_bia_HealthDmMult + ModdedPlayer.Stats.spell_bia_SpellDmMult * ModdedPlayer.Stats.spellFlatDmg) * ModdedPlayer.Stats.TotalMagicDamageMultiplier; + ModdedPlayer.Stats.spell_bia_AccumulatedDamage.valueAdditive = (takenHP * ModdedPlayer.Stats.spell_bia_HealthDmMult + ModdedPlayer.Stats.spell_bia_SpellDmMult * ModdedPlayer.Stats.baseSpellDamage) * ModdedPlayer.Stats.TotalMagicDamageMultiplier; if (ModdedPlayer.Stats.spell_bia_TripleDmg) { ModdedPlayer.Stats.spell_bia_AccumulatedDamage.valueAdditive *= 3; @@ -1103,7 +1103,7 @@ public static void RipAFatOne() back.y -= 1.5f; back.Normalize(); LocalPlayer.Rigidbody.AddForce(-back * 5, ForceMode.VelocityChange); - float dmg = (ModdedPlayer.Stats.spellFlatDmg * ModdedPlayer.Stats.spell_fartDamageScaling + fartBaseDmg) * ModdedPlayer.Stats.TotalMagicDamageMultiplier; + float dmg = (ModdedPlayer.Stats.baseSpellDamage * ModdedPlayer.Stats.spell_fartDamageScaling + fartBaseDmg) * ModdedPlayer.Stats.TotalMagicDamageMultiplier; if (GameSetup.IsMultiplayer) { System.IO.MemoryStream memoryStream = new System.IO.MemoryStream(); @@ -1134,7 +1134,7 @@ public static void RipAFatOne() } else { - float dmg = (ModdedPlayer.Stats.spellFlatDmg + fartBaseDmg) * ModdedPlayer.Stats.TotalMagicDamageMultiplier; + float dmg = (ModdedPlayer.Stats.baseSpellDamage + fartBaseDmg) * ModdedPlayer.Stats.TotalMagicDamageMultiplier; BuffDB.AddBuff(1, 96, 0.4f, 7.175f); TheFartCreator.FartWarmup(fartRadius, dmg, fartKnockback, fartSlow, fartDebuffDuration); } From ffb63d9b6a7d6f4493f74aabb83884d33d7c5552 Mon Sep 17 00:00:00 2001 From: "Hazard (Cyprian Skrzypczak)" Date: Mon, 14 Apr 2025 19:57:02 +0200 Subject: [PATCH 10/27] Tweaked base item and item classes --- Fun/Cheats.cs | 2 +- Items/BaseItem.cs | 246 +- Items/Item.cs | 305 ++- Items/ItemDataBase.cs | 16 +- Items/ItemDataBase_Loot.cs | 4 +- .../ItemDataBase_ItemDefinitions.cs | 2136 ++++++++--------- Items/ItemPickUp.cs | 12 +- Items/ItemTemplates.cs | 52 +- Items/PickUpManager.cs | 12 +- ModSettings.cs | 4 + Network/CommandReader.cs | 6 +- Network/NetworkManager.cs | 8 +- Player/Crafting/CraftingIngredient.cs | 4 +- Player/Crafting/Empowering.cs | 4 +- Player/Crafting/IndividualRerolling.cs | 21 +- Player/Crafting/Polishing.cs | 12 +- Player/Crafting/Reforging.cs | 4 +- Player/Crafting/Rerolling.cs | 2 +- Player/Inventory.cs | 40 +- Player/Main Menu/MainMenu.cs | 4 +- Player/Main Menu/MainMenu_Hints.cs | 2 +- Player/Main Menu/MainMenu_Inventory.cs | 80 +- Player/ModdedPlayer/ModdedPlayer.cs | 16 +- Player/PlayerUtils.cs | 6 +- Serializer.cs | 17 +- 25 files changed, 1443 insertions(+), 1572 deletions(-) diff --git a/Fun/Cheats.cs b/Fun/Cheats.cs index ec45b4a..9ca03b4 100644 --- a/Fun/Cheats.cs +++ b/Fun/Cheats.cs @@ -197,7 +197,7 @@ private void _cotfspawnitem(string param) private void _cotfspawnitembyname(string param) { - var matches = ItemDataBase.ItemBases.Where(x => x.Value.name.ToLower().StartsWith(param)).Select(x => x.Value.ID).ToArray(); + var matches = ItemDataBase.ItemBases.Where(x => x.Value.name.ToLower().StartsWith(param)).Select(x => x.Value.id).ToArray(); if (matches.Length > 0) { CotfCheats.CotfItem(matches[0], ModdedPlayer.instance.level); diff --git a/Items/BaseItem.cs b/Items/BaseItem.cs index 59af41e..df20b30 100644 --- a/Items/BaseItem.cs +++ b/Items/BaseItem.cs @@ -8,231 +8,107 @@ namespace ChampionsOfForest { public class BaseItem { - public enum ItemType + public class StatSlot { - Shield, Quiver, Weapon, Other, Material, Helmet, Boot, Pants, ChestArmor, ShoulderArmor, Glove, Bracer, Amulet, Ring, SpellScroll + public float chance; + public List options; + public StatSlot(List options, float chance = 1) + { + this.chance = chance; + this.options = options; + } } - public delegate void OnItemEquip(); - - public delegate void OnItemUnequip(); + public enum ItemType + { + Other, Shield, Quiver, Weapon, Material, Helmet, Boot, Pants, ChestArmor, ShoulderArmor, Glove, Bracer, Amulet, Ring, SpellScroll, SocketableGem + } + public enum Rarity + { + Common = 0, Uncommon, Rare, Magic, Legendary + } + public enum ItemSubtype + { + None, GreatSword, LongSword, Hammer, Polearm, Axe, Greatbow, + RangedSocketable, MeleeSocketable, MagicSocketable, SupportSocketable, DefenseSocketable, UtilitySocketable, + }; + public delegate void OnItemUsed(); public delegate bool OnItemConsume(Item other); - public List> PossibleStats; - public int rarity = 0; //rarity to display in different color - public int ID = 0; //the id of an item - public int StackSize = 1; //how many items can be placed in one item slot? - public bool CanConsume = false; //can you eat this bad boy? - public ItemType type = ItemType.Weapon; //determines on which inv slot can this item be placed in - - public enum WeaponModelType { None, GreatSword, LongSword, Hammer, Polearm, Axe, Greatbow }; - public WeaponModelType weaponModel = WeaponModelType.None; - public OnItemEquip onEquip; - public OnItemUnequip onUnequip; - public OnItemConsume onConsume; - public string name; //name of item, - public string description; //what is this item basically - public string lore; //some cool story to make this item have any sense, or a place for a joke - public string uniqueStat; //what should be displayed in the tooltip of this item - public int level = 1; //level of this item + public int id = 0; + public Rarity rarity = 0; + public ItemType type = ItemType.Other; + public ItemSubtype subtype = ItemSubtype.None; + + public bool canConsume = false; + public OnItemConsume onConsumeCallback; + public OnItemUsed onEquipCallback, onUnequipCallback; + public List statSlots; + public int maximumSocketSlots; + + // display properties of the item + public string name; + public string description; + public string lore; + public string uniqueStat; + public Texture2D icon; public int minLevel = 1; public int maxLevel = 1; - public Texture2D icon; //icon of this item - public bool PickUpAll = true; //should the item be picked one by one, or grab all at once - public int subtype = 0; + + public int stackSize = 1; + public bool PickUpAll = true; //Drop settings public EnemyProgression.Enemy lootTable = EnemyProgression.Enemy.All; - + public int lootWeight = 1; //weight of the item in loot table, used to calculate drop chance + public BaseItem() { + statSlots = new List(); } - private readonly int[] commonstatIds = new int[] - { - 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,21,22,23,24,25,26,31,34,35,36,37,38,39,40,41,42,43,44,45,46,47,49,50,51,52,53,54,55,56,57,59,60,61,62,63,64,65,66,67 - }; - public BaseItem(params int[][] possibleStats) - { - PossibleStats = new List>(); - foreach (int[] a in possibleStats) - { - List list = new List(); - foreach (int statID in a) - { - if (statID == 0) - { - list.Add(null); - } - else if (statID == -1) - { - foreach (int c in commonstatIds) - { - list.Add(new ItemStat(ItemDataBase.Stats[c])); - } - } - else - { - list.Add(new ItemStat(ItemDataBase.Stats[statID])); - } - } - PossibleStats.Add(list); - } - ID = ItemDataBase._Item_Bases.Count; - ItemDataBase._Item_Bases.Add(this); - } - - public BaseItem(params ItemDataBase.Stat[][] possibleStats) - { - PossibleStats = new List>(); - foreach (var statRow in possibleStats) - { - List list = new List(); - foreach (var stat in statRow) - { - int statID = (int)stat; - if (statID == 0) - { - list.Add(null); - } - else if (statID == -1) - { - foreach (int c in commonstatIds) - { - list.Add(new ItemStat(ItemDataBase.Stats[c])); - } - } - else - { - list.Add(new ItemStat(ItemDataBase.Stats[statID])); - } - } - PossibleStats.Add(list); - } - ID = ItemDataBase._Item_Bases.Count; - ItemDataBase._Item_Bases.Add(this); - } - - public BaseItem(List> possibleStats, int rarity, int StackSize, ItemType itemType, string name, string description, string lore, string tooltip, int minlevel, int maxlevel, Texture2D texture, bool pickupAll = false) - { - PossibleStats = possibleStats; - this.rarity = rarity; - ID = ItemDataBase._Item_Bases.Count; - this.StackSize = StackSize; - type = itemType; - PickUpAll = pickupAll; - this.name = name; - this.description = description; - this.lore = lore; - this.uniqueStat = tooltip; - this.minLevel = minlevel; - this.maxLevel = maxlevel; - LootsFromAssignDefault(); - ItemDataBase._Item_Bases.Add(this); - icon = texture; - } - - public BaseItem(int[][] possibleStats, int rarity, int StackSize, ItemType itemType, string name, string description, string lore, string tooltip, int minlevel, int maxlevel, Texture2D texture, bool pickupAll = false) - { - PossibleStats = new List>(); - foreach (int[] a in possibleStats) - { - List list = new List(); - foreach (int b in a) - { - list.Add(b == 0 ? null : ItemDataBase.Stats[b]); - } - PossibleStats.Add(list); - } - this.rarity = rarity; - ID = ItemDataBase._Item_Bases.Count; - this.StackSize = StackSize; - type = itemType; - PickUpAll = pickupAll; - this.name = name; - this.description = description; - this.lore = lore; - this.uniqueStat = tooltip; - this.minLevel = minlevel; - this.maxLevel = maxlevel; - LootsFromAssignDefault(); - ItemDataBase._Item_Bases.Add(this); - icon = texture; - } - - public BaseItem(int[][] possibleStats, int rarity, int iD, int StackSize, WeaponModelType weaponModel, string name, string description, string lore, string tooltip, int minlevel, int maxlevel, Texture2D texture, bool pickupAll = false) - { - PossibleStats = new List>(); - foreach (int[] a in possibleStats) - { - List list = new List(); - foreach (int b in a) - { - list.Add(b == 0 ? null : ItemDataBase.Stats[b]); - } - PossibleStats.Add(list); - } - this.rarity = rarity; - ID = iD; - this.StackSize = StackSize; - type = ItemType.Weapon; - this.weaponModel = weaponModel; - PickUpAll = pickupAll; - this.name = name; - this.description = description; - this.lore = lore; - this.uniqueStat = tooltip; - this.minLevel = minlevel; - this.maxLevel = maxlevel; - LootsFromAssignDefault(); - ItemDataBase._Item_Bases.Add(this); - icon = texture; - } - /// - /// set to this by default - /// - private void LootsFromAssignDefault() + private void SetDropFromEverything() { //Lootable from everything lootTable = (EnemyProgression.Enemy)0b1111111111111111111111; } //Sets the item to drop from only a specyfic group of enemies - public void DropSettings_OnlyArmsy() + public void SetDropOnlyArmsy() { lootTable = EnemyProgression.Enemy.RegularArmsy | EnemyProgression.Enemy.PaleArmsy; } - public void DropSettings_OnlyVags() + public void SetDropOnlyVags() { lootTable = EnemyProgression.Enemy.PaleVags | EnemyProgression.Enemy.RegularVags; } - public void DropSettings_OnlyCow() + public void SetDropOnlyCow() { lootTable = EnemyProgression.Enemy.Cowman; } - public void DropSettings_OnlyBaby() + public void SetDropOnlyBaby() { lootTable = EnemyProgression.Enemy.Baby; } - public void DropSettings_OnlyMegan() + public void SetDropOnlyMegan() { lootTable = EnemyProgression.Enemy.Megan; } - public void DropSettings_OnlyCreepy() + public void SetDropOnlyCreepy() { lootTable = EnemyProgression.Enemy.RegularArmsy | EnemyProgression.Enemy.PaleArmsy | EnemyProgression.Enemy.RegularVags | EnemyProgression.Enemy.PaleVags | EnemyProgression.Enemy.Cowman | EnemyProgression.Enemy.Baby | EnemyProgression.Enemy.Girl | EnemyProgression.Enemy.Worm | EnemyProgression.Enemy.Megan; } - public void DropSettings_OnlyCannibals() + public void SetDropOnlyCannibals() { lootTable = EnemyProgression.Enemy.NormalMale | EnemyProgression.Enemy.NormalLeaderMale | EnemyProgression.Enemy.NormalFemale | EnemyProgression.Enemy.NormalSkinnyMale | EnemyProgression.Enemy.NormalSkinnyFemale | EnemyProgression.Enemy.PaleMale | EnemyProgression.Enemy.PaleSkinnyMale | EnemyProgression.Enemy.PaleSkinnedMale | EnemyProgression.Enemy.PaleSkinnedSkinnyMale | EnemyProgression.Enemy.PaintedMale | EnemyProgression.Enemy.PaintedLeaderMale | EnemyProgression.Enemy.PaintedFemale | EnemyProgression.Enemy.Fireman; @@ -247,19 +123,19 @@ public GlobalSFX.SFX GetInvSound() case ItemType.Quiver: return GlobalSFX.SFX.Invlarm; case ItemType.Weapon: - switch (weaponModel) + switch (subtype) { - case WeaponModelType.GreatSword: + case ItemSubtype.GreatSword: return GlobalSFX.SFX.Invharm; - case WeaponModelType.LongSword: + case ItemSubtype.LongSword: return GlobalSFX.SFX.Invsword; - case WeaponModelType.Hammer: + case ItemSubtype.Hammer: return GlobalSFX.SFX.Invanvl; - case WeaponModelType.Polearm: + case ItemSubtype.Polearm: return GlobalSFX.SFX.Invstaf; - case WeaponModelType.Axe: + case ItemSubtype.Axe: return GlobalSFX.SFX.Invaxe; - case WeaponModelType.Greatbow: + case ItemSubtype.Greatbow: return GlobalSFX.SFX.Invbow; default: return GlobalSFX.SFX.Invharm; @@ -302,7 +178,7 @@ public int GetDropSoundID() public float GetInvSoundPitch() { - return 1.15f - (float)rarity / 15f; + return 1.00f - (float)rarity / 12f; } } } \ No newline at end of file diff --git a/Items/Item.cs b/Items/Item.cs index a9a43e4..03f9aa6 100644 --- a/Items/Item.cs +++ b/Items/Item.cs @@ -1,4 +1,5 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using System.Linq; using ChampionsOfForest.Items; @@ -13,16 +14,19 @@ namespace ChampionsOfForest { public class Item : BaseItem { - public int Amount; - public bool Equipped; - public List Stats = new List(); - + public int level; + public int stackedAmount; + public bool isEquipped; + public List stats = new List(); + public int currentEmptySockets; + public int currentMaxEmptySockets; + + #region Grouping stats of the same id private Dictionary groupedStats; - private void GroupStats() { var grouped = new Dictionary>(); - foreach (var stat in Stats) + foreach (var stat in stats) { if (grouped.ContainsKey(stat.id)) grouped[stat.id].Add(stat.amount); @@ -35,44 +39,65 @@ private void GroupStats() groupedStats.Add(group.Key, ItemDataBase.StatByID(group.Key).EvaluateTotalIncrease(group.Value)); } } - public Dictionary GetGroupedStats() { - if (Stats.Count == 0) + if (stats.Count == 0) return null; if (groupedStats == null) GroupStats(); return groupedStats; } + #endregion + + public bool HasEmptySocket => currentEmptySockets > 0; + + public bool PlaceItemInSocket(Item other) + { + if (other == null) + return false; + if (other.type == ItemType.SocketableGem + && HasEmptySocket) + { + if (other.onConsumeCallback.Invoke(this)) + { + //item was successfully socketed + currentEmptySockets--; + return true; + } + } + return false; + } + // called when another item is dragged and dropped on top of this item public bool CombineItems(Item other) { - //if other is a socketable item + // if other is a material + // materials can be used to upgrade items, reroll their values, etc if (other.type == ItemType.Material) { - if (other.onConsume != null) + if (other.onConsumeCallback != null) { - if (Equipped) + if (isEquipped) OnUnequip(); - bool returnval = other.onConsume.Invoke(this); + bool returnval = other.onConsumeCallback.Invoke(this); OnEquip(); return returnval; } - else if (this.Stats.Any(x => x.id == 3000)) - { - if (Equipped) - { - OnUnequip(); - } - - int statindex = Stats.FindIndex(x => x.id == 3000); - Stats[statindex] = StatActions.GetSocketedStat(other.rarity, this.type, other.subtype); + } + else if (other.type == ItemType.SocketableGem) + { + bool wasEquipped = isEquipped; + if (isEquipped) + OnUnequip(); + PlaceItemInSocket(other); + if (wasEquipped) OnEquip(); - return true; - } + + return true; } + return false; } @@ -246,181 +271,153 @@ public Item() /// /// creates a item based on a BaseItem object, rolls values /// - public Item(BaseItem b, int amount = 1, int increasedLevel = 0, bool roll = true) - { - base.description = b.description; - base.minLevel = b.minLevel; - base.maxLevel = b.maxLevel; - if (increasedLevel != -1) - { - base.level = Random.Range(minLevel, maxLevel + 1) + increasedLevel; - } - else - { - int averageLevel; - if (GameSetup.IsMultiplayer) - { - int sum = ModReferences.PlayerLevels.Values.Sum(); - int count = ModReferences.PlayerLevels.Values.Count; + //public Item(BaseItem b, int amount = 1, int increasedLevel = 0, bool roll = true) + //{ + // base.description = b.description; + // base.minLevel = b.minLevel; + // base.maxLevel = b.maxLevel; + // if (increasedLevel != -1) + // { + // this.level = Random.Range(minLevel, maxLevel + 1) + increasedLevel; + // } + // else + // { + // int averageLevel; + // if (GameSetup.IsMultiplayer) + // { + // int sum = ModReferences.PlayerLevels.Values.Sum(); + // int count = ModReferences.PlayerLevels.Values.Count; + + // if (!ModSettings.IsDedicated) + // { + // sum += ModdedPlayer.instance.level; + // count++; + // } + // else + // { + // //ModAPI.Log.Write("Is dedicated server bool set to true."); + // } + // sum = Mathf.Max(1, sum); + // count = Mathf.Max(1, count); + // sum /= count; + // averageLevel = sum; + // } + // else + // { + // averageLevel = ModdedPlayer.instance.level; + // } + // averageLevel = Mathf.Max(1, averageLevel); + // base.level = averageLevel; + // } + // base.lore = b.lore; + // base.name = b.name; + // base.onEquipCallback = b.onEquipCallback; + // base.onUnequipCallback = b.onUnequipCallback; + // base.statSlots = b.statSlots; + // base.rarity = b.rarity; + // base.uniqueStat = b.uniqueStat; + // base.id = b.id; + // base.type = b.type; + // base.stackSize = b.stackSize; + // base.icon = b.icon; + // base.onConsumeCallback = b.onConsumeCallback; + // base.canConsume = b.canConsume; + // base.subtype = b.subtype; + // base.lootTable = b.lootTable; + // this.stackedAmount = amount; + // isEquipped = false; + // stats = new List(); + // if (roll) + // { + // RollStats(); + // } + //} + // TODO MAKE A CONSTRUCTOR FOR ITEMS FROM BASE ITEMS + - if (!ModSettings.IsDedicated) - { - sum += ModdedPlayer.instance.level; - count++; - } - else - { - //ModAPI.Log.Write("Is dedicated server bool set to true."); - } - sum = Mathf.Max(1, sum); - count = Mathf.Max(1, count); - sum /= count; - averageLevel = sum; - } - else - { - averageLevel = ModdedPlayer.instance.level; - } - averageLevel = Mathf.Max(1, averageLevel); - base.level = averageLevel; - } - base.lore = b.lore; - base.name = b.name; - base.onEquip = b.onEquip; - base.onUnequip = b.onUnequip; - base.PossibleStats = b.PossibleStats; - base.rarity = b.rarity; - base.uniqueStat = b.uniqueStat; - base.ID = b.ID; - base.type = b.type; - base.StackSize = b.StackSize; - base.icon = b.icon; - base.onConsume = b.onConsume; - base.CanConsume = b.CanConsume; - base.weaponModel = b.weaponModel; - base.lootTable = b.lootTable; - base.subtype = b.subtype; - Amount = amount; - Equipped = false; - Stats = new List(); - if (roll) - { - RollStats(); - } - } public float GetRarityMultiplier() { - switch (rarity) - { - case 0: - return 0.5f; - - case 1: - return 0.7f; - - case 2: - return 1f; - - case 3: - return 1.4f; - - case 4: - return 2.3f; - - case 5: - return 3.4f; - - case 6: - return 4.5f; - - case 7: - return 5.6f; - } - return 1; + return Mathf.Pow(1.3f, (int)rarity); } + public bool isEquippable => destinationSlotID < -1; //rolls 'amount' on every item stat on this object public void RollStats() { groupedStats = null; - Stats.Clear(); - int i = 0; - foreach (List PS in PossibleStats) + stats.Clear(); + float rarityMult = GetRarityMultiplier(); + + for (int i = 0; i < statSlots.Count; i++) { - int random = Random.Range(0, PS.Count); - if (PS[random] != null) + StatSlot statSlot = statSlots[i]; + + if (UnityEngine.Random.value <= statSlot.chance) { - ItemStat stat = new ItemStat(PS[random], level); - stat.amount *= GetRarityMultiplier(); - if (stat.valueCap != 0) + // roll a random stat from pool + int selected = Random.Range(0, statSlot.options.Count); + + ItemStat newstat = new ItemStat(statSlot.options[selected], level, i, rarityMult); + //if (stats.Any(stat => stat.id == newstat.id)) // if stats should be grouped + //{ + // stats.First(stat => stat.id == newstat.id).amount += newstat.amount; + //} + //else { - stat.amount = Mathf.Min(stat.amount, stat.valueCap); + stats.Add(newstat); } - stat.possibleStatsIndex = i; - Stats.Add(stat); } - i++; } - - if (this.destinationSlotID < -1 && this.level > 20 && Random.value <= 0.175f) + } + public void RollSockets() + { + if (isEquippable && level >= ModSettings.MinimumLevelForSocketsToAppear && Random.value <= ModSettings.ChanceForFirstSocketToAppear) { - var socketAmount = StatActions.GetMaxSocketAmountOnItem(this.type); - if (socketAmount > 0) + int socketAmount = 1; + + while (Random.value <= ModSettings.ChanceForSubsequentSocketsToAppear && socketAmount < maximumSocketSlots) { - socketAmount = Random.Range(1, socketAmount + 1); - for (int j = 0; j < socketAmount; j++) - { - Stats.Add(new ItemStat(ItemDataBase.StatByID(3000))); - } + socketAmount++; } + + currentMaxEmptySockets = socketAmount; + currentEmptySockets = socketAmount; + } - SortStats(); - } - public void SortStats() - { - Stats = Stats.OrderBy(x => -x.rarity).ToList(); } public void OnEquip() { - Equipped = true; - foreach (ItemStat item in Stats) + isEquipped = true; + foreach (ItemStat item in stats) { if (item.amount != 0) { item.OnEquip?.Invoke(item.amount); } } - onEquip?.Invoke(); + onEquipCallback?.Invoke(); } public void OnUnequip() { - Equipped = false; - foreach (ItemStat item in Stats) + isEquipped = false; + foreach (ItemStat item in stats) { if (item.amount != 0) { item.OnUnequip(item.amount); } } - onUnequip?.Invoke(); + onUnequipCallback?.Invoke(); } public bool OnConsume() { - if (CanConsume) + if (canConsume) { - onEquip?.Invoke(); - foreach (ItemStat item in Stats) - { - if (item.amount != 0) - { - item.OnConsume(item.amount); - } - } - return true; + return onConsumeCallback.Invoke(this); } return false; } diff --git a/Items/ItemDataBase.cs b/Items/ItemDataBase.cs index fe402f7..0dadafc 100644 --- a/Items/ItemDataBase.cs +++ b/Items/ItemDataBase.cs @@ -41,14 +41,14 @@ public static void Initialize() { try { - ItemBases.Add(_Item_Bases[i].ID, _Item_Bases[i]); + ItemBases.Add(_Item_Bases[i].id, _Item_Bases[i]); if (ItemRarityGroups.ContainsKey(_Item_Bases[i].rarity)) { - ItemRarityGroups[_Item_Bases[i].rarity].Add(_Item_Bases[i].ID); + ItemRarityGroups[_Item_Bases[i].rarity].Add(_Item_Bases[i].id); } else { - ItemRarityGroups.Add(_Item_Bases[i].rarity, new List() { _Item_Bases[i].ID }); + ItemRarityGroups.Add(_Item_Bases[i].rarity, new List() { _Item_Bases[i].id }); } } catch (System.Exception ex) @@ -83,7 +83,7 @@ public static void LogInfo() s += " • Rarity tier of item [" + i + "] = " + items.Length; foreach (BaseItem a in items) { - s += "\n\t • Item \"" + a.name + " ID [" + a.ID + "]\""; + s += "\n\t • Item \"" + a.name + " ID [" + a.id + "]\""; } s += "\n"; } @@ -105,7 +105,7 @@ public static void LogInfo() foreach (BaseItem a in items) { - s += "\n\t • Item \"" + a.name + " ID [" + a.ID + "] RARITY [" + a.rarity + "]\""; + s += "\n\t • Item \"" + a.name + " ID [" + a.id + "] RARITY [" + a.rarity + "]\""; } s += "\n"; } @@ -125,7 +125,7 @@ public static void LogInfo() { for (int j = 1; j <= (int)BaseItem.WeaponModelType.Greatbow; j++) { - var weapons = itemsByType.Where(a => a.weaponModel == (BaseItem.WeaponModelType)j).OrderBy(a => a.ID + a.rarity * 100000); + var weapons = itemsByType.Where(a => a.subtype == (BaseItem.WeaponModelType)j).OrderBy(a => a.id + a.rarity * 100000); f.WriteLine(((BaseItem.WeaponModelType)j) + ";" + weapons.Count()); f.WriteLine("ID;RARITY;NAME;UNIQUE STAT;MIN LEVEL; MIN STATS QUANTITY;MAX STATS QUANTITY"); foreach (var weapon in weapons) @@ -139,11 +139,11 @@ public static void LogInfo() } else { - itemsByType = itemsByType.OrderBy(a => a.ID + a.rarity * 100000); + itemsByType = itemsByType.OrderBy(a => a.id + a.rarity * 100000); f.WriteLine("ID;RARITY;NAME;UNIQUE STAT;MIN LEVEL; MIN STATS QUANTITY;MAX STATS QUANTITY"); foreach (var item in itemsByType) { - f.WriteLine(item.ID + ";" + item.rarity + ";" + item.name + ";" + item.uniqueStat + " ;" + item.minLevel + ";" + item.PossibleStats.Count(y => !y.Contains(null)) + ";" + item.PossibleStats.Count); + f.WriteLine(item.id + ";" + item.rarity + ";" + item.name + ";" + item.uniqueStat + " ;" + item.minLevel + ";" + item.statSlots.Count(y => !y.Contains(null)) + ";" + item.statSlots.Count); } f.WriteLine(" "); diff --git a/Items/ItemDataBase_Loot.cs b/Items/ItemDataBase_Loot.cs index a10f448..dcc8062 100644 --- a/Items/ItemDataBase_Loot.cs +++ b/Items/ItemDataBase_Loot.cs @@ -115,7 +115,7 @@ public static Item GetRandomItem(float Worth, Vector3 pos) Item item = new Item(ItemBases[itemIdPool[randomID]]); item.level = level; - if (item.ID == 42 || item.ID == 103 || item.type == BaseItem.ItemType.Material) + if (item.id == 42 || item.id == 103 || item.type == BaseItem.ItemType.Material) item.level = 1; item.RollStats(); return item; @@ -157,7 +157,7 @@ public static Item GetRandomItem(float Worth, EnemyProgression.Enemy killedEnemy Item item = new Item(ItemBases[itemIdPool[randomID]]); item.level = level; - if (item.ID == 42 || item.ID == 103 || item.type == BaseItem.ItemType.Material) + if (item.id == 42 || item.id == 103 || item.type == BaseItem.ItemType.Material) item.level = 1; item.RollStats(); return item; diff --git a/Items/ItemDefinitions/ItemDataBase_ItemDefinitions.cs b/Items/ItemDefinitions/ItemDataBase_ItemDefinitions.cs index 9544a74..6ef5901 100644 --- a/Items/ItemDefinitions/ItemDataBase_ItemDefinitions.cs +++ b/Items/ItemDefinitions/ItemDataBase_ItemDefinitions.cs @@ -29,8 +29,8 @@ public static void PopulateItems() rarity = 0, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Boot, icon = Res.ResourceLoader.GetTexture(85), }; @@ -48,8 +48,8 @@ public static void PopulateItems() rarity = 0, minLevel = 1, maxLevel = 2, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Boot, icon = Res.ResourceLoader.GetTexture(85), }; @@ -67,8 +67,8 @@ public static void PopulateItems() rarity = 1, minLevel = 1, maxLevel = 6, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Boot, icon = Res.ResourceLoader.GetTexture(85), }; @@ -86,8 +86,8 @@ public static void PopulateItems() rarity = 2, minLevel = 7, maxLevel = 12, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Boot, icon = Res.ResourceLoader.GetTexture(85), }; @@ -106,8 +106,8 @@ public static void PopulateItems() rarity = 3, minLevel = 4, maxLevel = 9, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Boot, icon = Res.ResourceLoader.GetTexture(85), }; @@ -126,8 +126,8 @@ public static void PopulateItems() rarity = 4, minLevel = 10, maxLevel = 14, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Boot, icon = Res.ResourceLoader.GetTexture(85), }; @@ -148,11 +148,11 @@ public static void PopulateItems() rarity = 6, minLevel = 5, maxLevel = 8, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Boot, icon = Res.ResourceLoader.GetTexture(85), - }.DropSettings_OnlyArmsy(); + }.SetDropOnlyArmsy(); new BaseItem(new int[][] { new int[] {42,0 }, @@ -166,8 +166,8 @@ public static void PopulateItems() rarity = 0, minLevel = 1, maxLevel = 2, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Glove, icon = Res.ResourceLoader.GetTexture(86), }; @@ -185,8 +185,8 @@ public static void PopulateItems() rarity = 1, minLevel = 1, maxLevel = 2, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Glove, icon = Res.ResourceLoader.GetTexture(86), }; @@ -205,8 +205,8 @@ public static void PopulateItems() rarity = 3, minLevel = 1, maxLevel = 2, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Glove, icon = Res.ResourceLoader.GetTexture(86), }; @@ -226,8 +226,8 @@ public static void PopulateItems() rarity = 4, minLevel = 1, maxLevel = 4, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Glove, icon = Res.ResourceLoader.GetTexture(86), }; @@ -243,8 +243,8 @@ public static void PopulateItems() rarity = 0, minLevel = 1, maxLevel = 4, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Pants, icon = Res.ResourceLoader.GetTexture(87), }; @@ -261,8 +261,8 @@ public static void PopulateItems() rarity = 1, minLevel = 1, maxLevel = 4, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Pants, icon = Res.ResourceLoader.GetTexture(87), }; @@ -279,8 +279,8 @@ public static void PopulateItems() rarity = 0, minLevel = 1, maxLevel = 4, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.ChestArmor, icon = Res.ResourceLoader.GetTexture(96), }; @@ -299,8 +299,8 @@ public static void PopulateItems() rarity = 1, minLevel = 4, maxLevel = 7, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.ChestArmor, icon = Res.ResourceLoader.GetTexture(96), }; @@ -318,8 +318,8 @@ public static void PopulateItems() rarity = 1, minLevel = 4, maxLevel = 8, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.ChestArmor, icon = Res.ResourceLoader.GetTexture(96), }; @@ -337,8 +337,8 @@ public static void PopulateItems() rarity = 2, minLevel = 7, maxLevel = 9, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.ChestArmor, icon = Res.ResourceLoader.GetTexture(96), }; @@ -357,12 +357,12 @@ public static void PopulateItems() rarity = 4, minLevel = 1, maxLevel = 5, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.ChestArmor, icon = Res.ResourceLoader.GetTexture(96), }; - baseItem1.PossibleStats[1][0].multipier = 2.5f; + baseItem1.statSlots[1][0].multipier = 2.5f; new BaseItem(new int[][] { new int[] {5 }, @@ -379,8 +379,8 @@ public static void PopulateItems() rarity = 3, minLevel = 7, maxLevel = 8, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.ChestArmor, icon = Res.ResourceLoader.GetTexture(96), }; @@ -400,8 +400,8 @@ public static void PopulateItems() rarity = 5, minLevel = 7, maxLevel = 9, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.ChestArmor, icon = Res.ResourceLoader.GetTexture(96), }; @@ -424,8 +424,8 @@ public static void PopulateItems() rarity = 6, minLevel = 5, maxLevel = 6, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.ChestArmor, icon = Res.ResourceLoader.GetTexture(96), }; @@ -451,12 +451,12 @@ public static void PopulateItems() rarity = 7, minLevel = 15, maxLevel = 20, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.ChestArmor, icon = Res.ResourceLoader.GetTexture(96), - onEquip = () => ModdedPlayer.Stats.spell_cataclysmArcane.value = true, - onUnequip = () => ModdedPlayer.Stats.spell_cataclysmArcane.value = false + onEquipCallback = () => ModdedPlayer.Stats.spell_cataclysmArcane.value = true, + onUnequipCallback = () => ModdedPlayer.Stats.spell_cataclysmArcane.value = false }; new BaseItem(new int[][] { @@ -472,10 +472,10 @@ public static void PopulateItems() rarity = 3, minLevel = 13, maxLevel = 15, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.LongSword, + subtype = BaseItem.WeaponModelType.LongSword, icon = Res.ResourceLoader.GetTexture(89), }; new BaseItem(new int[][] @@ -494,10 +494,10 @@ public static void PopulateItems() rarity = 4, minLevel = 20, maxLevel = 27, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.LongSword, + subtype = BaseItem.WeaponModelType.LongSword, icon = Res.ResourceLoader.GetTexture(89), }; new BaseItem(new int[][] @@ -518,10 +518,10 @@ public static void PopulateItems() rarity = 6, minLevel = 50, maxLevel = 52, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.GreatSword, + subtype = BaseItem.WeaponModelType.GreatSword, icon = Res.ResourceLoader.GetTexture(88), }; new BaseItem(new int[][] @@ -542,10 +542,10 @@ public static void PopulateItems() rarity = 6, minLevel = 60, maxLevel = 61, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.GreatSword, + subtype = BaseItem.WeaponModelType.GreatSword, icon = Res.ResourceLoader.GetTexture(88), }; new BaseItem(new int[][] @@ -570,12 +570,12 @@ public static void PopulateItems() rarity = 7, minLevel = 5, maxLevel = 8, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Quiver, icon = Res.ResourceLoader.GetTexture(98), - onEquip = () => { ModdedPlayer.Stats.i_SmokeyCrossbowQuiver.value = true; ModdedPlayer.Stats.perk_crossbowDamageMult.Multiply(5); }, - onUnequip = () => + onEquipCallback = () => { ModdedPlayer.Stats.i_SmokeyCrossbowQuiver.value = true; ModdedPlayer.Stats.perk_crossbowDamageMult.Multiply(5); }, + onUnequipCallback = () => { ModdedPlayer.Stats.i_SmokeyCrossbowQuiver.value = false; ModdedPlayer.Stats.perk_crossbowDamageMult.Divide(5); @@ -593,8 +593,8 @@ public static void PopulateItems() rarity = 0, minLevel = 1, maxLevel = 2, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Shield, icon = Res.ResourceLoader.GetTexture(99), }; @@ -612,8 +612,8 @@ public static void PopulateItems() rarity = 1, minLevel = 3, maxLevel = 6, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Shield, icon = Res.ResourceLoader.GetTexture(99), }; @@ -632,8 +632,8 @@ public static void PopulateItems() rarity = 3, minLevel = 5, maxLevel = 8, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Shield, icon = Res.ResourceLoader.GetTexture(99), }; @@ -647,8 +647,8 @@ public static void PopulateItems() rarity = 0, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.ShoulderArmor, icon = Res.ResourceLoader.GetTexture(95), }; @@ -662,8 +662,8 @@ public static void PopulateItems() rarity = 1, minLevel = 2, maxLevel = 5, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.ShoulderArmor, icon = Res.ResourceLoader.GetTexture(95), }; @@ -685,12 +685,12 @@ public static void PopulateItems() rarity = 7, minLevel = 5, maxLevel = 9, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.ShoulderArmor, icon = Res.ResourceLoader.GetTexture(95), - onEquip = () => { ModdedPlayer.Stats.spell_blinkRange.Add(40); ModdedPlayer.Stats.spell_blinkDamage.Add(60); }, - onUnequip = () => { ModdedPlayer.Stats.spell_blinkRange.Sub(40); ModdedPlayer.Stats.spell_blinkDamage.Sub(60); }, + onEquipCallback = () => { ModdedPlayer.Stats.spell_blinkRange.Add(40); ModdedPlayer.Stats.spell_blinkDamage.Add(60); }, + onUnequipCallback = () => { ModdedPlayer.Stats.spell_blinkRange.Sub(40); ModdedPlayer.Stats.spell_blinkDamage.Sub(60); }, }; new BaseItem(new int[][] { @@ -705,8 +705,8 @@ public static void PopulateItems() rarity = 1, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Helmet, icon = Res.ResourceLoader.GetTexture(91), }; @@ -732,8 +732,8 @@ public static void PopulateItems() rarity = 6, minLevel = 10, maxLevel = 11, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Helmet, icon = Res.ResourceLoader.GetTexture(91), }; @@ -746,8 +746,8 @@ public static void PopulateItems() rarity = 0, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Ring, icon = Res.ResourceLoader.GetTexture(90), }; @@ -761,8 +761,8 @@ public static void PopulateItems() rarity = 1, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Ring, icon = Res.ResourceLoader.GetTexture(90), }; @@ -779,8 +779,8 @@ public static void PopulateItems() rarity = 3, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Ring, icon = Res.ResourceLoader.GetTexture(90), }; @@ -795,8 +795,8 @@ public static void PopulateItems() rarity = 1, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(100), }; @@ -810,8 +810,8 @@ public static void PopulateItems() rarity = 0, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Bracer, icon = Res.ResourceLoader.GetTexture(93), }; @@ -826,8 +826,8 @@ public static void PopulateItems() rarity = 1, minLevel = 3, maxLevel = 10, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Bracer, icon = Res.ResourceLoader.GetTexture(93), }; @@ -843,8 +843,8 @@ public static void PopulateItems() rarity = 2, minLevel = 4, maxLevel = 10, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Bracer, icon = Res.ResourceLoader.GetTexture(94), }; @@ -858,8 +858,8 @@ public static void PopulateItems() rarity = 7, minLevel = 1, maxLevel = 3, - CanConsume = true, - StackSize = 100, + canConsume = true, + stackSize = 100, type = BaseItem.ItemType.Other, icon = Res.ResourceLoader.GetTexture(105), }; @@ -873,8 +873,8 @@ public static void PopulateItems() rarity = 5, minLevel = 1, maxLevel = 6, - CanConsume = true, - StackSize = 1, + canConsume = true, + stackSize = 1, type = BaseItem.ItemType.Other, icon = Res.ResourceLoader.GetTexture(105), }; @@ -893,8 +893,8 @@ public static void PopulateItems() rarity = 4, minLevel = 10, maxLevel = 16, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Ring, icon = Res.ResourceLoader.GetTexture(90), }; @@ -913,8 +913,8 @@ public static void PopulateItems() rarity = 4, minLevel = 11, maxLevel = 15, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(101), }; @@ -934,8 +934,8 @@ public static void PopulateItems() rarity = 4, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 10, maxLevel = 14, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item + canConsume = false, + stackSize = 1, //stacking in inventory like in mc, one means single item type = BaseItem.ItemType.Boot, icon = Res.ResourceLoader.GetTexture(85), //icon ids, don't worry about that }; @@ -955,8 +955,8 @@ public static void PopulateItems() rarity = 5, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 10, maxLevel = 14, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item + canConsume = false, + stackSize = 1, //stacking in inventory like in mc, one means single item type = BaseItem.ItemType.Ring, icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that }; @@ -976,8 +976,8 @@ public static void PopulateItems() rarity = 5, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 10, maxLevel = 14, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item + canConsume = false, + stackSize = 1, //stacking in inventory like in mc, one means single item type = BaseItem.ItemType.Ring, icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that }; @@ -998,8 +998,8 @@ public static void PopulateItems() rarity = 5, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 10, maxLevel = 20, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item + canConsume = false, + stackSize = 1, //stacking in inventory like in mc, one means single item type = BaseItem.ItemType.Ring, icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that }; @@ -1019,8 +1019,8 @@ public static void PopulateItems() rarity = 5, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 10, maxLevel = 20, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item + canConsume = false, + stackSize = 1, //stacking in inventory like in mc, one means single item type = BaseItem.ItemType.Ring, icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that }; @@ -1039,8 +1039,8 @@ public static void PopulateItems() rarity = 4, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 5, maxLevel = 20, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item + canConsume = false, + stackSize = 1, //stacking in inventory like in mc, one means single item type = BaseItem.ItemType.Ring, icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that }; @@ -1059,8 +1059,8 @@ public static void PopulateItems() rarity = 4, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 5, maxLevel = 8, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item + canConsume = false, + stackSize = 1, //stacking in inventory like in mc, one means single item type = BaseItem.ItemType.Ring, icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that }; @@ -1079,8 +1079,8 @@ public static void PopulateItems() rarity = 4, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 5, maxLevel = 20, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item + canConsume = false, + stackSize = 1, //stacking in inventory like in mc, one means single item type = BaseItem.ItemType.Ring, icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that }; @@ -1099,8 +1099,8 @@ public static void PopulateItems() rarity = 4, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 5, maxLevel = 20, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item + canConsume = false, + stackSize = 1, //stacking in inventory like in mc, one means single item type = BaseItem.ItemType.Ring, icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that }; @@ -1119,8 +1119,8 @@ public static void PopulateItems() rarity = 2, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 1, maxLevel = 6, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item + canConsume = false, + stackSize = 1, //stacking in inventory like in mc, one means single item type = BaseItem.ItemType.Ring, icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that }; @@ -1138,8 +1138,8 @@ public static void PopulateItems() rarity = 2, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 1, maxLevel = 6, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item + canConsume = false, + stackSize = 1, //stacking in inventory like in mc, one means single item type = BaseItem.ItemType.Ring, icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that }; @@ -1157,8 +1157,8 @@ public static void PopulateItems() rarity = 2, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 1, maxLevel = 10, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item + canConsume = false, + stackSize = 1, //stacking in inventory like in mc, one means single item type = BaseItem.ItemType.Ring, icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that }; @@ -1176,8 +1176,8 @@ public static void PopulateItems() rarity = 2, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 1, maxLevel = 6, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item + canConsume = false, + stackSize = 1, //stacking in inventory like in mc, one means single item type = BaseItem.ItemType.Ring, icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that }; @@ -1212,8 +1212,8 @@ public static void PopulateItems() rarity = 7, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 20, maxLevel = 30, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item + canConsume = false, + stackSize = 1, //stacking in inventory like in mc, one means single item type = BaseItem.ItemType.Ring, icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that }; @@ -1235,8 +1235,8 @@ public static void PopulateItems() rarity = 3, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 15, maxLevel = 20, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item + canConsume = false, + stackSize = 1, //stacking in inventory like in mc, one means single item type = BaseItem.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that }; @@ -1256,8 +1256,8 @@ public static void PopulateItems() rarity = 3, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 15, maxLevel = 20, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item + canConsume = false, + stackSize = 1, //stacking in inventory like in mc, one means single item type = BaseItem.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that }; @@ -1277,8 +1277,8 @@ public static void PopulateItems() rarity = 3, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 15, maxLevel = 20, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item + canConsume = false, + stackSize = 1, //stacking in inventory like in mc, one means single item type = BaseItem.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that }; @@ -1298,8 +1298,8 @@ public static void PopulateItems() rarity = 3, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 15, maxLevel = 20, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item + canConsume = false, + stackSize = 1, //stacking in inventory like in mc, one means single item type = BaseItem.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that }; @@ -1321,8 +1321,8 @@ public static void PopulateItems() rarity = 2, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 5, maxLevel = 20, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item + canConsume = false, + stackSize = 1, //stacking in inventory like in mc, one means single item type = BaseItem.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that }; @@ -1342,8 +1342,8 @@ public static void PopulateItems() rarity = 2, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 5, maxLevel = 20, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item + canConsume = false, + stackSize = 1, //stacking in inventory like in mc, one means single item type = BaseItem.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that }; @@ -1363,8 +1363,8 @@ public static void PopulateItems() rarity = 2, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 5, maxLevel = 8, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item + canConsume = false, + stackSize = 1, //stacking in inventory like in mc, one means single item type = BaseItem.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that }; @@ -1384,8 +1384,8 @@ public static void PopulateItems() rarity = 2, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 5, maxLevel = 8, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item + canConsume = false, + stackSize = 1, //stacking in inventory like in mc, one means single item type = BaseItem.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that }; @@ -1408,8 +1408,8 @@ public static void PopulateItems() rarity = 5, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 10, maxLevel = 12, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item + canConsume = false, + stackSize = 1, //stacking in inventory like in mc, one means single item type = BaseItem.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that }; @@ -1430,8 +1430,8 @@ public static void PopulateItems() rarity = 5, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 10, maxLevel = 12, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item + canConsume = false, + stackSize = 1, //stacking in inventory like in mc, one means single item type = BaseItem.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that }; @@ -1453,8 +1453,8 @@ public static void PopulateItems() rarity = 5, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 10, maxLevel = 12, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item + canConsume = false, + stackSize = 1, //stacking in inventory like in mc, one means single item type = BaseItem.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that }; @@ -1476,8 +1476,8 @@ public static void PopulateItems() rarity = 5, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 10, maxLevel = 12, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item + canConsume = false, + stackSize = 1, //stacking in inventory like in mc, one means single item type = BaseItem.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that }; @@ -1501,8 +1501,8 @@ public static void PopulateItems() rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 12, maxLevel = 14, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item + canConsume = false, + stackSize = 1, //stacking in inventory like in mc, one means single item type = BaseItem.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that }; @@ -1525,8 +1525,8 @@ public static void PopulateItems() rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 12, maxLevel = 14, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item + canConsume = false, + stackSize = 1, //stacking in inventory like in mc, one means single item type = BaseItem.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that }; @@ -1549,8 +1549,8 @@ public static void PopulateItems() rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 12, maxLevel = 14, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item + canConsume = false, + stackSize = 1, //stacking in inventory like in mc, one means single item type = BaseItem.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that }; @@ -1574,8 +1574,8 @@ public static void PopulateItems() rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 12, maxLevel = 14, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item + canConsume = false, + stackSize = 1, //stacking in inventory like in mc, one means single item type = BaseItem.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that }; @@ -1600,15 +1600,15 @@ public static void PopulateItems() rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 1, maxLevel = 5, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item + canConsume = false, + stackSize = 1, //stacking in inventory like in mc, one means single item type = BaseItem.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that }; - armsyFingerNecklace.DropSettings_OnlyArmsy(); - armsyFingerNecklace.PossibleStats[0][0].multipier = 2; - armsyFingerNecklace.PossibleStats[1][0].multipier = 2; + armsyFingerNecklace.SetDropOnlyArmsy(); + armsyFingerNecklace.statSlots[0][0].multipier = 2; + armsyFingerNecklace.statSlots[1][0].multipier = 2; var virginiaHeartPedant = new BaseItem(new int[][] { new int[] {2}, @@ -1628,14 +1628,14 @@ public static void PopulateItems() rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 1, maxLevel = 5, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item + canConsume = false, + stackSize = 1, //stacking in inventory like in mc, one means single item type = BaseItem.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that }; - virginiaHeartPedant.DropSettings_OnlyVags(); - virginiaHeartPedant.PossibleStats[0][0].multipier = 2; - virginiaHeartPedant.PossibleStats[1][0].multipier = 2.25f; + virginiaHeartPedant.SetDropOnlyVags(); + virginiaHeartPedant.statSlots[0][0].multipier = 2; + virginiaHeartPedant.statSlots[1][0].multipier = 2.25f; var cowmanToeNecklace = new BaseItem(new int[][] { @@ -1656,14 +1656,14 @@ public static void PopulateItems() rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 20, maxLevel = 40, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item + canConsume = false, + stackSize = 1, //stacking in inventory like in mc, one means single item type = BaseItem.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that }; - cowmanToeNecklace.DropSettings_OnlyCow(); - cowmanToeNecklace.PossibleStats[0][0].multipier = 3; - cowmanToeNecklace.PossibleStats[1][0].multipier = 2; + cowmanToeNecklace.SetDropOnlyCow(); + cowmanToeNecklace.statSlots[0][0].multipier = 3; + cowmanToeNecklace.statSlots[1][0].multipier = 2; new BaseItem(new int[][] { new int[] {47}, @@ -1687,13 +1687,13 @@ public static void PopulateItems() rarity = 7, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 30, maxLevel = 40, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item + canConsume = false, + stackSize = 1, //stacking in inventory like in mc, one means single item type = BaseItem.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that - onEquip = () => ModdedPlayer.Stats.i_infinityLoop.value = true, - onUnequip = () => ModdedPlayer.Stats.i_infinityLoop.value = false, - }.DropSettings_OnlyBaby(); + onEquipCallback = () => ModdedPlayer.Stats.i_infinityLoop.value = true, + onUnequipCallback = () => ModdedPlayer.Stats.i_infinityLoop.value = false, + }.SetDropOnlyBaby(); //Boss drop Amulet---------------------------------------------------------------------------------------- @@ -1718,11 +1718,11 @@ public static void PopulateItems() rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 1, maxLevel = 4, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item + canConsume = false, + stackSize = 1, //stacking in inventory like in mc, one means single item type = BaseItem.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that - }.DropSettings_OnlyMegan(); + }.SetDropOnlyMegan(); BaseItem RelicHammer = new BaseItem(new int[][] { @@ -1738,13 +1738,13 @@ public static void PopulateItems() rarity = 2, minLevel = 20, maxLevel = 22, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.Hammer, + subtype = BaseItem.WeaponModelType.Hammer, icon = Res.ResourceLoader.GetTexture(109), }; - RelicHammer.PossibleStats[1][0].multipier = -4; + RelicHammer.statSlots[1][0].multipier = -4; BaseItem GreaterHammer = new BaseItem(new int[][] { @@ -1763,13 +1763,13 @@ public static void PopulateItems() rarity = 4, minLevel = 30, maxLevel = 35, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.Hammer, + subtype = BaseItem.WeaponModelType.Hammer, icon = Res.ResourceLoader.GetTexture(109), }; - GreaterHammer.PossibleStats[1][0].multipier = -3; + GreaterHammer.statSlots[1][0].multipier = -3; //Item 0/6 new BaseItem(new int[][] { @@ -1782,8 +1782,8 @@ public static void PopulateItems() rarity = 0, minLevel = 1, maxLevel = 4, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Quiver, icon = Res.ResourceLoader.GetTexture(98), }; @@ -1801,8 +1801,8 @@ public static void PopulateItems() rarity = 1, minLevel = 2, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Quiver, icon = Res.ResourceLoader.GetTexture(98), }; @@ -1822,8 +1822,8 @@ public static void PopulateItems() rarity = 2, minLevel = 6, maxLevel = 9, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Quiver, icon = Res.ResourceLoader.GetTexture(98), }; @@ -1843,8 +1843,8 @@ public static void PopulateItems() rarity = 3, minLevel = 6, maxLevel = 11, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Quiver, icon = Res.ResourceLoader.GetTexture(98), }; @@ -1867,8 +1867,8 @@ public static void PopulateItems() rarity = 5, minLevel = 12, maxLevel = 20, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Quiver, icon = Res.ResourceLoader.GetTexture(98), }; @@ -1887,8 +1887,8 @@ public static void PopulateItems() rarity = 1, minLevel = 1, maxLevel = 1, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.SpellScroll, icon = Res.ResourceLoader.GetTexture(110), }; @@ -1906,8 +1906,8 @@ public static void PopulateItems() rarity = 1, minLevel = 2, maxLevel = 5, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Pants, icon = Res.ResourceLoader.GetTexture(87), }; @@ -1926,8 +1926,8 @@ public static void PopulateItems() rarity = 3, minLevel = 1, maxLevel = 1, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Pants, icon = Res.ResourceLoader.GetTexture(87), }; @@ -1948,8 +1948,8 @@ public static void PopulateItems() rarity = 4, minLevel = 4, maxLevel = 10, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Pants, icon = Res.ResourceLoader.GetTexture(87), }; @@ -1969,8 +1969,8 @@ public static void PopulateItems() rarity = 3, minLevel = 1, maxLevel = 6, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Pants, icon = Res.ResourceLoader.GetTexture(87), }; @@ -1996,12 +1996,12 @@ public static void PopulateItems() rarity = 7, minLevel = 20, maxLevel = 28, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Pants, icon = Res.ResourceLoader.GetTexture(87), - onEquip = () => { ModdedPlayer.Stats.smashDamage.Multiply(4.5f); ModdedPlayer.Stats.i_HammerStunAmount.Multiply(2); }, - onUnequip = () => { ModdedPlayer.Stats.smashDamage.Divide(4.5f); ModdedPlayer.Stats.i_HammerStunAmount.Divide(2); }, + onEquipCallback = () => { ModdedPlayer.Stats.smashDamage.Multiply(4.5f); ModdedPlayer.Stats.i_HammerStunAmount.Multiply(2); }, + onUnequipCallback = () => { ModdedPlayer.Stats.smashDamage.Divide(4.5f); ModdedPlayer.Stats.i_HammerStunAmount.Divide(2); }, }; //Item 5/7 @@ -2021,8 +2021,8 @@ public static void PopulateItems() rarity = 5, minLevel = 1, maxLevel = 1, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Pants, icon = Res.ResourceLoader.GetTexture(87), }; @@ -2049,12 +2049,12 @@ public static void PopulateItems() rarity = 7, minLevel = 14, maxLevel = 15, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Pants, icon = Res.ResourceLoader.GetTexture(87), - onEquip = () => ModdedPlayer.Stats.i_HexedPantsOfMrM_Enabled.value = true, - onUnequip = () => ModdedPlayer.Stats.i_HexedPantsOfMrM_Enabled.value = false, + onEquipCallback = () => ModdedPlayer.Stats.i_HexedPantsOfMrM_Enabled.value = true, + onUnequipCallback = () => ModdedPlayer.Stats.i_HexedPantsOfMrM_Enabled.value = false, }; new BaseItem(new int[][] { @@ -2067,8 +2067,8 @@ public static void PopulateItems() rarity = 1, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.ShoulderArmor, icon = Res.ResourceLoader.GetTexture(95), }; @@ -2088,8 +2088,8 @@ public static void PopulateItems() rarity = 2, minLevel = 4, maxLevel = 7, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.ShoulderArmor, icon = Res.ResourceLoader.GetTexture(95), }; @@ -2113,14 +2113,14 @@ public static void PopulateItems() rarity = 4, minLevel = 15, maxLevel = 20, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.ShoulderArmor, icon = Res.ResourceLoader.GetTexture(95), }; - Heavy_Shoulder_Plates.PossibleStats[0][0].multipier = -1; - Heavy_Shoulder_Plates.PossibleStats[1][0].multipier = -1; - Heavy_Shoulder_Plates.PossibleStats[2][0].multipier = 3; + Heavy_Shoulder_Plates.statSlots[0][0].multipier = -1; + Heavy_Shoulder_Plates.statSlots[1][0].multipier = -1; + Heavy_Shoulder_Plates.statSlots[2][0].multipier = 3; //Item 3/6 new BaseItem(new int[][] @@ -2137,8 +2137,8 @@ public static void PopulateItems() rarity = 3, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.ShoulderArmor, icon = Res.ResourceLoader.GetTexture(95), }; @@ -2160,8 +2160,8 @@ public static void PopulateItems() rarity = 5, minLevel = 4, maxLevel = 6, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.ShoulderArmor, icon = Res.ResourceLoader.GetTexture(95), }; @@ -2190,12 +2190,12 @@ public static void PopulateItems() rarity = 7, minLevel = 5, maxLevel = 8, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.ShoulderArmor, icon = Res.ResourceLoader.GetTexture(95), - onEquip = () => ModdedPlayer.Stats.i_DeathPact_Enabled.value = true, - onUnequip = () => ModdedPlayer.Stats.i_DeathPact_Enabled.value = false, + onEquipCallback = () => ModdedPlayer.Stats.i_DeathPact_Enabled.value = true, + onUnequipCallback = () => ModdedPlayer.Stats.i_DeathPact_Enabled.value = false, }; new BaseItem(new int[][] { @@ -2216,8 +2216,8 @@ public static void PopulateItems() rarity = 6, minLevel = 1, maxLevel = 4, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Ring, icon = Res.ResourceLoader.GetTexture(90), }; @@ -2232,11 +2232,11 @@ public static void PopulateItems() rarity = 4, minLevel = 1, maxLevel = 2, - CanConsume = true, - StackSize = 100, + canConsume = true, + stackSize = 100, type = BaseItem.ItemType.Other, icon = Res.ResourceLoader.GetTexture(105), - onEquip = ModdedPlayer.Respec + onEquipCallback = ModdedPlayer.Respec }; new BaseItem(new int[][] @@ -2253,8 +2253,8 @@ public static void PopulateItems() rarity = 2, minLevel = 5, maxLevel = 8, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Shield, icon = Res.ResourceLoader.GetTexture(99), }; @@ -2274,8 +2274,8 @@ public static void PopulateItems() rarity = 1, minLevel = 4, maxLevel = 12, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Shield, icon = Res.ResourceLoader.GetTexture(99), }; @@ -2297,8 +2297,8 @@ public static void PopulateItems() rarity = 4, minLevel = 1, maxLevel = 1, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Shield, icon = Res.ResourceLoader.GetTexture(99), }; @@ -2321,8 +2321,8 @@ public static void PopulateItems() rarity = 3, minLevel = 1, maxLevel = 1, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Shield, icon = Res.ResourceLoader.GetTexture(99), }; @@ -2338,12 +2338,12 @@ public static void PopulateItems() rarity = 0, minLevel = 15, maxLevel = 20, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.LongSword, + subtype = BaseItem.WeaponModelType.LongSword, icon = Res.ResourceLoader.GetTexture(89), - }.PossibleStats[0][0].multipier = -3; + }.statSlots[0][0].multipier = -3; new BaseItem(new int[][] { @@ -2359,13 +2359,13 @@ public static void PopulateItems() rarity = 4, minLevel = 1, maxLevel = 2, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(101), - onEquip = () => ModdedPlayer.Stats.spell_warCryGiveArmor.value = true, - onUnequip = () => ModdedPlayer.Stats.spell_warCryGiveArmor.value = false, - }.PossibleStats[0][0].multipier = 2; + onEquipCallback = () => ModdedPlayer.Stats.spell_warCryGiveArmor.value = true, + onUnequipCallback = () => ModdedPlayer.Stats.spell_warCryGiveArmor.value = false, + }.statSlots[0][0].multipier = 2; //Item 1/5 new BaseItem(new int[][] @@ -2388,21 +2388,21 @@ public static void PopulateItems() rarity = 7, minLevel = 1, maxLevel = 2, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(101), - onEquip = () => + onEquipCallback = () => { ModdedPlayer.Stats.spell_warCryGiveArmor.value = true; ModdedPlayer.Stats.spell_warCryGiveDamageResistance.value = true; }, - onUnequip = () => + onUnequipCallback = () => { ModdedPlayer.Stats.spell_warCryGiveArmor.value = false; ModdedPlayer.Stats.spell_warCryGiveDamageResistance.value = true; }, - }.PossibleStats[0][0].multipier = 5; + }.statSlots[0][0].multipier = 5; //Item 2/5 new BaseItem(new int[][] @@ -2420,8 +2420,8 @@ public static void PopulateItems() rarity = 2, minLevel = 2, maxLevel = 8, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Helmet, icon = Res.ResourceLoader.GetTexture(91), }; @@ -2438,8 +2438,8 @@ public static void PopulateItems() rarity = 2, minLevel = 1, maxLevel = 5, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Helmet, icon = Res.ResourceLoader.GetTexture(91), }; @@ -2461,16 +2461,16 @@ public static void PopulateItems() rarity = 5, minLevel = 2, maxLevel = 6, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Helmet, icon = Res.ResourceLoader.GetTexture(91), }; - mask.PossibleStats[2][0].multipier = -4; - mask.PossibleStats[0][0].multipier = 1.5f; - mask.PossibleStats[1][0].multipier = 2.5f; - mask.PossibleStats[1][1].multipier = 2.5f; - mask.PossibleStats[1][2].multipier = 2.5f; + mask.statSlots[2][0].multipier = -4; + mask.statSlots[0][0].multipier = 1.5f; + mask.statSlots[1][0].multipier = 2.5f; + mask.statSlots[1][1].multipier = 2.5f; + mask.statSlots[1][2].multipier = 2.5f; new BaseItem(new int[][] { @@ -2486,8 +2486,8 @@ public static void PopulateItems() rarity = 3, minLevel = 1, maxLevel = 1, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.SpellScroll, icon = Res.ResourceLoader.GetTexture(110), }; @@ -2512,12 +2512,12 @@ public static void PopulateItems() rarity = 7, minLevel = 4, maxLevel = 6, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Bracer, icon = Res.ResourceLoader.GetTexture(94), - onEquip = () => ModdedPlayer.Stats.spell_portalDuration.Add(570), - onUnequip = () => ModdedPlayer.Stats.spell_portalDuration.Sub(570), + onEquipCallback = () => ModdedPlayer.Stats.spell_portalDuration.Add(570), + onUnequipCallback = () => ModdedPlayer.Stats.spell_portalDuration.Sub(570), }; new BaseItem(new int[][] { @@ -2539,12 +2539,12 @@ public static void PopulateItems() rarity = 7, minLevel = 3, maxLevel = 6, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Glove, icon = Res.ResourceLoader.GetTexture(86), - onEquip = () => ModdedPlayer.Stats.spell_magicArrowDuration.Add(15), - onUnequip = () => ModdedPlayer.Stats.spell_magicArrowDuration.Sub(15), + onEquipCallback = () => ModdedPlayer.Stats.spell_magicArrowDuration.Add(15), + onUnequipCallback = () => ModdedPlayer.Stats.spell_magicArrowDuration.Sub(15), }; new BaseItem(new int[][] @@ -2568,12 +2568,12 @@ public static void PopulateItems() rarity = 7, minLevel = 1, maxLevel = 6, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Quiver, icon = Res.ResourceLoader.GetTexture(98), - onEquip = () => ModdedPlayer.Stats.i_CrossfireQuiver.value = true, - onUnequip = () => ModdedPlayer.Stats.i_CrossfireQuiver.value = false, + onEquipCallback = () => ModdedPlayer.Stats.i_CrossfireQuiver.value = true, + onUnequipCallback = () => ModdedPlayer.Stats.i_CrossfireQuiver.value = false, }; new BaseItem(new int[][] @@ -2590,8 +2590,8 @@ public static void PopulateItems() rarity = 1, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.SpellScroll, icon = Res.ResourceLoader.GetTexture(110), }; @@ -2612,8 +2612,8 @@ public static void PopulateItems() rarity = 2, minLevel = 5, maxLevel = 10, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Helmet, icon = Res.ResourceLoader.GetTexture(91), }; @@ -2636,8 +2636,8 @@ public static void PopulateItems() rarity = 2, minLevel = 1, maxLevel = 2, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Pants, icon = Res.ResourceLoader.GetTexture(87), }; @@ -2658,12 +2658,12 @@ public static void PopulateItems() rarity = 4, minLevel = 30, maxLevel = 40, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.SpellScroll, icon = Res.ResourceLoader.GetTexture(110), - onEquip = () => { ModdedPlayer.Stats.spell_snapDamageScaling.Add(250f); ModdedPlayer.Stats.spell_snapFreezeDuration.Add(2); }, - onUnequip = () => { ModdedPlayer.Stats.spell_snapDamageScaling.Sub(250f); ModdedPlayer.Stats.spell_snapFreezeDuration.Add(2); } + onEquipCallback = () => { ModdedPlayer.Stats.spell_snapDamageScaling.Add(250f); ModdedPlayer.Stats.spell_snapFreezeDuration.Add(2); }, + onUnequipCallback = () => { ModdedPlayer.Stats.spell_snapDamageScaling.Sub(250f); ModdedPlayer.Stats.spell_snapFreezeDuration.Add(2); } }; new BaseItem(new int[][] { @@ -2681,8 +2681,8 @@ public static void PopulateItems() rarity = 4, minLevel = 1, maxLevel = 4, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.SpellScroll, icon = Res.ResourceLoader.GetTexture(110), }; @@ -2698,12 +2698,12 @@ public static void PopulateItems() rarity = 3, minLevel = 15, maxLevel = 17, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.Axe, + subtype = BaseItem.WeaponModelType.Axe, icon = Res.ResourceLoader.GetTexture(138), - }.PossibleStats[1][0].multipier = 1.6f; + }.statSlots[1][0].multipier = 1.6f; new BaseItem(new int[][] { new int[]{1,26,22}, @@ -2717,12 +2717,12 @@ public static void PopulateItems() rarity = 4, minLevel = 25, maxLevel = 25, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.Axe, + subtype = BaseItem.WeaponModelType.Axe, icon = Res.ResourceLoader.GetTexture(138), - }.PossibleStats[1][0].multipier = 2.5f; + }.statSlots[1][0].multipier = 2.5f; new BaseItem(new int[][] { @@ -2739,12 +2739,12 @@ public static void PopulateItems() rarity = 5, minLevel = 35, maxLevel = 36, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.Axe, + subtype = BaseItem.WeaponModelType.Axe, icon = Res.ResourceLoader.GetTexture(138), - }.PossibleStats[1][0].multipier = 2.5f; + }.statSlots[1][0].multipier = 2.5f; new BaseItem(new int[][] { new int[]{26,22}, @@ -2761,12 +2761,12 @@ public static void PopulateItems() rarity = 5, minLevel = 6, maxLevel = 9, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.Axe, + subtype = BaseItem.WeaponModelType.Axe, icon = Res.ResourceLoader.GetTexture(138), - }.PossibleStats[1][0].multipier = 3; + }.statSlots[1][0].multipier = 3; new BaseItem(new int[][] { @@ -2785,8 +2785,8 @@ public static void PopulateItems() rarity = 4, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 1, maxLevel = 4, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item + canConsume = false, + stackSize = 1, //stacking in inventory like in mc, one means single item type = BaseItem.ItemType.Ring, icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that }; @@ -2807,8 +2807,8 @@ public static void PopulateItems() rarity = 3, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 1, maxLevel = 4, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item + canConsume = false, + stackSize = 1, //stacking in inventory like in mc, one means single item type = BaseItem.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that }; @@ -2821,10 +2821,10 @@ public static void PopulateItems() rarity = 0, minLevel = 15, maxLevel = 24, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.Axe, + subtype = BaseItem.WeaponModelType.Axe, icon = Res.ResourceLoader.GetTexture(138), }; new BaseItem(new int[][] @@ -2847,12 +2847,12 @@ public static void PopulateItems() rarity = 7, minLevel = 5, maxLevel = 8, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Quiver, icon = Res.ResourceLoader.GetTexture(98), - onEquip = () => ModdedPlayer.Stats.spell_focusOnAtkSpeedDuration.Add(16), - onUnequip = () => ModdedPlayer.Stats.spell_focusOnAtkSpeedDuration.Sub(16), + onEquipCallback = () => ModdedPlayer.Stats.spell_focusOnAtkSpeedDuration.Add(16), + onUnequipCallback = () => ModdedPlayer.Stats.spell_focusOnAtkSpeedDuration.Sub(16), }; new BaseItem(new int[][] { @@ -2877,14 +2877,14 @@ public static void PopulateItems() rarity = 7, minLevel = 6, maxLevel = 9, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.GreatSword, + subtype = BaseItem.WeaponModelType.GreatSword, icon = Res.ResourceLoader.GetTexture(88), - onEquip = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Add(15), - onUnequip = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Sub(15), - }.PossibleStats[0][0].multipier = 5; + onEquipCallback = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Add(15), + onUnequipCallback = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Sub(15), + }.statSlots[0][0].multipier = 5; BaseItem jaggedRipper = new BaseItem(new int[][] { @@ -2907,15 +2907,15 @@ public static void PopulateItems() rarity = 7, minLevel = 1, maxLevel = 5, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.Axe, + subtype = BaseItem.WeaponModelType.Axe, icon = Res.ResourceLoader.GetTexture(138), - onEquip = () => ModdedPlayer.Stats.spell_bashBleedChance.Add(0.3f), - onUnequip = () => ModdedPlayer.Stats.spell_bashBleedChance.Sub(0.3f), + onEquipCallback = () => ModdedPlayer.Stats.spell_bashBleedChance.Add(0.3f), + onUnequipCallback = () => ModdedPlayer.Stats.spell_bashBleedChance.Sub(0.3f), }; - jaggedRipper.PossibleStats[1][0].multipier = 2; + jaggedRipper.statSlots[1][0].multipier = 2; new BaseItem(new int[][] { @@ -2939,14 +2939,14 @@ public static void PopulateItems() rarity = 7, minLevel = 1, maxLevel = 5, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.LongSword, + subtype = BaseItem.WeaponModelType.LongSword, icon = Res.ResourceLoader.GetTexture(89), - onEquip = () => ModdedPlayer.Stats.spell_bashLifesteal.Add(0.02f), - onUnequip = () => ModdedPlayer.Stats.spell_bashLifesteal.Sub(0.02f), - }.PossibleStats[0][0].multipier = 3; + onEquipCallback = () => ModdedPlayer.Stats.spell_bashLifesteal.Add(0.02f), + onUnequipCallback = () => ModdedPlayer.Stats.spell_bashLifesteal.Sub(0.02f), + }.statSlots[0][0].multipier = 3; new BaseItem(new int[][] { new int[] {25 }, @@ -2968,22 +2968,22 @@ public static void PopulateItems() rarity = 7, minLevel = 1, maxLevel = 2, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.Hammer, + subtype = BaseItem.WeaponModelType.Hammer, icon = Res.ResourceLoader.GetTexture(109), - onEquip = () => + onEquipCallback = () => { ModdedPlayer.Stats.i_HammerStunDuration.Multiply(2); ModdedPlayer.Stats.i_HammerStunAmount.Multiply(0); }, - onUnequip = () => + onUnequipCallback = () => { ModdedPlayer.Stats.i_HammerStunDuration.Divide(2); ModdedPlayer.Stats.i_HammerStunAmount.Reset(); }, - }.PossibleStats[0][0].multipier = 3.25f; + }.statSlots[0][0].multipier = 3.25f; new BaseItem(new int[][] { @@ -3006,12 +3006,12 @@ public static void PopulateItems() rarity = 7, minLevel = 1, maxLevel = 2, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Shield, icon = Res.ResourceLoader.GetTexture(99), - onEquip = () => ModdedPlayer.Stats.spell_chanceToParryOnHit.value = true, - onUnequip = () => ModdedPlayer.Stats.spell_chanceToParryOnHit.value = false, + onEquipCallback = () => ModdedPlayer.Stats.spell_chanceToParryOnHit.value = true, + onUnequipCallback = () => ModdedPlayer.Stats.spell_chanceToParryOnHit.value = false, }; new BaseItem(new int[][] @@ -3036,13 +3036,13 @@ public static void PopulateItems() rarity = 7, minLevel = 10, maxLevel = 12, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.LongSword, + subtype = BaseItem.WeaponModelType.LongSword, icon = Res.ResourceLoader.GetTexture(89), - onEquip = () => ModdedPlayer.Stats.i_KingQruiesSword.value = true, - onUnequip = () => ModdedPlayer.Stats.i_KingQruiesSword.value = false, + onEquipCallback = () => ModdedPlayer.Stats.i_KingQruiesSword.value = true, + onUnequipCallback = () => ModdedPlayer.Stats.i_KingQruiesSword.value = false, }; new BaseItem(new int[][] @@ -3066,12 +3066,12 @@ public static void PopulateItems() rarity = 7, minLevel = 10, maxLevel = 12, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Bracer, icon = Res.ResourceLoader.GetTexture(93), - onEquip = () => ModdedPlayer.Stats.i_SoraBracers.value = true, - onUnequip = () => ModdedPlayer.Stats.i_SoraBracers.value = false, + onEquipCallback = () => ModdedPlayer.Stats.i_SoraBracers.value = true, + onUnequipCallback = () => ModdedPlayer.Stats.i_SoraBracers.value = false, }; new BaseItem(new int[][] { @@ -3089,12 +3089,12 @@ public static void PopulateItems() rarity = 4, minLevel = 10, maxLevel = 12, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.Greatbow, + subtype = BaseItem.WeaponModelType.Greatbow, icon = Res.ResourceLoader.GetTexture(170), - }.PossibleStats[0][0].multipier = -1.55f; + }.statSlots[0][0].multipier = -1.55f; new BaseItem(new int[][] { @@ -3116,14 +3116,14 @@ public static void PopulateItems() rarity = 6, minLevel = 10, maxLevel = 12, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.Greatbow, + subtype = BaseItem.WeaponModelType.Greatbow, icon = Res.ResourceLoader.GetTexture(170), - onEquip = () => ModdedPlayer.Stats.i_greatBowIgnites.value = true, - onUnequip = () => ModdedPlayer.Stats.i_greatBowIgnites.value = false, - }.PossibleStats[0][0].multipier = -1.7f; + onEquipCallback = () => ModdedPlayer.Stats.i_greatBowIgnites.value = true, + onUnequipCallback = () => ModdedPlayer.Stats.i_greatBowIgnites.value = false, + }.statSlots[0][0].multipier = -1.7f; new BaseItem(new int[][] { @@ -3148,14 +3148,14 @@ public static void PopulateItems() rarity = 7, minLevel = 10, maxLevel = 12, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.Greatbow, + subtype = BaseItem.WeaponModelType.Greatbow, icon = Res.ResourceLoader.GetTexture(170), - onEquip = () => ModdedPlayer.Stats.spell_bia_HealthDmMult.Add(100), - onUnequip = () => ModdedPlayer.Stats.spell_bia_HealthDmMult.Sub(100), - }.PossibleStats[0][0].multipier = -1.7f; + onEquipCallback = () => ModdedPlayer.Stats.spell_bia_HealthDmMult.Add(100), + onUnequipCallback = () => ModdedPlayer.Stats.spell_bia_HealthDmMult.Sub(100), + }.statSlots[0][0].multipier = -1.7f; new BaseItem(new int[][] { @@ -3169,12 +3169,12 @@ public static void PopulateItems() rarity = 2, minLevel = 25, maxLevel = 28, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.Greatbow, + subtype = BaseItem.WeaponModelType.Greatbow, icon = Res.ResourceLoader.GetTexture(170), - }.PossibleStats[0][0].multipier = -2.7f; + }.statSlots[0][0].multipier = -2.7f; new BaseItem(new int[][] { @@ -3199,12 +3199,12 @@ public static void PopulateItems() rarity = 7, minLevel = 10, maxLevel = 12, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Helmet, icon = Res.ResourceLoader.GetTexture(91), - onEquip = () => ModdedPlayer.Stats.i_HazardCrown.value = true, - onUnequip = () => ModdedPlayer.Stats.i_HazardCrown.value = false, + onEquipCallback = () => ModdedPlayer.Stats.i_HazardCrown.value = true, + onUnequipCallback = () => ModdedPlayer.Stats.i_HazardCrown.value = false, }; new BaseItem(new int[][] { @@ -3219,8 +3219,8 @@ public static void PopulateItems() rarity = 4, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Bracer, icon = Res.ResourceLoader.GetTexture(93), }; @@ -3237,8 +3237,8 @@ public static void PopulateItems() rarity = 4, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Bracer, icon = Res.ResourceLoader.GetTexture(93), }; @@ -3255,8 +3255,8 @@ public static void PopulateItems() rarity = 4, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Bracer, icon = Res.ResourceLoader.GetTexture(93), }; @@ -3275,8 +3275,8 @@ public static void PopulateItems() rarity = 5, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Bracer, icon = Res.ResourceLoader.GetTexture(93), }; @@ -3293,8 +3293,8 @@ public static void PopulateItems() rarity = 4, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Glove, icon = Res.ResourceLoader.GetTexture(86), }; @@ -3311,8 +3311,8 @@ public static void PopulateItems() rarity = 4, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Glove, icon = Res.ResourceLoader.GetTexture(86), }; @@ -3329,8 +3329,8 @@ public static void PopulateItems() rarity = 4, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Glove, icon = Res.ResourceLoader.GetTexture(86), }; @@ -3349,8 +3349,8 @@ public static void PopulateItems() rarity = 5, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Glove, icon = Res.ResourceLoader.GetTexture(86), }; @@ -3370,8 +3370,8 @@ public static void PopulateItems() rarity = 6, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Glove, icon = Res.ResourceLoader.GetTexture(86), }; @@ -3391,8 +3391,8 @@ public static void PopulateItems() rarity = 6, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Boot, icon = Res.ResourceLoader.GetTexture(85), }; @@ -3415,12 +3415,12 @@ public static void PopulateItems() rarity = 7, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Boot, icon = Res.ResourceLoader.GetTexture(85), - onEquip = () => ModdedPlayer.Stats.i_isGreed.value = true, - onUnequip = () => ModdedPlayer.Stats.i_isGreed.value = false, + onEquipCallback = () => ModdedPlayer.Stats.i_isGreed.value = true, + onUnequipCallback = () => ModdedPlayer.Stats.i_isGreed.value = false, }; BaseItem titaniumleggins = new BaseItem(new int[][] { @@ -3439,13 +3439,13 @@ public static void PopulateItems() rarity = 6, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Pants, icon = Res.ResourceLoader.GetTexture(87), }; - titaniumleggins.PossibleStats[0][0].multipier = 3; - titaniumleggins.PossibleStats[1][0].multipier = 1.5f; + titaniumleggins.statSlots[0][0].multipier = 3; + titaniumleggins.statSlots[1][0].multipier = 1.5f; new BaseItem(new int[][] { new int[] {42,39,40,41,43,0,0 }, @@ -3459,8 +3459,8 @@ public static void PopulateItems() rarity = 2, minLevel = 1, maxLevel = 2, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Glove, icon = Res.ResourceLoader.GetTexture(86), }; @@ -3486,12 +3486,12 @@ public static void PopulateItems() rarity = 7, minLevel = 1, maxLevel = 2, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Glove, icon = Res.ResourceLoader.GetTexture(86), - onEquip = () => { ModdedPlayer.Stats.spellDamageMult.valueMultiplicative *= 2f; ModdedPlayer.Stats.spellCost.valueMultiplicative *= 2f; }, - onUnequip = () => { ModdedPlayer.Stats.spellDamageMult.valueMultiplicative /= 2f; ModdedPlayer.Stats.spellCost.valueMultiplicative /= 2f; } + onEquipCallback = () => { ModdedPlayer.Stats.spellDamageMult.valueMultiplicative *= 2f; ModdedPlayer.Stats.spellCost.valueMultiplicative *= 2f; }, + onUnequipCallback = () => { ModdedPlayer.Stats.spellDamageMult.valueMultiplicative /= 2f; ModdedPlayer.Stats.spellCost.valueMultiplicative /= 2f; } }; new BaseItem(new int[][] { @@ -3509,8 +3509,8 @@ public static void PopulateItems() rarity = 5, minLevel = 10, maxLevel = 14, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Boot, icon = Res.ResourceLoader.GetTexture(85), }; @@ -3532,11 +3532,11 @@ public static void PopulateItems() rarity = 6, minLevel = 5, maxLevel = 8, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Shield, icon = Res.ResourceLoader.GetTexture(99), - }.PossibleStats[0][0].multipier = 2; + }.statSlots[0][0].multipier = 2; new BaseItem(new int[][] { @@ -3555,8 +3555,8 @@ public static void PopulateItems() rarity = 6, minLevel = 1, maxLevel = 1, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.SpellScroll, icon = Res.ResourceLoader.GetTexture(110), }; @@ -3577,8 +3577,8 @@ public static void PopulateItems() rarity = 6, minLevel = 5, maxLevel = 9, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.ShoulderArmor, icon = Res.ResourceLoader.GetTexture(95), }; @@ -3602,12 +3602,12 @@ public static void PopulateItems() rarity = 7, minLevel = 5, maxLevel = 9, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.ChestArmor, icon = Res.ResourceLoader.GetTexture(96), - onEquip = () => ModdedPlayer.Stats.i_isWindArmor.value = true, - onUnequip = () => ModdedPlayer.Stats.i_isWindArmor.value = false, + onEquipCallback = () => ModdedPlayer.Stats.i_isWindArmor.value = true, + onUnequipCallback = () => ModdedPlayer.Stats.i_isWindArmor.value = false, }; new BaseItem(new int[][] { @@ -3626,8 +3626,8 @@ public static void PopulateItems() rarity = 5, minLevel = 2, maxLevel = 6, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Helmet, icon = Res.ResourceLoader.GetTexture(91), }; @@ -3646,8 +3646,8 @@ public static void PopulateItems() rarity = 3, minLevel = 2, maxLevel = 6, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Helmet, icon = Res.ResourceLoader.GetTexture(91), }; @@ -3674,12 +3674,12 @@ public static void PopulateItems() rarity = 7, minLevel = 15, maxLevel = 20, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.SpellScroll, icon = Res.ResourceLoader.GetTexture(110), - onEquip = () => ModdedPlayer.Stats.i_sparkOfLightAfterDark.value = true, - onUnequip = () => ModdedPlayer.Stats.i_sparkOfLightAfterDark.value = false + onEquipCallback = () => ModdedPlayer.Stats.i_sparkOfLightAfterDark.value = true, + onUnequipCallback = () => ModdedPlayer.Stats.i_sparkOfLightAfterDark.value = false }; new BaseItem(new int[][] { @@ -3702,13 +3702,13 @@ public static void PopulateItems() rarity = 7, minLevel = 20, maxLevel = 26, - CanConsume = false, - StackSize = 1, - onEquip = () => ModdedPlayer.Stats.spell_purgeDamageBonus.value = true, - onUnequip = () => ModdedPlayer.Stats.spell_purgeDamageBonus.value = false, + canConsume = false, + stackSize = 1, + onEquipCallback = () => ModdedPlayer.Stats.spell_purgeDamageBonus.value = true, + onUnequipCallback = () => ModdedPlayer.Stats.spell_purgeDamageBonus.value = false, type = BaseItem.ItemType.Ring, icon = Res.ResourceLoader.GetTexture(90), - }.DropSettings_OnlyCannibals(); + }.SetDropOnlyCannibals(); new BaseItem(new int[][] { @@ -3733,14 +3733,14 @@ public static void PopulateItems() rarity = 7, minLevel = 10, maxLevel = 12, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.Greatbow, + subtype = BaseItem.WeaponModelType.Greatbow, icon = Res.ResourceLoader.GetTexture(170), - onEquip = () => ModdedPlayer.Stats.i_EruptionBow.value = true, - onUnequip = () => ModdedPlayer.Stats.i_EruptionBow.value = false, - }.PossibleStats[0][0].multipier = -1.6f; + onEquipCallback = () => ModdedPlayer.Stats.i_EruptionBow.value = true, + onUnequipCallback = () => ModdedPlayer.Stats.i_EruptionBow.value = false, + }.statSlots[0][0].multipier = -1.6f; new BaseItem(new int[][] { @@ -3765,14 +3765,14 @@ public static void PopulateItems() rarity = 7, minLevel = 10, maxLevel = 12, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.Greatbow, + subtype = BaseItem.WeaponModelType.Greatbow, icon = Res.ResourceLoader.GetTexture(170), - onEquip = () => ModdedPlayer.Stats.i_ArchangelBow.value = true, - onUnequip = () => ModdedPlayer.Stats.i_ArchangelBow.value = false, - }.PossibleStats[0][0].multipier = -2f; + onEquipCallback = () => ModdedPlayer.Stats.i_ArchangelBow.value = true, + onUnequipCallback = () => ModdedPlayer.Stats.i_ArchangelBow.value = false, + }.statSlots[0][0].multipier = -2f; new BaseItem(new int[][] { new int[] {1,4 }, @@ -3790,10 +3790,10 @@ public static void PopulateItems() rarity = 4, minLevel = 25, maxLevel = 27, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.LongSword, + subtype = BaseItem.WeaponModelType.LongSword, icon = Res.ResourceLoader.GetTexture(89), }; new BaseItem(new int[][] @@ -3819,10 +3819,10 @@ public static void PopulateItems() rarity = 7, minLevel = 20, maxLevel = 22, - CanConsume = false, - StackSize = 1, - onEquip = () => ModdedPlayer.Stats.perk_trueAimUpgrade.value = true, - onUnequip = () => ModdedPlayer.Stats.perk_trueAimUpgrade.value = false, + canConsume = false, + stackSize = 1, + onEquipCallback = () => ModdedPlayer.Stats.perk_trueAimUpgrade.value = true, + onUnequipCallback = () => ModdedPlayer.Stats.perk_trueAimUpgrade.value = false, type = BaseItem.ItemType.ChestArmor, icon = Res.ResourceLoader.GetTexture(96), }; @@ -3850,10 +3850,10 @@ public static void PopulateItems() rarity = 7, minLevel = 20, maxLevel = 22, - CanConsume = false, - StackSize = 1, - onEquip = () => ModdedPlayer.Stats.thornsDmgMult.valueMultiplicative *= 2, - onUnequip = () => ModdedPlayer.Stats.thornsDmgMult.valueMultiplicative /= 2, + canConsume = false, + stackSize = 1, + onEquipCallback = () => ModdedPlayer.Stats.thornsDmgMult.valueMultiplicative *= 2, + onUnequipCallback = () => ModdedPlayer.Stats.thornsDmgMult.valueMultiplicative /= 2, type = BaseItem.ItemType.ChestArmor, icon = Res.ResourceLoader.GetTexture(96), }; @@ -3868,10 +3868,10 @@ public static void PopulateItems() rarity = 1, minLevel = 10, maxLevel = 16, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.Polearm, + subtype = BaseItem.WeaponModelType.Polearm, icon = Res.ResourceLoader.GetTexture(181), }; new BaseItem(new int[][] @@ -3888,10 +3888,10 @@ public static void PopulateItems() rarity = 4, minLevel = 20, maxLevel = 24, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.Polearm, + subtype = BaseItem.WeaponModelType.Polearm, icon = Res.ResourceLoader.GetTexture(181), }; @@ -3909,8 +3909,8 @@ public static void PopulateItems() rarity = 3, minLevel = 20, maxLevel = 21, - CanConsume = false, - StackSize = 100, + canConsume = false, + stackSize = 100, subtype = 1, type = BaseItem.ItemType.Material, icon = Res.ResourceLoader.GetTexture(185), @@ -3928,8 +3928,8 @@ public static void PopulateItems() rarity = 4, minLevel = 20, maxLevel = 21, - CanConsume = false, - StackSize = 100, + canConsume = false, + stackSize = 100, subtype = 1, type = BaseItem.ItemType.Material, icon = Res.ResourceLoader.GetTexture(185), @@ -3947,8 +3947,8 @@ public static void PopulateItems() rarity = 5, minLevel = 20, maxLevel = 21, - CanConsume = false, - StackSize = 100, + canConsume = false, + stackSize = 100, subtype = 1, type = BaseItem.ItemType.Material, icon = Res.ResourceLoader.GetTexture(185), @@ -3967,8 +3967,8 @@ public static void PopulateItems() rarity = 6, minLevel = 20, maxLevel = 21, - CanConsume = false, - StackSize = 100, + canConsume = false, + stackSize = 100, subtype = 1, type = BaseItem.ItemType.Material, icon = Res.ResourceLoader.GetTexture(185), @@ -3986,8 +3986,8 @@ public static void PopulateItems() rarity = 7, minLevel = 20, maxLevel = 21, - CanConsume = false, - StackSize = 100, + canConsume = false, + stackSize = 100, subtype = 1, type = BaseItem.ItemType.Material, icon = Res.ResourceLoader.GetTexture(185), @@ -4008,8 +4008,8 @@ public static void PopulateItems() rarity = 3, minLevel = 20, maxLevel = 21, - CanConsume = false, - StackSize = 100, + canConsume = false, + stackSize = 100, subtype = 2, type = BaseItem.ItemType.Material, icon = Res.ResourceLoader.GetTexture(186), @@ -4027,8 +4027,8 @@ public static void PopulateItems() rarity = 4, minLevel = 20, maxLevel = 21, - CanConsume = false, - StackSize = 100, + canConsume = false, + stackSize = 100, subtype = 2, type = BaseItem.ItemType.Material, icon = Res.ResourceLoader.GetTexture(186), @@ -4046,8 +4046,8 @@ public static void PopulateItems() rarity = 5, minLevel = 20, maxLevel = 21, - CanConsume = false, - StackSize = 100, + canConsume = false, + stackSize = 100, subtype = 2, type = BaseItem.ItemType.Material, icon = Res.ResourceLoader.GetTexture(186), @@ -4066,8 +4066,8 @@ public static void PopulateItems() rarity = 6, minLevel = 20, maxLevel = 21, - CanConsume = false, - StackSize = 100, + canConsume = false, + stackSize = 100, subtype = 2, type = BaseItem.ItemType.Material, icon = Res.ResourceLoader.GetTexture(186), @@ -4085,8 +4085,8 @@ public static void PopulateItems() rarity = 7, minLevel = 20, maxLevel = 21, - CanConsume = false, - StackSize = 100, + canConsume = false, + stackSize = 100, subtype = 2, type = BaseItem.ItemType.Material, icon = Res.ResourceLoader.GetTexture(186), @@ -4107,8 +4107,8 @@ public static void PopulateItems() rarity = 3, minLevel = 20, maxLevel = 21, - CanConsume = false, - StackSize = 100, + canConsume = false, + stackSize = 100, subtype = 3, type = BaseItem.ItemType.Material, icon = Res.ResourceLoader.GetTexture(187), @@ -4126,8 +4126,8 @@ public static void PopulateItems() rarity = 4, minLevel = 20, maxLevel = 21, - CanConsume = false, - StackSize = 100, + canConsume = false, + stackSize = 100, subtype = 3, type = BaseItem.ItemType.Material, icon = Res.ResourceLoader.GetTexture(187), @@ -4145,8 +4145,8 @@ public static void PopulateItems() rarity = 5, minLevel = 20, maxLevel = 21, - CanConsume = false, - StackSize = 100, + canConsume = false, + stackSize = 100, subtype = 3, type = BaseItem.ItemType.Material, icon = Res.ResourceLoader.GetTexture(187), @@ -4165,8 +4165,8 @@ public static void PopulateItems() rarity = 6, minLevel = 20, maxLevel = 21, - CanConsume = false, - StackSize = 100, + canConsume = false, + stackSize = 100, subtype = 3, type = BaseItem.ItemType.Material, icon = Res.ResourceLoader.GetTexture(187), @@ -4184,8 +4184,8 @@ public static void PopulateItems() rarity = 7, minLevel = 20, maxLevel = 21, - CanConsume = false, - StackSize = 100, + canConsume = false, + stackSize = 100, subtype = 3, type = BaseItem.ItemType.Material, icon = Res.ResourceLoader.GetTexture(187), @@ -4205,8 +4205,8 @@ public static void PopulateItems() rarity = 3, minLevel = 20, maxLevel = 21, - CanConsume = false, - StackSize = 100, + canConsume = false, + stackSize = 100, subtype = 4, type = BaseItem.ItemType.Material, icon = Res.ResourceLoader.GetTexture(188), @@ -4224,8 +4224,8 @@ public static void PopulateItems() rarity = 4, minLevel = 20, maxLevel = 21, - CanConsume = false, - StackSize = 100, + canConsume = false, + stackSize = 100, subtype = 4, type = BaseItem.ItemType.Material, icon = Res.ResourceLoader.GetTexture(188), @@ -4243,8 +4243,8 @@ public static void PopulateItems() rarity = 5, minLevel = 20, maxLevel = 21, - CanConsume = false, - StackSize = 100, + canConsume = false, + stackSize = 100, subtype = 4, type = BaseItem.ItemType.Material, icon = Res.ResourceLoader.GetTexture(188), @@ -4263,8 +4263,8 @@ public static void PopulateItems() rarity = 6, minLevel = 20, maxLevel = 21, - CanConsume = false, - StackSize = 100, + canConsume = false, + stackSize = 100, subtype = 4, type = BaseItem.ItemType.Material, icon = Res.ResourceLoader.GetTexture(188), @@ -4282,8 +4282,8 @@ public static void PopulateItems() rarity = 7, minLevel = 20, maxLevel = 21, - CanConsume = false, - StackSize = 100, + canConsume = false, + stackSize = 100, subtype = 4, type = BaseItem.ItemType.Material, icon = Res.ResourceLoader.GetTexture(188), @@ -4304,8 +4304,8 @@ public static void PopulateItems() rarity = 3, minLevel = 20, maxLevel = 21, - CanConsume = false, - StackSize = 100, + canConsume = false, + stackSize = 100, subtype = 5, type = BaseItem.ItemType.Material, icon = Res.ResourceLoader.GetTexture(184), @@ -4323,8 +4323,8 @@ public static void PopulateItems() rarity = 4, minLevel = 20, maxLevel = 21, - CanConsume = false, - StackSize = 100, + canConsume = false, + stackSize = 100, subtype = 5, type = BaseItem.ItemType.Material, icon = Res.ResourceLoader.GetTexture(184), @@ -4343,8 +4343,8 @@ public static void PopulateItems() minLevel = 20, maxLevel = 21, - CanConsume = false, - StackSize = 100, + canConsume = false, + stackSize = 100, subtype = 5, type = BaseItem.ItemType.Material, icon = Res.ResourceLoader.GetTexture(184), @@ -4363,8 +4363,8 @@ public static void PopulateItems() rarity = 6, minLevel = 20, maxLevel = 21, - CanConsume = false, - StackSize = 100, + canConsume = false, + stackSize = 100, subtype = 5, type = BaseItem.ItemType.Material, icon = Res.ResourceLoader.GetTexture(184), @@ -4382,8 +4382,8 @@ public static void PopulateItems() rarity = 7, minLevel = 20, maxLevel = 21, - CanConsume = false, - StackSize = 100, + canConsume = false, + stackSize = 100, subtype = 5, type = BaseItem.ItemType.Material, icon = Res.ResourceLoader.GetTexture(184), @@ -4407,10 +4407,10 @@ public static void PopulateItems() rarity = 5, minLevel = 30, maxLevel = 34, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.Polearm, + subtype = BaseItem.WeaponModelType.Polearm, icon = Res.ResourceLoader.GetTexture(181), }; new BaseItem(new Stat[][] @@ -4435,10 +4435,10 @@ public static void PopulateItems() rarity = 7, minLevel = 20, maxLevel = 22, - CanConsume = false, - StackSize = 1, - onEquip = () => ModdedPlayer.Stats.thornsPerVit.Add(9), - onUnequip = () => ModdedPlayer.Stats.thornsPerVit.Sub(9), + canConsume = false, + stackSize = 1, + onEquipCallback = () => ModdedPlayer.Stats.thornsPerVit.Add(9), + onUnequipCallback = () => ModdedPlayer.Stats.thornsPerVit.Sub(9), type = BaseItem.ItemType.Glove, icon = Res.ResourceLoader.GetTexture(86), }; @@ -4461,8 +4461,8 @@ public static void PopulateItems() rarity = 4, minLevel = 30, maxLevel = 33, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Pants, icon = Res.ResourceLoader.GetTexture(87), }; @@ -4488,10 +4488,10 @@ public static void PopulateItems() rarity = 7, minLevel = 20, maxLevel = 22, - CanConsume = false, - StackSize = 1, - onEquip = () => ModdedPlayer.Stats.spell_magicArrowDamageScaling.Add(16.66f), - onUnequip = () => ModdedPlayer.Stats.spell_magicArrowDamageScaling.Sub(16.66f), + canConsume = false, + stackSize = 1, + onEquipCallback = () => ModdedPlayer.Stats.spell_magicArrowDamageScaling.Add(16.66f), + onUnequipCallback = () => ModdedPlayer.Stats.spell_magicArrowDamageScaling.Sub(16.66f), type = BaseItem.ItemType.Bracer, icon = Res.ResourceLoader.GetTexture(93), }; @@ -4517,10 +4517,10 @@ public static void PopulateItems() rarity = 7, minLevel = 20, maxLevel = 22, - CanConsume = false, - StackSize = 1, - onEquip = () => ModdedPlayer.Stats.spell_magicArrowVolleyCount.Add(3), - onUnequip = () => ModdedPlayer.Stats.spell_magicArrowVolleyCount.Sub(3), + canConsume = false, + stackSize = 1, + onEquipCallback = () => ModdedPlayer.Stats.spell_magicArrowVolleyCount.Add(3), + onUnequipCallback = () => ModdedPlayer.Stats.spell_magicArrowVolleyCount.Sub(3), type = BaseItem.ItemType.Ring, icon = Res.ResourceLoader.GetTexture(90), }; @@ -4538,8 +4538,8 @@ public static void PopulateItems() rarity = 0, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Helmet, icon = Res.ResourceLoader.GetTexture(91), }; @@ -4558,10 +4558,10 @@ public static void PopulateItems() rarity = 5, minLevel = 30, maxLevel = 34, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.Polearm, + subtype = BaseItem.WeaponModelType.Polearm, icon = Res.ResourceLoader.GetTexture(181), }; new BaseItem(new Stat[][] @@ -4584,8 +4584,8 @@ public static void PopulateItems() rarity = 6, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.ChestArmor, icon = Res.ResourceLoader.GetTexture(96), }; @@ -4605,12 +4605,12 @@ public static void PopulateItems() rarity = 4, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.ChestArmor, icon = Res.ResourceLoader.GetTexture(96), }; - SomeItem.PossibleStats[0][0].multipier = 2; + SomeItem.statSlots[0][0].multipier = 2; } { var demoVestItem = new BaseItem(new Stat[][] @@ -4631,12 +4631,12 @@ public static void PopulateItems() rarity = 5, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.ChestArmor, icon = Res.ResourceLoader.GetTexture(96), }; - demoVestItem.PossibleStats[0][0].multipier = 7; + demoVestItem.statSlots[0][0].multipier = 7; } new BaseItem(new Stat[][] @@ -4656,8 +4656,8 @@ public static void PopulateItems() rarity = 6, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Glove, icon = Res.ResourceLoader.GetTexture(86), }; @@ -4678,8 +4678,8 @@ public static void PopulateItems() rarity = 3, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Glove, icon = Res.ResourceLoader.GetTexture(86), }; @@ -4701,13 +4701,13 @@ public static void PopulateItems() rarity = 5, minLevel = 10, maxLevel = 12, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.Greatbow, + subtype = BaseItem.WeaponModelType.Greatbow, icon = Res.ResourceLoader.GetTexture(170), - }.PossibleStats[0][0].multipier = -2f; + }.statSlots[0][0].multipier = -2f; new BaseItem(new Stat[][] { @@ -4722,8 +4722,8 @@ public static void PopulateItems() rarity = 2, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(100), }; @@ -4742,8 +4742,8 @@ public static void PopulateItems() rarity = 4, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(100), }; @@ -4761,8 +4761,8 @@ public static void PopulateItems() rarity = 3, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(100), }; @@ -4787,11 +4787,11 @@ public static void PopulateItems() rarity = 6, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(100), - }.PossibleStats[0][0].multipier = 7f; + }.statSlots[0][0].multipier = 7f; new BaseItem(new Stat[][] { new [] {STRENGTH,VITALITY,AGILITY,ALL_ATTRIBUTES,INTELLIGENCE}, @@ -4815,8 +4815,8 @@ public static void PopulateItems() rarity = 6, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Glove, icon = Res.ResourceLoader.GetTexture(86), }; @@ -4842,8 +4842,8 @@ public static void PopulateItems() rarity = 6, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Bracer, icon = Res.ResourceLoader.GetTexture(93), }; @@ -4869,8 +4869,8 @@ public static void PopulateItems() rarity = 6, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Helmet, icon = Res.ResourceLoader.GetTexture(91), }; @@ -4895,8 +4895,8 @@ public static void PopulateItems() rarity = 6, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Boot, icon = Res.ResourceLoader.GetTexture(85), }; @@ -4919,8 +4919,8 @@ public static void PopulateItems() rarity = 5, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Pants, icon = Res.ResourceLoader.GetTexture(87), }; @@ -4939,8 +4939,8 @@ public static void PopulateItems() rarity = 4, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Pants, icon = Res.ResourceLoader.GetTexture(87), }; @@ -4964,8 +4964,8 @@ public static void PopulateItems() rarity = 5, minLevel = 1, maxLevel = 4, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.ChestArmor, icon = Res.ResourceLoader.GetTexture(96), }; @@ -4989,8 +4989,8 @@ public static void PopulateItems() rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 10, maxLevel = 14, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item + canConsume = false, + stackSize = 1, //stacking in inventory like in mc, one means single item type = BaseItem.ItemType.Ring, icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that }; @@ -5012,8 +5012,8 @@ public static void PopulateItems() rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 10, maxLevel = 14, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item + canConsume = false, + stackSize = 1, //stacking in inventory like in mc, one means single item type = BaseItem.ItemType.Ring, icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that }; @@ -5035,8 +5035,8 @@ public static void PopulateItems() rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 10, maxLevel = 14, - CanConsume = false, - StackSize = 1, //stacking in inventory like in mc, one means single item + canConsume = false, + stackSize = 1, //stacking in inventory like in mc, one means single item type = BaseItem.ItemType.Ring, icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that }; @@ -5060,8 +5060,8 @@ public static void PopulateItems() rarity = 6, minLevel = 5, maxLevel = 6, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.ChestArmor, icon = Res.ResourceLoader.GetTexture(96), }; @@ -5084,8 +5084,8 @@ public static void PopulateItems() rarity = 6, minLevel = 5, maxLevel = 6, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Ring, icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that }; @@ -5102,8 +5102,8 @@ public static void PopulateItems() rarity = 2, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Helmet, icon = Res.ResourceLoader.GetTexture(91), }; @@ -5119,8 +5119,8 @@ public static void PopulateItems() rarity = 2, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Helmet, icon = Res.ResourceLoader.GetTexture(91), }; @@ -5135,10 +5135,10 @@ public static void PopulateItems() rarity = 3, minLevel = 10, maxLevel = 16, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.Polearm, + subtype = BaseItem.WeaponModelType.Polearm, icon = Res.ResourceLoader.GetTexture(181), }; new BaseItem(new Stat[][] @@ -5161,8 +5161,8 @@ public static void PopulateItems() rarity = 6, minLevel = 5, maxLevel = 6, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.ChestArmor, icon = Res.ResourceLoader.GetTexture(96), }; @@ -5188,14 +5188,14 @@ public static void PopulateItems() rarity = 7, minLevel = 6, maxLevel = 9, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.LongSword, + subtype = BaseItem.WeaponModelType.LongSword, icon = Res.ResourceLoader.GetTexture(88), - onEquip = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Add(15), - onUnequip = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Sub(15), - }.PossibleStats[0][0].multipier = 1.5f; + onEquipCallback = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Add(15), + onUnequipCallback = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Sub(15), + }.statSlots[0][0].multipier = 1.5f; new BaseItem(new Stat[][] @@ -5221,12 +5221,12 @@ public static void PopulateItems() rarity = 7, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Boot, icon = Res.ResourceLoader.GetTexture(85), - onEquip = () => AkagiSet.Equip(), - onUnequip = () => AkagiSet.Unequip(), + onEquipCallback = () => AkagiSet.Equip(), + onUnequipCallback = () => AkagiSet.Unequip(), }; new BaseItem(new Stat[][] @@ -5251,12 +5251,12 @@ public static void PopulateItems() rarity = 7, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Pants, icon = Res.ResourceLoader.GetTexture(87), - onEquip = () => AkagiSet.Equip(), - onUnequip = () => AkagiSet.Unequip(), + onEquipCallback = () => AkagiSet.Equip(), + onUnequipCallback = () => AkagiSet.Unequip(), }; new BaseItem(new Stat[][] @@ -5281,12 +5281,12 @@ public static void PopulateItems() rarity = 7, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.ChestArmor, icon = Res.ResourceLoader.GetTexture(96), - onEquip = () => AkagiSet.Equip(), - onUnequip = () => AkagiSet.Unequip(), + onEquipCallback = () => AkagiSet.Equip(), + onUnequipCallback = () => AkagiSet.Unequip(), }; new BaseItem(new Stat[][] @@ -5311,12 +5311,12 @@ public static void PopulateItems() rarity = 7, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Helmet, icon = Res.ResourceLoader.GetTexture(91), - onEquip = () => AkagiSet.Equip(), - onUnequip = () => AkagiSet.Unequip(), + onEquipCallback = () => AkagiSet.Equip(), + onUnequipCallback = () => AkagiSet.Unequip(), }; new BaseItem(new Stat[][] @@ -5341,12 +5341,12 @@ public static void PopulateItems() rarity = 7, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(100), - onEquip = () => COTFEvents.Instance.OnHitMelee.AddListener(UniqueItemFunctions.EnemyBleedForPlayerHP), - onUnequip = () => COTFEvents.Instance.OnHitMelee.RemoveListener(UniqueItemFunctions.EnemyBleedForPlayerHP), + onEquipCallback = () => COTFEvents.Instance.OnHitMelee.AddListener(UniqueItemFunctions.EnemyBleedForPlayerHP), + onUnequipCallback = () => COTFEvents.Instance.OnHitMelee.RemoveListener(UniqueItemFunctions.EnemyBleedForPlayerHP), }; new BaseItem(new int[][] { }) { @@ -5357,17 +5357,17 @@ public static void PopulateItems() rarity = 6, minLevel = 1, maxLevel = 2, - CanConsume = false, - StackSize = 100, + canConsume = false, + stackSize = 100, type = BaseItem.ItemType.Material, icon = Res.ResourceLoader.GetTexture(190), - onConsume = x => + onConsumeCallback = x => { int socketMax = StatActions.GetMaxSocketAmountOnItem(in x.type); - int socketCurrent = x.Stats.Count(y => y.id >= 3000); + int socketCurrent = x.stats.Count(y => y.id >= 3000); if (socketCurrent < socketMax) { - x.Stats.Add(new ItemStat(ItemDataBase.StatByID(3000))); + x.stats.Add(new ItemStat(ItemDataBase.StatByID(3000))); return true; } return false; @@ -5389,13 +5389,13 @@ public static void PopulateItems() rarity = 3, minLevel = 16, maxLevel = 18, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Boot, icon = Res.ResourceLoader.GetTexture(85), - onEquip = () => ModdedPlayer.Stats.movementSpeed.Multiply(-1.2f), - onUnequip = () => ModdedPlayer.Stats.movementSpeed.Divide(-1.2f) - }.PossibleStats[0][0].multipier = 3; + onEquipCallback = () => ModdedPlayer.Stats.movementSpeed.Multiply(-1.2f), + onUnequipCallback = () => ModdedPlayer.Stats.movementSpeed.Divide(-1.2f) + }.statSlots[0][0].multipier = 3; new BaseItem(new Stat[][] { @@ -5412,8 +5412,8 @@ public static void PopulateItems() rarity = 3, minLevel = 1, maxLevel = 2, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Helmet, icon = Res.ResourceLoader.GetTexture(91), }; @@ -5432,8 +5432,8 @@ public static void PopulateItems() rarity = 4, minLevel = 1, maxLevel = 2, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Helmet, icon = Res.ResourceLoader.GetTexture(91), }; @@ -5476,8 +5476,8 @@ public static void PopulateItems() rarity = 3, minLevel = 50, maxLevel = 60, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.ChestArmor, icon = Res.ResourceLoader.GetTexture(96), }; @@ -5495,12 +5495,12 @@ public static void PopulateItems() rarity = 4, minLevel = 6, maxLevel = 9, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(100), - onEquip = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Add(2), - onUnequip = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Sub(2), + onEquipCallback = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Add(2), + onUnequipCallback = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Sub(2), }; new BaseItem(new Stat[][] { @@ -5517,12 +5517,12 @@ public static void PopulateItems() rarity = 4, minLevel = 6, maxLevel = 9, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(100), - onEquip = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Add(3), - onUnequip = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Sub(3), + onEquipCallback = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Add(3), + onUnequipCallback = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Sub(3), }; new BaseItem(new Stat[][] { @@ -5540,12 +5540,12 @@ public static void PopulateItems() rarity = 5, minLevel = 6, maxLevel = 9, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(100), - onEquip = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Add(4), - onUnequip = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Sub(4), + onEquipCallback = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Add(4), + onUnequipCallback = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Sub(4), }; new BaseItem(new Stat[][] { @@ -5562,12 +5562,12 @@ public static void PopulateItems() rarity = 5, minLevel = 5, maxLevel = 9, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Ring, icon = Res.ResourceLoader.GetTexture(90), - onEquip = () => { ModdedPlayer.Stats.spell_blinkRange.Add(25); }, - onUnequip = () => { ModdedPlayer.Stats.spell_blinkRange.Sub(25); }, + onEquipCallback = () => { ModdedPlayer.Stats.spell_blinkRange.Add(25); }, + onUnequipCallback = () => { ModdedPlayer.Stats.spell_blinkRange.Sub(25); }, }; new BaseItem(new Stat[][] @@ -5586,12 +5586,12 @@ public static void PopulateItems() rarity = 6, minLevel = 80, maxLevel = 90, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(101), - onEquip = () => ModdedPlayer.Stats.i_infinityLoop.value = true, - onUnequip = () => ModdedPlayer.Stats.i_infinityLoop.value = false, + onEquipCallback = () => ModdedPlayer.Stats.i_infinityLoop.value = true, + onUnequipCallback = () => ModdedPlayer.Stats.i_infinityLoop.value = false, }; new BaseItem(new int[][] { @@ -5609,13 +5609,13 @@ public static void PopulateItems() rarity = 4, minLevel = 30, maxLevel = 35, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.Hammer, + subtype = BaseItem.WeaponModelType.Hammer, icon = Res.ResourceLoader.GetTexture(109), - onEquip = () => ModdedPlayer.Stats.chanceToWeaken.Add(0.3f), - onUnequip = () => ModdedPlayer.Stats.chanceToWeaken.Sub(0.3f), + onEquipCallback = () => ModdedPlayer.Stats.chanceToWeaken.Add(0.3f), + onUnequipCallback = () => ModdedPlayer.Stats.chanceToWeaken.Sub(0.3f), }; new BaseItem(new int[][] @@ -5635,13 +5635,13 @@ public static void PopulateItems() rarity = 5, minLevel = 30, maxLevel = 35, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.Hammer, + subtype = BaseItem.WeaponModelType.Hammer, icon = Res.ResourceLoader.GetTexture(109), - onEquip = () => ModdedPlayer.Stats.chanceToWeaken.Add(0.45f), - onUnequip = () => ModdedPlayer.Stats.chanceToWeaken.Sub(0.45f), + onEquipCallback = () => ModdedPlayer.Stats.chanceToWeaken.Add(0.45f), + onUnequipCallback = () => ModdedPlayer.Stats.chanceToWeaken.Sub(0.45f), }; new BaseItem(new Stat[][] { @@ -5660,13 +5660,13 @@ public static void PopulateItems() rarity = 5, minLevel = 30, maxLevel = 35, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.Hammer, + subtype = BaseItem.WeaponModelType.Hammer, icon = Res.ResourceLoader.GetTexture(109), - onEquip = () => { ModdedPlayer.Stats.smashDamage.Multiply(3f); }, - onUnequip = () => { ModdedPlayer.Stats.smashDamage.Divide(3f); }, + onEquipCallback = () => { ModdedPlayer.Stats.smashDamage.Multiply(3f); }, + onUnequipCallback = () => { ModdedPlayer.Stats.smashDamage.Divide(3f); }, }; new BaseItem(new Stat[][] { @@ -5681,12 +5681,12 @@ public static void PopulateItems() rarity = 3, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Ring, icon = Res.ResourceLoader.GetTexture(90), - onEquip = () => COTFEvents.Instance.OnHitEnemy.AddListener(UniqueItemFunctions.Gain1EnergyOnHit), - onUnequip = () => COTFEvents.Instance.OnHitEnemy.RemoveListener(UniqueItemFunctions.Gain1EnergyOnHit), + onEquipCallback = () => COTFEvents.Instance.OnHitEnemy.AddListener(UniqueItemFunctions.Gain1EnergyOnHit), + onUnequipCallback = () => COTFEvents.Instance.OnHitEnemy.RemoveListener(UniqueItemFunctions.Gain1EnergyOnHit), }; new BaseItem(new Stat[][] { @@ -5705,12 +5705,12 @@ public static void PopulateItems() rarity = 6, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Ring, icon = Res.ResourceLoader.GetTexture(90), - onEquip = () => COTFEvents.Instance.OnHitEnemy.AddListener(UniqueItemFunctions.Gain10EnergyOnHit), - onUnequip = () => COTFEvents.Instance.OnHitEnemy.RemoveListener(UniqueItemFunctions.Gain10EnergyOnHit), + onEquipCallback = () => COTFEvents.Instance.OnHitEnemy.AddListener(UniqueItemFunctions.Gain10EnergyOnHit), + onUnequipCallback = () => COTFEvents.Instance.OnHitEnemy.RemoveListener(UniqueItemFunctions.Gain10EnergyOnHit), }; new BaseItem(new Stat[][] { @@ -5726,10 +5726,10 @@ public static void PopulateItems() rarity = 4, minLevel = 20, maxLevel = 22, - CanConsume = false, - StackSize = 1, - onEquip = () => ModdedPlayer.Stats.spell_magicArrowVolleyCount.Add(1), - onUnequip = () => ModdedPlayer.Stats.spell_magicArrowVolleyCount.Sub(1), + canConsume = false, + stackSize = 1, + onEquipCallback = () => ModdedPlayer.Stats.spell_magicArrowVolleyCount.Add(1), + onUnequipCallback = () => ModdedPlayer.Stats.spell_magicArrowVolleyCount.Sub(1), type = BaseItem.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(100) }; @@ -5750,10 +5750,10 @@ public static void PopulateItems() rarity = 5, minLevel = 50, maxLevel = 52, - CanConsume = false, - StackSize = 1, - onEquip = () => ModdedPlayer.Stats.spell_magicArrowVolleyCount.Add(2), - onUnequip = () => ModdedPlayer.Stats.spell_magicArrowVolleyCount.Sub(2), + canConsume = false, + stackSize = 1, + onEquipCallback = () => ModdedPlayer.Stats.spell_magicArrowVolleyCount.Add(2), + onUnequipCallback = () => ModdedPlayer.Stats.spell_magicArrowVolleyCount.Sub(2), type = BaseItem.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(100) }; @@ -5770,12 +5770,12 @@ public static void PopulateItems() rarity = 3, minLevel = 2, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Quiver, icon = Res.ResourceLoader.GetTexture(98), - onEquip = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Add(0.15f), - onUnequip = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Sub(0.15f), + onEquipCallback = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Add(0.15f), + onUnequipCallback = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Sub(0.15f), }; new BaseItem(new int[][] { @@ -5792,12 +5792,12 @@ public static void PopulateItems() rarity = 4, minLevel = 2, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Quiver, icon = Res.ResourceLoader.GetTexture(98), - onEquip = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Add(0.2f), - onUnequip = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Sub(0.2f), + onEquipCallback = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Add(0.2f), + onUnequipCallback = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Sub(0.2f), }; new BaseItem(new int[][] { @@ -5815,12 +5815,12 @@ public static void PopulateItems() rarity = 5, minLevel = 2, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Quiver, icon = Res.ResourceLoader.GetTexture(98), - onEquip = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Add(0.25f), - onUnequip = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Sub(0.25f), + onEquipCallback = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Add(0.25f), + onUnequipCallback = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Sub(0.25f), }; new BaseItem(new int[][] { @@ -5839,12 +5839,12 @@ public static void PopulateItems() rarity = 6, minLevel = 12, maxLevel = 20, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Quiver, icon = Res.ResourceLoader.GetTexture(98), - onEquip = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Add(0.4f), - onUnequip = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Sub(0.4f), + onEquipCallback = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Add(0.4f), + onUnequipCallback = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Sub(0.4f), }; new BaseItem(new int[][] { }) @@ -5855,16 +5855,16 @@ public static void PopulateItems() rarity = 6, minLevel = 1, maxLevel = 2, - CanConsume = false, - StackSize = 100, + canConsume = false, + stackSize = 100, type = BaseItem.ItemType.Material, icon = Res.ResourceLoader.GetTexture(193), - onConsume = x => + onConsumeCallback = x => { - if (x.Equipped) + if (x.isEquipped) return false; - var stats = x.Stats.Where(y => y.id == (int)VITALITY || y.id == (int)INTELLIGENCE || y.id == (int)AGILITY + var stats = x.stats.Where(y => y.id == (int)VITALITY || y.id == (int)INTELLIGENCE || y.id == (int)AGILITY || y.id == (int)LESSERVITALITY || y.id == (int)LESSERINTELLIGENCE || y.id == (int)LESSERAGILITY || y.id == (int)BASE_RANGED_DAMAGE || y.id == (int)BASE_SPELL_DAMAGE || y.id == (int)RANGED_DAMAGE_INCREASE || y.id == (int)SPELL_DAMAGE_MULTIPLIER).ToArray(); @@ -5876,7 +5876,7 @@ public static void PopulateItems() return false; int i = UnityEngine.Random.Range(0, c); ItemStat stat = stats[i]; - int index = x.Stats.IndexOf(stat); + int index = x.stats.IndexOf(stat); ItemStat newStat; Stat statID = (Stat)stat.id; @@ -5905,7 +5905,7 @@ public static void PopulateItems() } newStat.amount = stat.amount; newStat.possibleStatsIndex = stat.possibleStatsIndex; - x.Stats[index] = newStat; + x.stats[index] = newStat; return true; } }; @@ -5917,16 +5917,16 @@ public static void PopulateItems() rarity = 6, minLevel = 1, maxLevel = 2, - CanConsume = false, - StackSize = 100, + canConsume = false, + stackSize = 100, type = BaseItem.ItemType.Material, icon = Res.ResourceLoader.GetTexture(191), - onConsume = x => + onConsumeCallback = x => { - if (x.Equipped) + if (x.isEquipped) return false; - var stats = x.Stats.Where(y => y.id == (int)VITALITY || y.id == (int)STRENGTH || y.id == (int)AGILITY + var stats = x.stats.Where(y => y.id == (int)VITALITY || y.id == (int)STRENGTH || y.id == (int)AGILITY || y.id == (int)LESSERVITALITY || y.id == (int)LESSERSTRENGTH || y.id == (int)LESSERAGILITY || y.id == (int)BASE_RANGED_DAMAGE || y.id == (int)BASE_MELEE_DAMAGE || y.id == (int)RANGED_DAMAGE_INCREASE || y.id == (int)MELEE_DAMAGE_INCREASE).ToArray(); @@ -5938,7 +5938,7 @@ public static void PopulateItems() return false; int i = UnityEngine.Random.Range(0, c); ItemStat stat = stats[i]; - int index = x.Stats.IndexOf(stat); + int index = x.stats.IndexOf(stat); ItemStat newStat; Stat statID = (Stat)stat.id; @@ -5967,7 +5967,7 @@ public static void PopulateItems() } newStat.amount = stat.amount; newStat.possibleStatsIndex = stat.possibleStatsIndex; - x.Stats[index] = newStat; + x.stats[index] = newStat; return true; } }; @@ -5979,16 +5979,16 @@ public static void PopulateItems() rarity = 6, minLevel = 1, maxLevel = 2, - CanConsume = false, - StackSize = 100, + canConsume = false, + stackSize = 100, type = BaseItem.ItemType.Material, icon = Res.ResourceLoader.GetTexture(192), - onConsume = x => + onConsumeCallback = x => { - if (x.Equipped) + if (x.isEquipped) return false; - var stats = x.Stats.Where(y => y.id == (int)VITALITY || y.id == (int)STRENGTH || y.id == (int)INTELLIGENCE + var stats = x.stats.Where(y => y.id == (int)VITALITY || y.id == (int)STRENGTH || y.id == (int)INTELLIGENCE || y.id == (int)LESSERVITALITY || y.id == (int)LESSERSTRENGTH || y.id == (int)LESSERINTELLIGENCE || y.id == (int)BASE_SPELL_DAMAGE || y.id == (int)BASE_MELEE_DAMAGE || y.id == (int)SPELL_DAMAGE_MULTIPLIER || y.id == (int)MELEE_DAMAGE_INCREASE).ToArray(); @@ -6000,7 +6000,7 @@ public static void PopulateItems() return false; int i = UnityEngine.Random.Range(0, c); ItemStat stat = stats[i]; - int index = x.Stats.IndexOf(stat); + int index = x.stats.IndexOf(stat); ItemStat newStat; Stat statID = (Stat)stat.id; @@ -6029,7 +6029,7 @@ public static void PopulateItems() } newStat.amount = stat.amount; newStat.possibleStatsIndex = stat.possibleStatsIndex; - x.Stats[index] = newStat; + x.stats[index] = newStat; return true; } }; @@ -6042,16 +6042,16 @@ public static void PopulateItems() rarity = 6, minLevel = 1, maxLevel = 2, - CanConsume = false, - StackSize = 100, + canConsume = false, + stackSize = 100, type = BaseItem.ItemType.Material, icon = Res.ResourceLoader.GetTexture(199), - onConsume = x => + onConsumeCallback = x => { - if (x.Equipped) + if (x.isEquipped) return false; - var stats = x.Stats.Where(y => y.id == (int)VITALITY || y.id == (int)STRENGTH || y.id == (int)INTELLIGENCE + var stats = x.stats.Where(y => y.id == (int)VITALITY || y.id == (int)STRENGTH || y.id == (int)INTELLIGENCE || y.id == (int)LESSERAGILITY || y.id == (int)LESSERSTRENGTH || y.id == (int)LESSERINTELLIGENCE).ToArray(); int c = stats.Count(); @@ -6061,7 +6061,7 @@ public static void PopulateItems() return false; int i = UnityEngine.Random.Range(0, c); ItemStat stat = stats[i]; - int index = x.Stats.IndexOf(stat); + int index = x.stats.IndexOf(stat); ItemStat newStat; Stat statID = (Stat)stat.id; @@ -6082,7 +6082,7 @@ public static void PopulateItems() } newStat.amount = stat.amount; newStat.possibleStatsIndex = stat.possibleStatsIndex; - x.Stats[index] = newStat; + x.stats[index] = newStat; return true; } }; @@ -6094,16 +6094,16 @@ public static void PopulateItems() rarity = 4, minLevel = 1, maxLevel = 2, - CanConsume = false, - StackSize = 100, + canConsume = false, + stackSize = 100, type = BaseItem.ItemType.Material, icon = Res.ResourceLoader.GetTexture(198), - onConsume = x => + onConsumeCallback = x => { - if (x.Equipped) + if (x.isEquipped) return false; - var stats = x.Stats.RemoveAll(y => y.amount < 0); + var stats = x.stats.RemoveAll(y => y.amount < 0); if (stats > 0) return true; return false; @@ -6117,16 +6117,16 @@ public static void PopulateItems() rarity = 6, minLevel = 1, maxLevel = 2, - CanConsume = false, - StackSize = 100, + canConsume = false, + stackSize = 100, type = BaseItem.ItemType.Material, icon = Res.ResourceLoader.GetTexture(198), - onConsume = x => + onConsumeCallback = x => { - if (x.Equipped) + if (x.isEquipped) return false; - var stats = x.Stats.Where(y => y.amount < 0).ToList(); + var stats = x.stats.Where(y => y.amount < 0).ToList(); if (stats.Count > 0) { for (int i = 0; i < stats.Count; i++) @@ -6146,16 +6146,16 @@ public static void PopulateItems() rarity = 7, minLevel = 1, maxLevel = 2, - CanConsume = false, - StackSize = 100, + canConsume = false, + stackSize = 100, type = BaseItem.ItemType.Material, icon = Res.ResourceLoader.GetTexture(196), - onConsume = x => + onConsumeCallback = x => { - if (x.Equipped) + if (x.isEquipped) return false; var itemType = x.type; - if (itemType == BaseItem.ItemType.Other || itemType == BaseItem.ItemType.Material || x.Amount > 1) + if (itemType == BaseItem.ItemType.Other || itemType == BaseItem.ItemType.Material || x.stackedAmount > 1) return false; if (Player.Inventory.Instance.ItemSlots.ContainsValue(x)) { @@ -6163,7 +6163,7 @@ public static void PopulateItems() { if (Player.Inventory.Instance.ItemSlots[slotIndex] == x) { - var options = ItemDataBase.ItemBases.Where(y => y.Value.rarity == 7 && y.Value.type == itemType && (itemType != BaseItem.ItemType.Weapon || y.Value.weaponModel == x.weaponModel)).Select(y => y.Key).ToList(); + var options = ItemDataBase.ItemBases.Where(y => y.Value.rarity == 7 && y.Value.type == itemType && (itemType != BaseItem.ItemType.Weapon || y.Value.subtype == x.subtype)).Select(y => y.Key).ToList(); if (options.Count == 0) { ModAPI.Log.Write("No tier 7 items for type: " + itemType); @@ -6192,21 +6192,21 @@ public static void PopulateItems() rarity = 4, minLevel = 1, maxLevel = 2, - CanConsume = false, - StackSize = 100, + canConsume = false, + stackSize = 100, type = BaseItem.ItemType.Material, icon = Res.ResourceLoader.GetTexture(197), - onConsume = x => + onConsumeCallback = x => { - if (x.Equipped) + if (x.isEquipped) return false; var itemType = x.type; - if (itemType == BaseItem.ItemType.Other || itemType == BaseItem.ItemType.Material || x.Amount > 1) + if (itemType == BaseItem.ItemType.Other || itemType == BaseItem.ItemType.Material || x.stackedAmount > 1) return false; - if (!x.Stats.Any(y => y.id == (int)ARMOR || y.id == (int)LESSERARMOR)) + if (!x.stats.Any(y => y.id == (int)ARMOR || y.id == (int)LESSERARMOR)) { ItemStat stat = new ItemStat(StatByID((int)ARMOR), x.level); - x.Stats.Add(stat); + x.stats.Add(stat); return true; } return false; @@ -6221,21 +6221,21 @@ public static void PopulateItems() rarity = 5, minLevel = 1, maxLevel = 2, - CanConsume = false, - StackSize = 100, + canConsume = false, + stackSize = 100, type = BaseItem.ItemType.Material, icon = Res.ResourceLoader.GetTexture(197), - onConsume = x => + onConsumeCallback = x => { - if (x.Equipped) + if (x.isEquipped) return false; var itemType = x.type; - if (itemType == BaseItem.ItemType.Other || itemType == BaseItem.ItemType.Material || x.Amount > 1) + if (itemType == BaseItem.ItemType.Other || itemType == BaseItem.ItemType.Material || x.stackedAmount > 1) return false; - if (!x.Stats.Any(y => y.id == (int)DAMAGE_REDUCTION)) + if (!x.stats.Any(y => y.id == (int)DAMAGE_REDUCTION)) { ItemStat stat = new ItemStat(StatByID((int)DAMAGE_REDUCTION), x.level); - x.Stats.Add(stat); + x.stats.Add(stat); return true; } return false; @@ -6250,18 +6250,18 @@ public static void PopulateItems() rarity = 4, minLevel = 1, maxLevel = 2, - CanConsume = false, - StackSize = 100, + canConsume = false, + stackSize = 100, type = BaseItem.ItemType.Material, icon = Res.ResourceLoader.GetTexture(195), - onConsume = x => + onConsumeCallback = x => { - if (x.Equipped) + if (x.isEquipped) return false; var itemType = x.type; - if (itemType == BaseItem.ItemType.Other || itemType == BaseItem.ItemType.Material || x.Amount > 1 || x.rarity > 5) + if (itemType == BaseItem.ItemType.Other || itemType == BaseItem.ItemType.Material || x.stackedAmount > 1 || x.rarity > 5) return false; - if (x.Stats.Count > 1) + if (x.stats.Count > 1) { x.RollStats(); return true; @@ -6277,18 +6277,18 @@ public static void PopulateItems() rarity = 6, minLevel = 1, maxLevel = 2, - CanConsume = false, - StackSize = 100, + canConsume = false, + stackSize = 100, type = BaseItem.ItemType.Material, icon = Res.ResourceLoader.GetTexture(194), - onConsume = x => + onConsumeCallback = x => { - if (x.Equipped) + if (x.isEquipped) return false; var itemType = x.type; - if (itemType == BaseItem.ItemType.Other || itemType == BaseItem.ItemType.Material || x.Amount > 1) + if (itemType == BaseItem.ItemType.Other || itemType == BaseItem.ItemType.Material || x.stackedAmount > 1) return false; - if (x.Stats.Count > 1) + if (x.stats.Count > 1) { x.RollStats(); return true; @@ -6314,14 +6314,14 @@ public static void PopulateItems() rarity = 6, minLevel = 35, maxLevel = 36, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.Axe, + subtype = BaseItem.WeaponModelType.Axe, icon = Res.ResourceLoader.GetTexture(138), - onEquip = () => ModdedPlayer.Stats.perk_bulletDamageMult.Multiply(2.5f), - onUnequip = () => ModdedPlayer.Stats.perk_bulletDamageMult.Divide(2.5f), - }.PossibleStats[0][0].multipier = -1f; + onEquipCallback = () => ModdedPlayer.Stats.perk_bulletDamageMult.Multiply(2.5f), + onUnequipCallback = () => ModdedPlayer.Stats.perk_bulletDamageMult.Divide(2.5f), + }.statSlots[0][0].multipier = -1f; new BaseItem(new Stat[][] { @@ -6344,13 +6344,13 @@ public static void PopulateItems() rarity = 7, minLevel = 35, maxLevel = 36, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.Axe, + subtype = BaseItem.WeaponModelType.Axe, icon = Res.ResourceLoader.GetTexture(138), - onEquip = () => { ModdedPlayer.Stats.perk_bulletDamageMult.Multiply(6f); ModdedPlayer.Stats.perk_bulletCritChance.Add(0.5f); }, - onUnequip = () => { ModdedPlayer.Stats.perk_bulletDamageMult.Divide(6f); ModdedPlayer.Stats.perk_bulletCritChance.Sub(0.5f); }, + onEquipCallback = () => { ModdedPlayer.Stats.perk_bulletDamageMult.Multiply(6f); ModdedPlayer.Stats.perk_bulletCritChance.Add(0.5f); }, + onUnequipCallback = () => { ModdedPlayer.Stats.perk_bulletDamageMult.Divide(6f); ModdedPlayer.Stats.perk_bulletCritChance.Sub(0.5f); }, }; new BaseItem(new Stat[][] { @@ -6371,10 +6371,10 @@ public static void PopulateItems() rarity = 6, minLevel = 50, maxLevel = 52, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.GreatSword, + subtype = BaseItem.WeaponModelType.GreatSword, icon = Res.ResourceLoader.GetTexture(88), }; new BaseItem(new Stat[][] @@ -6398,13 +6398,13 @@ public static void PopulateItems() rarity = 7, minLevel = 50, maxLevel = 52, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.GreatSword, + subtype = BaseItem.WeaponModelType.GreatSword, icon = Res.ResourceLoader.GetTexture(88), - onEquip = () => ModdedPlayer.Stats.spell_bashDamageDebuffAmount.Add(2.00f), - onUnequip = () => ModdedPlayer.Stats.spell_bashDamageDebuffAmount.Sub(2.00f), + onEquipCallback = () => ModdedPlayer.Stats.spell_bashDamageDebuffAmount.Add(2.00f), + onUnequipCallback = () => ModdedPlayer.Stats.spell_bashDamageDebuffAmount.Sub(2.00f), }; new BaseItem(new Stat[][] @@ -6428,12 +6428,12 @@ public static void PopulateItems() rarity = 7, minLevel = 1, maxLevel = 2, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Shield, icon = Res.ResourceLoader.GetTexture(99), - onEquip = () => ModdedPlayer.Stats.spell_frenzyDmg.Add(0.69f), - onUnequip = () => ModdedPlayer.Stats.spell_frenzyDmg.Add(0.69f), + onEquipCallback = () => ModdedPlayer.Stats.spell_frenzyDmg.Add(0.69f), + onUnequipCallback = () => ModdedPlayer.Stats.spell_frenzyDmg.Add(0.69f), }; new BaseItem(new Stat[][] { @@ -6450,8 +6450,8 @@ public static void PopulateItems() rarity = 5, minLevel = 1, maxLevel = 2, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Shield, icon = Res.ResourceLoader.GetTexture(99), }; @@ -6471,13 +6471,13 @@ public static void PopulateItems() rarity = 5, minLevel = 2, maxLevel = 6, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Helmet, icon = Res.ResourceLoader.GetTexture(91), - onEquip = () => ModdedPlayer.Stats.fireDuration.Add(2f), - onUnequip = () => ModdedPlayer.Stats.fireDuration.Sub(2f), - }.PossibleStats[0][0].multipier = 2; + onEquipCallback = () => ModdedPlayer.Stats.fireDuration.Add(2f), + onUnequipCallback = () => ModdedPlayer.Stats.fireDuration.Sub(2f), + }.statSlots[0][0].multipier = 2; new BaseItem(new Stat[][] { @@ -6499,13 +6499,13 @@ public static void PopulateItems() rarity = 7, minLevel = 2, maxLevel = 6, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Helmet, icon = Res.ResourceLoader.GetTexture(91), - onEquip = () => { ModdedPlayer.Stats.fireDuration.Add(7f); ModdedPlayer.Stats.fireTickRate.Add(3f); }, - onUnequip = () => { ModdedPlayer.Stats.fireDuration.Sub(7f); ModdedPlayer.Stats.fireTickRate.Sub(3f); }, - }.PossibleStats[0][0].multipier = 5; + onEquipCallback = () => { ModdedPlayer.Stats.fireDuration.Add(7f); ModdedPlayer.Stats.fireTickRate.Add(3f); }, + onUnequipCallback = () => { ModdedPlayer.Stats.fireDuration.Sub(7f); ModdedPlayer.Stats.fireTickRate.Sub(3f); }, + }.statSlots[0][0].multipier = 5; new BaseItem(new Stat[][] @@ -6530,16 +6530,16 @@ public static void PopulateItems() rarity = 7, minLevel = 5, maxLevel = 8, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.ShoulderArmor, icon = Res.ResourceLoader.GetTexture(95), - onEquip = () => + onEquipCallback = () => { ModdedPlayer.Stats.spell_fireboltEnergyCost.Add(5); ModdedPlayer.Stats.spell_fireboltDamageScaling.Add(7.5f); }, - onUnequip = () => + onUnequipCallback = () => { ModdedPlayer.Stats.spell_fireboltEnergyCost.Sub(5); ModdedPlayer.Stats.spell_fireboltDamageScaling.Sub(7.5f); @@ -6563,12 +6563,12 @@ public static void PopulateItems() rarity = 6, minLevel = 1, maxLevel = 1, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.SpellScroll, icon = Res.ResourceLoader.GetTexture(110), - onEquip = () => ModdedPlayer.Stats.spell_fireboltDamageScaling.Add(8), - onUnequip = () => ModdedPlayer.Stats.spell_fireboltDamageScaling.Sub(8), + onEquipCallback = () => ModdedPlayer.Stats.spell_fireboltDamageScaling.Add(8), + onUnequipCallback = () => ModdedPlayer.Stats.spell_fireboltDamageScaling.Sub(8), }; new BaseItem(new Stat[][] { @@ -6592,12 +6592,12 @@ public static void PopulateItems() rarity = 7, minLevel = 1, maxLevel = 1, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.SpellScroll, icon = Res.ResourceLoader.GetTexture(110), - onEquip = () => ModdedPlayer.Stats.spell_blinkDoExplosion.value = true, - onUnequip = () => ModdedPlayer.Stats.spell_blinkDoExplosion.value = false, + onEquipCallback = () => ModdedPlayer.Stats.spell_blinkDoExplosion.value = true, + onUnequipCallback = () => ModdedPlayer.Stats.spell_blinkDoExplosion.value = false, }; new BaseItem(new Stat[][] { @@ -6618,12 +6618,12 @@ public static void PopulateItems() rarity = 6, minLevel = 30, maxLevel = 34, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.Polearm, + subtype = BaseItem.WeaponModelType.Polearm, icon = Res.ResourceLoader.GetTexture(181), - }.PossibleStats[0][0].multipier = 6; + }.statSlots[0][0].multipier = 6; @@ -6637,16 +6637,16 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_527/*Stone Pauldrons*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.03f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.03f), + onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.03f), + onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.03f), rarity = 2, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.ShoulderArmor, icon = Res.ResourceLoader.GetTexture(95), - }.PossibleStats[0][0].multipier = -0.3f; + }.statSlots[0][0].multipier = -0.3f; new BaseItem(new Stat[][] { new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, @@ -6657,13 +6657,13 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_529/*Iron Shoulder Pads*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.04f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.04f), + onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.04f), + onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.04f), rarity = 3, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.ShoulderArmor, icon = Res.ResourceLoader.GetTexture(95), }; @@ -6678,13 +6678,13 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_531/*Steel Shoulder Pads*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.05f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.05f), + onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.05f), + onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.05f), rarity = 4, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.ShoulderArmor, icon = Res.ResourceLoader.GetTexture(95), }; @@ -6701,13 +6701,13 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_533/*Battle scarred Shoulder Pads*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.06f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.06f), + onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.06f), + onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.06f), rarity = 5, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.ShoulderArmor, icon = Res.ResourceLoader.GetTexture(95), }; @@ -6727,13 +6727,13 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_535/*Mystery Shoulder Pads*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.1f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.1f), + onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.1f), + onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.1f), rarity = 6, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.ShoulderArmor, icon = Res.ResourceLoader.GetTexture(95), }; @@ -6749,16 +6749,16 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_537/*Stone Shield*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.03f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.03f), + onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.03f), + onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.03f), rarity = 2, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Shield, icon = Res.ResourceLoader.GetTexture(99), - }.PossibleStats[0][0].multipier = -0.3f; + }.statSlots[0][0].multipier = -0.3f; new BaseItem(new Stat[][] { new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, @@ -6771,13 +6771,13 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_538/*Iron Shield*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.04f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.04f), + onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.04f), + onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.04f), rarity = 3, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Shield, icon = Res.ResourceLoader.GetTexture(99), }; @@ -6794,13 +6794,13 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_539/*Steel Tower Shield*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.05f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.05f), + onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.05f), + onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.05f), rarity = 4, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Shield, icon = Res.ResourceLoader.GetTexture(99), }; @@ -6820,13 +6820,13 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_540/*Guardian*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.06f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.06f), + onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.06f), + onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.06f), rarity = 5, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Shield, icon = Res.ResourceLoader.GetTexture(99), }; @@ -6848,16 +6848,16 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_541/*Mystery Shield*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.1f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.1f), + onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.1f), + onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.1f), rarity = 6, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Shield, icon = Res.ResourceLoader.GetTexture(99), - }.PossibleStats[0][0].multipier = 2f; + }.statSlots[0][0].multipier = 2f; new BaseItem(new Stat[][] @@ -6870,16 +6870,16 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_542/*Light Boot*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.03f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.03f), + onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.03f), + onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.03f), rarity = 2, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Boot, icon = Res.ResourceLoader.GetTexture(85), - }.PossibleStats[0][0].multipier = 1.3f; + }.statSlots[0][0].multipier = 1.3f; new BaseItem(new Stat[][] { new [] {MOVEMENT_SPEED}, @@ -6891,13 +6891,13 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_543/*Iron Boots*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.04f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.04f), + onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.04f), + onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.04f), rarity = 3, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Boot, icon = Res.ResourceLoader.GetTexture(85), }; @@ -6913,13 +6913,13 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_544/*Steel Boots*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.05f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.05f), + onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.05f), + onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.05f), rarity = 4, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Boot, icon = Res.ResourceLoader.GetTexture(85), }; @@ -6937,13 +6937,13 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_545/*Threads*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.06f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.06f), + onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.06f), + onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.06f), rarity = 5, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Boot, icon = Res.ResourceLoader.GetTexture(85), }; @@ -6964,13 +6964,13 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_546/*Mystery Boots*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.1f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.1f), + onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.1f), + onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.1f), rarity = 6, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Boot, icon = Res.ResourceLoader.GetTexture(85), }; @@ -6987,16 +6987,16 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_547/*Wraps*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.03f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.03f), + onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.03f), + onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.03f), rarity = 2, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Glove, icon = Res.ResourceLoader.GetTexture(86), - }.PossibleStats[0][0].multipier = -0.3f; + }.statSlots[0][0].multipier = -0.3f; new BaseItem(new Stat[][] { new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, @@ -7007,13 +7007,13 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_301/*Iron Gauntlet*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.04f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.04f), + onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.04f), + onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.04f), rarity = 3, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Glove, icon = Res.ResourceLoader.GetTexture(86), }; @@ -7028,13 +7028,13 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_548/*Steel Gauntlet*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.05f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.05f), + onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.05f), + onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.05f), rarity = 4, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Glove, icon = Res.ResourceLoader.GetTexture(86), }; @@ -7051,13 +7051,13 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_549/*Titanium Gauntlet*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.06f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.06f), + onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.06f), + onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.06f), rarity = 5, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Glove, icon = Res.ResourceLoader.GetTexture(86), }; @@ -7077,13 +7077,13 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_550/*Mystery Gauntlet*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.1f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.1f), + onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.1f), + onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.1f), rarity = 6, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Glove, icon = Res.ResourceLoader.GetTexture(86), }; @@ -7100,16 +7100,16 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_551/*Leather Tasset*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.03f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.03f), + onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.03f), + onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.03f), rarity = 2, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Pants, icon = Res.ResourceLoader.GetTexture(87), - }.PossibleStats[0][0].multipier = -0.3f; + }.statSlots[0][0].multipier = -0.3f; new BaseItem(new Stat[][] { new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, @@ -7121,13 +7121,13 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_552/*Iron Tasset*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.04f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.04f), + onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.04f), + onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.04f), rarity = 3, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Pants, icon = Res.ResourceLoader.GetTexture(87), }; @@ -7143,13 +7143,13 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_553/*Steel Tasset*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.05f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.05f), + onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.05f), + onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.05f), rarity = 4, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Pants, icon = Res.ResourceLoader.GetTexture(87), }; @@ -7167,13 +7167,13 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_554/*Black Steel Leggins*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.06f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.06f), + onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.06f), + onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.06f), rarity = 5, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Pants, icon = Res.ResourceLoader.GetTexture(87), }; @@ -7194,13 +7194,13 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_555/*Mystery Leggins*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.1f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.1f), + onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.1f), + onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.1f), rarity = 6, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Pants, icon = Res.ResourceLoader.GetTexture(87), }; @@ -7214,16 +7214,16 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_556/*Leather Vest*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.03f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.03f), + onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.03f), + onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.03f), rarity = 2, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.ChestArmor, icon = Res.ResourceLoader.GetTexture(96), - }.PossibleStats[0][0].multipier = -0.3f; + }.statSlots[0][0].multipier = -0.3f; new BaseItem(new Stat[][] { new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, @@ -7234,13 +7234,13 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_557/*Iron Breastplate*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.04f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.04f), + onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.04f), + onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.04f), rarity = 3, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.ChestArmor, icon = Res.ResourceLoader.GetTexture(96), }; @@ -7255,13 +7255,13 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_558/*Steel Breastplate*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.05f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.05f), + onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.05f), + onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.05f), rarity = 4, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.ChestArmor, icon = Res.ResourceLoader.GetTexture(96), }; @@ -7279,13 +7279,13 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_559/*Silver Armor*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.06f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.06f), + onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.06f), + onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.06f), rarity = 5, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.ChestArmor, icon = Res.ResourceLoader.GetTexture(96), }; @@ -7306,13 +7306,13 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_560/*Mystery Breastplate*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.1f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.1f), + onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.1f), + onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.1f), rarity = 6, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.ChestArmor, icon = Res.ResourceLoader.GetTexture(96), }; @@ -7326,16 +7326,16 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_561/*Cloth Band*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.03f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.03f), + onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.03f), + onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.03f), rarity = 2, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Bracer, icon = Res.ResourceLoader.GetTexture(93), - }.PossibleStats[0][0].multipier = -0.3f; + }.statSlots[0][0].multipier = -0.3f; new BaseItem(new Stat[][] { new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, @@ -7346,13 +7346,13 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_562/*Iron Wristguard*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.04f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.04f), + onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.04f), + onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.04f), rarity = 3, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Bracer, icon = Res.ResourceLoader.GetTexture(93), }; @@ -7367,13 +7367,13 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_563/*Steel Wristguard*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.05f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.05f), + onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.05f), + onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.05f), rarity = 4, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Bracer, icon = Res.ResourceLoader.GetTexture(93), }; @@ -7390,13 +7390,13 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_564/*Baron Wristguards*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.06f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.06f), + onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.06f), + onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.06f), rarity = 5, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Bracer, icon = Res.ResourceLoader.GetTexture(93), }; @@ -7416,13 +7416,13 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_565/*Mystery Wristguards*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.1f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.1f), + onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.1f), + onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.1f), rarity = 6, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Bracer, icon = Res.ResourceLoader.GetTexture(93), }; @@ -7438,16 +7438,16 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_218/*Horned Helmet*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.03f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.03f), + onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.03f), + onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.03f), rarity = 2, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Helmet, icon = Res.ResourceLoader.GetTexture(91), - }.PossibleStats[0][0].multipier = -0.3f; + }.statSlots[0][0].multipier = -0.3f; new BaseItem(new Stat[][] { new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, @@ -7459,13 +7459,13 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_566/*Iron Helmet*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.04f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.04f), + onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.04f), + onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.04f), rarity = 3, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Helmet, icon = Res.ResourceLoader.GetTexture(91), }; @@ -7481,13 +7481,13 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_567/*Steel Helmet*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.05f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.05f), + onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.05f), + onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.05f), rarity = 4, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Helmet, icon = Res.ResourceLoader.GetTexture(91), }; @@ -7505,13 +7505,13 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_568/*Armored Hood*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.06f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.06f), + onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.06f), + onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.06f), rarity = 5, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Helmet, icon = Res.ResourceLoader.GetTexture(91), }; @@ -7532,13 +7532,13 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_569/*Mystery Helmet*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr - onEquip = () => ModdedPlayer.Stats.allDamage.Add(0.1f), - onUnequip = () => ModdedPlayer.Stats.allDamage.Sub(0.1f), + onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.1f), + onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.1f), rarity = 6, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Helmet, icon = Res.ResourceLoader.GetTexture(91), }; @@ -7564,13 +7564,13 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_570/*Yorium's Gaze*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_571("30%")/*SET PIECE. Melee weapon range is increased by 30%, attack cost in stamina is halved.*/, //tr description = Translations.ItemDataBase_ItemDefinitions_572(15, "35%", 15, "5%")/*Set Piece:\n2 Pieces- Berserk does not apply exhaustion when it ends\n3 Pieces - Berserk duration is increased by 15 seconds\n4 Pieces - Each second of berserk being in effect increases damage by 35%.\n5 Pieces - For the first 15 seconds of Berserk attack speed increases by 30% per second, and lasts till the end of the spell's duration.*/, //tr - onEquip = () => BerserkSet.Equip(), - onUnequip = () => BerserkSet.Unequip(), + onEquipCallback = () => BerserkSet.Equip(), + onUnequipCallback = () => BerserkSet.Unequip(), rarity = 7, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Helmet, icon = Res.ResourceLoader.GetTexture(91), }; @@ -7594,13 +7594,13 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_573/*Yorium's Ruthlessness*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_571("30%")/*SET PIECE. Melee weapon range is increased by 30%, attack cost in stamina is halved.*/, //tr description = Translations.ItemDataBase_ItemDefinitions_572(15, "35%", 15, "5%")/*Set Piece:\n2 Pieces- Berserk does not apply exhaustion when it ends\n3 Pieces - Berserk duration is increased by 15 seconds\n4 Pieces - Each second of berserk being in effect increases damage by 35%.\n5 Pieces - For the first 15 seconds of Berserk attack speed increases by 30% per second, and lasts till the end of the spell's duration.*/, //tr - onEquip = () => BerserkSet.Equip(), - onUnequip = () => BerserkSet.Unequip(), + onEquipCallback = () => BerserkSet.Equip(), + onUnequipCallback = () => BerserkSet.Unequip(), rarity = 7, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.ChestArmor, icon = Res.ResourceLoader.GetTexture(96), }; @@ -7629,13 +7629,13 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_574/*Yorium's Burden*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_571("30%")/*SET PIECE. Melee weapon range is increased by 30%, attack cost in stamina is halved.*/, //tr description = Translations.ItemDataBase_ItemDefinitions_572(15, "35%", 15, "5%")/*Set Piece:\n2 Pieces- Berserk does not apply exhaustion when it ends\n3 Pieces - Berserk duration is increased by 15 seconds\n4 Pieces - Each second of berserk being in effect increases damage by 35%.\n5 Pieces - For the first 15 seconds of Berserk attack speed increases by 30% per second, and lasts till the end of the spell's duration.*/, //tr - onEquip = () => BerserkSet.Equip(), - onUnequip = () => BerserkSet.Unequip(), + onEquipCallback = () => BerserkSet.Equip(), + onUnequipCallback = () => BerserkSet.Unequip(), rarity = 7, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.ShoulderArmor, icon = Res.ResourceLoader.GetTexture(95), }; @@ -7663,13 +7663,13 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_575/*Yorium's Resolve*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_571("30%")/*SET PIECE. Melee weapon range is increased by 30%, attack cost in stamina is halved.*/, //tr description = Translations.ItemDataBase_ItemDefinitions_572(15, "35%", 15, "5%")/*Set Piece:\n2 Pieces- Berserk does not apply exhaustion when it ends\n3 Pieces - Berserk duration is increased by 15 seconds\n4 Pieces - Each second of berserk being in effect increases damage by 35%.\n5 Pieces - For the first 15 seconds of Berserk attack speed increases by 30% per second, and lasts till the end of the spell's duration.*/, //tr - onEquip = () => BerserkSet.Equip(), - onUnequip = () => BerserkSet.Unequip(), + onEquipCallback = () => BerserkSet.Equip(), + onUnequipCallback = () => BerserkSet.Unequip(), rarity = 7, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Bracer, icon = Res.ResourceLoader.GetTexture(93), }; @@ -7695,13 +7695,13 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_576/*Atomic Augmentation*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_571("30%")/*SET PIECE. Melee weapon range is increased by 30%, attack cost in stamina is halved.*/, //tr description = Translations.ItemDataBase_ItemDefinitions_572(15, "35%", 15, "5%")/*Set Piece:\n2 Pieces- Berserk does not apply exhaustion when it ends\n3 Pieces - Berserk duration is increased by 15 seconds\n4 Pieces - Each second of berserk being in effect increases damage by 35%.\n5 Pieces - For the first 15 seconds of Berserk attack speed increases by 30% per second, and lasts till the end of the spell's duration.*/, //tr - onEquip = () => BerserkSet.Equip(), - onUnequip = () => BerserkSet.Unequip(), + onEquipCallback = () => BerserkSet.Equip(), + onUnequipCallback = () => BerserkSet.Unequip(), rarity = 7, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Boot, icon = Res.ResourceLoader.GetTexture(85), }; @@ -7729,13 +7729,13 @@ public static void PopulateItems() name = Translations.ItemDataBase_ItemDefinitions_577/*Yorium's Assault*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_571("30%")/*SET PIECE. Melee weapon range is increased by 30%, attack cost in stamina is halved.*/, //tr description = Translations.ItemDataBase_ItemDefinitions_572(15, "35%", 15, "5%")/*Set Piece:\n2 Pieces- Berserk does not apply exhaustion when it ends\n3 Pieces - Berserk duration is increased by 15 seconds\n4 Pieces - Each second of berserk being in effect increases damage by 35%.\n5 Pieces - For the first 15 seconds of Berserk attack speed increases by 30% per second, and lasts till the end of the spell's duration.*/, //tr - onEquip = () => BerserkSet.Equip(), - onUnequip = () => BerserkSet.Unequip(), + onEquipCallback = () => BerserkSet.Equip(), + onUnequipCallback = () => BerserkSet.Unequip(), rarity = 7, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Glove, icon = Res.ResourceLoader.GetTexture(86), }; @@ -7761,13 +7761,13 @@ public static void PopulateItems() { name = Translations.ItemDataBase_ItemDefinitions_578/*Undying Promise*/, //tr uniqueStat = Translations.ItemDataBase_ItemDefinitions_579(1)/*Resist lethal damage on a 1 minute cooldown*/, //tr - onEquip = () => COTFEvents.Instance.OnTakeLethalDamage.AddListener(UniqueItemFunctions.ResistDeath), - onUnequip = () => COTFEvents.Instance.OnTakeLethalDamage.RemoveListener(UniqueItemFunctions.ResistDeath), + onEquipCallback = () => COTFEvents.Instance.OnTakeLethalDamage.AddListener(UniqueItemFunctions.ResistDeath), + onUnequipCallback = () => COTFEvents.Instance.OnTakeLethalDamage.RemoveListener(UniqueItemFunctions.ResistDeath), rarity = 7, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Pants, icon = Res.ResourceLoader.GetTexture(87), }; @@ -7795,12 +7795,12 @@ public static void PopulateItems() rarity = 7, minLevel = 20, maxLevel = 28, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Pants, icon = Res.ResourceLoader.GetTexture(87), - onEquip = () => { ModdedPlayer.Stats.spell_frenzy_active_critChance.Add(0.05f); ModdedPlayer.Stats.spell_frenzyAtkSpeed.Add(0.03f); }, - onUnequip = () => { ModdedPlayer.Stats.spell_frenzy_active_critChance.Sub(0.05f); ModdedPlayer.Stats.spell_frenzyAtkSpeed.Add(0.03f); }, + onEquipCallback = () => { ModdedPlayer.Stats.spell_frenzy_active_critChance.Add(0.05f); ModdedPlayer.Stats.spell_frenzyAtkSpeed.Add(0.03f); }, + onUnequipCallback = () => { ModdedPlayer.Stats.spell_frenzy_active_critChance.Sub(0.05f); ModdedPlayer.Stats.spell_frenzyAtkSpeed.Add(0.03f); }, }; @@ -7831,14 +7831,14 @@ public static void PopulateItems() rarity = 7, minLevel = 6, maxLevel = 9, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.GreatSword, + subtype = BaseItem.WeaponModelType.GreatSword, icon = Res.ResourceLoader.GetTexture(88), - onEquip = () => ModdedPlayer.Stats.spell_berserkDamage.Add(3f), - onUnequip = () => ModdedPlayer.Stats.spell_berserkDamage.Sub(3f), - }.PossibleStats[0][0].multipier = 5; + onEquipCallback = () => ModdedPlayer.Stats.spell_berserkDamage.Add(3f), + onUnequipCallback = () => ModdedPlayer.Stats.spell_berserkDamage.Sub(3f), + }.statSlots[0][0].multipier = 5; new BaseItem(new Stat[][] { new [] {BASE_MELEE_DAMAGE,BASE_SPELL_DAMAGE}, @@ -7860,14 +7860,14 @@ public static void PopulateItems() rarity = 6, minLevel = 6, maxLevel = 9, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Weapon, - weaponModel = BaseItem.WeaponModelType.GreatSword, + subtype = BaseItem.WeaponModelType.GreatSword, icon = Res.ResourceLoader.GetTexture(88), - onEquip = () => ModdedPlayer.Stats.spell_berserkDamage.Add(1f), - onUnequip = () => ModdedPlayer.Stats.spell_berserkDamage.Sub(1f), - }.PossibleStats[0][0].multipier = 2; + onEquipCallback = () => ModdedPlayer.Stats.spell_berserkDamage.Add(1f), + onUnequipCallback = () => ModdedPlayer.Stats.spell_berserkDamage.Sub(1f), + }.statSlots[0][0].multipier = 2; new BaseItem(new Stat[][] { @@ -7885,16 +7885,16 @@ public static void PopulateItems() rarity = 5, minLevel = 6, maxLevel = 9, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(100), - onEquip = () => + onEquipCallback = () => { ModdedPlayer.Stats.spell_berserkAttackSpeed.Add(0.1f); ModdedPlayer.Stats.spell_berserkMovementSpeed.Add(0.1f); }, - onUnequip = () => + onUnequipCallback = () => { ModdedPlayer.Stats.spell_berserkAttackSpeed.Sub(0.1f); ModdedPlayer.Stats.spell_berserkMovementSpeed.Sub(0.1f); @@ -7925,18 +7925,18 @@ public static void PopulateItems() rarity = 7, minLevel = 60, maxLevel = 62, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(100), - onEquip = () => + onEquipCallback = () => { ModdedPlayer.Stats.meleeIncreasedDmg.Multiply(2f); ModdedPlayer.Stats.rangedIncreasedDmg.Multiply(2f); ModdedPlayer.Stats.spell_berserkAttackSpeed.Add(0.15f); ModdedPlayer.Stats.spell_berserkMovementSpeed.Add(0.3f); }, - onUnequip = () => + onUnequipCallback = () => { ModdedPlayer.Stats.meleeIncreasedDmg.Divide(2f); ModdedPlayer.Stats.rangedIncreasedDmg.Divide(2f); @@ -7966,16 +7966,16 @@ public static void PopulateItems() rarity = 7, minLevel = 1, maxLevel = 3, - CanConsume = false, - StackSize = 1, + canConsume = false, + stackSize = 1, type = BaseItem.ItemType.Bracer, icon = Res.ResourceLoader.GetTexture(93), - onEquip = () => + onEquipCallback = () => { ModdedPlayer.Stats.spell_healingDomeCooldownRate.Add(1.0f); ModdedPlayer.Stats.spell_healingDomeSpellCostReduction.Sub(0.4f); }, - onUnequip = () => + onUnequipCallback = () => { ModdedPlayer.Stats.spell_healingDomeCooldownRate.Sub(1.0f); ModdedPlayer.Stats.spell_healingDomeSpellCostReduction.Add(0.4f); diff --git a/Items/ItemPickUp.cs b/Items/ItemPickUp.cs index c47bc34..15cc93c 100644 --- a/Items/ItemPickUp.cs +++ b/Items/ItemPickUp.cs @@ -39,10 +39,10 @@ private void Start() if (amount == 0) { - amount = item.Amount; + amount = item.stackedAmount; } - if (item.Amount < 1) - item.Amount = 1; + if (item.stackedAmount < 1) + item.stackedAmount = 1; if (ModSettings.IsDedicated) return; @@ -124,12 +124,12 @@ private void OnGUI() float lineheight = statStyle.CalcHeight(new GUIContent(" "), r.width); Rect bg = new Rect(r) { - height = titleHeight + (lineheight * item.Stats.Count + 1 ) + height = titleHeight + (lineheight * item.stats.Count + 1 ) }; GUI.Box(bg, string.Empty); - for (int i = 0; i < item.Stats.Count; i++) + for (int i = 0; i < item.stats.Count; i++) { - ItemStat stat = item.Stats[i]; + ItemStat stat = item.stats[i]; double amount = stat.amount; if (stat.displayAsPercent) { diff --git a/Items/ItemTemplates.cs b/Items/ItemTemplates.cs index fb337d6..2aebf42 100644 --- a/Items/ItemTemplates.cs +++ b/Items/ItemTemplates.cs @@ -47,7 +47,7 @@ public ItemTemplateBuilder() recoveryStats = ToItemStatList(recoveryStatIds); } - ID = ItemDataBase._Item_Bases.Count; + id = ItemDataBase._Item_Bases.Count; ItemDataBase._Item_Bases.Add(this); } @@ -56,7 +56,7 @@ protected List ToItemStatList(Stat[] stats) var list = new List(); foreach (var stat in defaultStatIds) { - list.Add(new ItemStat(ItemDataBase.Stats[(int)stat])); + list.Add(new ItemStat(ItemDataBase.Stats[(int)stat], 1, -1, 1)); } return list; } @@ -95,17 +95,13 @@ protected List ToItemStatList(Stat[] stats) ATTACK_COST_REDUCTION, SPELL_COST_REDUCTION, SPELL_COST_TO_STAMINA, - LESSERSTRENGTH, - LESSERAGILITY, - LESSERVITALITY, - LESSERINTELLIGENCE, - LESSERARMOR, ENERGY_REGEN_BASE, MAX_LIFE_MULT, MAX_ENERGY_MULT, COOLDOWN_REDUCTION, ENERGY_ON_HIT, LOOT_QUANTITY, // think about keeping this later + LOOT_QUALITY, ALL_ATTRIBUTES, JUMP_POWER, THORNS @@ -115,13 +111,13 @@ protected List ToItemStatList(Stat[] stats) public ItemTemplateBuilder DefaultStatSlot(int n = 1) { for (int i = 0; i < n; i++) - PossibleStats.Add(defaultStats); + statSlots.Add(defaultStats); return this; } public ItemTemplateBuilder StatSlot(Stat[] statPool) { - PossibleStats.Add(ToItemStatList(statPool)); + statSlots.Add(ToItemStatList(statPool)); return this; } @@ -151,8 +147,8 @@ public ItemTemplateBuilder Lore(string s) public ItemTemplateBuilder UniqueStat(string s, OnItemEquip _onEquip, OnItemUnequip _onUnequip) { - onEquip = _onEquip; - onUnequip = _onUnequip; + onEquipCallback = _onEquip; + onUnequipCallback = _onUnequip; uniqueStat = s; return this; } @@ -166,10 +162,10 @@ public ItemTemplateBuilder LevelRequirement(int minimumLevel) public ItemTemplateBuilder Consumable(string consumableDescriptiuon, OnItemConsume _onConsume, OnItemUnequip _onUnequip) { - onConsume = _onConsume; + onConsumeCallback = _onConsume; uniqueStat = consumableDescriptiuon; - StackSize = 100; - CanConsume = true; + stackSize = 100; + canConsume = true; return this; } @@ -200,7 +196,7 @@ public ItemTemplateBuilder Icon(int iconid) public ItemTemplateBuilder MagicStatSlot(int n = 1) { for (int i = 0; i < n; i++) - PossibleStats.Add(magicStats); + statSlots.Add(magicStats); return this; } @@ -217,7 +213,7 @@ public ItemTemplateBuilder MagicStatSlot(int n = 1) public ItemTemplateBuilder MeleeStatSlot(int n = 1) { for (int i = 0; i < n; i++) - PossibleStats.Add(meleeStats); + statSlots.Add(meleeStats); return this; } @@ -238,7 +234,7 @@ public ItemTemplateBuilder MeleeStatSlot(int n = 1) public ItemTemplateBuilder RangedStatSlot(int n = 1) { for (int i = 0; i < n; i++) - PossibleStats.Add(rangedStats); + statSlots.Add(rangedStats); return this; } @@ -259,7 +255,7 @@ public ItemTemplateBuilder RangedStatSlot(int n = 1) public ItemTemplateBuilder DefenseStatSlot(int n = 1) { for (int i = 0; i < n; i++) - PossibleStats.Add(defenseStats); + statSlots.Add(defenseStats); return this; } @@ -278,7 +274,7 @@ public ItemTemplateBuilder DefenseStatSlot(int n = 1) public ItemTemplateBuilder RecoveryStatSlot(int n = 1) { for (int i = 0; i < n; i++) - PossibleStats.Add(recoveryStats); + statSlots.Add(recoveryStats); return this; } } @@ -288,7 +284,7 @@ public class Greatsword : ItemTemplateBuilder public Greatsword() { type = ItemType.Weapon; - weaponModel = WeaponModelType.GreatSword; + subtype = WeaponModelType.GreatSword; Icon(88); } @@ -299,7 +295,7 @@ public class Longsword : ItemTemplateBuilder public Longsword() { type = ItemType.Weapon; - weaponModel = WeaponModelType.LongSword; + subtype = WeaponModelType.LongSword; Icon(89); } } @@ -309,7 +305,7 @@ public class Hammer : ItemTemplateBuilder public Hammer() { type = ItemType.Weapon; - weaponModel = WeaponModelType.Hammer; + subtype = WeaponModelType.Hammer; Icon(109); } @@ -320,7 +316,7 @@ public class Polearm : ItemTemplateBuilder public Polearm() { type = ItemType.Weapon; - weaponModel = WeaponModelType.Polearm; + subtype = WeaponModelType.Polearm; Icon(181); } } @@ -330,7 +326,7 @@ public class Axe : ItemTemplateBuilder public Axe() { type = ItemType.Weapon; - weaponModel = WeaponModelType.Axe; + subtype = WeaponModelType.Axe; Icon(138); } } @@ -340,7 +336,7 @@ public class Greatbow : ItemTemplateBuilder public Greatbow() { type = ItemType.Weapon; - weaponModel = WeaponModelType.Greatbow; + subtype = WeaponModelType.Greatbow; Icon(170); } } @@ -400,7 +396,7 @@ public class Shield : ItemTemplateBuilder public Shield ShieldStatSlot(int n = 1) { for (int i = 0; i < n; i++) - PossibleStats.Add(shieldStats); + statSlots.Add(shieldStats); return this; } @@ -584,7 +580,7 @@ public Amulet() public Amulet RingStatSlot(int n = 1) { for (int i = 0; i < n; i++) - PossibleStats.Add(amuletStats); + statSlots.Add(amuletStats); return this; } @@ -648,7 +644,7 @@ public Ring() public Ring RingStatSlot(int n = 1) { for(int i = 0; i outdatedFiles = new List(); public static float DropQuantityMultiplier = 1; diff --git a/Network/CommandReader.cs b/Network/CommandReader.cs index 39791be..8fdbad5 100644 --- a/Network/CommandReader.cs +++ b/Network/CommandReader.cs @@ -289,7 +289,7 @@ public static void OnCommand(byte[] bytes) { amount = r.ReadSingle() }; - item.Stats.Add(stat); + item.stats.Add(stat); } PickUpManager.SpawnPickUp(item, pos, amount, id, (ItemPickUp.DropSource)dropSource); break; @@ -646,10 +646,10 @@ public static void OnCommand(byte[] bytes) { amount = r.ReadSingle() }; - item.Stats.Add(stat); + item.stats.Add(stat); } - Inventory.Instance.AddItem(item, item.Amount); + Inventory.Instance.AddItem(item, item.stackedAmount); } break; diff --git a/Network/NetworkManager.cs b/Network/NetworkManager.cs index 7972cdd..55cbe18 100644 --- a/Network/NetworkManager.cs +++ b/Network/NetworkManager.cs @@ -212,7 +212,7 @@ public static void SendItemDrop(Item item, Vector3 pos, ItemPickUp.DropSource dr using (System.IO.BinaryWriter w = new System.IO.BinaryWriter(answerStream)) { w.Write(5); - w.Write(item.ID); + w.Write(item.id); w.Write(id); w.Write(item.level); w.Write(amount); @@ -220,7 +220,7 @@ public static void SendItemDrop(Item item, Vector3 pos, ItemPickUp.DropSource dr w.Write(pos.y); w.Write(pos.z); w.Write((int)dropSource); - foreach (ItemStat stat in item.Stats) + foreach (ItemStat stat in item.stats) { w.Write(stat.id); w.Write(stat.possibleStatsIndex); @@ -241,10 +241,10 @@ public static void SendItemToPlayer(Item item, string playerID, int amount = 1) { w.Write(26); w.Write(playerID); - w.Write(item.ID); + w.Write(item.id); w.Write(amount); w.Write(item.level); - foreach (ItemStat stat in item.Stats) + foreach (ItemStat stat in item.stats) { w.Write(stat.id); w.Write(stat.possibleStatsIndex); diff --git a/Player/Crafting/CraftingIngredient.cs b/Player/Crafting/CraftingIngredient.cs index ad612f9..3060b46 100644 --- a/Player/Crafting/CraftingIngredient.cs +++ b/Player/Crafting/CraftingIngredient.cs @@ -17,8 +17,8 @@ public void RemoveItem() { if (Inventory.Instance.ItemSlots.ContainsKey(pos)) { - Inventory.Instance.ItemSlots[pos].Amount--; - if (Inventory.Instance.ItemSlots[pos].Amount < 1) + Inventory.Instance.ItemSlots[pos].stackedAmount--; + if (Inventory.Instance.ItemSlots[pos].stackedAmount < 1) Inventory.Instance.ItemSlots[pos] = null; } i = null; diff --git a/Player/Crafting/Empowering.cs b/Player/Crafting/Empowering.cs index 90ea2f5..549f575 100644 --- a/Player/Crafting/Empowering.cs +++ b/Player/Crafting/Empowering.cs @@ -41,7 +41,7 @@ public void Craft() if (validRecipe) { CraftingHandler.changedItem.i.level = ModdedPlayer.instance.level; - foreach (var stat in CraftingHandler.changedItem.i.Stats) + foreach (var stat in CraftingHandler.changedItem.i.stats) { if (stat.id >= 3000) continue; @@ -75,7 +75,7 @@ public void DrawUI(in float x, in float w, in float screenScale, in GUIStyle[] s try { float mult = CustomCrafting.instance.changedItem.i.GetRarityMultiplier(); - foreach (ItemStat stat in CustomCrafting.instance.changedItem.i.Stats) + foreach (ItemStat stat in CustomCrafting.instance.changedItem.i.stats) { Rect statRect = new Rect(x + 10 * screenScale, ypos, w - 20 * screenScale, 26 * screenScale); Rect valueMinMaxRect = new Rect(statRect.xMax + 15 * screenScale, ypos, statRect.width, statRect.height); diff --git a/Player/Crafting/IndividualRerolling.cs b/Player/Crafting/IndividualRerolling.cs index d17db9c..3bf35e5 100644 --- a/Player/Crafting/IndividualRerolling.cs +++ b/Player/Crafting/IndividualRerolling.cs @@ -20,10 +20,10 @@ public bool validRecipe return false; if (selectedStat == -1) return false; - var stat = CraftingHandler.changedItem.i.Stats[selectedStat]; + var stat = CraftingHandler.changedItem.i.stats[selectedStat]; if (stat.possibleStatsIndex == -1) return false; - if (CraftingHandler.changedItem.i.PossibleStats[stat.possibleStatsIndex].Count < 2) + if (CraftingHandler.changedItem.i.statSlots[stat.possibleStatsIndex].Count < 2) return false; int itemCount = 0; int rarity = CraftingHandler.changedItem.i.rarity; @@ -50,14 +50,14 @@ public void Craft() { if (validRecipe) { - var stat = CraftingHandler.changedItem.i.Stats[selectedStat]; + var stat = CraftingHandler.changedItem.i.stats[selectedStat]; if (stat.id > 3000) { - CraftingHandler.changedItem.i.Stats[selectedStat] = new ItemStat(ItemDataBase.Stats[3000]); //set to empty socket + CraftingHandler.changedItem.i.stats[selectedStat] = new ItemStat(ItemDataBase.Stats[3000]); //set to empty socket } else { - var options = CraftingHandler.changedItem.i.PossibleStats[stat.possibleStatsIndex]; + var options = CraftingHandler.changedItem.i.statSlots[stat.possibleStatsIndex]; int random = UnityEngine.Random.Range(0, options.Count); { ItemStat newStat = new ItemStat(options[random], CraftingHandler.changedItem.i.level); @@ -67,8 +67,7 @@ public void Craft() { newStat.amount = Mathf.Min(newStat.amount, newStat.valueCap); } - CraftingHandler.changedItem.i.Stats[selectedStat] = newStat; - CraftingHandler.changedItem.i.SortStats(); + CraftingHandler.changedItem.i.stats[selectedStat] = newStat; } selectedStat = -1; @@ -100,7 +99,7 @@ public void DrawUI(in float x, in float w, in float screenScale, in GUIStyle[] s float mult = CustomCrafting.instance.changedItem.i.GetRarityMultiplier(); int ind = 0; - foreach (ItemStat stat in CustomCrafting.instance.changedItem.i.Stats) + foreach (ItemStat stat in CustomCrafting.instance.changedItem.i.stats) { Rect statRect = new Rect(x + 10 * screenScale, ypos, w - 20 * screenScale, 26 * screenScale); Rect valueMinMaxRect = new Rect(statRect.xMax + 15 * screenScale, ypos, statRect.width, statRect.height); @@ -140,7 +139,7 @@ public void DrawUI(in float x, in float w, in float screenScale, in GUIStyle[] s { if (validRecipe) { - if (GUI.Button(new Rect(x, ypos, w, 40 * screenScale), CraftingHandler.changedItem.i.Stats[selectedStat].id > 3000 ? Translations.IndividualRerolling_3/*Empty socket*/ : Translations.IndividualRerolling_2/*Reroll stat*/, styles[2])) //tr + if (GUI.Button(new Rect(x, ypos, w, 40 * screenScale), CraftingHandler.changedItem.i.stats[selectedStat].id > 3000 ? Translations.IndividualRerolling_3/*Empty socket*/ : Translations.IndividualRerolling_2/*Reroll stat*/, styles[2])) //tr { Craft(); } @@ -174,10 +173,10 @@ public void DrawUI(in float x, in float w, in float screenScale, in GUIStyle[] s } if (selectedStat != -1) { - var stat = CraftingHandler.changedItem.i.Stats[selectedStat]; + var stat = CraftingHandler.changedItem.i.stats[selectedStat]; if (stat.possibleStatsIndex != -1) { - var options = CraftingHandler.changedItem.i.PossibleStats[stat.possibleStatsIndex]; + var options = CraftingHandler.changedItem.i.statSlots[stat.possibleStatsIndex]; if (options.Count == 1) { GUI.Label(new Rect(x, ypos, w, Screen.height - x), Translations.IndividualRerolling_5/*This stat cannot be changed*/, new GUIStyle(styles[0]) { alignment = TextAnchor.UpperLeft, fontSize = (int)(12 * screenScale), wordWrap = true }); //tr diff --git a/Player/Crafting/Polishing.cs b/Player/Crafting/Polishing.cs index 065dd5b..c425210 100644 --- a/Player/Crafting/Polishing.cs +++ b/Player/Crafting/Polishing.cs @@ -16,9 +16,9 @@ public bool validRecipe { get { - if (CraftingHandler.changedItem.i == null || CraftingHandler.changedItem.i.Stats.Count <= selectedStat || selectedStat < 0) + if (CraftingHandler.changedItem.i == null || CraftingHandler.changedItem.i.stats.Count <= selectedStat || selectedStat < 0) return false; - if (CraftingHandler.changedItem.i.Stats[selectedStat].id == 3000) + if (CraftingHandler.changedItem.i.stats[selectedStat].id == 3000) return false; int itemCount = 0; int rarity = CraftingHandler.changedItem.i.rarity; @@ -42,10 +42,10 @@ public void Craft() { if (validRecipe) { - var stat = CraftingHandler.changedItem.i.Stats[selectedStat]; + var stat = CraftingHandler.changedItem.i.stats[selectedStat]; if (stat.id > 3000) { - CraftingHandler.changedItem.i.Stats[selectedStat] = new ItemStat(ItemDataBase.Stats[3000]); //set to empty socket + CraftingHandler.changedItem.i.stats[selectedStat] = new ItemStat(ItemDataBase.Stats[3000]); //set to empty socket } else { @@ -79,7 +79,7 @@ public void DrawUI(in float x, in float w, in float screenScale, in GUIStyle[] s float mult = CustomCrafting.instance.changedItem.i.GetRarityMultiplier(); int ind = 0; - foreach (ItemStat stat in CustomCrafting.instance.changedItem.i.Stats) + foreach (ItemStat stat in CustomCrafting.instance.changedItem.i.stats) { Rect statRect = new Rect(x + 10 * screenScale, ypos, w - 20 * screenScale, 26 * screenScale); Rect valueMinMaxRect = new Rect(statRect.xMax + 15 * screenScale, ypos, statRect.width, statRect.height); @@ -120,7 +120,7 @@ public void DrawUI(in float x, in float w, in float screenScale, in GUIStyle[] s if (validRecipe) { - if (GUI.Button(new Rect(x, ypos, w, 40 * screenScale), CraftingHandler.changedItem.i.Stats[selectedStat].id > 3000 ? Translations.IndividualRerolling_3/*Empty socket*/ : Translations.Polishing_2/*Reroll stat value*/, styles[2])) //tr + if (GUI.Button(new Rect(x, ypos, w, 40 * screenScale), CraftingHandler.changedItem.i.stats[selectedStat].id > 3000 ? Translations.IndividualRerolling_3/*Empty socket*/ : Translations.Polishing_2/*Reroll stat value*/, styles[2])) //tr { Craft(); } diff --git a/Player/Crafting/Reforging.cs b/Player/Crafting/Reforging.cs index ede53d3..abfdf87 100644 --- a/Player/Crafting/Reforging.cs +++ b/Player/Crafting/Reforging.cs @@ -46,7 +46,7 @@ public void Craft() if (validRecipe) { int lvl = CraftingHandler.changedItem.i.level; - var v = ItemDataBase.ItemBases.Where(x => x.Value.ID != CraftingHandler.changedItem.i.ID && x.Value.rarity == CraftingHandler.changedItem.i.rarity).Select(x => x.Value).ToArray(); + var v = ItemDataBase.ItemBases.Where(x => x.Value.id != CraftingHandler.changedItem.i.id && x.Value.rarity == CraftingHandler.changedItem.i.rarity).Select(x => x.Value).ToArray(); var ib = v[UnityEngine.Random.Range(0, v.Length)]; var newItem = new Item(ib, 1, 0, false) @@ -84,7 +84,7 @@ public void DrawUI(in float x, in float w, in float screenScale, in GUIStyle[] s ypos += 30 * screenScale; GUI.color = MainMenu.RarityColors[CustomCrafting.instance.changedItem.i.rarity]; GUI.Label(nameRect, CustomCrafting.instance.changedItem.i.name, styles[3]); - foreach (ItemStat stat in CustomCrafting.instance.changedItem.i.Stats) + foreach (ItemStat stat in CustomCrafting.instance.changedItem.i.stats) { Rect statRect = new Rect(x + 10 * screenScale, ypos, w - 20 * screenScale, 26 * screenScale); Rect valueMinMaxRect = new Rect(statRect.xMax + 15 * screenScale, ypos, statRect.width, statRect.height); diff --git a/Player/Crafting/Rerolling.cs b/Player/Crafting/Rerolling.cs index 916bbd5..39d73ad 100644 --- a/Player/Crafting/Rerolling.cs +++ b/Player/Crafting/Rerolling.cs @@ -69,7 +69,7 @@ public void DrawUI(in float x, in float w, in float screenScale, in GUIStyle[] s int ind = 1; try { - foreach (ItemStat stat in CustomCrafting.instance.changedItem.i.Stats) + foreach (ItemStat stat in CustomCrafting.instance.changedItem.i.stats) { Rect statRect = new Rect(x + 10 * screenScale, ypos, w - 20 * screenScale, 26 * screenScale); Rect valueMinMaxRect = new Rect(statRect.xMax + 15 * screenScale, ypos, statRect.width, statRect.height); diff --git a/Player/Inventory.cs b/Player/Inventory.cs index 92f26f3..1a42fa6 100644 --- a/Player/Inventory.cs +++ b/Player/Inventory.cs @@ -25,7 +25,7 @@ public static Item GetEquippedItemAtSlot(EquippableSlots slot) if (Instance.ItemSlots.ContainsKey((int)slot)) { var i = Instance.ItemSlots[(int)slot]; - if (i != null && i.Equipped) + if (i != null && i.isEquipped) return i; } return null; @@ -77,11 +77,11 @@ private void Update() { if (item.Value != null) { - if (item.Value.Equipped) + if (item.Value.isEquipped) { if (item.Key > -1) { - item.Value.Equipped = false; + item.Value.isEquipped = false; item.Value.OnUnequip(); } } @@ -91,7 +91,7 @@ private void Update() { //if (item.Value.level <= ModdedPlayer.instance.level) { - item.Value.Equipped = true; + item.Value.isEquipped = true; item.Value.OnEquip(); } } @@ -109,18 +109,18 @@ public bool DropItemOnPosition(int key, Vector3 pos) { Item i = ItemSlots[key]; - int amount = i.Amount; - i.Amount = 1; + int amount = i.stackedAmount; + i.stackedAmount = 1; for (int ind = 0; ind < amount; ind++) { Network.NetworkManager.SendItemDrop(i, pos, ItemPickUp.DropSource.PlayerDeath); } - if (ItemSlots[key].Equipped) + if (ItemSlots[key].isEquipped) { ItemSlots[key].OnUnequip(); - ItemSlots[key].Equipped = false; + ItemSlots[key].isEquipped = false; } ItemSlots[key] = null; @@ -135,15 +135,15 @@ public bool DropItem(int key, int amount = 0) { Item i = ItemSlots[key]; - amount = amount == 0 ? i.Amount : Mathf.Min(amount, i.Amount); + amount = amount == 0 ? i.stackedAmount : Mathf.Min(amount, i.stackedAmount); Network.NetworkManager.SendItemDrop(i, LocalPlayer.Transform.position + Vector3.up * 1.5f + LocalPlayer.Transform.forward * 3, ItemPickUp.DropSource.PlayerInventory , amount); - ItemSlots[key].Amount -= amount; - if (ItemSlots[key].Amount <= 0) + ItemSlots[key].stackedAmount -= amount; + if (ItemSlots[key].stackedAmount <= 0) { - if (ItemSlots[key].Equipped) + if (ItemSlots[key].isEquipped) { ItemSlots[key].OnUnequip(); - ItemSlots[key].Equipped = false; + ItemSlots[key].isEquipped = false; } ItemSlots[key] = null; } @@ -250,18 +250,18 @@ public bool AddItem(Item item, int amount = 1) { if (ItemSlots[i] != null) { - if (ItemSlots[i].ID == item.ID) + if (ItemSlots[i].id == item.id) { - if (ItemSlots[i].StackSize >= amount + ItemSlots[i].Amount) + if (ItemSlots[i].stackSize >= amount + ItemSlots[i].stackedAmount) { - ItemSlots[i].Amount += amount; + ItemSlots[i].stackedAmount += amount; PickedUpNotification(ItemSlots[i].name); amount = 0; } - else if (ItemSlots[i].StackSize - ItemSlots[i].Amount > 0) + else if (ItemSlots[i].stackSize - ItemSlots[i].stackedAmount > 0) { - int extrafit = ItemSlots[i].StackSize - ItemSlots[i].Amount; - ItemSlots[i].Amount = ItemSlots[i].StackSize; + int extrafit = ItemSlots[i].stackSize - ItemSlots[i].stackedAmount; + ItemSlots[i].stackedAmount = ItemSlots[i].stackSize; amount -= extrafit; } if (amount <= 0) @@ -276,7 +276,7 @@ public bool AddItem(Item item, int amount = 1) if (ItemSlots[i] == null) { ItemSlots[i] = item; - ItemSlots[i].Amount = amount; + ItemSlots[i].stackedAmount = amount; PickedUpNotification(ItemSlots[i].name); return true; } diff --git a/Player/Main Menu/MainMenu.cs b/Player/Main Menu/MainMenu.cs index 02f8869..c693528 100644 --- a/Player/Main Menu/MainMenu.cs +++ b/Player/Main Menu/MainMenu.cs @@ -554,10 +554,10 @@ private void DrawMain() { if (isDragging) { - if (DraggedItem.Equipped) + if (DraggedItem.isEquipped) { DraggedItem.OnUnequip(); - Inventory.Instance.ItemSlots[DraggedItemIndex].Equipped = false; + Inventory.Instance.ItemSlots[DraggedItemIndex].isEquipped = false; } Inventory.Instance.DropItem(DraggedItemIndex); DraggedItem = null; diff --git a/Player/Main Menu/MainMenu_Hints.cs b/Player/Main Menu/MainMenu_Hints.cs index f36339b..c8f4043 100644 --- a/Player/Main Menu/MainMenu_Hints.cs +++ b/Player/Main Menu/MainMenu_Hints.cs @@ -38,7 +38,7 @@ public partial class MainMenu new STuple, string>(()=> SpellCaster.instance.infos.Any(x=>x.spell!=SpellDataBase.spellDictionary[27]), Translations.MainMenu_Hints_11), //tr new STuple, string>(()=> ModdedPlayer.instance.level >= 30 && SpellCaster.instance.infos.Any(x=>x.spell==null), Translations.MainMenu_Hints_12), //tr new STuple, string>(()=> ModdedPlayer.instance.level >= 10 && PerkDatabase.perks.Any(x=>!x.isBought && x.cost==0 && x.levelReq<=ModdedPlayer.instance.level), Translations.MainMenu_Hints_13), //tr - new STuple, string>(()=> Inventory.Instance.ItemSlots[-12]!=null && Inventory.Instance.ItemSlots[-12].Equipped, Translations.MainMenu_Hints_14 + //tr + new STuple, string>(()=> Inventory.Instance.ItemSlots[-12]!=null && Inventory.Instance.ItemSlots[-12].isEquipped, Translations.MainMenu_Hints_14 + //tr ModAPI.Input.GetKeyBindingAsString("EquipWeapon")), new STuple, string>(()=> ModdedPlayer.instance.level > 15 , Translations.MainMenu_Hints_15), //tr new STuple, string>(()=> ModdedPlayer.instance.level < 25 && ModdedPlayer.Stats.TotalMeleeArmorPiercing + ModdedPlayer.Stats.TotalRangedArmorPiercing < 15 , Translations.MainMenu_Hints_16), //tr diff --git a/Player/Main Menu/MainMenu_Inventory.cs b/Player/Main Menu/MainMenu_Inventory.cs index 8df1998..1f2a7c6 100644 --- a/Player/Main Menu/MainMenu_Inventory.cs +++ b/Player/Main Menu/MainMenu_Inventory.cs @@ -35,8 +35,8 @@ public ItemContextMenu(Rect r, int itemIndex) this.itemIndex = itemIndex; this.i = Inventory.Instance.ItemSlots[itemIndex]; buttons = AvailableContextMenuButtons.drop | - (i.CanConsume ? AvailableContextMenuButtons.consume : AvailableContextMenuButtons.none) | - (i.Amount > 1 ? AvailableContextMenuButtons.splitStack : AvailableContextMenuButtons.none); + (i.canConsume ? AvailableContextMenuButtons.consume : AvailableContextMenuButtons.none) | + (i.stackedAmount > 1 ? AvailableContextMenuButtons.splitStack : AvailableContextMenuButtons.none); buttonCount = buttons == (AvailableContextMenuButtons)0b111 ? 3 : (buttons != (AvailableContextMenuButtons)0b100 ? 2 : 1); } @@ -325,7 +325,7 @@ private void DrawItemInfo(Vector2 pos, Item item, bool drawCompare = false, Item Rect ItemNameRect = new Rect(pos.x, pos.y, width, 50 * screenScale); GUIStyle ItemNameStyle = new GUIStyle(GUI.skin.label) { alignment = TextAnchor.UpperCenter, fontSize = Mathf.RoundToInt(35 * screenScale), fontStyle = FontStyle.Bold, font = mainFont }; float y = 70 + pos.y; - Rect[] StatRects = new Rect[item.Stats.Count]; + Rect[] StatRects = new Rect[item.stats.Count]; GUIStyle StatNameStyle = new GUIStyle(GUI.skin.label) { alignment = TextAnchor.MiddleLeft, fontSize = Mathf.RoundToInt(18 * screenScale), font = mainFont, richText = true }; GUIStyle StatValueStyle = new GUIStyle(GUI.skin.label) { alignment = TextAnchor.MiddleRight, fontSize = Mathf.RoundToInt(18 * screenScale), fontStyle = FontStyle.Bold, font = mainFont, richText = true }; @@ -381,28 +381,28 @@ private void DrawItemInfo(Vector2 pos, Item item, bool drawCompare = false, Item GUI.Label(ItemNameRect, item.name, ItemNameStyle); for (int i = 0; i < StatRects.Length; i++) { - GUI.color = RarityColors[item.Stats[i].rarity]; - GUI.Label(StatRects[i], item.Stats[i].name, StatNameStyle); - double amount = item.Stats[i].amount; - if (item.Stats[i].displayAsPercent) + GUI.color = RarityColors[item.stats[i].rarity]; + GUI.Label(StatRects[i], item.stats[i].name, StatNameStyle); + double amount = item.stats[i].amount; + if (item.stats[i].displayAsPercent) { amount *= 100; } - amount = Math.Round(amount, item.Stats[i].roundingCount); + amount = Math.Round(amount, item.stats[i].roundingCount); - if (item.Stats[i].displayAsPercent) + if (item.stats[i].displayAsPercent) { - GUI.Label(StatRects[i], amount.ToString("N" + item.Stats[i].roundingCount) + "%", StatValueStyle); + GUI.Label(StatRects[i], amount.ToString("N" + item.stats[i].roundingCount) + "%", StatValueStyle); } else { - GUI.Label(StatRects[i], amount.ToString("N" + item.Stats[i].roundingCount), StatValueStyle); + GUI.Label(StatRects[i], amount.ToString("N" + item.stats[i].roundingCount), StatValueStyle); } } if (drawTotal) { - int count = item.Stats.Count; + int count = item.stats.Count; if (count > 0) { GUIStyle totalStatStyle = new GUIStyle(StatValueStyle) @@ -418,10 +418,10 @@ private void DrawItemInfo(Vector2 pos, Item item, bool drawCompare = false, Item GUI.Label(new Rect(totalBG.x, totalBG.y, totalBG.width, 30 * screenScale), Translations.MainMenu_Inventory_14/*Total*/, new GUIStyle(GUI.skin.label) { alignment = TextAnchor.MiddleCenter, font = mainFont }); //tr for (int i = 0; i < count; i++) { - if (item.Stats[i].GetTotalStat != null) + if (item.stats[i].GetTotalStat != null) { Rect rect = new Rect(StatRects[i].xMax + 3f, StatRects[i].y, 100 * screenScale, StatRects[i].height); - GUI.Label(rect, item.Stats[i].GetTotalStat(), totalStatStyle); + GUI.Label(rect, item.stats[i].GetTotalStat(), totalStatStyle); } } GUI.color = Color.white; @@ -449,15 +449,15 @@ private void DrawItemInfo(Vector2 pos, Item item, bool drawCompare = false, Item GUI.DrawTexture(compareBG, blackSquareTex); GUI.color = Color.gray; GUI.Label(new Rect(compareBG.x, compareBG.y, compareBG.width, 30 * screenScale), Translations.MainMenu_Inventory_15/*Compare*/, new GUIStyle(GUI.skin.label) { alignment = TextAnchor.MiddleCenter, font = mainFont }); //tr - int count = item.Stats.Count; + int count = item.stats.Count; for (int i = 0; i < count; i++) { Rect compareRect = new Rect(compareBG.x + 5 * screenScale, StatRects[i].y, 100 * screenScale, StatRects[i].height); //object baseVarValue = item.Stats[i].GetVariable(); //dynamic castedValue = Convert.ChangeType(baseVarValue, item.Stats[i].variableType); - float statIncr = otherGrouped != null && otherGrouped.ContainsKey(item.Stats[i].id) ? -otherGrouped[item.Stats[i].id] : 0; - statIncr += grouped[item.Stats[i].id]; + float statIncr = otherGrouped != null && otherGrouped.ContainsKey(item.stats[i].id) ? -otherGrouped[item.stats[i].id] : 0; + statIncr += grouped[item.stats[i].id]; string text = "↑ +"; if (statIncr > 0) { @@ -468,11 +468,11 @@ private void DrawItemInfo(Vector2 pos, Item item, bool drawCompare = false, Item GUI.color = Color.red; text = "↓ "; } - if (item.Stats[i].displayAsPercent) + if (item.stats[i].displayAsPercent) statIncr *= 100; - statIncr = (float)Math.Round(statIncr, item.Stats[i].roundingCount); + statIncr = (float)Math.Round(statIncr, item.stats[i].roundingCount); text += statIncr.ToString("N"); - if (item.Stats[i].displayAsPercent) + if (item.stats[i].displayAsPercent) text += "%"; GUI.Label(compareRect, text, statCompareStyle); @@ -547,8 +547,8 @@ private void DragItem(in Rect r, in Rect itemRect, int index) Effects.Sound_Effects.GlobalSFX.Play(DraggedItem.GetInvSound(), 0, DraggedItem.GetInvSoundPitch()); if (Inventory.Instance.ItemSlots[index].CombineItems(DraggedItem)) //putting a material into a socket { - Inventory.Instance.ItemSlots[DraggedItemIndex].Amount--; - if (Inventory.Instance.ItemSlots[DraggedItemIndex].Amount <= 0) + Inventory.Instance.ItemSlots[DraggedItemIndex].stackedAmount--; + if (Inventory.Instance.ItemSlots[DraggedItemIndex].stackedAmount <= 0) Inventory.Instance.RemoveItemAtPosition(DraggedItemIndex); CancelDragging(); @@ -569,10 +569,10 @@ private void DragItem(in Rect r, in Rect itemRect, int index) } else { - if (DraggedItem.ID != Inventory.Instance.ItemSlots[index].ID - || DraggedItem.Amount == DraggedItem.StackSize - || Inventory.Instance.ItemSlots[index].Amount == Inventory.Instance.ItemSlots[index].StackSize - || (Inventory.Instance.ItemSlots[index].StackSize <= 1 && DraggedItem.StackSize <= 1)) + if (DraggedItem.id != Inventory.Instance.ItemSlots[index].id + || DraggedItem.stackedAmount == DraggedItem.stackSize + || Inventory.Instance.ItemSlots[index].stackedAmount == Inventory.Instance.ItemSlots[index].stackSize + || (Inventory.Instance.ItemSlots[index].stackSize <= 1 && DraggedItem.stackSize <= 1)) { if (canPlace) { @@ -585,17 +585,17 @@ private void DragItem(in Rect r, in Rect itemRect, int index) else if (DraggedItemIndex != index) { //stack items - int i = DraggedItem.Amount + Inventory.Instance.ItemSlots[index].Amount - DraggedItem.StackSize; + int i = DraggedItem.stackedAmount + Inventory.Instance.ItemSlots[index].stackedAmount - DraggedItem.stackSize; if (i > 0) //too much to stack completely and there is an excess { - Inventory.Instance.ItemSlots[index].Amount = Inventory.Instance.ItemSlots[index].StackSize; - Inventory.Instance.ItemSlots[DraggedItemIndex].Amount = i; + Inventory.Instance.ItemSlots[index].stackedAmount = Inventory.Instance.ItemSlots[index].stackSize; + Inventory.Instance.ItemSlots[DraggedItemIndex].stackedAmount = i; CancelDragging(); } else //enough to stack completely { - Inventory.Instance.ItemSlots[index].Amount += DraggedItem.Amount; + Inventory.Instance.ItemSlots[index].stackedAmount += DraggedItem.stackedAmount; Inventory.Instance.RemoveItemAtPosition(DraggedItemIndex); CustomCrafting.ClearIndex(DraggedItemIndex); CancelDragging(); @@ -647,10 +647,10 @@ private void DrawInvSlot(Rect r, int index) GUI.DrawTexture(itemRect, Inventory.Instance.ItemSlots[index].icon); //item count in the corner - if (Inventory.Instance.ItemSlots[index].StackSize > 1) + if (Inventory.Instance.ItemSlots[index].stackSize > 1) { GUI.color = Color.white; - GUI.Label(r, Inventory.Instance.ItemSlots[index].Amount.ToString("N0"), new GUIStyle(GUI.skin.label) { alignment = TextAnchor.LowerLeft, fontSize = Mathf.RoundToInt(15 * screenScale), font = mainFont, fontStyle = FontStyle.Bold }); + GUI.Label(r, Inventory.Instance.ItemSlots[index].stackedAmount.ToString("N0"), new GUIStyle(GUI.skin.label) { alignment = TextAnchor.LowerLeft, fontSize = Mathf.RoundToInt(15 * screenScale), font = mainFont, fontStyle = FontStyle.Bold }); } if (isDragging) @@ -799,8 +799,8 @@ private void DrawInvContextMenu() consumedsomething = true; if (itemContextMenu.Value.i.OnConsume()) { - itemContextMenu.Value.i.Amount--; - if (itemContextMenu.Value.i.Amount <= 0) + itemContextMenu.Value.i.stackedAmount--; + if (itemContextMenu.Value.i.stackedAmount <= 0) { Inventory.Instance.ItemSlots[itemContextMenu.Value.itemIndex] = null; } @@ -831,13 +831,13 @@ private void DrawInvContextMenu() } if (emptySlot != -1) { - int amount = itemContextMenu.Value.i.Amount / 2; + int amount = itemContextMenu.Value.i.stackedAmount / 2; var itemClone = new Item(itemContextMenu.Value.i, amount, 0, false); itemClone.level = itemContextMenu.Value.i.level; - if (itemContextMenu.Value.i.Stats != null) - itemClone.Stats = new System.Collections.Generic.List(itemContextMenu.Value.i.Stats); + if (itemContextMenu.Value.i.stats != null) + itemClone.stats = new System.Collections.Generic.List(itemContextMenu.Value.i.stats); - itemContextMenu.Value.i.Amount -= amount; + itemContextMenu.Value.i.stackedAmount -= amount; Inventory.Instance.ItemSlots[emptySlot] = itemClone; @@ -868,10 +868,10 @@ private void DrawInvContextMenu() } void DropItem(int itemIndex, Item i) { - if (i.Equipped) + if (i.isEquipped) { i.OnUnequip(); - i.Equipped = false; + i.isEquipped = false; } Inventory.Instance.DropItem(itemIndex); CustomCrafting.ClearIndex(itemIndex); diff --git a/Player/ModdedPlayer/ModdedPlayer.cs b/Player/ModdedPlayer/ModdedPlayer.cs index 8afc1b8..fd9e95f 100644 --- a/Player/ModdedPlayer/ModdedPlayer.cs +++ b/Player/ModdedPlayer/ModdedPlayer.cs @@ -301,10 +301,10 @@ private void Update() { if (ModAPI.Input.GetButtonDown("EquipWeapon")) { - if (Inventory.Instance.ItemSlots[-12] != null && Inventory.Instance.ItemSlots[-12].Equipped) + if (Inventory.Instance.ItemSlots[-12] != null && Inventory.Instance.ItemSlots[-12].isEquipped) { - PlayerInventoryMod.ToEquipWeaponType = Inventory.Instance.ItemSlots[-12].weaponModel; - switch (Inventory.Instance.ItemSlots[-12].weaponModel) + PlayerInventoryMod.ToEquipWeaponType = Inventory.Instance.ItemSlots[-12].subtype; + switch (Inventory.Instance.ItemSlots[-12].subtype) { case BaseItem.WeaponModelType.Polearm: if (LocalPlayer.Inventory.AmountOf(56) <= 0) @@ -1158,11 +1158,11 @@ public static void UnAssignAllStats() { if (item.Value == null) continue; - if (item.Value.Equipped) + if (item.Value.isEquipped) { - item.Value.onUnequip?.Invoke(); - item.Value.Equipped = false; - foreach (var stat in item.Value.Stats) + item.Value.onUnequipCallback?.Invoke(); + item.Value.isEquipped = false; + foreach (var stat in item.Value.stats) { try { @@ -1242,7 +1242,7 @@ public static void ReapplyAllItems() { if (Inventory.Instance.ItemSlots[key] != null) { - Inventory.Instance.ItemSlots[key].Equipped = false; + Inventory.Instance.ItemSlots[key].isEquipped = false; } } diff --git a/Player/PlayerUtils.cs b/Player/PlayerUtils.cs index c88cc86..d3bb5de 100644 --- a/Player/PlayerUtils.cs +++ b/Player/PlayerUtils.cs @@ -12,9 +12,9 @@ internal static float GetPlayerMeleeDamageRating() float atkSpeed = 1; if (equippedWeapon != null) { - if (PlayerInventoryMod.customWeapons.ContainsKey(equippedWeapon.weaponModel)) + if (PlayerInventoryMod.customWeapons.ContainsKey(equippedWeapon.subtype)) { - var cw = PlayerInventoryMod.customWeapons[equippedWeapon.weaponModel]; + var cw = PlayerInventoryMod.customWeapons[equippedWeapon.subtype]; dmg = cw.damage; } } @@ -33,7 +33,7 @@ internal static float GetPlayerRangedDamageRating() float atkSpeed = 1; if (equippedWeapon != null) { - greatbow = equippedWeapon.weaponModel == BaseItem.WeaponModelType.Greatbow; + greatbow = equippedWeapon.subtype == BaseItem.WeaponModelType.Greatbow; if (greatbow) { dmg += 140; diff --git a/Serializer.cs b/Serializer.cs index 92a9994..6b41b7b 100644 --- a/Serializer.cs +++ b/Serializer.cs @@ -102,8 +102,7 @@ private void DoLoad(string path, out float HealthPercentage, out Dictionary Date: Wed, 16 Apr 2025 17:51:06 +0200 Subject: [PATCH 11/27] ItemFilesWIP --- ChampionsOfForest.csproj | 17 +- Items/ItemDefinitions/Amulet.cs | 71 ++++++++ Items/ItemDefinitions/Boot.cs | 76 +++++++++ Items/ItemDefinitions/Bracer.cs | 71 ++++++++ Items/ItemDefinitions/ChestArmor.cs | 71 ++++++++ Items/ItemDefinitions/Glove.cs | 71 ++++++++ Items/ItemDefinitions/Helmets.cs | 74 ++++++++ Items/ItemDefinitions/Other.cs | 55 ++++++ Items/ItemDefinitions/Pants.cs | 73 ++++++++ Items/ItemDefinitions/Quivers.cs | 79 +++++++++ Items/ItemDefinitions/Rings.cs | 83 +++++++++ Items/ItemDefinitions/Shields_Lama_Mega.cs | 186 +++++++++++++++++++++ Items/ItemDefinitions/ShoulderArmor.cs | 71 ++++++++ Items/ItemDefinitions/SpellScroll.cs | 71 ++++++++ 14 files changed, 1065 insertions(+), 4 deletions(-) create mode 100644 Items/ItemDefinitions/Amulet.cs create mode 100644 Items/ItemDefinitions/Boot.cs create mode 100644 Items/ItemDefinitions/Bracer.cs create mode 100644 Items/ItemDefinitions/ChestArmor.cs create mode 100644 Items/ItemDefinitions/Glove.cs create mode 100644 Items/ItemDefinitions/Helmets.cs create mode 100644 Items/ItemDefinitions/Other.cs create mode 100644 Items/ItemDefinitions/Pants.cs create mode 100644 Items/ItemDefinitions/Quivers.cs create mode 100644 Items/ItemDefinitions/Rings.cs create mode 100644 Items/ItemDefinitions/Shields_Lama_Mega.cs create mode 100644 Items/ItemDefinitions/ShoulderArmor.cs create mode 100644 Items/ItemDefinitions/SpellScroll.cs diff --git a/ChampionsOfForest.csproj b/ChampionsOfForest.csproj index c01ab8d..586dc11 100644 --- a/ChampionsOfForest.csproj +++ b/ChampionsOfForest.csproj @@ -52,9 +52,6 @@ ../../../modlib/TheForest/TheForest_data/Managed/bolt.user.dll False - - ..\..\..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\The Forest\TheForest_Data\Managed\BuilderCore.dll - ../../../modlib/TheForest/TheForest_data/Managed/SteamworksManaged.dll False @@ -211,7 +208,19 @@ - + + + + + + + + + + + + + diff --git a/Items/ItemDefinitions/Amulet.cs b/Items/ItemDefinitions/Amulet.cs new file mode 100644 index 0000000..2af8944 --- /dev/null +++ b/Items/ItemDefinitions/Amulet.cs @@ -0,0 +1,71 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Security.Policy; +using System.Text; + +using ChampionsOfForest.Items.ItemTemplates; + +using static ChampionsOfForest.ItemDataBase.Stat; + +namespace ChampionsOfForest +{ + public static partial class ItemDataBase + { + + public static void AddAmulet() + { + + //------------------------------------------------------ + //Rarity 0 (White) + //------------------------------------------------------ + + new Amulet() + .DefaultStatSlot(1) + .Name("") + .Description("") + .Rarity(0); + + //------------------------------------------------------ + //Rarity 1 (Green) + //------------------------------------------------------ + + new Amulet() + .DefaultStatSlot(2) + .Name("") + .Description("") + .Rarity(1); + + //------------------------------------------------------ + //Rarity 2 (Blue) + //------------------------------------------------------ + + new Amulet() + .DefaultStatSlot(3) + .Name("") + .Description("") + .Rarity(2); + + //------------------------------------------------------ + //Rarity 3 (Yellow) + //------------------------------------------------------ + + new Amulet() + .DefaultStatSlot(4) + .Name("") + .Description("") + .Rarity(3); + + //------------------------------------------------------ + //Rarity 4 (Red) + //------------------------------------------------------ + + new Amulet() + .DefaultStatSlot(5) + .Name("") + .Description("") + .Rarity(4); + + } + } +} \ No newline at end of file diff --git a/Items/ItemDefinitions/Boot.cs b/Items/ItemDefinitions/Boot.cs new file mode 100644 index 0000000..a6033fb --- /dev/null +++ b/Items/ItemDefinitions/Boot.cs @@ -0,0 +1,76 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Security.Policy; +using System.Text; + +using ChampionsOfForest.Items.ItemTemplates; + +using static ChampionsOfForest.ItemDataBase.Stat; + +namespace ChampionsOfForest +{ + public static partial class ItemDataBase + { + + public static void AddBoots() + { + //------------------------------------------------------ + //Rarity 0 (White) + //------------------------------------------------------ + + new Boot() + .DefaultStatSlot(1) + .StatSlot(new Stat[] { MOVEMENTSPEED }) + .Name("") + .Description("") + .Rarity(0); + + //------------------------------------------------------ + //Rarity 1 (Green) + //------------------------------------------------------ + + new Boot() + .DefaultStatSlot(2) + .StatSlot(new Stat[] { MOVEMENTSPEED }) + .Name("") + .Description("") + .Rarity(1); + + //------------------------------------------------------ + //Rarity 2 (Blue) + //------------------------------------------------------ + + new Boot() + .DefaultStatSlot(3) + .StatSlot(new Stat[] { MOVEMENTSPEED }) + .Name("") + .Description("") + .Rarity(2); + + //------------------------------------------------------ + //Rarity 3 (Yellow) + //------------------------------------------------------ + + new Boot() + .DefaultStatSlot(4) + .StatSlot(new Stat[] { MOVEMENTSPEED }) + .Name("") + .Description("") + .Rarity(3); + + //------------------------------------------------------ + //Rarity 4 (Red) + //------------------------------------------------------ + + new Boot() + .DefaultStatSlot(5) + .StatSlot(new Stat[] { MOVEMENTSPEED }) + .Name("") + .Description("") + .Rarity(4); + + } + } + +} \ No newline at end of file diff --git a/Items/ItemDefinitions/Bracer.cs b/Items/ItemDefinitions/Bracer.cs new file mode 100644 index 0000000..cb07443 --- /dev/null +++ b/Items/ItemDefinitions/Bracer.cs @@ -0,0 +1,71 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Security.Policy; +using System.Text; + +using ChampionsOfForest.Items.ItemTemplates; + +using static ChampionsOfForest.ItemDataBase.Stat; + +namespace ChampionsOfForest +{ + public static partial class ItemDataBase + { + + public static void AddBracer() + { + + //------------------------------------------------------ + //Rarity 0 (White) + //------------------------------------------------------ + + new Bracer() + .DefaultStatSlot(1) + .Name("") + .Description("") + .Rarity(0); + + //------------------------------------------------------ + //Rarity 1 (Green) + //------------------------------------------------------ + + new Bracer() + .DefaultStatSlot(2) + .Name("") + .Description("") + .Rarity(1); + + //------------------------------------------------------ + //Rarity 2 (Blue) + //------------------------------------------------------ + + new Bracer() + .DefaultStatSlot(3) + .Name("") + .Description("") + .Rarity(2); + + //------------------------------------------------------ + //Rarity 3 (Yellow) + //------------------------------------------------------ + + new Bracer() + .DefaultStatSlot(4) + .Name("") + .Description("") + .Rarity(3); + + //------------------------------------------------------ + //Rarity 4 (Red) + //------------------------------------------------------ + + new Bracer() + .DefaultStatSlot(5) + .Name("") + .Description("") + .Rarity(4); + + } + } +} \ No newline at end of file diff --git a/Items/ItemDefinitions/ChestArmor.cs b/Items/ItemDefinitions/ChestArmor.cs new file mode 100644 index 0000000..4cb8f61 --- /dev/null +++ b/Items/ItemDefinitions/ChestArmor.cs @@ -0,0 +1,71 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Security.Policy; +using System.Text; + +using ChampionsOfForest.Items.ItemTemplates; + +using static ChampionsOfForest.ItemDataBase.Stat; + +namespace ChampionsOfForest +{ + public static partial class ItemDataBase + { + + public static void AddChestArmor() + { + + //------------------------------------------------------ + //Rarity 0 (White) + //------------------------------------------------------ + + new ChestArmor() + .DefaultStatSlot(1) + .Name("") + .Description("") + .Rarity(0); + + //------------------------------------------------------ + //Rarity 1 (Green) + //------------------------------------------------------ + + new ChestArmor() + .DefaultStatSlot(2) + .Name("") + .Description("") + .Rarity(1); + + //------------------------------------------------------ + //Rarity 2 (Blue) + //------------------------------------------------------ + + new ChestArmor() + .DefaultStatSlot(3) + .Name("") + .Description("") + .Rarity(2); + + //------------------------------------------------------ + //Rarity 3 (Yellow) + //------------------------------------------------------ + + new ChestArmor() + .DefaultStatSlot(4) + .Name("") + .Description("") + .Rarity(3); + + //------------------------------------------------------ + //Rarity 4 (Red) + //------------------------------------------------------ + + new ChestArmor() + .DefaultStatSlot(5) + .Name("") + .Description("") + .Rarity(4); + + } + } +} \ No newline at end of file diff --git a/Items/ItemDefinitions/Glove.cs b/Items/ItemDefinitions/Glove.cs new file mode 100644 index 0000000..68c932d --- /dev/null +++ b/Items/ItemDefinitions/Glove.cs @@ -0,0 +1,71 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Security.Policy; +using System.Text; + +using ChampionsOfForest.Items.ItemTemplates; + +using static ChampionsOfForest.ItemDataBase.Stat; + +namespace ChampionsOfForest +{ + public static partial class ItemDataBase + { + + public static void AddGlove() + { + + //------------------------------------------------------ + //Rarity 0 (White) + //------------------------------------------------------ + + new Glove() + .DefaultStatSlot(1) + .Name("") + .Description("") + .Rarity(0); + + //------------------------------------------------------ + //Rarity 1 (Green) + //------------------------------------------------------ + + new Glove() + .DefaultStatSlot(2) + .Name("") + .Description("") + .Rarity(1); + + //------------------------------------------------------ + //Rarity 2 (Blue) + //------------------------------------------------------ + + new Glove() + .DefaultStatSlot(3) + .Name("") + .Description("") + .Rarity(2); + + //------------------------------------------------------ + //Rarity 3 (Yellow) + //------------------------------------------------------ + + new Glove() + .DefaultStatSlot(4) + .Name("") + .Description("") + .Rarity(3); + + //------------------------------------------------------ + //Rarity 4 (Red) + //------------------------------------------------------ + + new Glove() + .DefaultStatSlot(5) + .Name("") + .Description("") + .Rarity(4); + + } + } +} \ No newline at end of file diff --git a/Items/ItemDefinitions/Helmets.cs b/Items/ItemDefinitions/Helmets.cs new file mode 100644 index 0000000..cb2ffab --- /dev/null +++ b/Items/ItemDefinitions/Helmets.cs @@ -0,0 +1,74 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Security.Policy; +using System.Text; + +using ChampionsOfForest.Items.ItemTemplates; + +using static ChampionsOfForest.ItemDataBase.Stat; + +namespace ChampionsOfForest +{ + public static partial class ItemDataBase + { + public static void AddHelmets() + { + + + //------------------------------------------------------ + //Rarity 0 (White) + //------------------------------------------------------ + + new Helmet() + .DefaultStatSlot(1) + .Name("") + .Description("") + .Rarity(0); + + //------------------------------------------------------ + //Rarity 1 (Green) + //------------------------------------------------------ + + new Helmet() + .DefaultStatSlot(1) + .Name("") + .Description("") + .Rarity(1); + + + //------------------------------------------------------ + //Rarity 2 (Blue) + //------------------------------------------------------ + + new Helmet() + .DefaultStatSlot(2) + .Name("") + .Description("") + .Rarity(2); + + + //------------------------------------------------------ + //Rarity 3 (Yellow) + //------------------------------------------------------ + + new Helmet() + .DefaultStatSlot(4) + .Name("") + .Description("") + .Rarity(3); + + //------------------------------------------------------ + //Rarity 4 (Red) + //------------------------------------------------------ + + new Helmet() + .DefaultStatSlot(5) + .Name("") + .Description("") + .Rarity(4); + } + + } + +} diff --git a/Items/ItemDefinitions/Other.cs b/Items/ItemDefinitions/Other.cs new file mode 100644 index 0000000..27dee16 --- /dev/null +++ b/Items/ItemDefinitions/Other.cs @@ -0,0 +1,55 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Security.Policy; +using System.Text; + +using ChampionsOfForest.Items.ItemTemplates; + +using static ChampionsOfForest.ItemDataBase.Stat; + +namespace ChampionsOfForest +{ + + public static partial class ItemDataBase + { + + public static void AddConsumables() + { + + //------------------------------------------------------ + //Rarity 0 (White) + //------------------------------------------------------ + + new Consumables() + + + + //------------------------------------------------------ + //Rarity 1 (Green) + //------------------------------------------------------ + + + + //------------------------------------------------------ + //Rarity 2 (Blue) + //------------------------------------------------------ + + + + //------------------------------------------------------ + //Rarity 3 (Yellow) + //------------------------------------------------------ + + + + //------------------------------------------------------ + //Rarity 4 (Red) + //------------------------------------------------------ + + } + + } + + +} \ No newline at end of file diff --git a/Items/ItemDefinitions/Pants.cs b/Items/ItemDefinitions/Pants.cs new file mode 100644 index 0000000..2be8cd3 --- /dev/null +++ b/Items/ItemDefinitions/Pants.cs @@ -0,0 +1,73 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Security.Policy; +using System.Text; + +using ChampionsOfForest.Items.ItemTemplates; + +using static ChampionsOfForest.ItemDataBase.Stat; + +namespace ChampionsOfForest +{ + public static partial class ItemDataBase + { + + public static void AddPants() + { + + + //------------------------------------------------------ + //Rarity 0 (White) + //------------------------------------------------------ + + new Pants() + .DefaultStatSlot(1) + .Name("") + .Description("") + .Rarity(0); + + + //------------------------------------------------------ + //Rarity 1 (Green) + //------------------------------------------------------ + + new Pants() + .DefaultStatSlot(2) + .Name("") + .Description("") + .Rarity(1); + + //------------------------------------------------------ + //Rarity 2 (Blue) + //------------------------------------------------------ + + new Pants() + .DefaultStatSlot(3) + .Name("") + .Description("") + .Rarity(2); + + //------------------------------------------------------ + //Rarity 3 (Yellow) + //------------------------------------------------------ + + new Pants() + .DefaultStatSlot(4) + .Name("") + .Description("") + .Rarity(3); + + //------------------------------------------------------ + //Rarity 4 (Red) + //------------------------------------------------------ + + new Pants() + .DefaultStatSlot(5) + .Name("") + .Description("") + .Rarity(4); + + } + } +} \ No newline at end of file diff --git a/Items/ItemDefinitions/Quivers.cs b/Items/ItemDefinitions/Quivers.cs new file mode 100644 index 0000000..aacef2c --- /dev/null +++ b/Items/ItemDefinitions/Quivers.cs @@ -0,0 +1,79 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Security.Policy; +using System.Text; + +using ChampionsOfForest.Items.ItemTemplates; + +using static ChampionsOfForest.ItemDataBase.Stat; + +namespace ChampionsOfForest +{ + public static partial class ItemDataBase + { + + public static void AddQuivers() + { + //------------------------------------------------------ + //Rarity 0 (White) + //------------------------------------------------------ + + new Quiver() + .RangedStatSlot(1) + //.StatSlot(new Stat[] {}) + .Name("") + .Description("") + .Rarity(0); + + //------------------------------------------------------ + //Rarity 1 (Green) + //------------------------------------------------------ + + new Quiver() + .RangedStatSlot(1) + //.StatSlot(new Stat[] {}) + .DefaultStatSlot(1) + .Name("") + .Description("") + .Rarity(1); + + //------------------------------------------------------ + //Rarity 2 (Blue) + //------------------------------------------------------ + + new Quiver() + .RangedStatSlot(2) + //.StatSlot(new Stat[] {}) + .DefaultStatSlot(1) + .Name("") + .Description("") + .Rarity(2); + + //------------------------------------------------------ + //Rarity 3 (Yellow) + //------------------------------------------------------ + + new Quiver() + .RangedStatSlot(2) + //.StatSlot(new Stat[] {}) + .DefaultStatSlot(2) + .Name("") + .Description("") + .Rarity(3); + + //------------------------------------------------------ + //Rarity 4 (Red) + //------------------------------------------------------ + + new Quiver() + .RangedStatSlot(3) + //.StatSlot(new Stat[] {}) + .DefaultStatSlot(2) + .Name("") + .Description("") + .Rarity(4); + + } + } +} \ No newline at end of file diff --git a/Items/ItemDefinitions/Rings.cs b/Items/ItemDefinitions/Rings.cs new file mode 100644 index 0000000..5bb90f5 --- /dev/null +++ b/Items/ItemDefinitions/Rings.cs @@ -0,0 +1,83 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Security.Policy; +using System.Text; + +using ChampionsOfForest.Items.ItemTemplates; + +using static ChampionsOfForest.ItemDataBase.Stat; + +namespace ChampionsOfForest +{ + + public static partial class ItemDataBase + { + + public static void AddRings() + { + + //------------------------------------------------------ + //Rarity 0 (White) + //------------------------------------------------------ + + new Ring() + .RingStatSlot(1) + //.StatSlot(new Stat[] {}) + .DefaultStatSlot(0) + .Name("") + .Description("") + .Rarity(0); + + + //------------------------------------------------------ + //Rarity 1 (Green) + //------------------------------------------------------ + + new Ring() + .RingStatSlot(1) + //.StatSlot(new Stat[] {}) + .DefaultStatSlot(1) + .Name("") + .Description("") + .Rarity(1); + + //------------------------------------------------------ + //Rarity 2 (Blue) + //------------------------------------------------------ + + new Ring() + .RingStatSlot(1) + //.StatSlot(new Stat[] {}) + .DefaultStatSlot(1) + .Name("") + .Description("") + .Rarity(2); + + //------------------------------------------------------ + //Rarity 3 (Yellow) + //------------------------------------------------------ + + new Ring() + .RingStatSlot(2) + //.StatSlot(new Stat[] {}) + .DefaultStatSlot(2) + .Name("") + .Description("") + .Rarity(3); + + //------------------------------------------------------ + //Rarity 4 (Red) + //------------------------------------------------------ + + new Ring() + .RingStatSlot(3) + //.StatSlot(new Stat[] {}) + .DefaultStatSlot(3) + .Name("") + .Description("") + .Rarity(4); + } + + } +} \ No newline at end of file diff --git a/Items/ItemDefinitions/Shields_Lama_Mega.cs b/Items/ItemDefinitions/Shields_Lama_Mega.cs new file mode 100644 index 0000000..93bec69 --- /dev/null +++ b/Items/ItemDefinitions/Shields_Lama_Mega.cs @@ -0,0 +1,186 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Security.Policy; +using System.Text; + +using ChampionsOfForest.Items.ItemTemplates; +using static ChampionsOfForest.ItemDataBase.Stat; + +namespace ChampionsOfForest +{ + public static partial class ItemDataBase + { + public static void AddShields() + { + //------------------------------------------------------ + //Rarity 0 (Grey) + //------------------------------------------------------ + new Shield() + .ShieldStatSlot(1) + .StatSlot(new Stat[] { BLOCK }) + .Name("Rusten Battered Shield") + .Description("Covered in rust and scarred from countless blows, this battered shield has seen better days. It creaks with every movement, offering only the most basic protection.") + .Rarity(0); + + new Shield() + .StatSlot(new Stat[] { BLOCK }) + .Name("Cracked Buckler") + .Description("Cracked and barely holding together, this old buckler offers little more than false hope. Its surface is marred with dents and splits from battles long forgotten.") + .Rarity(0); + new Shield() + .StatSlot(new Stat[] { BLOCK }) + .StatSlot(new Stat[] { STRENGTH, NONE }) + .Name("Shattered Guard") + .Description("No warior would pick this up and call it a shield.") + .Rarity(0); + + //------------------------------------------------------ + //Rarity 1 (White) + //------------------------------------------------------ + + new Shield() + .ShieldStatSlot(2) + .StatSlot(new Stat[] { BLOCK }) + .Name("Plain Iron Shield") + .Description("Fuck you Hazard. ~Lama Mega~") + .Rarity(1); + + new Shield() + .ShieldStatSlot(1) + .StatSlot(new Stat[] { BLOCK }) + .StatSlot(new Stat[] { THORNS, BASEMELEEDAMAGE }) + .Name("Wooden Buckler") + .Description("This shield has a precariously sticking out nail.") + .Rarity(1); + + new Shield() + .ShieldStatSlot(1) + .DefaultStatSlot(1) + .StatSlot(new Stat[] { BLOCK }) + .Name("Footknights's Roundshield") + .Description("") + .Rarity(1); + + //------------------------------------------------------ + //Rarity 2 (Dark Blue) + //------------------------------------------------------ + + new Shield() + .ShieldStatSlot(3) + .StatSlot(new Stat[] { BLOCK }) + .Name("Runed Iron Bulwark") + .Description("Fuck you Hazard. ~Lama Mega~") + .Rarity(1); + + + new Shield() + .ShieldStatSlot(3) + .StatSlot(new Stat[] { BLOCK }) + .StatSlot(new Stat[] { DODGECHANCE }) + .Name("Reinforced Buckler") + .Description("Light and small shield that allows you to dodge attacks.") + .Rarity(2); + + new Shield() + .ShieldStatSlot(3) + .StatSlot(new Stat[] { BLOCK }) + .StatSlot(new Stat[] { DODGECHANCE }) + .Name("Knight's Guard") + .Description("") + .Rarity(2); + + + //------------------------------------------------------ + //Rarity 3 (Blue) + //------------------------------------------------------ + + new Shield() + .ShieldStatSlot(3) + .StatSlot(new Stat[] { BLOCK }) + .StatSlot(new Stat[] { DODGECHANCE }) + .Name("1st Blue Shield") + .Description("") + .Rarity(3); + + //------------------------------------------------------ + //Rarity 4 (Yellow) + //------------------------------------------------------ + + new Shield() + .ShieldStatSlot(4) + .StatSlot(new Stat[] { BLOCK }) + .StatSlot(new Stat[] { DODGECHANCE }) + .Name("1st Yellow Shield") + .Description("") + .Rarity(4); + + //------------------------------------------------------ + //Rarity 5 (Orange) + //------------------------------------------------------ + + new Shield() + .ShieldStatSlot(5) + .StatSlot(new Stat[] { BLOCK }) + .StatSlot(new Stat[] { DODGECHANCE }) + .Name("1st Orange Shield") + .Description("") + .Rarity(5); + + //------------------------------------------------------ + //Rarity 6 (Green) + //------------------------------------------------------ + + new Shield() + .ShieldStatSlot(6) + .StatSlot(new Stat[] { BLOCK }) + .StatSlot(new Stat[] { DODGECHANCE }) + .Name("1st Green Shield") + .Description("") + .Rarity(6); + + //------------------------------------------------------ + //Rarity 7 (Red) + //------------------------------------------------------ + + new Shield() + .ShieldStatSlot(7) + .StatSlot(new Stat[] { BLOCK }) + .StatSlot(new Stat[] { DODGECHANCE }) + .Name("1st Red Shield") + .Description("") + .Rarity(7); + + } + + } +} + + +//------------------------------------------------------ +//Rarity 0 (White) +//------------------------------------------------------ + + + +//------------------------------------------------------ +//Rarity 1 (Green) +//------------------------------------------------------ + + + +//------------------------------------------------------ +//Rarity 2 (Blue) +//------------------------------------------------------ + + + +//------------------------------------------------------ +//Rarity 3 (Yellow) +//------------------------------------------------------ + + + +//------------------------------------------------------ +//Rarity 4 (Red) +//------------------------------------------------------ \ No newline at end of file diff --git a/Items/ItemDefinitions/ShoulderArmor.cs b/Items/ItemDefinitions/ShoulderArmor.cs new file mode 100644 index 0000000..451d440 --- /dev/null +++ b/Items/ItemDefinitions/ShoulderArmor.cs @@ -0,0 +1,71 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Security.Policy; +using System.Text; + +using ChampionsOfForest.Items.ItemTemplates; + +using static ChampionsOfForest.ItemDataBase.Stat; + +namespace ChampionsOfForest +{ + public static partial class ItemDataBase + { + + public static void AddShoulderArmor() + { + + //------------------------------------------------------ + //Rarity 0 (White) + //------------------------------------------------------ + + new ChestArmor() + .DefaultStatSlot(1) + .Name("") + .Description("") + .Rarity(0); + + //------------------------------------------------------ + //Rarity 1 (Green) + //------------------------------------------------------ + + new ChestArmor() + .DefaultStatSlot(2) + .Name("") + .Description("") + .Rarity(1); + + //------------------------------------------------------ + //Rarity 2 (Blue) + //------------------------------------------------------ + + new ChestArmor() + .DefaultStatSlot(3) + .Name("") + .Description("") + .Rarity(2); + + //------------------------------------------------------ + //Rarity 3 (Yellow) + //------------------------------------------------------ + + new ChestArmor() + .DefaultStatSlot(4) + .Name("") + .Description("") + .Rarity(3); + + //------------------------------------------------------ + //Rarity 4 (Red) + //------------------------------------------------------ + + new ChestArmor() + .DefaultStatSlot(5) + .Name("") + .Description("") + .Rarity(4); + + } + } +} \ No newline at end of file diff --git a/Items/ItemDefinitions/SpellScroll.cs b/Items/ItemDefinitions/SpellScroll.cs new file mode 100644 index 0000000..8864a93 --- /dev/null +++ b/Items/ItemDefinitions/SpellScroll.cs @@ -0,0 +1,71 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Security.Policy; +using System.Text; + +using ChampionsOfForest.Items.ItemTemplates; + +using static ChampionsOfForest.ItemDataBase.Stat; + +namespace ChampionsOfForest +{ + public static partial class ItemDataBase + { + + public static void AddSpellScroll() + { + + //------------------------------------------------------ + //Rarity 0 (White) + //------------------------------------------------------ + + new SpellScroll() + .DefaultStatSlot(1) + .Name("") + .Description("") + .Rarity(0); + + //------------------------------------------------------ + //Rarity 1 (Green) + //------------------------------------------------------ + + new SpellScroll() + .DefaultStatSlot(2) + .Name("") + .Description("") + .Rarity(1); + + //------------------------------------------------------ + //Rarity 2 (Blue) + //------------------------------------------------------ + + new SpellScroll() + .DefaultStatSlot(3) + .Name("") + .Description("") + .Rarity(2); + + //------------------------------------------------------ + //Rarity 3 (Yellow) + //------------------------------------------------------ + + new SpellScroll() + .DefaultStatSlot(4) + .Name("") + .Description("") + .Rarity(3); + + //------------------------------------------------------ + //Rarity 4 (Red) + //------------------------------------------------------ + + new SpellScroll() + .DefaultStatSlot(5) + .Name("") + .Description("") + .Rarity(4); + + } + } +} \ No newline at end of file From 9d6daee1a5298f829287b065ff7a048543cbc4a3 Mon Sep 17 00:00:00 2001 From: LamaMega Date: Wed, 16 Apr 2025 19:39:01 +0200 Subject: [PATCH 12/27] HazardsRequest --- Items/ItemDataBase.cs | 2 +- Items/ItemTemplates.cs | 82 +++++++++++++++++++++++++++++++++--------- 2 files changed, 66 insertions(+), 18 deletions(-) diff --git a/Items/ItemDataBase.cs b/Items/ItemDataBase.cs index 0dadafc..21ee335 100644 --- a/Items/ItemDataBase.cs +++ b/Items/ItemDataBase.cs @@ -6,7 +6,7 @@ namespace ChampionsOfForest { public static partial class ItemDataBase { - public static List _Item_Bases; + public static Dictionary> _Item_Bases; public static Dictionary ItemBases; public static List statList; public static Dictionary Stats; diff --git a/Items/ItemTemplates.cs b/Items/ItemTemplates.cs index 2aebf42..bd3083d 100644 --- a/Items/ItemTemplates.cs +++ b/Items/ItemTemplates.cs @@ -20,6 +20,16 @@ public abstract class ItemTemplateBuilder : BaseItem private static List rangedStats = null; private static List defenseStats = null; private static List recoveryStats = null; + + protected const int PADDING = 10000; + protected void Register() + { + + id = ItemDataBase._Item_Bases[type].Count() + PADDING * (int)type; + ItemDataBase._Item_Bases[type].Add(this); + + } + public ItemTemplateBuilder() { if (defaultStats == null || defaultStats.Count() == 0) @@ -46,9 +56,6 @@ public ItemTemplateBuilder() { recoveryStats = ToItemStatList(recoveryStatIds); } - - id = ItemDataBase._Item_Bases.Count; - ItemDataBase._Item_Bases.Add(this); } protected List ToItemStatList(Stat[] stats) @@ -287,6 +294,7 @@ public Greatsword() subtype = WeaponModelType.GreatSword; Icon(88); + Register(); } } @@ -297,6 +305,8 @@ public Longsword() type = ItemType.Weapon; subtype = WeaponModelType.LongSword; Icon(89); + + Register(); } } @@ -308,7 +318,8 @@ public Hammer() subtype = WeaponModelType.Hammer; Icon(109); - } + Register(); + } } public class Polearm : ItemTemplateBuilder @@ -318,7 +329,9 @@ public Polearm() type = ItemType.Weapon; subtype = WeaponModelType.Polearm; Icon(181); - } + + Register(); + } } public class Axe : ItemTemplateBuilder @@ -328,7 +341,9 @@ public Axe() type = ItemType.Weapon; subtype = WeaponModelType.Axe; Icon(138); - } + + Register(); + } } public class Greatbow : ItemTemplateBuilder @@ -338,7 +353,9 @@ public Greatbow() type = ItemType.Weapon; subtype = WeaponModelType.Greatbow; Icon(170); - } + + Register(); + } } @@ -349,6 +366,8 @@ public Material() type = ItemType.Material; LevelRequirement(20); // Materials dont have a default icon + + Register(); } } @@ -407,7 +426,10 @@ public Shield() shieldStats = ToItemStatList(shieldStatIds); LevelRequirement(10); Icon(99); - } + maximumSocketSlots = 1; + + Register(); + } } public class Quiver : ItemTemplateBuilder @@ -417,7 +439,9 @@ public Quiver() type = ItemType.Quiver; LevelRequirement(10); Icon(98); - } + + Register(); + } } public class Other : ItemTemplateBuilder @@ -426,7 +450,9 @@ public Other() { type = ItemType.Other; Icon(105); - } + + Register(); + } } public class Helmet : ItemTemplateBuilder @@ -436,7 +462,9 @@ public Helmet() type = ItemType.Helmet; LevelRequirement(6); Icon(91); - } + + Register(); + } } public class Boot : ItemTemplateBuilder @@ -446,7 +474,9 @@ public Boot() type = ItemType.Boot; LevelRequirement(5); Icon(85); - } + + Register(); + } } public class Pants : ItemTemplateBuilder @@ -455,7 +485,9 @@ public Pants() { type = ItemType.Pants; Icon(87); - } + + Register(); + } } public class ChestArmor : ItemTemplateBuilder @@ -465,7 +497,9 @@ public ChestArmor() type = ItemType.ChestArmor; LevelRequirement(1); Icon(96); - } + + Register(); + } } public class ShoulderArmor : ItemTemplateBuilder @@ -475,7 +509,9 @@ public ShoulderArmor() type = ItemType.ShoulderArmor; LevelRequirement(8); Icon(95); - } + + Register(); + } } public class Glove : ItemTemplateBuilder @@ -485,7 +521,9 @@ public Glove() type = ItemType.Glove; LevelRequirement(7); Icon(86); - } + + Register(); + } } public class Bracer : ItemTemplateBuilder @@ -495,7 +533,9 @@ public Bracer() type = ItemType.Bracer; LevelRequirement(9); Icon(93); - } + + Register(); + } } public class Amulet : ItemTemplateBuilder @@ -575,6 +615,8 @@ public Amulet() amuletStats = ToItemStatList(amuletStatIds); LevelRequirement(20); Icon(101); + + Register(); } public Amulet RingStatSlot(int n = 1) @@ -639,6 +681,8 @@ public Ring() ringStats = ToItemStatList(ringStatIds); Icon(90); LevelRequirement(15); + + Register(); } public Ring RingStatSlot(int n = 1) @@ -656,6 +700,8 @@ public SpellScroll() type = ItemType.SpellScroll; LevelRequirement(10); Icon(110); + + Register(); } } @@ -666,6 +712,8 @@ public Consumables() type = ItemType.Other; LevelRequirement(10); Icon(105); + + Register(); } } From f165a53460e51110e36d47c9bd757daed1707a22 Mon Sep 17 00:00:00 2001 From: "Hazard (Cyprian Skrzypczak)" Date: Thu, 17 Apr 2025 20:54:14 +0200 Subject: [PATCH 13/27] Cleaning up item loot distribution and network commands --- ChampionsOfForest.csproj | 19 +- Configuration/DebugFeatures.cs | 2 +- Configuration/Initializer.cs | 4 +- Enemies/EnemyProgression/EnemyProgression.cs | 2 +- Enemies/WormHealthMod.cs | 2 +- ExpSources/AnimalExp.cs | 2 +- ExpSources/CutEffigyMod.cs | 2 +- ExpSources/FishEX.cs | 6 +- Fun/Cheats.cs | 10 +- Items/Item.cs | 130 +- Items/ItemDataBase.cs | 163 +- Items/ItemDataBase_Loot.cs | 198 +- Items/ItemDataBase_StatDefinitions.cs | 8 +- Items/ItemDefinitions/Amulet.cs | 6 +- Items/ItemDefinitions/Boot.cs | 6 +- Items/ItemDefinitions/Bracer.cs | 6 +- Items/ItemDefinitions/ChestArmor.cs | 6 +- Items/ItemDefinitions/Glove.cs | 6 +- Items/ItemDefinitions/Helmets.cs | 6 +- .../ItemDataBase_ItemDefinitions.cs | 2532 +++++----- .../ItemDefinition.cs} | 14 +- Items/ItemDefinitions/Other.cs | 6 +- Items/ItemDefinitions/Pants.cs | 6 +- Items/ItemDefinitions/Quivers.cs | 6 +- Items/ItemDefinitions/Rings.cs | 6 +- Items/ItemDefinitions/Shields.cs | 76 +- Items/ItemDefinitions/Shields_Lama_Mega.cs | 186 - Items/ItemDefinitions/ShoulderArmor.cs | 6 +- Items/ItemDefinitions/SpellScroll.cs | 6 +- Items/ItemStat.cs | 4 +- Items/ItemTemplates.cs | 96 +- Items/PickUpManager.cs | 42 +- Items/StatActions.cs | 92 +- Items/TheForestItemDBMod.cs | 2 +- ModReferences.cs | 259 +- ModSettings.cs | 2 + Network/COTFCommand.cs | 36 +- Network/CommandInitializer.cs | 43 +- Network/CommandReader.cs | 19 +- Network/CommandType.cs | 7 + Network/Commands/GetPlayerStateParams.cs | 18 + Network/CoopServerCallbacksMod.cs | 18 +- Network/NetworkManager.cs | 22 - Player/AutoPickupItems.cs | 2 +- Player/CoopCustomWeapons.cs | 22 +- Player/Crafting/IndividualRerolling.cs | 2 +- Player/Crafting/Polishing.cs | 2 +- Player/Crafting/Reforging.cs | 2 +- Player/CustomBow.cs | 34 +- Player/CustomWeapon.cs | 8 +- Player/Main Menu/MainMenu.cs | 26 +- Player/ModdedPlayer/ModdedPlayer.cs | 12 +- Player/Overrides/PlayerInventoryMod.cs | 80 +- Player/Overrides/WeaponInfoMod.cs | 6 +- Player/PlayerUtils.cs | 2 +- Player/RCoroutines.cs | 32 +- Serializer.cs | 8 +- ServerPlayerState.cs | 102 + Translations.cs | 4196 ++++++++--------- 59 files changed, 4131 insertions(+), 4493 deletions(-) rename Items/{BaseItem.cs => ItemDefinitions/ItemDefinition.cs} (95%) delete mode 100644 Items/ItemDefinitions/Shields_Lama_Mega.cs create mode 100644 Network/CommandType.cs create mode 100644 Network/Commands/GetPlayerStateParams.cs create mode 100644 ServerPlayerState.cs diff --git a/ChampionsOfForest.csproj b/ChampionsOfForest.csproj index 586dc11..77ac801 100644 --- a/ChampionsOfForest.csproj +++ b/ChampionsOfForest.csproj @@ -21,8 +21,7 @@ prompt 4 - - + ../../../libs/BaseModLib.dll @@ -52,6 +51,9 @@ ../../../modlib/TheForest/TheForest_data/Managed/bolt.user.dll False + + ..\..\..\..\..\SteamLibrary\steamapps\common\The Forest\TheForest_Data\Managed\BuilderCore.dll + ../../../modlib/TheForest/TheForest_data/Managed/SteamworksManaged.dll False @@ -218,18 +220,20 @@ - + - - + + + + @@ -294,12 +298,12 @@ - + - + @@ -334,6 +338,7 @@ + diff --git a/Configuration/DebugFeatures.cs b/Configuration/DebugFeatures.cs index 202f5bf..0a18ab2 100644 --- a/Configuration/DebugFeatures.cs +++ b/Configuration/DebugFeatures.cs @@ -136,7 +136,7 @@ partial void DrawDebug() GUI.Label(r, $"Client distance = {Vector3.Distance(rulerEnd, LocalPlayer.Transform.position)}\nLineLen = {Vector3.Distance(rulerStart, rulerEnd)}"); } } - if (PlayerInventoryMod.EquippedModel != BaseItem.WeaponModelType.None) + if (PlayerInventoryMod.EquippedModel != BaseItem.ItemSubtype.None) { GUI.Label(new Rect(600, 300, 500, 30), "Offset"); GUI.Label(new Rect(600, 330, 100, 30), PlayerInventoryMod.customWeapons[PlayerInventoryMod.EquippedModel].offset.x.ToString()); diff --git a/Configuration/Initializer.cs b/Configuration/Initializer.cs index f23ff75..9099cb7 100644 --- a/Configuration/Initializer.cs +++ b/Configuration/Initializer.cs @@ -37,7 +37,7 @@ public static void Initialize() new GameObject("NetworkManagerObj").AddComponent(); GameObject go = new GameObject("Playerobj"); go.AddComponent(); - ItemDataBase.Initialize(); + ItemDatabase.Initialize(); EnemyManager.Initialize(); Network.NetworkManager.instance.onGetMessage += Network.CommandReader.OnCommand; ExpEvents.Initialize(); @@ -83,7 +83,7 @@ public static void Initialize() Network.CommandInitializer.Init(); CustomCrafting.Init(); BuffDB.FillBuffList(); - ItemDataBase.Initialize(); + ItemDatabase.Initialize(); SpellDataBase.Initialize(); EnemyManager.Initialize(); Network.NetworkManager.instance.onGetMessage += Network.CommandReader.OnCommand; diff --git a/Enemies/EnemyProgression/EnemyProgression.cs b/Enemies/EnemyProgression/EnemyProgression.cs index b5c20ca..ac38085 100644 --- a/Enemies/EnemyProgression/EnemyProgression.cs +++ b/Enemies/EnemyProgression/EnemyProgression.cs @@ -408,7 +408,7 @@ private void DropLoot() for (int i = 0; i < pc; i++) { //Drop megan only amulet - Network.NetworkManager.SendItemDrop(new Item(ItemDataBase.ItemBases[80]), LocalPlayer.Transform.position + Vector3.up * 2, ItemPickUp.DropSource.EnemyOnDeath); + Network.NetworkManager.SendItemDrop(new Item(ItemDatabase.itemLookup[80]), LocalPlayer.Transform.position + Vector3.up * 2, ItemPickUp.DropSource.EnemyOnDeath); } } else if (abilities.Count >= 3) diff --git a/Enemies/WormHealthMod.cs b/Enemies/WormHealthMod.cs index 7232184..301fff2 100644 --- a/Enemies/WormHealthMod.cs +++ b/Enemies/WormHealthMod.cs @@ -113,7 +113,7 @@ protected override void Update() int itemCount = Random.Range(15, 26); for (int i = 0; i < itemCount; i++) { - Network.NetworkManager.SendItemDrop(ItemDataBase.GetRandomItem(Exp,transform.position), LocalPlayer.Transform.position + Vector3.up * 2, ItemPickUp.DropSource.EnemyOnDeath); + Network.NetworkManager.SendItemDrop(ItemDatabase.GetRandomItem(Exp,transform.position), LocalPlayer.Transform.position + Vector3.up * 2, ItemPickUp.DropSource.EnemyOnDeath); } } Destroy(base.gameObject); diff --git a/ExpSources/AnimalExp.cs b/ExpSources/AnimalExp.cs index f07faf3..32266a3 100644 --- a/ExpSources/AnimalExp.cs +++ b/ExpSources/AnimalExp.cs @@ -68,7 +68,7 @@ protected override void Die() if (xp > 82) { if(Random.value < 0.5f) - Network.NetworkManager.SendItemDrop(ItemDataBase.GetRandomItem(xp,transform.position), transform.position + Vector3.up * 4f, ItemPickUp.DropSource.EnemyOnDeath); + Network.NetworkManager.SendItemDrop(ItemDatabase.GetRandomItem(xp,transform.position), transform.position + Vector3.up * 4f, ItemPickUp.DropSource.EnemyOnDeath); } base.Die(); diff --git a/ExpSources/CutEffigyMod.cs b/ExpSources/CutEffigyMod.cs index 11b84d9..2901bed 100644 --- a/ExpSources/CutEffigyMod.cs +++ b/ExpSources/CutEffigyMod.cs @@ -16,7 +16,7 @@ protected override void CutDown() ModdedPlayer.instance.AddFinalExperience(expAmount); if (!GameSetup.IsMpClient && Random.value * ModdedPlayer.Stats.magicFind_quantity < 0.5f) { - Network.NetworkManager.SendItemDrop(ItemDataBase.GetRandomItem(170*ModdedPlayer.Stats.magicFind_quantity.Value, EnemyProgression.Enemy.NormalSkinnyMale,ModSettings.difficulty, transform.position), transform.position + Vector3.up * (1.75f), ItemPickUp.DropSource.Effigy); + Network.NetworkManager.SendItemDrop(ItemDatabase.GetRandomItem(170*ModdedPlayer.Stats.magicFind_quantity.Value, EnemyProgression.Enemy.NormalSkinnyMale,ModSettings.difficulty, transform.position), transform.position + Vector3.up * (1.75f), ItemPickUp.DropSource.Effigy); } if (ModdedPlayer.Stats.perk_doubleStickHarvesting) { diff --git a/ExpSources/FishEX.cs b/ExpSources/FishEX.cs index bc73930..6fcad1f 100644 --- a/ExpSources/FishEX.cs +++ b/ExpSources/FishEX.cs @@ -39,9 +39,9 @@ public void SharkKilled() } if (!GameSetup.IsMpClient) { - Network.NetworkManager.SendItemDrop(ItemDataBase.GetRandomItem(270,transform.position), LocalPlayer.Transform.position + Vector3.up * 6f, ItemPickUp.DropSource.EnemyOnDeath); - Network.NetworkManager.SendItemDrop(ItemDataBase.GetRandomItem(310, transform.position), LocalPlayer.Transform.position + Vector3.up * 6f, ItemPickUp.DropSource.EnemyOnDeath); - Network.NetworkManager.SendItemDrop(ItemDataBase.GetRandomItem(370, transform.position), LocalPlayer.Transform.position + Vector3.up * 6f, ItemPickUp.DropSource.EnemyOnDeath); + Network.NetworkManager.SendItemDrop(ItemDatabase.GetRandomItem(270,transform.position), LocalPlayer.Transform.position + Vector3.up * 6f, ItemPickUp.DropSource.EnemyOnDeath); + Network.NetworkManager.SendItemDrop(ItemDatabase.GetRandomItem(310, transform.position), LocalPlayer.Transform.position + Vector3.up * 6f, ItemPickUp.DropSource.EnemyOnDeath); + Network.NetworkManager.SendItemDrop(ItemDatabase.GetRandomItem(370, transform.position), LocalPlayer.Transform.position + Vector3.up * 6f, ItemPickUp.DropSource.EnemyOnDeath); } } } diff --git a/Fun/Cheats.cs b/Fun/Cheats.cs index 9ca03b4..da3e9ce 100644 --- a/Fun/Cheats.cs +++ b/Fun/Cheats.cs @@ -37,7 +37,7 @@ public static void Respec() public static void CotfItem(int id, int level) { - Item item = new Item(ItemDataBase.ItemBases[id], 1, 0, false) + Item item = new Item(ItemDatabase.itemLookup[id], 1, 0, false) { level = level }; @@ -124,7 +124,7 @@ private void _cotfresetpoints(string param) private void _cotflistitems(string param) { string s = ""; - foreach (var item in ItemDataBase.ItemBases) + foreach (var item in ItemDatabase.itemLookup) { s += string.Concat(new object[] { @@ -162,7 +162,7 @@ private void _cotflistperks(string param) private void _cotfliststats(string param) { string s = ""; - foreach (var item in ItemDataBase.Stats) + foreach (var item in ItemDatabase.Stats) { s += string.Concat(new object[] { @@ -197,7 +197,7 @@ private void _cotfspawnitem(string param) private void _cotfspawnitembyname(string param) { - var matches = ItemDataBase.ItemBases.Where(x => x.Value.name.ToLower().StartsWith(param)).Select(x => x.Value.id).ToArray(); + var matches = ItemDatabase.itemLookup.Where(x => x.Value.name.ToLower().StartsWith(param)).Select(x => x.Value.id).ToArray(); if (matches.Length > 0) { CotfCheats.CotfItem(matches[0], ModdedPlayer.instance.level); @@ -207,7 +207,7 @@ private void _cotfspawnitembyname(string param) } private void _cotflogitemdatabase(string param) { - ItemDataBase.LogInfo(); + ItemDatabase.LogInfo(); } private void _sleep(string param) { diff --git a/Items/Item.cs b/Items/Item.cs index 03f9aa6..03221c5 100644 --- a/Items/Item.cs +++ b/Items/Item.cs @@ -10,9 +10,11 @@ using UnityEngine; +using Random = UnityEngine.Random; + namespace ChampionsOfForest { - public class Item : BaseItem + public class Item : ItemDefinition { public int level; public int stackedAmount; @@ -36,7 +38,7 @@ private void GroupStats() groupedStats = new Dictionary(grouped.Count); foreach (var group in grouped) { - groupedStats.Add(group.Key, ItemDataBase.StatByID(group.Key).EvaluateTotalIncrease(group.Value)); + groupedStats.Add(group.Key, ItemDatabase.StatByID(group.Key).EvaluateTotalIncrease(group.Value)); } } public Dictionary GetGroupedStats() @@ -228,35 +230,35 @@ public string TypeName() { switch (this.type) { - case BaseItem.ItemType.Shield: + case ItemDefinition.ItemType.Shield: return Translations.Item_1/*Shield*/; //tr - case BaseItem.ItemType.Quiver: + case ItemDefinition.ItemType.Quiver: return Translations.Item_2/*Quiver*/; //tr - case BaseItem.ItemType.Weapon: + case ItemDefinition.ItemType.Weapon: return Translations.Item_3/*Weapon*/; //tr - case BaseItem.ItemType.Other: + case ItemDefinition.ItemType.Other: return Translations.Item_4/*Other*/; //tr - case BaseItem.ItemType.Material: + case ItemDefinition.ItemType.Material: return Translations.Item_5/*Material*/; //tr - case BaseItem.ItemType.Helmet: + case ItemDefinition.ItemType.Helmet: return Translations.Item_6/*Helmet*/; //tr - case BaseItem.ItemType.Boot: + case ItemDefinition.ItemType.Boot: return Translations.Item_7/*Boots*/; //tr - case BaseItem.ItemType.Pants: + case ItemDefinition.ItemType.Pants: return Translations.Item_8/*Pants*/; //tr - case BaseItem.ItemType.ChestArmor: + case ItemDefinition.ItemType.ChestArmor: return Translations.Item_9/*Chest armor*/; //tr - case BaseItem.ItemType.ShoulderArmor: + case ItemDefinition.ItemType.ShoulderArmor: return Translations.Item_10/*Shoulder armor*/; //tr - case BaseItem.ItemType.Glove: + case ItemDefinition.ItemType.Glove: return Translations.Item_11/*Gloves*/; //tr - case BaseItem.ItemType.Bracer: + case ItemDefinition.ItemType.Bracer: return Translations.Item_12/*Bracers*/; //tr - case BaseItem.ItemType.Amulet: + case ItemDefinition.ItemType.Amulet: return Translations.Item_13/*Amulet*/; //tr - case BaseItem.ItemType.Ring: + case ItemDefinition.ItemType.Ring: return Translations.Item_14/*Ring*/; //tr - case BaseItem.ItemType.SpellScroll: + case ItemDefinition.ItemType.SpellScroll: return Translations.Item_15/*Scroll*/; //tr default: return type.ToString(); @@ -271,69 +273,33 @@ public Item() /// /// creates a item based on a BaseItem object, rolls values /// - //public Item(BaseItem b, int amount = 1, int increasedLevel = 0, bool roll = true) - //{ - // base.description = b.description; - // base.minLevel = b.minLevel; - // base.maxLevel = b.maxLevel; - // if (increasedLevel != -1) - // { - // this.level = Random.Range(minLevel, maxLevel + 1) + increasedLevel; - // } - // else - // { - // int averageLevel; - // if (GameSetup.IsMultiplayer) - // { - // int sum = ModReferences.PlayerLevels.Values.Sum(); - // int count = ModReferences.PlayerLevels.Values.Count; - - // if (!ModSettings.IsDedicated) - // { - // sum += ModdedPlayer.instance.level; - // count++; - // } - // else - // { - // //ModAPI.Log.Write("Is dedicated server bool set to true."); - // } - // sum = Mathf.Max(1, sum); - // count = Mathf.Max(1, count); - // sum /= count; - // averageLevel = sum; - // } - // else - // { - // averageLevel = ModdedPlayer.instance.level; - // } - // averageLevel = Mathf.Max(1, averageLevel); - // base.level = averageLevel; - // } - // base.lore = b.lore; - // base.name = b.name; - // base.onEquipCallback = b.onEquipCallback; - // base.onUnequipCallback = b.onUnequipCallback; - // base.statSlots = b.statSlots; - // base.rarity = b.rarity; - // base.uniqueStat = b.uniqueStat; - // base.id = b.id; - // base.type = b.type; - // base.stackSize = b.stackSize; - // base.icon = b.icon; - // base.onConsumeCallback = b.onConsumeCallback; - // base.canConsume = b.canConsume; - // base.subtype = b.subtype; - // base.lootTable = b.lootTable; - // this.stackedAmount = amount; - // isEquipped = false; - // stats = new List(); - // if (roll) - // { - // RollStats(); - // } - //} - // TODO MAKE A CONSTRUCTOR FOR ITEMS FROM BASE ITEMS + /// + + public Item(ItemDefinition itemDefinition, int level) + { + this.level = level; + this.minLevel = itemDefinition.minLevel; + this.maxLevel = itemDefinition.maxLevel; + this.lore = itemDefinition.lore; + this.name = itemDefinition.name; + this.onEquipCallback = itemDefinition.onEquipCallback; + this.onUnequipCallback = itemDefinition.onUnequipCallback; + this.statSlots = itemDefinition.statSlots; + this.rarity = itemDefinition.rarity; + this.uniqueStat = itemDefinition.uniqueStat; + this.id = itemDefinition.id; + this.type = itemDefinition.type; + this.stackSize = itemDefinition.stackSize; + this.icon = itemDefinition.icon; + this.onConsumeCallback = itemDefinition.onConsumeCallback; + this.canConsume = itemDefinition.canConsume; + this.subtype = itemDefinition.subtype; + this.lootTable = itemDefinition.lootTable; + isEquipped = false; + stats = new List(); + } + public float GetRarityMultiplier() @@ -353,7 +319,7 @@ public void RollStats() { StatSlot statSlot = statSlots[i]; - if (UnityEngine.Random.value <= statSlot.chance) + if (Random.value <= statSlot.probability) { // roll a random stat from pool int selected = Random.Range(0, statSlot.options.Count); @@ -372,9 +338,9 @@ public void RollStats() } public void RollSockets() { - if (isEquippable && level >= ModSettings.MinimumLevelForSocketsToAppear && Random.value <= ModSettings.ChanceForFirstSocketToAppear) + if (minimumEmptySockets > 0 || (isEquippable && level >= ModSettings.MinimumLevelForSocketsToAppear && Random.value <= ModSettings.ChanceForFirstSocketToAppear)) { - int socketAmount = 1; + int socketAmount = Math.Max(minimumEmptySockets,1); while (Random.value <= ModSettings.ChanceForSubsequentSocketsToAppear && socketAmount < maximumSocketSlots) { diff --git a/Items/ItemDataBase.cs b/Items/ItemDataBase.cs index 21ee335..8338628 100644 --- a/Items/ItemDataBase.cs +++ b/Items/ItemDataBase.cs @@ -1,14 +1,16 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using System.IO; using System.Linq; -namespace ChampionsOfForest +using static ChampionsOfForest.ItemDefinition; + +namespace ChampionsOfForest.Items { - public static partial class ItemDataBase + public static partial class ItemDatabase { - public static Dictionary> _Item_Bases; - public static Dictionary ItemBases; - public static List statList; + internal static Dictionary> ItemTemplateStorage; + public static Dictionary itemLookup; public static Dictionary Stats; private static Dictionary> ItemRarityGroups; @@ -18,16 +20,16 @@ public static partial class ItemDataBase public static void Initialize() { - _Item_Bases = new List(); - ItemBases = new Dictionary(); - statList = new List(); + ItemTemplateStorage = Enum.GetValues(typeof(ItemDefinition.ItemType)) + .Cast() + .ToDictionary(k => k, v => new List()); + + itemLookup = new Dictionary(); Stats = new Dictionary(); ItemRarityGroups = new Dictionary>(); + PopulateStats(); - for (int i = 0; i < statList.Count; i++) - { - Stats.Add(statList[i].id, statList[i]); - } + try { PopulateItems(); @@ -36,19 +38,19 @@ public static void Initialize() { CotfUtils.Log("Error with item " + ex.ToString()); } - ItemBases.Clear(); - for (int i = 0; i < _Item_Bases.Count; i++) + itemLookup.Clear(); + for (int i = 0; i < ItemTemplateStorage.Count; i++) { try { - ItemBases.Add(_Item_Bases[i].id, _Item_Bases[i]); - if (ItemRarityGroups.ContainsKey(_Item_Bases[i].rarity)) + itemLookup.Add(ItemTemplateStorage[i].id, ItemTemplateStorage[i]); + if (ItemRarityGroups.ContainsKey(ItemTemplateStorage[i].rarity)) { - ItemRarityGroups[_Item_Bases[i].rarity].Add(_Item_Bases[i].id); + ItemRarityGroups[ItemTemplateStorage[i].rarity].Add(ItemTemplateStorage[i].id); } else { - ItemRarityGroups.Add(_Item_Bases[i].rarity, new List() { _Item_Bases[i].id }); + ItemRarityGroups.Add(ItemTemplateStorage[i].rarity, new List() { ItemTemplateStorage[i].id }); } } catch (System.Exception ex) @@ -57,131 +59,16 @@ public static void Initialize() } } - //LogInfo(); } - - /// - /// Prints a pretty summary to a log file - /// - public static void LogInfo() - { - string s = "There are " + Stats.Count + " stats:\n"; - for (int i = 0; i < 8; i++) - { - ItemStat[] stats = statList.Where(a => a.rarity == i).ToArray(); - s += " • Rarity tier of stat[" + i + "] = " + stats.Length; - foreach (ItemStat a in stats) - { - s += "\n\t • Stat \"" + a.name + " ID [" + a.id + "]\""; - } - s += "\n"; - } - s += "\n\n\n There are " + ItemBases.Count + " items:\n"; - for (int i = 0; i < 8; i++) - { - BaseItem[] items = _Item_Bases.Where(a => a.rarity == i).ToArray(); - s += " • Rarity tier of item [" + i + "] = " + items.Length; - foreach (BaseItem a in items) - { - s += "\n\t • Item \"" + a.name + " ID [" + a.id + "]\""; - } - s += "\n"; - } - - s += "\n\n\nItem types:"; - System.Array array = System.Enum.GetValues(typeof(BaseItem.ItemType)); - for (int i = 0; i < array.Length; i++) - { - BaseItem.ItemType t = (BaseItem.ItemType)array.GetValue(i); - - BaseItem[] items = _Item_Bases.Where(a => a.type == t).ToArray(); - - s += "\n • Item type: [" + t.ToString() + "] = " + items.Length; - for (int b = 0; b < 8; b++) - { - BaseItem[] items2 = items.Where(a => a.rarity == b).ToArray(); - s += "\n\t\t • RARITY " + b + " \"" + items2.Length + "\""; - } - - foreach (BaseItem a in items) - { - s += "\n\t • Item \"" + a.name + " ID [" + a.id + "] RARITY [" + a.rarity + "]\""; - } - s += "\n"; - } - - ModAPI.Log.Write(s); - - - var f = File.CreateText("items.csv"); - f.WriteLine("ITEMS;" + ItemBases.Count); - for (int i = 0; i <=(int)BaseItem.ItemType.SpellScroll; i++) - { - BaseItem.ItemType t = (BaseItem.ItemType)i; - var itemsByType = _Item_Bases.Where(a => a.type== t); - f.WriteLine(t+";" + itemsByType.Count()); - - if (t == BaseItem.ItemType.Weapon) - { - for (int j = 1; j <= (int)BaseItem.WeaponModelType.Greatbow; j++) - { - var weapons = itemsByType.Where(a => a.subtype == (BaseItem.WeaponModelType)j).OrderBy(a => a.id + a.rarity * 100000); - f.WriteLine(((BaseItem.WeaponModelType)j) + ";" + weapons.Count()); - f.WriteLine("ID;RARITY;NAME;UNIQUE STAT;MIN LEVEL; MIN STATS QUANTITY;MAX STATS QUANTITY"); - foreach (var weapon in weapons) - { - f.WriteLine(weapon.ID + ";" + weapon.rarity + ";" + weapon.name + ";" + weapon.uniqueStat + " ;" + weapon.minLevel + ";" + weapon.PossibleStats.Count(y => !y.Contains(null)) + ";" + weapon.PossibleStats.Count); - - } - f.WriteLine(" "); - - } - } - else - { - itemsByType = itemsByType.OrderBy(a => a.id + a.rarity * 100000); - f.WriteLine("ID;RARITY;NAME;UNIQUE STAT;MIN LEVEL; MIN STATS QUANTITY;MAX STATS QUANTITY"); - foreach (var item in itemsByType) - { - f.WriteLine(item.id + ";" + item.rarity + ";" + item.name + ";" + item.uniqueStat + " ;" + item.minLevel + ";" + item.statSlots.Count(y => !y.Contains(null)) + ";" + item.statSlots.Count); - - } - f.WriteLine(" "); - } - } - - - f.Close(); - } - - public static void AddItem(BaseItem item) - { - _Item_Bases.Add(item); - } - - public static void AddStat(ItemStat item) - { - statList.Add(item); - } - + public static ItemStat StatByID(int id) { - return ItemDataBase.Stats[id]; - } - - public static BaseItem ItemBaseByName(string name) - { - return ItemBases.Values.First(x => x.name == name); - } - - public static void AddPercentage(ref float variable1, float f) - { - variable1 += ((1 - variable1) * f); + return ItemDatabase.Stats[id]; } - public static void RemovePercentage(ref float variable1, float f) + public static ItemDefinition ItemBaseByName(string name) { - variable1 -= ((1 - variable1) * f); + return itemLookup.Values.First(x => x.name == name); } } } \ No newline at end of file diff --git a/Items/ItemDataBase_Loot.cs b/Items/ItemDataBase_Loot.cs index dcc8062..094d566 100644 --- a/Items/ItemDataBase_Loot.cs +++ b/Items/ItemDataBase_Loot.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.Linq; using ChampionsOfForest.Player; @@ -9,9 +10,9 @@ using Random = UnityEngine.Random; -namespace ChampionsOfForest +namespace ChampionsOfForest.Items { - public static partial class ItemDataBase + public static partial class ItemDatabase { private static int GetLevel(Vector3 pos) { @@ -19,65 +20,33 @@ private static int GetLevel(Vector3 pos) { if (GameSetup.IsMultiplayer) { + var states = ModReferences.PlayerStates.All; switch (ModSettings.lootLevelPolicy) { case ModSettings.LootLevelPolicy.HighestPlayerLevel: - { - ModReferences.RequestAllPlayerLevels(); - int highestLevel = ModdedPlayer.instance.level; - foreach (var l in ModReferences.PlayerLevels.Values) - { - if (l > highestLevel) - highestLevel = l; - } - level = highestLevel; - } - + level = states.Max(x => x.level); break; case ModSettings.LootLevelPolicy.AverageLevel: - { - ModReferences.RequestAllPlayerLevels(); - float levelSum = ModdedPlayer.instance.level; - foreach (var l in ModReferences.PlayerLevels.Values) - { - levelSum += l; - } - level = Convert.ToInt32(levelSum / (1 + ModReferences.PlayerLevels.Count)); - } - + level = (int)states.Average(x => (double)x.level); break; case ModSettings.LootLevelPolicy.LowestLevel: - { - ModReferences.RequestAllPlayerLevels(); - int lowestLevel - = ModdedPlayer.instance.level; - foreach (var l in ModReferences.PlayerLevels.Values) - { - if (l < lowestLevel) - lowestLevel = l; - } - level = lowestLevel; - } + level = states.Min(x => x.level); break; case ModSettings.LootLevelPolicy.ClosestPlayer: { level = ModdedPlayer.instance.level; - float dist = Vector3.Distance(LocalPlayer.Transform.position, pos); - IPlayerState state = null; - foreach (var playerstate in ModReferences.PlayerStates) + float dist = (LocalPlayer.Transform.position - pos).sqrMagnitude; + foreach (var state in states) { - float d = Vector3.Distance(playerstate.Transform.Position, pos); + float d = (state.gameObject.transform.position - pos).sqrMagnitude; if (d < dist) { dist = d; - state = playerstate; + level = state.level; } } - if(state != null) - level = ModReferences.PlayerLevels[state.name]; } break; - case ModSettings.LootLevelPolicy.HostLevel: default: level = ModdedPlayer.instance.level; break; @@ -112,10 +81,10 @@ public static Item GetRandomItem(float Worth, Vector3 pos) } int randomID = Random.Range(0, itemIdPool.Length); - Item item = new Item(ItemBases[itemIdPool[randomID]]); + Item item = new Item(itemLookup[itemIdPool[randomID]]); item.level = level; - if (item.id == 42 || item.id == 103 || item.type == BaseItem.ItemType.Material) + if (item.id == 42 || item.id == 103 || item.type == ItemDefinition.ItemType.Material) item.level = 1; item.RollStats(); return item; @@ -123,23 +92,73 @@ public static Item GetRandomItem(float Worth, Vector3 pos) public static bool AllowItemDrop(int i, in int level, EnemyProgression.Enemy e) { - if (!ItemBases.ContainsKey(i)) + if (!itemLookup.ContainsKey(i)) { return true; } - if ((int)ItemBases[i].lootTable != 0) - return (ItemBases[i].lootTable & e) != 0 && ItemBases[i].minLevel <= level; - return ItemBases[i].minLevel <= level; + if ((int)itemLookup[i].lootTable != 0) + return (itemLookup[i].lootTable & e) != 0 && itemLookup[i].minLevel <= level; + return itemLookup[i].minLevel <= level; + } + + + struct RandomItemPoolEntry + { + public int totalWeight; + public List items; + + public RandomItemPoolEntry(int level, int rarity) + { + totalWeight = 0; + items = new List(); + foreach (var item in ItemRarityGroups[rarity]) + { + if (itemLookup[item].minLevel <= level && itemLookup[item].lootTable != 0) + { + totalWeight += itemLookup[item].lootWeight; + items.Add(itemLookup[item]); + } + } + } + public ItemDefinition Get(int randomWeight) + { + randomWeight = Mathf.Max(randomWeight, totalWeight); + int i = 0; + while (randomWeight > totalWeight && i < items.Count-1) + { + if (randomWeight < items[i].lootWeight) + return items[i]; + else + { + randomWeight -= items[i].lootWeight; + i++; + } + } + return items[i]; + } + }; + + static int randomItemPoolLevel = -1; // at which level was the random item pool created + static RandomItemPoolEntry[] randomItemPoolEntries = new RandomItemPoolEntry[(int)ItemDefinition.Rarity.Max]; + + static RandomItemPoolEntry GetPool(int level, int rarity) + { + if(randomItemPoolLevel != level) + { + randomItemPoolLevel = level; + for (int i = 0; i < randomItemPoolEntries.Length; i++) + randomItemPoolEntries[i] = new RandomItemPoolEntry(); + } + if () } + public static Item GetRandomItem(float Worth, EnemyProgression.Enemy killedEnemyType, ModSettings.Difficulty difficulty, Vector3 pos) { int level = GetLevel(pos); - float w = Worth / (level); - w *= ModdedPlayer.Stats.magicFind_quantity.Value; - - int rarity = GetRarity(w, difficulty); + ItemDefinition.Rarity rarity = GetRandomRarity(level, ModdedPlayer.Stats.magicFind_quality.Value, difficulty); + int[] itemIdPool = null; while (itemIdPool == null) { @@ -154,66 +173,41 @@ public static Item GetRandomItem(float Worth, EnemyProgression.Enemy killedEnemy } int randomID = Random.Range(0, itemIdPool.Length); - Item item = new Item(ItemBases[itemIdPool[randomID]]); + Item item = new Item(itemLookup[itemIdPool[randomID]]); item.level = level; - if (item.id == 42 || item.id == 103 || item.type == BaseItem.ItemType.Material) + if (item.id == 42 || item.id == 103 || item.type == ItemDefinition.ItemType.Material) item.level = 1; item.RollStats(); return item; } - public static int GetRarity(float w, ModSettings.Difficulty difficulty) + static int[] odds = new int[] { - int dif = (int)difficulty; - int rarity = 0; - float mf = Mathf.Sqrt(ModdedPlayer.Stats.magicFind_quantity.Value) - 1; - if ((w > 20 && Random.value < 0.70f + 0.45 * mf + dif * 0.075) || (dif > 5 && w > 2000)) - { - rarity = 1; - - if (w > 80 && (Random.value < 0.50f + 0.4 * mf + dif * 0.07 || w > 2200 && dif > 6)) - { - rarity = 2; - if (w > 180 && (Random.value < 0.50f + 0.35 * mf + 0.05f * dif) || w > 5000 && dif > 7 && Random.value < 0.90f) - { - if (dif > 0 || Random.value < 0.05f) - { - rarity = 3; - if (w > 360 && (Random.value < 0.5f + 0.22 * mf + 0.034f * dif) || dif > 8 && Random.value < 0.70f) - { - if (dif > 1 || Random.value < 0.02f) - { - rarity = 4; - if (w > 720 && (Random.value < 0.26f + 0.085 * mf + 0.02f * dif)) - { - if (dif > 2 || Random.value < 0.01f) - { - rarity = 5; - if (w > 1440 && (Random.value < 0.18f + 0.033 * mf + (0.003f * dif))) - { - if (dif > 3 || Random.value < 0.05f) - { - rarity = 6; - if (w > 5000 && (Random.value < 0.04f + 0.01 * mf)) - { - if (dif > 4 || Random.value < 0.001f) - { - rarity = 7; - } - } - } - } - } - } - } - } - } - } - } + // odds of upgrading from one rarity to another + // the odds are 1 in x + 3, // Common + 10, // Magic + 25, // Rare + 100, // Legendary + }; + + static System.Random rng = new System.Random(); + public static ItemDefinition.Rarity GetRandomRarity(int level, float qualitymult, ModSettings.Difficulty difficulty) + { + qualitymult += (int)difficulty * ModSettings.MagicFindPerDifficultyLevel; + int rarityNum = 0; + while (rarityNum < (int) ItemDefinition.Rarity.Max-1) + { + double chance = (odds[rarityNum] / qualitymult); + double rand = rng.NextDouble() * chance; + if (rand < 1.0) + rarityNum++; + else + break; } - return rarity; + return (ItemDefinition.Rarity) rarityNum; } } } \ No newline at end of file diff --git a/Items/ItemDataBase_StatDefinitions.cs b/Items/ItemDataBase_StatDefinitions.cs index 9798515..195becd 100644 --- a/Items/ItemDataBase_StatDefinitions.cs +++ b/Items/ItemDataBase_StatDefinitions.cs @@ -8,11 +8,11 @@ using UnityEngine; -using static ChampionsOfForest.ItemDataBase.Stat; +using static ChampionsOfForest.Items.ItemDatabase.Stat; -namespace ChampionsOfForest +namespace ChampionsOfForest.Items { - public static partial class ItemDataBase + public static partial class ItemDatabase { public enum Stat { @@ -97,7 +97,7 @@ public enum Stat } - public static void PopulateStats() + private static void PopulateStats() { // Attributes new ItemStatBuilder(Stat.STRENGTH, "Strength", 2f, 3f) diff --git a/Items/ItemDefinitions/Amulet.cs b/Items/ItemDefinitions/Amulet.cs index 2af8944..c4b2203 100644 --- a/Items/ItemDefinitions/Amulet.cs +++ b/Items/ItemDefinitions/Amulet.cs @@ -6,11 +6,11 @@ using ChampionsOfForest.Items.ItemTemplates; -using static ChampionsOfForest.ItemDataBase.Stat; +using static ChampionsOfForest.Items.ItemDatabase.Stat; -namespace ChampionsOfForest +namespace ChampionsOfForest.Items { - public static partial class ItemDataBase + public static partial class ItemDatabase { public static void AddAmulet() diff --git a/Items/ItemDefinitions/Boot.cs b/Items/ItemDefinitions/Boot.cs index a6033fb..8d406bb 100644 --- a/Items/ItemDefinitions/Boot.cs +++ b/Items/ItemDefinitions/Boot.cs @@ -6,11 +6,11 @@ using ChampionsOfForest.Items.ItemTemplates; -using static ChampionsOfForest.ItemDataBase.Stat; +using static ChampionsOfForest.Items.ItemDatabase.Stat; -namespace ChampionsOfForest +namespace ChampionsOfForest.Items { - public static partial class ItemDataBase + public static partial class ItemDatabase { public static void AddBoots() diff --git a/Items/ItemDefinitions/Bracer.cs b/Items/ItemDefinitions/Bracer.cs index cb07443..316fc27 100644 --- a/Items/ItemDefinitions/Bracer.cs +++ b/Items/ItemDefinitions/Bracer.cs @@ -6,11 +6,11 @@ using ChampionsOfForest.Items.ItemTemplates; -using static ChampionsOfForest.ItemDataBase.Stat; +using static ChampionsOfForest.Items.ItemDatabase.Stat; -namespace ChampionsOfForest +namespace ChampionsOfForest.Items { - public static partial class ItemDataBase + public static partial class ItemDatabase { public static void AddBracer() diff --git a/Items/ItemDefinitions/ChestArmor.cs b/Items/ItemDefinitions/ChestArmor.cs index 4cb8f61..328ee6b 100644 --- a/Items/ItemDefinitions/ChestArmor.cs +++ b/Items/ItemDefinitions/ChestArmor.cs @@ -6,11 +6,11 @@ using ChampionsOfForest.Items.ItemTemplates; -using static ChampionsOfForest.ItemDataBase.Stat; +using static ChampionsOfForest.Items.ItemDatabase.Stat; -namespace ChampionsOfForest +namespace ChampionsOfForest.Items { - public static partial class ItemDataBase + public static partial class ItemDatabase { public static void AddChestArmor() diff --git a/Items/ItemDefinitions/Glove.cs b/Items/ItemDefinitions/Glove.cs index 68c932d..4e23504 100644 --- a/Items/ItemDefinitions/Glove.cs +++ b/Items/ItemDefinitions/Glove.cs @@ -6,11 +6,11 @@ using ChampionsOfForest.Items.ItemTemplates; -using static ChampionsOfForest.ItemDataBase.Stat; +using static ChampionsOfForest.Items.ItemDatabase.Stat; -namespace ChampionsOfForest +namespace ChampionsOfForest.Items { - public static partial class ItemDataBase + public static partial class ItemDatabase { public static void AddGlove() diff --git a/Items/ItemDefinitions/Helmets.cs b/Items/ItemDefinitions/Helmets.cs index cb2ffab..632de45 100644 --- a/Items/ItemDefinitions/Helmets.cs +++ b/Items/ItemDefinitions/Helmets.cs @@ -6,11 +6,11 @@ using ChampionsOfForest.Items.ItemTemplates; -using static ChampionsOfForest.ItemDataBase.Stat; +using static ChampionsOfForest.Items.ItemDatabase.Stat; -namespace ChampionsOfForest +namespace ChampionsOfForest.Items { - public static partial class ItemDataBase + public static partial class ItemDatabase { public static void AddHelmets() { diff --git a/Items/ItemDefinitions/ItemDataBase_ItemDefinitions.cs b/Items/ItemDefinitions/ItemDataBase_ItemDefinitions.cs index 6ef5901..475531b 100644 --- a/Items/ItemDefinitions/ItemDataBase_ItemDefinitions.cs +++ b/Items/ItemDefinitions/ItemDataBase_ItemDefinitions.cs @@ -6,16 +6,16 @@ using ChampionsOfForest.Localization; using ChampionsOfForest.Player; -using static ChampionsOfForest.ItemDataBase.Stat; -using static ChampionsOfForest.ItemDataBase; +using static ChampionsOfForest.Items.ItemDatabase.Stat; +using static ChampionsOfForest.ItemDatabase; -namespace ChampionsOfForest +namespace ChampionsOfForest.Items { - public static partial class ItemDataBase + public static partial class ItemDatabase { // todo remove this method once rarity 7 items are re-added. - public static void PopulateItems() + public static void PopulateOldItems() { new BaseItem(new int[][] { @@ -23,15 +23,15 @@ public static void PopulateItems() new int[] {43,0,39,59,67 }, }) { - name = Translations.ItemDataBase_ItemDefinitions_1/*Broken Flip-Flops*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_2/*A pair of damaged shoes. Judging by their condition, i can imagine what happened to their owner.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_3/*Worn by one of the passengers of the plane that Eric also flew in.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_1/*Broken Flip-Flops*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_2/*A pair of damaged shoes. Judging by their condition, i can imagine what happened to their owner.*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_3/*Worn by one of the passengers of the plane that Eric also flew in.*/, //tr rarity = 0, minLevel = 1, maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Boot, + type = ItemDefinition.ItemType.Boot, icon = Res.ResourceLoader.GetTexture(85), }; new BaseItem(new int[][] @@ -42,15 +42,15 @@ public static void PopulateItems() new int[] {43,0 ,67 }, }) { - name = Translations.ItemDataBase_ItemDefinitions_4/*Old Boots*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_5/*A pair of old boots. They must have been lying here for ages.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_6/*Found on the Peninsula, but judging by their condition, they belong neither to a plane passenger nor a cannibal.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_4/*Old Boots*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_5/*A pair of old boots. They must have been lying here for ages.*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_6/*Found on the Peninsula, but judging by their condition, they belong neither to a plane passenger nor a cannibal.*/, //tr rarity = 0, minLevel = 1, maxLevel = 2, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Boot, + type = ItemDefinition.ItemType.Boot, icon = Res.ResourceLoader.GetTexture(85), }; new BaseItem(new int[][] @@ -61,15 +61,15 @@ public static void PopulateItems() new int[] {43,65,67 }, }) { - name = Translations.ItemDataBase_ItemDefinitions_7/*Damaged Leather Boots*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_8/*A pair of leather boots. They look good and have only some scratches.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_9/*They arrived to the Peninsula the same way Eric did. Since they were in a baggage, they avoided a lot of damage.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_7/*Damaged Leather Boots*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_8/*A pair of leather boots. They look good and have only some scratches.*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_9/*They arrived to the Peninsula the same way Eric did. Since they were in a baggage, they avoided a lot of damage.*/, //tr rarity = 1, minLevel = 1, maxLevel = 6, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Boot, + type = ItemDefinition.ItemType.Boot, icon = Res.ResourceLoader.GetTexture(85), }; new BaseItem(new int[][] @@ -80,15 +80,15 @@ public static void PopulateItems() new int[] {43,65,67 }, }) { - name = Translations.ItemDataBase_ItemDefinitions_10/*Sturdy Leather Boots*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_11/*A pair of leather boots. They are in a very good condition.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_12/*They arrived to the Peninsula the same way Eric did. Eric found them undamaged in their original box. They still had a pricetag - $419,99.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_10/*Sturdy Leather Boots*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_11/*A pair of leather boots. They are in a very good condition.*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_12/*They arrived to the Peninsula the same way Eric did. Eric found them undamaged in their original box. They still had a pricetag - $419,99.*/, //tr rarity = 2, minLevel = 7, maxLevel = 12, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Boot, + type = ItemDefinition.ItemType.Boot, icon = Res.ResourceLoader.GetTexture(85), }; new BaseItem(new int[][] @@ -100,15 +100,15 @@ public static void PopulateItems() new int[] {43,65,67 }, }) { - name = Translations.ItemDataBase_ItemDefinitions_13/*Damaged Army Boots*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_14/*Sturdy, hard, resistant but damaged boots.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_15/*They look modern, almost too modern for everything here.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_13/*Damaged Army Boots*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_14/*Sturdy, hard, resistant but damaged boots.*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_15/*They look modern, almost too modern for everything here.*/, //tr rarity = 3, minLevel = 4, maxLevel = 9, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Boot, + type = ItemDefinition.ItemType.Boot, icon = Res.ResourceLoader.GetTexture(85), }; new BaseItem(new int[][] @@ -120,15 +120,15 @@ public static void PopulateItems() new int[] {43,65,67 }, }) { - name = Translations.ItemDataBase_ItemDefinitions_16/*Army Boots*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_17/*Sturdy, hard, resistant boots.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_15/*They look modern, almost too modern for everything here.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_16/*Army Boots*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_17/*Sturdy, hard, resistant boots.*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_15/*They look modern, almost too modern for everything here.*/, //tr rarity = 4, minLevel = 10, maxLevel = 14, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Boot, + type = ItemDefinition.ItemType.Boot, icon = Res.ResourceLoader.GetTexture(85), }; new BaseItem(new int[][] @@ -142,15 +142,15 @@ public static void PopulateItems() new int[] {5,6,16,31,7,8,9,10 }, }) { - name = Translations.ItemDataBase_ItemDefinitions_18/*Armsy Skin Footwear*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_19/*Severed armsy legs, with all of their insides removed. All thats left is dried mutated skin.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_20/*Armsy, the second heaviest of the mutants needs very resistant skin. It often drags its legs on the ground when it moves. The skin on their legs grew very thick, and has bone tissue mixed with skin tissue.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_18/*Armsy Skin Footwear*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_19/*Severed armsy legs, with all of their insides removed. All thats left is dried mutated skin.*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_20/*Armsy, the second heaviest of the mutants needs very resistant skin. It often drags its legs on the ground when it moves. The skin on their legs grew very thick, and has bone tissue mixed with skin tissue.*/, //tr rarity = 6, minLevel = 5, maxLevel = 8, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Boot, + type = ItemDefinition.ItemType.Boot, icon = Res.ResourceLoader.GetTexture(85), }.SetDropOnlyArmsy(); new BaseItem(new int[][] @@ -160,15 +160,15 @@ public static void PopulateItems() new int[] {43,65,0 }, }) { - name = Translations.ItemDataBase_ItemDefinitions_21/*Finger Warmer*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_22/*A little glove to keep your fingers warm and cozy.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_23/*Made of wool.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_21/*Finger Warmer*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_22/*A little glove to keep your fingers warm and cozy.*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_23/*Made of wool.*/, //tr rarity = 0, minLevel = 1, maxLevel = 2, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Glove, + type = ItemDefinition.ItemType.Glove, icon = Res.ResourceLoader.GetTexture(86), }; new BaseItem(new int[][] @@ -179,15 +179,15 @@ public static void PopulateItems() new int[] {43,0,7,0,5,6,8,0,0,0,0,21,22,23,65,66,67 }, }) { - name = Translations.ItemDataBase_ItemDefinitions_24/*Thick Rubber Glove*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_25/*A glove that helps get a better grip.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_23/*Made of wool.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_24/*Thick Rubber Glove*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_25/*A glove that helps get a better grip.*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_23/*Made of wool.*/, //tr rarity = 1, minLevel = 1, maxLevel = 2, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Glove, + type = ItemDefinition.ItemType.Glove, icon = Res.ResourceLoader.GetTexture(86), }; new BaseItem(new int[][] @@ -199,15 +199,15 @@ public static void PopulateItems() new int[] {-1 }, }) { - name = Translations.ItemDataBase_ItemDefinitions_26/*Tribal Glove*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_27/*Offers medicore protection.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_28/*Glove made out of thin bones, some may possibly be from a human.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_26/*Tribal Glove*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_27/*Offers medicore protection.*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_28/*Glove made out of thin bones, some may possibly be from a human.*/, //tr rarity = 3, minLevel = 1, maxLevel = 2, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Glove, + type = ItemDefinition.ItemType.Glove, icon = Res.ResourceLoader.GetTexture(86), }; new BaseItem(new int[][] @@ -220,15 +220,15 @@ public static void PopulateItems() new int[] {24,25,26,44,35}, }) { - name = Translations.ItemDataBase_ItemDefinitions_29/*Tribe Leader Glove*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_30/*A glove that offers little protection but a lot of offensive stats.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_31/*A glove made of bones, some have engravings of crosses.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_29/*Tribe Leader Glove*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_30/*A glove that offers little protection but a lot of offensive stats.*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_31/*A glove made of bones, some have engravings of crosses.*/, //tr rarity = 4, minLevel = 1, maxLevel = 4, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Glove, + type = ItemDefinition.ItemType.Glove, icon = Res.ResourceLoader.GetTexture(86), }; new BaseItem(new int[][] @@ -237,15 +237,15 @@ public static void PopulateItems() new int[] {43,39,40,41,42 }, }) { - name = Translations.ItemDataBase_ItemDefinitions_32/*Worn Shorts*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_33/*Some protection for legs.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_34/*Short, made out of cheap thin fabric, and on top of that they are damaged. But its better than nothing.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_32/*Worn Shorts*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_33/*Some protection for legs.*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_34/*Short, made out of cheap thin fabric, and on top of that they are damaged. But its better than nothing.*/, //tr rarity = 0, minLevel = 1, maxLevel = 4, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Pants, + type = ItemDefinition.ItemType.Pants, icon = Res.ResourceLoader.GetTexture(87), }; new BaseItem(new int[][] @@ -255,15 +255,15 @@ public static void PopulateItems() new int[] {8,9,0,0,0,0 }, }) { - name = Translations.ItemDataBase_ItemDefinitions_35/*Cargo Shorts*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_36/*No protection at all but they allow to carry more items.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_37/*They are ugly as hell tho*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_35/*Cargo Shorts*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_36/*No protection at all but they allow to carry more items.*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_37/*They are ugly as hell tho*/, //tr rarity = 1, minLevel = 1, maxLevel = 4, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Pants, + type = ItemDefinition.ItemType.Pants, icon = Res.ResourceLoader.GetTexture(87), }; new BaseItem(new int[][] @@ -273,15 +273,15 @@ public static void PopulateItems() new int[] {39,40,41,42,43,44,0,0,0,0,0,0,1003,1004}, }) { - name = Translations.ItemDataBase_ItemDefinitions_38/*Passenger's Jacket*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_39/*It's a little torn. */, //tr - lore = Translations.ItemDataBase_ItemDefinitions_40/*This jacket was worn by Preston A. the 34th passenger on the plane. Eric talked to him at the airport. Guy was odd, and now he's dead.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_38/*Passenger's Jacket*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_39/*It's a little torn. */, //tr + lore = Translations.ItemDatabase_ItemDefinitions_40/*This jacket was worn by Preston A. the 34th passenger on the plane. Eric talked to him at the airport. Guy was odd, and now he's dead.*/, //tr rarity = 0, minLevel = 1, maxLevel = 4, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.ChestArmor, + type = ItemDefinition.ItemType.ChestArmor, icon = Res.ResourceLoader.GetTexture(96), }; new BaseItem(new int[][] @@ -293,15 +293,15 @@ public static void PopulateItems() new int[] {39,40,41,42,43,44,0,0,0,0,0,0,1003,1004}, }) { - name = Translations.ItemDataBase_ItemDefinitions_41/*Leather Jacket*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_42/*Offers little protection*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_43/*This jacket was in a baggage of one of the plane passengers*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_41/*Leather Jacket*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_42/*Offers little protection*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_43/*This jacket was in a baggage of one of the plane passengers*/, //tr rarity = 1, minLevel = 4, maxLevel = 7, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.ChestArmor, + type = ItemDefinition.ItemType.ChestArmor, icon = Res.ResourceLoader.GetTexture(96), }; new BaseItem(new int[][] @@ -312,15 +312,15 @@ public static void PopulateItems() new int[] {7,11 }, }) { - name = Translations.ItemDataBase_ItemDefinitions_44/*Boar Skin Armor*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_45/*It's made from a skin of a huge individual. It's heavy and thick, and surely can protect from attacks of weaker enemies.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_46/*Boar, one of the animals on the peninsula, is rather rare and it's skin is very durable.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_44/*Boar Skin Armor*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_45/*It's made from a skin of a huge individual. It's heavy and thick, and surely can protect from attacks of weaker enemies.*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_46/*Boar, one of the animals on the peninsula, is rather rare and it's skin is very durable.*/, //tr rarity = 1, minLevel = 4, maxLevel = 8, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.ChestArmor, + type = ItemDefinition.ItemType.ChestArmor, icon = Res.ResourceLoader.GetTexture(96), }; new BaseItem(new int[][] @@ -333,16 +333,16 @@ public static void PopulateItems() new int[] {12,13,0,65,66 }, }) { - name = Translations.ItemDataBase_ItemDefinitions_47/*Crocodile Skin Armor*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_47/*Crocodile Skin Armor*/, //tr rarity = 2, minLevel = 7, maxLevel = 9, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.ChestArmor, + type = ItemDefinition.ItemType.ChestArmor, icon = Res.ResourceLoader.GetTexture(96), }; - BaseItem baseItem1 = new BaseItem(new int[][] + ItemDefinition baseItem1 = new BaseItem(new int[][] { new int[] {5 }, new int[] {16 }, @@ -353,13 +353,13 @@ public static void PopulateItems() new int[] {25,22,0}, }) { - name = Translations.ItemDataBase_ItemDefinitions_48/*Plate armour*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_48/*Plate armour*/, //tr rarity = 4, minLevel = 1, maxLevel = 5, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.ChestArmor, + type = ItemDefinition.ItemType.ChestArmor, icon = Res.ResourceLoader.GetTexture(96), }; baseItem1.statSlots[1][0].multipier = 2.5f; @@ -375,13 +375,13 @@ public static void PopulateItems() new int[] {7,10,11,17,18,31,66}, }) { - name = Translations.ItemDataBase_ItemDefinitions_49/*Bear Skin Armor*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_49/*Bear Skin Armor*/, //tr rarity = 3, minLevel = 7, maxLevel = 8, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.ChestArmor, + type = ItemDefinition.ItemType.ChestArmor, icon = Res.ResourceLoader.GetTexture(96), }; new BaseItem(new int[][] @@ -396,13 +396,13 @@ public static void PopulateItems() new int[] {16,23,4,5,6,0,0,0,0}, }) { - name = Translations.ItemDataBase_ItemDefinitions_50/*Archer's Gear*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_50/*Archer's Gear*/, //tr rarity = 5, minLevel = 7, maxLevel = 9, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.ChestArmor, + type = ItemDefinition.ItemType.ChestArmor, icon = Res.ResourceLoader.GetTexture(96), }; new BaseItem(new int[][] @@ -420,13 +420,13 @@ public static void PopulateItems() new int[] {27,48}, }) { - name = Translations.ItemDataBase_ItemDefinitions_51/*Hazard's Gear*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_51/*Hazard's Gear*/, //tr rarity = 6, minLevel = 5, maxLevel = 6, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.ChestArmor, + type = ItemDefinition.ItemType.ChestArmor, icon = Res.ResourceLoader.GetTexture(96), }; new BaseItem(new int[][] @@ -444,16 +444,16 @@ public static void PopulateItems() new int[] {4,17,6,44,38,21,24,8,9}, }) { - name = Translations.ItemDataBase_ItemDefinitions_52/*Mysterious robe*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_53/*Magic flows through the entirety of this object. It's made out of unknown material*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_54/*Robe looks like it was created yesterday, but its older than the oldest of mankinds' civilizations. Simply looking at it sends chills down the spine.*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_55/*Empowers cataclysm. The vortex turns blue, damage is increased, freezes enemies */, //tr + name = Translations.ItemDatabase_ItemDefinitions_52/*Mysterious robe*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_53/*Magic flows through the entirety of this object. It's made out of unknown material*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_54/*Robe looks like it was created yesterday, but its older than the oldest of mankinds' civilizations. Simply looking at it sends chills down the spine.*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_55/*Empowers cataclysm. The vortex turns blue, damage is increased, freezes enemies */, //tr rarity = 7, minLevel = 15, maxLevel = 20, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.ChestArmor, + type = ItemDefinition.ItemType.ChestArmor, icon = Res.ResourceLoader.GetTexture(96), onEquipCallback = () => ModdedPlayer.Stats.spell_cataclysmArcane.value = true, onUnequipCallback = () => ModdedPlayer.Stats.spell_cataclysmArcane.value = false @@ -466,16 +466,16 @@ public static void PopulateItems() new int[] {1,0,65}, }) { - name = Translations.ItemDataBase_ItemDefinitions_56/*Rusty Longsword*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_57/*A long, very heavy sword. Edge got dull over time. Still, it's in a condition that allows me to slice some enemies in half.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_58/*The sword appears to be from medieval ages, through it's not. It was made a lot later. It never was used as a weapon in battles, because it was merely a decoration.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_56/*Rusty Longsword*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_57/*A long, very heavy sword. Edge got dull over time. Still, it's in a condition that allows me to slice some enemies in half.*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_58/*The sword appears to be from medieval ages, through it's not. It was made a lot later. It never was used as a weapon in battles, because it was merely a decoration.*/, //tr rarity = 3, minLevel = 13, maxLevel = 15, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Weapon, - subtype = BaseItem.WeaponModelType.LongSword, + type = ItemDefinition.ItemType.Weapon, + subtype = ItemDefinition.ItemSubtype.LongSword, icon = Res.ResourceLoader.GetTexture(89), }; new BaseItem(new int[][] @@ -488,16 +488,16 @@ public static void PopulateItems() new int[] {39,40,41,42,44,8,18,65 }, }) { - name = Translations.ItemDataBase_ItemDefinitions_59/*Longsword*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_60/*Sharp and long*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_61/*The sword is in perfect contidion.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_59/*Longsword*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_60/*Sharp and long*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_61/*The sword is in perfect contidion.*/, //tr rarity = 4, minLevel = 20, maxLevel = 27, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Weapon, - subtype = BaseItem.WeaponModelType.LongSword, + type = ItemDefinition.ItemType.Weapon, + subtype = ItemDefinition.ItemSubtype.LongSword, icon = Res.ResourceLoader.GetTexture(89), }; new BaseItem(new int[][] @@ -512,16 +512,16 @@ public static void PopulateItems() new int[] {39,40,41,42,44,8,62,63,64 }, }) { - name = Translations.ItemDataBase_ItemDefinitions_62/*Full Metal Sword*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_63/*It's sooo big...*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_64/*A normal human cannot lift this.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_62/*Full Metal Sword*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_63/*It's sooo big...*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_64/*A normal human cannot lift this.*/, //tr rarity = 6, minLevel = 50, maxLevel = 52, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Weapon, - subtype = BaseItem.WeaponModelType.GreatSword, + type = ItemDefinition.ItemType.Weapon, + subtype = ItemDefinition.ItemSubtype.GreatSword, icon = Res.ResourceLoader.GetTexture(88), }; new BaseItem(new int[][] @@ -537,15 +537,15 @@ public static void PopulateItems() new int[] {38,36,1,3,4,5,6,16 ,62,63,64}, }) { - name = Translations.ItemDataBase_ItemDefinitions_65/*The Leech*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_66/*Hey where did my health g- oh it's back...*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_65/*The Leech*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_66/*Hey where did my health g- oh it's back...*/, //tr rarity = 6, minLevel = 60, maxLevel = 61, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Weapon, - subtype = BaseItem.WeaponModelType.GreatSword, + type = ItemDefinition.ItemType.Weapon, + subtype = ItemDefinition.ItemSubtype.GreatSword, icon = Res.ResourceLoader.GetTexture(88), }; new BaseItem(new int[][] @@ -563,16 +563,16 @@ public static void PopulateItems() new int[] {66}, }) { - name = Translations.ItemDataBase_ItemDefinitions_67/*Smokey's Sacred Quiver*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_68/*SmokeyTheBear died because he never used this item.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_69/*Smokey was the friend of allmighty Hazard, who can materialize any kind of weapon at the snap of his fingers. Hazard remebered Smokey's favourite playstyle and he gave him this as a gift to purge the sh** out of mutants.*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_70("250%", "500%")/*Crossbows operate at 250% speed and deal 400% increased damage*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_67/*Smokey's Sacred Quiver*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_68/*SmokeyTheBear died because he never used this item.*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_69/*Smokey was the friend of allmighty Hazard, who can materialize any kind of weapon at the snap of his fingers. Hazard remebered Smokey's favourite playstyle and he gave him this as a gift to purge the sh** out of mutants.*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_70("250%", "500%")/*Crossbows operate at 250% speed and deal 400% increased damage*/, //tr rarity = 7, minLevel = 5, maxLevel = 8, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Quiver, + type = ItemDefinition.ItemType.Quiver, icon = Res.ResourceLoader.GetTexture(98), onEquipCallback = () => { ModdedPlayer.Stats.i_SmokeyCrossbowQuiver.value = true; ModdedPlayer.Stats.perk_crossbowDamageMult.Multiply(5); }, onUnequipCallback = () => @@ -589,13 +589,13 @@ public static void PopulateItems() new int[] {1,0 }, }) { - name = Translations.ItemDataBase_ItemDefinitions_71/*Broken shield*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_71/*Broken shield*/, //tr rarity = 0, minLevel = 1, maxLevel = 2, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Shield, + type = ItemDefinition.ItemType.Shield, icon = Res.ResourceLoader.GetTexture(99), }; new BaseItem(new int[][] @@ -614,7 +614,7 @@ public static void PopulateItems() maxLevel = 6, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Shield, + type = ItemDefinition.ItemType.Shield, icon = Res.ResourceLoader.GetTexture(99), }; new BaseItem(new int[][] @@ -628,13 +628,13 @@ public static void PopulateItems() new int[] {50 }, }) { - name = Translations.ItemDataBase_ItemDefinitions_72/*Tower Shield*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_72/*Tower Shield*/, //tr rarity = 3, minLevel = 5, maxLevel = 8, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Shield, + type = ItemDefinition.ItemType.Shield, icon = Res.ResourceLoader.GetTexture(99), }; new BaseItem(new int[][] @@ -643,13 +643,13 @@ public static void PopulateItems() new int[] {43}, }) { - name = Translations.ItemDataBase_ItemDefinitions_73/*Broken Leather Shoulder Armor*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_73/*Broken Leather Shoulder Armor*/, //tr rarity = 0, minLevel = 1, maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.ShoulderArmor, + type = ItemDefinition.ItemType.ShoulderArmor, icon = Res.ResourceLoader.GetTexture(95), }; new BaseItem(new int[][] @@ -658,13 +658,13 @@ public static void PopulateItems() new int[] {43}, }) { - name = Translations.ItemDataBase_ItemDefinitions_74/*Leather Shoulder Armor*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_74/*Leather Shoulder Armor*/, //tr rarity = 1, minLevel = 2, maxLevel = 5, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.ShoulderArmor, + type = ItemDefinition.ItemType.ShoulderArmor, icon = Res.ResourceLoader.GetTexture(95), }; new BaseItem(new int[][] @@ -680,14 +680,14 @@ public static void PopulateItems() new int[] {-1}, }) { - name = Translations.ItemDataBase_ItemDefinitions_75/*Phase Pauldrons*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_76/*The distance of blink is increased by 40 meters, and blink now hits everything that you teleported through*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_75/*Phase Pauldrons*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_76/*The distance of blink is increased by 40 meters, and blink now hits everything that you teleported through*/, //tr rarity = 7, minLevel = 5, maxLevel = 9, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.ShoulderArmor, + type = ItemDefinition.ItemType.ShoulderArmor, icon = Res.ResourceLoader.GetTexture(95), onEquipCallback = () => { ModdedPlayer.Stats.spell_blinkRange.Add(40); ModdedPlayer.Stats.spell_blinkDamage.Add(60); }, onUnequipCallback = () => { ModdedPlayer.Stats.spell_blinkRange.Sub(40); ModdedPlayer.Stats.spell_blinkDamage.Sub(60); }, @@ -699,15 +699,15 @@ public static void PopulateItems() new int[] {43}, }) { - name = Translations.ItemDataBase_ItemDefinitions_77/*MAGA Cap*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_78/*Wearing this item channels the power of D.Trump to you*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_79/*... or does it?*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_77/*MAGA Cap*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_78/*Wearing this item channels the power of D.Trump to you*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_79/*... or does it?*/, //tr rarity = 1, minLevel = 1, maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Helmet, + type = ItemDefinition.ItemType.Helmet, icon = Res.ResourceLoader.GetTexture(91), }; new BaseItem(new int[][] @@ -726,15 +726,15 @@ public static void PopulateItems() new int[] {21,6}, }) { - name = Translations.ItemDataBase_ItemDefinitions_80/*Hubble's Vision*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_81/*Wearing this item empowers your black hole spell*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_82/*Man, fuck gravity.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_80/*Hubble's Vision*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_81/*Wearing this item empowers your black hole spell*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_82/*Man, fuck gravity.*/, //tr rarity = 6, minLevel = 10, maxLevel = 11, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Helmet, + type = ItemDefinition.ItemType.Helmet, icon = Res.ResourceLoader.GetTexture(91), }; new BaseItem(new int[][] @@ -742,13 +742,13 @@ public static void PopulateItems() new int[] {39,40,41,42,43,12,13}, }) { - name = Translations.ItemDataBase_ItemDefinitions_83/*Broken Loop*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_83/*Broken Loop*/, //tr rarity = 0, minLevel = 1, maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Ring, + type = ItemDefinition.ItemType.Ring, icon = Res.ResourceLoader.GetTexture(90), }; new BaseItem(new int[][] @@ -757,13 +757,13 @@ public static void PopulateItems() new int[] {39,40,41,42,43,12,13}, }) { - name = Translations.ItemDataBase_ItemDefinitions_84/*Loop*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_84/*Loop*/, //tr rarity = 1, minLevel = 1, maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Ring, + type = ItemDefinition.ItemType.Ring, icon = Res.ResourceLoader.GetTexture(90), }; new BaseItem(new int[][] @@ -774,14 +774,14 @@ public static void PopulateItems() new int[] {1,2,3,4,21,22,23,24,25,26,43,12,13}, }) { - name = Translations.ItemDataBase_ItemDefinitions_85/*Toxic Ring*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_87/*What the fuck did you just fucking say about me, you little bitch? I'll have you know I graduated top of my class in the Navy Seals, and I've been involved in numerous secret raids on Al-Quaeda, and I have over 300 confirmed kills. I am trained in gorilla warfare and I'm the top sniper in the entire US armed forces. You are nothing to me but just another target. I will wipe you the fuck out with precision the likes of which has never been seen before on this Earth, mark my fucking words. You think you can get away with saying that shit to me over the Internet? Think again, fucker. As we speak I am contacting my secret network of spies across the USA and your IP is being traced right now so you better prepare for the storm, maggot. The storm that wipes out the pathetic little thing you call your life. You're fucking dead, kid. I can be anywhere, anytime, and I can kill you in over seven hundred ways, and that's just with my bare hands. Not only am I extensively trained in unarmed combat, but I have access to the entire arsenal of the United States Marine Corps and I will use it to its full extent to wipe your miserable ass off the face of the continent, you little shit. If only you could have known what unholy retribution your little /'clever\' comment was about to bring down upon you, maybe you would have held your fucking tongue. But you couldn't, you didn't, and now you're paying the price, you goddamn idiot. I will shit fury all over you and you will drown in it. You're fucking dead, kiddo."*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_85/*Toxic Ring*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_87/*What the fuck did you just fucking say about me, you little bitch? I'll have you know I graduated top of my class in the Navy Seals, and I've been involved in numerous secret raids on Al-Quaeda, and I have over 300 confirmed kills. I am trained in gorilla warfare and I'm the top sniper in the entire US armed forces. You are nothing to me but just another target. I will wipe you the fuck out with precision the likes of which has never been seen before on this Earth, mark my fucking words. You think you can get away with saying that shit to me over the Internet? Think again, fucker. As we speak I am contacting my secret network of spies across the USA and your IP is being traced right now so you better prepare for the storm, maggot. The storm that wipes out the pathetic little thing you call your life. You're fucking dead, kid. I can be anywhere, anytime, and I can kill you in over seven hundred ways, and that's just with my bare hands. Not only am I extensively trained in unarmed combat, but I have access to the entire arsenal of the United States Marine Corps and I will use it to its full extent to wipe your miserable ass off the face of the continent, you little shit. If only you could have known what unholy retribution your little /'clever\' comment was about to bring down upon you, maybe you would have held your fucking tongue. But you couldn't, you didn't, and now you're paying the price, you goddamn idiot. I will shit fury all over you and you will drown in it. You're fucking dead, kiddo."*/, //tr rarity = 3, minLevel = 1, maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Ring, + type = ItemDefinition.ItemType.Ring, icon = Res.ResourceLoader.GetTexture(90), }; new BaseItem(new int[][] @@ -791,13 +791,13 @@ public static void PopulateItems() new int[] {-1}, }) { - name = Translations.ItemDataBase_ItemDefinitions_88/*Scarf*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_88/*Scarf*/, //tr rarity = 1, minLevel = 1, maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Amulet, + type = ItemDefinition.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(100), }; new BaseItem(new int[][] @@ -806,13 +806,13 @@ public static void PopulateItems() new int[] {43}, }) { - name = Translations.ItemDataBase_ItemDefinitions_89/*Damaged Bracer*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_89/*Damaged Bracer*/, //tr rarity = 0, minLevel = 1, maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Bracer, + type = ItemDefinition.ItemType.Bracer, icon = Res.ResourceLoader.GetTexture(93), }; new BaseItem(new int[][] @@ -822,13 +822,13 @@ public static void PopulateItems() new int[] {16}, }) { - name = Translations.ItemDataBase_ItemDefinitions_90/*Worn Bracer*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_90/*Worn Bracer*/, //tr rarity = 1, minLevel = 3, maxLevel = 10, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Bracer, + type = ItemDefinition.ItemType.Bracer, icon = Res.ResourceLoader.GetTexture(93), }; new BaseItem(new int[][] @@ -839,13 +839,13 @@ public static void PopulateItems() new int[] {5,6,7,8,9,10}, }) { - name = Translations.ItemDataBase_ItemDefinitions_91/*Leather Bracer*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_91/*Leather Bracer*/, //tr rarity = 2, minLevel = 4, maxLevel = 10, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Bracer, + type = ItemDefinition.ItemType.Bracer, icon = Res.ResourceLoader.GetTexture(94), }; new BaseItem(new int[][] @@ -853,14 +853,14 @@ public static void PopulateItems() new int[] {32}, }) { - name = Translations.ItemDataBase_ItemDefinitions_92/*Greater Mutated Heart*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_93/*Can be consumed by right clicking it*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_92/*Greater Mutated Heart*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_93/*Can be consumed by right clicking it*/, //tr rarity = 7, minLevel = 1, maxLevel = 3, canConsume = true, stackSize = 100, - type = BaseItem.ItemType.Other, + type = ItemDefinition.ItemType.Other, icon = Res.ResourceLoader.GetTexture(105), }; new BaseItem(new int[][] @@ -868,14 +868,14 @@ public static void PopulateItems() new int[] {33}, }) { - name = Translations.ItemDataBase_ItemDefinitions_94/*Lesser Mutated Heart*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_93/*Can be consumed by right clicking it*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_94/*Lesser Mutated Heart*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_93/*Can be consumed by right clicking it*/, //tr rarity = 5, minLevel = 1, maxLevel = 6, canConsume = true, stackSize = 1, - type = BaseItem.ItemType.Other, + type = ItemDefinition.ItemType.Other, icon = Res.ResourceLoader.GetTexture(105), }; new BaseItem(new int[][] @@ -888,14 +888,14 @@ public static void PopulateItems() new int[] {53,54}, }) { - name = Translations.ItemDataBase_ItemDefinitions_95/*Spiked ring*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_96/*Armor piercing for either melee or ranged weapons*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_95/*Spiked ring*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_96/*Armor piercing for either melee or ranged weapons*/, //tr rarity = 4, minLevel = 10, maxLevel = 16, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Ring, + type = ItemDefinition.ItemType.Ring, icon = Res.ResourceLoader.GetTexture(90), }; @@ -909,13 +909,13 @@ public static void PopulateItems() new int[] {55}, }) { - name = Translations.ItemDataBase_ItemDefinitions_97/*Piercer*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_97/*Piercer*/, //tr rarity = 4, minLevel = 11, maxLevel = 15, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Amulet, + type = ItemDefinition.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(101), }; new BaseItem(new int[][] @@ -928,15 +928,15 @@ public static void PopulateItems() new int[] {-1 }, }) { - name = Translations.ItemDataBase_ItemDefinitions_98/*Moon Boots*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_99/*A pair of boots from the moon.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_100/*It is said that the wearer will not take fall damage while wearing these boots and will jump like on the moon, I wouldn't trust it tough.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_98/*Moon Boots*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_99/*A pair of boots from the moon.*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_100/*It is said that the wearer will not take fall damage while wearing these boots and will jump like on the moon, I wouldn't trust it tough.*/, //tr rarity = 4, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 10, maxLevel = 14, canConsume = false, stackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Boot, + type = ItemDefinition.ItemType.Boot, icon = Res.ResourceLoader.GetTexture(85), //icon ids, don't worry about that }; new BaseItem(new int[][] @@ -949,15 +949,15 @@ public static void PopulateItems() new int[] {50,53,35}, }) { - name = Translations.ItemDataBase_ItemDefinitions_101/*Golden Ring of Strength*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_103/*A Golden Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_101/*Golden Ring of Strength*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_103/*A Golden Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr rarity = 5, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 10, maxLevel = 14, canConsume = false, stackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Ring, + type = ItemDefinition.ItemType.Ring, icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that }; new BaseItem(new int[][] @@ -970,15 +970,15 @@ public static void PopulateItems() new int[] {65,57,45,46}, }) { - name = Translations.ItemDataBase_ItemDefinitions_104/*Golden Ring of Vitality*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_103/*A Golden Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_104/*Golden Ring of Vitality*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_103/*A Golden Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr rarity = 5, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 10, maxLevel = 14, canConsume = false, stackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Ring, + type = ItemDefinition.ItemType.Ring, icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that }; @@ -992,15 +992,15 @@ public static void PopulateItems() new int[] {52,66,51,2,23} }) { - name = Translations.ItemDataBase_ItemDefinitions_105/*Golden Ring of Agility*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_103/*A Golden Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_105/*Golden Ring of Agility*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_103/*A Golden Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr rarity = 5, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 10, maxLevel = 20, canConsume = false, stackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Ring, + type = ItemDefinition.ItemType.Ring, icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that }; new BaseItem(new int[][] @@ -1013,15 +1013,15 @@ public static void PopulateItems() new int[] { 57,44,6,24,21,47} }) { - name = Translations.ItemDataBase_ItemDefinitions_106/*Golden Ring of Intelligence*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_103/*A Golden Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_106/*Golden Ring of Intelligence*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_103/*A Golden Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr rarity = 5, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 10, maxLevel = 20, canConsume = false, stackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Ring, + type = ItemDefinition.ItemType.Ring, icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that }; //Silver Rings--------------------------------------------------------------------------- @@ -1033,15 +1033,15 @@ public static void PopulateItems() new int[] {20,0,0,0} }) { - name = Translations.ItemDataBase_ItemDefinitions_107/*Silver Ring of Strength*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_108/*A Silver Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_107/*Silver Ring of Strength*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_108/*A Silver Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr rarity = 4, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 5, maxLevel = 20, canConsume = false, stackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Ring, + type = ItemDefinition.ItemType.Ring, icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that }; @@ -1053,15 +1053,15 @@ public static void PopulateItems() new int[] {14,16,45}, }) { - name = Translations.ItemDataBase_ItemDefinitions_109/*Silver Ring of Vitality*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_108/*A Silver Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_109/*Silver Ring of Vitality*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_108/*A Silver Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr rarity = 4, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 5, maxLevel = 8, canConsume = false, stackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Ring, + type = ItemDefinition.ItemType.Ring, icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that }; @@ -1073,15 +1073,15 @@ public static void PopulateItems() new int[] {23,48,54,26,6,57,0,0,0 } }) { - name = Translations.ItemDataBase_ItemDefinitions_110/*Silver Ring of Agility*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_108/*A Silver Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_110/*Silver Ring of Agility*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_108/*A Silver Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr rarity = 4, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 5, maxLevel = 20, canConsume = false, stackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Ring, + type = ItemDefinition.ItemType.Ring, icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that }; @@ -1093,15 +1093,15 @@ public static void PopulateItems() new int[] { 57,37,38,0}, }) { - name = Translations.ItemDataBase_ItemDefinitions_111/*Silver Ring of Intelligence*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_108/*A Silver Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_111/*Silver Ring of Intelligence*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_108/*A Silver Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr rarity = 4, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 5, maxLevel = 20, canConsume = false, stackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Ring, + type = ItemDefinition.ItemType.Ring, icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that }; @@ -1113,15 +1113,15 @@ public static void PopulateItems() new int[] {22,25, 57,35,50,53,20}, }) { - name = Translations.ItemDataBase_ItemDefinitions_112/*Steel Ring of Strength*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_113/*A Steel Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_112/*Steel Ring of Strength*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_113/*A Steel Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr rarity = 2, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 1, maxLevel = 6, canConsume = false, stackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Ring, + type = ItemDefinition.ItemType.Ring, icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that }; @@ -1132,15 +1132,15 @@ public static void PopulateItems() new int[] {14,16, 45,11,17,0}, }) { - name = Translations.ItemDataBase_ItemDefinitions_114/*Steel Ring of Vitality*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_113/*A Steel Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_114/*Steel Ring of Vitality*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_113/*A Steel Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr rarity = 2, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 1, maxLevel = 6, canConsume = false, stackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Ring, + type = ItemDefinition.ItemType.Ring, icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that }; @@ -1151,15 +1151,15 @@ public static void PopulateItems() new int[] {23,54,26,59,18,34}, }) { - name = Translations.ItemDataBase_ItemDefinitions_115/*Steel Ring of Agility*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_113/*A Steel Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_115/*Steel Ring of Agility*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_113/*A Steel Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr rarity = 2, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 1, maxLevel = 10, canConsume = false, stackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Ring, + type = ItemDefinition.ItemType.Ring, icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that }; @@ -1170,15 +1170,15 @@ public static void PopulateItems() new int[] {19,47,49,57,37,38,21,24}, }) { - name = Translations.ItemDataBase_ItemDefinitions_116/*Steel Ring of Intelligence*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_113/*A Steel Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_116/*Steel Ring of Intelligence*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_113/*A Steel Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr rarity = 2, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 1, maxLevel = 6, canConsume = false, stackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Ring, + type = ItemDefinition.ItemType.Ring, icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that }; @@ -1205,16 +1205,16 @@ public static void PopulateItems() new int[] {-1}, }) { - name = Translations.ItemDataBase_ItemDefinitions_117/*The One Ring To Rule Them All*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_118/*An Ancient magical Ring of great power.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_119/*It looks like and ordinay ring, but a strange energy is surrounding it. The Ring is said to have been found inside a volcanic rock by an archeologist, who went mad and isolated himself on the peninsula many years ago. But that's just a fairy tale, ring?*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_120/*Attracts unwanted attention of an unknown entity.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_117/*The One Ring To Rule Them All*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_118/*An Ancient magical Ring of great power.*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_119/*It looks like and ordinay ring, but a strange energy is surrounding it. The Ring is said to have been found inside a volcanic rock by an archeologist, who went mad and isolated himself on the peninsula many years ago. But that's just a fairy tale, ring?*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_120/*Attracts unwanted attention of an unknown entity.*/, //tr rarity = 7, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 20, maxLevel = 30, canConsume = false, stackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Ring, + type = ItemDefinition.ItemType.Ring, icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that }; @@ -1229,15 +1229,15 @@ public static void PopulateItems() new int[] {65,1,57,47,34,36,18} }) { - name = Translations.ItemDataBase_ItemDefinitions_121/*Golden Locket of Strength*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_122/*A Locket of ancient times.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_123/*A Golden Locket that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_121/*Golden Locket of Strength*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_122/*A Locket of ancient times.*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_123/*A Golden Locket that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr rarity = 3, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 15, maxLevel = 20, canConsume = false, stackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Amulet, + type = ItemDefinition.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that }; @@ -1250,15 +1250,15 @@ public static void PopulateItems() new int[] {14,16,45}, }) { - name = Translations.ItemDataBase_ItemDefinitions_124/*Golden Locket of Vitality*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_122/*A Locket of ancient times.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_123/*A Golden Locket that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_124/*Golden Locket of Vitality*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_122/*A Locket of ancient times.*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_123/*A Golden Locket that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr rarity = 3, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 15, maxLevel = 20, canConsume = false, stackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Amulet, + type = ItemDefinition.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that }; @@ -1271,15 +1271,15 @@ public static void PopulateItems() new int[] {57,18,47} }) { - name = Translations.ItemDataBase_ItemDefinitions_125/*Golden Locket of Agility*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_122/*A Locket of ancient times.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_123/*A Golden Locket that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_125/*Golden Locket of Agility*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_122/*A Locket of ancient times.*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_123/*A Golden Locket that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr rarity = 3, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 15, maxLevel = 20, canConsume = false, stackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Amulet, + type = ItemDefinition.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that }; @@ -1292,15 +1292,15 @@ public static void PopulateItems() new int[] {4,37,38,} }) { - name = Translations.ItemDataBase_ItemDefinitions_126/*Golden Locket of Intelligence*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_122/*A Locket of ancient times.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_123/*A Golden Locket that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_126/*Golden Locket of Intelligence*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_122/*A Locket of ancient times.*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_123/*A Golden Locket that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr rarity = 3, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 15, maxLevel = 20, canConsume = false, stackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Amulet, + type = ItemDefinition.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that }; @@ -1315,15 +1315,15 @@ public static void PopulateItems() new int[] {20,0,0,0} }) { - name = Translations.ItemDataBase_ItemDefinitions_127/*Silver Locket of Strength*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_122/*A Locket of ancient times.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_128/*A Silver Locket that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_127/*Silver Locket of Strength*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_122/*A Locket of ancient times.*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_128/*A Silver Locket that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr rarity = 2, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 5, maxLevel = 20, canConsume = false, stackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Amulet, + type = ItemDefinition.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that }; @@ -1336,15 +1336,15 @@ public static void PopulateItems() new int[] {45,0,0,0} }) { - name = Translations.ItemDataBase_ItemDefinitions_129/*Silver Locket of Vitality*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_122/*A Locket of ancient times.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_128/*A Silver Locket that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_129/*Silver Locket of Vitality*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_122/*A Locket of ancient times.*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_128/*A Silver Locket that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr rarity = 2, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 5, maxLevel = 20, canConsume = false, stackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Amulet, + type = ItemDefinition.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that }; @@ -1357,15 +1357,15 @@ public static void PopulateItems() new int[] {23,48,54,26}, }) { - name = Translations.ItemDataBase_ItemDefinitions_130/*Silver Locket of Agility*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_122/*A Locket of ancient times.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_128/*A Silver Locket that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_130/*Silver Locket of Agility*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_122/*A Locket of ancient times.*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_128/*A Silver Locket that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr rarity = 2, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 5, maxLevel = 8, canConsume = false, stackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Amulet, + type = ItemDefinition.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that }; @@ -1378,15 +1378,15 @@ public static void PopulateItems() new int[] {57,37,38,0}, }) { - name = Translations.ItemDataBase_ItemDefinitions_131/*Silver Locket of Intelligence*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_122/*A Locket of ancient times.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_128/*A Silver Locket that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_131/*Silver Locket of Intelligence*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_122/*A Locket of ancient times.*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_128/*A Silver Locket that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr rarity = 2, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 5, maxLevel = 8, canConsume = false, stackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Amulet, + type = ItemDefinition.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that }; @@ -1402,15 +1402,15 @@ public static void PopulateItems() new int[] {11,18,37,6,8}, }) { - name = Translations.ItemDataBase_ItemDefinitions_132/*Emerald Pendant of Strength*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_133/*A Pendant of ancient times.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_134/*An Emerald Pendant that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_132/*Emerald Pendant of Strength*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_133/*A Pendant of ancient times.*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_134/*An Emerald Pendant that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr rarity = 5, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 10, maxLevel = 12, canConsume = false, stackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Amulet, + type = ItemDefinition.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that }; @@ -1424,15 +1424,15 @@ public static void PopulateItems() new int[] {57,65}, }) { - name = Translations.ItemDataBase_ItemDefinitions_135/*Emerald Pendant of Vitality*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_133/*A Pendant of ancient times.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_134/*An Emerald Pendant that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_135/*Emerald Pendant of Vitality*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_133/*A Pendant of ancient times.*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_134/*An Emerald Pendant that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr rarity = 5, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 10, maxLevel = 12, canConsume = false, stackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Amulet, + type = ItemDefinition.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that }; @@ -1447,15 +1447,15 @@ public static void PopulateItems() new int[] {-1}, }) { - name = Translations.ItemDataBase_ItemDefinitions_136/*Emerald Pendant of Agility*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_133/*A Pendant of ancient times.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_134/*An Emerald Pendant that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_136/*Emerald Pendant of Agility*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_133/*A Pendant of ancient times.*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_134/*An Emerald Pendant that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr rarity = 5, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 10, maxLevel = 12, canConsume = false, stackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Amulet, + type = ItemDefinition.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that }; @@ -1470,15 +1470,15 @@ public static void PopulateItems() new int[] {-1}, }) { - name = Translations.ItemDataBase_ItemDefinitions_137/*Emerald Pendant of Intelligence*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_133/*A Pendant of ancient times.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_134/*An Emerald Pendant that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_137/*Emerald Pendant of Intelligence*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_133/*A Pendant of ancient times.*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_134/*An Emerald Pendant that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr rarity = 5, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 10, maxLevel = 12, canConsume = false, stackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Amulet, + type = ItemDefinition.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that }; @@ -1495,15 +1495,15 @@ public static void PopulateItems() new int[] {-1}, }) { - name = Translations.ItemDataBase_ItemDefinitions_138/*Diamond Pendant of Strength*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_133/*A Pendant of ancient times.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_139/*A Diamond Pendant that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_138/*Diamond Pendant of Strength*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_133/*A Pendant of ancient times.*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_139/*A Diamond Pendant that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 12, maxLevel = 14, canConsume = false, stackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Amulet, + type = ItemDefinition.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that }; @@ -1519,15 +1519,15 @@ public static void PopulateItems() new int[] {-1}, }) { - name = Translations.ItemDataBase_ItemDefinitions_140/*Diamond Pendant of Vitality*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_133/*A Pendant of ancient times.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_139/*A Diamond Pendant that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_140/*Diamond Pendant of Vitality*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_133/*A Pendant of ancient times.*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_139/*A Diamond Pendant that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 12, maxLevel = 14, canConsume = false, stackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Amulet, + type = ItemDefinition.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that }; @@ -1543,15 +1543,15 @@ public static void PopulateItems() new int[] {-1}, }) { - name = Translations.ItemDataBase_ItemDefinitions_141/*Diamond Pendant of Agility*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_133/*A Pendant of ancient times.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_139/*A Diamond Pendant that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_141/*Diamond Pendant of Agility*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_133/*A Pendant of ancient times.*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_139/*A Diamond Pendant that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 12, maxLevel = 14, canConsume = false, stackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Amulet, + type = ItemDefinition.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that }; @@ -1568,15 +1568,15 @@ public static void PopulateItems() new int[] {-1}, }) { - name = Translations.ItemDataBase_ItemDefinitions_142/*Diamond Pendant of Intelligence*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_133/*A Pendant of ancient times.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_139/*A Diamond Pendant that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_142/*Diamond Pendant of Intelligence*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_133/*A Pendant of ancient times.*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_139/*A Diamond Pendant that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 12, maxLevel = 14, canConsume = false, stackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Amulet, + type = ItemDefinition.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that }; @@ -1594,15 +1594,15 @@ public static void PopulateItems() new int[] {20,57} }) { - name = Translations.ItemDataBase_ItemDefinitions_143/*Armsy Finger Necklace*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_144/*A Necklace decorated with armsy fingertips.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_145/*A Necklace made from the fingertips of an armsy, yeilding it's raw power and strentgh.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_143/*Armsy Finger Necklace*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_144/*A Necklace decorated with armsy fingertips.*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_145/*A Necklace made from the fingertips of an armsy, yeilding it's raw power and strentgh.*/, //tr rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 1, maxLevel = 5, canConsume = false, stackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Amulet, + type = ItemDefinition.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that }; @@ -1622,15 +1622,15 @@ public static void PopulateItems() new int[] {45,57} }) { - name = Translations.ItemDataBase_ItemDefinitions_146/*Virginia Heart Pendant*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_147/*A Pendant of a petrified Virginia heart.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_148/*A Pendant made from a petrified Virginia heart, yeilding it's love and Vitality.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_146/*Virginia Heart Pendant*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_147/*A Pendant of a petrified Virginia heart.*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_148/*A Pendant made from a petrified Virginia heart, yeilding it's love and Vitality.*/, //tr rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 1, maxLevel = 5, canConsume = false, stackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Amulet, + type = ItemDefinition.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that }; virginiaHeartPedant.SetDropOnlyVags(); @@ -1650,15 +1650,15 @@ public static void PopulateItems() new int[] {65,57} }) { - name = Translations.ItemDataBase_ItemDefinitions_149/*Cowman Toe Necklace*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_150/*A Necklace decorated with cowman toes.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_151/*A Necklace made from the fingertips of an armsy, yeilding it's speed and agility.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_149/*Cowman Toe Necklace*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_150/*A Necklace decorated with cowman toes.*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_151/*A Necklace made from the fingertips of an armsy, yeilding it's speed and agility.*/, //tr rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 20, maxLevel = 40, canConsume = false, stackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Amulet, + type = ItemDefinition.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that }; cowmanToeNecklace.SetDropOnlyCow(); @@ -1680,16 +1680,16 @@ public static void PopulateItems() new int[] {29,37,38,}, }) { - name = Translations.ItemDataBase_ItemDefinitions_152/*Pendant of Perpetual Rebirth*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_153/*A Pendant of a shrunken babyhead.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_154/*A pedant of great power. Obtainable only from babies or crafting*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_155(1)/*decrease a random cooldown by 1 second whenever you hit something with melee or ranged attack.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_152/*Pendant of Perpetual Rebirth*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_153/*A Pendant of a shrunken babyhead.*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_154/*A pedant of great power. Obtainable only from babies or crafting*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_155(1)/*decrease a random cooldown by 1 second whenever you hit something with melee or ranged attack.*/, //tr rarity = 7, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 30, maxLevel = 40, canConsume = false, stackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Amulet, + type = ItemDefinition.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that onEquipCallback = () => ModdedPlayer.Stats.i_infinityLoop.value = true, onUnequipCallback = () => ModdedPlayer.Stats.i_infinityLoop.value = false, @@ -1712,19 +1712,19 @@ public static void PopulateItems() new int[] {19,47,49,57, 21,24,29,37,38,57}, }) { - name = Translations.ItemDataBase_ItemDefinitions_156/*Megan's Locket*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_157/*The Locket Megan wore.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_158/*Megan wore this Locket, it has a picture of her mom in it.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_156/*Megan's Locket*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_157/*The Locket Megan wore.*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_158/*Megan wore this Locket, it has a picture of her mom in it.*/, //tr rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 1, maxLevel = 4, canConsume = false, stackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Amulet, + type = ItemDefinition.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that }.SetDropOnlyMegan(); - BaseItem RelicHammer = new BaseItem(new int[][] + ItemDefinition RelicHammer = new BaseItem(new int[][] { new int[] {25 }, new int[] {18 }, @@ -1732,21 +1732,21 @@ public static void PopulateItems() new int[] {1,62,63,64 }, }) { - name = Translations.ItemDataBase_ItemDefinitions_159/*Relic Hammer*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_160/*It's slow and weak.*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_161/*Slows on hit*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_159/*Relic Hammer*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_160/*It's slow and weak.*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_161/*Slows on hit*/, //tr rarity = 2, minLevel = 20, maxLevel = 22, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Weapon, - subtype = BaseItem.WeaponModelType.Hammer, + type = ItemDefinition.ItemType.Weapon, + subtype = ItemDefinition.ItemSubtype.Hammer, icon = Res.ResourceLoader.GetTexture(109), }; RelicHammer.statSlots[1][0].multipier = -4; - BaseItem GreaterHammer = new BaseItem(new int[][] + ItemDefinition GreaterHammer = new BaseItem(new int[][] { new int[] {25 }, new int[] {18 }, @@ -1757,16 +1757,16 @@ public static void PopulateItems() new int[] {25 ,22,1,12,13,5,6}, }) { - name = Translations.ItemDataBase_ItemDefinitions_162/*Black Hammer*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_163/*It's slow but with enough strength i can make it a very deadly tool*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_161/*Slows on hit*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_162/*Black Hammer*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_163/*It's slow but with enough strength i can make it a very deadly tool*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_161/*Slows on hit*/, //tr rarity = 4, minLevel = 30, maxLevel = 35, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Weapon, - subtype = BaseItem.WeaponModelType.Hammer, + type = ItemDefinition.ItemType.Weapon, + subtype = ItemDefinition.ItemSubtype.Hammer, icon = Res.ResourceLoader.GetTexture(109), }; GreaterHammer.statSlots[1][0].multipier = -3; @@ -1777,14 +1777,14 @@ public static void PopulateItems() new int[] {2,6,4}, }) { - name = Translations.ItemDataBase_ItemDefinitions_164/*Potato Sack*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_165/*Can be used as a quiver*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_164/*Potato Sack*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_165/*Can be used as a quiver*/, //tr rarity = 0, minLevel = 1, maxLevel = 4, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Quiver, + type = ItemDefinition.ItemType.Quiver, icon = Res.ResourceLoader.GetTexture(98), }; @@ -1797,13 +1797,13 @@ public static void PopulateItems() new int[] {2}, }) { - name = Translations.ItemDataBase_ItemDefinitions_166/*Rabbit Skin Quiver*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_166/*Rabbit Skin Quiver*/, //tr rarity = 1, minLevel = 2, maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Quiver, + type = ItemDefinition.ItemType.Quiver, icon = Res.ResourceLoader.GetTexture(98), }; @@ -1817,14 +1817,14 @@ public static void PopulateItems() new int[] {-1}, }) { - name = Translations.ItemDataBase_ItemDefinitions_167/*Hollow Log*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_168/*It allows for faster drawing of arrow than a cloth quiver*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_167/*Hollow Log*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_168/*It allows for faster drawing of arrow than a cloth quiver*/, //tr rarity = 2, minLevel = 6, maxLevel = 9, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Quiver, + type = ItemDefinition.ItemType.Quiver, icon = Res.ResourceLoader.GetTexture(98), }; @@ -1839,13 +1839,13 @@ public static void PopulateItems() new int[] {2,3,4,5,6,7,8,11,12,16,18,37}, }) { - name = Translations.ItemDataBase_ItemDefinitions_169/*Spellbound Quiver*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_169/*Spellbound Quiver*/, //tr rarity = 3, minLevel = 6, maxLevel = 11, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Quiver, + type = ItemDefinition.ItemType.Quiver, icon = Res.ResourceLoader.GetTexture(98), }; @@ -1863,13 +1863,13 @@ public static void PopulateItems() new int[] {-1}, }) { - name = Translations.ItemDataBase_ItemDefinitions_170/*Long Lost Quiver*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_170/*Long Lost Quiver*/, //tr rarity = 5, minLevel = 12, maxLevel = 20, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Quiver, + type = ItemDefinition.ItemType.Quiver, icon = Res.ResourceLoader.GetTexture(98), }; @@ -1882,14 +1882,14 @@ public static void PopulateItems() new int[] {4,0}, }) { - name = Translations.ItemDataBase_ItemDefinitions_171/*Spell Scroll*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_172/*Contains a lot of information on how to properly cast spells to achieve better results*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_171/*Spell Scroll*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_172/*Contains a lot of information on how to properly cast spells to achieve better results*/, //tr rarity = 1, minLevel = 1, maxLevel = 1, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.SpellScroll, + type = ItemDefinition.ItemType.SpellScroll, icon = Res.ResourceLoader.GetTexture(110), }; @@ -1901,14 +1901,14 @@ public static void PopulateItems() new int[] {43,0,0,0}, }) { - name = Translations.ItemDataBase_ItemDefinitions_173/*Cloth Pants*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_174/*Offer little protction*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_173/*Cloth Pants*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_174/*Offer little protction*/, //tr rarity = 1, minLevel = 2, maxLevel = 5, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Pants, + type = ItemDefinition.ItemType.Pants, icon = Res.ResourceLoader.GetTexture(87), }; @@ -1922,13 +1922,13 @@ public static void PopulateItems() new int[] {1000,1001,1002,1003,1004,43,0,0,0}, }) { - name = Translations.ItemDataBase_ItemDefinitions_175/*Rough Hide Leggins*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_175/*Rough Hide Leggins*/, //tr rarity = 3, minLevel = 1, maxLevel = 1, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Pants, + type = ItemDefinition.ItemType.Pants, icon = Res.ResourceLoader.GetTexture(87), }; @@ -1944,13 +1944,13 @@ public static void PopulateItems() new int[] {16,43}, }) { - name = Translations.ItemDataBase_ItemDefinitions_176/*Plate Leggins*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_176/*Plate Leggins*/, //tr rarity = 4, minLevel = 4, maxLevel = 10, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Pants, + type = ItemDefinition.ItemType.Pants, icon = Res.ResourceLoader.GetTexture(87), }; @@ -1965,13 +1965,13 @@ public static void PopulateItems() new int[] {-1}, }) { - name = Translations.ItemDataBase_ItemDefinitions_177/*Sage's Robes*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_177/*Sage's Robes*/, //tr rarity = 3, minLevel = 1, maxLevel = 6, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Pants, + type = ItemDefinition.ItemType.Pants, icon = Res.ResourceLoader.GetTexture(87), }; @@ -1991,14 +1991,14 @@ public static void PopulateItems() new int[] {-1}, }) { - name = Translations.ItemDataBase_ItemDefinitions_178/*Hammer Jammers*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_179("450%")/*Damage of your smash attack is increased by 450%, hammer stun duration is doubled*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_178/*Hammer Jammers*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_179("450%")/*Damage of your smash attack is increased by 450%, hammer stun duration is doubled*/, //tr rarity = 7, minLevel = 20, maxLevel = 28, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Pants, + type = ItemDefinition.ItemType.Pants, icon = Res.ResourceLoader.GetTexture(87), onEquipCallback = () => { ModdedPlayer.Stats.smashDamage.Multiply(4.5f); ModdedPlayer.Stats.i_HammerStunAmount.Multiply(2); }, onUnequipCallback = () => { ModdedPlayer.Stats.smashDamage.Divide(4.5f); ModdedPlayer.Stats.i_HammerStunAmount.Divide(2); }, @@ -2016,14 +2016,14 @@ public static void PopulateItems() new int[] {51,1,2,3,4,55}, }) { - name = Translations.ItemDataBase_ItemDefinitions_180/*Pirate Pants*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_181/*Those pants are ligh and comfortable. They offer plenty of mobility but lack in protection.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_180/*Pirate Pants*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_181/*Those pants are ligh and comfortable. They offer plenty of mobility but lack in protection.*/, //tr rarity = 5, minLevel = 1, maxLevel = 1, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Pants, + type = ItemDefinition.ItemType.Pants, icon = Res.ResourceLoader.GetTexture(87), }; @@ -2042,16 +2042,16 @@ public static void PopulateItems() new int[] {-1}, }) { - name = Translations.ItemDataBase_ItemDefinitions_182/*Hexed Pants of Mr M.*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_183/*They look like yoga pants but for a man the size of a wardrobe*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_184/*Once upon a time there was a man who was in a basement and fed himself with nothing but nuggets. He got so obese that friends and family started worrying. Hazard noticed this man and cursed his pants to force him to excercise.*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_185("60%", "1%")/*While moving, energy regeneration and damage is increased by 40%. While standing still for longer than a second, you loose 1% of max health per second.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_182/*Hexed Pants of Mr M.*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_183/*They look like yoga pants but for a man the size of a wardrobe*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_184/*Once upon a time there was a man who was in a basement and fed himself with nothing but nuggets. He got so obese that friends and family started worrying. Hazard noticed this man and cursed his pants to force him to excercise.*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_185("60%", "1%")/*While moving, energy regeneration and damage is increased by 40%. While standing still for longer than a second, you loose 1% of max health per second.*/, //tr rarity = 7, minLevel = 14, maxLevel = 15, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Pants, + type = ItemDefinition.ItemType.Pants, icon = Res.ResourceLoader.GetTexture(87), onEquipCallback = () => ModdedPlayer.Stats.i_HexedPantsOfMrM_Enabled.value = true, onUnequipCallback = () => ModdedPlayer.Stats.i_HexedPantsOfMrM_Enabled.value = false, @@ -2062,14 +2062,14 @@ public static void PopulateItems() new int[] {39,40,41,42,43}, }) { - name = Translations.ItemDataBase_ItemDefinitions_186/*Leather Mantle*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_187/*A piece of cloth to give protection from */, //tr + name = Translations.ItemDatabase_ItemDefinitions_186/*Leather Mantle*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_187/*A piece of cloth to give protection from */, //tr rarity = 1, minLevel = 1, maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.ShoulderArmor, + type = ItemDefinition.ItemType.ShoulderArmor, icon = Res.ResourceLoader.GetTexture(95), }; @@ -2082,20 +2082,20 @@ public static void PopulateItems() new int[] {39,40,41,42,43}, }) { - name = Translations.ItemDataBase_ItemDefinitions_188/*Shoulder Guards*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_189/*Medium armor piece.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_190/*Heavy armor*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_188/*Shoulder Guards*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_189/*Medium armor piece.*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_190/*Heavy armor*/, //tr rarity = 2, minLevel = 4, maxLevel = 7, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.ShoulderArmor, + type = ItemDefinition.ItemType.ShoulderArmor, icon = Res.ResourceLoader.GetTexture(95), }; //Item 2/6 - BaseItem Heavy_Shoulder_Plates = new BaseItem(new int[][] + ItemDefinition Heavy_Shoulder_Plates = new BaseItem(new int[][] { new int[] {34}, new int[] {18}, @@ -2108,14 +2108,14 @@ public static void PopulateItems() new int[] {11}, }) { - name = Translations.ItemDataBase_ItemDefinitions_191/*Heavy Shoulder Plates*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_192/*Heavy armor piece. They offer great protection at the cost of attack speed and movement speed decrease*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_191/*Heavy Shoulder Plates*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_192/*Heavy armor piece. They offer great protection at the cost of attack speed and movement speed decrease*/, //tr rarity = 4, minLevel = 15, maxLevel = 20, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.ShoulderArmor, + type = ItemDefinition.ItemType.ShoulderArmor, icon = Res.ResourceLoader.GetTexture(95), }; Heavy_Shoulder_Plates.statSlots[0][0].multipier = -1; @@ -2132,14 +2132,14 @@ public static void PopulateItems() new int[] {1,2,3,4,16,39,40,41,42,43}, }) { - name = Translations.ItemDataBase_ItemDefinitions_193/*Etched Mantle*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_194/*Those pauldrons empower wearer's combat skill*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_193/*Etched Mantle*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_194/*Those pauldrons empower wearer's combat skill*/, //tr rarity = 3, minLevel = 1, maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.ShoulderArmor, + type = ItemDefinition.ItemType.ShoulderArmor, icon = Res.ResourceLoader.GetTexture(95), }; @@ -2156,13 +2156,13 @@ public static void PopulateItems() new int[] {53,55}, }) { - name = Translations.ItemDataBase_ItemDefinitions_195/*Assassins Pauldrons*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_195/*Assassins Pauldrons*/, //tr rarity = 5, minLevel = 4, maxLevel = 6, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.ShoulderArmor, + type = ItemDefinition.ItemType.ShoulderArmor, icon = Res.ResourceLoader.GetTexture(95), }; @@ -2184,15 +2184,15 @@ public static void PopulateItems() new int[] {1,2,4}, }) { - name = Translations.ItemDataBase_ItemDefinitions_196/*Death Pact*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_197/*Find the greatest strength on the border of life and death.*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_198("6%", "5%")/*Every attack you make decreases your health by 7% of max health. For every percent of missing health you gain 5% damage amplification. This damage cannot kill you.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_196/*Death Pact*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_197/*Find the greatest strength on the border of life and death.*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_198("6%", "5%")/*Every attack you make decreases your health by 7% of max health. For every percent of missing health you gain 5% damage amplification. This damage cannot kill you.*/, //tr rarity = 7, minLevel = 5, maxLevel = 8, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.ShoulderArmor, + type = ItemDefinition.ItemType.ShoulderArmor, icon = Res.ResourceLoader.GetTexture(95), onEquipCallback = () => ModdedPlayer.Stats.i_DeathPact_Enabled.value = true, onUnequipCallback = () => ModdedPlayer.Stats.i_DeathPact_Enabled.value = false, @@ -2211,30 +2211,30 @@ public static void PopulateItems() new int[] {16,0,0,0,1,2,3,4,0,0,0,0}, }) { - name = Translations.ItemDataBase_ItemDefinitions_199/*Maximale Qualitöt*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_200/*A platinum ring with the most expensive jewels engraved on it. It's quality is uncomparable.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_199/*Maximale Qualitöt*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_200/*A platinum ring with the most expensive jewels engraved on it. It's quality is uncomparable.*/, //tr rarity = 6, minLevel = 1, maxLevel = 4, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Ring, + type = ItemDefinition.ItemType.Ring, icon = Res.ResourceLoader.GetTexture(90), }; new BaseItem(new int[][] { }) { - name = Translations.ItemDataBase_ItemDefinitions_201/*Heart of Purity*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_202/*A object filled with both destructive and creative energy. Allows to re-assign all spent mutation points*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_203/*This powerful relic contains so much power, that it can kill anything and force it to come back to life, resulting in it's rebirth.*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_204/*Can be consumed by right clicking it. */, //tr + name = Translations.ItemDatabase_ItemDefinitions_201/*Heart of Purity*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_202/*A object filled with both destructive and creative energy. Allows to re-assign all spent mutation points*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_203/*This powerful relic contains so much power, that it can kill anything and force it to come back to life, resulting in it's rebirth.*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_204/*Can be consumed by right clicking it. */, //tr rarity = 4, minLevel = 1, maxLevel = 2, canConsume = true, stackSize = 100, - type = BaseItem.ItemType.Other, + type = ItemDefinition.ItemType.Other, icon = Res.ResourceLoader.GetTexture(105), onEquipCallback = ModdedPlayer.Respec }; @@ -2248,14 +2248,14 @@ public static void PopulateItems() new int[] {5,6,9,8,10,12,13,14,}, }) { - name = Translations.ItemDataBase_ItemDefinitions_205/*Round Shield*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_206/*A sturdy shield made of wood and reinforced with iron.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_205/*Round Shield*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_206/*A sturdy shield made of wood and reinforced with iron.*/, //tr rarity = 2, minLevel = 5, maxLevel = 8, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Shield, + type = ItemDefinition.ItemType.Shield, icon = Res.ResourceLoader.GetTexture(99), }; @@ -2268,15 +2268,15 @@ public static void PopulateItems() new int[] {50}, }) { - name = Translations.ItemDataBase_ItemDefinitions_207/*Old Buckler*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_208/*An old shield.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_209/*This item has a lot of scratches that look like they were made by something with sharp claws.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_207/*Old Buckler*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_208/*An old shield.*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_209/*This item has a lot of scratches that look like they were made by something with sharp claws.*/, //tr rarity = 1, minLevel = 4, maxLevel = 12, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Shield, + type = ItemDefinition.ItemType.Shield, icon = Res.ResourceLoader.GetTexture(99), }; @@ -2293,13 +2293,13 @@ public static void PopulateItems() new int[] {39,40,41,42,43,50,57}, }) { - name = Translations.ItemDataBase_ItemDefinitions_210/*Dark Oak Shield*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_210/*Dark Oak Shield*/, //tr rarity = 4, minLevel = 1, maxLevel = 1, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Shield, + type = ItemDefinition.ItemType.Shield, icon = Res.ResourceLoader.GetTexture(99), }; @@ -2316,14 +2316,14 @@ public static void PopulateItems() new int[] {16,7,8,22,23,25,26}, }) { - name = Translations.ItemDataBase_ItemDefinitions_211/*Bone Shield*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_212/*A shield made of bones, held together by thick steel wire.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_211/*Bone Shield*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_212/*A shield made of bones, held together by thick steel wire.*/, //tr rarity = 3, minLevel = 1, maxLevel = 1, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Shield, + type = ItemDefinition.ItemType.Shield, icon = Res.ResourceLoader.GetTexture(99), }; @@ -2333,15 +2333,15 @@ public static void PopulateItems() new int[] {0,0,0,0,62,63,64}, }) { - name = Translations.ItemDataBase_ItemDefinitions_213/*Dull Longsword*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_214/*It's round on the edges*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_213/*Dull Longsword*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_214/*It's round on the edges*/, //tr rarity = 0, minLevel = 15, maxLevel = 20, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Weapon, - subtype = BaseItem.WeaponModelType.LongSword, + type = ItemDefinition.ItemType.Weapon, + subtype = ItemDefinition.ItemSubtype.LongSword, icon = Res.ResourceLoader.GetTexture(89), }.statSlots[0][0].multipier = -3; @@ -2354,14 +2354,14 @@ public static void PopulateItems() new int[] {65}, }) { - name = Translations.ItemDataBase_ItemDefinitions_215/*Iron Horn*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_216("10%")/*When using Warcry, you and all allies recieve armor bonus equal to 10% of your armor*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_215/*Iron Horn*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_216("10%")/*When using Warcry, you and all allies recieve armor bonus equal to 10% of your armor*/, //tr rarity = 4, minLevel = 1, maxLevel = 2, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Amulet, + type = ItemDefinition.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(101), onEquipCallback = () => ModdedPlayer.Stats.spell_warCryGiveArmor.value = true, onUnequipCallback = () => ModdedPlayer.Stats.spell_warCryGiveArmor.value = false, @@ -2383,14 +2383,14 @@ public static void PopulateItems() new int[] {-1}, }) { - name = Translations.ItemDataBase_ItemDefinitions_217/*The Great Iron Horn*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_216("10%") + Translations.ItemDataBase_ItemDefinitions_608/*When using Warcry, you and all allies recieve armor bonus equal to 10% of your armor*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_217/*The Great Iron Horn*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_216("10%") + Translations.ItemDatabase_ItemDefinitions_608/*When using Warcry, you and all allies recieve armor bonus equal to 10% of your armor*/, //tr rarity = 7, minLevel = 1, maxLevel = 2, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Amulet, + type = ItemDefinition.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(101), onEquipCallback = () => { @@ -2415,14 +2415,14 @@ public static void PopulateItems() new int[] {24,25,26,0,0,0}, }) { - name = Translations.ItemDataBase_ItemDefinitions_218/*Horned Helmet*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_219/*A viking helmet*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_218/*Horned Helmet*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_219/*A viking helmet*/, //tr rarity = 2, minLevel = 2, maxLevel = 8, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Helmet, + type = ItemDefinition.ItemType.Helmet, icon = Res.ResourceLoader.GetTexture(91), }; @@ -2434,18 +2434,18 @@ public static void PopulateItems() new int[] {-1}, }) { - name = Translations.ItemDataBase_ItemDefinitions_220/*Mask*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_220/*Mask*/, //tr rarity = 2, minLevel = 1, maxLevel = 5, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Helmet, + type = ItemDefinition.ItemType.Helmet, icon = Res.ResourceLoader.GetTexture(91), }; //Item 4/5 - BaseItem mask = new BaseItem(new int[][] + ItemDefinition mask = new BaseItem(new int[][] { new int[] {18}, new int[] {22,23,21}, @@ -2457,13 +2457,13 @@ public static void PopulateItems() new int[] {29,30,48}, }) { - name = Translations.ItemDataBase_ItemDefinitions_221/*Mask of Madness*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_221/*Mask of Madness*/, //tr rarity = 5, minLevel = 2, maxLevel = 6, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Helmet, + type = ItemDefinition.ItemType.Helmet, icon = Res.ResourceLoader.GetTexture(91), }; mask.statSlots[2][0].multipier = -4; @@ -2481,14 +2481,14 @@ public static void PopulateItems() new int[] {-1}, }) { - name = Translations.ItemDataBase_ItemDefinitions_222/*Old Scroll*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_172/*Contains a lot of information on how to properly cast spells to achieve better results*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_222/*Old Scroll*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_172/*Contains a lot of information on how to properly cast spells to achieve better results*/, //tr rarity = 3, minLevel = 1, maxLevel = 1, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.SpellScroll, + type = ItemDefinition.ItemType.SpellScroll, icon = Res.ResourceLoader.GetTexture(110), }; new BaseItem(new int[][] @@ -2505,16 +2505,16 @@ public static void PopulateItems() new int[] {27,28,29,30,48,47}, }) { - name = Translations.ItemDataBase_ItemDefinitions_223/*Wormhole Stabilizators*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_224/*High-tech gear*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_225/*Hazard remember to put some fucking lore in here, don't leave it like this!*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_226("570")/*Increases the duration of a portal by 570 seconds*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_223/*Wormhole Stabilizators*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_224/*High-tech gear*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_225/*Hazard remember to put some fucking lore in here, don't leave it like this!*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_226("570")/*Increases the duration of a portal by 570 seconds*/, //tr rarity = 7, minLevel = 4, maxLevel = 6, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Bracer, + type = ItemDefinition.ItemType.Bracer, icon = Res.ResourceLoader.GetTexture(94), onEquipCallback = () => ModdedPlayer.Stats.spell_portalDuration.Add(570), onUnequipCallback = () => ModdedPlayer.Stats.spell_portalDuration.Sub(570), @@ -2534,14 +2534,14 @@ public static void PopulateItems() new int[] {-1}, }) { - name = Translations.ItemDataBase_ItemDefinitions_227/*Cripplers*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_228(15)/*Increases the duration of a magic arrow's negative effect by 10 seconds*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_227/*Cripplers*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_228(15)/*Increases the duration of a magic arrow's negative effect by 10 seconds*/, //tr rarity = 7, minLevel = 3, maxLevel = 6, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Glove, + type = ItemDefinition.ItemType.Glove, icon = Res.ResourceLoader.GetTexture(86), onEquipCallback = () => ModdedPlayer.Stats.spell_magicArrowDuration.Add(15), onUnequipCallback = () => ModdedPlayer.Stats.spell_magicArrowDuration.Sub(15), @@ -2562,15 +2562,15 @@ public static void PopulateItems() new int[] {12,13,14,15,16,18}, }) { - name = Translations.ItemDataBase_ItemDefinitions_229/*Crossfire*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_230/*Infused with powerful magic. This item is a dangerous tool of destruction.*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_231/*When hitting an enemy with a projectile, create a magic arrow pointed at the enemy and shoot it without using in energy. This effect may occur once every seconds, but can be interval can be shortened with cooldown reduction.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_229/*Crossfire*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_230/*Infused with powerful magic. This item is a dangerous tool of destruction.*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_231/*When hitting an enemy with a projectile, create a magic arrow pointed at the enemy and shoot it without using in energy. This effect may occur once every seconds, but can be interval can be shortened with cooldown reduction.*/, //tr rarity = 7, minLevel = 1, maxLevel = 6, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Quiver, + type = ItemDefinition.ItemType.Quiver, icon = Res.ResourceLoader.GetTexture(98), onEquipCallback = () => ModdedPlayer.Stats.i_CrossfireQuiver.value = true, onUnequipCallback = () => ModdedPlayer.Stats.i_CrossfireQuiver.value = false, @@ -2585,14 +2585,14 @@ public static void PopulateItems() new int[] {-1}, }) { - name = Translations.ItemDataBase_ItemDefinitions_232/*Scroll of Recovery*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_233/*Recovers health and stamina*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_232/*Scroll of Recovery*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_233/*Recovers health and stamina*/, //tr rarity = 1, minLevel = 1, maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.SpellScroll, + type = ItemDefinition.ItemType.SpellScroll, icon = Res.ResourceLoader.GetTexture(110), }; @@ -2605,16 +2605,16 @@ public static void PopulateItems() new int[] {42,24}, }) { - name = Translations.ItemDataBase_ItemDefinitions_234/*Tiara*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_235/*A beautiful tiara */, //tr - lore = Translations.ItemDataBase_ItemDefinitions_236/*This tiara may not provide much protection, but it sure is pretty*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_237/*Shiny*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_234/*Tiara*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_235/*A beautiful tiara */, //tr + lore = Translations.ItemDatabase_ItemDefinitions_236/*This tiara may not provide much protection, but it sure is pretty*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_237/*Shiny*/, //tr rarity = 2, minLevel = 5, maxLevel = 10, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Helmet, + type = ItemDefinition.ItemType.Helmet, icon = Res.ResourceLoader.GetTexture(91), }; @@ -2629,16 +2629,16 @@ public static void PopulateItems() new int[] {0,65}, }) { - name = Translations.ItemDataBase_ItemDefinitions_238/*Chastity belt*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_239/*Dodge those fukbois*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_240/*This belt will stop those cheeky cannibals and armsies from getting into your pants*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_241("99%")/* 100% damage reduction while sleeping*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_238/*Chastity belt*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_239/*Dodge those fukbois*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_240/*This belt will stop those cheeky cannibals and armsies from getting into your pants*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_241("99%")/* 100% damage reduction while sleeping*/, //tr rarity = 2, minLevel = 1, maxLevel = 2, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Pants, + type = ItemDefinition.ItemType.Pants, icon = Res.ResourceLoader.GetTexture(87), }; new BaseItem(new int[][] @@ -2651,16 +2651,16 @@ public static void PopulateItems() new int[] {21,24,0,0,0,0}, }) { - name = Translations.ItemDataBase_ItemDefinitions_242/*Ice Scroll*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_243/*A spell surrounded by flying shards of ice, contains tramendous power of cold.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_244/*Created at the top of the mountain.*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_581("250", 2)/*Snap freeze damage is increased and the slow duration is increased by 1 second*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_242/*Ice Scroll*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_243/*A spell surrounded by flying shards of ice, contains tramendous power of cold.*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_244/*Created at the top of the mountain.*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_581("250", 2)/*Snap freeze damage is increased and the slow duration is increased by 1 second*/, //tr rarity = 4, minLevel = 30, maxLevel = 40, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.SpellScroll, + type = ItemDefinition.ItemType.SpellScroll, icon = Res.ResourceLoader.GetTexture(110), onEquipCallback = () => { ModdedPlayer.Stats.spell_snapDamageScaling.Add(250f); ModdedPlayer.Stats.spell_snapFreezeDuration.Add(2); }, onUnequipCallback = () => { ModdedPlayer.Stats.spell_snapDamageScaling.Sub(250f); ModdedPlayer.Stats.spell_snapFreezeDuration.Add(2); } @@ -2675,15 +2675,15 @@ public static void PopulateItems() new int[] {1000,1001,1002, 1003, 1004, 0,0,0,0,0,0,0}, }) { - name = Translations.ItemDataBase_ItemDefinitions_245/*Motorboat Modification Blueprints*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_246/*Sheet of paper that allows to turn any raft into a high speed. Increases carry amount and increases speed of rafts.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_247/*Who did this lmao.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_245/*Motorboat Modification Blueprints*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_246/*Sheet of paper that allows to turn any raft into a high speed. Increases carry amount and increases speed of rafts.*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_247/*Who did this lmao.*/, //tr rarity = 4, minLevel = 1, maxLevel = 4, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.SpellScroll, + type = ItemDefinition.ItemType.SpellScroll, icon = Res.ResourceLoader.GetTexture(110), }; new BaseItem(new int[][] @@ -2694,14 +2694,14 @@ public static void PopulateItems() new int[] {1,2,3,4,6,55}, }) { - name = Translations.ItemDataBase_ItemDefinitions_248/*Axe of Swiftness*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_248/*Axe of Swiftness*/, //tr rarity = 3, minLevel = 15, maxLevel = 17, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Weapon, - subtype = BaseItem.WeaponModelType.Axe, + type = ItemDefinition.ItemType.Weapon, + subtype = ItemDefinition.ItemSubtype.Axe, icon = Res.ResourceLoader.GetTexture(138), }.statSlots[1][0].multipier = 1.6f; new BaseItem(new int[][] @@ -2713,14 +2713,14 @@ public static void PopulateItems() new int[] {53,22,25,12,13}, }) { - name = Translations.ItemDataBase_ItemDefinitions_249/*Severer*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_249/*Severer*/, //tr rarity = 4, minLevel = 25, maxLevel = 25, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Weapon, - subtype = BaseItem.WeaponModelType.Axe, + type = ItemDefinition.ItemType.Weapon, + subtype = ItemDefinition.ItemSubtype.Axe, icon = Res.ResourceLoader.GetTexture(138), }.statSlots[1][0].multipier = 2.5f; @@ -2735,14 +2735,14 @@ public static void PopulateItems() new int[] {53,22,25,12,13,1,2,3,4,39,40,41,42,43}, }) { - name = Translations.ItemDataBase_ItemDefinitions_250/*Golden Axe of Fortune*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_250/*Golden Axe of Fortune*/, //tr rarity = 5, minLevel = 35, maxLevel = 36, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Weapon, - subtype = BaseItem.WeaponModelType.Axe, + type = ItemDefinition.ItemType.Weapon, + subtype = ItemDefinition.ItemSubtype.Axe, icon = Res.ResourceLoader.GetTexture(138), }.statSlots[1][0].multipier = 2.5f; new BaseItem(new int[][] @@ -2756,15 +2756,15 @@ public static void PopulateItems() new int[] {53,22,25,12,13,1,2,3,4,39,40,41,42,43}, }) { - name = Translations.ItemDataBase_ItemDefinitions_251/*Axe of Misfortune*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_252/*Misfortunate are the ones on the recieving end. They will bleed a lot*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_251/*Axe of Misfortune*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_252/*Misfortunate are the ones on the recieving end. They will bleed a lot*/, //tr rarity = 5, minLevel = 6, maxLevel = 9, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Weapon, - subtype = BaseItem.WeaponModelType.Axe, + type = ItemDefinition.ItemType.Weapon, + subtype = ItemDefinition.ItemSubtype.Axe, icon = Res.ResourceLoader.GetTexture(138), }.statSlots[1][0].multipier = 3; @@ -2779,15 +2779,15 @@ public static void PopulateItems() new int[] {-1}, }) { - name = Translations.ItemDataBase_ItemDefinitions_253/*Golden Ring*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_103/*A Golden Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_253/*Golden Ring*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_103/*A Golden Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr rarity = 4, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 1, maxLevel = 4, canConsume = false, stackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Ring, + type = ItemDefinition.ItemType.Ring, icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that }; new BaseItem(new int[][] @@ -2801,15 +2801,15 @@ public static void PopulateItems() new int[] {-1}, }) { - name = Translations.ItemDataBase_ItemDefinitions_254/*Golden Locket*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_122/*A Locket of ancient times.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_123/*A Golden Locket that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_254/*Golden Locket*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_122/*A Locket of ancient times.*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_123/*A Golden Locket that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr rarity = 3, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 1, maxLevel = 4, canConsume = false, stackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Amulet, + type = ItemDefinition.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that }; new BaseItem(new int[][] @@ -2817,14 +2817,14 @@ public static void PopulateItems() new int[]{0,39} }) { - name = Translations.ItemDataBase_ItemDefinitions_255/*Dull Axe*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_255/*Dull Axe*/, //tr rarity = 0, minLevel = 15, maxLevel = 24, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Weapon, - subtype = BaseItem.WeaponModelType.Axe, + type = ItemDefinition.ItemType.Weapon, + subtype = ItemDefinition.ItemSubtype.Axe, icon = Res.ResourceLoader.GetTexture(138), }; new BaseItem(new int[][] @@ -2842,14 +2842,14 @@ public static void PopulateItems() new int[] {-1}, }) { - name = Translations.ItemDataBase_ItemDefinitions_256/*Precise Adjustments*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_257(15)/*Focus attack speed buff duration is increased by 16 seconds*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_256/*Precise Adjustments*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_257(15)/*Focus attack speed buff duration is increased by 16 seconds*/, //tr rarity = 7, minLevel = 5, maxLevel = 8, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Quiver, + type = ItemDefinition.ItemType.Quiver, icon = Res.ResourceLoader.GetTexture(98), onEquipCallback = () => ModdedPlayer.Stats.spell_focusOnAtkSpeedDuration.Add(16), onUnequipCallback = () => ModdedPlayer.Stats.spell_focusOnAtkSpeedDuration.Sub(16), @@ -2871,22 +2871,22 @@ public static void PopulateItems() new int[] {53,61 }, }) { - name = Translations.ItemDataBase_ItemDefinitions_258/*Rage*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_259(15)/*Increases maximum stacks of frenzy by 10*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_260/*Swords go brrrrrrttt*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_258/*Rage*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_259(15)/*Increases maximum stacks of frenzy by 10*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_260/*Swords go brrrrrrttt*/, //tr rarity = 7, minLevel = 6, maxLevel = 9, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Weapon, - subtype = BaseItem.WeaponModelType.GreatSword, + type = ItemDefinition.ItemType.Weapon, + subtype = ItemDefinition.ItemSubtype.GreatSword, icon = Res.ResourceLoader.GetTexture(88), onEquipCallback = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Add(15), onUnequipCallback = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Sub(15), }.statSlots[0][0].multipier = 5; - BaseItem jaggedRipper = new BaseItem(new int[][] + ItemDefinition jaggedRipper = new BaseItem(new int[][] { new int[] {1,2,3,4,57,}, new int[]{18}, @@ -2902,15 +2902,15 @@ public static void PopulateItems() new int[] {-1}, }) { - name = Translations.ItemDataBase_ItemDefinitions_261/*Jagged Edge*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_262("30%", "30%")/*Bash has 30% a chance to make enemies to bleed for 30% of damage dealt per second for duration of slow*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_261/*Jagged Edge*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_262("30%", "30%")/*Bash has 30% a chance to make enemies to bleed for 30% of damage dealt per second for duration of slow*/, //tr rarity = 7, minLevel = 1, maxLevel = 5, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Weapon, - subtype = BaseItem.WeaponModelType.Axe, + type = ItemDefinition.ItemType.Weapon, + subtype = ItemDefinition.ItemSubtype.Axe, icon = Res.ResourceLoader.GetTexture(138), onEquipCallback = () => ModdedPlayer.Stats.spell_bashBleedChance.Add(0.3f), onUnequipCallback = () => ModdedPlayer.Stats.spell_bashBleedChance.Sub(0.3f), @@ -2933,16 +2933,16 @@ public static void PopulateItems() new int[] {53,61 }, }) { - name = Translations.ItemDataBase_ItemDefinitions_263/*Bloodthirster*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_264/*Drenched in blood of many unfortunate foes.*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_265("2%")/*Bash lifesteals 2% of damage dealt into energy and health*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_263/*Bloodthirster*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_264/*Drenched in blood of many unfortunate foes.*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_265("2%")/*Bash lifesteals 2% of damage dealt into energy and health*/, //tr rarity = 7, minLevel = 1, maxLevel = 5, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Weapon, - subtype = BaseItem.WeaponModelType.LongSword, + type = ItemDefinition.ItemType.Weapon, + subtype = ItemDefinition.ItemSubtype.LongSword, icon = Res.ResourceLoader.GetTexture(89), onEquipCallback = () => ModdedPlayer.Stats.spell_bashLifesteal.Add(0.02f), onUnequipCallback = () => ModdedPlayer.Stats.spell_bashLifesteal.Sub(0.02f), @@ -2963,15 +2963,15 @@ public static void PopulateItems() new int[] {-1}, }) { - name = Translations.ItemDataBase_ItemDefinitions_266/*Frost Giant*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_267/*Melee hits freeze enemies*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_266/*Frost Giant*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_267/*Melee hits freeze enemies*/, //tr rarity = 7, minLevel = 1, maxLevel = 2, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Weapon, - subtype = BaseItem.WeaponModelType.Hammer, + type = ItemDefinition.ItemType.Weapon, + subtype = ItemDefinition.ItemSubtype.Hammer, icon = Res.ResourceLoader.GetTexture(109), onEquipCallback = () => { @@ -3001,14 +3001,14 @@ public static void PopulateItems() new int[] {-1}, }) { - name = Translations.ItemDataBase_ItemDefinitions_268/*Alexander's Shield*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_269/*Parry has a chance to be casted when getting it. Requires parry to be equipped*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_268/*Alexander's Shield*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_269/*Parry has a chance to be casted when getting it. Requires parry to be equipped*/, //tr rarity = 7, minLevel = 1, maxLevel = 2, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Shield, + type = ItemDefinition.ItemType.Shield, icon = Res.ResourceLoader.GetTexture(99), onEquipCallback = () => ModdedPlayer.Stats.spell_chanceToParryOnHit.value = true, onUnequipCallback = () => ModdedPlayer.Stats.spell_chanceToParryOnHit.value = false, @@ -3030,16 +3030,16 @@ public static void PopulateItems() new int[] {-1}, }) { - name = Translations.ItemDataBase_ItemDefinitions_270/*King Qruies*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_271/*A mighty sword seeking for it's owner*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_272/*Gain additional melee damage equal to the last instance of physical damage taken.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_270/*King Qruies*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_271/*A mighty sword seeking for it's owner*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_272/*Gain additional melee damage equal to the last instance of physical damage taken.*/, //tr rarity = 7, minLevel = 10, maxLevel = 12, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Weapon, - subtype = BaseItem.WeaponModelType.LongSword, + type = ItemDefinition.ItemType.Weapon, + subtype = ItemDefinition.ItemSubtype.LongSword, icon = Res.ResourceLoader.GetTexture(89), onEquipCallback = () => ModdedPlayer.Stats.i_KingQruiesSword.value = true, onUnequipCallback = () => ModdedPlayer.Stats.i_KingQruiesSword.value = false, @@ -3060,15 +3060,15 @@ public static void PopulateItems() new int[] {-1}, }) { - name = Translations.ItemDataBase_ItemDefinitions_273/*Grip of Sora*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_274/*Look, a porcupine! -Sora*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_275("20%", "+4")/*Multishot drains 20% less energy and shoots +4 projectiles. Additional projectiles do not increase the cost of multishot*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_273/*Grip of Sora*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_274/*Look, a porcupine! -Sora*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_275("20%", "+4")/*Multishot drains 20% less energy and shoots +4 projectiles. Additional projectiles do not increase the cost of multishot*/, //tr rarity = 7, minLevel = 10, maxLevel = 12, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Bracer, + type = ItemDefinition.ItemType.Bracer, icon = Res.ResourceLoader.GetTexture(93), onEquipCallback = () => ModdedPlayer.Stats.i_SoraBracers.value = true, onUnequipCallback = () => ModdedPlayer.Stats.i_SoraBracers.value = false, @@ -3084,15 +3084,15 @@ public static void PopulateItems() new int[] {-1,0}, }) { - name = Translations.ItemDataBase_ItemDefinitions_276/*Ancient Greatbow*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_277/*A massive and slow bow, deals extra damage*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_276/*Ancient Greatbow*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_277/*A massive and slow bow, deals extra damage*/, //tr rarity = 4, minLevel = 10, maxLevel = 12, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Weapon, - subtype = BaseItem.WeaponModelType.Greatbow, + type = ItemDefinition.ItemType.Weapon, + subtype = ItemDefinition.ItemSubtype.Greatbow, icon = Res.ResourceLoader.GetTexture(170), }.statSlots[0][0].multipier = -1.55f; @@ -3111,15 +3111,15 @@ public static void PopulateItems() new int[] {2,3,4,5,6,11,12,13,15,23,26,51,60,44,49,48}, }) { - name = Translations.ItemDataBase_ItemDefinitions_278/*Phoenix's Death*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_279/*Ignites enemies on hit*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_278/*Phoenix's Death*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_279/*Ignites enemies on hit*/, //tr rarity = 6, minLevel = 10, maxLevel = 12, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Weapon, - subtype = BaseItem.WeaponModelType.Greatbow, + type = ItemDefinition.ItemType.Weapon, + subtype = ItemDefinition.ItemSubtype.Greatbow, icon = Res.ResourceLoader.GetTexture(170), onEquipCallback = () => ModdedPlayer.Stats.i_greatBowIgnites.value = true, onUnequipCallback = () => ModdedPlayer.Stats.i_greatBowIgnites.value = false, @@ -3142,16 +3142,16 @@ public static void PopulateItems() new int[] {2,3,4,5,6,11,12,13,15,23,26,51,60,44,49,48}, }) { - name = Translations.ItemDataBase_ItemDefinitions_280/*Soulstring*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_281/*A massive and slow bow*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_282(100)/*Blood infused arrow now deals additional 20 points of damage per health consumed*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_280/*Soulstring*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_281/*A massive and slow bow*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_282(100)/*Blood infused arrow now deals additional 20 points of damage per health consumed*/, //tr rarity = 7, minLevel = 10, maxLevel = 12, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Weapon, - subtype = BaseItem.WeaponModelType.Greatbow, + type = ItemDefinition.ItemType.Weapon, + subtype = ItemDefinition.ItemSubtype.Greatbow, icon = Res.ResourceLoader.GetTexture(170), onEquipCallback = () => ModdedPlayer.Stats.spell_bia_HealthDmMult.Add(100), onUnequipCallback = () => ModdedPlayer.Stats.spell_bia_HealthDmMult.Sub(100), @@ -3164,15 +3164,15 @@ public static void PopulateItems() new int[] {2,40,0}, }) { - name = Translations.ItemDataBase_ItemDefinitions_283/*Greatbow*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_277/*A massive and slow bow, deals extra damage*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_283/*Greatbow*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_277/*A massive and slow bow, deals extra damage*/, //tr rarity = 2, minLevel = 25, maxLevel = 28, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Weapon, - subtype = BaseItem.WeaponModelType.Greatbow, + type = ItemDefinition.ItemType.Weapon, + subtype = ItemDefinition.ItemSubtype.Greatbow, icon = Res.ResourceLoader.GetTexture(170), }.statSlots[0][0].multipier = -2.7f; @@ -3193,15 +3193,15 @@ public static void PopulateItems() new int[] {-1}, }) { - name = Translations.ItemDataBase_ItemDefinitions_284/*Withered Crown*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_285/*Worn by Hazard.*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_286("4")/*A single cast of blood infused arrow affects 4 more projectiles*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_284/*Withered Crown*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_285/*Worn by Hazard.*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_286("4")/*A single cast of blood infused arrow affects 4 more projectiles*/, //tr rarity = 7, minLevel = 10, maxLevel = 12, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Helmet, + type = ItemDefinition.ItemType.Helmet, icon = Res.ResourceLoader.GetTexture(91), onEquipCallback = () => ModdedPlayer.Stats.i_HazardCrown.value = true, onUnequipCallback = () => ModdedPlayer.Stats.i_HazardCrown.value = false, @@ -3215,13 +3215,13 @@ public static void PopulateItems() new int[] {43,16,17,37,47 }, }) { - name = Translations.ItemDataBase_ItemDefinitions_287/*Novice Magic Caster's Bracers*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_287/*Novice Magic Caster's Bracers*/, //tr rarity = 4, minLevel = 1, maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Bracer, + type = ItemDefinition.ItemType.Bracer, icon = Res.ResourceLoader.GetTexture(93), }; new BaseItem(new int[][] @@ -3233,13 +3233,13 @@ public static void PopulateItems() new int[] {43,16,2 }, }) { - name = Translations.ItemDataBase_ItemDefinitions_288/*Ranger's Bracers*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_288/*Ranger's Bracers*/, //tr rarity = 4, minLevel = 1, maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Bracer, + type = ItemDefinition.ItemType.Bracer, icon = Res.ResourceLoader.GetTexture(93), }; new BaseItem(new int[][] @@ -3251,13 +3251,13 @@ public static void PopulateItems() new int[] {43,1,65 }, }) { - name = Translations.ItemDataBase_ItemDefinitions_289/*Swordsman's Bracers*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_289/*Swordsman's Bracers*/, //tr rarity = 4, minLevel = 1, maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Bracer, + type = ItemDefinition.ItemType.Bracer, icon = Res.ResourceLoader.GetTexture(93), }; new BaseItem(new int[][] @@ -3271,13 +3271,13 @@ public static void PopulateItems() new int[] {-1}, }) { - name = Translations.ItemDataBase_ItemDefinitions_290/*Healer's Bracers*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_290/*Healer's Bracers*/, //tr rarity = 5, minLevel = 1, maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Bracer, + type = ItemDefinition.ItemType.Bracer, icon = Res.ResourceLoader.GetTexture(93), }; new BaseItem(new int[][] @@ -3289,13 +3289,13 @@ public static void PopulateItems() new int[] {43,4 }, }) { - name = Translations.ItemDataBase_ItemDefinitions_291/*Novice Magic Caster's Gloves*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_291/*Novice Magic Caster's Gloves*/, //tr rarity = 4, minLevel = 1, maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Glove, + type = ItemDefinition.ItemType.Glove, icon = Res.ResourceLoader.GetTexture(86), }; new BaseItem(new int[][] @@ -3307,13 +3307,13 @@ public static void PopulateItems() new int[] {43,2 }, }) { - name = Translations.ItemDataBase_ItemDefinitions_292/*Ranger's Gloves*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_292/*Ranger's Gloves*/, //tr rarity = 4, minLevel = 1, maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Glove, + type = ItemDefinition.ItemType.Glove, icon = Res.ResourceLoader.GetTexture(86), }; new BaseItem(new int[][] @@ -3325,13 +3325,13 @@ public static void PopulateItems() new int[] {43,1,65 }, }) { - name = Translations.ItemDataBase_ItemDefinitions_293/*Swordsman's Gloves*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_293/*Swordsman's Gloves*/, //tr rarity = 4, minLevel = 1, maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Glove, + type = ItemDefinition.ItemType.Glove, icon = Res.ResourceLoader.GetTexture(86), }; new BaseItem(new int[][] @@ -3345,13 +3345,13 @@ public static void PopulateItems() new int[] {-1}, }) { - name = Translations.ItemDataBase_ItemDefinitions_294/*Healer's Gloves*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_294/*Healer's Gloves*/, //tr rarity = 5, minLevel = 1, maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Glove, + type = ItemDefinition.ItemType.Glove, icon = Res.ResourceLoader.GetTexture(86), }; new BaseItem(new int[][] @@ -3366,13 +3366,13 @@ public static void PopulateItems() new int[] {-1}, }) { - name = Translations.ItemDataBase_ItemDefinitions_295/*Fate Gloves*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_295/*Fate Gloves*/, //tr rarity = 6, minLevel = 1, maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Glove, + type = ItemDefinition.ItemType.Glove, icon = Res.ResourceLoader.GetTexture(86), }; new BaseItem(new int[][] @@ -3387,13 +3387,13 @@ public static void PopulateItems() new int[] {-1}, }) { - name = Translations.ItemDataBase_ItemDefinitions_296/*Fate Boots*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_296/*Fate Boots*/, //tr rarity = 6, minLevel = 1, maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Boot, + type = ItemDefinition.ItemType.Boot, icon = Res.ResourceLoader.GetTexture(85), }; new BaseItem(new int[][] @@ -3410,19 +3410,19 @@ public static void PopulateItems() new int[] {-1}, }) { - name = Translations.ItemDataBase_ItemDefinitions_297/*Greed*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_298/*Automatically casts wide reach every second*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_297/*Greed*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_298/*Automatically casts wide reach every second*/, //tr rarity = 7, minLevel = 1, maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Boot, + type = ItemDefinition.ItemType.Boot, icon = Res.ResourceLoader.GetTexture(85), onEquipCallback = () => ModdedPlayer.Stats.i_isGreed.value = true, onUnequipCallback = () => ModdedPlayer.Stats.i_isGreed.value = false, }; - BaseItem titaniumleggins = new BaseItem(new int[][] + ItemDefinition titaniumleggins = new BaseItem(new int[][] { new int[] { 16}, new int[] {31}, @@ -3434,14 +3434,14 @@ public static void PopulateItems() new int[] {-1}, }) { - name = Translations.ItemDataBase_ItemDefinitions_299/*Titanium Leggins*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_300/*Heavily armored leg protection. Suffers from the same weaknesses as spartan armor.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_299/*Titanium Leggins*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_300/*Heavily armored leg protection. Suffers from the same weaknesses as spartan armor.*/, //tr rarity = 6, minLevel = 1, maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Pants, + type = ItemDefinition.ItemType.Pants, icon = Res.ResourceLoader.GetTexture(87), }; titaniumleggins.statSlots[0][0].multipier = 3; @@ -3455,13 +3455,13 @@ public static void PopulateItems() new int[] {65,0}, }) { - name = Translations.ItemDataBase_ItemDefinitions_301/*Iron Gauntlet*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_301/*Iron Gauntlet*/, //tr rarity = 2, minLevel = 1, maxLevel = 2, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Glove, + type = ItemDefinition.ItemType.Glove, icon = Res.ResourceLoader.GetTexture(86), }; @@ -3480,15 +3480,15 @@ public static void PopulateItems() new int[] {-1 }, }) { - name = Translations.ItemDataBase_ItemDefinitions_302/*Magefist*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_303/*Gloves that amplify magic*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_304/*Spells deal double damage but have double the energy cost*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_302/*Magefist*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_303/*Gloves that amplify magic*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_304/*Spells deal double damage but have double the energy cost*/, //tr rarity = 7, minLevel = 1, maxLevel = 2, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Glove, + type = ItemDefinition.ItemType.Glove, icon = Res.ResourceLoader.GetTexture(86), onEquipCallback = () => { ModdedPlayer.Stats.spellDamageMult.valueMultiplicative *= 2f; ModdedPlayer.Stats.spellCost.valueMultiplicative *= 2f; }, onUnequipCallback = () => { ModdedPlayer.Stats.spellDamageMult.valueMultiplicative /= 2f; ModdedPlayer.Stats.spellCost.valueMultiplicative /= 2f; } @@ -3504,14 +3504,14 @@ public static void PopulateItems() new int[] {43 }, }) { - name = Translations.ItemDataBase_ItemDefinitions_305/*Armored Boots*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_306/*Heavily armored, resistant to damage boots.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_305/*Armored Boots*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_306/*Heavily armored, resistant to damage boots.*/, //tr rarity = 5, minLevel = 10, maxLevel = 14, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Boot, + type = ItemDefinition.ItemType.Boot, icon = Res.ResourceLoader.GetTexture(85), }; new BaseItem(new int[][] @@ -3527,14 +3527,14 @@ public static void PopulateItems() new int[] {-1 }, }) { - name = Translations.ItemDataBase_ItemDefinitions_307/*Broken Protector*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_308/*This shield failed to protect those behind it.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_307/*Broken Protector*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_308/*This shield failed to protect those behind it.*/, //tr rarity = 6, minLevel = 5, maxLevel = 8, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Shield, + type = ItemDefinition.ItemType.Shield, icon = Res.ResourceLoader.GetTexture(99), }.statSlots[0][0].multipier = 2; @@ -3550,14 +3550,14 @@ public static void PopulateItems() new int[] {47,4,5,6,7,61,17,0,0,0,0,2,56,57,49,64}, }) { - name = Translations.ItemDataBase_ItemDefinitions_309/*Forbidden Scroll*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_310/*Too powerful to be kept.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_309/*Forbidden Scroll*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_310/*Too powerful to be kept.*/, //tr rarity = 6, minLevel = 1, maxLevel = 1, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.SpellScroll, + type = ItemDefinition.ItemType.SpellScroll, icon = Res.ResourceLoader.GetTexture(110), }; @@ -3572,14 +3572,14 @@ public static void PopulateItems() new int[] {-1}, }) { - name = Translations.ItemDataBase_ItemDefinitions_311/*Doom Pauldrons*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_312/*Despite the cool name, they are completely normal pair of shoulder armor.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_311/*Doom Pauldrons*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_312/*Despite the cool name, they are completely normal pair of shoulder armor.*/, //tr rarity = 6, minLevel = 5, maxLevel = 9, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.ShoulderArmor, + type = ItemDefinition.ItemType.ShoulderArmor, icon = Res.ResourceLoader.GetTexture(95), }; new BaseItem(new int[][] @@ -3596,15 +3596,15 @@ public static void PopulateItems() new int[] {-1}, }) { - name = Translations.ItemDataBase_ItemDefinitions_313/*Wind armor*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_314/*Run fast like the wind*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_315("20%", "35%", "2000", "5%")/*Upon dodging an attack, gain 20% movement speed, 35% damage, 2000 armor, and heal for 5% of your maximum health*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_313/*Wind armor*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_314/*Run fast like the wind*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_315("20%", "35%", "2000", "5%")/*Upon dodging an attack, gain 20% movement speed, 35% damage, 2000 armor, and heal for 5% of your maximum health*/, //tr rarity = 7, minLevel = 5, maxLevel = 9, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.ChestArmor, + type = ItemDefinition.ItemType.ChestArmor, icon = Res.ResourceLoader.GetTexture(96), onEquipCallback = () => ModdedPlayer.Stats.i_isWindArmor.value = true, onUnequipCallback = () => ModdedPlayer.Stats.i_isWindArmor.value = false, @@ -3621,14 +3621,14 @@ public static void PopulateItems() //new int[] {29,30,48}, }) { - name = Translations.ItemDataBase_ItemDefinitions_316/*Crusader Helmet*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_317/*You're talking mad shit for someone within crusading distance*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_316/*Crusader Helmet*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_317/*You're talking mad shit for someone within crusading distance*/, //tr rarity = 5, minLevel = 2, maxLevel = 6, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Helmet, + type = ItemDefinition.ItemType.Helmet, icon = Res.ResourceLoader.GetTexture(91), }; @@ -3641,14 +3641,14 @@ public static void PopulateItems() //new int[] {29,30,48}, }) { - name = Translations.ItemDataBase_ItemDefinitions_318/*Hood*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_319/*Hats provide usefull stat bonuses*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_318/*Hood*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_319/*Hats provide usefull stat bonuses*/, //tr rarity = 3, minLevel = 2, maxLevel = 6, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Helmet, + type = ItemDefinition.ItemType.Helmet, icon = Res.ResourceLoader.GetTexture(91), }; new BaseItem(new int[][] @@ -3667,16 +3667,16 @@ public static void PopulateItems() new int[] {2003,-1}, }) { - name = Translations.ItemDataBase_ItemDefinitions_320/*The Spark of Light in The Darkness*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_321/*Magic Scroll of great quality*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_322/*Written in a language i canno't understand. Decyphering this text is impossible, so is the full utilization of the scroll.*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_323("5")/*If a black hole hits 5 or more enemies during it's lifetime, a ball lightning is summoned after it ends.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_320/*The Spark of Light in The Darkness*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_321/*Magic Scroll of great quality*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_322/*Written in a language i canno't understand. Decyphering this text is impossible, so is the full utilization of the scroll.*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_323("5")/*If a black hole hits 5 or more enemies during it's lifetime, a ball lightning is summoned after it ends.*/, //tr rarity = 7, minLevel = 15, maxLevel = 20, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.SpellScroll, + type = ItemDefinition.ItemType.SpellScroll, icon = Res.ResourceLoader.GetTexture(110), onEquipCallback = () => ModdedPlayer.Stats.i_sparkOfLightAfterDark.value = true, onUnequipCallback = () => ModdedPlayer.Stats.i_sparkOfLightAfterDark.value = false @@ -3695,10 +3695,10 @@ public static void PopulateItems() new int[] {-1}, }) { - name = Translations.ItemDataBase_ItemDefinitions_324/*Purgatory*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_325/*Golden ring with a bone chilling feel about it. This thing will only bring harm, but not to the wearer*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_326/*Ring made of Netherrite*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_327("300%")/*Purge increases all of your damage based on missing health. Up to 300%*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_324/*Purgatory*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_325/*Golden ring with a bone chilling feel about it. This thing will only bring harm, but not to the wearer*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_326/*Ring made of Netherrite*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_327("300%")/*Purge increases all of your damage based on missing health. Up to 300%*/, //tr rarity = 7, minLevel = 20, maxLevel = 26, @@ -3706,7 +3706,7 @@ public static void PopulateItems() stackSize = 1, onEquipCallback = () => ModdedPlayer.Stats.spell_purgeDamageBonus.value = true, onUnequipCallback = () => ModdedPlayer.Stats.spell_purgeDamageBonus.value = false, - type = BaseItem.ItemType.Ring, + type = ItemDefinition.ItemType.Ring, icon = Res.ResourceLoader.GetTexture(90), }.SetDropOnlyCannibals(); @@ -3727,16 +3727,16 @@ public static void PopulateItems() new int[] {2,3,4,5,6,11,12,13,15,23,26,51,60,44,49,48}, }) { - name = Translations.ItemDataBase_ItemDefinitions_328/*Eruption*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_329/*Incarnation of devastation*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_330/*Headshots cause explosions*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_328/*Eruption*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_329/*Incarnation of devastation*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_330/*Headshots cause explosions*/, //tr rarity = 7, minLevel = 10, maxLevel = 12, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Weapon, - subtype = BaseItem.WeaponModelType.Greatbow, + type = ItemDefinition.ItemType.Weapon, + subtype = ItemDefinition.ItemSubtype.Greatbow, icon = Res.ResourceLoader.GetTexture(170), onEquipCallback = () => ModdedPlayer.Stats.i_EruptionBow.value = true, onUnequipCallback = () => ModdedPlayer.Stats.i_EruptionBow.value = false, @@ -3759,16 +3759,16 @@ public static void PopulateItems() new int[] {2,3,4,5,6,11,12,13,15,23,26,51,60,44,49,48}, }) { - name = Translations.ItemDataBase_ItemDefinitions_331/*Archangel*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_332/*Spread the goodness*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_333("30")/*Shooting another player causes them to be greatly empowered for 30 seconds*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_331/*Archangel*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_332/*Spread the goodness*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_333("30")/*Shooting another player causes them to be greatly empowered for 30 seconds*/, //tr rarity = 7, minLevel = 10, maxLevel = 12, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Weapon, - subtype = BaseItem.WeaponModelType.Greatbow, + type = ItemDefinition.ItemType.Weapon, + subtype = ItemDefinition.ItemSubtype.Greatbow, icon = Res.ResourceLoader.GetTexture(170), onEquipCallback = () => ModdedPlayer.Stats.i_ArchangelBow.value = true, onUnequipCallback = () => ModdedPlayer.Stats.i_ArchangelBow.value = false, @@ -3785,15 +3785,15 @@ public static void PopulateItems() new int[] {-1 }, }) { - name = Translations.ItemDataBase_ItemDefinitions_334/*The Executioner*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_335/*A sword for decapitating*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_334/*The Executioner*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_335/*A sword for decapitating*/, //tr rarity = 4, minLevel = 25, maxLevel = 27, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Weapon, - subtype = BaseItem.WeaponModelType.LongSword, + type = ItemDefinition.ItemType.Weapon, + subtype = ItemDefinition.ItemSubtype.LongSword, icon = Res.ResourceLoader.GetTexture(89), }; new BaseItem(new int[][] @@ -3813,9 +3813,9 @@ public static void PopulateItems() new int[] {-1}, }) { - name = Translations.ItemDataBase_ItemDefinitions_336/*Moon Cuirass*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_337/*A piece of armor designed for an archer. */, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_338("120")/*Landing a headshot with an arrow without the homing effect of seeking arrow at a distance greater than 120 feet deals five-fold damage, and hits the enemy two extra times*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_336/*Moon Cuirass*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_337/*A piece of armor designed for an archer. */, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_338("120")/*Landing a headshot with an arrow without the homing effect of seeking arrow at a distance greater than 120 feet deals five-fold damage, and hits the enemy two extra times*/, //tr rarity = 7, minLevel = 20, maxLevel = 22, @@ -3823,7 +3823,7 @@ public static void PopulateItems() stackSize = 1, onEquipCallback = () => ModdedPlayer.Stats.perk_trueAimUpgrade.value = true, onUnequipCallback = () => ModdedPlayer.Stats.perk_trueAimUpgrade.value = false, - type = BaseItem.ItemType.ChestArmor, + type = ItemDefinition.ItemType.ChestArmor, icon = Res.ResourceLoader.GetTexture(96), }; new BaseItem(new int[][] @@ -3844,9 +3844,9 @@ public static void PopulateItems() new int[] {-1}, }) { - name = Translations.ItemDataBase_ItemDefinitions_339/*Thornmail*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_340/*Spiked death on the outside, really comfy on the inside*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_341/*Thorns deal double damage*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_339/*Thornmail*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_340/*Spiked death on the outside, really comfy on the inside*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_341/*Thorns deal double damage*/, //tr rarity = 7, minLevel = 20, maxLevel = 22, @@ -3854,7 +3854,7 @@ public static void PopulateItems() stackSize = 1, onEquipCallback = () => ModdedPlayer.Stats.thornsDmgMult.valueMultiplicative *= 2, onUnequipCallback = () => ModdedPlayer.Stats.thornsDmgMult.valueMultiplicative /= 2, - type = BaseItem.ItemType.ChestArmor, + type = ItemDefinition.ItemType.ChestArmor, icon = Res.ResourceLoader.GetTexture(96), }; @@ -3863,15 +3863,15 @@ public static void PopulateItems() new int[] {1 }, }) { - name = Translations.ItemDataBase_ItemDefinitions_342/*Rusty Polearm*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_343/*Used by the Ubersreik Five*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_342/*Rusty Polearm*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_343/*Used by the Ubersreik Five*/, //tr rarity = 1, minLevel = 10, maxLevel = 16, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Weapon, - subtype = BaseItem.WeaponModelType.Polearm, + type = ItemDefinition.ItemType.Weapon, + subtype = ItemDefinition.ItemSubtype.Polearm, icon = Res.ResourceLoader.GetTexture(181), }; new BaseItem(new int[][] @@ -3883,113 +3883,113 @@ public static void PopulateItems() new int[] {39,40,41,42,44,8,18,65 }, }) { - name = Translations.ItemDataBase_ItemDefinitions_344/*Giant Polearm*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_345/*Used by the Sir Kruber*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_344/*Giant Polearm*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_345/*Used by the Sir Kruber*/, //tr rarity = 4, minLevel = 20, maxLevel = 24, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Weapon, - subtype = BaseItem.WeaponModelType.Polearm, + type = ItemDefinition.ItemType.Weapon, + subtype = ItemDefinition.ItemSubtype.Polearm, icon = Res.ResourceLoader.GetTexture(181), }; //Feathers new BaseItem(new int[][] { }) { - name = Translations.ItemDataBase_ItemDefinitions_346/*Crude Feather*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_346/*Crude Feather*/, //tr description = - Translations.ItemDataBase_ItemDefinitions_582/*If equipped on a weapon, increases ranged damage by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.Weapon, 1).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_583/*If equipped on boots, increases movement speed by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.Boot, 1).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_584/*If equipped on a helmet, increases critical hit chance by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.Helmet, 1).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_585/*If equipped on accessories, increases ranged armor piercing by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.Amulet, 1).ToString("N") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_586/*If equipped in other slots, increases agility by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.ChestArmor, 1).ToString("N"), //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr + Translations.ItemDatabase_ItemDefinitions_582/*If equipped on a weapon, increases ranged damage by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.Weapon, 1).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_583/*If equipped on boots, increases movement speed by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.Boot, 1).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_584/*If equipped on a helmet, increases critical hit chance by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.Helmet, 1).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_585/*If equipped on accessories, increases ranged armor piercing by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.Amulet, 1).ToString("N") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_586/*If equipped in other slots, increases agility by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.ChestArmor, 1).ToString("N"), //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr rarity = 3, minLevel = 20, maxLevel = 21, canConsume = false, stackSize = 100, subtype = 1, - type = BaseItem.ItemType.Material, + type = ItemDefinition.ItemType.Material, icon = Res.ResourceLoader.GetTexture(185), }; new BaseItem(new int[][] { }) { - name = Translations.ItemDataBase_ItemDefinitions_348/*Soft Feather*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_348/*Soft Feather*/, //tr description = - Translations.ItemDataBase_ItemDefinitions_582/*If equipped on a weapon, increases ranged damage by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.Weapon, 1).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_583/*If equipped on boots, increases movement speed by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.Boot, 1).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_584/*If equipped on a helmet, increases critical hit chance by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.Helmet, 1).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_585/*If equipped on accessories, increases ranged armor piercing by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.Amulet, 1).ToString("N") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_586/*If equipped in other slots, increases agility by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.ChestArmor, 1).ToString("N"), //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr + Translations.ItemDatabase_ItemDefinitions_582/*If equipped on a weapon, increases ranged damage by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.Weapon, 1).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_583/*If equipped on boots, increases movement speed by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.Boot, 1).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_584/*If equipped on a helmet, increases critical hit chance by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.Helmet, 1).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_585/*If equipped on accessories, increases ranged armor piercing by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.Amulet, 1).ToString("N") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_586/*If equipped in other slots, increases agility by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.ChestArmor, 1).ToString("N"), //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr rarity = 4, minLevel = 20, maxLevel = 21, canConsume = false, stackSize = 100, subtype = 1, - type = BaseItem.ItemType.Material, + type = ItemDefinition.ItemType.Material, icon = Res.ResourceLoader.GetTexture(185), }; new BaseItem(new int[][] { }) { - name = Translations.ItemDataBase_ItemDefinitions_349/*Ornate Feather*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_349/*Ornate Feather*/, //tr description = - Translations.ItemDataBase_ItemDefinitions_582/*If equipped on a weapon, increases ranged damage by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.Weapon, 1).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_583/*If equipped on boots, increases movement speed by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.Boot, 1).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_584/*If equipped on a helmet, increases critical hit chance by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.Helmet, 1).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_585/*If equipped on accessories, increases ranged armor piercing by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.Amulet, 1).ToString("N") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_586/*If equipped in other slots, increases agility by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.ChestArmor, 1).ToString("N"), //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr + Translations.ItemDatabase_ItemDefinitions_582/*If equipped on a weapon, increases ranged damage by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.Weapon, 1).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_583/*If equipped on boots, increases movement speed by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.Boot, 1).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_584/*If equipped on a helmet, increases critical hit chance by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.Helmet, 1).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_585/*If equipped on accessories, increases ranged armor piercing by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.Amulet, 1).ToString("N") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_586/*If equipped in other slots, increases agility by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.ChestArmor, 1).ToString("N"), //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr rarity = 5, minLevel = 20, maxLevel = 21, canConsume = false, stackSize = 100, subtype = 1, - type = BaseItem.ItemType.Material, + type = ItemDefinition.ItemType.Material, icon = Res.ResourceLoader.GetTexture(185), }; new BaseItem(new int[][] { }) { - name = Translations.ItemDataBase_ItemDefinitions_350/*Wonderful Feather*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_350/*Wonderful Feather*/, //tr description = - Translations.ItemDataBase_ItemDefinitions_582/*If equipped on a weapon, increases ranged damage by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.Weapon, 1).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_583/*If equipped on boots, increases movement speed by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.Boot, 1).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_584/*If equipped on a helmet, increases critical hit chance by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.Helmet, 1).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_585/*If equipped on accessories, increases ranged armor piercing by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.Amulet, 1).ToString("N") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_586/*If equipped in other slots, increases agility by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.ChestArmor, 1).ToString("N"), //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr + Translations.ItemDatabase_ItemDefinitions_582/*If equipped on a weapon, increases ranged damage by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.Weapon, 1).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_583/*If equipped on boots, increases movement speed by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.Boot, 1).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_584/*If equipped on a helmet, increases critical hit chance by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.Helmet, 1).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_585/*If equipped on accessories, increases ranged armor piercing by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.Amulet, 1).ToString("N") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_586/*If equipped in other slots, increases agility by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.ChestArmor, 1).ToString("N"), //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr rarity = 6, minLevel = 20, maxLevel = 21, canConsume = false, stackSize = 100, subtype = 1, - type = BaseItem.ItemType.Material, + type = ItemDefinition.ItemType.Material, icon = Res.ResourceLoader.GetTexture(185), }; new BaseItem(new int[][] { }) { - name = Translations.ItemDataBase_ItemDefinitions_351/*White Crow's Feather*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_351/*White Crow's Feather*/, //tr description = - Translations.ItemDataBase_ItemDefinitions_582/*If equipped on a weapon, increases ranged damage by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.Weapon, 1).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_583/*If equipped on boots, increases movement speed by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.Boot, 1).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_584/*If equipped on a helmet, increases critical hit chance by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.Helmet, 1).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_585/*If equipped on accessories, increases ranged armor piercing by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.Amulet, 1).ToString("N") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_586/*If equipped in other slots, increases agility by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.ChestArmor, 1).ToString("N"), //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr + Translations.ItemDatabase_ItemDefinitions_582/*If equipped on a weapon, increases ranged damage by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.Weapon, 1).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_583/*If equipped on boots, increases movement speed by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.Boot, 1).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_584/*If equipped on a helmet, increases critical hit chance by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.Helmet, 1).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_585/*If equipped on accessories, increases ranged armor piercing by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.Amulet, 1).ToString("N") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_586/*If equipped in other slots, increases agility by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.ChestArmor, 1).ToString("N"), //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr rarity = 7, minLevel = 20, maxLevel = 21, canConsume = false, stackSize = 100, subtype = 1, - type = BaseItem.ItemType.Material, + type = ItemDefinition.ItemType.Material, icon = Res.ResourceLoader.GetTexture(185), }; @@ -3997,98 +3997,98 @@ public static void PopulateItems() new BaseItem(new int[][] { }) { - name = Translations.ItemDataBase_ItemDefinitions_352/*Reef Shark*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_352/*Reef Shark*/, //tr description = - Translations.ItemDataBase_ItemDefinitions_587/*If equipped on a weapon, increases melee damage by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.Weapon, 2).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_588/*If equipped on boots, decreases damage taken by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.Boot, 2).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_589/*If equipped on a helmet, increases cattack speed by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.Helmet, 2).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_590/*If equipped on accessories, increases melee armor piercing by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.Amulet, 2).ToString("N") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_591/*If equipped in other slots, increases strength by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.ChestArmor, 2).ToString("N"), //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr + Translations.ItemDatabase_ItemDefinitions_587/*If equipped on a weapon, increases melee damage by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.Weapon, 2).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_588/*If equipped on boots, decreases damage taken by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.Boot, 2).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_589/*If equipped on a helmet, increases cattack speed by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.Helmet, 2).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_590/*If equipped on accessories, increases melee armor piercing by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.Amulet, 2).ToString("N") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_591/*If equipped in other slots, increases strength by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.ChestArmor, 2).ToString("N"), //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr rarity = 3, minLevel = 20, maxLevel = 21, canConsume = false, stackSize = 100, subtype = 2, - type = BaseItem.ItemType.Material, + type = ItemDefinition.ItemType.Material, icon = Res.ResourceLoader.GetTexture(186), }; new BaseItem(new int[][] { }) { - name = Translations.ItemDataBase_ItemDefinitions_353/*Tiger Shark Tooth*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_353/*Tiger Shark Tooth*/, //tr description = - Translations.ItemDataBase_ItemDefinitions_587/*If equipped on a weapon, increases melee damage by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.Weapon, 2).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_588/*If equipped on boots, decreases damage taken by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.Boot, 2).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_589/*If equipped on a helmet, increases cattack speed by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.Helmet, 2).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_590/*If equipped on accessories, increases melee armor piercing by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.Amulet, 2).ToString("N") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_591/*If equipped in other slots, increases strength by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.ChestArmor, 2).ToString("N"), //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr + Translations.ItemDatabase_ItemDefinitions_587/*If equipped on a weapon, increases melee damage by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.Weapon, 2).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_588/*If equipped on boots, decreases damage taken by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.Boot, 2).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_589/*If equipped on a helmet, increases cattack speed by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.Helmet, 2).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_590/*If equipped on accessories, increases melee armor piercing by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.Amulet, 2).ToString("N") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_591/*If equipped in other slots, increases strength by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.ChestArmor, 2).ToString("N"), //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr rarity = 4, minLevel = 20, maxLevel = 21, canConsume = false, stackSize = 100, subtype = 2, - type = BaseItem.ItemType.Material, + type = ItemDefinition.ItemType.Material, icon = Res.ResourceLoader.GetTexture(186), }; new BaseItem(new int[][] { }) { - name = Translations.ItemDataBase_ItemDefinitions_354/*Whale Shark Tooth*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_354/*Whale Shark Tooth*/, //tr description = - Translations.ItemDataBase_ItemDefinitions_587/*If equipped on a weapon, increases melee damage by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.Weapon, 2).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_588/*If equipped on boots, decreases damage taken by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.Boot, 2).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_589/*If equipped on a helmet, increases cattack speed by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.Helmet, 2).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_590/*If equipped on accessories, increases melee armor piercing by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.Amulet, 2).ToString("N") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_591/*If equipped in other slots, increases strength by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.ChestArmor, 2).ToString("N"), //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr + Translations.ItemDatabase_ItemDefinitions_587/*If equipped on a weapon, increases melee damage by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.Weapon, 2).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_588/*If equipped on boots, decreases damage taken by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.Boot, 2).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_589/*If equipped on a helmet, increases cattack speed by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.Helmet, 2).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_590/*If equipped on accessories, increases melee armor piercing by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.Amulet, 2).ToString("N") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_591/*If equipped in other slots, increases strength by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.ChestArmor, 2).ToString("N"), //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr rarity = 5, minLevel = 20, maxLevel = 21, canConsume = false, stackSize = 100, subtype = 2, - type = BaseItem.ItemType.Material, + type = ItemDefinition.ItemType.Material, icon = Res.ResourceLoader.GetTexture(186), }; new BaseItem(new int[][] { }) { - name = Translations.ItemDataBase_ItemDefinitions_355/*Great White Shark Tooth*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_355/*Great White Shark Tooth*/, //tr description = - Translations.ItemDataBase_ItemDefinitions_587/*If equipped on a weapon, increases melee damage by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.Weapon, 2).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_588/*If equipped on boots, decreases damage taken by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.Boot, 2).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_589/*If equipped on a helmet, increases cattack speed by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.Helmet, 2).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_590/*If equipped on accessories, increases melee armor piercing by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.Amulet, 2).ToString("N") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_591/*If equipped in other slots, increases strength by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.ChestArmor, 2).ToString("N"), //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr + Translations.ItemDatabase_ItemDefinitions_587/*If equipped on a weapon, increases melee damage by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.Weapon, 2).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_588/*If equipped on boots, decreases damage taken by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.Boot, 2).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_589/*If equipped on a helmet, increases cattack speed by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.Helmet, 2).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_590/*If equipped on accessories, increases melee armor piercing by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.Amulet, 2).ToString("N") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_591/*If equipped in other slots, increases strength by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.ChestArmor, 2).ToString("N"), //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr rarity = 6, minLevel = 20, maxLevel = 21, canConsume = false, stackSize = 100, subtype = 2, - type = BaseItem.ItemType.Material, + type = ItemDefinition.ItemType.Material, icon = Res.ResourceLoader.GetTexture(186), }; new BaseItem(new int[][] { }) { - name = Translations.ItemDataBase_ItemDefinitions_356/*Megalodon's Tooth*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_356/*Megalodon's Tooth*/, //tr description = - Translations.ItemDataBase_ItemDefinitions_587/*If equipped on a weapon, increases melee damage by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.Weapon, 2).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_588/*If equipped on boots, decreases damage taken by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.Boot, 2).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_589/*If equipped on a helmet, increases cattack speed by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.Helmet, 2).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_590/*If equipped on accessories, increases melee armor piercing by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.Amulet, 2).ToString("N") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_591/*If equipped in other slots, increases strength by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.ChestArmor, 2).ToString("N"), //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr + Translations.ItemDatabase_ItemDefinitions_587/*If equipped on a weapon, increases melee damage by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.Weapon, 2).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_588/*If equipped on boots, decreases damage taken by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.Boot, 2).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_589/*If equipped on a helmet, increases cattack speed by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.Helmet, 2).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_590/*If equipped on accessories, increases melee armor piercing by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.Amulet, 2).ToString("N") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_591/*If equipped in other slots, increases strength by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.ChestArmor, 2).ToString("N"), //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr rarity = 7, minLevel = 20, maxLevel = 21, canConsume = false, stackSize = 100, subtype = 2, - type = BaseItem.ItemType.Material, + type = ItemDefinition.ItemType.Material, icon = Res.ResourceLoader.GetTexture(186), }; @@ -4096,196 +4096,196 @@ public static void PopulateItems() new BaseItem(new int[][] { }) { - name = Translations.ItemDataBase_ItemDefinitions_357/*Uncut Sapphire*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_357/*Uncut Sapphire*/, //tr description = - Translations.ItemDataBase_ItemDefinitions_592/*If equipped on a weapon, increases magic damage by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.Weapon, 3).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_593/*If equipped on boots, decreases spell cost by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.Boot, 3).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_594/*If equipped on a helmet, decreases spell cooldown by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.Helmet, 3).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_595/*If equipped on accessories, increases energy on hit by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.Amulet, 3).ToString("N") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_596/*If equipped in other slots, increases intelligence by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.ChestArmor, 3).ToString("N"), //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr + Translations.ItemDatabase_ItemDefinitions_592/*If equipped on a weapon, increases magic damage by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.Weapon, 3).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_593/*If equipped on boots, decreases spell cost by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.Boot, 3).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_594/*If equipped on a helmet, decreases spell cooldown by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.Helmet, 3).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_595/*If equipped on accessories, increases energy on hit by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.Amulet, 3).ToString("N") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_596/*If equipped in other slots, increases intelligence by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.ChestArmor, 3).ToString("N"), //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr rarity = 3, minLevel = 20, maxLevel = 21, canConsume = false, stackSize = 100, subtype = 3, - type = BaseItem.ItemType.Material, + type = ItemDefinition.ItemType.Material, icon = Res.ResourceLoader.GetTexture(187), }; new BaseItem(new int[][] { }) { - name = Translations.ItemDataBase_ItemDefinitions_358/*Clear Sapphire*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_358/*Clear Sapphire*/, //tr description = - Translations.ItemDataBase_ItemDefinitions_592/*If equipped on a weapon, increases magic damage by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.Weapon, 3).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_593/*If equipped on boots, decreases spell cost by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.Boot, 3).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_594/*If equipped on a helmet, decreases spell cooldown by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.Helmet, 3).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_595/*If equipped on accessories, increases energy on hit by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.Amulet, 3).ToString("N") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_596/*If equipped in other slots, increases intelligence by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.ChestArmor, 3).ToString("N"), //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr + Translations.ItemDatabase_ItemDefinitions_592/*If equipped on a weapon, increases magic damage by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.Weapon, 3).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_593/*If equipped on boots, decreases spell cost by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.Boot, 3).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_594/*If equipped on a helmet, decreases spell cooldown by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.Helmet, 3).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_595/*If equipped on accessories, increases energy on hit by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.Amulet, 3).ToString("N") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_596/*If equipped in other slots, increases intelligence by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.ChestArmor, 3).ToString("N"), //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr rarity = 4, minLevel = 20, maxLevel = 21, canConsume = false, stackSize = 100, subtype = 3, - type = BaseItem.ItemType.Material, + type = ItemDefinition.ItemType.Material, icon = Res.ResourceLoader.GetTexture(187), }; new BaseItem(new int[][] { }) { - name = Translations.ItemDataBase_ItemDefinitions_359/*Shiny Sapphire*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_359/*Shiny Sapphire*/, //tr description = - Translations.ItemDataBase_ItemDefinitions_592/*If equipped on a weapon, increases magic damage by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.Weapon, 3).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_593/*If equipped on boots, decreases spell cost by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.Boot, 3).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_594/*If equipped on a helmet, decreases spell cooldown by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.Helmet, 3).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_595/*If equipped on accessories, increases energy on hit by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.Amulet, 3).ToString("N") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_596/*If equipped in other slots, increases intelligence by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.ChestArmor, 3).ToString("N"), //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr + Translations.ItemDatabase_ItemDefinitions_592/*If equipped on a weapon, increases magic damage by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.Weapon, 3).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_593/*If equipped on boots, decreases spell cost by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.Boot, 3).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_594/*If equipped on a helmet, decreases spell cooldown by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.Helmet, 3).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_595/*If equipped on accessories, increases energy on hit by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.Amulet, 3).ToString("N") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_596/*If equipped in other slots, increases intelligence by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.ChestArmor, 3).ToString("N"), //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr rarity = 5, minLevel = 20, maxLevel = 21, canConsume = false, stackSize = 100, subtype = 3, - type = BaseItem.ItemType.Material, + type = ItemDefinition.ItemType.Material, icon = Res.ResourceLoader.GetTexture(187), }; new BaseItem(new int[][] { }) { - name = Translations.ItemDataBase_ItemDefinitions_360/*Enchanted Sapphire*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_360/*Enchanted Sapphire*/, //tr description = - Translations.ItemDataBase_ItemDefinitions_592/*If equipped on a weapon, increases magic damage by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.Weapon, 3).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_593/*If equipped on boots, decreases spell cost by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.Boot, 3).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_594/*If equipped on a helmet, decreases spell cooldown by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.Helmet, 3).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_595/*If equipped on accessories, increases energy on hit by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.Amulet, 3).ToString("N") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_596/*If equipped in other slots, increases intelligence by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.ChestArmor, 3).ToString("N"), //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr + Translations.ItemDatabase_ItemDefinitions_592/*If equipped on a weapon, increases magic damage by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.Weapon, 3).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_593/*If equipped on boots, decreases spell cost by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.Boot, 3).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_594/*If equipped on a helmet, decreases spell cooldown by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.Helmet, 3).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_595/*If equipped on accessories, increases energy on hit by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.Amulet, 3).ToString("N") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_596/*If equipped in other slots, increases intelligence by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.ChestArmor, 3).ToString("N"), //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr rarity = 6, minLevel = 20, maxLevel = 21, canConsume = false, stackSize = 100, subtype = 3, - type = BaseItem.ItemType.Material, + type = ItemDefinition.ItemType.Material, icon = Res.ResourceLoader.GetTexture(187), }; new BaseItem(new int[][] { }) { - name = Translations.ItemDataBase_ItemDefinitions_361/*Celestial Sapphire*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_361/*Celestial Sapphire*/, //tr description = - Translations.ItemDataBase_ItemDefinitions_592/*If equipped on a weapon, increases magic damage by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.Weapon, 3).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_593/*If equipped on boots, decreases spell cost by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.Boot, 3).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_594/*If equipped on a helmet, decreases spell cooldown by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.Helmet, 3).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_595/*If equipped on accessories, increases energy on hit by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.Amulet, 3).ToString("N") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_596/*If equipped in other slots, increases intelligence by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.ChestArmor, 3).ToString("N"), //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr + Translations.ItemDatabase_ItemDefinitions_592/*If equipped on a weapon, increases magic damage by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.Weapon, 3).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_593/*If equipped on boots, decreases spell cost by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.Boot, 3).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_594/*If equipped on a helmet, decreases spell cooldown by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.Helmet, 3).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_595/*If equipped on accessories, increases energy on hit by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.Amulet, 3).ToString("N") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_596/*If equipped in other slots, increases intelligence by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.ChestArmor, 3).ToString("N"), //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr rarity = 7, minLevel = 20, maxLevel = 21, canConsume = false, stackSize = 100, subtype = 3, - type = BaseItem.ItemType.Material, + type = ItemDefinition.ItemType.Material, icon = Res.ResourceLoader.GetTexture(187), }; // -------- Moonstones new BaseItem(new int[][] { }) { - name = Translations.ItemDataBase_ItemDefinitions_362/*Uncut Moonstone*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_362/*Uncut Moonstone*/, //tr description = - Translations.ItemDataBase_ItemDefinitions_597/*If equipped on a weapon, increases all healing by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.Weapon, 4).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_598/*If equipped on boots, increases magic find by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.Boot, 4).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_599/*If equipped on a helmet, increases experience gained by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.Helmet, 4).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_600/*If equipped on accessories, increases life per second by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.Amulet, 4).ToString("N") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_601/*If equipped in other slots, increases vitality by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.ChestArmor, 4).ToString("N"), //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr + Translations.ItemDatabase_ItemDefinitions_597/*If equipped on a weapon, increases all healing by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.Weapon, 4).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_598/*If equipped on boots, increases magic find by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.Boot, 4).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_599/*If equipped on a helmet, increases experience gained by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.Helmet, 4).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_600/*If equipped on accessories, increases life per second by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.Amulet, 4).ToString("N") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_601/*If equipped in other slots, increases vitality by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.ChestArmor, 4).ToString("N"), //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr rarity = 3, minLevel = 20, maxLevel = 21, canConsume = false, stackSize = 100, subtype = 4, - type = BaseItem.ItemType.Material, + type = ItemDefinition.ItemType.Material, icon = Res.ResourceLoader.GetTexture(188), }; new BaseItem(new int[][] { }) { - name = Translations.ItemDataBase_ItemDefinitions_363/*Clear Moonstone*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_363/*Clear Moonstone*/, //tr description = - Translations.ItemDataBase_ItemDefinitions_597/*If equipped on a weapon, increases all healing by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.Weapon, 4).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_598/*If equipped on boots, increases magic find by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.Boot, 4).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_599/*If equipped on a helmet, increases experience gained by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.Helmet, 4).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_600/*If equipped on accessories, increases life per second by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.Amulet, 4).ToString("N") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_601/*If equipped in other slots, increases vitality by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.ChestArmor, 4).ToString("N"), //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr + Translations.ItemDatabase_ItemDefinitions_597/*If equipped on a weapon, increases all healing by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.Weapon, 4).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_598/*If equipped on boots, increases magic find by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.Boot, 4).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_599/*If equipped on a helmet, increases experience gained by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.Helmet, 4).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_600/*If equipped on accessories, increases life per second by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.Amulet, 4).ToString("N") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_601/*If equipped in other slots, increases vitality by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.ChestArmor, 4).ToString("N"), //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr rarity = 4, minLevel = 20, maxLevel = 21, canConsume = false, stackSize = 100, subtype = 4, - type = BaseItem.ItemType.Material, + type = ItemDefinition.ItemType.Material, icon = Res.ResourceLoader.GetTexture(188), }; new BaseItem(new int[][] { }) { - name = Translations.ItemDataBase_ItemDefinitions_364/*Shiny Moonstone*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_364/*Shiny Moonstone*/, //tr description = - Translations.ItemDataBase_ItemDefinitions_597/*If equipped on a weapon, increases all healing by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.Weapon, 4).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_598/*If equipped on boots, increases magic find by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.Boot, 4).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_599/*If equipped on a helmet, increases experience gained by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.Helmet, 4).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_600/*If equipped on accessories, increases life per second by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.Amulet, 4).ToString("N") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_601/*If equipped in other slots, increases vitality by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.ChestArmor, 4).ToString("N"), //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr + Translations.ItemDatabase_ItemDefinitions_597/*If equipped on a weapon, increases all healing by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.Weapon, 4).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_598/*If equipped on boots, increases magic find by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.Boot, 4).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_599/*If equipped on a helmet, increases experience gained by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.Helmet, 4).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_600/*If equipped on accessories, increases life per second by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.Amulet, 4).ToString("N") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_601/*If equipped in other slots, increases vitality by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.ChestArmor, 4).ToString("N"), //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr rarity = 5, minLevel = 20, maxLevel = 21, canConsume = false, stackSize = 100, subtype = 4, - type = BaseItem.ItemType.Material, + type = ItemDefinition.ItemType.Material, icon = Res.ResourceLoader.GetTexture(188), }; new BaseItem(new int[][] { }) { - name = Translations.ItemDataBase_ItemDefinitions_365/*Enchanted Moonstone*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_365/*Enchanted Moonstone*/, //tr description = - Translations.ItemDataBase_ItemDefinitions_597/*If equipped on a weapon, increases all healing by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.Weapon, 4).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_598/*If equipped on boots, increases magic find by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.Boot, 4).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_599/*If equipped on a helmet, increases experience gained by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.Helmet, 4).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_600/*If equipped on accessories, increases life per second by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.Amulet, 4).ToString("N") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_601/*If equipped in other slots, increases vitality by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.ChestArmor, 4).ToString("N"), //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr + Translations.ItemDatabase_ItemDefinitions_597/*If equipped on a weapon, increases all healing by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.Weapon, 4).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_598/*If equipped on boots, increases magic find by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.Boot, 4).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_599/*If equipped on a helmet, increases experience gained by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.Helmet, 4).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_600/*If equipped on accessories, increases life per second by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.Amulet, 4).ToString("N") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_601/*If equipped in other slots, increases vitality by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.ChestArmor, 4).ToString("N"), //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr rarity = 6, minLevel = 20, maxLevel = 21, canConsume = false, stackSize = 100, subtype = 4, - type = BaseItem.ItemType.Material, + type = ItemDefinition.ItemType.Material, icon = Res.ResourceLoader.GetTexture(188), }; new BaseItem(new int[][] { }) { - name = Translations.ItemDataBase_ItemDefinitions_366/*Celestial Moonstone*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_366/*Celestial Moonstone*/, //tr description = - Translations.ItemDataBase_ItemDefinitions_597/*If equipped on a weapon, increases all healing by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.Weapon, 4).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_598/*If equipped on boots, increases magic find by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.Boot, 4).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_599/*If equipped on a helmet, increases experience gained by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.Helmet, 4).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_600/*If equipped on accessories, increases life per second by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.Amulet, 4).ToString("N") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_601/*If equipped in other slots, increases vitality by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.ChestArmor, 4).ToString("N"), //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr + Translations.ItemDatabase_ItemDefinitions_597/*If equipped on a weapon, increases all healing by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.Weapon, 4).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_598/*If equipped on boots, increases magic find by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.Boot, 4).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_599/*If equipped on a helmet, increases experience gained by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.Helmet, 4).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_600/*If equipped on accessories, increases life per second by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.Amulet, 4).ToString("N") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_601/*If equipped in other slots, increases vitality by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.ChestArmor, 4).ToString("N"), //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr rarity = 7, minLevel = 20, maxLevel = 21, canConsume = false, stackSize = 100, subtype = 4, - type = BaseItem.ItemType.Material, + type = ItemDefinition.ItemType.Material, icon = Res.ResourceLoader.GetTexture(188), }; @@ -4293,52 +4293,52 @@ public static void PopulateItems() new BaseItem(new int[][] { }) { - name = Translations.ItemDataBase_ItemDefinitions_367/*Lead Ore*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_367/*Lead Ore*/, //tr description = - Translations.ItemDataBase_ItemDefinitions_602/*If equipped on a weapon, increases crit damage by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.Weapon, 5).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_603/*If equipped on boots, increases resistance to magic by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.Boot, 5).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_604/*If equipped on a helmet, increases health by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.Helmet, 5).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_605/*If equipped on accessories, increases thorns by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.Amulet, 5).ToString("N") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_606/*If equipped in other slots, increases armor by */ + StatActions.GetSocketedStatAmount(3, BaseItem.ItemType.ChestArmor, 5).ToString("N"), //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr + Translations.ItemDatabase_ItemDefinitions_602/*If equipped on a weapon, increases crit damage by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.Weapon, 5).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_603/*If equipped on boots, increases resistance to magic by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.Boot, 5).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_604/*If equipped on a helmet, increases health by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.Helmet, 5).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_605/*If equipped on accessories, increases thorns by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.Amulet, 5).ToString("N") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_606/*If equipped in other slots, increases armor by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.ChestArmor, 5).ToString("N"), //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr rarity = 3, minLevel = 20, maxLevel = 21, canConsume = false, stackSize = 100, subtype = 5, - type = BaseItem.ItemType.Material, + type = ItemDefinition.ItemType.Material, icon = Res.ResourceLoader.GetTexture(184), }; new BaseItem(new int[][] { }) { - name = Translations.ItemDataBase_ItemDefinitions_368/*Vanadium Ore*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_368/*Vanadium Ore*/, //tr description = - Translations.ItemDataBase_ItemDefinitions_602/*If equipped on a weapon, increases crit damage by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.Weapon, 5).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_603/*If equipped on boots, increases resistance to magic by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.Boot, 5).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_604/*If equipped on a helmet, increases health by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.Helmet, 5).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_605/*If equipped on accessories, increases thorns by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.Amulet, 5).ToString("N") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_606/*If equipped in other slots, increases armor by */ + StatActions.GetSocketedStatAmount(4, BaseItem.ItemType.ChestArmor, 5).ToString("N"), //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr + Translations.ItemDatabase_ItemDefinitions_602/*If equipped on a weapon, increases crit damage by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.Weapon, 5).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_603/*If equipped on boots, increases resistance to magic by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.Boot, 5).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_604/*If equipped on a helmet, increases health by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.Helmet, 5).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_605/*If equipped on accessories, increases thorns by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.Amulet, 5).ToString("N") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_606/*If equipped in other slots, increases armor by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.ChestArmor, 5).ToString("N"), //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr rarity = 4, minLevel = 20, maxLevel = 21, canConsume = false, stackSize = 100, subtype = 5, - type = BaseItem.ItemType.Material, + type = ItemDefinition.ItemType.Material, icon = Res.ResourceLoader.GetTexture(184), }; new BaseItem(new int[][] { }) { - name = Translations.ItemDataBase_ItemDefinitions_369/*Titanium Ore*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_369/*Titanium Ore*/, //tr description = - Translations.ItemDataBase_ItemDefinitions_602/*If equipped on a weapon, increases crit damage by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.Weapon, 5).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_603/*If equipped on boots, increases resistance to magic by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.Boot, 5).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_604/*If equipped on a helmet, increases health by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.Helmet, 5).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_605/*If equipped on accessories, increases thorns by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.Amulet, 5).ToString("N") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_606/*If equipped in other slots, increases armor by */ + StatActions.GetSocketedStatAmount(5, BaseItem.ItemType.ChestArmor, 5).ToString("N"), //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr + Translations.ItemDatabase_ItemDefinitions_602/*If equipped on a weapon, increases crit damage by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.Weapon, 5).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_603/*If equipped on boots, increases resistance to magic by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.Boot, 5).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_604/*If equipped on a helmet, increases health by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.Helmet, 5).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_605/*If equipped on accessories, increases thorns by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.Amulet, 5).ToString("N") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_606/*If equipped in other slots, increases armor by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.ChestArmor, 5).ToString("N"), //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr rarity = 5, minLevel = 20, @@ -4346,50 +4346,50 @@ public static void PopulateItems() canConsume = false, stackSize = 100, subtype = 5, - type = BaseItem.ItemType.Material, + type = ItemDefinition.ItemType.Material, icon = Res.ResourceLoader.GetTexture(184), }; new BaseItem(new int[][] { }) { - name = Translations.ItemDataBase_ItemDefinitions_370/*Chromium Ore*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_370/*Chromium Ore*/, //tr description = - Translations.ItemDataBase_ItemDefinitions_602/*If equipped on a weapon, increases crit damage by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.Weapon, 5).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_603/*If equipped on boots, increases resistance to magic by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.Boot, 5).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_604/*If equipped on a helmet, increases health by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.Helmet, 5).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_605/*If equipped on accessories, increases thorns by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.Amulet, 5).ToString("N") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_606/*If equipped in other slots, increases armor by */ + StatActions.GetSocketedStatAmount(6, BaseItem.ItemType.ChestArmor, 5).ToString("N"), //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr + Translations.ItemDatabase_ItemDefinitions_602/*If equipped on a weapon, increases crit damage by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.Weapon, 5).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_603/*If equipped on boots, increases resistance to magic by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.Boot, 5).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_604/*If equipped on a helmet, increases health by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.Helmet, 5).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_605/*If equipped on accessories, increases thorns by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.Amulet, 5).ToString("N") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_606/*If equipped in other slots, increases armor by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.ChestArmor, 5).ToString("N"), //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr rarity = 6, minLevel = 20, maxLevel = 21, canConsume = false, stackSize = 100, subtype = 5, - type = BaseItem.ItemType.Material, + type = ItemDefinition.ItemType.Material, icon = Res.ResourceLoader.GetTexture(184), }; new BaseItem(new int[][] { }) { - name = Translations.ItemDataBase_ItemDefinitions_371/*Tungsten Ore*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_371/*Tungsten Ore*/, //tr description = - Translations.ItemDataBase_ItemDefinitions_602/*If equipped on a weapon, increases crit damage by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.Weapon, 5).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_603/*If equipped on boots, increases resistance to magic by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.Boot, 5).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_604/*If equipped on a helmet, increases health by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.Helmet, 5).ToString("P") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_605/*If equipped on accessories, increases thorns by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.Amulet, 5).ToString("N") + "\n" + //tr - Translations.ItemDataBase_ItemDefinitions_606/*If equipped in other slots, increases armor by */ + StatActions.GetSocketedStatAmount(7, BaseItem.ItemType.ChestArmor, 5).ToString("N"), //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr + Translations.ItemDatabase_ItemDefinitions_602/*If equipped on a weapon, increases crit damage by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.Weapon, 5).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_603/*If equipped on boots, increases resistance to magic by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.Boot, 5).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_604/*If equipped on a helmet, increases health by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.Helmet, 5).ToString("P") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_605/*If equipped on accessories, increases thorns by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.Amulet, 5).ToString("N") + "\n" + //tr + Translations.ItemDatabase_ItemDefinitions_606/*If equipped in other slots, increases armor by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.ChestArmor, 5).ToString("N"), //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr rarity = 7, minLevel = 20, maxLevel = 21, canConsume = false, stackSize = 100, subtype = 5, - type = BaseItem.ItemType.Material, + type = ItemDefinition.ItemType.Material, icon = Res.ResourceLoader.GetTexture(184), }; - //This is the new better way of defining items, no longer uses item ids, now uses enum like in C++, the enum is Stats, you can find it in ItemDataBase_StatDefinitons.cs + //This is the new better way of defining items, no longer uses item ids, now uses enum like in C++, the enum is Stats, you can find it in ItemDatabase_StatDefinitons.cs new BaseItem(new Stat[][] { new [] {MELEE_DMG_FROM_STR}, @@ -4402,15 +4402,15 @@ public static void PopulateItems() new [] {ENERGY_ON_HIT,VITALITY,LIFE_ON_HIT } }) { - name = Translations.ItemDataBase_ItemDefinitions_372/*Knife on a stick*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_373/*Kasper named this item, his fault*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_372/*Knife on a stick*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_373/*Kasper named this item, his fault*/, //tr rarity = 5, minLevel = 30, maxLevel = 34, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Weapon, - subtype = BaseItem.WeaponModelType.Polearm, + type = ItemDefinition.ItemType.Weapon, + subtype = ItemDefinition.ItemSubtype.Polearm, icon = Res.ResourceLoader.GetTexture(181), }; new BaseItem(new Stat[][] @@ -4429,9 +4429,9 @@ public static void PopulateItems() new [] {STRENGTH,INTELLIGENCE,ARMOR,ARMOR_PIERCING,THORNS,} }) { - name = Translations.ItemDataBase_ItemDefinitions_374/*Fists of Nails*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_375/*Swiss sheese makers*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_376("900%")/*Gain 5 thorns per vitality*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_374/*Fists of Nails*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_375/*Swiss sheese makers*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_376("900%")/*Gain 5 thorns per vitality*/, //tr rarity = 7, minLevel = 20, maxLevel = 22, @@ -4439,7 +4439,7 @@ public static void PopulateItems() stackSize = 1, onEquipCallback = () => ModdedPlayer.Stats.thornsPerVit.Add(9), onUnequipCallback = () => ModdedPlayer.Stats.thornsPerVit.Sub(9), - type = BaseItem.ItemType.Glove, + type = ItemDefinition.ItemType.Glove, icon = Res.ResourceLoader.GetTexture(86), }; new BaseItem(new int[][] @@ -4455,15 +4455,15 @@ public static void PopulateItems() new int[] {-1 }, }) { - name = Translations.ItemDataBase_ItemDefinitions_377/*Cargo Shorts MK2*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_378/*Deepest pockets out there*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_379/*Improved cargo pants. Twice as many pockets, and since they didnt fit on the outside, they are inside. They are still ugly as hell tho*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_377/*Cargo Shorts MK2*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_378/*Deepest pockets out there*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_379/*Improved cargo pants. Twice as many pockets, and since they didnt fit on the outside, they are inside. They are still ugly as hell tho*/, //tr rarity = 4, minLevel = 30, maxLevel = 33, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Pants, + type = ItemDefinition.ItemType.Pants, icon = Res.ResourceLoader.GetTexture(87), }; new BaseItem(new Stat[][] @@ -4482,9 +4482,9 @@ public static void PopulateItems() new [] {BASE_RANGED_DAMAGE,RANGED_ARMOR_PIERCING,RANGED_DAMAGE_INCREASE} }) { - name = Translations.ItemDataBase_ItemDefinitions_380/*Aezyn*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_381/*Enchanted with magic as strong as power swing. It's purpose? Hit harder.*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_382("1666%")/*Magic arrow damage scaling is increased by 666%*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_380/*Aezyn*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_381/*Enchanted with magic as strong as power swing. It's purpose? Hit harder.*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_382("1666%")/*Magic arrow damage scaling is increased by 666%*/, //tr rarity = 7, minLevel = 20, maxLevel = 22, @@ -4492,7 +4492,7 @@ public static void PopulateItems() stackSize = 1, onEquipCallback = () => ModdedPlayer.Stats.spell_magicArrowDamageScaling.Add(16.66f), onUnequipCallback = () => ModdedPlayer.Stats.spell_magicArrowDamageScaling.Sub(16.66f), - type = BaseItem.ItemType.Bracer, + type = ItemDefinition.ItemType.Bracer, icon = Res.ResourceLoader.GetTexture(93), }; new BaseItem(new Stat[][] @@ -4511,9 +4511,9 @@ public static void PopulateItems() new [] {BASE_RANGED_DAMAGE,RANGED_ARMOR_PIERCING,RANGED_DAMAGE_INCREASE} }) { - name = Translations.ItemDataBase_ItemDefinitions_383/*Punny's Reflective Ring*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_381/*Enchanted with magic as strong as power swing. It's purpose? Hit harder.*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_384/*Magic arrow is shot in volleys. This effect can stack.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_383/*Punny's Reflective Ring*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_381/*Enchanted with magic as strong as power swing. It's purpose? Hit harder.*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_384/*Magic arrow is shot in volleys. This effect can stack.*/, //tr rarity = 7, minLevel = 20, maxLevel = 22, @@ -4521,7 +4521,7 @@ public static void PopulateItems() stackSize = 1, onEquipCallback = () => ModdedPlayer.Stats.spell_magicArrowVolleyCount.Add(3), onUnequipCallback = () => ModdedPlayer.Stats.spell_magicArrowVolleyCount.Sub(3), - type = BaseItem.ItemType.Ring, + type = ItemDefinition.ItemType.Ring, icon = Res.ResourceLoader.GetTexture(90), }; new BaseItem(new int[][] @@ -4531,16 +4531,16 @@ public static void PopulateItems() new int[] {67}, }) { - name = Translations.ItemDataBase_ItemDefinitions_385/*Eyepatch*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_386/*A wise man once said:*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_387/*Everyone thinks I'm just a one-eyed bloody monster, god damnit... (sobbing)*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_388/*Explosion damage is also applied when performing jump attacks*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_385/*Eyepatch*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_386/*A wise man once said:*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_387/*Everyone thinks I'm just a one-eyed bloody monster, god damnit... (sobbing)*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_388/*Explosion damage is also applied when performing jump attacks*/, //tr rarity = 0, minLevel = 1, maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Helmet, + type = ItemDefinition.ItemType.Helmet, icon = Res.ResourceLoader.GetTexture(91), }; new BaseItem(new Stat[][] @@ -4554,14 +4554,14 @@ public static void PopulateItems() new [] {ENERGY_ON_HIT,VITALITY,LIFE_ON_HIT } }) { - name = Translations.ItemDataBase_ItemDefinitions_389/*Javelin*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_389/*Javelin*/, //tr rarity = 5, minLevel = 30, maxLevel = 34, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Weapon, - subtype = BaseItem.WeaponModelType.Polearm, + type = ItemDefinition.ItemType.Weapon, + subtype = ItemDefinition.ItemSubtype.Polearm, icon = Res.ResourceLoader.GetTexture(181), }; new BaseItem(new Stat[][] @@ -4578,15 +4578,15 @@ public static void PopulateItems() }) { - name = Translations.ItemDataBase_ItemDefinitions_390/*Warplate*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_391/*Enchanted with the power of the GOD's armor. It's purpose? Hit harder, daddy.*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_392/*Strength comes from the power of will, the stronger the will the stronger you are*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_390/*Warplate*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_391/*Enchanted with the power of the GOD's armor. It's purpose? Hit harder, daddy.*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_392/*Strength comes from the power of will, the stronger the will the stronger you are*/, //tr rarity = 6, minLevel = 1, maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.ChestArmor, + type = ItemDefinition.ItemType.ChestArmor, icon = Res.ResourceLoader.GetTexture(96), }; { @@ -4600,14 +4600,14 @@ public static void PopulateItems() new [] {STRENGTH, THORNS}, }) { - name = Translations.ItemDataBase_ItemDefinitions_393/*Torso of Strength*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_393/*Torso of Strength*/, //tr rarity = 4, minLevel = 1, maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.ChestArmor, + type = ItemDefinition.ItemType.ChestArmor, icon = Res.ResourceLoader.GetTexture(96), }; SomeItem.statSlots[0][0].multipier = 2; @@ -4625,15 +4625,15 @@ public static void PopulateItems() }) { - name = Translations.ItemDataBase_ItemDefinitions_394/*Demoman's Vest*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_395/*What makes me a good demoman? If I were a bad demoman, I wouldn't be sittin' here discussin' it with you, now would I?! LET'S DO IT! Not one of you's gonna survive this! One crossed wire, one wayward pinch of potassium chlorate, one errant twitch, and KA-BLOOIE! I got a manky eye. I'm a black Scottish cyclops. They got more fecking sea monsters in the great Lochett Ness than they got the likes of me. So! T'all you fine dandies, so proud, so cocksure, prancin' about with your heads full of eyeballs... come and get me, I say! I'll be waitin' on you with a whiff of the old brimstone! I'm a Grimm bloody fable with an unhappy bloody end! Oh, they're going to have to glue you back together...IN HELL!*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_392/*Strength comes from the power of will, the stronger the will the stronger you are*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_394/*Demoman's Vest*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_395/*What makes me a good demoman? If I were a bad demoman, I wouldn't be sittin' here discussin' it with you, now would I?! LET'S DO IT! Not one of you's gonna survive this! One crossed wire, one wayward pinch of potassium chlorate, one errant twitch, and KA-BLOOIE! I got a manky eye. I'm a black Scottish cyclops. They got more fecking sea monsters in the great Lochett Ness than they got the likes of me. So! T'all you fine dandies, so proud, so cocksure, prancin' about with your heads full of eyeballs... come and get me, I say! I'll be waitin' on you with a whiff of the old brimstone! I'm a Grimm bloody fable with an unhappy bloody end! Oh, they're going to have to glue you back together...IN HELL!*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_392/*Strength comes from the power of will, the stronger the will the stronger you are*/, //tr rarity = 5, minLevel = 1, maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.ChestArmor, + type = ItemDefinition.ItemType.ChestArmor, icon = Res.ResourceLoader.GetTexture(96), }; demoVestItem.statSlots[0][0].multipier = 7; @@ -4652,13 +4652,13 @@ public static void PopulateItems() }) { - name = Translations.ItemDataBase_ItemDefinitions_396/*Brawler's Gloves*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_396/*Brawler's Gloves*/, //tr rarity = 6, minLevel = 1, maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Glove, + type = ItemDefinition.ItemType.Glove, icon = Res.ResourceLoader.GetTexture(86), }; new BaseItem(new Stat[][] @@ -4673,14 +4673,14 @@ public static void PopulateItems() }) { - name = Translations.ItemDataBase_ItemDefinitions_397/*Nail Gloves*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_398/*Enchanted with the power of penetration. It's purpose? Hit harder.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_397/*Nail Gloves*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_398/*Enchanted with the power of penetration. It's purpose? Hit harder.*/, //tr rarity = 3, minLevel = 1, maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Glove, + type = ItemDefinition.ItemType.Glove, icon = Res.ResourceLoader.GetTexture(86), }; @@ -4697,14 +4697,14 @@ public static void PopulateItems() new [] {ALL}, }) { - name = Translations.ItemDataBase_ItemDefinitions_399/*Hand-held Ballista*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_399/*Hand-held Ballista*/, //tr rarity = 5, minLevel = 10, maxLevel = 12, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Weapon, - subtype = BaseItem.WeaponModelType.Greatbow, + type = ItemDefinition.ItemType.Weapon, + subtype = ItemDefinition.ItemSubtype.Greatbow, icon = Res.ResourceLoader.GetTexture(170), }.statSlots[0][0].multipier = -2f; @@ -4717,14 +4717,14 @@ public static void PopulateItems() }) { - name = Translations.ItemDataBase_ItemDefinitions_400/*Kuldars's Scarf*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_401/*Strength comes from the power of will*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_400/*Kuldars's Scarf*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_401/*Strength comes from the power of will*/, //tr rarity = 2, minLevel = 1, maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Amulet, + type = ItemDefinition.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(100), }; new BaseItem(new Stat[][] @@ -4738,13 +4738,13 @@ public static void PopulateItems() }) { - name = Translations.ItemDataBase_ItemDefinitions_402/*Sword Devil's Scarf*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_402/*Sword Devil's Scarf*/, //tr rarity = 4, minLevel = 1, maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Amulet, + type = ItemDefinition.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(100), }; new BaseItem(new Stat[][] @@ -4757,13 +4757,13 @@ public static void PopulateItems() }) { - name = Translations.ItemDataBase_ItemDefinitions_403/*Peasant's Scarf*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_403/*Peasant's Scarf*/, //tr rarity = 3, minLevel = 1, maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Amulet, + type = ItemDefinition.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(100), }; new BaseItem(new Stat[][] @@ -4783,13 +4783,13 @@ public static void PopulateItems() }) { - name = Translations.ItemDataBase_ItemDefinitions_404/*Bombastinc Choker*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_404/*Bombastinc Choker*/, //tr rarity = 6, minLevel = 1, maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Amulet, + type = ItemDefinition.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(100), }.statSlots[0][0].multipier = 7f; new BaseItem(new Stat[][] @@ -4809,15 +4809,15 @@ public static void PopulateItems() }) { - name = Translations.ItemDataBase_ItemDefinitions_405/*Explosive Touch*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_406/*Enchanted with the power of the explosions armor. It's purpose? Become the true explosion master*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_407/*Strength comes from the power of will, the stronger the will the stronger the explosion*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_405/*Explosive Touch*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_406/*Enchanted with the power of the explosions armor. It's purpose? Become the true explosion master*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_407/*Strength comes from the power of will, the stronger the will the stronger the explosion*/, //tr rarity = 6, minLevel = 1, maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Glove, + type = ItemDefinition.ItemType.Glove, icon = Res.ResourceLoader.GetTexture(86), }; new BaseItem(new Stat[][] @@ -4836,15 +4836,15 @@ public static void PopulateItems() }) { - name = Translations.ItemDataBase_ItemDefinitions_408/*Volatile Bracers*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_406/*Enchanted with the power of the explosions armor. It's purpose? Become the true explosion master*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_407/*Strength comes from the power of will, the stronger the will the stronger the explosion*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_408/*Volatile Bracers*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_406/*Enchanted with the power of the explosions armor. It's purpose? Become the true explosion master*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_407/*Strength comes from the power of will, the stronger the will the stronger the explosion*/, //tr rarity = 6, minLevel = 1, maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Bracer, + type = ItemDefinition.ItemType.Bracer, icon = Res.ResourceLoader.GetTexture(93), }; new BaseItem(new Stat[][] @@ -4864,14 +4864,14 @@ public static void PopulateItems() }) { - name = Translations.ItemDataBase_ItemDefinitions_409/*Volatile Helmet*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_409/*Volatile Helmet*/, //tr rarity = 6, minLevel = 1, maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Helmet, + type = ItemDefinition.ItemType.Helmet, icon = Res.ResourceLoader.GetTexture(91), }; new BaseItem(new Stat[][] @@ -4891,13 +4891,13 @@ public static void PopulateItems() }) { - name = Translations.ItemDataBase_ItemDefinitions_410/*Gunpowder filled socks*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_410/*Gunpowder filled socks*/, //tr rarity = 6, minLevel = 1, maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Boot, + type = ItemDefinition.ItemType.Boot, icon = Res.ResourceLoader.GetTexture(85), }; new BaseItem(new Stat[][] @@ -4915,13 +4915,13 @@ public static void PopulateItems() }) { - name = Translations.ItemDataBase_ItemDefinitions_411/*Red Skirt*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_411/*Red Skirt*/, //tr rarity = 5, minLevel = 1, maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Pants, + type = ItemDefinition.ItemType.Pants, icon = Res.ResourceLoader.GetTexture(87), }; new BaseItem(new Stat[][] @@ -4935,13 +4935,13 @@ public static void PopulateItems() new [] {EXPLOSION_DAMAGE}, }) { - name = Translations.ItemDataBase_ItemDefinitions_412/*Gunpowder Boxers*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_412/*Gunpowder Boxers*/, //tr rarity = 4, minLevel = 1, maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Pants, + type = ItemDefinition.ItemType.Pants, icon = Res.ResourceLoader.GetTexture(87), }; @@ -4960,13 +4960,13 @@ public static void PopulateItems() }) { - name = Translations.ItemDataBase_ItemDefinitions_413/*Jihad Vest*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_413/*Jihad Vest*/, //tr rarity = 5, minLevel = 1, maxLevel = 4, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.ChestArmor, + type = ItemDefinition.ItemType.ChestArmor, icon = Res.ResourceLoader.GetTexture(96), }; @@ -4985,13 +4985,13 @@ public static void PopulateItems() }) { - name = Translations.ItemDataBase_ItemDefinitions_414/*Ring of Fortune*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_414/*Ring of Fortune*/, //tr rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 10, maxLevel = 14, canConsume = false, stackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Ring, + type = ItemDefinition.ItemType.Ring, icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that }; new BaseItem(new Stat[][] @@ -5008,13 +5008,13 @@ public static void PopulateItems() }) { - name = Translations.ItemDataBase_ItemDefinitions_415/*Mana Ring*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_415/*Mana Ring*/, //tr rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 10, maxLevel = 14, canConsume = false, stackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Ring, + type = ItemDefinition.ItemType.Ring, icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that }; new BaseItem(new Stat[][] @@ -5031,13 +5031,13 @@ public static void PopulateItems() new [] {MAX_LIFE_MULT,CRIT_CHANCE}, }) { - name = Translations.ItemDataBase_ItemDefinitions_416/*Life Ring*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_416/*Life Ring*/, //tr rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare minLevel = 10, maxLevel = 14, canConsume = false, stackSize = 1, //stacking in inventory like in mc, one means single item - type = BaseItem.ItemType.Ring, + type = ItemDefinition.ItemType.Ring, icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that }; new BaseItem(new Stat[][] @@ -5056,13 +5056,13 @@ public static void PopulateItems() new [] {ENERGY_ON_HIT,ENERGY_REGEN_BASE,MAX_LIFE}, }) { - name = Translations.ItemDataBase_ItemDefinitions_417/*Moritz's Gear*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_417/*Moritz's Gear*/, //tr rarity = 6, minLevel = 5, maxLevel = 6, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.ChestArmor, + type = ItemDefinition.ItemType.ChestArmor, icon = Res.ResourceLoader.GetTexture(96), }; new BaseItem(new Stat[][] @@ -5079,14 +5079,14 @@ public static void PopulateItems() new [] {ENERGY_ON_HIT,ENERGY_REGEN_BASE,MAX_LIFE}, }) { - name = Translations.ItemDataBase_ItemDefinitions_418/*Band of Hurting*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_419/*A ring for a warrior*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_418/*Band of Hurting*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_419/*A ring for a warrior*/, //tr rarity = 6, minLevel = 5, maxLevel = 6, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Ring, + type = ItemDefinition.ItemType.Ring, icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that }; @@ -5098,13 +5098,13 @@ public static void PopulateItems() new [] {CRIT_DAMAGE,NONE}, }) { - name = Translations.ItemDataBase_ItemDefinitions_420/*Straw Hat*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_420/*Straw Hat*/, //tr rarity = 2, minLevel = 1, maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Helmet, + type = ItemDefinition.ItemType.Helmet, icon = Res.ResourceLoader.GetTexture(91), }; new BaseItem(new Stat[][] @@ -5115,13 +5115,13 @@ public static void PopulateItems() new [] {FIRE_DAMAGE,SPELL_DAMAGE_MULTIPLIER,SPELL_COST_REDUCTION}, }) { - name = Translations.ItemDataBase_ItemDefinitions_318/*Hood*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_318/*Hood*/, //tr rarity = 2, minLevel = 1, maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Helmet, + type = ItemDefinition.ItemType.Helmet, icon = Res.ResourceLoader.GetTexture(91), }; new BaseItem(new Stat[][] @@ -5131,14 +5131,14 @@ public static void PopulateItems() new [] {STAMINA_REGEN_BASE}, }) { - name = Translations.ItemDataBase_ItemDefinitions_421/*Rusty Javelin*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_421/*Rusty Javelin*/, //tr rarity = 3, minLevel = 10, maxLevel = 16, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Weapon, - subtype = BaseItem.WeaponModelType.Polearm, + type = ItemDefinition.ItemType.Weapon, + subtype = ItemDefinition.ItemSubtype.Polearm, icon = Res.ResourceLoader.GetTexture(181), }; new BaseItem(new Stat[][] @@ -5157,13 +5157,13 @@ public static void PopulateItems() new [] {ENERGY_ON_HIT,ENERGY_REGEN_BASE,MAX_LIFE}, }) { - name = Translations.ItemDataBase_ItemDefinitions_422/*Star Robe*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_422/*Star Robe*/, //tr rarity = 6, minLevel = 5, maxLevel = 6, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.ChestArmor, + type = ItemDefinition.ItemType.ChestArmor, icon = Res.ResourceLoader.GetTexture(96), }; new BaseItem(new Stat[][] @@ -5182,16 +5182,16 @@ public static void PopulateItems() new [] {ENERGY_ON_HIT,ENERGY_REGEN_BASE,MAX_LIFE,MASSACRE_DURATION,LOOT_QUANTITY,EXPLOSION_DAMAGE}, }) { - name = Translations.ItemDataBase_ItemDefinitions_423/*Anger*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_424/*Downscaled version of Greatsword Rage, made to be wielded by flimsy wizards*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_425(15)/*Increases maximum stacks of frenzy by 10*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_423/*Anger*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_424/*Downscaled version of Greatsword Rage, made to be wielded by flimsy wizards*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_425(15)/*Increases maximum stacks of frenzy by 10*/, //tr rarity = 7, minLevel = 6, maxLevel = 9, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Weapon, - subtype = BaseItem.WeaponModelType.LongSword, + type = ItemDefinition.ItemType.Weapon, + subtype = ItemDefinition.ItemSubtype.LongSword, icon = Res.ResourceLoader.GetTexture(88), onEquipCallback = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Add(15), onUnequipCallback = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Sub(15), @@ -5214,16 +5214,16 @@ public static void PopulateItems() new[] { ENERGY_ON_HIT, ENERGY_REGEN_BASE, MAX_LIFE, MASSACRE_DURATION, LOOT_QUANTITY, EXPLOSION_DAMAGE }, }) { - name = Translations.ItemDataBase_ItemDefinitions_426/*Yuki-Onna Strides*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_433("50%", "300%")/*Set Piece:\n2 Pieces- Snow Storm pulls enemies towards you\n3 Pieces - Snow Storm radius, maximum damage, spell cost is doubled, but charge rate is slower\n4 Pieces - Snow storm hit frequency is increased by 50%*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_428/*Boots looted off a snow demon*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_429("50%")/*Increses snowstorm damage by 50%*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_426/*Yuki-Onna Strides*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_433("50%", "300%")/*Set Piece:\n2 Pieces- Snow Storm pulls enemies towards you\n3 Pieces - Snow Storm radius, maximum damage, spell cost is doubled, but charge rate is slower\n4 Pieces - Snow storm hit frequency is increased by 50%*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_428/*Boots looted off a snow demon*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_429("50%")/*Increses snowstorm damage by 50%*/, //tr rarity = 7, minLevel = 1, maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Boot, + type = ItemDefinition.ItemType.Boot, icon = Res.ResourceLoader.GetTexture(85), onEquipCallback = () => AkagiSet.Equip(), onUnequipCallback = () => AkagiSet.Unequip(), @@ -5245,15 +5245,15 @@ public static void PopulateItems() new[] { INTELLIGENCE, STAMINA_REGEN_BASE, STAMINA_AND_ENERGY_REGEN_MULT, ALL_ATTRIBUTES, ALL_RECOVERY }, }) { - name = Translations.ItemDataBase_ItemDefinitions_430/*Yuki-Onna Greaves*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_433("50%", "300%")/*Set Piece:\n2 Pieces- Snow Storm pulls enemies towards you\n3 Pieces - Snow Storm radius, maximum damage, spell cost is doubled, but charge rate is slower\n4 Pieces - Snow storm hit frequency is increased by 50%*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_429("50%")/*Increses snowstorm damage by 50%*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_430/*Yuki-Onna Greaves*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_433("50%", "300%")/*Set Piece:\n2 Pieces- Snow Storm pulls enemies towards you\n3 Pieces - Snow Storm radius, maximum damage, spell cost is doubled, but charge rate is slower\n4 Pieces - Snow storm hit frequency is increased by 50%*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_429("50%")/*Increses snowstorm damage by 50%*/, //tr rarity = 7, minLevel = 1, maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Pants, + type = ItemDefinition.ItemType.Pants, icon = Res.ResourceLoader.GetTexture(87), onEquipCallback = () => AkagiSet.Equip(), onUnequipCallback = () => AkagiSet.Unequip(), @@ -5275,15 +5275,15 @@ public static void PopulateItems() new[] { INTELLIGENCE, STAMINA_REGEN_BASE, STAMINA_AND_ENERGY_REGEN_MULT, ALL_ATTRIBUTES, ALL_RECOVERY }, }) { - name = Translations.ItemDataBase_ItemDefinitions_431/*Yuki-Onna Kimono*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_433("50%", "300%")/*Set Piece:\n2 Pieces- Snow Storm pulls enemies towards you\n3 Pieces - Snow Storm radius, maximum damage, spell cost is doubled, but charge rate is slower\n4 Pieces - Snow storm hit frequency is increased by 50%*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_429("50%")/*Increses snowstorm damage by 50%*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_431/*Yuki-Onna Kimono*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_433("50%", "300%")/*Set Piece:\n2 Pieces- Snow Storm pulls enemies towards you\n3 Pieces - Snow Storm radius, maximum damage, spell cost is doubled, but charge rate is slower\n4 Pieces - Snow storm hit frequency is increased by 50%*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_429("50%")/*Increses snowstorm damage by 50%*/, //tr rarity = 7, minLevel = 1, maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.ChestArmor, + type = ItemDefinition.ItemType.ChestArmor, icon = Res.ResourceLoader.GetTexture(96), onEquipCallback = () => AkagiSet.Equip(), onUnequipCallback = () => AkagiSet.Unequip(), @@ -5305,15 +5305,15 @@ public static void PopulateItems() new[] { INTELLIGENCE, STAMINA_REGEN_BASE, STAMINA_AND_ENERGY_REGEN_MULT, ALL_ATTRIBUTES, ALL_RECOVERY }, }) { - name = Translations.ItemDataBase_ItemDefinitions_432/*Yuki-Onna's Headdress*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_433("50%", "300%")/*Set Piece:\n2 Pieces- Snow Storm pulls enemies towards you\n3 Pieces - Snow Storm radius, maximum damage, spell cost is doubled, but charge rate is slower\n4 Pieces - Snow storm hit frequency is increased by 50% and damage is increased by 300%*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_429("50%")/*Increses snowstorm damage by 50%*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_432/*Yuki-Onna's Headdress*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_433("50%", "300%")/*Set Piece:\n2 Pieces- Snow Storm pulls enemies towards you\n3 Pieces - Snow Storm radius, maximum damage, spell cost is doubled, but charge rate is slower\n4 Pieces - Snow storm hit frequency is increased by 50% and damage is increased by 300%*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_429("50%")/*Increses snowstorm damage by 50%*/, //tr rarity = 7, minLevel = 1, maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Helmet, + type = ItemDefinition.ItemType.Helmet, icon = Res.ResourceLoader.GetTexture(91), onEquipCallback = () => AkagiSet.Equip(), onUnequipCallback = () => AkagiSet.Unequip(), @@ -5335,31 +5335,31 @@ public static void PopulateItems() new[] { INTELLIGENCE, STAMINA_REGEN_BASE, STAMINA_AND_ENERGY_REGEN_MULT, ALL_ATTRIBUTES, ALL_RECOVERY }, }) { - name = Translations.ItemDataBase_ItemDefinitions_434/*Lama Mega's Blood Bag*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_434/*Lama Mega's Blood Bag*/, //tr description = "", //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_435("15 000%", 15)/*Melee hits cause enemies to bleed for 100% of your health as damage for 15 seconds*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_435("15 000%", 15)/*Melee hits cause enemies to bleed for 100% of your health as damage for 15 seconds*/, //tr rarity = 7, minLevel = 1, maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Amulet, + type = ItemDefinition.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(100), onEquipCallback = () => COTFEvents.Instance.OnHitMelee.AddListener(UniqueItemFunctions.EnemyBleedForPlayerHP), onUnequipCallback = () => COTFEvents.Instance.OnHitMelee.RemoveListener(UniqueItemFunctions.EnemyBleedForPlayerHP), }; new BaseItem(new int[][] { }) { - name = Translations.ItemDataBase_ItemDefinitions_436/*Socket Drill*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_437/*A convienient one use tool*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_438/*What's a drill doing here in a place full of primitive tribes?*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_439/*Adds one socket to an item, unless the item can't have any more sockets.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_436/*Socket Drill*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_437/*A convienient one use tool*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_438/*What's a drill doing here in a place full of primitive tribes?*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_439/*Adds one socket to an item, unless the item can't have any more sockets.*/, //tr rarity = 6, minLevel = 1, maxLevel = 2, canConsume = false, stackSize = 100, - type = BaseItem.ItemType.Material, + type = ItemDefinition.ItemType.Material, icon = Res.ResourceLoader.GetTexture(190), onConsumeCallback = x => { @@ -5367,7 +5367,7 @@ public static void PopulateItems() int socketCurrent = x.stats.Count(y => y.id >= 3000); if (socketCurrent < socketMax) { - x.stats.Add(new ItemStat(ItemDataBase.StatByID(3000))); + x.stats.Add(new ItemStat(ItemDatabase.StatByID(3000))); return true; } return false; @@ -5382,16 +5382,16 @@ public static void PopulateItems() new[] { NONE,JUMP_POWER}, }) { - name = Translations.ItemDataBase_ItemDefinitions_440/*Moonwalkers*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_440/*Moonwalkers*/, //tr description = "", //tr - lore = Translations.ItemDataBase_ItemDefinitions_441/*Cha cha real smooth.*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_442/*Inverts movement*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_441/*Cha cha real smooth.*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_442/*Inverts movement*/, //tr rarity = 3, minLevel = 16, maxLevel = 18, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Boot, + type = ItemDefinition.ItemType.Boot, icon = Res.ResourceLoader.GetTexture(85), onEquipCallback = () => ModdedPlayer.Stats.movementSpeed.Multiply(-1.2f), onUnequipCallback = () => ModdedPlayer.Stats.movementSpeed.Divide(-1.2f) @@ -5406,15 +5406,15 @@ public static void PopulateItems() new[] { RANGED_ARMOR_PIERCING,RANGED_DAMAGE_INCREASE,BASE_RANGED_DAMAGE,ATTACKSPEED}, }) { - name = Translations.ItemDataBase_ItemDefinitions_443/*Rabbit Ears Hairband*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_444/*Cute*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_443/*Rabbit Ears Hairband*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_444/*Cute*/, //tr lore = "", //tr rarity = 3, minLevel = 1, maxLevel = 2, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Helmet, + type = ItemDefinition.ItemType.Helmet, icon = Res.ResourceLoader.GetTexture(91), }; new BaseItem(new Stat[][] @@ -5426,15 +5426,15 @@ public static void PopulateItems() new[] { RANGED_ARMOR_PIERCING,RANGED_DAMAGE_INCREASE,BASE_RANGED_DAMAGE,ATTACKSPEED}, }) { - name = Translations.ItemDataBase_ItemDefinitions_445/*Bunny Ears Hairband*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_444/*Cute*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_445/*Bunny Ears Hairband*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_444/*Cute*/, //tr lore = "", //tr rarity = 4, minLevel = 1, maxLevel = 2, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Helmet, + type = ItemDefinition.ItemType.Helmet, icon = Res.ResourceLoader.GetTexture(91), }; new BaseItem(new int[][] @@ -5470,15 +5470,15 @@ public static void PopulateItems() }) { - name = Translations.ItemDataBase_ItemDefinitions_446/*Iron plate full of holes*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_446/*Iron plate full of holes*/, //tr description = "", //tr - lore = Translations.ItemDataBase_ItemDefinitions_447/*The integrity of this item is questionable*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_447/*The integrity of this item is questionable*/, //tr rarity = 3, minLevel = 50, maxLevel = 60, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.ChestArmor, + type = ItemDefinition.ItemType.ChestArmor, icon = Res.ResourceLoader.GetTexture(96), }; new BaseItem(new Stat[][] @@ -5490,14 +5490,14 @@ public static void PopulateItems() }) { - name = Translations.ItemDataBase_ItemDefinitions_448/*Small Tribal Necklace*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_449(2)/*Increases maximum stacks of frenzy by 2*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_448/*Small Tribal Necklace*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_449(2)/*Increases maximum stacks of frenzy by 2*/, //tr rarity = 4, minLevel = 6, maxLevel = 9, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Amulet, + type = ItemDefinition.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(100), onEquipCallback = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Add(2), onUnequipCallback = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Sub(2), @@ -5512,14 +5512,14 @@ public static void PopulateItems() }) { - name = Translations.ItemDataBase_ItemDefinitions_450/*Tribal Necklace*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_451(3)/*Increases maximum stacks of frenzy by 3*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_450/*Tribal Necklace*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_451(3)/*Increases maximum stacks of frenzy by 3*/, //tr rarity = 4, minLevel = 6, maxLevel = 9, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Amulet, + type = ItemDefinition.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(100), onEquipCallback = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Add(3), onUnequipCallback = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Sub(3), @@ -5535,14 +5535,14 @@ public static void PopulateItems() }) { - name = Translations.ItemDataBase_ItemDefinitions_452/*Warlord Necklace*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_453(4)/*Increases maximum stacks of frenzy by 4*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_452/*Warlord Necklace*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_453(4)/*Increases maximum stacks of frenzy by 4*/, //tr rarity = 5, minLevel = 6, maxLevel = 9, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Amulet, + type = ItemDefinition.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(100), onEquipCallback = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Add(4), onUnequipCallback = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Sub(4), @@ -5557,14 +5557,14 @@ public static void PopulateItems() new [] {ALL_ATTRIBUTES,AGILITY,STRENGTH,INTELLIGENCE,VITALITY}, }) { - name = Translations.ItemDataBase_ItemDefinitions_454/*Travel Band*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_455(25)/*The distance of blink is increased by 20 feet*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_454/*Travel Band*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_455(25)/*The distance of blink is increased by 20 feet*/, //tr rarity = 5, minLevel = 5, maxLevel = 9, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Ring, + type = ItemDefinition.ItemType.Ring, icon = Res.ResourceLoader.GetTexture(90), onEquipCallback = () => { ModdedPlayer.Stats.spell_blinkRange.Add(25); }, onUnequipCallback = () => { ModdedPlayer.Stats.spell_blinkRange.Sub(25); }, @@ -5579,16 +5579,16 @@ public static void PopulateItems() new [] {COOLDOWN_REDUCTION,NONE}, }) { - name = Translations.ItemDataBase_ItemDefinitions_456/*Destroyed Void Shard*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_457/*Only a fraction of its previous might remains*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_154/*A pedant of great power. Obtainable only from babies or crafting*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_458(1)/*Decrease the cooldown of one ability by 1 second whenever you hit something with melee or ranged attack.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_456/*Destroyed Void Shard*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_457/*Only a fraction of its previous might remains*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_154/*A pedant of great power. Obtainable only from babies or crafting*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_458(1)/*Decrease the cooldown of one ability by 1 second whenever you hit something with melee or ranged attack.*/, //tr rarity = 6, minLevel = 80, maxLevel = 90, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Amulet, + type = ItemDefinition.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(101), onEquipCallback = () => ModdedPlayer.Stats.i_infinityLoop.value = true, onUnequipCallback = () => ModdedPlayer.Stats.i_infinityLoop.value = false, @@ -5603,16 +5603,16 @@ public static void PopulateItems() new int[] {25 ,22,1,12,13,5,6}, }) { - name = Translations.ItemDataBase_ItemDefinitions_459/*Famine Hammer*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_163/*It's slow but with enough strength i can make it a very deadly tool*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_460("30%")/*Chance to weaken enemies, causing them to take more damage from all attacks, is increased by 30%*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_459/*Famine Hammer*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_163/*It's slow but with enough strength i can make it a very deadly tool*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_460("30%")/*Chance to weaken enemies, causing them to take more damage from all attacks, is increased by 30%*/, //tr rarity = 4, minLevel = 30, maxLevel = 35, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Weapon, - subtype = BaseItem.WeaponModelType.Hammer, + type = ItemDefinition.ItemType.Weapon, + subtype = ItemDefinition.ItemSubtype.Hammer, icon = Res.ResourceLoader.GetTexture(109), onEquipCallback = () => ModdedPlayer.Stats.chanceToWeaken.Add(0.3f), onUnequipCallback = () => ModdedPlayer.Stats.chanceToWeaken.Sub(0.3f), @@ -5629,16 +5629,16 @@ public static void PopulateItems() new int[] {25 ,22,1,12,13,5,6}, }) { - name = Translations.ItemDataBase_ItemDefinitions_461/*Curse Hammer*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_462/*Omnious Weapon*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_463("45%")/*Chance to weaken enemies, causing them to take more damage from all attacks, is increased by 40%*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_461/*Curse Hammer*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_462/*Omnious Weapon*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_463("45%")/*Chance to weaken enemies, causing them to take more damage from all attacks, is increased by 40%*/, //tr rarity = 5, minLevel = 30, maxLevel = 35, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Weapon, - subtype = BaseItem.WeaponModelType.Hammer, + type = ItemDefinition.ItemType.Weapon, + subtype = ItemDefinition.ItemSubtype.Hammer, icon = Res.ResourceLoader.GetTexture(109), onEquipCallback = () => ModdedPlayer.Stats.chanceToWeaken.Add(0.45f), onUnequipCallback = () => ModdedPlayer.Stats.chanceToWeaken.Sub(0.45f), @@ -5654,16 +5654,16 @@ public static void PopulateItems() new [] {ALL_ATTRIBUTES,VITALITY,MELEE_DAMAGE_INCREASE,MELEE_ARMOR_PIERCING}, }) { - name = Translations.ItemDataBase_ItemDefinitions_464/*Smasher*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_163/*It's slow but with enough strength i can make it a very deadly tool*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_465/*Smash damage is increased tripled*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_464/*Smasher*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_163/*It's slow but with enough strength i can make it a very deadly tool*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_465/*Smash damage is increased tripled*/, //tr rarity = 5, minLevel = 30, maxLevel = 35, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Weapon, - subtype = BaseItem.WeaponModelType.Hammer, + type = ItemDefinition.ItemType.Weapon, + subtype = ItemDefinition.ItemSubtype.Hammer, icon = Res.ResourceLoader.GetTexture(109), onEquipCallback = () => { ModdedPlayer.Stats.smashDamage.Multiply(3f); }, onUnequipCallback = () => { ModdedPlayer.Stats.smashDamage.Divide(3f); }, @@ -5676,14 +5676,14 @@ public static void PopulateItems() new [] {STAMINA_AND_ENERGY_REGEN_MULT,MAX_ENERGY_MULT,MAX_LIFE_MULT}, }) { - name = Translations.ItemDataBase_ItemDefinitions_466/*Vampiric Band*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_467(1)/*Gain 1 stamina on ranged and melee hit or double that amount on critical hits*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_466/*Vampiric Band*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_467(1)/*Gain 1 stamina on ranged and melee hit or double that amount on critical hits*/, //tr rarity = 3, minLevel = 1, maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Ring, + type = ItemDefinition.ItemType.Ring, icon = Res.ResourceLoader.GetTexture(90), onEquipCallback = () => COTFEvents.Instance.OnHitEnemy.AddListener(UniqueItemFunctions.Gain1EnergyOnHit), onUnequipCallback = () => COTFEvents.Instance.OnHitEnemy.RemoveListener(UniqueItemFunctions.Gain1EnergyOnHit), @@ -5700,14 +5700,14 @@ public static void PopulateItems() new [] {STAMINA_AND_ENERGY_REGEN_MULT,MAX_ENERGY_MULT,MAX_LIFE_MULT}, }) { - name = Translations.ItemDataBase_ItemDefinitions_468/*Vampire Ring*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_469(10)/*Gain 10 stamina on ranged and melee hit or double that amount on critical hits*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_468/*Vampire Ring*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_469(10)/*Gain 10 stamina on ranged and melee hit or double that amount on critical hits*/, //tr rarity = 6, minLevel = 1, maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Ring, + type = ItemDefinition.ItemType.Ring, icon = Res.ResourceLoader.GetTexture(90), onEquipCallback = () => COTFEvents.Instance.OnHitEnemy.AddListener(UniqueItemFunctions.Gain10EnergyOnHit), onUnequipCallback = () => COTFEvents.Instance.OnHitEnemy.RemoveListener(UniqueItemFunctions.Gain10EnergyOnHit), @@ -5720,9 +5720,9 @@ public static void PopulateItems() new [] {COOLDOWN_REDUCTION,SPELL_COST_REDUCTION,SPELL_COST_TO_STAMINA,INTELLIGENCE,DAMAGE_REDUCTION}, }) { - name = Translations.ItemDataBase_ItemDefinitions_470/*Tricksters Scarf*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_470/*Tricksters Scarf*/, //tr description = "", //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_471(1)/*Magic arrow shoots 1 additional arrow.*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_471(1)/*Magic arrow shoots 1 additional arrow.*/, //tr rarity = 4, minLevel = 20, maxLevel = 22, @@ -5730,7 +5730,7 @@ public static void PopulateItems() stackSize = 1, onEquipCallback = () => ModdedPlayer.Stats.spell_magicArrowVolleyCount.Add(1), onUnequipCallback = () => ModdedPlayer.Stats.spell_magicArrowVolleyCount.Sub(1), - type = BaseItem.ItemType.Amulet, + type = ItemDefinition.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(100) }; new BaseItem(new Stat[][] @@ -5744,9 +5744,9 @@ public static void PopulateItems() }) { - name = Translations.ItemDataBase_ItemDefinitions_472/*Magus' Necktie*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_472/*Magus' Necktie*/, //tr description = "", //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_473(2)/*Magic arrow shoots 2 additional arrows.*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_473(2)/*Magic arrow shoots 2 additional arrows.*/, //tr rarity = 5, minLevel = 50, maxLevel = 52, @@ -5754,7 +5754,7 @@ public static void PopulateItems() stackSize = 1, onEquipCallback = () => ModdedPlayer.Stats.spell_magicArrowVolleyCount.Add(2), onUnequipCallback = () => ModdedPlayer.Stats.spell_magicArrowVolleyCount.Sub(2), - type = BaseItem.ItemType.Amulet, + type = ItemDefinition.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(100) }; new BaseItem(new int[][] @@ -5765,14 +5765,14 @@ public static void PopulateItems() new int[] {2,3,4,5,6,7,8,9,10}, }) { - name = Translations.ItemDataBase_ItemDefinitions_474/*Discounted Knockoff Magic Quiver*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_475("15%")/*There's a 15% increased chance to not consume ammo when firing a projectile.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_474/*Discounted Knockoff Magic Quiver*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_475("15%")/*There's a 15% increased chance to not consume ammo when firing a projectile.*/, //tr rarity = 3, minLevel = 2, maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Quiver, + type = ItemDefinition.ItemType.Quiver, icon = Res.ResourceLoader.GetTexture(98), onEquipCallback = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Add(0.15f), onUnequipCallback = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Sub(0.15f), @@ -5787,14 +5787,14 @@ public static void PopulateItems() new int[] {2,1,5,6,0}, }) { - name = Translations.ItemDataBase_ItemDefinitions_476/*Magic Quiver*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_477("20%")/*There's a 20% increased chance to not consume ammo when firing a projectile.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_476/*Magic Quiver*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_477("20%")/*There's a 20% increased chance to not consume ammo when firing a projectile.*/, //tr rarity = 4, minLevel = 2, maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Quiver, + type = ItemDefinition.ItemType.Quiver, icon = Res.ResourceLoader.GetTexture(98), onEquipCallback = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Add(0.2f), onUnequipCallback = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Sub(0.2f), @@ -5810,14 +5810,14 @@ public static void PopulateItems() new int[] {2,1,5,6}, }) { - name = Translations.ItemDataBase_ItemDefinitions_478/*Improved Magic Quiver*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_479("25%")/*There's a 25% increased chance to not consume ammo when firing a projectile.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_478/*Improved Magic Quiver*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_479("25%")/*There's a 25% increased chance to not consume ammo when firing a projectile.*/, //tr rarity = 5, minLevel = 2, maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Quiver, + type = ItemDefinition.ItemType.Quiver, icon = Res.ResourceLoader.GetTexture(98), onEquipCallback = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Add(0.25f), onUnequipCallback = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Sub(0.25f), @@ -5834,14 +5834,14 @@ public static void PopulateItems() new int[] {-1}, }) { - name = Translations.ItemDataBase_ItemDefinitions_480/*Factory Quiver*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_481("40%")/*There's a 40% increased chance to not consume ammo when firing a projectile.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_480/*Factory Quiver*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_481("40%")/*There's a 40% increased chance to not consume ammo when firing a projectile.*/, //tr rarity = 6, minLevel = 12, maxLevel = 20, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Quiver, + type = ItemDefinition.ItemType.Quiver, icon = Res.ResourceLoader.GetTexture(98), onEquipCallback = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Add(0.4f), onUnequipCallback = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Sub(0.4f), @@ -5849,15 +5849,15 @@ public static void PopulateItems() new BaseItem(new int[][] { }) { - name = Translations.ItemDataBase_ItemDefinitions_482/*Enzyme STR/34*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_484/*Changes Vitality, Agility or Intelligence stat on an item to Strength or changes Ranged or Spell damage stat to Melee Damage*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_482/*Enzyme STR/34*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_484/*Changes Vitality, Agility or Intelligence stat on an item to Strength or changes Ranged or Spell damage stat to Melee Damage*/, //tr rarity = 6, minLevel = 1, maxLevel = 2, canConsume = false, stackSize = 100, - type = BaseItem.ItemType.Material, + type = ItemDefinition.ItemType.Material, icon = Res.ResourceLoader.GetTexture(193), onConsumeCallback = x => { @@ -5911,15 +5911,15 @@ public static void PopulateItems() }; new BaseItem(new int[][] { }) { - name = Translations.ItemDataBase_ItemDefinitions_485/*Enzyme INT/33*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_486/*Changes Vitality, Agility or Strength stat on an item to Intelligence or changes Ranged or Melee damage stat to Spell Damage*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_485/*Enzyme INT/33*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_486/*Changes Vitality, Agility or Strength stat on an item to Intelligence or changes Ranged or Melee damage stat to Spell Damage*/, //tr rarity = 6, minLevel = 1, maxLevel = 2, canConsume = false, stackSize = 100, - type = BaseItem.ItemType.Material, + type = ItemDefinition.ItemType.Material, icon = Res.ResourceLoader.GetTexture(191), onConsumeCallback = x => { @@ -5973,15 +5973,15 @@ public static void PopulateItems() }; new BaseItem(new int[][] { }) { - name = Translations.ItemDataBase_ItemDefinitions_487/*Enzyme AGI/39*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_488/*Changes Vitality, Intelligence or Strength stat on an item to Agility or changes Melee or Spell damage stat to Ranged Damage*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_487/*Enzyme AGI/39*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_488/*Changes Vitality, Intelligence or Strength stat on an item to Agility or changes Melee or Spell damage stat to Ranged Damage*/, //tr rarity = 6, minLevel = 1, maxLevel = 2, canConsume = false, stackSize = 100, - type = BaseItem.ItemType.Material, + type = ItemDefinition.ItemType.Material, icon = Res.ResourceLoader.GetTexture(192), onConsumeCallback = x => { @@ -6036,15 +6036,15 @@ public static void PopulateItems() new BaseItem(new int[][] { }) { - name = Translations.ItemDataBase_ItemDefinitions_489/*Enzyme VIT/449*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_490/*Changes Agility, Intelligence or Strength stat on an item to Vitality*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_489/*Enzyme VIT/449*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_490/*Changes Agility, Intelligence or Strength stat on an item to Vitality*/, //tr rarity = 6, minLevel = 1, maxLevel = 2, canConsume = false, stackSize = 100, - type = BaseItem.ItemType.Material, + type = ItemDefinition.ItemType.Material, icon = Res.ResourceLoader.GetTexture(199), onConsumeCallback = x => { @@ -6088,15 +6088,15 @@ public static void PopulateItems() }; new BaseItem(new int[][] { }) { - name = Translations.ItemDataBase_ItemDefinitions_491/*Stomach Acid*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_492/*Removes all stats with negative values from an item*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_491/*Stomach Acid*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_492/*Removes all stats with negative values from an item*/, //tr rarity = 4, minLevel = 1, maxLevel = 2, canConsume = false, stackSize = 100, - type = BaseItem.ItemType.Material, + type = ItemDefinition.ItemType.Material, icon = Res.ResourceLoader.GetTexture(198), onConsumeCallback = x => { @@ -6111,15 +6111,15 @@ public static void PopulateItems() }; new BaseItem(new int[][] { }) { - name = Translations.ItemDataBase_ItemDefinitions_493/*Elite Stomach Acid*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_494/*Changes negative stat values into positive values on an item*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_493/*Elite Stomach Acid*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_494/*Changes negative stat values into positive values on an item*/, //tr rarity = 6, minLevel = 1, maxLevel = 2, canConsume = false, stackSize = 100, - type = BaseItem.ItemType.Material, + type = ItemDefinition.ItemType.Material, icon = Res.ResourceLoader.GetTexture(198), onConsumeCallback = x => { @@ -6140,22 +6140,22 @@ public static void PopulateItems() }; new BaseItem(new int[][] { }) { - name = Translations.ItemDataBase_ItemDefinitions_495/*Crimson Solution*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_496/*Upgrades item of any rarity to one of the same type but of Legendary rarity*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_495/*Crimson Solution*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_496/*Upgrades item of any rarity to one of the same type but of Legendary rarity*/, //tr rarity = 7, minLevel = 1, maxLevel = 2, canConsume = false, stackSize = 100, - type = BaseItem.ItemType.Material, + type = ItemDefinition.ItemType.Material, icon = Res.ResourceLoader.GetTexture(196), onConsumeCallback = x => { if (x.isEquipped) return false; var itemType = x.type; - if (itemType == BaseItem.ItemType.Other || itemType == BaseItem.ItemType.Material || x.stackedAmount > 1) + if (itemType == ItemDefinition.ItemType.Other || itemType == ItemDefinition.ItemType.Material || x.stackedAmount > 1) return false; if (Player.Inventory.Instance.ItemSlots.ContainsValue(x)) { @@ -6163,14 +6163,14 @@ public static void PopulateItems() { if (Player.Inventory.Instance.ItemSlots[slotIndex] == x) { - var options = ItemDataBase.ItemBases.Where(y => y.Value.rarity == 7 && y.Value.type == itemType && (itemType != BaseItem.ItemType.Weapon || y.Value.subtype == x.subtype)).Select(y => y.Key).ToList(); + var options = ItemDatabase.itemLookup.Where(y => y.Value.rarity == 7 && y.Value.type == itemType && (itemType != ItemDefinition.ItemType.Weapon || y.Value.subtype == x.subtype)).Select(y => y.Key).ToList(); if (options.Count == 0) { ModAPI.Log.Write("No tier 7 items for type: " + itemType); return false; } var random = options[UnityEngine.Random.Range(0, options.Count)]; - Item item = new Item(ItemDataBase.ItemBases[random], 1, 0, false) + Item item = new Item(ItemDatabase.itemLookup[random], 1, 0, false) { level = x.level }; @@ -6186,22 +6186,22 @@ public static void PopulateItems() new BaseItem(new int[][] { }) { - name = Translations.ItemDataBase_ItemDefinitions_497/*Weak Armor Hardening Mixture*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_498/*Adds Armor Stat to a piece of equipment if the item does not already have it*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_497/*Weak Armor Hardening Mixture*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_498/*Adds Armor Stat to a piece of equipment if the item does not already have it*/, //tr rarity = 4, minLevel = 1, maxLevel = 2, canConsume = false, stackSize = 100, - type = BaseItem.ItemType.Material, + type = ItemDefinition.ItemType.Material, icon = Res.ResourceLoader.GetTexture(197), onConsumeCallback = x => { if (x.isEquipped) return false; var itemType = x.type; - if (itemType == BaseItem.ItemType.Other || itemType == BaseItem.ItemType.Material || x.stackedAmount > 1) + if (itemType == ItemDefinition.ItemType.Other || itemType == ItemDefinition.ItemType.Material || x.stackedAmount > 1) return false; if (!x.stats.Any(y => y.id == (int)ARMOR || y.id == (int)LESSERARMOR)) { @@ -6215,22 +6215,22 @@ public static void PopulateItems() new BaseItem(new int[][] { }) { - name = Translations.ItemDataBase_ItemDefinitions_499/*Upgraded Armor Hardening Mixture*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_500/*Adds Damage Reduction Stat to a piece of equipment if the item does not already have it*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_499/*Upgraded Armor Hardening Mixture*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_500/*Adds Damage Reduction Stat to a piece of equipment if the item does not already have it*/, //tr rarity = 5, minLevel = 1, maxLevel = 2, canConsume = false, stackSize = 100, - type = BaseItem.ItemType.Material, + type = ItemDefinition.ItemType.Material, icon = Res.ResourceLoader.GetTexture(197), onConsumeCallback = x => { if (x.isEquipped) return false; var itemType = x.type; - if (itemType == BaseItem.ItemType.Other || itemType == BaseItem.ItemType.Material || x.stackedAmount > 1) + if (itemType == ItemDefinition.ItemType.Other || itemType == ItemDefinition.ItemType.Material || x.stackedAmount > 1) return false; if (!x.stats.Any(y => y.id == (int)DAMAGE_REDUCTION)) { @@ -6244,22 +6244,22 @@ public static void PopulateItems() new BaseItem(new int[][] { }) { - name = Translations.ItemDataBase_ItemDefinitions_501/*Chaos Water*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_502/*Rerolls all stats on an item of rarity no higher than orange*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_501/*Chaos Water*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_502/*Rerolls all stats on an item of rarity no higher than orange*/, //tr rarity = 4, minLevel = 1, maxLevel = 2, canConsume = false, stackSize = 100, - type = BaseItem.ItemType.Material, + type = ItemDefinition.ItemType.Material, icon = Res.ResourceLoader.GetTexture(195), onConsumeCallback = x => { if (x.isEquipped) return false; var itemType = x.type; - if (itemType == BaseItem.ItemType.Other || itemType == BaseItem.ItemType.Material || x.stackedAmount > 1 || x.rarity > 5) + if (itemType == ItemDefinition.ItemType.Other || itemType == ItemDefinition.ItemType.Material || x.stackedAmount > 1 || x.rarity > 5) return false; if (x.stats.Count > 1) { @@ -6271,22 +6271,22 @@ public static void PopulateItems() }; new BaseItem(new int[][] { }) { - name = Translations.ItemDataBase_ItemDefinitions_503/*Upgraded Chaos Water*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_504/*Rerolls all stats on an item of any rarity*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_503/*Upgraded Chaos Water*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_504/*Rerolls all stats on an item of any rarity*/, //tr rarity = 6, minLevel = 1, maxLevel = 2, canConsume = false, stackSize = 100, - type = BaseItem.ItemType.Material, + type = ItemDefinition.ItemType.Material, icon = Res.ResourceLoader.GetTexture(194), onConsumeCallback = x => { if (x.isEquipped) return false; var itemType = x.type; - if (itemType == BaseItem.ItemType.Other || itemType == BaseItem.ItemType.Material || x.stackedAmount > 1) + if (itemType == ItemDefinition.ItemType.Other || itemType == ItemDefinition.ItemType.Material || x.stackedAmount > 1) return false; if (x.stats.Count > 1) { @@ -6309,15 +6309,15 @@ public static void PopulateItems() new [] {ALL}, }) { - name = Translations.ItemDataBase_ItemDefinitions_505/*Gun Blade*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_506("150%")/*Increases pistol damage by 150%*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_505/*Gun Blade*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_506("150%")/*Increases pistol damage by 150%*/, //tr rarity = 6, minLevel = 35, maxLevel = 36, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Weapon, - subtype = BaseItem.WeaponModelType.Axe, + type = ItemDefinition.ItemType.Weapon, + subtype = ItemDefinition.ItemSubtype.Axe, icon = Res.ResourceLoader.GetTexture(138), onEquipCallback = () => ModdedPlayer.Stats.perk_bulletDamageMult.Multiply(2.5f), onUnequipCallback = () => ModdedPlayer.Stats.perk_bulletDamageMult.Divide(2.5f), @@ -6339,15 +6339,15 @@ public static void PopulateItems() new [] {ALL}, }) { - name = Translations.ItemDataBase_ItemDefinitions_507/*Sharpshooter's Axe*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_508("50%", "600%")/*Increases pistol headshot chance by 50% and pistol damage by 600%*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_507/*Sharpshooter's Axe*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_508("50%", "600%")/*Increases pistol headshot chance by 50% and pistol damage by 600%*/, //tr rarity = 7, minLevel = 35, maxLevel = 36, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Weapon, - subtype = BaseItem.WeaponModelType.Axe, + type = ItemDefinition.ItemType.Weapon, + subtype = ItemDefinition.ItemSubtype.Axe, icon = Res.ResourceLoader.GetTexture(138), onEquipCallback = () => { ModdedPlayer.Stats.perk_bulletDamageMult.Multiply(6f); ModdedPlayer.Stats.perk_bulletCritChance.Add(0.5f); }, onUnequipCallback = () => { ModdedPlayer.Stats.perk_bulletDamageMult.Divide(6f); ModdedPlayer.Stats.perk_bulletCritChance.Sub(0.5f); }, @@ -6365,16 +6365,16 @@ public static void PopulateItems() new [] {MELEE_DAMAGE_INCREASE,ATTACKSPEED,BASE_MELEE_DAMAGE,MELEE_WEAPON_RANGE}, }) { - name = Translations.ItemDataBase_ItemDefinitions_509/*Shield Blade*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_510/*So large can be used as a shield*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_511/*A normal human cannot lift this weapon.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_509/*Shield Blade*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_510/*So large can be used as a shield*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_511/*A normal human cannot lift this weapon.*/, //tr rarity = 6, minLevel = 50, maxLevel = 52, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Weapon, - subtype = BaseItem.WeaponModelType.GreatSword, + type = ItemDefinition.ItemType.Weapon, + subtype = ItemDefinition.ItemSubtype.GreatSword, icon = Res.ResourceLoader.GetTexture(88), }; new BaseItem(new Stat[][] @@ -6391,17 +6391,17 @@ public static void PopulateItems() new [] {ALL}, }) { - name = Translations.ItemDataBase_ItemDefinitions_512/*Blunt Blade for Bashing Skulls*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_510/*So large can be used as a shield*/, //tr - lore = Translations.ItemDataBase_ItemDefinitions_511/*A normal human cannot lift this weapon.*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_513("200%")/*Bash damage debuff on enemies is increased by 200%*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_512/*Blunt Blade for Bashing Skulls*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_510/*So large can be used as a shield*/, //tr + lore = Translations.ItemDatabase_ItemDefinitions_511/*A normal human cannot lift this weapon.*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_513("200%")/*Bash damage debuff on enemies is increased by 200%*/, //tr rarity = 7, minLevel = 50, maxLevel = 52, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Weapon, - subtype = BaseItem.WeaponModelType.GreatSword, + type = ItemDefinition.ItemType.Weapon, + subtype = ItemDefinition.ItemSubtype.GreatSword, icon = Res.ResourceLoader.GetTexture(88), onEquipCallback = () => ModdedPlayer.Stats.spell_bashDamageDebuffAmount.Add(2.00f), onUnequipCallback = () => ModdedPlayer.Stats.spell_bashDamageDebuffAmount.Sub(2.00f), @@ -6423,14 +6423,14 @@ public static void PopulateItems() new[] { ALL }, }) { - name = Translations.ItemDataBase_ItemDefinitions_514/*Madman's Legacy*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_515("69%")/*Frenzy damage per stack is increased by 50%*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_514/*Madman's Legacy*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_515("69%")/*Frenzy damage per stack is increased by 50%*/, //tr rarity = 7, minLevel = 1, maxLevel = 2, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Shield, + type = ItemDefinition.ItemType.Shield, icon = Res.ResourceLoader.GetTexture(99), onEquipCallback = () => ModdedPlayer.Stats.spell_frenzyDmg.Add(0.69f), onUnequipCallback = () => ModdedPlayer.Stats.spell_frenzyDmg.Add(0.69f), @@ -6446,13 +6446,13 @@ public static void PopulateItems() new[] { MELEE_DAMAGE_INCREASE, ATTACKSPEED, BASE_MELEE_DAMAGE, MELEE_WEAPON_RANGE,MAX_LIFE_MULT,MAX_ENERGY_MULT,ALL_RECOVERY }, }) { - name = Translations.ItemDataBase_ItemDefinitions_516/*Buckler*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_516/*Buckler*/, //tr rarity = 5, minLevel = 1, maxLevel = 2, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Shield, + type = ItemDefinition.ItemType.Shield, icon = Res.ResourceLoader.GetTexture(99), }; new BaseItem(new Stat[][] @@ -6466,14 +6466,14 @@ public static void PopulateItems() new [] {ELITE_DAMAGE_REDUCTION,LOOT_QUANTITY,MOVEMENT_SPEED,ARMOR}, }) { - name = Translations.ItemDataBase_ItemDefinitions_517/*Pyromancy Mask*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_518("200%")/*Ignited enemies burn for 200% extended perioid of time.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_517/*Pyromancy Mask*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_518("200%")/*Ignited enemies burn for 200% extended perioid of time.*/, //tr rarity = 5, minLevel = 2, maxLevel = 6, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Helmet, + type = ItemDefinition.ItemType.Helmet, icon = Res.ResourceLoader.GetTexture(91), onEquipCallback = () => ModdedPlayer.Stats.fireDuration.Add(2f), onUnequipCallback = () => ModdedPlayer.Stats.fireDuration.Sub(2f), @@ -6494,14 +6494,14 @@ public static void PopulateItems() new [] {ELITE_DAMAGE_REDUCTION,LOOT_QUANTITY,MOVEMENT_SPEED,ARMOR}, }) { - name = Translations.ItemDataBase_ItemDefinitions_519/*Ember Mask*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_520("700%")/*Ignited enemies burn for 300% extended perioid of time and fire ticks thrice as fast.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_519/*Ember Mask*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_520("700%")/*Ignited enemies burn for 300% extended perioid of time and fire ticks thrice as fast.*/, //tr rarity = 7, minLevel = 2, maxLevel = 6, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Helmet, + type = ItemDefinition.ItemType.Helmet, icon = Res.ResourceLoader.GetTexture(91), onEquipCallback = () => { ModdedPlayer.Stats.fireDuration.Add(7f); ModdedPlayer.Stats.fireTickRate.Add(3f); }, onUnequipCallback = () => { ModdedPlayer.Stats.fireDuration.Sub(7f); ModdedPlayer.Stats.fireTickRate.Sub(3f); }, @@ -6524,15 +6524,15 @@ public static void PopulateItems() new [] {ELITE_DAMAGE_REDUCTION,LOOT_QUANTITY,MOVEMENT_SPEED,ARMOR}, }) { - name = Translations.ItemDataBase_ItemDefinitions_521/*Flame Pauldrons*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_521/*Flame Pauldrons*/, //tr description = "", //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_522(10, "750%")/*Firebolt costs 30 additional energy to cast and its damage scaling is increased by 250%*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_522(10, "750%")/*Firebolt costs 30 additional energy to cast and its damage scaling is increased by 250%*/, //tr rarity = 7, minLevel = 5, maxLevel = 8, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.ShoulderArmor, + type = ItemDefinition.ItemType.ShoulderArmor, icon = Res.ResourceLoader.GetTexture(95), onEquipCallback = () => { @@ -6558,14 +6558,14 @@ public static void PopulateItems() new [] {ELITE_DAMAGE_REDUCTION,ENERGY_ON_HIT,ENERGY_REGEN_BASE,STAMINA_AND_ENERGY_REGEN_MULT,STAMINA_REGEN_BASE}, }) { - name = Translations.ItemDataBase_ItemDefinitions_523/*Ancient Scroll*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_607/*Firebolt deals increased damage*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_523/*Ancient Scroll*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_607/*Firebolt deals increased damage*/, //tr rarity = 6, minLevel = 1, maxLevel = 1, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.SpellScroll, + type = ItemDefinition.ItemType.SpellScroll, icon = Res.ResourceLoader.GetTexture(110), onEquipCallback = () => ModdedPlayer.Stats.spell_fireboltDamageScaling.Add(8), onUnequipCallback = () => ModdedPlayer.Stats.spell_fireboltDamageScaling.Sub(8), @@ -6587,14 +6587,14 @@ public static void PopulateItems() new [] {ELITE_DAMAGE_REDUCTION,ENERGY_ON_HIT,ENERGY_REGEN_BASE,STAMINA_AND_ENERGY_REGEN_MULT,STAMINA_REGEN_BASE}, }) { - name = Translations.ItemDataBase_ItemDefinitions_524/*Guide on Tearing Spacetime*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_525/*Blink creates an explosion at the exit point, and the damage of the explosion is increased by velocity and the radius is increased by the distance of blink*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_524/*Guide on Tearing Spacetime*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_525/*Blink creates an explosion at the exit point, and the damage of the explosion is increased by velocity and the radius is increased by the distance of blink*/, //tr rarity = 7, minLevel = 1, maxLevel = 1, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.SpellScroll, + type = ItemDefinition.ItemType.SpellScroll, icon = Res.ResourceLoader.GetTexture(110), onEquipCallback = () => ModdedPlayer.Stats.spell_blinkDoExplosion.value = true, onUnequipCallback = () => ModdedPlayer.Stats.spell_blinkDoExplosion.value = false, @@ -6614,14 +6614,14 @@ public static void PopulateItems() new [] {ENERGY_ON_HIT,VITALITY,LIFE_ON_HIT } }) { - name = Translations.ItemDataBase_ItemDefinitions_526/*300th Spear*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_526/*300th Spear*/, //tr rarity = 6, minLevel = 30, maxLevel = 34, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Weapon, - subtype = BaseItem.WeaponModelType.Polearm, + type = ItemDefinition.ItemType.Weapon, + subtype = ItemDefinition.ItemSubtype.Polearm, icon = Res.ResourceLoader.GetTexture(181), }.statSlots[0][0].multipier = 6; @@ -6635,8 +6635,8 @@ public static void PopulateItems() new [] {ALL,NONE}, }) { - name = Translations.ItemDataBase_ItemDefinitions_527/*Stone Pauldrons*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_527/*Stone Pauldrons*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.03f), onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.03f), rarity = 2, @@ -6644,7 +6644,7 @@ public static void PopulateItems() maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.ShoulderArmor, + type = ItemDefinition.ItemType.ShoulderArmor, icon = Res.ResourceLoader.GetTexture(95), }.statSlots[0][0].multipier = -0.3f; new BaseItem(new Stat[][] @@ -6655,8 +6655,8 @@ public static void PopulateItems() new [] {ALL}, }) { - name = Translations.ItemDataBase_ItemDefinitions_529/*Iron Shoulder Pads*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_529/*Iron Shoulder Pads*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.04f), onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.04f), rarity = 3, @@ -6664,7 +6664,7 @@ public static void PopulateItems() maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.ShoulderArmor, + type = ItemDefinition.ItemType.ShoulderArmor, icon = Res.ResourceLoader.GetTexture(95), }; new BaseItem(new Stat[][] @@ -6676,8 +6676,8 @@ public static void PopulateItems() new [] {ALL}, }) { - name = Translations.ItemDataBase_ItemDefinitions_531/*Steel Shoulder Pads*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_531/*Steel Shoulder Pads*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.05f), onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.05f), rarity = 4, @@ -6685,7 +6685,7 @@ public static void PopulateItems() maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.ShoulderArmor, + type = ItemDefinition.ItemType.ShoulderArmor, icon = Res.ResourceLoader.GetTexture(95), }; new BaseItem(new Stat[][] @@ -6699,8 +6699,8 @@ public static void PopulateItems() new [] {ALL}, }) { - name = Translations.ItemDataBase_ItemDefinitions_533/*Battle scarred Shoulder Pads*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_533/*Battle scarred Shoulder Pads*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.06f), onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.06f), rarity = 5, @@ -6708,7 +6708,7 @@ public static void PopulateItems() maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.ShoulderArmor, + type = ItemDefinition.ItemType.ShoulderArmor, icon = Res.ResourceLoader.GetTexture(95), }; @@ -6725,8 +6725,8 @@ public static void PopulateItems() new [] {ALL}, }) { - name = Translations.ItemDataBase_ItemDefinitions_535/*Mystery Shoulder Pads*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_535/*Mystery Shoulder Pads*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.1f), onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.1f), rarity = 6, @@ -6734,7 +6734,7 @@ public static void PopulateItems() maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.ShoulderArmor, + type = ItemDefinition.ItemType.ShoulderArmor, icon = Res.ResourceLoader.GetTexture(95), }; @@ -6747,8 +6747,8 @@ public static void PopulateItems() new [] {BLOCK}, }) { - name = Translations.ItemDataBase_ItemDefinitions_537/*Stone Shield*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_537/*Stone Shield*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.03f), onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.03f), rarity = 2, @@ -6756,7 +6756,7 @@ public static void PopulateItems() maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Shield, + type = ItemDefinition.ItemType.Shield, icon = Res.ResourceLoader.GetTexture(99), }.statSlots[0][0].multipier = -0.3f; new BaseItem(new Stat[][] @@ -6769,8 +6769,8 @@ public static void PopulateItems() new [] {BLOCK}, }) { - name = Translations.ItemDataBase_ItemDefinitions_538/*Iron Shield*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_538/*Iron Shield*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.04f), onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.04f), rarity = 3, @@ -6778,7 +6778,7 @@ public static void PopulateItems() maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Shield, + type = ItemDefinition.ItemType.Shield, icon = Res.ResourceLoader.GetTexture(99), }; new BaseItem(new Stat[][] @@ -6792,8 +6792,8 @@ public static void PopulateItems() new [] {BLOCK}, }) { - name = Translations.ItemDataBase_ItemDefinitions_539/*Steel Tower Shield*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_539/*Steel Tower Shield*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.05f), onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.05f), rarity = 4, @@ -6801,7 +6801,7 @@ public static void PopulateItems() maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Shield, + type = ItemDefinition.ItemType.Shield, icon = Res.ResourceLoader.GetTexture(99), }; new BaseItem(new Stat[][] @@ -6818,8 +6818,8 @@ public static void PopulateItems() new [] {BLOCK}, }) { - name = Translations.ItemDataBase_ItemDefinitions_540/*Guardian*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_540/*Guardian*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.06f), onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.06f), rarity = 5, @@ -6827,7 +6827,7 @@ public static void PopulateItems() maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Shield, + type = ItemDefinition.ItemType.Shield, icon = Res.ResourceLoader.GetTexture(99), }; @@ -6846,8 +6846,8 @@ public static void PopulateItems() new [] {ALL}, }) { - name = Translations.ItemDataBase_ItemDefinitions_541/*Mystery Shield*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_541/*Mystery Shield*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.1f), onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.1f), rarity = 6, @@ -6855,7 +6855,7 @@ public static void PopulateItems() maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Shield, + type = ItemDefinition.ItemType.Shield, icon = Res.ResourceLoader.GetTexture(99), }.statSlots[0][0].multipier = 2f; @@ -6868,8 +6868,8 @@ public static void PopulateItems() new [] {ALL,NONE}, }) { - name = Translations.ItemDataBase_ItemDefinitions_542/*Light Boot*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_542/*Light Boot*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.03f), onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.03f), rarity = 2, @@ -6877,7 +6877,7 @@ public static void PopulateItems() maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Boot, + type = ItemDefinition.ItemType.Boot, icon = Res.ResourceLoader.GetTexture(85), }.statSlots[0][0].multipier = 1.3f; new BaseItem(new Stat[][] @@ -6889,8 +6889,8 @@ public static void PopulateItems() new [] {ALL,NONE}, }) { - name = Translations.ItemDataBase_ItemDefinitions_543/*Iron Boots*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_543/*Iron Boots*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.04f), onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.04f), rarity = 3, @@ -6898,7 +6898,7 @@ public static void PopulateItems() maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Boot, + type = ItemDefinition.ItemType.Boot, icon = Res.ResourceLoader.GetTexture(85), }; new BaseItem(new Stat[][] @@ -6911,8 +6911,8 @@ public static void PopulateItems() new [] {ALL,ARMOR}, }) { - name = Translations.ItemDataBase_ItemDefinitions_544/*Steel Boots*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_544/*Steel Boots*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.05f), onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.05f), rarity = 4, @@ -6920,7 +6920,7 @@ public static void PopulateItems() maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Boot, + type = ItemDefinition.ItemType.Boot, icon = Res.ResourceLoader.GetTexture(85), }; new BaseItem(new Stat[][] @@ -6935,8 +6935,8 @@ public static void PopulateItems() new [] {ALL}, }) { - name = Translations.ItemDataBase_ItemDefinitions_545/*Threads*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_545/*Threads*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.06f), onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.06f), rarity = 5, @@ -6944,7 +6944,7 @@ public static void PopulateItems() maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Boot, + type = ItemDefinition.ItemType.Boot, icon = Res.ResourceLoader.GetTexture(85), }; @@ -6962,8 +6962,8 @@ public static void PopulateItems() new [] {ALL}, }) { - name = Translations.ItemDataBase_ItemDefinitions_546/*Mystery Boots*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_546/*Mystery Boots*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.1f), onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.1f), rarity = 6, @@ -6971,7 +6971,7 @@ public static void PopulateItems() maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Boot, + type = ItemDefinition.ItemType.Boot, icon = Res.ResourceLoader.GetTexture(85), }; @@ -6985,8 +6985,8 @@ public static void PopulateItems() new [] {ALL,NONE}, }) { - name = Translations.ItemDataBase_ItemDefinitions_547/*Wraps*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_547/*Wraps*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.03f), onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.03f), rarity = 2, @@ -6994,7 +6994,7 @@ public static void PopulateItems() maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Glove, + type = ItemDefinition.ItemType.Glove, icon = Res.ResourceLoader.GetTexture(86), }.statSlots[0][0].multipier = -0.3f; new BaseItem(new Stat[][] @@ -7005,8 +7005,8 @@ public static void PopulateItems() new [] {ALL}, }) { - name = Translations.ItemDataBase_ItemDefinitions_301/*Iron Gauntlet*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_301/*Iron Gauntlet*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.04f), onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.04f), rarity = 3, @@ -7014,7 +7014,7 @@ public static void PopulateItems() maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Glove, + type = ItemDefinition.ItemType.Glove, icon = Res.ResourceLoader.GetTexture(86), }; new BaseItem(new Stat[][] @@ -7026,8 +7026,8 @@ public static void PopulateItems() new [] {ALL}, }) { - name = Translations.ItemDataBase_ItemDefinitions_548/*Steel Gauntlet*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_548/*Steel Gauntlet*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.05f), onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.05f), rarity = 4, @@ -7035,7 +7035,7 @@ public static void PopulateItems() maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Glove, + type = ItemDefinition.ItemType.Glove, icon = Res.ResourceLoader.GetTexture(86), }; new BaseItem(new Stat[][] @@ -7049,8 +7049,8 @@ public static void PopulateItems() new [] {ALL}, }) { - name = Translations.ItemDataBase_ItemDefinitions_549/*Titanium Gauntlet*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_549/*Titanium Gauntlet*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.06f), onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.06f), rarity = 5, @@ -7058,7 +7058,7 @@ public static void PopulateItems() maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Glove, + type = ItemDefinition.ItemType.Glove, icon = Res.ResourceLoader.GetTexture(86), }; @@ -7075,8 +7075,8 @@ public static void PopulateItems() new [] {ALL}, }) { - name = Translations.ItemDataBase_ItemDefinitions_550/*Mystery Gauntlet*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_550/*Mystery Gauntlet*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.1f), onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.1f), rarity = 6, @@ -7084,7 +7084,7 @@ public static void PopulateItems() maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Glove, + type = ItemDefinition.ItemType.Glove, icon = Res.ResourceLoader.GetTexture(86), }; @@ -7098,8 +7098,8 @@ public static void PopulateItems() new [] {ALL,NONE}, }) { - name = Translations.ItemDataBase_ItemDefinitions_551/*Leather Tasset*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_551/*Leather Tasset*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.03f), onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.03f), rarity = 2, @@ -7107,7 +7107,7 @@ public static void PopulateItems() maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Pants, + type = ItemDefinition.ItemType.Pants, icon = Res.ResourceLoader.GetTexture(87), }.statSlots[0][0].multipier = -0.3f; new BaseItem(new Stat[][] @@ -7119,8 +7119,8 @@ public static void PopulateItems() new [] {ALL}, }) { - name = Translations.ItemDataBase_ItemDefinitions_552/*Iron Tasset*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_552/*Iron Tasset*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.04f), onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.04f), rarity = 3, @@ -7128,7 +7128,7 @@ public static void PopulateItems() maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Pants, + type = ItemDefinition.ItemType.Pants, icon = Res.ResourceLoader.GetTexture(87), }; new BaseItem(new Stat[][] @@ -7141,8 +7141,8 @@ public static void PopulateItems() new [] {ALL}, }) { - name = Translations.ItemDataBase_ItemDefinitions_553/*Steel Tasset*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_553/*Steel Tasset*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.05f), onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.05f), rarity = 4, @@ -7150,7 +7150,7 @@ public static void PopulateItems() maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Pants, + type = ItemDefinition.ItemType.Pants, icon = Res.ResourceLoader.GetTexture(87), }; new BaseItem(new Stat[][] @@ -7165,8 +7165,8 @@ public static void PopulateItems() new [] {ALL}, }) { - name = Translations.ItemDataBase_ItemDefinitions_554/*Black Steel Leggins*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_554/*Black Steel Leggins*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.06f), onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.06f), rarity = 5, @@ -7174,7 +7174,7 @@ public static void PopulateItems() maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Pants, + type = ItemDefinition.ItemType.Pants, icon = Res.ResourceLoader.GetTexture(87), }; @@ -7192,8 +7192,8 @@ public static void PopulateItems() new [] {ALL}, }) { - name = Translations.ItemDataBase_ItemDefinitions_555/*Mystery Leggins*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_555/*Mystery Leggins*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.1f), onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.1f), rarity = 6, @@ -7201,7 +7201,7 @@ public static void PopulateItems() maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Pants, + type = ItemDefinition.ItemType.Pants, icon = Res.ResourceLoader.GetTexture(87), }; @@ -7212,8 +7212,8 @@ public static void PopulateItems() new [] {ALL,NONE}, }) { - name = Translations.ItemDataBase_ItemDefinitions_556/*Leather Vest*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_556/*Leather Vest*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.03f), onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.03f), rarity = 2, @@ -7221,7 +7221,7 @@ public static void PopulateItems() maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.ChestArmor, + type = ItemDefinition.ItemType.ChestArmor, icon = Res.ResourceLoader.GetTexture(96), }.statSlots[0][0].multipier = -0.3f; new BaseItem(new Stat[][] @@ -7232,8 +7232,8 @@ public static void PopulateItems() new [] {ALL}, }) { - name = Translations.ItemDataBase_ItemDefinitions_557/*Iron Breastplate*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_557/*Iron Breastplate*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.04f), onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.04f), rarity = 3, @@ -7241,7 +7241,7 @@ public static void PopulateItems() maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.ChestArmor, + type = ItemDefinition.ItemType.ChestArmor, icon = Res.ResourceLoader.GetTexture(96), }; new BaseItem(new Stat[][] @@ -7253,8 +7253,8 @@ public static void PopulateItems() new [] {ALL}, }) { - name = Translations.ItemDataBase_ItemDefinitions_558/*Steel Breastplate*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_558/*Steel Breastplate*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.05f), onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.05f), rarity = 4, @@ -7262,7 +7262,7 @@ public static void PopulateItems() maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.ChestArmor, + type = ItemDefinition.ItemType.ChestArmor, icon = Res.ResourceLoader.GetTexture(96), }; new BaseItem(new Stat[][] @@ -7277,8 +7277,8 @@ public static void PopulateItems() new [] {ALL}, }) { - name = Translations.ItemDataBase_ItemDefinitions_559/*Silver Armor*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_559/*Silver Armor*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.06f), onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.06f), rarity = 5, @@ -7286,7 +7286,7 @@ public static void PopulateItems() maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.ChestArmor, + type = ItemDefinition.ItemType.ChestArmor, icon = Res.ResourceLoader.GetTexture(96), }; @@ -7304,8 +7304,8 @@ public static void PopulateItems() new [] {ALL}, }) { - name = Translations.ItemDataBase_ItemDefinitions_560/*Mystery Breastplate*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_560/*Mystery Breastplate*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.1f), onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.1f), rarity = 6, @@ -7313,7 +7313,7 @@ public static void PopulateItems() maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.ChestArmor, + type = ItemDefinition.ItemType.ChestArmor, icon = Res.ResourceLoader.GetTexture(96), }; @@ -7324,8 +7324,8 @@ public static void PopulateItems() new [] {ALL,NONE}, }) { - name = Translations.ItemDataBase_ItemDefinitions_561/*Cloth Band*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_561/*Cloth Band*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.03f), onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.03f), rarity = 2, @@ -7333,7 +7333,7 @@ public static void PopulateItems() maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Bracer, + type = ItemDefinition.ItemType.Bracer, icon = Res.ResourceLoader.GetTexture(93), }.statSlots[0][0].multipier = -0.3f; new BaseItem(new Stat[][] @@ -7344,8 +7344,8 @@ public static void PopulateItems() new [] {ALL}, }) { - name = Translations.ItemDataBase_ItemDefinitions_562/*Iron Wristguard*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_562/*Iron Wristguard*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.04f), onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.04f), rarity = 3, @@ -7353,7 +7353,7 @@ public static void PopulateItems() maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Bracer, + type = ItemDefinition.ItemType.Bracer, icon = Res.ResourceLoader.GetTexture(93), }; new BaseItem(new Stat[][] @@ -7365,8 +7365,8 @@ public static void PopulateItems() new [] {ALL}, }) { - name = Translations.ItemDataBase_ItemDefinitions_563/*Steel Wristguard*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_563/*Steel Wristguard*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.05f), onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.05f), rarity = 4, @@ -7374,7 +7374,7 @@ public static void PopulateItems() maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Bracer, + type = ItemDefinition.ItemType.Bracer, icon = Res.ResourceLoader.GetTexture(93), }; new BaseItem(new Stat[][] @@ -7388,8 +7388,8 @@ public static void PopulateItems() new [] {ALL}, }) { - name = Translations.ItemDataBase_ItemDefinitions_564/*Baron Wristguards*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_564/*Baron Wristguards*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.06f), onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.06f), rarity = 5, @@ -7397,7 +7397,7 @@ public static void PopulateItems() maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Bracer, + type = ItemDefinition.ItemType.Bracer, icon = Res.ResourceLoader.GetTexture(93), }; @@ -7414,8 +7414,8 @@ public static void PopulateItems() new [] {ALL}, }) { - name = Translations.ItemDataBase_ItemDefinitions_565/*Mystery Wristguards*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_565/*Mystery Wristguards*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.1f), onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.1f), rarity = 6, @@ -7423,7 +7423,7 @@ public static void PopulateItems() maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Bracer, + type = ItemDefinition.ItemType.Bracer, icon = Res.ResourceLoader.GetTexture(93), }; @@ -7436,8 +7436,8 @@ public static void PopulateItems() new [] {ALL,NONE}, }) { - name = Translations.ItemDataBase_ItemDefinitions_218/*Horned Helmet*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_218/*Horned Helmet*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.03f), onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.03f), rarity = 2, @@ -7445,7 +7445,7 @@ public static void PopulateItems() maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Helmet, + type = ItemDefinition.ItemType.Helmet, icon = Res.ResourceLoader.GetTexture(91), }.statSlots[0][0].multipier = -0.3f; new BaseItem(new Stat[][] @@ -7457,8 +7457,8 @@ public static void PopulateItems() new [] {ALL}, }) { - name = Translations.ItemDataBase_ItemDefinitions_566/*Iron Helmet*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_566/*Iron Helmet*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.04f), onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.04f), rarity = 3, @@ -7466,7 +7466,7 @@ public static void PopulateItems() maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Helmet, + type = ItemDefinition.ItemType.Helmet, icon = Res.ResourceLoader.GetTexture(91), }; new BaseItem(new Stat[][] @@ -7479,8 +7479,8 @@ public static void PopulateItems() new [] {ALL}, }) { - name = Translations.ItemDataBase_ItemDefinitions_567/*Steel Helmet*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_567/*Steel Helmet*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.05f), onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.05f), rarity = 4, @@ -7488,7 +7488,7 @@ public static void PopulateItems() maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Helmet, + type = ItemDefinition.ItemType.Helmet, icon = Res.ResourceLoader.GetTexture(91), }; new BaseItem(new Stat[][] @@ -7503,8 +7503,8 @@ public static void PopulateItems() new [] {ALL}, }) { - name = Translations.ItemDataBase_ItemDefinitions_568/*Armored Hood*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_568/*Armored Hood*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.06f), onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.06f), rarity = 5, @@ -7512,7 +7512,7 @@ public static void PopulateItems() maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Helmet, + type = ItemDefinition.ItemType.Helmet, icon = Res.ResourceLoader.GetTexture(91), }; @@ -7530,8 +7530,8 @@ public static void PopulateItems() new [] {ALL}, }) { - name = Translations.ItemDataBase_ItemDefinitions_569/*Mystery Helmet*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_569/*Mystery Helmet*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.1f), onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.1f), rarity = 6, @@ -7539,7 +7539,7 @@ public static void PopulateItems() maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Helmet, + type = ItemDefinition.ItemType.Helmet, icon = Res.ResourceLoader.GetTexture(91), }; @@ -7561,9 +7561,9 @@ public static void PopulateItems() new [] {EMPTYSOCKET,NONE}, }) { - name = Translations.ItemDataBase_ItemDefinitions_570/*Yorium's Gaze*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_571("30%")/*SET PIECE. Melee weapon range is increased by 30%, attack cost in stamina is halved.*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_572(15, "35%", 15, "5%")/*Set Piece:\n2 Pieces- Berserk does not apply exhaustion when it ends\n3 Pieces - Berserk duration is increased by 15 seconds\n4 Pieces - Each second of berserk being in effect increases damage by 35%.\n5 Pieces - For the first 15 seconds of Berserk attack speed increases by 30% per second, and lasts till the end of the spell's duration.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_570/*Yorium's Gaze*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_571("30%")/*SET PIECE. Melee weapon range is increased by 30%, attack cost in stamina is halved.*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_572(15, "35%", 15, "5%")/*Set Piece:\n2 Pieces- Berserk does not apply exhaustion when it ends\n3 Pieces - Berserk duration is increased by 15 seconds\n4 Pieces - Each second of berserk being in effect increases damage by 35%.\n5 Pieces - For the first 15 seconds of Berserk attack speed increases by 30% per second, and lasts till the end of the spell's duration.*/, //tr onEquipCallback = () => BerserkSet.Equip(), onUnequipCallback = () => BerserkSet.Unequip(), rarity = 7, @@ -7571,7 +7571,7 @@ public static void PopulateItems() maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Helmet, + type = ItemDefinition.ItemType.Helmet, icon = Res.ResourceLoader.GetTexture(91), }; new BaseItem(new Stat[][] @@ -7591,9 +7591,9 @@ public static void PopulateItems() new [] {ARMOR,DAMAGE_REDUCTION,ALL_ATTRIBUTES}, }) { - name = Translations.ItemDataBase_ItemDefinitions_573/*Yorium's Ruthlessness*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_571("30%")/*SET PIECE. Melee weapon range is increased by 30%, attack cost in stamina is halved.*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_572(15, "35%", 15, "5%")/*Set Piece:\n2 Pieces- Berserk does not apply exhaustion when it ends\n3 Pieces - Berserk duration is increased by 15 seconds\n4 Pieces - Each second of berserk being in effect increases damage by 35%.\n5 Pieces - For the first 15 seconds of Berserk attack speed increases by 30% per second, and lasts till the end of the spell's duration.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_573/*Yorium's Ruthlessness*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_571("30%")/*SET PIECE. Melee weapon range is increased by 30%, attack cost in stamina is halved.*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_572(15, "35%", 15, "5%")/*Set Piece:\n2 Pieces- Berserk does not apply exhaustion when it ends\n3 Pieces - Berserk duration is increased by 15 seconds\n4 Pieces - Each second of berserk being in effect increases damage by 35%.\n5 Pieces - For the first 15 seconds of Berserk attack speed increases by 30% per second, and lasts till the end of the spell's duration.*/, //tr onEquipCallback = () => BerserkSet.Equip(), onUnequipCallback = () => BerserkSet.Unequip(), rarity = 7, @@ -7601,7 +7601,7 @@ public static void PopulateItems() maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.ChestArmor, + type = ItemDefinition.ItemType.ChestArmor, icon = Res.ResourceLoader.GetTexture(96), }; @@ -7626,9 +7626,9 @@ public static void PopulateItems() }) { - name = Translations.ItemDataBase_ItemDefinitions_574/*Yorium's Burden*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_571("30%")/*SET PIECE. Melee weapon range is increased by 30%, attack cost in stamina is halved.*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_572(15, "35%", 15, "5%")/*Set Piece:\n2 Pieces- Berserk does not apply exhaustion when it ends\n3 Pieces - Berserk duration is increased by 15 seconds\n4 Pieces - Each second of berserk being in effect increases damage by 35%.\n5 Pieces - For the first 15 seconds of Berserk attack speed increases by 30% per second, and lasts till the end of the spell's duration.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_574/*Yorium's Burden*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_571("30%")/*SET PIECE. Melee weapon range is increased by 30%, attack cost in stamina is halved.*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_572(15, "35%", 15, "5%")/*Set Piece:\n2 Pieces- Berserk does not apply exhaustion when it ends\n3 Pieces - Berserk duration is increased by 15 seconds\n4 Pieces - Each second of berserk being in effect increases damage by 35%.\n5 Pieces - For the first 15 seconds of Berserk attack speed increases by 30% per second, and lasts till the end of the spell's duration.*/, //tr onEquipCallback = () => BerserkSet.Equip(), onUnequipCallback = () => BerserkSet.Unequip(), rarity = 7, @@ -7636,7 +7636,7 @@ public static void PopulateItems() maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.ShoulderArmor, + type = ItemDefinition.ItemType.ShoulderArmor, icon = Res.ResourceLoader.GetTexture(95), }; new BaseItem(new Stat[][] @@ -7660,9 +7660,9 @@ public static void PopulateItems() }) { - name = Translations.ItemDataBase_ItemDefinitions_575/*Yorium's Resolve*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_571("30%")/*SET PIECE. Melee weapon range is increased by 30%, attack cost in stamina is halved.*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_572(15, "35%", 15, "5%")/*Set Piece:\n2 Pieces- Berserk does not apply exhaustion when it ends\n3 Pieces - Berserk duration is increased by 15 seconds\n4 Pieces - Each second of berserk being in effect increases damage by 35%.\n5 Pieces - For the first 15 seconds of Berserk attack speed increases by 30% per second, and lasts till the end of the spell's duration.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_575/*Yorium's Resolve*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_571("30%")/*SET PIECE. Melee weapon range is increased by 30%, attack cost in stamina is halved.*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_572(15, "35%", 15, "5%")/*Set Piece:\n2 Pieces- Berserk does not apply exhaustion when it ends\n3 Pieces - Berserk duration is increased by 15 seconds\n4 Pieces - Each second of berserk being in effect increases damage by 35%.\n5 Pieces - For the first 15 seconds of Berserk attack speed increases by 30% per second, and lasts till the end of the spell's duration.*/, //tr onEquipCallback = () => BerserkSet.Equip(), onUnequipCallback = () => BerserkSet.Unequip(), rarity = 7, @@ -7670,7 +7670,7 @@ public static void PopulateItems() maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Bracer, + type = ItemDefinition.ItemType.Bracer, icon = Res.ResourceLoader.GetTexture(93), }; new BaseItem(new Stat[][] @@ -7692,9 +7692,9 @@ public static void PopulateItems() new [] {EMPTYSOCKET,NONE}, }) { - name = Translations.ItemDataBase_ItemDefinitions_576/*Atomic Augmentation*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_571("30%")/*SET PIECE. Melee weapon range is increased by 30%, attack cost in stamina is halved.*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_572(15, "35%", 15, "5%")/*Set Piece:\n2 Pieces- Berserk does not apply exhaustion when it ends\n3 Pieces - Berserk duration is increased by 15 seconds\n4 Pieces - Each second of berserk being in effect increases damage by 35%.\n5 Pieces - For the first 15 seconds of Berserk attack speed increases by 30% per second, and lasts till the end of the spell's duration.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_576/*Atomic Augmentation*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_571("30%")/*SET PIECE. Melee weapon range is increased by 30%, attack cost in stamina is halved.*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_572(15, "35%", 15, "5%")/*Set Piece:\n2 Pieces- Berserk does not apply exhaustion when it ends\n3 Pieces - Berserk duration is increased by 15 seconds\n4 Pieces - Each second of berserk being in effect increases damage by 35%.\n5 Pieces - For the first 15 seconds of Berserk attack speed increases by 30% per second, and lasts till the end of the spell's duration.*/, //tr onEquipCallback = () => BerserkSet.Equip(), onUnequipCallback = () => BerserkSet.Unequip(), rarity = 7, @@ -7702,7 +7702,7 @@ public static void PopulateItems() maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Boot, + type = ItemDefinition.ItemType.Boot, icon = Res.ResourceLoader.GetTexture(85), }; new BaseItem(new Stat[][] @@ -7726,9 +7726,9 @@ public static void PopulateItems() }) { - name = Translations.ItemDataBase_ItemDefinitions_577/*Yorium's Assault*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_571("30%")/*SET PIECE. Melee weapon range is increased by 30%, attack cost in stamina is halved.*/, //tr - description = Translations.ItemDataBase_ItemDefinitions_572(15, "35%", 15, "5%")/*Set Piece:\n2 Pieces- Berserk does not apply exhaustion when it ends\n3 Pieces - Berserk duration is increased by 15 seconds\n4 Pieces - Each second of berserk being in effect increases damage by 35%.\n5 Pieces - For the first 15 seconds of Berserk attack speed increases by 30% per second, and lasts till the end of the spell's duration.*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_577/*Yorium's Assault*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_571("30%")/*SET PIECE. Melee weapon range is increased by 30%, attack cost in stamina is halved.*/, //tr + description = Translations.ItemDatabase_ItemDefinitions_572(15, "35%", 15, "5%")/*Set Piece:\n2 Pieces- Berserk does not apply exhaustion when it ends\n3 Pieces - Berserk duration is increased by 15 seconds\n4 Pieces - Each second of berserk being in effect increases damage by 35%.\n5 Pieces - For the first 15 seconds of Berserk attack speed increases by 30% per second, and lasts till the end of the spell's duration.*/, //tr onEquipCallback = () => BerserkSet.Equip(), onUnequipCallback = () => BerserkSet.Unequip(), rarity = 7, @@ -7736,7 +7736,7 @@ public static void PopulateItems() maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Glove, + type = ItemDefinition.ItemType.Glove, icon = Res.ResourceLoader.GetTexture(86), }; new BaseItem(new Stat[][] @@ -7759,8 +7759,8 @@ public static void PopulateItems() }) { - name = Translations.ItemDataBase_ItemDefinitions_578/*Undying Promise*/, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_579(1)/*Resist lethal damage on a 1 minute cooldown*/, //tr + name = Translations.ItemDatabase_ItemDefinitions_578/*Undying Promise*/, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_579(1)/*Resist lethal damage on a 1 minute cooldown*/, //tr onEquipCallback = () => COTFEvents.Instance.OnTakeLethalDamage.AddListener(UniqueItemFunctions.ResistDeath), onUnequipCallback = () => COTFEvents.Instance.OnTakeLethalDamage.RemoveListener(UniqueItemFunctions.ResistDeath), rarity = 7, @@ -7768,7 +7768,7 @@ public static void PopulateItems() maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Pants, + type = ItemDefinition.ItemType.Pants, icon = Res.ResourceLoader.GetTexture(87), }; new BaseItem(new Stat[][] @@ -7790,14 +7790,14 @@ public static void PopulateItems() }) { - name = Translations.ItemDataBase_ItemDefinitions_609, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_610, //tr + name = Translations.ItemDatabase_ItemDefinitions_609, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_610, //tr rarity = 7, minLevel = 20, maxLevel = 28, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Pants, + type = ItemDefinition.ItemType.Pants, icon = Res.ResourceLoader.GetTexture(87), onEquipCallback = () => { ModdedPlayer.Stats.spell_frenzy_active_critChance.Add(0.05f); ModdedPlayer.Stats.spell_frenzyAtkSpeed.Add(0.03f); }, onUnequipCallback = () => { ModdedPlayer.Stats.spell_frenzy_active_critChance.Sub(0.05f); ModdedPlayer.Stats.spell_frenzyAtkSpeed.Add(0.03f); }, @@ -7826,15 +7826,15 @@ public static void PopulateItems() }) { - name = Translations.ItemDataBase_ItemDefinitions_611, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_612("300%"), //tr + name = Translations.ItemDatabase_ItemDefinitions_611, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_612("300%"), //tr rarity = 7, minLevel = 6, maxLevel = 9, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Weapon, - subtype = BaseItem.WeaponModelType.GreatSword, + type = ItemDefinition.ItemType.Weapon, + subtype = ItemDefinition.ItemSubtype.GreatSword, icon = Res.ResourceLoader.GetTexture(88), onEquipCallback = () => ModdedPlayer.Stats.spell_berserkDamage.Add(3f), onUnequipCallback = () => ModdedPlayer.Stats.spell_berserkDamage.Sub(3f), @@ -7855,15 +7855,15 @@ public static void PopulateItems() }) { - name = Translations.ItemDataBase_ItemDefinitions_613, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_612("100%"), //tr + name = Translations.ItemDatabase_ItemDefinitions_613, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_612("100%"), //tr rarity = 6, minLevel = 6, maxLevel = 9, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Weapon, - subtype = BaseItem.WeaponModelType.GreatSword, + type = ItemDefinition.ItemType.Weapon, + subtype = ItemDefinition.ItemSubtype.GreatSword, icon = Res.ResourceLoader.GetTexture(88), onEquipCallback = () => ModdedPlayer.Stats.spell_berserkDamage.Add(1f), onUnequipCallback = () => ModdedPlayer.Stats.spell_berserkDamage.Sub(1f), @@ -7880,14 +7880,14 @@ public static void PopulateItems() }) { - name = Translations.ItemDataBase_ItemDefinitions_614, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_615("10%"), //tr + name = Translations.ItemDatabase_ItemDefinitions_614, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_615("10%"), //tr rarity = 5, minLevel = 6, maxLevel = 9, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Amulet, + type = ItemDefinition.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(100), onEquipCallback = () => { @@ -7920,14 +7920,14 @@ public static void PopulateItems() }) { - name = Translations.ItemDataBase_ItemDefinitions_616, //tr + name = Translations.ItemDatabase_ItemDefinitions_616, //tr uniqueStat = $"Berserk increases melee and ranged damage by 100%, increases movement speed by 30% and attack speed by 15%", //tr rarity = 7, minLevel = 60, maxLevel = 62, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Amulet, + type = ItemDefinition.ItemType.Amulet, icon = Res.ResourceLoader.GetTexture(100), onEquipCallback = () => { @@ -7961,14 +7961,14 @@ public static void PopulateItems() new[] { ENERGY_ON_HIT, ENERGY_REGEN_BASE, MAX_LIFE, MASSACRE_DURATION, LOOT_QUANTITY, EXPLOSION_DAMAGE }, }) { - name = Translations.ItemDataBase_ItemDefinitions_617, //tr - uniqueStat = Translations.ItemDataBase_ItemDefinitions_618("100%", "40%"),//tr + name = Translations.ItemDatabase_ItemDefinitions_617, //tr + uniqueStat = Translations.ItemDatabase_ItemDefinitions_618("100%", "40%"),//tr rarity = 7, minLevel = 1, maxLevel = 3, canConsume = false, stackSize = 1, - type = BaseItem.ItemType.Bracer, + type = ItemDefinition.ItemType.Bracer, icon = Res.ResourceLoader.GetTexture(93), onEquipCallback = () => { diff --git a/Items/BaseItem.cs b/Items/ItemDefinitions/ItemDefinition.cs similarity index 95% rename from Items/BaseItem.cs rename to Items/ItemDefinitions/ItemDefinition.cs index df20b30..90999a9 100644 --- a/Items/BaseItem.cs +++ b/Items/ItemDefinitions/ItemDefinition.cs @@ -4,17 +4,17 @@ using UnityEngine; -namespace ChampionsOfForest +namespace ChampionsOfForest.Items { - public class BaseItem + public class ItemDefinition { public class StatSlot { - public float chance; + public float probability; public List options; public StatSlot(List options, float chance = 1) { - this.chance = chance; + this.probability = chance; this.options = options; } } @@ -25,7 +25,7 @@ public enum ItemType } public enum Rarity { - Common = 0, Uncommon, Rare, Magic, Legendary + Common = 0, Uncommon, Rare, Magic, Legendary, Max } public enum ItemSubtype { @@ -47,6 +47,8 @@ public enum ItemSubtype public OnItemUsed onEquipCallback, onUnequipCallback; public List statSlots; public int maximumSocketSlots; + public int minimumEmptySockets; + // display properties of the item public string name; @@ -64,7 +66,7 @@ public enum ItemSubtype public EnemyProgression.Enemy lootTable = EnemyProgression.Enemy.All; public int lootWeight = 1; //weight of the item in loot table, used to calculate drop chance - public BaseItem() + public ItemDefinition() { statSlots = new List(); } diff --git a/Items/ItemDefinitions/Other.cs b/Items/ItemDefinitions/Other.cs index 27dee16..3a7b402 100644 --- a/Items/ItemDefinitions/Other.cs +++ b/Items/ItemDefinitions/Other.cs @@ -6,12 +6,12 @@ using ChampionsOfForest.Items.ItemTemplates; -using static ChampionsOfForest.ItemDataBase.Stat; +using static ChampionsOfForest.Items.ItemDatabase.Stat; -namespace ChampionsOfForest +namespace ChampionsOfForest.Items { - public static partial class ItemDataBase + public static partial class ItemDatabase { public static void AddConsumables() diff --git a/Items/ItemDefinitions/Pants.cs b/Items/ItemDefinitions/Pants.cs index 2be8cd3..63f2ddd 100644 --- a/Items/ItemDefinitions/Pants.cs +++ b/Items/ItemDefinitions/Pants.cs @@ -6,11 +6,11 @@ using ChampionsOfForest.Items.ItemTemplates; -using static ChampionsOfForest.ItemDataBase.Stat; +using static ChampionsOfForest.Items.ItemDatabase.Stat; -namespace ChampionsOfForest +namespace ChampionsOfForest.Items { - public static partial class ItemDataBase + public static partial class ItemDatabase { public static void AddPants() diff --git a/Items/ItemDefinitions/Quivers.cs b/Items/ItemDefinitions/Quivers.cs index aacef2c..59cce50 100644 --- a/Items/ItemDefinitions/Quivers.cs +++ b/Items/ItemDefinitions/Quivers.cs @@ -6,11 +6,11 @@ using ChampionsOfForest.Items.ItemTemplates; -using static ChampionsOfForest.ItemDataBase.Stat; +using static ChampionsOfForest.Items.ItemDatabase.Stat; -namespace ChampionsOfForest +namespace ChampionsOfForest.Items { - public static partial class ItemDataBase + public static partial class ItemDatabase { public static void AddQuivers() diff --git a/Items/ItemDefinitions/Rings.cs b/Items/ItemDefinitions/Rings.cs index 5bb90f5..c122476 100644 --- a/Items/ItemDefinitions/Rings.cs +++ b/Items/ItemDefinitions/Rings.cs @@ -6,12 +6,12 @@ using ChampionsOfForest.Items.ItemTemplates; -using static ChampionsOfForest.ItemDataBase.Stat; +using static ChampionsOfForest.Items.ItemDatabase.Stat; -namespace ChampionsOfForest +namespace ChampionsOfForest.Items { - public static partial class ItemDataBase + public static partial class ItemDatabase { public static void AddRings() diff --git a/Items/ItemDefinitions/Shields.cs b/Items/ItemDefinitions/Shields.cs index 91eb168..9bf4252 100644 --- a/Items/ItemDefinitions/Shields.cs +++ b/Items/ItemDefinitions/Shields.cs @@ -5,11 +5,11 @@ using System.Text; using ChampionsOfForest.Items.ItemTemplates; -using static ChampionsOfForest.ItemDataBase.Stat; +using static ChampionsOfForest.Items.ItemDatabase.Stat; -namespace ChampionsOfForest +namespace ChampionsOfForest.Items { - public static partial class ItemDataBase + public static partial class ItemDatabase { public static void AddShields() { @@ -95,22 +95,92 @@ public static void AddShields() //Rarity 3 (Blue) //------------------------------------------------------ + new Shield() + .ShieldStatSlot(3) + .StatSlot(new Stat[] { BLOCK }) + .StatSlot(new Stat[] { DODGE_CHANCE }) + .Name("1st Blue Shield") + .Description("") + .Rarity(3); + //------------------------------------------------------ //Rarity 4 (Yellow) //------------------------------------------------------ + new Shield() + .ShieldStatSlot(4) + .StatSlot(new Stat[] { BLOCK }) + .StatSlot(new Stat[] { DODGE_CHANCE }) + .Name("1st Yellow Shield") + .Description("") + .Rarity(4); + //------------------------------------------------------ //Rarity 5 (Orange) //------------------------------------------------------ + new Shield() + .ShieldStatSlot(5) + .StatSlot(new Stat[] { BLOCK }) + .StatSlot(new Stat[] { DODGE_CHANCE }) + .Name("1st Orange Shield") + .Description("") + .Rarity(5); + //------------------------------------------------------ //Rarity 6 (Green) //------------------------------------------------------ + new Shield() + .ShieldStatSlot(6) + .StatSlot(new Stat[] { BLOCK }) + .StatSlot(new Stat[] { DODGE_CHANCE }) + .Name("1st Green Shield") + .Description("") + .Rarity(6); + //------------------------------------------------------ //Rarity 7 (Red) //------------------------------------------------------ + + new Shield() + .ShieldStatSlot(7) + .StatSlot(new Stat[] { BLOCK }) + .StatSlot(new Stat[] { DODGE_CHANCE }) + .Name("1st Red Shield") + .Description("") + .Rarity(7); + } } } + + +//------------------------------------------------------ +//Rarity 0 (White) +//------------------------------------------------------ + + + +//------------------------------------------------------ +//Rarity 1 (Green) +//------------------------------------------------------ + + + +//------------------------------------------------------ +//Rarity 2 (Blue) +//------------------------------------------------------ + + + +//------------------------------------------------------ +//Rarity 3 (Yellow) +//------------------------------------------------------ + + + +//------------------------------------------------------ +//Rarity 4 (Red) +//------------------------------------------------------ \ No newline at end of file diff --git a/Items/ItemDefinitions/Shields_Lama_Mega.cs b/Items/ItemDefinitions/Shields_Lama_Mega.cs deleted file mode 100644 index 93bec69..0000000 --- a/Items/ItemDefinitions/Shields_Lama_Mega.cs +++ /dev/null @@ -1,186 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Security.Policy; -using System.Text; - -using ChampionsOfForest.Items.ItemTemplates; -using static ChampionsOfForest.ItemDataBase.Stat; - -namespace ChampionsOfForest -{ - public static partial class ItemDataBase - { - public static void AddShields() - { - //------------------------------------------------------ - //Rarity 0 (Grey) - //------------------------------------------------------ - new Shield() - .ShieldStatSlot(1) - .StatSlot(new Stat[] { BLOCK }) - .Name("Rusten Battered Shield") - .Description("Covered in rust and scarred from countless blows, this battered shield has seen better days. It creaks with every movement, offering only the most basic protection.") - .Rarity(0); - - new Shield() - .StatSlot(new Stat[] { BLOCK }) - .Name("Cracked Buckler") - .Description("Cracked and barely holding together, this old buckler offers little more than false hope. Its surface is marred with dents and splits from battles long forgotten.") - .Rarity(0); - new Shield() - .StatSlot(new Stat[] { BLOCK }) - .StatSlot(new Stat[] { STRENGTH, NONE }) - .Name("Shattered Guard") - .Description("No warior would pick this up and call it a shield.") - .Rarity(0); - - //------------------------------------------------------ - //Rarity 1 (White) - //------------------------------------------------------ - - new Shield() - .ShieldStatSlot(2) - .StatSlot(new Stat[] { BLOCK }) - .Name("Plain Iron Shield") - .Description("Fuck you Hazard. ~Lama Mega~") - .Rarity(1); - - new Shield() - .ShieldStatSlot(1) - .StatSlot(new Stat[] { BLOCK }) - .StatSlot(new Stat[] { THORNS, BASEMELEEDAMAGE }) - .Name("Wooden Buckler") - .Description("This shield has a precariously sticking out nail.") - .Rarity(1); - - new Shield() - .ShieldStatSlot(1) - .DefaultStatSlot(1) - .StatSlot(new Stat[] { BLOCK }) - .Name("Footknights's Roundshield") - .Description("") - .Rarity(1); - - //------------------------------------------------------ - //Rarity 2 (Dark Blue) - //------------------------------------------------------ - - new Shield() - .ShieldStatSlot(3) - .StatSlot(new Stat[] { BLOCK }) - .Name("Runed Iron Bulwark") - .Description("Fuck you Hazard. ~Lama Mega~") - .Rarity(1); - - - new Shield() - .ShieldStatSlot(3) - .StatSlot(new Stat[] { BLOCK }) - .StatSlot(new Stat[] { DODGECHANCE }) - .Name("Reinforced Buckler") - .Description("Light and small shield that allows you to dodge attacks.") - .Rarity(2); - - new Shield() - .ShieldStatSlot(3) - .StatSlot(new Stat[] { BLOCK }) - .StatSlot(new Stat[] { DODGECHANCE }) - .Name("Knight's Guard") - .Description("") - .Rarity(2); - - - //------------------------------------------------------ - //Rarity 3 (Blue) - //------------------------------------------------------ - - new Shield() - .ShieldStatSlot(3) - .StatSlot(new Stat[] { BLOCK }) - .StatSlot(new Stat[] { DODGECHANCE }) - .Name("1st Blue Shield") - .Description("") - .Rarity(3); - - //------------------------------------------------------ - //Rarity 4 (Yellow) - //------------------------------------------------------ - - new Shield() - .ShieldStatSlot(4) - .StatSlot(new Stat[] { BLOCK }) - .StatSlot(new Stat[] { DODGECHANCE }) - .Name("1st Yellow Shield") - .Description("") - .Rarity(4); - - //------------------------------------------------------ - //Rarity 5 (Orange) - //------------------------------------------------------ - - new Shield() - .ShieldStatSlot(5) - .StatSlot(new Stat[] { BLOCK }) - .StatSlot(new Stat[] { DODGECHANCE }) - .Name("1st Orange Shield") - .Description("") - .Rarity(5); - - //------------------------------------------------------ - //Rarity 6 (Green) - //------------------------------------------------------ - - new Shield() - .ShieldStatSlot(6) - .StatSlot(new Stat[] { BLOCK }) - .StatSlot(new Stat[] { DODGECHANCE }) - .Name("1st Green Shield") - .Description("") - .Rarity(6); - - //------------------------------------------------------ - //Rarity 7 (Red) - //------------------------------------------------------ - - new Shield() - .ShieldStatSlot(7) - .StatSlot(new Stat[] { BLOCK }) - .StatSlot(new Stat[] { DODGECHANCE }) - .Name("1st Red Shield") - .Description("") - .Rarity(7); - - } - - } -} - - -//------------------------------------------------------ -//Rarity 0 (White) -//------------------------------------------------------ - - - -//------------------------------------------------------ -//Rarity 1 (Green) -//------------------------------------------------------ - - - -//------------------------------------------------------ -//Rarity 2 (Blue) -//------------------------------------------------------ - - - -//------------------------------------------------------ -//Rarity 3 (Yellow) -//------------------------------------------------------ - - - -//------------------------------------------------------ -//Rarity 4 (Red) -//------------------------------------------------------ \ No newline at end of file diff --git a/Items/ItemDefinitions/ShoulderArmor.cs b/Items/ItemDefinitions/ShoulderArmor.cs index 451d440..dc8bee6 100644 --- a/Items/ItemDefinitions/ShoulderArmor.cs +++ b/Items/ItemDefinitions/ShoulderArmor.cs @@ -6,11 +6,11 @@ using ChampionsOfForest.Items.ItemTemplates; -using static ChampionsOfForest.ItemDataBase.Stat; +using static ChampionsOfForest.Items.ItemDatabase.Stat; -namespace ChampionsOfForest +namespace ChampionsOfForest.Items { - public static partial class ItemDataBase + public static partial class ItemDatabase { public static void AddShoulderArmor() diff --git a/Items/ItemDefinitions/SpellScroll.cs b/Items/ItemDefinitions/SpellScroll.cs index 8864a93..512ce74 100644 --- a/Items/ItemDefinitions/SpellScroll.cs +++ b/Items/ItemDefinitions/SpellScroll.cs @@ -6,11 +6,11 @@ using ChampionsOfForest.Items.ItemTemplates; -using static ChampionsOfForest.ItemDataBase.Stat; +using static ChampionsOfForest.Items.ItemDatabase.Stat; -namespace ChampionsOfForest +namespace ChampionsOfForest.Items { - public static partial class ItemDataBase + public static partial class ItemDatabase { public static void AddSpellScroll() diff --git a/Items/ItemStat.cs b/Items/ItemStat.cs index 5a78f1d..1f22acf 100644 --- a/Items/ItemStat.cs +++ b/Items/ItemStat.cs @@ -6,7 +6,7 @@ using UnityEngine; -using static ChampionsOfForest.ItemDataBase; +using static ChampionsOfForest.ItemDatabase; using static ChampionsOfForest.ItemStatBuilder; namespace ChampionsOfForest @@ -43,7 +43,7 @@ public ItemStatBuilder(Stat id, string name, float min, float max) this.name = name; this.rangeMin = min; this.rangeMax = max; - ItemDataBase.AddStat(this); + ItemDatabase.AddStat(this); } public ItemStatBuilder Additive(IAdditiveStat stat) { diff --git a/Items/ItemTemplates.cs b/Items/ItemTemplates.cs index bd3083d..6e79d4d 100644 --- a/Items/ItemTemplates.cs +++ b/Items/ItemTemplates.cs @@ -5,13 +5,14 @@ using ChampionsOfForest.Localization; using ChampionsOfForest.Player; -using static ChampionsOfForest.ItemDataBase.Stat; -using static ChampionsOfForest.ItemDataBase; +using static ChampionsOfForest.Items.ItemDatabase.Stat; +using static ChampionsOfForest.ItemDatabase; +using static ChampionsOfForest.Items.ItemDatabase; namespace ChampionsOfForest.Items.ItemTemplates { - public abstract class ItemTemplateBuilder : BaseItem + public abstract class ItemTemplateBuilder : ItemDefinition { private static List defaultStats = null; @@ -25,8 +26,8 @@ public abstract class ItemTemplateBuilder : BaseItem protected void Register() { - id = ItemDataBase._Item_Bases[type].Count() + PADDING * (int)type; - ItemDataBase._Item_Bases[type].Add(this); + id = ItemDatabase.ItemTemplateStorage[type].Count() + PADDING * (int)type; + ItemDatabase.ItemTemplateStorage[type].Add(this); } @@ -63,7 +64,7 @@ protected List ToItemStatList(Stat[] stats) var list = new List(); foreach (var stat in defaultStatIds) { - list.Add(new ItemStat(ItemDataBase.Stats[(int)stat], 1, -1, 1)); + list.Add(new ItemStat(ItemDatabase.Stats[(int)stat], 1, -1, 1)); } return list; } @@ -115,16 +116,16 @@ protected List ToItemStatList(Stat[] stats) }; // adds the defaultStatIds n times to the stat pool for the item - public ItemTemplateBuilder DefaultStatSlot(int n = 1) + public ItemTemplateBuilder DefaultStatSlot(int n = 1, float probability = 1) { for (int i = 0; i < n; i++) - statSlots.Add(defaultStats); + statSlots.Add(new StatSlot(defaultStats, probability)); return this; } - public ItemTemplateBuilder StatSlot(Stat[] statPool) + public ItemTemplateBuilder StatSlot(Stat[] statPool, float probability = 1) { - statSlots.Add(ToItemStatList(statPool)); + statSlots.Add(new StatSlot(ToItemStatList(statPool), probability)); return this; } @@ -152,11 +153,11 @@ public ItemTemplateBuilder Lore(string s) return this; } - public ItemTemplateBuilder UniqueStat(string s, OnItemEquip _onEquip, OnItemUnequip _onUnequip) + public ItemTemplateBuilder UniqueStat(string statDescription, OnItemUsed _onEquip, OnItemUsed _onUnequip) { onEquipCallback = _onEquip; onUnequipCallback = _onUnequip; - uniqueStat = s; + uniqueStat = statDescription; return this; } @@ -167,7 +168,7 @@ public ItemTemplateBuilder LevelRequirement(int minimumLevel) return this; } - public ItemTemplateBuilder Consumable(string consumableDescriptiuon, OnItemConsume _onConsume, OnItemUnequip _onUnequip) + public ItemTemplateBuilder Consumable(string consumableDescriptiuon, OnItemConsume _onConsume) { onConsumeCallback = _onConsume; uniqueStat = consumableDescriptiuon; @@ -177,12 +178,17 @@ public ItemTemplateBuilder Consumable(string consumableDescriptiuon, OnItemConsu } public ItemTemplateBuilder Rarity(int r) + { + base.rarity = (Rarity)r; + return this; + } + public ItemTemplateBuilder Rarity(Rarity r) { base.rarity = r; return this; } - public ItemTemplateBuilder Icon(int iconid) + public ItemTemplateBuilder Icon(int iconid) { icon = Res.ResourceLoader.GetTexture(iconid); // Texture2D <- int return this; @@ -200,10 +206,10 @@ public ItemTemplateBuilder Icon(int iconid) SPELL_DMG_FROM_INT }; - public ItemTemplateBuilder MagicStatSlot(int n = 1) + public ItemTemplateBuilder MagicStatSlot(int n = 1, float probability = 1) { for (int i = 0; i < n; i++) - statSlots.Add(magicStats); + statSlots.Add(new StatSlot(magicStats, probability)); return this; } @@ -217,10 +223,10 @@ public ItemTemplateBuilder MagicStatSlot(int n = 1) MELEE_ARMOR_PIERCING, }; - public ItemTemplateBuilder MeleeStatSlot(int n = 1) + public ItemTemplateBuilder MeleeStatSlot(int n = 1, float probability = 1) { for (int i = 0; i < n; i++) - statSlots.Add(meleeStats); + statSlots.Add(new StatSlot(meleeStats, probability)); return this; } @@ -238,10 +244,10 @@ public ItemTemplateBuilder MeleeStatSlot(int n = 1) THROWN_SPEAR_DAMAGE, }; - public ItemTemplateBuilder RangedStatSlot(int n = 1) + public ItemTemplateBuilder RangedStatSlot(int n = 1, float probability = 1) { for (int i = 0; i < n; i++) - statSlots.Add(rangedStats); + statSlots.Add(new StatSlot(rangedStats, probability)); return this; } @@ -259,10 +265,10 @@ public ItemTemplateBuilder RangedStatSlot(int n = 1) THORNS, }; - public ItemTemplateBuilder DefenseStatSlot(int n = 1) + public ItemTemplateBuilder DefenseStatSlot(int n = 1, float probability = 1) { for (int i = 0; i < n; i++) - statSlots.Add(defenseStats); + statSlots.Add(new StatSlot(defenseStats, probability)); return this; } @@ -278,10 +284,10 @@ public ItemTemplateBuilder DefenseStatSlot(int n = 1) STAMINA_AND_ENERGY_REGEN_MULT, }; - public ItemTemplateBuilder RecoveryStatSlot(int n = 1) + public ItemTemplateBuilder RecoveryStatSlot(int n = 1, float probability = 1) { for (int i = 0; i < n; i++) - statSlots.Add(recoveryStats); + statSlots.Add(new StatSlot(recoveryStats, probability)); return this; } } @@ -291,7 +297,7 @@ public class Greatsword : ItemTemplateBuilder public Greatsword() { type = ItemType.Weapon; - subtype = WeaponModelType.GreatSword; + subtype = ItemSubtype.GreatSword; Icon(88); Register(); @@ -303,7 +309,7 @@ public class Longsword : ItemTemplateBuilder public Longsword() { type = ItemType.Weapon; - subtype = WeaponModelType.LongSword; + subtype = ItemSubtype.LongSword; Icon(89); Register(); @@ -315,7 +321,7 @@ public class Hammer : ItemTemplateBuilder public Hammer() { type = ItemType.Weapon; - subtype = WeaponModelType.Hammer; + subtype = ItemSubtype.Hammer; Icon(109); Register(); @@ -327,7 +333,7 @@ public class Polearm : ItemTemplateBuilder public Polearm() { type = ItemType.Weapon; - subtype = WeaponModelType.Polearm; + subtype = ItemSubtype.Polearm; Icon(181); Register(); @@ -339,7 +345,7 @@ public class Axe : ItemTemplateBuilder public Axe() { type = ItemType.Weapon; - subtype = WeaponModelType.Axe; + subtype = ItemSubtype.Axe; Icon(138); Register(); @@ -351,7 +357,7 @@ public class Greatbow : ItemTemplateBuilder public Greatbow() { type = ItemType.Weapon; - subtype = WeaponModelType.Greatbow; + subtype = ItemSubtype.Greatbow; Icon(170); Register(); @@ -412,10 +418,10 @@ public class Shield : ItemTemplateBuilder }; private static List shieldStats = null; - public Shield ShieldStatSlot(int n = 1) + public Shield ShieldStatSlot(int n = 1, float probability = 1) { for (int i = 0; i < n; i++) - statSlots.Add(shieldStats); + statSlots.Add(new StatSlot(shieldStats, probability)); return this; } @@ -619,10 +625,10 @@ public Amulet() Register(); } - public Amulet RingStatSlot(int n = 1) + public Amulet RingStatSlot(int n = 1, float probability = 1) { for (int i = 0; i < n; i++) - statSlots.Add(amuletStats); + statSlots.Add(new StatSlot(amuletStats, probability)); return this; } @@ -653,14 +659,9 @@ public class Ring : ItemTemplateBuilder ATTACKSPEED, EXP_GAIN_MULT, ALL_RECOVERY, - EXPERIENCE, ATTACK_COST_REDUCTION, SPELL_COST_REDUCTION, SPELL_COST_TO_STAMINA, - LESSERSTRENGTH, - LESSERAGILITY, - LESSERVITALITY, - LESSERINTELLIGENCE, ENERGY_REGEN_BASE, MAX_LIFE_MULT, MAX_ENERGY_MULT, @@ -670,7 +671,6 @@ public class Ring : ItemTemplateBuilder PROJECTILE_SIZE, LOOT_QUANTITY, ALL_ATTRIBUTES - }; private static List ringStats = null; @@ -685,10 +685,10 @@ public Ring() Register(); } - public Ring RingStatSlot(int n = 1) + public Ring RingStatSlot(int n = 1, float probability = 1) { for(int i = 0; i ClientItemPicker.Instance; - - public static List PlayerStates = new List(); - public static List Players - { - get; - private set; - } + private static ModReferences instance; + public static List Players => Scene.SceneTracker.allPlayers; public static string ThisPlayerID { @@ -32,9 +26,6 @@ public static string ThisPlayerID private set; } - public static List AllPlayerEntities = new List(); - public static Dictionary PlayerLevels = new Dictionary(); - public static Dictionary PlayerHands = new Dictionary(); public static Transform rightHandTransform = null; private void Start() @@ -42,24 +33,13 @@ private void Start() instance = this; if (BoltNetwork.isRunning) { - Players = new List(); StartCoroutine(InitPlayerID()); - StartCoroutine(UpdateSetups()); - if (GameSetup.IsMpServer && BoltNetwork.isRunning) - { - InvokeRepeating("UpdateLevelData", 1, 1); - } - PlayerLevels.Clear(); - } - else - { - Players = new List() { LocalPlayer.GameObject }; } } - public static void SendRandomItemDrops(int count, EnemyProgression.Enemy type,long bounty, ModSettings.Difficulty difficulty, Vector3 position) + public static void SendRandomItemDrops(int count, EnemyProgression.Enemy type, long value, ModSettings.Difficulty difficulty, Vector3 position) { - instance.StartCoroutine(Player.RCoroutines.i.AsyncSendRandomItemDrops(count, type, bounty,difficulty, position)); + instance.StartCoroutine(Player.RCoroutines.i.AsyncSendRandomItemDrops(count, type, value, difficulty, position)); } private IEnumerator InitPlayerID() @@ -79,135 +59,23 @@ private IEnumerator InitPlayerID() } ThisPlayerID = LocalPlayer.Entity.GetState().name; } - float lastLevelCheckTimestamp; - private int lastPlayerLevelCount; - public static void UpdatePlayerLevel(string nameOfPlayer, int level) - { - for (int i = 0; i < Scene.SceneTracker.allPlayers.Count; i++) - { - var state = Scene.SceneTracker.allPlayers[i].GetComponent().GetState(); - if (state!= null) - { - if (state.name == nameOfPlayer) - { - Scene.SceneTracker.allPlayers[i].GetComponentInChildren().SendMessage("SetNameWithLevel",level); - break; - } - } - } - - } - public static void RemoveUnusedPlayerLevels() - { - //todo fix this - List stringsToRemove = new List(); - foreach (var item in PlayerLevels) - { - if (!PlayerStates.Any(x => x.name == item.Key)) - { - stringsToRemove.Add(item.Key); - } - } - ModAPI.Console.Write("Removing old player level data: count=" + stringsToRemove.Count); - //foreach (var item in stringsToRemove) - //{ - // PlayerLevels.Remove(item); - //} - } + public static ServerPlayerState PlayerStates = new ServerPlayerState(); - public static void RequestAllPlayerLevels() - { - if (Time.time - instance.lastLevelCheckTimestamp > 120|| instance.lastPlayerLevelCount != Players.Count) - { - RemoveUnusedPlayerLevels(); - instance.LevelRequestCooldown = 120; - instance.lastLevelCheckTimestamp = Time.time; - instance.lastPlayerLevelCount = Players.Count; - using (System.IO.MemoryStream answerStream = new System.IO.MemoryStream()) - { - using (System.IO.BinaryWriter w = new System.IO.BinaryWriter(answerStream)) - { - w.Write(18); - w.Write("x"); - w.Close(); - } - Network.NetworkManager.SendLine(answerStream.ToArray(), Network.NetworkManager.Target.Clients); - answerStream.Close(); - } - } - } private void UpdateLevelData() { - if (Players.Count > 1) + COTFCommand.Send(NetworkManager.Target.Everyone, new GetPlayerStateParams() { - LevelRequestCooldown -= 1; - if (LevelRequestCooldown < 0 || lastPlayerLevelCount != Players.Count) - { - LevelRequestCooldown = 120; - lastLevelCheckTimestamp = Time.time; - lastPlayerLevelCount = Players.Count; - RemoveUnusedPlayerLevels(); - using (System.IO.MemoryStream answerStream = new System.IO.MemoryStream()) - { - using (System.IO.BinaryWriter w = new System.IO.BinaryWriter(answerStream)) - { - w.Write(18); - w.Close(); - } - Network.NetworkManager.SendLine(answerStream.ToArray(), Network.NetworkManager.Target.Clients); - answerStream.Close(); - } - } - - MFindRequestCooldown--; - if (MFindRequestCooldown <= 0) - { - using (System.IO.MemoryStream answerStream = new System.IO.MemoryStream()) - { - using (System.IO.BinaryWriter w = new System.IO.BinaryWriter(answerStream)) - { - w.Write(23); - w.Close(); - } - Network.NetworkManager.SendLine(answerStream.ToArray(), Network.NetworkManager.Target.Everyone); - answerStream.Close(); - } - MFindRequestCooldown = 300; - } - - if (PlayerHands.ContainsValue(null)) - { - PlayerHands.Clear(); - } - } - else - { - //PlayerLevels.Clear(); - } - } - public static void Reset() - { - instance.MFindRequestCooldown = 0; - instance.LevelRequestCooldown= 0; - } - public static void Host_RequestLevels() - { - if (GameSetup.IsMpServer) - { - using (System.IO.MemoryStream answerStream = new System.IO.MemoryStream()) - { - using (System.IO.BinaryWriter w = new System.IO.BinaryWriter(answerStream)) - { - w.Write(18); - w.Close(); - } - Network.NetworkManager.SendLine(answerStream.ToArray(), Network.NetworkManager.Target.Clients); - answerStream.Close(); - } - } + playerID = ThisPlayerID, + level = ModdedPlayer.instance.level, + health = LocalPlayer.Stats.Health, + maxHealth = ModdedPlayer.Stats.TotalMaxHealth, + entityNetworkID = LocalPlayer.Entity.networkId.PackedValue + }); } + + public static float DamageReduction(int armor) { armor = Mathf.Max(armor, 0); @@ -215,76 +83,10 @@ public static float DamageReduction(int armor) float a = armor; float b = (armor + 500f); - return Mathf.Pow(Mathf.Clamp01(a/b),2f); + return Mathf.Pow(Mathf.Clamp01(a / b), 2f); } - //invalid il code error happens here. i have no clue why, so im randomly changing it so maybe it fixes itself - //im trying splitting to more classes - public static void FindHands() - { - PlayerHands.Clear(); - for (int i = 0; i < Scene.SceneTracker.allPlayers.Count; i++) - { - if (Scene.SceneTracker.allPlayers[i].transform.root != LocalPlayer.Transform) - { - //BoltEntity entity = Scene.SceneTracker.allPlayers[i].GetComponent(); - //if (entity == null) continue; - //IPlayerState state = entity.GetState(); - //if (state == null) continue; - string playerName = getName(Scene.SceneTracker.allPlayers[i]); - if (playerName != "") - { - Transform hand = FindDeepChild(Scene.SceneTracker.allPlayers[i].transform.root, "rightHandHeld"); - if (hand != null) - { - PlayerHands.Add(playerName, hand.parent); - } - } - } - } - } - - private static string getName(GameObject gameObject) - { - BoltEntity entity = gameObject.GetComponent(); - if (entity == null) - return ""; - else - { - IPlayerState state = entity.GetState(); - if (state == null) - return ""; - else - return state.name; - } - } - - private IEnumerator UpdateSetups() - { - while (true) - { - yield return null; - if (Players.Any(x => x == null)) - { - Players.Clear(); - AllPlayerEntities.Clear(); - PlayerStates.Clear(); - Players.AddRange(Scene.SceneTracker.allPlayers); - for (int i = 0; i < Scene.SceneTracker.allPlayers.Count; i++) - { - BoltEntity b = Scene.SceneTracker.allPlayers[i].GetComponent(); - if (b != null) - { - AllPlayerEntities.Add(b); - PlayerStates.Add(b.GetState()); - } - } - } - - yield return new WaitForSeconds(10); - } - } public static Transform FindDeepChild(Transform aParent, string aName) { @@ -330,5 +132,26 @@ private static void RecursiveComponentList(Transform tr, string start) RecursiveComponentList(item, start); } } + + + private static Material _bloodMaterial; + public static Material BloodMaterial + { + get + { + if (_bloodMaterial == null) + { + _bloodMaterial = BuilderCore.Core.CreateMaterial(new BuilderCore.BuildingData() + { + EmissionColor = new Color(0.3f, 0.1f, 0), + renderMode = BuilderCore.BuildingData.RenderMode.Fade, + MainColor = Color.red, + Metalic = 0.8f, + Smoothness = 0.8f, + }); + } + return _bloodMaterial; + } + } } } \ No newline at end of file diff --git a/ModSettings.cs b/ModSettings.cs index 6121bfb..d529ecf 100644 --- a/ModSettings.cs +++ b/ModSettings.cs @@ -41,6 +41,8 @@ public enum LootLevelPolicy public const float ChanceForFirstSocketToAppear = 0.25f; public const float ChanceForSubsequentSocketsToAppear = 0.35f; + public const float MagicFindPerDifficultyLevel = 0.25f; + public static readonly List outdatedFiles = new List(); public static float DropQuantityMultiplier = 1; diff --git a/Network/COTFCommand.cs b/Network/COTFCommand.cs index cd4ab6a..16eafef 100644 --- a/Network/COTFCommand.cs +++ b/Network/COTFCommand.cs @@ -2,22 +2,30 @@ using System.IO; using System.Runtime.InteropServices; +using UnityEngine.Windows.Speech; + namespace ChampionsOfForest.Network { public class COTFCommand where ParamT : struct { - public int commandIndex; - public static COTFCommand instance; + public int commandIndex = 0; + private static COTFCommand instance; + + public delegate void ReceivedDelegate(ParamT p); + + private ReceivedDelegate receivedDelegate; - static protected void Init(Type type) + public static void Initialize(ReceivedDelegate receivedDelegate) { if (instance == null) { - var o = (COTFCommand)Activator.CreateInstance(type); - instance = o; + instance = new COTFCommand(); instance.commandIndex = CommandReader.curr_cmd_index++; - CommandReader.commandsObjects_dict.Add(instance.commandIndex, type.GetMethod("Received", System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.Public)); - ModAPI.Log.Write($"command {instance.commandIndex} registered: {type}"); + CommandReader.callbacks.Add(instance.commandIndex, COTFCommand.Received); + instance.receivedDelegate = receivedDelegate; + + var type = typeof(COTFCommand); + ModAPI.Log.Write($"command {instance.commandIndex} registered: {type.Name}"); } } @@ -42,15 +50,7 @@ static ParamT GetParam(BinaryReader reader) return param; } - protected virtual void OnSendDataWrite(BinaryWriter w) - { - } - - protected virtual void OnReceived(ParamT param, BinaryReader r) - { - } - - public static void Send(NetworkManager.Target target, ParamT param) + public static void Send(NetworkManager.Target target, in ParamT param) { using (MemoryStream answerStream = new MemoryStream()) { @@ -58,7 +58,6 @@ public static void Send(NetworkManager.Target target, ParamT param) { w.Write(instance.commandIndex); w.Write(GetBytes(param)); - instance.OnSendDataWrite(w); w.Close(); } NetworkManager.SendLine(answerStream.ToArray(), target); @@ -73,7 +72,6 @@ public static void Send(BoltConnection target_connection, ParamT param) { w.Write(instance.commandIndex); w.Write(GetBytes(param)); - instance.OnSendDataWrite(w); w.Close(); } NetworkManager.SendLine(answerStream.ToArray(), target_connection); @@ -83,7 +81,7 @@ public static void Send(BoltConnection target_connection, ParamT param) public static void Received(BinaryReader r) { var p = GetParam(r); - instance.OnReceived(p, r); + instance.receivedDelegate.Invoke(p); r.Close(); } } diff --git a/Network/CommandInitializer.cs b/Network/CommandInitializer.cs index db4669f..1f8c5db 100644 --- a/Network/CommandInitializer.cs +++ b/Network/CommandInitializer.cs @@ -3,27 +3,42 @@ using System.Linq; using System.Reflection; +using ChampionsOfForest.Network.Commands; + namespace ChampionsOfForest.Network { public class CommandInitializer { - public static void Init() + //public static void Init() + //{ + // CommandReader.curr_cmd_index = 100; + // CommandReader.callbacks.Clear(); + // var types = GetTypesInNamespace(Assembly.GetExecutingAssembly(), "ChampionsOfForest.Network.Commands"); + // foreach (var t in types) + // { + // var initMethod = t.GetMethod("Initialize"); + // if (initMethod != null) + // initMethod.Invoke(null, new object[0]); + // } + //} + //private static IEnumerable GetTypesInNamespace(Assembly assembly, string nameSpace) + //{ + // return + // assembly.GetTypes() + // .Where(t => String.Equals(t.Namespace, nameSpace, StringComparison.Ordinal) && t.IsClass); + //} + + public void Init() { CommandReader.curr_cmd_index = 100; - CommandReader.commandsObjects_dict.Clear(); - var types = GetTypesInNamespace(Assembly.GetExecutingAssembly(), "ChampionsOfForest.Network.Commands"); - foreach (var t in types) + + COTFCommand.Initialize( + param => { - var initMethod = t.GetMethod("Initialize"); - if (initMethod != null) - initMethod.Invoke(null, new object[0]); - } - } - private static IEnumerable GetTypesInNamespace(Assembly assembly, string nameSpace) - { - return - assembly.GetTypes() - .Where(t => String.Equals(t.Namespace, nameSpace, StringComparison.Ordinal) && t.IsClass); + ModReferences.PlayerStates. + }); + + } } } diff --git a/Network/CommandReader.cs b/Network/CommandReader.cs index 8fdbad5..aa932d1 100644 --- a/Network/CommandReader.cs +++ b/Network/CommandReader.cs @@ -19,8 +19,11 @@ namespace ChampionsOfForest.Network public class CommandReader { - public static Dictionary commandsObjects_dict = new Dictionary(); - public static int curr_cmd_index = 100; + public delegate void CommandDelegate(BinaryReader r); + public static Dictionary callbacks = new Dictionary(); + + + public static int curr_cmd_index; public static void OnCommand(byte[] bytes) { @@ -31,9 +34,9 @@ public static void OnCommand(byte[] bytes) int cmdIndex = r.ReadInt32(); try { - if (commandsObjects_dict.TryGetValue(cmdIndex, out var t)) + if (callbacks.TryGetValue(cmdIndex, out var t)) { - t.Invoke(null, new object[] { r }); + t.Invoke(r); } else switch (cmdIndex) @@ -275,7 +278,7 @@ public static void OnCommand(byte[] bytes) case 5: { - var baseItem = ItemDataBase.ItemBases[r.ReadInt32()]; + var baseItem = ItemDatabase.itemLookup[r.ReadInt32()]; Item item = new Item(baseItem, 1, 0, false); //reading first value, id ulong id = r.ReadUInt64(); int itemLvl = r.ReadInt32(); @@ -285,7 +288,7 @@ public static void OnCommand(byte[] bytes) int dropSource = r.ReadInt32(); while (r.BaseStream.Position != r.BaseStream.Length) { - ItemStat stat = new ItemStat(ItemDataBase.Stats[r.ReadInt32()], itemLvl, r.ReadInt32()) + ItemStat stat = new ItemStat(ItemDatabase.Stats[r.ReadInt32()], itemLvl, r.ReadInt32()) { amount = r.ReadSingle() }; @@ -632,7 +635,7 @@ public static void OnCommand(byte[] bytes) if (ModReferences.ThisPlayerID == playerID) { //creating the item. - Item item = new Item(ItemDataBase.ItemBases[r.ReadInt32()], r.ReadInt32(), 0, false) + Item item = new Item(ItemDatabase.itemLookup[r.ReadInt32()], r.ReadInt32(), 0, false) { level = r.ReadInt32() }; @@ -642,7 +645,7 @@ public static void OnCommand(byte[] bytes) { int statId = r.ReadInt32(); int statPoolIdx = r.ReadInt32(); - ItemStat stat = new ItemStat(ItemDataBase.Stats[statId], 1, statPoolIdx) + ItemStat stat = new ItemStat(ItemDatabase.Stats[statId], 1, statPoolIdx) { amount = r.ReadSingle() }; diff --git a/Network/CommandType.cs b/Network/CommandType.cs new file mode 100644 index 0000000..037b12f --- /dev/null +++ b/Network/CommandType.cs @@ -0,0 +1,7 @@ +namespace ChampionsOfForest.Network +{ + public enum CommandType + { + + } +} diff --git a/Network/Commands/GetPlayerStateParams.cs b/Network/Commands/GetPlayerStateParams.cs new file mode 100644 index 0000000..f722cd5 --- /dev/null +++ b/Network/Commands/GetPlayerStateParams.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace ChampionsOfForest.Network.Commands +{ + public struct GetPlayerStateParams + { + public string playerID; + public int level; + public float health; + public float maxHealth; + public int xp; + public ulong entityNetworkID; + } + +} diff --git a/Network/CoopServerCallbacksMod.cs b/Network/CoopServerCallbacksMod.cs index 307a607..495431e 100644 --- a/Network/CoopServerCallbacksMod.cs +++ b/Network/CoopServerCallbacksMod.cs @@ -250,18 +250,28 @@ public override void Connected(BoltConnection connection) } + public override void Disconnected(BoltConnection connection) + { + NetworkManager.SendText("IIA champion left", NetworkManager.Target.Everyone); + base.Disconnected(connection); + } + } internal class CoopClientCallbacksMod : CoopClientCallbacks { public override void Disconnected(BoltConnection connection) - { + { ModAPI.Console.Write("Saving client data to avoid item duping"); - Serializer.EmergencySave(); + Serializer.ForceSave(); base.Disconnected(connection); + } + public override void Connected(BoltConnection connection) + { + + } } -} public class BoltConnectionEx : BoltConnection { @@ -301,7 +311,7 @@ public override void PacketReceived(UdpPacket udpPacket) public override void Disconnect() { - Serializer.EmergencySave(); + Serializer.ForceSave(); base.Disconnect(); } } diff --git a/Network/NetworkManager.cs b/Network/NetworkManager.cs index 55cbe18..48bdf4b 100644 --- a/Network/NetworkManager.cs +++ b/Network/NetworkManager.cs @@ -34,28 +34,6 @@ private void Awake() } } - private Dictionary registeredCommandIndexes; - private List> registeredCommandCallbacks; - public void RegisterCommand(Action onReceivedCallback) - { - if (registeredCommandIndexes.ContainsKey(typeof(T))) - { - ModAPI.Log.Write("Command already added: " + typeof(T)); - return; - } - else - { - int index = registeredCommandCallbacks.Count; - registeredCommandIndexes.Add(typeof(T), index); - registeredCommandCallbacks.Add(x => onReceivedCallback.Invoke((T)x)); - } - - - } - - - - /// /// Sends a string to all players on the server diff --git a/Player/AutoPickupItems.cs b/Player/AutoPickupItems.cs index e68b249..232470d 100644 --- a/Player/AutoPickupItems.cs +++ b/Player/AutoPickupItems.cs @@ -88,7 +88,7 @@ public static void DoPickup() var customPickup = hit[i].transform.gameObject.GetComponent(); if (customPickup != null) { - if(customPickup.item.rarity>= minRarity || customPickup.item.type == BaseItem.ItemType.Material || customPickup.item.type == BaseItem.ItemType.Other) + if(customPickup.item.rarity>= minRarity || customPickup.item.type == ItemDefinition.ItemType.Material || customPickup.item.type == ItemDefinition.ItemType.Other) customPickup.PickUp(); } } diff --git a/Player/CoopCustomWeapons.cs b/Player/CoopCustomWeapons.cs index e4fa8cc..a69cde6 100644 --- a/Player/CoopCustomWeapons.cs +++ b/Player/CoopCustomWeapons.cs @@ -37,7 +37,7 @@ public class CoopCustomWeapons : MonoBehaviour // foreach (var pair in vals) // { // GUILayout.Label("---------------------------------------------------------------------------------------------------"); - // GUILayout.Label(((BaseItem.WeaponModelType)pair.Key).ToString()); + // GUILayout.Label(((BaseItem.ItemSubtype)pair.Key).ToString()); // var val = pair.Value; // Vector3 of = prefabDatas[pair.Key].offset; // GUILayout.Label("offset: x:" + of.x + " y:" + of.y + " z:" + of.z); @@ -71,14 +71,14 @@ public class CoopCustomWeapons : MonoBehaviour public struct CustomWeaponPrefabData { - public BaseItem.WeaponModelType model; + public ItemDefinition.ItemSubtype model; public Vector3 offset; public Vector3 rotation; public Vector3 tip; public float Scale; public GameObject obj; - public CustomWeaponPrefabData(BaseItem.WeaponModelType model, Vector3 offset, Vector3 rotation, Vector3 tip, float scale, GameObject g) + public CustomWeaponPrefabData(ItemDefinition.ItemSubtype model, Vector3 offset, Vector3 rotation, Vector3 tip, float scale, GameObject g) { this.model = model; this.offset = offset; @@ -95,7 +95,7 @@ public static void Init() prefabs = new Dictionary(); prefabDatas = new Dictionary(); //longsword - AddWeapon(BaseItem.WeaponModelType.LongSword, + AddWeapon(ItemDefinition.ItemSubtype.LongSword, 51, Core.CreateMaterial( new BuildingData() @@ -111,7 +111,7 @@ public static void Init() 0.9f); //great sword - AddWeapon(BaseItem.WeaponModelType.GreatSword, + AddWeapon(ItemDefinition.ItemSubtype.GreatSword, 52, Core.CreateMaterial( new BuildingData() @@ -132,7 +132,7 @@ public static void Init() 1f); //hammer - AddWeapon(BaseItem.WeaponModelType.Hammer, + AddWeapon(ItemDefinition.ItemSubtype.Hammer, 108, Core.CreateMaterial( new BuildingData() @@ -147,12 +147,12 @@ public static void Init() new Vector3(0, 0, -2f), 1f); - AddWeapon(BaseItem.WeaponModelType.Axe, Instantiate(Res.ResourceLoader.GetAssetBundle(2001).LoadAsset("AxePrefab.prefab")), + AddWeapon(ItemDefinition.ItemSubtype.Axe, Instantiate(Res.ResourceLoader.GetAssetBundle(2001).LoadAsset("AxePrefab.prefab")), new Vector3(-0.05901787f, -0.075443f, -1.6f), new Vector3(0, 180, 0), new Vector3(0, 0, 0), 1); - AddWeapon(BaseItem.WeaponModelType.Greatbow, 167, + AddWeapon(ItemDefinition.ItemSubtype.Greatbow, 167, Core.CreateMaterial(new BuildingData() { BumpMap = Res.ResourceLoader.GetTexture(168), @@ -166,7 +166,7 @@ public static void Init() instance = new GameObject().AddComponent(); } - public static void AddWeapon(BaseItem.WeaponModelType model, int mesh, Material material, Vector3 offset, Vector3 rotation, Vector3 tip, float Scale) + public static void AddWeapon(ItemDefinition.ItemSubtype model, int mesh, Material material, Vector3 offset, Vector3 rotation, Vector3 tip, float Scale) { try { @@ -198,7 +198,7 @@ public static void AddWeapon(BaseItem.WeaponModelType model, int mesh, Material } } - public static void AddWeapon(BaseItem.WeaponModelType model, GameObject go, Vector3 offset, Vector3 rotation, Vector3 tip, float Scale) + public static void AddWeapon(ItemDefinition.ItemSubtype model, GameObject go, Vector3 offset, Vector3 rotation, Vector3 tip, float Scale) { try { @@ -253,7 +253,7 @@ private IEnumerator EquipDelayed(Transform handTransform, int i) objectsToDisable.Clear(); yield return null; - if (i != (int)BaseItem.WeaponModelType.None) + if (i != (int)ItemDefinition.ItemSubtype.None) { foreach (Transform child in handTransform) { diff --git a/Player/Crafting/IndividualRerolling.cs b/Player/Crafting/IndividualRerolling.cs index 3bf35e5..c3cdded 100644 --- a/Player/Crafting/IndividualRerolling.cs +++ b/Player/Crafting/IndividualRerolling.cs @@ -53,7 +53,7 @@ public void Craft() var stat = CraftingHandler.changedItem.i.stats[selectedStat]; if (stat.id > 3000) { - CraftingHandler.changedItem.i.stats[selectedStat] = new ItemStat(ItemDataBase.Stats[3000]); //set to empty socket + CraftingHandler.changedItem.i.stats[selectedStat] = new ItemStat(ItemDatabase.Stats[3000]); //set to empty socket } else { diff --git a/Player/Crafting/Polishing.cs b/Player/Crafting/Polishing.cs index c425210..a07d0be 100644 --- a/Player/Crafting/Polishing.cs +++ b/Player/Crafting/Polishing.cs @@ -45,7 +45,7 @@ public void Craft() var stat = CraftingHandler.changedItem.i.stats[selectedStat]; if (stat.id > 3000) { - CraftingHandler.changedItem.i.stats[selectedStat] = new ItemStat(ItemDataBase.Stats[3000]); //set to empty socket + CraftingHandler.changedItem.i.stats[selectedStat] = new ItemStat(ItemDatabase.Stats[3000]); //set to empty socket } else { diff --git a/Player/Crafting/Reforging.cs b/Player/Crafting/Reforging.cs index abfdf87..5d6aec7 100644 --- a/Player/Crafting/Reforging.cs +++ b/Player/Crafting/Reforging.cs @@ -46,7 +46,7 @@ public void Craft() if (validRecipe) { int lvl = CraftingHandler.changedItem.i.level; - var v = ItemDataBase.ItemBases.Where(x => x.Value.id != CraftingHandler.changedItem.i.id && x.Value.rarity == CraftingHandler.changedItem.i.rarity).Select(x => x.Value).ToArray(); + var v = ItemDatabase.itemLookup.Where(x => x.Value.id != CraftingHandler.changedItem.i.id && x.Value.rarity == CraftingHandler.changedItem.i.rarity).Select(x => x.Value).ToArray(); var ib = v[UnityEngine.Random.Range(0, v.Length)]; var newItem = new Item(ib, 1, 0, false) diff --git a/Player/CustomBow.cs b/Player/CustomBow.cs index ae7dc7d..a76a772 100644 --- a/Player/CustomBow.cs +++ b/Player/CustomBow.cs @@ -8,32 +8,6 @@ namespace ChampionsOfForest { - // public class SomeFuckingBowControllerClass : BowController - // { - // CustomBowBase cbb; - // protected override void OnEnable() - // { - // if (_bowItemId == 79) - // { - // if (cbb == null) - // { - // cbb = gameObject.AddComponent(); - // } - // } - // base.OnEnable(); - // } - // protected override void Start() - // { - // if (_bowItemId == 79) - // { - // if (cbb == null) - // { - // cbb = gameObject.AddComponent(); - // } - // } - // base.Start(); - // } - //} public class CustomBowBase : MonoBehaviour { public static GameObject baseBow; @@ -74,14 +48,14 @@ private void OnEnable() { w.Write(28); w.Write(ModReferences.ThisPlayerID); - w.Write((int)BaseItem.WeaponModelType.Greatbow); + w.Write((int)ItemDefinition.ItemSubtype.Greatbow); w.Close(); } Network.NetworkManager.SendLine(answerStream.ToArray(), Network.NetworkManager.Target.Others); answerStream.Close(); } } - PlayerInventoryMod.ToEquipWeaponType = BaseItem.WeaponModelType.None; + PlayerInventoryMod.ToEquipWeaponType = ItemDefinition.ItemSubtype.None; } private void OnDisable() @@ -95,7 +69,7 @@ private void OnDisable() { w.Write(28); w.Write(ModReferences.ThisPlayerID); - w.Write((int)BaseItem.WeaponModelType.None); + w.Write((int)ItemDefinition.ItemSubtype.None); w.Close(); } Network.NetworkManager.SendLine(answerStream.ToArray(), Network.NetworkManager.Target.Others); @@ -134,7 +108,7 @@ private void Start() }); Destroy(bow.gameObject); - model.transform.localScale *= 1.1f; + //model.transform.localScale *= 1.1f; } catch (System.Exception e) { diff --git a/Player/CustomWeapon.cs b/Player/CustomWeapon.cs index 4d3d4ea..f5f4767 100644 --- a/Player/CustomWeapon.cs +++ b/Player/CustomWeapon.cs @@ -28,7 +28,7 @@ public class CustomWeapon public float trailWidth = 0.14f; - public CustomWeapon(BaseItem.WeaponModelType model, int mesh, Material material, Vector3 offset, Vector3 rotation, Vector3 tip, float colliderScale = 1, float scale = 1, float damage = 5, float smashDamage = 15, float swingspeed = 1, float triedswingspeed = 1, float staminaDrain = 6, bool noTreeCut = false, float treeDamage = 1) + public CustomWeapon(ItemDefinition.ItemSubtype model, int mesh, Material material, Vector3 offset, Vector3 rotation, Vector3 tip, float colliderScale = 1, float scale = 1, float damage = 5, float smashDamage = 15, float swingspeed = 1, float triedswingspeed = 1, float staminaDrain = 6, bool noTreeCut = false, float treeDamage = 1) { this.damage = damage; this.swingspeed = swingspeed; @@ -49,7 +49,7 @@ public CustomWeapon(BaseItem.WeaponModelType model, int mesh, Material material, PlayerInventoryMod.customWeapons.Add(model, this); } - public CustomWeapon(BaseItem.WeaponModelType model, int mesh, Material material, Vector3 offset, Vector3 rotation, Vector3 tip, float scale = 1) + public CustomWeapon(ItemDefinition.ItemSubtype model, int mesh, Material material, Vector3 offset, Vector3 rotation, Vector3 tip, float scale = 1) { this.damage = 6; this.swingspeed = 1; @@ -70,7 +70,7 @@ public CustomWeapon(BaseItem.WeaponModelType model, int mesh, Material material, PlayerInventoryMod.customWeapons.Add(model, this); } - public CustomWeapon(BaseItem.WeaponModelType model, GameObject obj, TrailRenderer trail, Vector3 offset, Vector3 rotation, float scale = 1) + public CustomWeapon(ItemDefinition.ItemSubtype model, GameObject obj, TrailRenderer trail, Vector3 offset, Vector3 rotation, float scale = 1) { this.damage = 6; this.swingspeed = 1; @@ -89,7 +89,7 @@ public CustomWeapon(BaseItem.WeaponModelType model, GameObject obj, TrailRendere PlayerInventoryMod.customWeapons.Add(model, this); } - public CustomWeapon(BaseItem.WeaponModelType model, GameObject obj, Vector3 offset, Vector3 rotation, float scale = 1) + public CustomWeapon(ItemDefinition.ItemSubtype model, GameObject obj, Vector3 offset, Vector3 rotation, float scale = 1) { this.damage = 6; this.swingspeed = 1; diff --git a/Player/Main Menu/MainMenu.cs b/Player/Main Menu/MainMenu.cs index c693528..73c4251 100644 --- a/Player/Main Menu/MainMenu.cs +++ b/Player/Main Menu/MainMenu.cs @@ -294,39 +294,39 @@ private void Update() switch (item.type) { - case BaseItem.ItemType.Helmet: + case ItemDefinition.ItemType.Helmet: targetSlot = -2; break; - case BaseItem.ItemType.ChestArmor: + case ItemDefinition.ItemType.ChestArmor: targetSlot = -3; break; - case BaseItem.ItemType.Pants: + case ItemDefinition.ItemType.Pants: targetSlot = -4; break; - case BaseItem.ItemType.Boot: + case ItemDefinition.ItemType.Boot: targetSlot = -5; break; - case BaseItem.ItemType.ShoulderArmor: + case ItemDefinition.ItemType.ShoulderArmor: targetSlot = -6; break; - case BaseItem.ItemType.Glove: + case ItemDefinition.ItemType.Glove: targetSlot = -7; break; - case BaseItem.ItemType.Amulet: + case ItemDefinition.ItemType.Amulet: targetSlot = -8; break; - case BaseItem.ItemType.Bracer: + case ItemDefinition.ItemType.Bracer: targetSlot = -9; break; - case BaseItem.ItemType.Ring: + case ItemDefinition.ItemType.Ring: if (Inventory.Instance.ItemSlots[-10] == null) targetSlot = -10; else if (Inventory.Instance.ItemSlots[-11] == null) @@ -335,13 +335,13 @@ private void Update() targetSlot = -10; break; - case BaseItem.ItemType.Weapon: + case ItemDefinition.ItemType.Weapon: targetSlot = -12; break; - case BaseItem.ItemType.Quiver: - case BaseItem.ItemType.SpellScroll: - case BaseItem.ItemType.Shield: + case ItemDefinition.ItemType.Quiver: + case ItemDefinition.ItemType.SpellScroll: + case ItemDefinition.ItemType.Shield: targetSlot = -13; break; } diff --git a/Player/ModdedPlayer/ModdedPlayer.cs b/Player/ModdedPlayer/ModdedPlayer.cs index fd9e95f..ec1e364 100644 --- a/Player/ModdedPlayer/ModdedPlayer.cs +++ b/Player/ModdedPlayer/ModdedPlayer.cs @@ -306,7 +306,7 @@ private void Update() PlayerInventoryMod.ToEquipWeaponType = Inventory.Instance.ItemSlots[-12].subtype; switch (Inventory.Instance.ItemSlots[-12].subtype) { - case BaseItem.WeaponModelType.Polearm: + case ItemDefinition.ItemSubtype.Polearm: if (LocalPlayer.Inventory.AmountOf(56) <= 0) { LocalPlayer.Inventory.AddItem(56); @@ -315,7 +315,7 @@ private void Update() LocalPlayer.Inventory.Equip(56, false); break; - case BaseItem.WeaponModelType.Greatbow: + case ItemDefinition.ItemSubtype.Greatbow: if (LocalPlayer.Inventory.AmountOf(79) <= 0) { LocalPlayer.Inventory.AddItem(79); @@ -323,7 +323,7 @@ private void Update() LocalPlayer.Inventory.StashEquipedWeapon(false); if (CustomBowBase.baseBow == null) { - PlayerInventoryMod.ToEquipWeaponType = BaseItem.WeaponModelType.None; + PlayerInventoryMod.ToEquipWeaponType = ItemDefinition.ItemSubtype.None; LocalPlayer.Inventory.Equip(79, false); } else if (LocalPlayer.Inventory.Equip(79, false)) @@ -358,7 +358,7 @@ private void Update() break; } - PlayerInventoryMod.ToEquipWeaponType = BaseItem.WeaponModelType.None; + PlayerInventoryMod.ToEquipWeaponType = ItemDefinition.ItemSubtype.None; } } try @@ -950,7 +950,7 @@ public void GiveSpecialItems() { if ((level % 10) == 0 && level > 1) { - var item = new Item(ItemDataBase.ItemBaseByName("Heart of Purity")); + var item = new Item(ItemDatabase.ItemBaseByName("Heart of Purity")); item.level = 1; if (!Inventory.Instance.AddItem(item)) { @@ -959,7 +959,7 @@ public void GiveSpecialItems() } else if (level >= 10 && level % 20 == 5 ) { - var item = new Item(ItemDataBase.ItemBaseByName("Greater Mutated Heart")); + var item = new Item(ItemDatabase.ItemBaseByName("Greater Mutated Heart")); item.level = 1; if (!Inventory.Instance.AddItem(item)) { diff --git a/Player/Overrides/PlayerInventoryMod.cs b/Player/Overrides/PlayerInventoryMod.cs index 2156ae5..622a7ed 100644 --- a/Player/Overrides/PlayerInventoryMod.cs +++ b/Player/Overrides/PlayerInventoryMod.cs @@ -26,9 +26,9 @@ internal class PlayerInventoryMod : PlayerInventory public static Mesh noMesh; public static Mesh originalMesh; //public static TheForest.Items.Item.AnimatorVariables[] originalAnimVars; - public static Dictionary customWeapons = new Dictionary(); - public static BaseItem.WeaponModelType ToEquipWeaponType = BaseItem.WeaponModelType.None; - public static BaseItem.WeaponModelType EquippedModel = BaseItem.WeaponModelType.None; + public static Dictionary customWeapons = new Dictionary(); + public static ItemDefinition.ItemSubtype ToEquipWeaponType = ItemDefinition.ItemSubtype.None; + public static ItemDefinition.ItemSubtype EquippedModel = ItemDefinition.ItemSubtype.None; public void GetRightHand() { ModReferences.rightHandTransform = this._itemViews[64]._heldWeaponInfo.transform.parent.gameObject.transform.parent.transform; @@ -60,7 +60,7 @@ protected override bool Equip(InventoryItemView itemView, bool pickedUpFromWorld { if (GreatBow.instance != null) GreatBow.instance.SetActive(false); - if (ToEquipWeaponType == BaseItem.WeaponModelType.None) + if (ToEquipWeaponType == ItemDefinition.ItemSubtype.None) { foreach (CustomWeapon item in customWeapons.Values) { @@ -70,15 +70,15 @@ protected override bool Equip(InventoryItemView itemView, bool pickedUpFromWorld } if (itemView != null) { - if (EquippedModel != BaseItem.WeaponModelType.None) + if (EquippedModel != ItemDefinition.ItemSubtype.None) { customWeapons[EquippedModel].objectToHide?.SetActive(true); } - EquippedModel = BaseItem.WeaponModelType.None; + EquippedModel = ItemDefinition.ItemSubtype.None; //Send network event to display a custom weapon for other players - if (BoltNetwork.isRunning && ToEquipWeaponType != BaseItem.WeaponModelType.None) + if (BoltNetwork.isRunning && ToEquipWeaponType != ItemDefinition.ItemSubtype.None) { using (System.IO.MemoryStream answerStream = new System.IO.MemoryStream()) { @@ -98,7 +98,7 @@ protected override bool Equip(InventoryItemView itemView, bool pickedUpFromWorld if (itemView.gameObject.name == "axePlane_Inv") { - if (ToEquipWeaponType != BaseItem.WeaponModelType.None) + if (ToEquipWeaponType != ItemDefinition.ItemSubtype.None) { try { @@ -149,7 +149,7 @@ protected override bool Equip(InventoryItemView itemView, bool pickedUpFromWorld } else if (itemView == _itemViews[158]) //spear { - if (ToEquipWeaponType == BaseItem.WeaponModelType.Polearm) + if (ToEquipWeaponType == ItemDefinition.ItemSubtype.Polearm) { EquippedModel = ToEquipWeaponType; try @@ -190,7 +190,7 @@ protected override bool Equip(InventoryItemView itemView, bool pickedUpFromWorld itemView._heldWeaponInfo.staminaDrain = itemView._heldWeaponInfo.baseStaminaDrain; itemView._heldWeaponInfo.noTreeCut = false; itemView._heldWeaponInfo.spear = true; - customWeapons[BaseItem.WeaponModelType.Polearm].objectToHide.GetComponent().enabled = true; + customWeapons[ItemDefinition.ItemSubtype.Polearm].objectToHide.GetComponent().enabled = true; } } } @@ -200,7 +200,7 @@ protected override bool Equip(InventoryItemView itemView, bool pickedUpFromWorld protected override void ThrowProjectile() { - if (EquippedModel == BaseItem.WeaponModelType.Polearm) + if (EquippedModel == ItemDefinition.ItemSubtype.Polearm) return; this._isThrowing = false; InventoryItemView inventoryItemView = this._equipmentSlots[0]; @@ -226,21 +226,11 @@ protected override void ThrowProjectile() gameObject.transform.localScale *= 1.5f; force *= 2f; component.useGravity = false; - if (ModReferences.bloodInfusedMaterial == null) - { - ModReferences.bloodInfusedMaterial = BuilderCore.Core.CreateMaterial(new BuilderCore.BuildingData() - { - EmissionColor = new Color(0.4f, 0, 0), - renderMode = BuilderCore.BuildingData.RenderMode.Fade, - MainColor = Color.red, - Metalic = 1f, - Smoothness = 0.8f, - }); - } + //gameObject.GetComponent().material = bloodInfusedMaterial; var trail = gameObject.AddComponent(); trail.widthCurve = new AnimationCurve(new Keyframe[] { new Keyframe(0f, 1f, 0f, 0f), new Keyframe(0.5f, 1f, 0f, 0f), new Keyframe(1f, 0.006248474f, 0f, 0f), }); - trail.material = ModReferences.bloodInfusedMaterial; + trail.material = ModReferences.BloodMaterial; trail.widthMultiplier = 0.85f; trail.time = 2f; trail.autodestruct = false; @@ -307,7 +297,7 @@ public override void Attack() if (!IsRightHandEmpty() && !_isThrowing && !IsReloading && !blockRangedAttack && !IsSlotLocked(TheForest.Items.Item.EquipmentSlot.RightHand) && !LocalPlayer.Inventory.HasInSlot(TheForest.Items.Item.EquipmentSlot.RightHand, LocalPlayer.AnimControl._slingShotId)) { - if (EquippedModel != BaseItem.WeaponModelType.None && customWeapons.ContainsKey(EquippedModel)) + if (EquippedModel != ItemDefinition.ItemSubtype.None && customWeapons.ContainsKey(EquippedModel)) { customWeapons[EquippedModel].EnableTrail(); } @@ -364,7 +354,7 @@ public override void Start() protected override void FireRangedWeapon() { var cache = _equipmentSlots[0].ItemCache; - if (EquippedModel == BaseItem.WeaponModelType.Polearm) + if (EquippedModel == ItemDefinition.ItemSubtype.Polearm) return; bool noconsume = ModdedPlayer.Stats.perk_projectileNoConsumeChance >= 0 && Random.value < ModdedPlayer.Stats.perk_projectileNoConsumeChance; noconsume = noconsume || cache._maxAmount < 0 || RemoveItem(cache._ammoItemId, 1, false, true); @@ -393,7 +383,7 @@ public void InitializeGreatBow() public void CreateCustomWeapons() { //long sword - new CustomWeapon(BaseItem.WeaponModelType.LongSword, + new CustomWeapon(ItemDefinition.ItemSubtype.LongSword, 51, BuilderCore.Core.CreateMaterial( new BuilderCore.BuildingData() @@ -406,17 +396,17 @@ public void CreateCustomWeapons() new Vector3(0.2f - 0.04347827f, -1.5f + 0.173913f, 0.3f - 0.05797101f), new Vector3(0, -90, 0), new Vector3(-0.2f, -2.3f, 0), - 1.3f, 0.9f, 40, 80, 0.4f, 0.2f, 50, true, 5); + 1.1f, 0.9f, 20, 25, 0.4f, 0.2f, 30, false, 3); //great sword - new CustomWeapon(BaseItem.WeaponModelType.GreatSword, + new CustomWeapon(ItemDefinition.ItemSubtype.GreatSword, 52, BuilderCore.Core.CreateMaterial( new BuilderCore.BuildingData() { OcclusionStrenght = 0.75f, - Smoothness = 0.6f, - Metalic = 0.6f, + Smoothness = 0.5f, + Metalic = 0.5f, MainTexture = Res.ResourceLoader.instance.LoadedTextures[61], EmissionMap = Res.ResourceLoader.instance.LoadedTextures[62], BumpMap = Res.ResourceLoader.instance.LoadedTextures[64], @@ -427,23 +417,23 @@ public void CreateCustomWeapons() new Vector3(0.15f - 0.03623189f, -2.13f - 0.0572464f, 0.19f - 0.1014493f), new Vector3(180, 180, 90), new Vector3(0, 0, -3.5f), - 1.8f, 1f, 60, 90, 0.01f, 0.001f, 85, false, 5); + 1.6f, 1f, 20, 30, 0.00f, 0.00f, 60, false, 10); //hammer - new CustomWeapon(BaseItem.WeaponModelType.Hammer, + new CustomWeapon(ItemDefinition.ItemSubtype.Hammer, 108, BuilderCore.Core.CreateMaterial( new BuilderCore.BuildingData() { Metalic = 0.86f, Smoothness = 0.66f, - MainColor = new Color(0.2f, 0.2f, 0.2f), + MainColor = new Color(0.7f, 0.7f, 0.76f), } ), new Vector3(0, 0, 0), new Vector3(0, 0, 90), new Vector3(0, 0, -2f), - 1.6f, 1f, 25, 250, 0f, 0f, 500, true, 6); + 1.2f, 1f, 75, 250, 0.1f, 0f, 300, false, 600); var Axe_PlaneAxe = Instantiate(originalPlaneAxeModel, originalParent); var Axe_Renderer = Axe_PlaneAxe.GetComponent(); @@ -464,16 +454,16 @@ public void CreateCustomWeapons() axeObject.transform.localScale = Vector3.one; var AxeTrail = axeObject.transform.GetChild(0).GetComponent(); AxeTrail.transform.localPosition = new Vector3(0, -0.3f, 0); - new CustomWeapon(BaseItem.WeaponModelType.Axe, Axe_PlaneAxe, AxeTrail, AxeOffset, AxeRotation, 1) + new CustomWeapon(ItemDefinition.ItemSubtype.Axe, Axe_PlaneAxe, AxeTrail, AxeOffset, AxeRotation, 1) { blockTreeCut = false, - damage = 8, - smashDamage = 10, + damage = 10, + smashDamage = 25, staminaDrain = 4, swingspeed = 50, treeDamage = 10, tiredswingspeed = 50, - ColliderScale = 0.4f + ColliderScale = 0.5f }; AxeTrail.gameObject.SetActive(false); CreateCustomWeapons_Spears(); @@ -481,9 +471,9 @@ public void CreateCustomWeapons() public void CreateCustomWeapons_Spears() { - if (customWeapons.ContainsKey(BaseItem.WeaponModelType.Polearm) && customWeapons[BaseItem.WeaponModelType.Polearm].obj != null) + if (customWeapons.ContainsKey(ItemDefinition.ItemSubtype.Polearm) && customWeapons[ItemDefinition.ItemSubtype.Polearm].obj != null) { - customWeapons.Remove(BaseItem.WeaponModelType.Polearm); + customWeapons.Remove(ItemDefinition.ItemSubtype.Polearm); } var original = _itemViews[158]._held; //original.gameObject.SetActive(true); @@ -504,7 +494,7 @@ public void CreateCustomWeapons_Spears() modelClone.transform.localRotation = secondChild.localRotation; modelClone.transform.Rotate(new Vector3(90, 0, 0)); modelClone.transform.localScale *= 0.7f / 3; - var polearm = new CustomWeapon(BaseItem.WeaponModelType.Polearm, + var polearm = new CustomWeapon(ItemDefinition.ItemSubtype.Polearm, clone, Vector3.zero, new Vector3(0, 0, 0), @@ -512,12 +502,12 @@ public void CreateCustomWeapons_Spears() { spearType = true, tiredswingspeed = 20, - damage = 50f, + damage = 20f, staminaDrain = 14, blockTreeCut = false, - smashDamage = 350f, - swingspeed = 100, - ColliderScale = 3f, + smashDamage = 60f, + swingspeed = 50, + ColliderScale = 1f, treeDamage = 1, objectToHide = secondChild.gameObject }; diff --git a/Player/Overrides/WeaponInfoMod.cs b/Player/Overrides/WeaponInfoMod.cs index 86ff2bb..5b133fe 100644 --- a/Player/Overrides/WeaponInfoMod.cs +++ b/Player/Overrides/WeaponInfoMod.cs @@ -23,7 +23,7 @@ protected override void Update() { if (mainTriggerScript != null) { - if (PlayerInventoryMod.EquippedModel != BaseItem.WeaponModelType.None && PlayerInventoryMod.EquippedModel != BaseItem.WeaponModelType.Greatbow) + if (PlayerInventoryMod.EquippedModel != ItemDefinition.ItemSubtype.None && PlayerInventoryMod.EquippedModel != ItemDefinition.ItemSubtype.Greatbow) { CustomWeapon cw = PlayerInventoryMod.customWeapons[PlayerInventoryMod.EquippedModel]; setup.pmStamina.FsmVariables.GetFsmFloat("notTiredSpeed").Value = animSpeed * cw.swingspeed; @@ -246,7 +246,7 @@ private bool COTFHit(Collider other) answerStream.Close(); } } - if (ModdedPlayer.Stats.i_HammerStun && PlayerInventoryMod.EquippedModel == BaseItem.WeaponModelType.Hammer) + if (ModdedPlayer.Stats.i_HammerStun && PlayerInventoryMod.EquippedModel == ItemDefinition.ItemSubtype.Hammer) { using (System.IO.MemoryStream answerStream = new System.IO.MemoryStream()) { @@ -323,7 +323,7 @@ private bool COTFHit(Collider other) progression.FireDebuff(2000, fireDmg, 14); } - if (ModdedPlayer.Stats.i_HammerStun && PlayerInventoryMod.EquippedModel == BaseItem.WeaponModelType.Hammer) + if (ModdedPlayer.Stats.i_HammerStun && PlayerInventoryMod.EquippedModel == ItemDefinition.ItemSubtype.Hammer) progression.Slow(40, ModdedPlayer.Stats.i_HammerStunAmount, ModdedPlayer.Stats.i_HammerStunDuration); SpellActions.Bash(progression, outputdmg); diff --git a/Player/PlayerUtils.cs b/Player/PlayerUtils.cs index d3bb5de..43704c5 100644 --- a/Player/PlayerUtils.cs +++ b/Player/PlayerUtils.cs @@ -33,7 +33,7 @@ internal static float GetPlayerRangedDamageRating() float atkSpeed = 1; if (equippedWeapon != null) { - greatbow = equippedWeapon.subtype == BaseItem.WeaponModelType.Greatbow; + greatbow = equippedWeapon.subtype == ItemDefinition.ItemSubtype.Greatbow; if (greatbow) { dmg += 140; diff --git a/Player/RCoroutines.cs b/Player/RCoroutines.cs index c59d4d4..e870e8f 100644 --- a/Player/RCoroutines.cs +++ b/Player/RCoroutines.cs @@ -31,8 +31,8 @@ public IEnumerator AsyncSendRandomItemDrops(int count, EnemyProgression.Enemy ty { for (int i = 0; i < count; i++) { - Item randomItem = ItemDataBase.GetRandomItem(bounty, type, difficulty, position); - if (randomItem.rarity >= ModSettings.LootFilterMinRarity || randomItem.type == BaseItem.ItemType.Material || randomItem.type == BaseItem.ItemType.Other) + Item randomItem = ItemDatabase.GetRandomItem(bounty, type, difficulty, position); + if (randomItem.rarity >= ModSettings.LootFilterMinRarity || randomItem.type == ItemDefinition.ItemType.Material || randomItem.type == ItemDefinition.ItemType.Other) { yield return null; Network.NetworkManager.SendItemDrop(randomItem, position + Vector3.up * (2f + i / 10) + Random.Range(-1, 1) * Vector3.forward + Random.Range(-1, 1) * Vector3.right, ItemPickUp.DropSource.EnemyOnDeath); @@ -102,21 +102,11 @@ public IEnumerator AsyncCrossbowFire(int _ammoId, GameObject _ammoSpawnPosGo, Ga gameObject.transform.localScale *= 2f; force *= 2f; component.useGravity = false; - if (ModReferences.bloodInfusedMaterial == null) - { - ModReferences.bloodInfusedMaterial = BuilderCore.Core.CreateMaterial(new BuilderCore.BuildingData() - { - EmissionColor = new Color(0.6f, 0.1f, 0), - renderMode = BuilderCore.BuildingData.RenderMode.Fade, - MainColor = Color.red, - Metalic = 1f, - Smoothness = 0.9f, - }); - } + //gameObject.GetComponent().material = bloodInfusedMaterial; var trail = gameObject.AddComponent(); trail.widthCurve = new AnimationCurve(new Keyframe[] { new Keyframe(0f, 1f, 0f, 0f), new Keyframe(0.5f, 1f, 0f, 0f), new Keyframe(1f, 0.006248474f, 0f, 0f), }); - trail.material = ModReferences.bloodInfusedMaterial; + trail.material = ModReferences.BloodMaterial; trail.widthMultiplier = 0.55f; trail.time = 1.25f; } @@ -186,20 +176,10 @@ public IEnumerator AsyncRangedFire(PlayerInventory inv, float _weaponChargeStart { forceMult *= 1.1f; proj_rb.useGravity = false; - if (ModReferences.bloodInfusedMaterial == null) - { - ModReferences.bloodInfusedMaterial = BuilderCore.Core.CreateMaterial(new BuilderCore.BuildingData() - { - EmissionColor = new Color(0.6f, 0.1f, 0), - renderMode = BuilderCore.BuildingData.RenderMode.Opaque, - MainColor = Color.red, - Metalic = 1f, - Smoothness = 0.9f, - }); - } + var trail = projectileObject.AddComponent(); trail.widthCurve = new AnimationCurve(new Keyframe[] { new Keyframe(0f, 1f, 0f, 0f), new Keyframe(0.5f, 1f, 0f, 0f), new Keyframe(1f, 0.006248474f, 0f, 0f), }); - trail.material = ModReferences.bloodInfusedMaterial; + trail.material = ModReferences.BloodMaterial; trail.widthMultiplier = 0.45f; trail.time = 1.25f; trail.autodestruct = false; diff --git a/Serializer.cs b/Serializer.cs index 6b41b7b..dea2d48 100644 --- a/Serializer.cs +++ b/Serializer.cs @@ -32,7 +32,7 @@ private static void CreateInstance() private void OnApplicationQuit() { - EmergencySave(); + ForceSave(); } private void DoLoad(string path, out float HealthPercentage, out Dictionary ExtraCarriedItems) @@ -86,7 +86,7 @@ private void DoLoad(string path, out float HealthPercentage, out Dictionary entity.GetState(); + + public void FindHand() + { + hand = ModReferences.FindDeepChild(gameObject.transform.root, "rightHandHeld"); + } + public void UpdatePlayerLevel() + { + var playerNameComponent = gameObject.GetComponentInChildren(); + playerNameComponent.SendMessage("SetNameWithLevel", level); + } + } + + private Dictionary players_lookup_name = new Dictionary(); + private Dictionary players_lookup_gameobject = new Dictionary(); + private Dictionary players_lookup_entity = new Dictionary(); + + public ModdedPlayerState[] All => players_lookup_name.Values.ToArray(); + + public ModdedPlayerState GetPlayerState(string playerID) + { + if (players_lookup_name.TryGetValue(playerID, out var state)) + { + return state; + } + else + { + return null; + } + } + public ModdedPlayerState GetPlayerState(GameObject go) + { + if (players_lookup_gameobject.TryGetValue(go, out var state)) + { + return state; + } + else + { + return null; + } + } + + public ModdedPlayerState GetPlayerState(BoltEntity entity) + { + if (players_lookup_entity.TryGetValue(entity, out var state)) + { + return state; + } + else + { + return null; + } + } + + public bool AddPlayerState(ModdedPlayerState state) + { + if (state.entity != null && state.gameObject != null) + { + if (state.hand == null) + state.FindHand(); + + if (players_lookup_entity.ContainsKey(state.entity)) + players_lookup_entity[state.entity] = state; + else + players_lookup_entity.Add(state.entity, state); + + if (players_lookup_gameobject.ContainsKey(state.gameObject)) + players_lookup_gameobject[state.gameObject] = state; + else + players_lookup_gameobject.Add(state.gameObject, state); + + if (players_lookup_name.ContainsKey(state.playerID)) + players_lookup_name[state.playerID] = state; + else + players_lookup_name.Add(state.playerID, state); + + return true; + } + return false; + + } + } +} +} \ No newline at end of file diff --git a/Translations.cs b/Translations.cs index ff65baf..b559e15 100644 --- a/Translations.cs +++ b/Translations.cs @@ -1699,1405 +1699,1405 @@ public partial class Translations public static string SpellDataBase_52 => instance._SpellDataBase_52; public string _SpellDataBase_52 = "Snow Storm"; - //ItemDataBase_StatDefinitions - public static string ItemDataBase_StatDefinitions_1 => instance._ItemDataBase_StatDefinitions_1; - public string _ItemDataBase_StatDefinitions_1 = "Health"; - public static string ItemDataBase_StatDefinitions_2 => instance._ItemDataBase_StatDefinitions_2; - public string _ItemDataBase_StatDefinitions_2 = "Energy"; - public static string ItemDataBase_StatDefinitions_3 => instance._ItemDataBase_StatDefinitions_3; - public string _ItemDataBase_StatDefinitions_3 = "Health/sec"; - public static string ItemDataBase_StatDefinitions_4 => instance._ItemDataBase_StatDefinitions_4; - public string _ItemDataBase_StatDefinitions_4 = "Stamina/sec"; - public static string ItemDataBase_StatDefinitions_5 => instance._ItemDataBase_StatDefinitions_5; - public string _ItemDataBase_StatDefinitions_5 = "Energy regen"; - public static string ItemDataBase_StatDefinitions_6 => instance._ItemDataBase_StatDefinitions_6; - public string _ItemDataBase_StatDefinitions_6 = "Life regen"; - public static string ItemDataBase_StatDefinitions_7 => instance._ItemDataBase_StatDefinitions_7; - public string _ItemDataBase_StatDefinitions_7 = "Critical hit chance"; - public static string ItemDataBase_StatDefinitions_8 => instance._ItemDataBase_StatDefinitions_8; - public string _ItemDataBase_StatDefinitions_8 = "Life on hit"; - public static string ItemDataBase_StatDefinitions_9 => instance._ItemDataBase_StatDefinitions_9; - public string _ItemDataBase_StatDefinitions_9 = "Dodge chance"; - public static string ItemDataBase_StatDefinitions_10 => instance._ItemDataBase_StatDefinitions_10; - public string _ItemDataBase_StatDefinitions_10 = "Magic resistance"; - public static string ItemDataBase_StatDefinitions_11 => instance._ItemDataBase_StatDefinitions_11; - public string _ItemDataBase_StatDefinitions_11 = "Experience"; - public static string ItemDataBase_StatDefinitions_12 => instance._ItemDataBase_StatDefinitions_12; - public string _ItemDataBase_StatDefinitions_12 = "Spell damage"; - public static string ItemDataBase_StatDefinitions_13 => instance._ItemDataBase_StatDefinitions_13; - public string _ItemDataBase_StatDefinitions_13 = "Melee damage"; - public static string ItemDataBase_StatDefinitions_14 => instance._ItemDataBase_StatDefinitions_14; - public string _ItemDataBase_StatDefinitions_14 = "Ranged damage"; - public static string ItemDataBase_StatDefinitions_15 => instance._ItemDataBase_StatDefinitions_15; - public string _ItemDataBase_StatDefinitions_15 = "Base spell damage"; - public static string ItemDataBase_StatDefinitions_16 => instance._ItemDataBase_StatDefinitions_16; - public string _ItemDataBase_StatDefinitions_16 = "Base melee damage"; - public static string ItemDataBase_StatDefinitions_17 => instance._ItemDataBase_StatDefinitions_17; - public string _ItemDataBase_StatDefinitions_17 = "Base ranged damage"; - public static string ItemDataBase_StatDefinitions_18 => instance._ItemDataBase_StatDefinitions_18; - public string _ItemDataBase_StatDefinitions_18 = "Energy/agility"; - public static string ItemDataBase_StatDefinitions_19 => instance._ItemDataBase_StatDefinitions_19; - public string _ItemDataBase_StatDefinitions_19 = "Health/vitality"; - public static string ItemDataBase_StatDefinitions_20 => instance._ItemDataBase_StatDefinitions_20; - public string _ItemDataBase_StatDefinitions_20 = "Spell damage/intelligence"; - public static string ItemDataBase_StatDefinitions_21 => instance._ItemDataBase_StatDefinitions_21; - public string _ItemDataBase_StatDefinitions_21 = "Melee damage/strength"; - public static string ItemDataBase_StatDefinitions_22 => instance._ItemDataBase_StatDefinitions_22; - public string _ItemDataBase_StatDefinitions_22 = "Recovery"; - public static string ItemDataBase_StatDefinitions_23 => instance._ItemDataBase_StatDefinitions_23; - public string _ItemDataBase_StatDefinitions_23 = "PERMANENT PERK POINTS"; - public static string ItemDataBase_StatDefinitions_24 => instance._ItemDataBase_StatDefinitions_24; - public string _ItemDataBase_StatDefinitions_24 = " / "; - public static string ItemDataBase_StatDefinitions_25 => instance._ItemDataBase_StatDefinitions_25; - public string _ItemDataBase_StatDefinitions_25 = "EXPERIENCE"; - public static string ItemDataBase_StatDefinitions_26 => instance._ItemDataBase_StatDefinitions_26; - public string _ItemDataBase_StatDefinitions_26 = "Weapon length"; - public static string ItemDataBase_StatDefinitions_27 => instance._ItemDataBase_StatDefinitions_27; - public string _ItemDataBase_StatDefinitions_27 = "Attack cost reduction"; - public static string ItemDataBase_StatDefinitions_28 => instance._ItemDataBase_StatDefinitions_28; - public string _ItemDataBase_StatDefinitions_28 = "Spell cost to stamina"; - public static string ItemDataBase_StatDefinitions_29 => instance._ItemDataBase_StatDefinitions_29; - public string _ItemDataBase_StatDefinitions_29 = "Energy/sec"; - public static string ItemDataBase_StatDefinitions_30 => instance._ItemDataBase_StatDefinitions_30; - public string _ItemDataBase_StatDefinitions_30 = "Ranged damage/agility"; - public static string ItemDataBase_StatDefinitions_31 => instance._ItemDataBase_StatDefinitions_31; - public string _ItemDataBase_StatDefinitions_31 = "Melee armor piercing"; - public static string ItemDataBase_StatDefinitions_32 => instance._ItemDataBase_StatDefinitions_32; - public string _ItemDataBase_StatDefinitions_32 = "Ranged armor piercing"; - public static string ItemDataBase_StatDefinitions_33 => instance._ItemDataBase_StatDefinitions_33; - public string _ItemDataBase_StatDefinitions_33 = "Armor piercing"; - public static string ItemDataBase_StatDefinitions_34 => instance._ItemDataBase_StatDefinitions_34; - public string _ItemDataBase_StatDefinitions_34 = "Refund points"; - public static string ItemDataBase_StatDefinitions_35 => instance._ItemDataBase_StatDefinitions_35; - public string _ItemDataBase_StatDefinitions_35 = "Headshot damage"; - public static string ItemDataBase_StatDefinitions_36 => instance._ItemDataBase_StatDefinitions_36; - public string _ItemDataBase_StatDefinitions_36 = "Fire damage"; - public static string ItemDataBase_StatDefinitions_37 => instance._ItemDataBase_StatDefinitions_37; - public string _ItemDataBase_StatDefinitions_37 = "Chance on hit to slow"; - public static string ItemDataBase_StatDefinitions_38 => instance._ItemDataBase_StatDefinitions_38; - public string _ItemDataBase_StatDefinitions_38 = "Chance on hit to bleed"; - public static string ItemDataBase_StatDefinitions_39 => instance._ItemDataBase_StatDefinitions_39; - public string _ItemDataBase_StatDefinitions_39 = "Chance on hit to weaken"; - public static string ItemDataBase_StatDefinitions_40 => instance._ItemDataBase_StatDefinitions_40; - public string _ItemDataBase_StatDefinitions_40 = "Dynamite & bomb damage"; - public static string ItemDataBase_StatDefinitions_41 => instance._ItemDataBase_StatDefinitions_41; - public string _ItemDataBase_StatDefinitions_41 = "Spear damage"; - public static string ItemDataBase_StatDefinitions_42 => instance._ItemDataBase_StatDefinitions_42; - public string _ItemDataBase_StatDefinitions_42 = "Extra carried Sticks"; - public static string ItemDataBase_StatDefinitions_43 => instance._ItemDataBase_StatDefinitions_43; - public string _ItemDataBase_StatDefinitions_43 = "Extra carried Rocks"; - public static string ItemDataBase_StatDefinitions_44 => instance._ItemDataBase_StatDefinitions_44; - public string _ItemDataBase_StatDefinitions_44 = "Extra carried Ropes"; - public static string ItemDataBase_StatDefinitions_45 => instance._ItemDataBase_StatDefinitions_45; - public string _ItemDataBase_StatDefinitions_45 = " Soda: "; - public static string ItemDataBase_StatDefinitions_46 => instance._ItemDataBase_StatDefinitions_46; - public string _ItemDataBase_StatDefinitions_46 = "Booze: "; - public static string ItemDataBase_StatDefinitions_47 => instance._ItemDataBase_StatDefinitions_47; - public string _ItemDataBase_StatDefinitions_47 = "Extra carried Drinks"; - public static string ItemDataBase_StatDefinitions_48 => instance._ItemDataBase_StatDefinitions_48; - public string _ItemDataBase_StatDefinitions_48 = "Extra carried Food"; - public static string ItemDataBase_StatDefinitions_49 => instance._ItemDataBase_StatDefinitions_49; - public string _ItemDataBase_StatDefinitions_49 = "Black hole radius"; - public static string ItemDataBase_StatDefinitions_50 => instance._ItemDataBase_StatDefinitions_50; - public string _ItemDataBase_StatDefinitions_50 = "Black hole lifetime"; - public static string ItemDataBase_StatDefinitions_51 => instance._ItemDataBase_StatDefinitions_51; - public string _ItemDataBase_StatDefinitions_51 = "Black hole gravitational force"; - public static string ItemDataBase_StatDefinitions_52 => instance._ItemDataBase_StatDefinitions_52; - public string _ItemDataBase_StatDefinitions_52 = "Black hole damage"; - public static string ItemDataBase_StatDefinitions_53 => instance._ItemDataBase_StatDefinitions_53; - public string _ItemDataBase_StatDefinitions_53 = "Stun on hit"; - public static string ItemDataBase_StatDefinitions_54 => instance._ItemDataBase_StatDefinitions_54; - public string _ItemDataBase_StatDefinitions_54 = "Snap freeze Duration"; - public static string ItemDataBase_StatDefinitions_55 => instance._ItemDataBase_StatDefinitions_55; - public string _ItemDataBase_StatDefinitions_55 = "Raft speed"; - public static string ItemDataBase_StatDefinitions_56 => instance._ItemDataBase_StatDefinitions_56; - public string _ItemDataBase_StatDefinitions_56 = "Empty socket"; - public static string ItemDataBase_StatDefinitions_57 => instance._ItemDataBase_StatDefinitions_57; - public string _ItemDataBase_StatDefinitions_57 = "Socket: crit chance"; - public static string ItemDataBase_StatDefinitions_58 => instance._ItemDataBase_StatDefinitions_58; - public string _ItemDataBase_StatDefinitions_58 = "Socket: agility"; - public static string ItemDataBase_StatDefinitions_59 => instance._ItemDataBase_StatDefinitions_59; - public string _ItemDataBase_StatDefinitions_59 = "Socket: movement speed"; - public static string ItemDataBase_StatDefinitions_60 => instance._ItemDataBase_StatDefinitions_60; - public string _ItemDataBase_StatDefinitions_60 = "Socket: ranged damage"; - public static string ItemDataBase_StatDefinitions_61 => instance._ItemDataBase_StatDefinitions_61; - public string _ItemDataBase_StatDefinitions_61 = "Socket: ranged armor piercing"; - public static string ItemDataBase_StatDefinitions_62 => instance._ItemDataBase_StatDefinitions_62; - public string _ItemDataBase_StatDefinitions_62 = "Socket: attack speed"; - public static string ItemDataBase_StatDefinitions_63 => instance._ItemDataBase_StatDefinitions_63; - public string _ItemDataBase_StatDefinitions_63 = "Socket: strength"; - public static string ItemDataBase_StatDefinitions_64 => instance._ItemDataBase_StatDefinitions_64; - public string _ItemDataBase_StatDefinitions_64 = "Socket: damage reduction"; - public static string ItemDataBase_StatDefinitions_65 => instance._ItemDataBase_StatDefinitions_65; - public string _ItemDataBase_StatDefinitions_65 = "Socket: melee damage"; - public static string ItemDataBase_StatDefinitions_66 => instance._ItemDataBase_StatDefinitions_66; - public string _ItemDataBase_StatDefinitions_66 = "Socket: melee armor piercing"; - public static string ItemDataBase_StatDefinitions_67 => instance._ItemDataBase_StatDefinitions_67; - public string _ItemDataBase_StatDefinitions_67 = "Socket: cooldown reduction"; - public static string ItemDataBase_StatDefinitions_68 => instance._ItemDataBase_StatDefinitions_68; - public string _ItemDataBase_StatDefinitions_68 = "Socket: intelligence"; - public static string ItemDataBase_StatDefinitions_69 => instance._ItemDataBase_StatDefinitions_69; - public string _ItemDataBase_StatDefinitions_69 = "Socket: spell cost reduction"; - public static string ItemDataBase_StatDefinitions_70 => instance._ItemDataBase_StatDefinitions_70; - public string _ItemDataBase_StatDefinitions_70 = "Socket: spell damage"; - public static string ItemDataBase_StatDefinitions_71 => instance._ItemDataBase_StatDefinitions_71; - public string _ItemDataBase_StatDefinitions_71 = "Socket: energy on hit"; - public static string ItemDataBase_StatDefinitions_72 => instance._ItemDataBase_StatDefinitions_72; - public string _ItemDataBase_StatDefinitions_72 = "Socket: experience gain"; - public static string ItemDataBase_StatDefinitions_73 => instance._ItemDataBase_StatDefinitions_73; - public string _ItemDataBase_StatDefinitions_73 = "Socket: vitality "; - public static string ItemDataBase_StatDefinitions_74 => instance._ItemDataBase_StatDefinitions_74; - public string _ItemDataBase_StatDefinitions_74 = "Socket: magic find"; - public static string ItemDataBase_StatDefinitions_75 => instance._ItemDataBase_StatDefinitions_75; - public string _ItemDataBase_StatDefinitions_75 = "Socket: all healing"; - public static string ItemDataBase_StatDefinitions_76 => instance._ItemDataBase_StatDefinitions_76; - public string _ItemDataBase_StatDefinitions_76 = "Socket: life per second"; - public static string ItemDataBase_StatDefinitions_77 => instance._ItemDataBase_StatDefinitions_77; - public string _ItemDataBase_StatDefinitions_77 = "Socket: maximum health "; - public static string ItemDataBase_StatDefinitions_78 => instance._ItemDataBase_StatDefinitions_78; - public string _ItemDataBase_StatDefinitions_78 = "Socket: armor "; - public static string ItemDataBase_StatDefinitions_79 => instance._ItemDataBase_StatDefinitions_79; - public string _ItemDataBase_StatDefinitions_79 = "Socket: Resistance to magic"; - public static string ItemDataBase_StatDefinitions_80 => instance._ItemDataBase_StatDefinitions_80; - public string _ItemDataBase_StatDefinitions_80 = "Socket: crit damage"; - public static string ItemDataBase_StatDefinitions_81 => instance._ItemDataBase_StatDefinitions_81; - public string _ItemDataBase_StatDefinitions_81 = "Socket: thorns"; + //ItemDatabase_StatDefinitions + public static string ItemDatabase_StatDefinitions_1 => instance._ItemDatabase_StatDefinitions_1; + public string _ItemDatabase_StatDefinitions_1 = "Health"; + public static string ItemDatabase_StatDefinitions_2 => instance._ItemDatabase_StatDefinitions_2; + public string _ItemDatabase_StatDefinitions_2 = "Energy"; + public static string ItemDatabase_StatDefinitions_3 => instance._ItemDatabase_StatDefinitions_3; + public string _ItemDatabase_StatDefinitions_3 = "Health/sec"; + public static string ItemDatabase_StatDefinitions_4 => instance._ItemDatabase_StatDefinitions_4; + public string _ItemDatabase_StatDefinitions_4 = "Stamina/sec"; + public static string ItemDatabase_StatDefinitions_5 => instance._ItemDatabase_StatDefinitions_5; + public string _ItemDatabase_StatDefinitions_5 = "Energy regen"; + public static string ItemDatabase_StatDefinitions_6 => instance._ItemDatabase_StatDefinitions_6; + public string _ItemDatabase_StatDefinitions_6 = "Life regen"; + public static string ItemDatabase_StatDefinitions_7 => instance._ItemDatabase_StatDefinitions_7; + public string _ItemDatabase_StatDefinitions_7 = "Critical hit chance"; + public static string ItemDatabase_StatDefinitions_8 => instance._ItemDatabase_StatDefinitions_8; + public string _ItemDatabase_StatDefinitions_8 = "Life on hit"; + public static string ItemDatabase_StatDefinitions_9 => instance._ItemDatabase_StatDefinitions_9; + public string _ItemDatabase_StatDefinitions_9 = "Dodge chance"; + public static string ItemDatabase_StatDefinitions_10 => instance._ItemDatabase_StatDefinitions_10; + public string _ItemDatabase_StatDefinitions_10 = "Magic resistance"; + public static string ItemDatabase_StatDefinitions_11 => instance._ItemDatabase_StatDefinitions_11; + public string _ItemDatabase_StatDefinitions_11 = "Experience"; + public static string ItemDatabase_StatDefinitions_12 => instance._ItemDatabase_StatDefinitions_12; + public string _ItemDatabase_StatDefinitions_12 = "Spell damage"; + public static string ItemDatabase_StatDefinitions_13 => instance._ItemDatabase_StatDefinitions_13; + public string _ItemDatabase_StatDefinitions_13 = "Melee damage"; + public static string ItemDatabase_StatDefinitions_14 => instance._ItemDatabase_StatDefinitions_14; + public string _ItemDatabase_StatDefinitions_14 = "Ranged damage"; + public static string ItemDatabase_StatDefinitions_15 => instance._ItemDatabase_StatDefinitions_15; + public string _ItemDatabase_StatDefinitions_15 = "Base spell damage"; + public static string ItemDatabase_StatDefinitions_16 => instance._ItemDatabase_StatDefinitions_16; + public string _ItemDatabase_StatDefinitions_16 = "Base melee damage"; + public static string ItemDatabase_StatDefinitions_17 => instance._ItemDatabase_StatDefinitions_17; + public string _ItemDatabase_StatDefinitions_17 = "Base ranged damage"; + public static string ItemDatabase_StatDefinitions_18 => instance._ItemDatabase_StatDefinitions_18; + public string _ItemDatabase_StatDefinitions_18 = "Energy/agility"; + public static string ItemDatabase_StatDefinitions_19 => instance._ItemDatabase_StatDefinitions_19; + public string _ItemDatabase_StatDefinitions_19 = "Health/vitality"; + public static string ItemDatabase_StatDefinitions_20 => instance._ItemDatabase_StatDefinitions_20; + public string _ItemDatabase_StatDefinitions_20 = "Spell damage/intelligence"; + public static string ItemDatabase_StatDefinitions_21 => instance._ItemDatabase_StatDefinitions_21; + public string _ItemDatabase_StatDefinitions_21 = "Melee damage/strength"; + public static string ItemDatabase_StatDefinitions_22 => instance._ItemDatabase_StatDefinitions_22; + public string _ItemDatabase_StatDefinitions_22 = "Recovery"; + public static string ItemDatabase_StatDefinitions_23 => instance._ItemDatabase_StatDefinitions_23; + public string _ItemDatabase_StatDefinitions_23 = "PERMANENT PERK POINTS"; + public static string ItemDatabase_StatDefinitions_24 => instance._ItemDatabase_StatDefinitions_24; + public string _ItemDatabase_StatDefinitions_24 = " / "; + public static string ItemDatabase_StatDefinitions_25 => instance._ItemDatabase_StatDefinitions_25; + public string _ItemDatabase_StatDefinitions_25 = "EXPERIENCE"; + public static string ItemDatabase_StatDefinitions_26 => instance._ItemDatabase_StatDefinitions_26; + public string _ItemDatabase_StatDefinitions_26 = "Weapon length"; + public static string ItemDatabase_StatDefinitions_27 => instance._ItemDatabase_StatDefinitions_27; + public string _ItemDatabase_StatDefinitions_27 = "Attack cost reduction"; + public static string ItemDatabase_StatDefinitions_28 => instance._ItemDatabase_StatDefinitions_28; + public string _ItemDatabase_StatDefinitions_28 = "Spell cost to stamina"; + public static string ItemDatabase_StatDefinitions_29 => instance._ItemDatabase_StatDefinitions_29; + public string _ItemDatabase_StatDefinitions_29 = "Energy/sec"; + public static string ItemDatabase_StatDefinitions_30 => instance._ItemDatabase_StatDefinitions_30; + public string _ItemDatabase_StatDefinitions_30 = "Ranged damage/agility"; + public static string ItemDatabase_StatDefinitions_31 => instance._ItemDatabase_StatDefinitions_31; + public string _ItemDatabase_StatDefinitions_31 = "Melee armor piercing"; + public static string ItemDatabase_StatDefinitions_32 => instance._ItemDatabase_StatDefinitions_32; + public string _ItemDatabase_StatDefinitions_32 = "Ranged armor piercing"; + public static string ItemDatabase_StatDefinitions_33 => instance._ItemDatabase_StatDefinitions_33; + public string _ItemDatabase_StatDefinitions_33 = "Armor piercing"; + public static string ItemDatabase_StatDefinitions_34 => instance._ItemDatabase_StatDefinitions_34; + public string _ItemDatabase_StatDefinitions_34 = "Refund points"; + public static string ItemDatabase_StatDefinitions_35 => instance._ItemDatabase_StatDefinitions_35; + public string _ItemDatabase_StatDefinitions_35 = "Headshot damage"; + public static string ItemDatabase_StatDefinitions_36 => instance._ItemDatabase_StatDefinitions_36; + public string _ItemDatabase_StatDefinitions_36 = "Fire damage"; + public static string ItemDatabase_StatDefinitions_37 => instance._ItemDatabase_StatDefinitions_37; + public string _ItemDatabase_StatDefinitions_37 = "Chance on hit to slow"; + public static string ItemDatabase_StatDefinitions_38 => instance._ItemDatabase_StatDefinitions_38; + public string _ItemDatabase_StatDefinitions_38 = "Chance on hit to bleed"; + public static string ItemDatabase_StatDefinitions_39 => instance._ItemDatabase_StatDefinitions_39; + public string _ItemDatabase_StatDefinitions_39 = "Chance on hit to weaken"; + public static string ItemDatabase_StatDefinitions_40 => instance._ItemDatabase_StatDefinitions_40; + public string _ItemDatabase_StatDefinitions_40 = "Dynamite & bomb damage"; + public static string ItemDatabase_StatDefinitions_41 => instance._ItemDatabase_StatDefinitions_41; + public string _ItemDatabase_StatDefinitions_41 = "Spear damage"; + public static string ItemDatabase_StatDefinitions_42 => instance._ItemDatabase_StatDefinitions_42; + public string _ItemDatabase_StatDefinitions_42 = "Extra carried Sticks"; + public static string ItemDatabase_StatDefinitions_43 => instance._ItemDatabase_StatDefinitions_43; + public string _ItemDatabase_StatDefinitions_43 = "Extra carried Rocks"; + public static string ItemDatabase_StatDefinitions_44 => instance._ItemDatabase_StatDefinitions_44; + public string _ItemDatabase_StatDefinitions_44 = "Extra carried Ropes"; + public static string ItemDatabase_StatDefinitions_45 => instance._ItemDatabase_StatDefinitions_45; + public string _ItemDatabase_StatDefinitions_45 = " Soda: "; + public static string ItemDatabase_StatDefinitions_46 => instance._ItemDatabase_StatDefinitions_46; + public string _ItemDatabase_StatDefinitions_46 = "Booze: "; + public static string ItemDatabase_StatDefinitions_47 => instance._ItemDatabase_StatDefinitions_47; + public string _ItemDatabase_StatDefinitions_47 = "Extra carried Drinks"; + public static string ItemDatabase_StatDefinitions_48 => instance._ItemDatabase_StatDefinitions_48; + public string _ItemDatabase_StatDefinitions_48 = "Extra carried Food"; + public static string ItemDatabase_StatDefinitions_49 => instance._ItemDatabase_StatDefinitions_49; + public string _ItemDatabase_StatDefinitions_49 = "Black hole radius"; + public static string ItemDatabase_StatDefinitions_50 => instance._ItemDatabase_StatDefinitions_50; + public string _ItemDatabase_StatDefinitions_50 = "Black hole lifetime"; + public static string ItemDatabase_StatDefinitions_51 => instance._ItemDatabase_StatDefinitions_51; + public string _ItemDatabase_StatDefinitions_51 = "Black hole gravitational force"; + public static string ItemDatabase_StatDefinitions_52 => instance._ItemDatabase_StatDefinitions_52; + public string _ItemDatabase_StatDefinitions_52 = "Black hole damage"; + public static string ItemDatabase_StatDefinitions_53 => instance._ItemDatabase_StatDefinitions_53; + public string _ItemDatabase_StatDefinitions_53 = "Stun on hit"; + public static string ItemDatabase_StatDefinitions_54 => instance._ItemDatabase_StatDefinitions_54; + public string _ItemDatabase_StatDefinitions_54 = "Snap freeze Duration"; + public static string ItemDatabase_StatDefinitions_55 => instance._ItemDatabase_StatDefinitions_55; + public string _ItemDatabase_StatDefinitions_55 = "Raft speed"; + public static string ItemDatabase_StatDefinitions_56 => instance._ItemDatabase_StatDefinitions_56; + public string _ItemDatabase_StatDefinitions_56 = "Empty socket"; + public static string ItemDatabase_StatDefinitions_57 => instance._ItemDatabase_StatDefinitions_57; + public string _ItemDatabase_StatDefinitions_57 = "Socket: crit chance"; + public static string ItemDatabase_StatDefinitions_58 => instance._ItemDatabase_StatDefinitions_58; + public string _ItemDatabase_StatDefinitions_58 = "Socket: agility"; + public static string ItemDatabase_StatDefinitions_59 => instance._ItemDatabase_StatDefinitions_59; + public string _ItemDatabase_StatDefinitions_59 = "Socket: movement speed"; + public static string ItemDatabase_StatDefinitions_60 => instance._ItemDatabase_StatDefinitions_60; + public string _ItemDatabase_StatDefinitions_60 = "Socket: ranged damage"; + public static string ItemDatabase_StatDefinitions_61 => instance._ItemDatabase_StatDefinitions_61; + public string _ItemDatabase_StatDefinitions_61 = "Socket: ranged armor piercing"; + public static string ItemDatabase_StatDefinitions_62 => instance._ItemDatabase_StatDefinitions_62; + public string _ItemDatabase_StatDefinitions_62 = "Socket: attack speed"; + public static string ItemDatabase_StatDefinitions_63 => instance._ItemDatabase_StatDefinitions_63; + public string _ItemDatabase_StatDefinitions_63 = "Socket: strength"; + public static string ItemDatabase_StatDefinitions_64 => instance._ItemDatabase_StatDefinitions_64; + public string _ItemDatabase_StatDefinitions_64 = "Socket: damage reduction"; + public static string ItemDatabase_StatDefinitions_65 => instance._ItemDatabase_StatDefinitions_65; + public string _ItemDatabase_StatDefinitions_65 = "Socket: melee damage"; + public static string ItemDatabase_StatDefinitions_66 => instance._ItemDatabase_StatDefinitions_66; + public string _ItemDatabase_StatDefinitions_66 = "Socket: melee armor piercing"; + public static string ItemDatabase_StatDefinitions_67 => instance._ItemDatabase_StatDefinitions_67; + public string _ItemDatabase_StatDefinitions_67 = "Socket: cooldown reduction"; + public static string ItemDatabase_StatDefinitions_68 => instance._ItemDatabase_StatDefinitions_68; + public string _ItemDatabase_StatDefinitions_68 = "Socket: intelligence"; + public static string ItemDatabase_StatDefinitions_69 => instance._ItemDatabase_StatDefinitions_69; + public string _ItemDatabase_StatDefinitions_69 = "Socket: spell cost reduction"; + public static string ItemDatabase_StatDefinitions_70 => instance._ItemDatabase_StatDefinitions_70; + public string _ItemDatabase_StatDefinitions_70 = "Socket: spell damage"; + public static string ItemDatabase_StatDefinitions_71 => instance._ItemDatabase_StatDefinitions_71; + public string _ItemDatabase_StatDefinitions_71 = "Socket: energy on hit"; + public static string ItemDatabase_StatDefinitions_72 => instance._ItemDatabase_StatDefinitions_72; + public string _ItemDatabase_StatDefinitions_72 = "Socket: experience gain"; + public static string ItemDatabase_StatDefinitions_73 => instance._ItemDatabase_StatDefinitions_73; + public string _ItemDatabase_StatDefinitions_73 = "Socket: vitality "; + public static string ItemDatabase_StatDefinitions_74 => instance._ItemDatabase_StatDefinitions_74; + public string _ItemDatabase_StatDefinitions_74 = "Socket: magic find"; + public static string ItemDatabase_StatDefinitions_75 => instance._ItemDatabase_StatDefinitions_75; + public string _ItemDatabase_StatDefinitions_75 = "Socket: all healing"; + public static string ItemDatabase_StatDefinitions_76 => instance._ItemDatabase_StatDefinitions_76; + public string _ItemDatabase_StatDefinitions_76 = "Socket: life per second"; + public static string ItemDatabase_StatDefinitions_77 => instance._ItemDatabase_StatDefinitions_77; + public string _ItemDatabase_StatDefinitions_77 = "Socket: maximum health "; + public static string ItemDatabase_StatDefinitions_78 => instance._ItemDatabase_StatDefinitions_78; + public string _ItemDatabase_StatDefinitions_78 = "Socket: armor "; + public static string ItemDatabase_StatDefinitions_79 => instance._ItemDatabase_StatDefinitions_79; + public string _ItemDatabase_StatDefinitions_79 = "Socket: Resistance to magic"; + public static string ItemDatabase_StatDefinitions_80 => instance._ItemDatabase_StatDefinitions_80; + public string _ItemDatabase_StatDefinitions_80 = "Socket: crit damage"; + public static string ItemDatabase_StatDefinitions_81 => instance._ItemDatabase_StatDefinitions_81; + public string _ItemDatabase_StatDefinitions_81 = "Socket: thorns"; - //ItemDataBase_ItemDefinitions - public static string ItemDataBase_ItemDefinitions_1 => instance._ItemDataBase_ItemDefinitions_1; - public string _ItemDataBase_ItemDefinitions_1 = "Broken Flip-Flops"; - public static string ItemDataBase_ItemDefinitions_2 => instance._ItemDataBase_ItemDefinitions_2; - public string _ItemDataBase_ItemDefinitions_2 = "A pair of damaged shoes. Judging by their condition, i can imagine what happened to their owner."; - public static string ItemDataBase_ItemDefinitions_3 => instance._ItemDataBase_ItemDefinitions_3; - public string _ItemDataBase_ItemDefinitions_3 = "Worn by one of the passengers of the plane that Eric also flew in."; - public static string ItemDataBase_ItemDefinitions_4 => instance._ItemDataBase_ItemDefinitions_4; - public string _ItemDataBase_ItemDefinitions_4 = "Old Boots"; - public static string ItemDataBase_ItemDefinitions_5 => instance._ItemDataBase_ItemDefinitions_5; - public string _ItemDataBase_ItemDefinitions_5 = "A pair of old boots. They must have been lying here for ages."; - public static string ItemDataBase_ItemDefinitions_6 => instance._ItemDataBase_ItemDefinitions_6; - public string _ItemDataBase_ItemDefinitions_6 = "Found on the Peninsula, but judging by their condition, they belong neither to a plane passenger nor a cannibal."; - public static string ItemDataBase_ItemDefinitions_7 => instance._ItemDataBase_ItemDefinitions_7; - public string _ItemDataBase_ItemDefinitions_7 = "Damaged Leather Boots"; - public static string ItemDataBase_ItemDefinitions_8 => instance._ItemDataBase_ItemDefinitions_8; - public string _ItemDataBase_ItemDefinitions_8 = "A pair of leather boots. They look good and have only some scratches."; - public static string ItemDataBase_ItemDefinitions_9 => instance._ItemDataBase_ItemDefinitions_9; - public string _ItemDataBase_ItemDefinitions_9 = "They arrived to the Peninsula the same way Eric did. Since they were in a baggage, they avoided a lot of damage."; - public static string ItemDataBase_ItemDefinitions_10 => instance._ItemDataBase_ItemDefinitions_10; - public string _ItemDataBase_ItemDefinitions_10 = "Sturdy Leather Boots"; - public static string ItemDataBase_ItemDefinitions_11 => instance._ItemDataBase_ItemDefinitions_11; - public string _ItemDataBase_ItemDefinitions_11 = "A pair of leather boots. They are in a very good condition."; - public static string ItemDataBase_ItemDefinitions_12 => instance._ItemDataBase_ItemDefinitions_12; - public string _ItemDataBase_ItemDefinitions_12 = "They arrived to the Peninsula the same way Eric did. Eric found them undamaged in their original box. They still had a pricetag - $419,99."; - public static string ItemDataBase_ItemDefinitions_13 => instance._ItemDataBase_ItemDefinitions_13; - public string _ItemDataBase_ItemDefinitions_13 = "Damaged Army Boots"; - public static string ItemDataBase_ItemDefinitions_14 => instance._ItemDataBase_ItemDefinitions_14; - public string _ItemDataBase_ItemDefinitions_14 = "Sturdy, hard, resistant but damaged boots."; - public static string ItemDataBase_ItemDefinitions_15 => instance._ItemDataBase_ItemDefinitions_15; - public string _ItemDataBase_ItemDefinitions_15 = "They look modern, almost too modern for everything here."; - public static string ItemDataBase_ItemDefinitions_16 => instance._ItemDataBase_ItemDefinitions_16; - public string _ItemDataBase_ItemDefinitions_16 = "Army Boots"; - public static string ItemDataBase_ItemDefinitions_17 => instance._ItemDataBase_ItemDefinitions_17; - public string _ItemDataBase_ItemDefinitions_17 = "Sturdy, hard, resistant boots."; - public static string ItemDataBase_ItemDefinitions_18 => instance._ItemDataBase_ItemDefinitions_18; - public string _ItemDataBase_ItemDefinitions_18 = "Armsy Skin Footwear"; - public static string ItemDataBase_ItemDefinitions_19 => instance._ItemDataBase_ItemDefinitions_19; - public string _ItemDataBase_ItemDefinitions_19 = "Severed armsy legs, with all of their insides removed. All thats left is dried mutated skin."; - public static string ItemDataBase_ItemDefinitions_20 => instance._ItemDataBase_ItemDefinitions_20; - public string _ItemDataBase_ItemDefinitions_20 = "Armsy, the second heaviest of the mutants needs very resistant skin. It often drags its legs on the ground when it moves. The skin on their legs grew very thick, and has bone tissue mixed with skin tissue."; - public static string ItemDataBase_ItemDefinitions_21 => instance._ItemDataBase_ItemDefinitions_21; - public string _ItemDataBase_ItemDefinitions_21 = "Finger Warmer"; - public static string ItemDataBase_ItemDefinitions_22 => instance._ItemDataBase_ItemDefinitions_22; - public string _ItemDataBase_ItemDefinitions_22 = "A little glove to keep your fingers warm and cozy."; - public static string ItemDataBase_ItemDefinitions_23 => instance._ItemDataBase_ItemDefinitions_23; - public string _ItemDataBase_ItemDefinitions_23 = "Made of wool."; - public static string ItemDataBase_ItemDefinitions_24 => instance._ItemDataBase_ItemDefinitions_24; - public string _ItemDataBase_ItemDefinitions_24 = "Thick Rubber Glove"; - public static string ItemDataBase_ItemDefinitions_25 => instance._ItemDataBase_ItemDefinitions_25; - public string _ItemDataBase_ItemDefinitions_25 = "A glove that helps get a better grip."; - public static string ItemDataBase_ItemDefinitions_26 => instance._ItemDataBase_ItemDefinitions_26; - public string _ItemDataBase_ItemDefinitions_26 = "Tribal Glove"; - public static string ItemDataBase_ItemDefinitions_27 => instance._ItemDataBase_ItemDefinitions_27; - public string _ItemDataBase_ItemDefinitions_27 = "Offers medicore protection."; - public static string ItemDataBase_ItemDefinitions_28 => instance._ItemDataBase_ItemDefinitions_28; - public string _ItemDataBase_ItemDefinitions_28 = "Glove made out of thin bones, some may possibly be from a human."; - public static string ItemDataBase_ItemDefinitions_29 => instance._ItemDataBase_ItemDefinitions_29; - public string _ItemDataBase_ItemDefinitions_29 = "Tribe Leader Glove"; - public static string ItemDataBase_ItemDefinitions_30 => instance._ItemDataBase_ItemDefinitions_30; - public string _ItemDataBase_ItemDefinitions_30 = "A glove that offers little protection but a lot of offensive stats."; - public static string ItemDataBase_ItemDefinitions_31 => instance._ItemDataBase_ItemDefinitions_31; - public string _ItemDataBase_ItemDefinitions_31 = "A glove made of bones, some have engravings of crosses."; - public static string ItemDataBase_ItemDefinitions_32 => instance._ItemDataBase_ItemDefinitions_32; - public string _ItemDataBase_ItemDefinitions_32 = "Worn Shorts"; - public static string ItemDataBase_ItemDefinitions_33 => instance._ItemDataBase_ItemDefinitions_33; - public string _ItemDataBase_ItemDefinitions_33 = "Some protection for legs."; - public static string ItemDataBase_ItemDefinitions_34 => instance._ItemDataBase_ItemDefinitions_34; - public string _ItemDataBase_ItemDefinitions_34 = "Short, made out of cheap thin fabric, and on top of that they are damaged. But its better than nothing."; - public static string ItemDataBase_ItemDefinitions_35 => instance._ItemDataBase_ItemDefinitions_35; - public string _ItemDataBase_ItemDefinitions_35 = "Cargo Shorts"; - public static string ItemDataBase_ItemDefinitions_36 => instance._ItemDataBase_ItemDefinitions_36; - public string _ItemDataBase_ItemDefinitions_36 = "No protection at all but they allow to carry more items."; - public static string ItemDataBase_ItemDefinitions_37 => instance._ItemDataBase_ItemDefinitions_37; - public string _ItemDataBase_ItemDefinitions_37 = "They are ugly as hell tho"; - public static string ItemDataBase_ItemDefinitions_38 => instance._ItemDataBase_ItemDefinitions_38; - public string _ItemDataBase_ItemDefinitions_38 = "Passenger's Jacket"; - public static string ItemDataBase_ItemDefinitions_39 => instance._ItemDataBase_ItemDefinitions_39; - public string _ItemDataBase_ItemDefinitions_39 = "It's a little torn. "; - public static string ItemDataBase_ItemDefinitions_40 => instance._ItemDataBase_ItemDefinitions_40; - public string _ItemDataBase_ItemDefinitions_40 = "This jacket was worn by Preston A. the 34th passenger on the plane. Eric talked to him at the airport. Guy was odd, and now he's dead."; - public static string ItemDataBase_ItemDefinitions_41 => instance._ItemDataBase_ItemDefinitions_41; - public string _ItemDataBase_ItemDefinitions_41 = "Leather Jacket"; - public static string ItemDataBase_ItemDefinitions_42 => instance._ItemDataBase_ItemDefinitions_42; - public string _ItemDataBase_ItemDefinitions_42 = "Offers little protection"; - public static string ItemDataBase_ItemDefinitions_43 => instance._ItemDataBase_ItemDefinitions_43; - public string _ItemDataBase_ItemDefinitions_43 = "This jacket was in a baggage of one of the plane passengers"; - public static string ItemDataBase_ItemDefinitions_44 => instance._ItemDataBase_ItemDefinitions_44; - public string _ItemDataBase_ItemDefinitions_44 = "Boar Skin Armor"; - public static string ItemDataBase_ItemDefinitions_45 => instance._ItemDataBase_ItemDefinitions_45; - public string _ItemDataBase_ItemDefinitions_45 = "It's made from a skin of a huge individual. It's heavy and thick, and surely can protect from attacks of weaker enemies."; - public static string ItemDataBase_ItemDefinitions_46 => instance._ItemDataBase_ItemDefinitions_46; - public string _ItemDataBase_ItemDefinitions_46 = "Boar, one of the animals on the peninsula, is rather rare and it's skin is very durable."; - public static string ItemDataBase_ItemDefinitions_47 => instance._ItemDataBase_ItemDefinitions_47; - public string _ItemDataBase_ItemDefinitions_47 = "Crocodile Skin Armor"; - public static string ItemDataBase_ItemDefinitions_48 => instance._ItemDataBase_ItemDefinitions_48; - public string _ItemDataBase_ItemDefinitions_48 = "Plate armour"; - public static string ItemDataBase_ItemDefinitions_49 => instance._ItemDataBase_ItemDefinitions_49; - public string _ItemDataBase_ItemDefinitions_49 = "Bear Skin Armor"; - public static string ItemDataBase_ItemDefinitions_50 => instance._ItemDataBase_ItemDefinitions_50; - public string _ItemDataBase_ItemDefinitions_50 = "Archer's Gear"; - public static string ItemDataBase_ItemDefinitions_51 => instance._ItemDataBase_ItemDefinitions_51; - public string _ItemDataBase_ItemDefinitions_51 = "Hazard's Gear"; - public static string ItemDataBase_ItemDefinitions_52 => instance._ItemDataBase_ItemDefinitions_52; - public string _ItemDataBase_ItemDefinitions_52 = "Mysterious robe"; - public static string ItemDataBase_ItemDefinitions_53 => instance._ItemDataBase_ItemDefinitions_53; - public string _ItemDataBase_ItemDefinitions_53 = "Magic flows through the entirety of this object. It's made out of unknown material"; - public static string ItemDataBase_ItemDefinitions_54 => instance._ItemDataBase_ItemDefinitions_54; - public string _ItemDataBase_ItemDefinitions_54 = "Robe looks like it was created yesterday, but its older than the oldest of mankinds' civilizations. Simply looking at it sends chills down the spine."; - public static string ItemDataBase_ItemDefinitions_55 => instance._ItemDataBase_ItemDefinitions_55; - public string _ItemDataBase_ItemDefinitions_55 = "Empowers cataclysm. The vortex turns blue, damage is increased, freezes enemies "; - public static string ItemDataBase_ItemDefinitions_56 => instance._ItemDataBase_ItemDefinitions_56; - public string _ItemDataBase_ItemDefinitions_56 = "Rusty Longsword"; - public static string ItemDataBase_ItemDefinitions_57 => instance._ItemDataBase_ItemDefinitions_57; - public string _ItemDataBase_ItemDefinitions_57 = "A long, very heavy sword. Edge got dull over time. Still, it's in a condition that allows me to slice some enemies in half."; - public static string ItemDataBase_ItemDefinitions_58 => instance._ItemDataBase_ItemDefinitions_58; - public string _ItemDataBase_ItemDefinitions_58 = "The sword appears to be from medieval ages, through it's not. It was made a lot later. It never was used as a weapon in battles, because it was merely a decoration."; - public static string ItemDataBase_ItemDefinitions_59 => instance._ItemDataBase_ItemDefinitions_59; - public string _ItemDataBase_ItemDefinitions_59 = "Longsword"; - public static string ItemDataBase_ItemDefinitions_60 => instance._ItemDataBase_ItemDefinitions_60; - public string _ItemDataBase_ItemDefinitions_60 = "Sharp and long"; - public static string ItemDataBase_ItemDefinitions_61 => instance._ItemDataBase_ItemDefinitions_61; - public string _ItemDataBase_ItemDefinitions_61 = "The sword is in perfect contidion."; - public static string ItemDataBase_ItemDefinitions_62 => instance._ItemDataBase_ItemDefinitions_62; - public string _ItemDataBase_ItemDefinitions_62 = "Full Metal Sword"; - public static string ItemDataBase_ItemDefinitions_63 => instance._ItemDataBase_ItemDefinitions_63; - public string _ItemDataBase_ItemDefinitions_63 = "It's sooo big..."; - public static string ItemDataBase_ItemDefinitions_64 => instance._ItemDataBase_ItemDefinitions_64; - public string _ItemDataBase_ItemDefinitions_64 = "A normal human cannot lift this."; - public static string ItemDataBase_ItemDefinitions_65 => instance._ItemDataBase_ItemDefinitions_65; - public string _ItemDataBase_ItemDefinitions_65 = "The Leech"; - public static string ItemDataBase_ItemDefinitions_66 => instance._ItemDataBase_ItemDefinitions_66; - public string _ItemDataBase_ItemDefinitions_66 = "Hey where did my health g- oh it's back..."; - public static string ItemDataBase_ItemDefinitions_67 => instance._ItemDataBase_ItemDefinitions_67; - public string _ItemDataBase_ItemDefinitions_67 = "Smokey's Sacred Quiver"; - public static string ItemDataBase_ItemDefinitions_68 => instance._ItemDataBase_ItemDefinitions_68; - public string _ItemDataBase_ItemDefinitions_68 = "SmokeyTheBear died because he never used this item."; - public static string ItemDataBase_ItemDefinitions_69 => instance._ItemDataBase_ItemDefinitions_69; - public string _ItemDataBase_ItemDefinitions_69 = "Smokey was the friend of allmighty Hazard, who can materialize any kind of weapon at the snap of his fingers. Hazard remebered Smokey's favourite playstyle and he gave him this as a gift to purge the sh** out of mutants."; - public static string ItemDataBase_ItemDefinitions_70(params object[] objects) => string.Format(instance._ItemDataBase_ItemDefinitions_70, objects); - public string _ItemDataBase_ItemDefinitions_70 = "Crossbows operate at {0} speed and deal {1} increased damage"; - public static string ItemDataBase_ItemDefinitions_71 => instance._ItemDataBase_ItemDefinitions_71; - public string _ItemDataBase_ItemDefinitions_71 = "Broken shield"; - public static string ItemDataBase_ItemDefinitions_72 => instance._ItemDataBase_ItemDefinitions_72; - public string _ItemDataBase_ItemDefinitions_72 = "Tower Shield"; - public static string ItemDataBase_ItemDefinitions_73 => instance._ItemDataBase_ItemDefinitions_73; - public string _ItemDataBase_ItemDefinitions_73 = "Broken Leather Shoulder Armor"; - public static string ItemDataBase_ItemDefinitions_74 => instance._ItemDataBase_ItemDefinitions_74; - public string _ItemDataBase_ItemDefinitions_74 = "Leather Shoulder Armor"; - public static string ItemDataBase_ItemDefinitions_75 => instance._ItemDataBase_ItemDefinitions_75; - public string _ItemDataBase_ItemDefinitions_75 = "Phase Pauldrons"; - public static string ItemDataBase_ItemDefinitions_76 => instance._ItemDataBase_ItemDefinitions_76; - public string _ItemDataBase_ItemDefinitions_76 = "The distance of blink is increased by {} meters, and blink now hits everything that you teleported through"; - public static string ItemDataBase_ItemDefinitions_77 => instance._ItemDataBase_ItemDefinitions_77; - public string _ItemDataBase_ItemDefinitions_77 = "MAGA Cap"; - public static string ItemDataBase_ItemDefinitions_78 => instance._ItemDataBase_ItemDefinitions_78; - public string _ItemDataBase_ItemDefinitions_78 = "Wearing this item channels the power of D.Trump to you"; - public static string ItemDataBase_ItemDefinitions_79 => instance._ItemDataBase_ItemDefinitions_79; - public string _ItemDataBase_ItemDefinitions_79 = "... or does it?"; - public static string ItemDataBase_ItemDefinitions_80 => instance._ItemDataBase_ItemDefinitions_80; - public string _ItemDataBase_ItemDefinitions_80 = "Hubble's Vision"; - public static string ItemDataBase_ItemDefinitions_81 => instance._ItemDataBase_ItemDefinitions_81; - public string _ItemDataBase_ItemDefinitions_81 = "Wearing this item empowers your black hole spell"; - public static string ItemDataBase_ItemDefinitions_82 => instance._ItemDataBase_ItemDefinitions_82; - public string _ItemDataBase_ItemDefinitions_82 = "Man, fuck gravity."; - public static string ItemDataBase_ItemDefinitions_83 => instance._ItemDataBase_ItemDefinitions_83; - public string _ItemDataBase_ItemDefinitions_83 = "Broken Loop"; - public static string ItemDataBase_ItemDefinitions_84 => instance._ItemDataBase_ItemDefinitions_84; - public string _ItemDataBase_ItemDefinitions_84 = "Loop"; - public static string ItemDataBase_ItemDefinitions_85 => instance._ItemDataBase_ItemDefinitions_85; - public string _ItemDataBase_ItemDefinitions_85 = "Toxic Ring"; - public static string ItemDataBase_ItemDefinitions_86 => instance._ItemDataBase_ItemDefinitions_86; - public string _ItemDataBase_ItemDefinitions_86 = " comment was about to bring down upon you, maybe you would have held your fucking tongue. But you couldn't, you didn't, and now you're paying the price, you goddamn idiot. I will shit fury all over you and you will drown in it. You're fucking dead, kiddo."; - public static string ItemDataBase_ItemDefinitions_87 => instance._ItemDataBase_ItemDefinitions_87; - public string _ItemDataBase_ItemDefinitions_87 = "What the fuck did you just fucking say about me, you little bitch? I'll have you know I graduated top of my class in the Navy Seals, and I've been involved in numerous secret raids on Al-Quaeda, and I have over 300 confirmed kills. I am trained in gorilla warfare and I'm the top sniper in the entire US armed forces. You are nothing to me but just another target. I will wipe you the fuck out with precision the likes of which has never been seen before on this Earth, mark my fucking words. You think you can get away with saying that shit to me over the Internet? Think again, fucker. As we speak I am contacting my secret network of spies across the USA and your IP is being traced right now so you better prepare for the storm, maggot. The storm that wipes out the pathetic little thing you call your life. You're fucking dead, kid. I can be anywhere, anytime, and I can kill you in over seven hundred ways, and that's just with my bare hands. Not only am I extensively trained in unarmed combat, but I have access to the entire arsenal of the United States Marine Corps and I will use it to its full extent to wipe your miserable ass off the face of the continent, you little shit. If only you could have known what unholy retribution your little \"clever\" comment was about to bring down upon you, maybe you would have held your fucking tongue. But you couldn't, you didn't, and now you're paying the price, you goddamn idiot. I will shit fury all over you and you will drown in it. You're fucking dead, kiddo."; - public static string ItemDataBase_ItemDefinitions_88 => instance._ItemDataBase_ItemDefinitions_88; - public string _ItemDataBase_ItemDefinitions_88 = "Scarf"; - public static string ItemDataBase_ItemDefinitions_89 => instance._ItemDataBase_ItemDefinitions_89; - public string _ItemDataBase_ItemDefinitions_89 = "Damaged Bracer"; - public static string ItemDataBase_ItemDefinitions_90 => instance._ItemDataBase_ItemDefinitions_90; - public string _ItemDataBase_ItemDefinitions_90 = "Worn Bracer"; - public static string ItemDataBase_ItemDefinitions_91 => instance._ItemDataBase_ItemDefinitions_91; - public string _ItemDataBase_ItemDefinitions_91 = "Leather Bracer"; - public static string ItemDataBase_ItemDefinitions_92 => instance._ItemDataBase_ItemDefinitions_92; - public string _ItemDataBase_ItemDefinitions_92 = "Greater Mutated Heart"; - public static string ItemDataBase_ItemDefinitions_93 => instance._ItemDataBase_ItemDefinitions_93; - public string _ItemDataBase_ItemDefinitions_93 = "Can be consumed by right clicking it"; - public static string ItemDataBase_ItemDefinitions_94 => instance._ItemDataBase_ItemDefinitions_94; - public string _ItemDataBase_ItemDefinitions_94 = "Lesser Mutated Heart"; - public static string ItemDataBase_ItemDefinitions_95 => instance._ItemDataBase_ItemDefinitions_95; - public string _ItemDataBase_ItemDefinitions_95 = "Spiked ring"; - public static string ItemDataBase_ItemDefinitions_96 => instance._ItemDataBase_ItemDefinitions_96; - public string _ItemDataBase_ItemDefinitions_96 = "Armor piercing for either melee or ranged weapons"; - public static string ItemDataBase_ItemDefinitions_97 => instance._ItemDataBase_ItemDefinitions_97; - public string _ItemDataBase_ItemDefinitions_97 = "Piercer"; - public static string ItemDataBase_ItemDefinitions_98 => instance._ItemDataBase_ItemDefinitions_98; - public string _ItemDataBase_ItemDefinitions_98 = "Moon Boots"; - public static string ItemDataBase_ItemDefinitions_99 => instance._ItemDataBase_ItemDefinitions_99; - public string _ItemDataBase_ItemDefinitions_99 = "A pair of boots from the moon."; - public static string ItemDataBase_ItemDefinitions_100 => instance._ItemDataBase_ItemDefinitions_100; - public string _ItemDataBase_ItemDefinitions_100 = "It is said that the wearer will not take fall damage while wearing these boots and will jump like on the moon, I wouldn't trust it tough."; - public static string ItemDataBase_ItemDefinitions_101 => instance._ItemDataBase_ItemDefinitions_101; - public string _ItemDataBase_ItemDefinitions_101 = "Golden Ring of Strength"; - public static string ItemDataBase_ItemDefinitions_102 => instance._ItemDataBase_ItemDefinitions_102; - public string _ItemDataBase_ItemDefinitions_102 = "A Ring of ancient times."; - public static string ItemDataBase_ItemDefinitions_103 => instance._ItemDataBase_ItemDefinitions_103; - public string _ItemDataBase_ItemDefinitions_103 = "A Golden Ring that looks simple and elegant, yet it feels powerfull to the touch."; - public static string ItemDataBase_ItemDefinitions_104 => instance._ItemDataBase_ItemDefinitions_104; - public string _ItemDataBase_ItemDefinitions_104 = "Golden Ring of Vitality"; - public static string ItemDataBase_ItemDefinitions_105 => instance._ItemDataBase_ItemDefinitions_105; - public string _ItemDataBase_ItemDefinitions_105 = "Golden Ring of Agility"; - public static string ItemDataBase_ItemDefinitions_106 => instance._ItemDataBase_ItemDefinitions_106; - public string _ItemDataBase_ItemDefinitions_106 = "Golden Ring of Intelligence"; - public static string ItemDataBase_ItemDefinitions_107 => instance._ItemDataBase_ItemDefinitions_107; - public string _ItemDataBase_ItemDefinitions_107 = "Silver Ring of Strength"; - public static string ItemDataBase_ItemDefinitions_108 => instance._ItemDataBase_ItemDefinitions_108; - public string _ItemDataBase_ItemDefinitions_108 = "A Silver Ring that looks simple and elegant, yet it feels powerfull to the touch."; - public static string ItemDataBase_ItemDefinitions_109 => instance._ItemDataBase_ItemDefinitions_109; - public string _ItemDataBase_ItemDefinitions_109 = "Silver Ring of Vitality"; - public static string ItemDataBase_ItemDefinitions_110 => instance._ItemDataBase_ItemDefinitions_110; - public string _ItemDataBase_ItemDefinitions_110 = "Silver Ring of Agility"; - public static string ItemDataBase_ItemDefinitions_111 => instance._ItemDataBase_ItemDefinitions_111; - public string _ItemDataBase_ItemDefinitions_111 = "Silver Ring of Intelligence"; - public static string ItemDataBase_ItemDefinitions_112 => instance._ItemDataBase_ItemDefinitions_112; - public string _ItemDataBase_ItemDefinitions_112 = "Steel Ring of Strength"; - public static string ItemDataBase_ItemDefinitions_113 => instance._ItemDataBase_ItemDefinitions_113; - public string _ItemDataBase_ItemDefinitions_113 = "A Steel Ring that looks simple and elegant, yet it feels powerfull to the touch."; - public static string ItemDataBase_ItemDefinitions_114 => instance._ItemDataBase_ItemDefinitions_114; - public string _ItemDataBase_ItemDefinitions_114 = "Steel Ring of Vitality"; - public static string ItemDataBase_ItemDefinitions_115 => instance._ItemDataBase_ItemDefinitions_115; - public string _ItemDataBase_ItemDefinitions_115 = "Steel Ring of Agility"; - public static string ItemDataBase_ItemDefinitions_116 => instance._ItemDataBase_ItemDefinitions_116; - public string _ItemDataBase_ItemDefinitions_116 = "Steel Ring of Intelligence"; - public static string ItemDataBase_ItemDefinitions_117 => instance._ItemDataBase_ItemDefinitions_117; - public string _ItemDataBase_ItemDefinitions_117 = "The One Ring To Rule Them All"; - public static string ItemDataBase_ItemDefinitions_118 => instance._ItemDataBase_ItemDefinitions_118; - public string _ItemDataBase_ItemDefinitions_118 = "An Ancient magical Ring of great power."; - public static string ItemDataBase_ItemDefinitions_119 => instance._ItemDataBase_ItemDefinitions_119; - public string _ItemDataBase_ItemDefinitions_119 = "It looks like and ordinay ring, but a strange energy is surrounding it. The Ring is said to have been found inside a volcanic rock by an archeologist, who went mad and isolated himself on the peninsula many years ago. But that's just a fairy tale, ring?"; - public static string ItemDataBase_ItemDefinitions_120 => instance._ItemDataBase_ItemDefinitions_120; - public string _ItemDataBase_ItemDefinitions_120 = "Attracts unwanted attention of an unknown entity."; - public static string ItemDataBase_ItemDefinitions_121 => instance._ItemDataBase_ItemDefinitions_121; - public string _ItemDataBase_ItemDefinitions_121 = "Golden Locket of Strength"; - public static string ItemDataBase_ItemDefinitions_122 => instance._ItemDataBase_ItemDefinitions_122; - public string _ItemDataBase_ItemDefinitions_122 = "A Locket of ancient times."; - public static string ItemDataBase_ItemDefinitions_123 => instance._ItemDataBase_ItemDefinitions_123; - public string _ItemDataBase_ItemDefinitions_123 = "A Golden Locket that looks simple and elegant, yet it feels powerfull to the touch."; - public static string ItemDataBase_ItemDefinitions_124 => instance._ItemDataBase_ItemDefinitions_124; - public string _ItemDataBase_ItemDefinitions_124 = "Golden Locket of Vitality"; - public static string ItemDataBase_ItemDefinitions_125 => instance._ItemDataBase_ItemDefinitions_125; - public string _ItemDataBase_ItemDefinitions_125 = "Golden Locket of Agility"; - public static string ItemDataBase_ItemDefinitions_126 => instance._ItemDataBase_ItemDefinitions_126; - public string _ItemDataBase_ItemDefinitions_126 = "Golden Locket of Intelligence"; - public static string ItemDataBase_ItemDefinitions_127 => instance._ItemDataBase_ItemDefinitions_127; - public string _ItemDataBase_ItemDefinitions_127 = "Silver Locket of Strength"; - public static string ItemDataBase_ItemDefinitions_128 => instance._ItemDataBase_ItemDefinitions_128; - public string _ItemDataBase_ItemDefinitions_128 = "A Silver Locket that looks simple and elegant, yet it feels powerfull to the touch."; - public static string ItemDataBase_ItemDefinitions_129 => instance._ItemDataBase_ItemDefinitions_129; - public string _ItemDataBase_ItemDefinitions_129 = "Silver Locket of Vitality"; - public static string ItemDataBase_ItemDefinitions_130 => instance._ItemDataBase_ItemDefinitions_130; - public string _ItemDataBase_ItemDefinitions_130 = "Silver Locket of Agility"; - public static string ItemDataBase_ItemDefinitions_131 => instance._ItemDataBase_ItemDefinitions_131; - public string _ItemDataBase_ItemDefinitions_131 = "Silver Locket of Intelligence"; - public static string ItemDataBase_ItemDefinitions_132 => instance._ItemDataBase_ItemDefinitions_132; - public string _ItemDataBase_ItemDefinitions_132 = "Emerald Pendant of Strength"; - public static string ItemDataBase_ItemDefinitions_133 => instance._ItemDataBase_ItemDefinitions_133; - public string _ItemDataBase_ItemDefinitions_133 = "A Pendant of ancient times."; - public static string ItemDataBase_ItemDefinitions_134 => instance._ItemDataBase_ItemDefinitions_134; - public string _ItemDataBase_ItemDefinitions_134 = "An Emerald Pendant that looks simple and elegant, yet it feels powerfull to the touch."; - public static string ItemDataBase_ItemDefinitions_135 => instance._ItemDataBase_ItemDefinitions_135; - public string _ItemDataBase_ItemDefinitions_135 = "Emerald Pendant of Vitality"; - public static string ItemDataBase_ItemDefinitions_136 => instance._ItemDataBase_ItemDefinitions_136; - public string _ItemDataBase_ItemDefinitions_136 = "Emerald Pendant of Agility"; - public static string ItemDataBase_ItemDefinitions_137 => instance._ItemDataBase_ItemDefinitions_137; - public string _ItemDataBase_ItemDefinitions_137 = "Emerald Pendant of Intelligence"; - public static string ItemDataBase_ItemDefinitions_138 => instance._ItemDataBase_ItemDefinitions_138; - public string _ItemDataBase_ItemDefinitions_138 = "Diamond Pendant of Strength"; - public static string ItemDataBase_ItemDefinitions_139 => instance._ItemDataBase_ItemDefinitions_139; - public string _ItemDataBase_ItemDefinitions_139 = "A Diamond Pendant that looks simple and elegant, yet it feels powerfull to the touch."; - public static string ItemDataBase_ItemDefinitions_140 => instance._ItemDataBase_ItemDefinitions_140; - public string _ItemDataBase_ItemDefinitions_140 = "Diamond Pendant of Vitality"; - public static string ItemDataBase_ItemDefinitions_141 => instance._ItemDataBase_ItemDefinitions_141; - public string _ItemDataBase_ItemDefinitions_141 = "Diamond Pendant of Agility"; - public static string ItemDataBase_ItemDefinitions_142 => instance._ItemDataBase_ItemDefinitions_142; - public string _ItemDataBase_ItemDefinitions_142 = "Diamond Pendant of Intelligence"; - public static string ItemDataBase_ItemDefinitions_143 => instance._ItemDataBase_ItemDefinitions_143; - public string _ItemDataBase_ItemDefinitions_143 = "Armsy Finger Necklace"; - public static string ItemDataBase_ItemDefinitions_144 => instance._ItemDataBase_ItemDefinitions_144; - public string _ItemDataBase_ItemDefinitions_144 = "A Necklace decorated with armsy fingertips."; - public static string ItemDataBase_ItemDefinitions_145 => instance._ItemDataBase_ItemDefinitions_145; - public string _ItemDataBase_ItemDefinitions_145 = "A Necklace made from the fingertips of an armsy, yeilding it's raw power and strentgh."; - public static string ItemDataBase_ItemDefinitions_146 => instance._ItemDataBase_ItemDefinitions_146; - public string _ItemDataBase_ItemDefinitions_146 = "Virginia Heart Pendant"; - public static string ItemDataBase_ItemDefinitions_147 => instance._ItemDataBase_ItemDefinitions_147; - public string _ItemDataBase_ItemDefinitions_147 = "A Pendant of a petrified Virginia heart."; - public static string ItemDataBase_ItemDefinitions_148 => instance._ItemDataBase_ItemDefinitions_148; - public string _ItemDataBase_ItemDefinitions_148 = "A Pendant made from a petrified Virginia heart, yeilding it's love and Vitality."; - public static string ItemDataBase_ItemDefinitions_149 => instance._ItemDataBase_ItemDefinitions_149; - public string _ItemDataBase_ItemDefinitions_149 = "Cowman Toe Necklace"; - public static string ItemDataBase_ItemDefinitions_150 => instance._ItemDataBase_ItemDefinitions_150; - public string _ItemDataBase_ItemDefinitions_150 = "A Necklace decorated with cowman toes."; - public static string ItemDataBase_ItemDefinitions_151 => instance._ItemDataBase_ItemDefinitions_151; - public string _ItemDataBase_ItemDefinitions_151 = "A Necklace made from the fingertips of an armsy, yeilding it's speed and agility."; - public static string ItemDataBase_ItemDefinitions_152 => instance._ItemDataBase_ItemDefinitions_152; - public string _ItemDataBase_ItemDefinitions_152 = "Pendant of Perpetual Rebirth"; - public static string ItemDataBase_ItemDefinitions_153 => instance._ItemDataBase_ItemDefinitions_153; - public string _ItemDataBase_ItemDefinitions_153 = "A Pendant of a shrunken babyhead."; - public static string ItemDataBase_ItemDefinitions_154 => instance._ItemDataBase_ItemDefinitions_154; - public string _ItemDataBase_ItemDefinitions_154 = "A pedant of great power. Obtainable only from babies or crafting"; - public static string ItemDataBase_ItemDefinitions_155(params object[] objects) => string.Format(instance._ItemDataBase_ItemDefinitions_155, objects); - public string _ItemDataBase_ItemDefinitions_155 = "decrease a random cooldown by {0} second whenever you hit something with melee or ranged attack."; - public static string ItemDataBase_ItemDefinitions_156 => instance._ItemDataBase_ItemDefinitions_156; - public string _ItemDataBase_ItemDefinitions_156 = "Megan's Locket"; - public static string ItemDataBase_ItemDefinitions_157 => instance._ItemDataBase_ItemDefinitions_157; - public string _ItemDataBase_ItemDefinitions_157 = "The Locket Megan wore."; - public static string ItemDataBase_ItemDefinitions_158 => instance._ItemDataBase_ItemDefinitions_158; - public string _ItemDataBase_ItemDefinitions_158 = "Megan wore this Locket, it has a picture of her mom in it."; - public static string ItemDataBase_ItemDefinitions_159 => instance._ItemDataBase_ItemDefinitions_159; - public string _ItemDataBase_ItemDefinitions_159 = "Relic Hammer"; - public static string ItemDataBase_ItemDefinitions_160 => instance._ItemDataBase_ItemDefinitions_160; - public string _ItemDataBase_ItemDefinitions_160 = "It's slow and weak."; - public static string ItemDataBase_ItemDefinitions_161 => instance._ItemDataBase_ItemDefinitions_161; - public string _ItemDataBase_ItemDefinitions_161 = "Slows on hit"; - public static string ItemDataBase_ItemDefinitions_162 => instance._ItemDataBase_ItemDefinitions_162; - public string _ItemDataBase_ItemDefinitions_162 = "Black Hammer"; - public static string ItemDataBase_ItemDefinitions_163 => instance._ItemDataBase_ItemDefinitions_163; - public string _ItemDataBase_ItemDefinitions_163 = "It's slow but with enough strength i can make it a very deadly tool"; - public static string ItemDataBase_ItemDefinitions_164 => instance._ItemDataBase_ItemDefinitions_164; - public string _ItemDataBase_ItemDefinitions_164 = "Potato Sack"; - public static string ItemDataBase_ItemDefinitions_165 => instance._ItemDataBase_ItemDefinitions_165; - public string _ItemDataBase_ItemDefinitions_165 = "Can be used as a quiver"; - public static string ItemDataBase_ItemDefinitions_166 => instance._ItemDataBase_ItemDefinitions_166; - public string _ItemDataBase_ItemDefinitions_166 = "Rabbit Skin Quiver"; - public static string ItemDataBase_ItemDefinitions_167 => instance._ItemDataBase_ItemDefinitions_167; - public string _ItemDataBase_ItemDefinitions_167 = "Hollow Log"; - public static string ItemDataBase_ItemDefinitions_168 => instance._ItemDataBase_ItemDefinitions_168; - public string _ItemDataBase_ItemDefinitions_168 = "It allows for faster drawing of arrow than a cloth quiver"; - public static string ItemDataBase_ItemDefinitions_169 => instance._ItemDataBase_ItemDefinitions_169; - public string _ItemDataBase_ItemDefinitions_169 = "Spellbound Quiver"; - public static string ItemDataBase_ItemDefinitions_170 => instance._ItemDataBase_ItemDefinitions_170; - public string _ItemDataBase_ItemDefinitions_170 = "Long Lost Quiver"; - public static string ItemDataBase_ItemDefinitions_171 => instance._ItemDataBase_ItemDefinitions_171; - public string _ItemDataBase_ItemDefinitions_171 = "Spell Scroll"; - public static string ItemDataBase_ItemDefinitions_172 => instance._ItemDataBase_ItemDefinitions_172; - public string _ItemDataBase_ItemDefinitions_172 = "Contains a lot of information on how to properly cast spells to achieve better results"; - public static string ItemDataBase_ItemDefinitions_173 => instance._ItemDataBase_ItemDefinitions_173; - public string _ItemDataBase_ItemDefinitions_173 = "Cloth Pants"; - public static string ItemDataBase_ItemDefinitions_174 => instance._ItemDataBase_ItemDefinitions_174; - public string _ItemDataBase_ItemDefinitions_174 = "Offer little protction"; - public static string ItemDataBase_ItemDefinitions_175 => instance._ItemDataBase_ItemDefinitions_175; - public string _ItemDataBase_ItemDefinitions_175 = "Rough Hide Leggins"; - public static string ItemDataBase_ItemDefinitions_176 => instance._ItemDataBase_ItemDefinitions_176; - public string _ItemDataBase_ItemDefinitions_176 = "Plate Leggins"; - public static string ItemDataBase_ItemDefinitions_177 => instance._ItemDataBase_ItemDefinitions_177; - public string _ItemDataBase_ItemDefinitions_177 = "Sage's Robes"; - public static string ItemDataBase_ItemDefinitions_178 => instance._ItemDataBase_ItemDefinitions_178; - public string _ItemDataBase_ItemDefinitions_178 = "Hammer Jammers"; - public static string ItemDataBase_ItemDefinitions_179(params object[] objects) => string.Format(instance._ItemDataBase_ItemDefinitions_179, objects); - public string _ItemDataBase_ItemDefinitions_179 = "Damage of your smash attack is increased by {0}, hammer stun duration is doubled"; - public static string ItemDataBase_ItemDefinitions_180 => instance._ItemDataBase_ItemDefinitions_180; - public string _ItemDataBase_ItemDefinitions_180 = "Pirate Pants"; - public static string ItemDataBase_ItemDefinitions_181 => instance._ItemDataBase_ItemDefinitions_181; - public string _ItemDataBase_ItemDefinitions_181 = "Those pants are ligh and comfortable. They offer plenty of mobility but lack in protection."; - public static string ItemDataBase_ItemDefinitions_182 => instance._ItemDataBase_ItemDefinitions_182; - public string _ItemDataBase_ItemDefinitions_182 = "Hexed Pants of Mr M."; - public static string ItemDataBase_ItemDefinitions_183 => instance._ItemDataBase_ItemDefinitions_183; - public string _ItemDataBase_ItemDefinitions_183 = "They look like yoga pants but for a man the size of a wardrobe"; - public static string ItemDataBase_ItemDefinitions_184 => instance._ItemDataBase_ItemDefinitions_184; - public string _ItemDataBase_ItemDefinitions_184 = "Once upon a time there was a man who was in a basement and fed himself with nothing but nuggets. He got so obese that friends and family started worrying. Hazard noticed this man and cursed his pants to force him to excercise."; - public static string ItemDataBase_ItemDefinitions_185(params object[] objects) => string.Format(instance._ItemDataBase_ItemDefinitions_185, objects); - public string _ItemDataBase_ItemDefinitions_185 = "While moving, energy regeneration and damage is increased by {0}. While standing still for longer than a second, you loose {1} of max health per second."; - public static string ItemDataBase_ItemDefinitions_186 => instance._ItemDataBase_ItemDefinitions_186; - public string _ItemDataBase_ItemDefinitions_186 = "Leather Mantle"; - public static string ItemDataBase_ItemDefinitions_187 => instance._ItemDataBase_ItemDefinitions_187; - public string _ItemDataBase_ItemDefinitions_187 = "A piece of cloth to give protection from "; - public static string ItemDataBase_ItemDefinitions_188 => instance._ItemDataBase_ItemDefinitions_188; - public string _ItemDataBase_ItemDefinitions_188 = "Shoulder Guards"; - public static string ItemDataBase_ItemDefinitions_189 => instance._ItemDataBase_ItemDefinitions_189; - public string _ItemDataBase_ItemDefinitions_189 = "Medium armor piece."; - public static string ItemDataBase_ItemDefinitions_190 => instance._ItemDataBase_ItemDefinitions_190; - public string _ItemDataBase_ItemDefinitions_190 = "Heavy armor"; - public static string ItemDataBase_ItemDefinitions_191 => instance._ItemDataBase_ItemDefinitions_191; - public string _ItemDataBase_ItemDefinitions_191 = "Heavy Shoulder Plates"; - public static string ItemDataBase_ItemDefinitions_192 => instance._ItemDataBase_ItemDefinitions_192; - public string _ItemDataBase_ItemDefinitions_192 = "Heavy armor piece. They offer great protection at the cost of attack speed and movement speed decrease"; - public static string ItemDataBase_ItemDefinitions_193 => instance._ItemDataBase_ItemDefinitions_193; - public string _ItemDataBase_ItemDefinitions_193 = "Etched Mantle"; - public static string ItemDataBase_ItemDefinitions_194 => instance._ItemDataBase_ItemDefinitions_194; - public string _ItemDataBase_ItemDefinitions_194 = "Those pauldrons empower wearer's combat skill"; - public static string ItemDataBase_ItemDefinitions_195 => instance._ItemDataBase_ItemDefinitions_195; - public string _ItemDataBase_ItemDefinitions_195 = "Assassins Pauldrons"; - public static string ItemDataBase_ItemDefinitions_196 => instance._ItemDataBase_ItemDefinitions_196; - public string _ItemDataBase_ItemDefinitions_196 = "Death Pact"; - public static string ItemDataBase_ItemDefinitions_197 => instance._ItemDataBase_ItemDefinitions_197; - public string _ItemDataBase_ItemDefinitions_197 = "Find the greatest strength on the border of life and death."; - public static string ItemDataBase_ItemDefinitions_198(params object[] objects) => string.Format(instance._ItemDataBase_ItemDefinitions_198, objects); - public string _ItemDataBase_ItemDefinitions_198 = "Every attack you make decreases your health by {0} of max health. For every percent of missing health you gain {1} damage amplification. This damage cannot kill you."; - public static string ItemDataBase_ItemDefinitions_199 => instance._ItemDataBase_ItemDefinitions_199; - public string _ItemDataBase_ItemDefinitions_199 = "Maximale Qualitot"; - public static string ItemDataBase_ItemDefinitions_200 => instance._ItemDataBase_ItemDefinitions_200; - public string _ItemDataBase_ItemDefinitions_200 = "A platinum ring with the most expensive jewels engraved on it. It's quality is uncomparable."; - public static string ItemDataBase_ItemDefinitions_201 => instance._ItemDataBase_ItemDefinitions_201; - public string _ItemDataBase_ItemDefinitions_201 = "Heart of Purity"; - public static string ItemDataBase_ItemDefinitions_202 => instance._ItemDataBase_ItemDefinitions_202; - public string _ItemDataBase_ItemDefinitions_202 = "A object filled with both destructive and creative energy. Allows to re-assign all spent mutation points"; - public static string ItemDataBase_ItemDefinitions_203 => instance._ItemDataBase_ItemDefinitions_203; - public string _ItemDataBase_ItemDefinitions_203 = "This powerful relic contains so much power, that it can kill anything and force it to come back to life, resulting in it's rebirth."; - public static string ItemDataBase_ItemDefinitions_204 => instance._ItemDataBase_ItemDefinitions_204; - public string _ItemDataBase_ItemDefinitions_204 = "Can be consumed by right clicking it. "; - public static string ItemDataBase_ItemDefinitions_205 => instance._ItemDataBase_ItemDefinitions_205; - public string _ItemDataBase_ItemDefinitions_205 = "Round Shield"; - public static string ItemDataBase_ItemDefinitions_206 => instance._ItemDataBase_ItemDefinitions_206; - public string _ItemDataBase_ItemDefinitions_206 = "A sturdy shield made of wood and reinforced with iron."; - public static string ItemDataBase_ItemDefinitions_207 => instance._ItemDataBase_ItemDefinitions_207; - public string _ItemDataBase_ItemDefinitions_207 = "Old Buckler"; - public static string ItemDataBase_ItemDefinitions_208 => instance._ItemDataBase_ItemDefinitions_208; - public string _ItemDataBase_ItemDefinitions_208 = "An old shield."; - public static string ItemDataBase_ItemDefinitions_209 => instance._ItemDataBase_ItemDefinitions_209; - public string _ItemDataBase_ItemDefinitions_209 = "This item has a lot of scratches that look like they were made by something with sharp claws."; - public static string ItemDataBase_ItemDefinitions_210 => instance._ItemDataBase_ItemDefinitions_210; - public string _ItemDataBase_ItemDefinitions_210 = "Dark Oak Shield"; - public static string ItemDataBase_ItemDefinitions_211 => instance._ItemDataBase_ItemDefinitions_211; - public string _ItemDataBase_ItemDefinitions_211 = "Bone Shield"; - public static string ItemDataBase_ItemDefinitions_212 => instance._ItemDataBase_ItemDefinitions_212; - public string _ItemDataBase_ItemDefinitions_212 = "A shield made of bones, held together by thick steel wire."; - public static string ItemDataBase_ItemDefinitions_213 => instance._ItemDataBase_ItemDefinitions_213; - public string _ItemDataBase_ItemDefinitions_213 = "Dull Longsword"; - public static string ItemDataBase_ItemDefinitions_214 => instance._ItemDataBase_ItemDefinitions_214; - public string _ItemDataBase_ItemDefinitions_214 = "It's round on the edges"; - public static string ItemDataBase_ItemDefinitions_215 => instance._ItemDataBase_ItemDefinitions_215; - public string _ItemDataBase_ItemDefinitions_215 = "Iron Horn"; - public static string ItemDataBase_ItemDefinitions_216(params object[] objects) => string.Format(instance._ItemDataBase_ItemDefinitions_216, objects); - public string _ItemDataBase_ItemDefinitions_216 = "When using Warcry, you and all allies recieve armor bonus equal to {0} of your armor"; - public static string ItemDataBase_ItemDefinitions_217 => instance._ItemDataBase_ItemDefinitions_217; - public string _ItemDataBase_ItemDefinitions_217 = "The Great Iron Horn"; - public static string ItemDataBase_ItemDefinitions_218 => instance._ItemDataBase_ItemDefinitions_218; - public string _ItemDataBase_ItemDefinitions_218 = "Horned Helmet"; - public static string ItemDataBase_ItemDefinitions_219 => instance._ItemDataBase_ItemDefinitions_219; - public string _ItemDataBase_ItemDefinitions_219 = "A viking helmet"; - public static string ItemDataBase_ItemDefinitions_220 => instance._ItemDataBase_ItemDefinitions_220; - public string _ItemDataBase_ItemDefinitions_220 = "Mask"; - public static string ItemDataBase_ItemDefinitions_221 => instance._ItemDataBase_ItemDefinitions_221; - public string _ItemDataBase_ItemDefinitions_221 = "Mask of Madness"; - public static string ItemDataBase_ItemDefinitions_222 => instance._ItemDataBase_ItemDefinitions_222; - public string _ItemDataBase_ItemDefinitions_222 = "Old Scroll"; - public static string ItemDataBase_ItemDefinitions_223 => instance._ItemDataBase_ItemDefinitions_223; - public string _ItemDataBase_ItemDefinitions_223 = "Wormhole Stabilizators"; - public static string ItemDataBase_ItemDefinitions_224 => instance._ItemDataBase_ItemDefinitions_224; - public string _ItemDataBase_ItemDefinitions_224 = "High-tech gear"; - public static string ItemDataBase_ItemDefinitions_225 => instance._ItemDataBase_ItemDefinitions_225; - public string _ItemDataBase_ItemDefinitions_225 = "Hazard remember to put some fucking lore in here, don't leave it like this!"; - public static string ItemDataBase_ItemDefinitions_226(params object[] objects) => string.Format(instance._ItemDataBase_ItemDefinitions_226, objects); - public string _ItemDataBase_ItemDefinitions_226 = "Increases the duration of a portal by {0} seconds"; - public static string ItemDataBase_ItemDefinitions_227 => instance._ItemDataBase_ItemDefinitions_227; - public string _ItemDataBase_ItemDefinitions_227 = "Cripplers"; - public static string ItemDataBase_ItemDefinitions_228(params object[] objects) => string.Format(instance._ItemDataBase_ItemDefinitions_228, objects); - public string _ItemDataBase_ItemDefinitions_228 = "Increases the duration of a magic arrow's negative effect by {0} seconds"; - public static string ItemDataBase_ItemDefinitions_229 => instance._ItemDataBase_ItemDefinitions_229; - public string _ItemDataBase_ItemDefinitions_229 = "Crossfire"; - public static string ItemDataBase_ItemDefinitions_230 => instance._ItemDataBase_ItemDefinitions_230; - public string _ItemDataBase_ItemDefinitions_230 = "Infused with powerful magic. This item is a dangerous tool of destruction."; - public static string ItemDataBase_ItemDefinitions_231 => instance._ItemDataBase_ItemDefinitions_231; - public string _ItemDataBase_ItemDefinitions_231 = "When hitting an enemy with a projectile, create a magic arrow pointed at the enemy and shoot it without using in energy. This effect may occur once every 2 seconds, but can be interval can be shortened with cooldown reduction."; - public static string ItemDataBase_ItemDefinitions_232 => instance._ItemDataBase_ItemDefinitions_232; - public string _ItemDataBase_ItemDefinitions_232 = "Scroll of Recovery"; - public static string ItemDataBase_ItemDefinitions_233 => instance._ItemDataBase_ItemDefinitions_233; - public string _ItemDataBase_ItemDefinitions_233 = "Recovers health and stamina"; - public static string ItemDataBase_ItemDefinitions_234 => instance._ItemDataBase_ItemDefinitions_234; - public string _ItemDataBase_ItemDefinitions_234 = "Tiara"; - public static string ItemDataBase_ItemDefinitions_235 => instance._ItemDataBase_ItemDefinitions_235; - public string _ItemDataBase_ItemDefinitions_235 = "A beautiful tiara "; - public static string ItemDataBase_ItemDefinitions_236 => instance._ItemDataBase_ItemDefinitions_236; - public string _ItemDataBase_ItemDefinitions_236 = "This tiara may not provide much protection, but it sure is pretty"; - public static string ItemDataBase_ItemDefinitions_237 => instance._ItemDataBase_ItemDefinitions_237; - public string _ItemDataBase_ItemDefinitions_237 = "Shiny"; - public static string ItemDataBase_ItemDefinitions_238 => instance._ItemDataBase_ItemDefinitions_238; - public string _ItemDataBase_ItemDefinitions_238 = "Chastity belt"; - public static string ItemDataBase_ItemDefinitions_239 => instance._ItemDataBase_ItemDefinitions_239; - public string _ItemDataBase_ItemDefinitions_239 = "Dodge those fukbois"; - public static string ItemDataBase_ItemDefinitions_240 => instance._ItemDataBase_ItemDefinitions_240; - public string _ItemDataBase_ItemDefinitions_240 = "This belt will stop those cheeky cannibals and armsies from getting into your pants"; - public static string ItemDataBase_ItemDefinitions_241(params object[] objects) => string.Format(instance._ItemDataBase_ItemDefinitions_241, objects); - public string _ItemDataBase_ItemDefinitions_241 = " {0} damage reduction while sleeping"; - public static string ItemDataBase_ItemDefinitions_242 => instance._ItemDataBase_ItemDefinitions_242; - public string _ItemDataBase_ItemDefinitions_242 = "Ice Scroll"; - public static string ItemDataBase_ItemDefinitions_243 => instance._ItemDataBase_ItemDefinitions_243; - public string _ItemDataBase_ItemDefinitions_243 = "A spell surrounded by flying shards of ice, contains tramendous power of cold."; - public static string ItemDataBase_ItemDefinitions_244 => instance._ItemDataBase_ItemDefinitions_244; - public string _ItemDataBase_ItemDefinitions_244 = "Created at the top of the mountain."; - public static string ItemDataBase_ItemDefinitions_245 => instance._ItemDataBase_ItemDefinitions_245; - public string _ItemDataBase_ItemDefinitions_245 = "Motorboat Modification Blueprints"; - public static string ItemDataBase_ItemDefinitions_246 => instance._ItemDataBase_ItemDefinitions_246; - public string _ItemDataBase_ItemDefinitions_246 = "Sheet of paper that allows to turn any raft into a high speed. Increases carry amount and increases speed of rafts."; - public static string ItemDataBase_ItemDefinitions_247 => instance._ItemDataBase_ItemDefinitions_247; - public string _ItemDataBase_ItemDefinitions_247 = "Who did this lmao."; - public static string ItemDataBase_ItemDefinitions_248 => instance._ItemDataBase_ItemDefinitions_248; - public string _ItemDataBase_ItemDefinitions_248 = "Axe of Swiftness"; - public static string ItemDataBase_ItemDefinitions_249 => instance._ItemDataBase_ItemDefinitions_249; - public string _ItemDataBase_ItemDefinitions_249 = "Severer"; - public static string ItemDataBase_ItemDefinitions_250 => instance._ItemDataBase_ItemDefinitions_250; - public string _ItemDataBase_ItemDefinitions_250 = "Golden Axe of Fortune"; - public static string ItemDataBase_ItemDefinitions_251 => instance._ItemDataBase_ItemDefinitions_251; - public string _ItemDataBase_ItemDefinitions_251 = "Axe of Misfortune"; - public static string ItemDataBase_ItemDefinitions_252 => instance._ItemDataBase_ItemDefinitions_252; - public string _ItemDataBase_ItemDefinitions_252 = "Misfortunate are the ones on the recieving end. They will bleed a lot"; - public static string ItemDataBase_ItemDefinitions_253 => instance._ItemDataBase_ItemDefinitions_253; - public string _ItemDataBase_ItemDefinitions_253 = "Golden Ring"; - public static string ItemDataBase_ItemDefinitions_254 => instance._ItemDataBase_ItemDefinitions_254; - public string _ItemDataBase_ItemDefinitions_254 = "Golden Locket"; - public static string ItemDataBase_ItemDefinitions_255 => instance._ItemDataBase_ItemDefinitions_255; - public string _ItemDataBase_ItemDefinitions_255 = "Dull Axe"; - public static string ItemDataBase_ItemDefinitions_256 => instance._ItemDataBase_ItemDefinitions_256; - public string _ItemDataBase_ItemDefinitions_256 = "Precise Adjustments"; - public static string ItemDataBase_ItemDefinitions_257(params object[] objects) => string.Format(instance._ItemDataBase_ItemDefinitions_257, objects); - public string _ItemDataBase_ItemDefinitions_257 = "Focus attack speed buff duration is increased by {0} seconds"; - public static string ItemDataBase_ItemDefinitions_258 => instance._ItemDataBase_ItemDefinitions_258; - public string _ItemDataBase_ItemDefinitions_258 = "Rage"; - public static string ItemDataBase_ItemDefinitions_259(params object[] objects) => string.Format(instance._ItemDataBase_ItemDefinitions_259, objects); - public string _ItemDataBase_ItemDefinitions_259 = "Increases maximum stacks of frenzy by {0}"; - public static string ItemDataBase_ItemDefinitions_260 => instance._ItemDataBase_ItemDefinitions_260; - public string _ItemDataBase_ItemDefinitions_260 = "Swords go brrrrrrttt"; - public static string ItemDataBase_ItemDefinitions_261 => instance._ItemDataBase_ItemDefinitions_261; - public string _ItemDataBase_ItemDefinitions_261 = "Jagged Edge"; - public static string ItemDataBase_ItemDefinitions_262(params object[] objects) => string.Format(instance._ItemDataBase_ItemDefinitions_262, objects); - public string _ItemDataBase_ItemDefinitions_262 = "Bash has {0} a chance to make enemies to bleed for {1} of damage dealt per second for duration of slow"; - public static string ItemDataBase_ItemDefinitions_263 => instance._ItemDataBase_ItemDefinitions_263; - public string _ItemDataBase_ItemDefinitions_263 = "Bloodthirster"; - public static string ItemDataBase_ItemDefinitions_264 => instance._ItemDataBase_ItemDefinitions_264; - public string _ItemDataBase_ItemDefinitions_264 = "Drenched in blood of many unfortunate foes."; - public static string ItemDataBase_ItemDefinitions_265(params object[] objects) => string.Format(instance._ItemDataBase_ItemDefinitions_265, objects); - public string _ItemDataBase_ItemDefinitions_265 = "Bash lifesteals {0} of damage dealt into energy and health"; - public static string ItemDataBase_ItemDefinitions_266 => instance._ItemDataBase_ItemDefinitions_266; - public string _ItemDataBase_ItemDefinitions_266 = "Frost Giant"; - public static string ItemDataBase_ItemDefinitions_267 => instance._ItemDataBase_ItemDefinitions_267; - public string _ItemDataBase_ItemDefinitions_267 = "Melee hits freeze enemies"; - public static string ItemDataBase_ItemDefinitions_268 => instance._ItemDataBase_ItemDefinitions_268; - public string _ItemDataBase_ItemDefinitions_268 = "Alexander's Shield"; - public static string ItemDataBase_ItemDefinitions_269 => instance._ItemDataBase_ItemDefinitions_269; - public string _ItemDataBase_ItemDefinitions_269 = "Parry has a chance to be casted when getting it. Requires parry to be equipped"; - public static string ItemDataBase_ItemDefinitions_270 => instance._ItemDataBase_ItemDefinitions_270; - public string _ItemDataBase_ItemDefinitions_270 = "King Qruies"; - public static string ItemDataBase_ItemDefinitions_271 => instance._ItemDataBase_ItemDefinitions_271; - public string _ItemDataBase_ItemDefinitions_271 = "A mighty sword seeking for it's owner"; - public static string ItemDataBase_ItemDefinitions_272 => instance._ItemDataBase_ItemDefinitions_272; - public string _ItemDataBase_ItemDefinitions_272 = "Gain additional melee damage equal to the last instance of physical damage taken."; - public static string ItemDataBase_ItemDefinitions_273 => instance._ItemDataBase_ItemDefinitions_273; - public string _ItemDataBase_ItemDefinitions_273 = "Grip of Sora"; - public static string ItemDataBase_ItemDefinitions_274 => instance._ItemDataBase_ItemDefinitions_274; - public string _ItemDataBase_ItemDefinitions_274 = "Look, a porcupine! -Sora"; - public static string ItemDataBase_ItemDefinitions_275(params object[] objects) => string.Format(instance._ItemDataBase_ItemDefinitions_275, objects); - public string _ItemDataBase_ItemDefinitions_275 = "Multishot drains {0} less energy and shoots +4 projectiles. Additional projectiles do not increase the cost of multishot"; - public static string ItemDataBase_ItemDefinitions_276 => instance._ItemDataBase_ItemDefinitions_276; - public string _ItemDataBase_ItemDefinitions_276 = "Ancient Greatbow"; - public static string ItemDataBase_ItemDefinitions_277 => instance._ItemDataBase_ItemDefinitions_277; - public string _ItemDataBase_ItemDefinitions_277 = "A massive and slow bow, deals extra damage"; - public static string ItemDataBase_ItemDefinitions_278 => instance._ItemDataBase_ItemDefinitions_278; - public string _ItemDataBase_ItemDefinitions_278 = "Phoenix's Death"; - public static string ItemDataBase_ItemDefinitions_279 => instance._ItemDataBase_ItemDefinitions_279; - public string _ItemDataBase_ItemDefinitions_279 = "Ignites enemies on hit"; - public static string ItemDataBase_ItemDefinitions_280 => instance._ItemDataBase_ItemDefinitions_280; - public string _ItemDataBase_ItemDefinitions_280 = "Soulstring"; - public static string ItemDataBase_ItemDefinitions_281 => instance._ItemDataBase_ItemDefinitions_281; - public string _ItemDataBase_ItemDefinitions_281 = "A massive and slow bow"; - public static string ItemDataBase_ItemDefinitions_282(params object[] objects) => string.Format(instance._ItemDataBase_ItemDefinitions_282, objects); - public string _ItemDataBase_ItemDefinitions_282 = "Blood infused arrow now deals additional {0} points of damage per health consumed"; - public static string ItemDataBase_ItemDefinitions_283 => instance._ItemDataBase_ItemDefinitions_283; - public string _ItemDataBase_ItemDefinitions_283 = "Greatbow"; - public static string ItemDataBase_ItemDefinitions_284 => instance._ItemDataBase_ItemDefinitions_284; - public string _ItemDataBase_ItemDefinitions_284 = "Withered Crown"; - public static string ItemDataBase_ItemDefinitions_285 => instance._ItemDataBase_ItemDefinitions_285; - public string _ItemDataBase_ItemDefinitions_285 = "Worn by Hazard."; - public static string ItemDataBase_ItemDefinitions_286(params object[] objects) => string.Format(instance._ItemDataBase_ItemDefinitions_286, objects); - public string _ItemDataBase_ItemDefinitions_286 = "A single cast of blood infused arrow affects {0} more projectiles"; - public static string ItemDataBase_ItemDefinitions_287 => instance._ItemDataBase_ItemDefinitions_287; - public string _ItemDataBase_ItemDefinitions_287 = "Novice Magic Caster's Bracers"; - public static string ItemDataBase_ItemDefinitions_288 => instance._ItemDataBase_ItemDefinitions_288; - public string _ItemDataBase_ItemDefinitions_288 = "Ranger's Bracers"; - public static string ItemDataBase_ItemDefinitions_289 => instance._ItemDataBase_ItemDefinitions_289; - public string _ItemDataBase_ItemDefinitions_289 = "Swordsman's Bracers"; - public static string ItemDataBase_ItemDefinitions_290 => instance._ItemDataBase_ItemDefinitions_290; - public string _ItemDataBase_ItemDefinitions_290 = "Healer's Bracers"; - public static string ItemDataBase_ItemDefinitions_291 => instance._ItemDataBase_ItemDefinitions_291; - public string _ItemDataBase_ItemDefinitions_291 = "Novice Magic Caster's Gloves"; - public static string ItemDataBase_ItemDefinitions_292 => instance._ItemDataBase_ItemDefinitions_292; - public string _ItemDataBase_ItemDefinitions_292 = "Ranger's Gloves"; - public static string ItemDataBase_ItemDefinitions_293 => instance._ItemDataBase_ItemDefinitions_293; - public string _ItemDataBase_ItemDefinitions_293 = "Swordsman's Gloves"; - public static string ItemDataBase_ItemDefinitions_294 => instance._ItemDataBase_ItemDefinitions_294; - public string _ItemDataBase_ItemDefinitions_294 = "Healer's Gloves"; - public static string ItemDataBase_ItemDefinitions_295 => instance._ItemDataBase_ItemDefinitions_295; - public string _ItemDataBase_ItemDefinitions_295 = "Fate Gloves"; - public static string ItemDataBase_ItemDefinitions_296 => instance._ItemDataBase_ItemDefinitions_296; - public string _ItemDataBase_ItemDefinitions_296 = "Fate Boots"; - public static string ItemDataBase_ItemDefinitions_297 => instance._ItemDataBase_ItemDefinitions_297; - public string _ItemDataBase_ItemDefinitions_297 = "Greed"; - public static string ItemDataBase_ItemDefinitions_298 => instance._ItemDataBase_ItemDefinitions_298; - public string _ItemDataBase_ItemDefinitions_298 = "Automatically casts wide reach every second"; - public static string ItemDataBase_ItemDefinitions_299 => instance._ItemDataBase_ItemDefinitions_299; - public string _ItemDataBase_ItemDefinitions_299 = "Titanium Leggins"; - public static string ItemDataBase_ItemDefinitions_300 => instance._ItemDataBase_ItemDefinitions_300; - public string _ItemDataBase_ItemDefinitions_300 = "Heavily armored leg protection. Suffers from the same weaknesses as spartan armor."; - public static string ItemDataBase_ItemDefinitions_301 => instance._ItemDataBase_ItemDefinitions_301; - public string _ItemDataBase_ItemDefinitions_301 = "Iron Gauntlet"; - public static string ItemDataBase_ItemDefinitions_302 => instance._ItemDataBase_ItemDefinitions_302; - public string _ItemDataBase_ItemDefinitions_302 = "Magefist"; - public static string ItemDataBase_ItemDefinitions_303 => instance._ItemDataBase_ItemDefinitions_303; - public string _ItemDataBase_ItemDefinitions_303 = "Gloves that amplify magic"; - public static string ItemDataBase_ItemDefinitions_304 => instance._ItemDataBase_ItemDefinitions_304; - public string _ItemDataBase_ItemDefinitions_304 = "Spells deal double damage but have double the energy cost"; - public static string ItemDataBase_ItemDefinitions_305 => instance._ItemDataBase_ItemDefinitions_305; - public string _ItemDataBase_ItemDefinitions_305 = "Armored Boots"; - public static string ItemDataBase_ItemDefinitions_306 => instance._ItemDataBase_ItemDefinitions_306; - public string _ItemDataBase_ItemDefinitions_306 = "Heavily armored, resistant to damage boots."; - public static string ItemDataBase_ItemDefinitions_307 => instance._ItemDataBase_ItemDefinitions_307; - public string _ItemDataBase_ItemDefinitions_307 = "Broken Protector"; - public static string ItemDataBase_ItemDefinitions_308 => instance._ItemDataBase_ItemDefinitions_308; - public string _ItemDataBase_ItemDefinitions_308 = "This shield failed to protect those behind it."; - public static string ItemDataBase_ItemDefinitions_309 => instance._ItemDataBase_ItemDefinitions_309; - public string _ItemDataBase_ItemDefinitions_309 = "Forbidden Scroll"; - public static string ItemDataBase_ItemDefinitions_310 => instance._ItemDataBase_ItemDefinitions_310; - public string _ItemDataBase_ItemDefinitions_310 = "Too powerful to be kept."; - public static string ItemDataBase_ItemDefinitions_311 => instance._ItemDataBase_ItemDefinitions_311; - public string _ItemDataBase_ItemDefinitions_311 = "Doom Pauldrons"; - public static string ItemDataBase_ItemDefinitions_312 => instance._ItemDataBase_ItemDefinitions_312; - public string _ItemDataBase_ItemDefinitions_312 = "Despite the cool name, they are completely normal pair of shoulder armor."; - public static string ItemDataBase_ItemDefinitions_313 => instance._ItemDataBase_ItemDefinitions_313; - public string _ItemDataBase_ItemDefinitions_313 = "Wind armor"; - public static string ItemDataBase_ItemDefinitions_314 => instance._ItemDataBase_ItemDefinitions_314; - public string _ItemDataBase_ItemDefinitions_314 = "Run fast like the wind"; - public static string ItemDataBase_ItemDefinitions_315(params object[] objects) => string.Format(instance._ItemDataBase_ItemDefinitions_315, objects); - public string _ItemDataBase_ItemDefinitions_315 = "Upon dodging an attack, gain {0} movement speed, {1} damage, {2} armor, and heal for {3} of your maximum health"; - public static string ItemDataBase_ItemDefinitions_316 => instance._ItemDataBase_ItemDefinitions_316; - public string _ItemDataBase_ItemDefinitions_316 = "Crusader Helmet"; - public static string ItemDataBase_ItemDefinitions_317 => instance._ItemDataBase_ItemDefinitions_317; - public string _ItemDataBase_ItemDefinitions_317 = "You're talking mad shit for someone within crusading distance"; - public static string ItemDataBase_ItemDefinitions_318 => instance._ItemDataBase_ItemDefinitions_318; - public string _ItemDataBase_ItemDefinitions_318 = "Hood"; - public static string ItemDataBase_ItemDefinitions_319 => instance._ItemDataBase_ItemDefinitions_319; - public string _ItemDataBase_ItemDefinitions_319 = "Hats provide usefull stat bonuses"; - public static string ItemDataBase_ItemDefinitions_320 => instance._ItemDataBase_ItemDefinitions_320; - public string _ItemDataBase_ItemDefinitions_320 = "The Spark of Light in The Darkness"; - public static string ItemDataBase_ItemDefinitions_321 => instance._ItemDataBase_ItemDefinitions_321; - public string _ItemDataBase_ItemDefinitions_321 = "Magic Scroll of great quality"; - public static string ItemDataBase_ItemDefinitions_322 => instance._ItemDataBase_ItemDefinitions_322; - public string _ItemDataBase_ItemDefinitions_322 = "Written in a language i canno't understand. Decyphering this text is impossible, so is the full utilization of the scroll."; - public static string ItemDataBase_ItemDefinitions_323(params object[] objects) => string.Format(instance._ItemDataBase_ItemDefinitions_323, objects); - public string _ItemDataBase_ItemDefinitions_323 = "If a black hole hits {0} or more enemies during it's lifetime, a ball lightning is summoned after it ends."; - public static string ItemDataBase_ItemDefinitions_324 => instance._ItemDataBase_ItemDefinitions_324; - public string _ItemDataBase_ItemDefinitions_324 = "Purgatory"; - public static string ItemDataBase_ItemDefinitions_325 => instance._ItemDataBase_ItemDefinitions_325; - public string _ItemDataBase_ItemDefinitions_325 = "Golden ring with a bone chilling feel about it. This thing will only bring harm, but not to the wearer"; - public static string ItemDataBase_ItemDefinitions_326 => instance._ItemDataBase_ItemDefinitions_326; - public string _ItemDataBase_ItemDefinitions_326 = "Ring made of Netherrite"; - public static string ItemDataBase_ItemDefinitions_327(params object[] objects) => string.Format(instance._ItemDataBase_ItemDefinitions_327, objects); - public string _ItemDataBase_ItemDefinitions_327 = "Purge increases all of your damage based on missing health. Up to {0}"; - public static string ItemDataBase_ItemDefinitions_328 => instance._ItemDataBase_ItemDefinitions_328; - public string _ItemDataBase_ItemDefinitions_328 = "Eruption"; - public static string ItemDataBase_ItemDefinitions_329 => instance._ItemDataBase_ItemDefinitions_329; - public string _ItemDataBase_ItemDefinitions_329 = "Incarnation of devastation"; - public static string ItemDataBase_ItemDefinitions_330 => instance._ItemDataBase_ItemDefinitions_330; - public string _ItemDataBase_ItemDefinitions_330 = "Headshots cause explosions"; - public static string ItemDataBase_ItemDefinitions_331 => instance._ItemDataBase_ItemDefinitions_331; - public string _ItemDataBase_ItemDefinitions_331 = "Archangel"; - public static string ItemDataBase_ItemDefinitions_332 => instance._ItemDataBase_ItemDefinitions_332; - public string _ItemDataBase_ItemDefinitions_332 = "Spread the goodness"; - public static string ItemDataBase_ItemDefinitions_333(params object[] objects) => string.Format(instance._ItemDataBase_ItemDefinitions_333, objects); - public string _ItemDataBase_ItemDefinitions_333 = "Shooting another player causes them to be greatly empowered for {0} seconds"; - public static string ItemDataBase_ItemDefinitions_334 => instance._ItemDataBase_ItemDefinitions_334; - public string _ItemDataBase_ItemDefinitions_334 = "The Executioner"; - public static string ItemDataBase_ItemDefinitions_335 => instance._ItemDataBase_ItemDefinitions_335; - public string _ItemDataBase_ItemDefinitions_335 = "A sword for decapitating"; - public static string ItemDataBase_ItemDefinitions_336 => instance._ItemDataBase_ItemDefinitions_336; - public string _ItemDataBase_ItemDefinitions_336 = "Moon Cuirass"; - public static string ItemDataBase_ItemDefinitions_337 => instance._ItemDataBase_ItemDefinitions_337; - public string _ItemDataBase_ItemDefinitions_337 = "A piece of armor designed for an archer. "; - public static string ItemDataBase_ItemDefinitions_338(params object[] objects) => string.Format(instance._ItemDataBase_ItemDefinitions_338, objects); - public string _ItemDataBase_ItemDefinitions_338 = "Landing a headshot with an arrow without the homing effect of seeking arrow at a distance greater than {0} feet deals tenfold damage, and hits the enemy two extra times"; - public static string ItemDataBase_ItemDefinitions_339 => instance._ItemDataBase_ItemDefinitions_339; - public string _ItemDataBase_ItemDefinitions_339 = "Thornmail"; - public static string ItemDataBase_ItemDefinitions_340 => instance._ItemDataBase_ItemDefinitions_340; - public string _ItemDataBase_ItemDefinitions_340 = "Spiked death on the outside, really comfy on the inside"; - public static string ItemDataBase_ItemDefinitions_341 => instance._ItemDataBase_ItemDefinitions_341; - public string _ItemDataBase_ItemDefinitions_341 = "Thorns deal double damage"; - public static string ItemDataBase_ItemDefinitions_342 => instance._ItemDataBase_ItemDefinitions_342; - public string _ItemDataBase_ItemDefinitions_342 = "Rusty Polearm"; - public static string ItemDataBase_ItemDefinitions_343 => instance._ItemDataBase_ItemDefinitions_343; - public string _ItemDataBase_ItemDefinitions_343 = "Used by the Ubersreik Five"; - public static string ItemDataBase_ItemDefinitions_344 => instance._ItemDataBase_ItemDefinitions_344; - public string _ItemDataBase_ItemDefinitions_344 = "Giant Polearm"; - public static string ItemDataBase_ItemDefinitions_345 => instance._ItemDataBase_ItemDefinitions_345; - public string _ItemDataBase_ItemDefinitions_345 = "Used by the Sir Kruber"; - public static string ItemDataBase_ItemDefinitions_346 => instance._ItemDataBase_ItemDefinitions_346; - public string _ItemDataBase_ItemDefinitions_346 = "Crude Feather"; - public static string ItemDataBase_ItemDefinitions_347 => instance._ItemDataBase_ItemDefinitions_347; - public string _ItemDataBase_ItemDefinitions_347 = "Materials can be put inside empty sockets to add stats to items"; - public static string ItemDataBase_ItemDefinitions_348 => instance._ItemDataBase_ItemDefinitions_348; - public string _ItemDataBase_ItemDefinitions_348 = "Soft Feather"; - public static string ItemDataBase_ItemDefinitions_349 => instance._ItemDataBase_ItemDefinitions_349; - public string _ItemDataBase_ItemDefinitions_349 = "Ornate Feather"; - public static string ItemDataBase_ItemDefinitions_350 => instance._ItemDataBase_ItemDefinitions_350; - public string _ItemDataBase_ItemDefinitions_350 = "Wonderful Feather"; - public static string ItemDataBase_ItemDefinitions_351 => instance._ItemDataBase_ItemDefinitions_351; - public string _ItemDataBase_ItemDefinitions_351 = "White Crow's Feather"; - public static string ItemDataBase_ItemDefinitions_352 => instance._ItemDataBase_ItemDefinitions_352; - public string _ItemDataBase_ItemDefinitions_352 = "Reef Shark"; - public static string ItemDataBase_ItemDefinitions_353 => instance._ItemDataBase_ItemDefinitions_353; - public string _ItemDataBase_ItemDefinitions_353 = "Tiger Shark Tooth"; - public static string ItemDataBase_ItemDefinitions_354 => instance._ItemDataBase_ItemDefinitions_354; - public string _ItemDataBase_ItemDefinitions_354 = "Whale Shark Tooth"; - public static string ItemDataBase_ItemDefinitions_355 => instance._ItemDataBase_ItemDefinitions_355; - public string _ItemDataBase_ItemDefinitions_355 = "Great White Shark Tooth"; - public static string ItemDataBase_ItemDefinitions_356 => instance._ItemDataBase_ItemDefinitions_356; - public string _ItemDataBase_ItemDefinitions_356 = "Megalodon's Tooth"; - public static string ItemDataBase_ItemDefinitions_357 => instance._ItemDataBase_ItemDefinitions_357; - public string _ItemDataBase_ItemDefinitions_357 = "Uncut Sapphire"; - public static string ItemDataBase_ItemDefinitions_358 => instance._ItemDataBase_ItemDefinitions_358; - public string _ItemDataBase_ItemDefinitions_358 = "Clear Sapphire"; - public static string ItemDataBase_ItemDefinitions_359 => instance._ItemDataBase_ItemDefinitions_359; - public string _ItemDataBase_ItemDefinitions_359 = "Shiny Sapphire"; - public static string ItemDataBase_ItemDefinitions_360 => instance._ItemDataBase_ItemDefinitions_360; - public string _ItemDataBase_ItemDefinitions_360 = "Enchanted Sapphire"; - public static string ItemDataBase_ItemDefinitions_361 => instance._ItemDataBase_ItemDefinitions_361; - public string _ItemDataBase_ItemDefinitions_361 = "Celestial Sapphire"; - public static string ItemDataBase_ItemDefinitions_362 => instance._ItemDataBase_ItemDefinitions_362; - public string _ItemDataBase_ItemDefinitions_362 = "Uncut Moonstone"; - public static string ItemDataBase_ItemDefinitions_363 => instance._ItemDataBase_ItemDefinitions_363; - public string _ItemDataBase_ItemDefinitions_363 = "Clear Moonstone"; - public static string ItemDataBase_ItemDefinitions_364 => instance._ItemDataBase_ItemDefinitions_364; - public string _ItemDataBase_ItemDefinitions_364 = "Shiny Moonstone"; - public static string ItemDataBase_ItemDefinitions_365 => instance._ItemDataBase_ItemDefinitions_365; - public string _ItemDataBase_ItemDefinitions_365 = "Enchanted Moonstone"; - public static string ItemDataBase_ItemDefinitions_366 => instance._ItemDataBase_ItemDefinitions_366; - public string _ItemDataBase_ItemDefinitions_366 = "Celestial Moonstone"; - public static string ItemDataBase_ItemDefinitions_367 => instance._ItemDataBase_ItemDefinitions_367; - public string _ItemDataBase_ItemDefinitions_367 = "Lead Ore"; - public static string ItemDataBase_ItemDefinitions_368 => instance._ItemDataBase_ItemDefinitions_368; - public string _ItemDataBase_ItemDefinitions_368 = "Vanadium Ore"; - public static string ItemDataBase_ItemDefinitions_369 => instance._ItemDataBase_ItemDefinitions_369; - public string _ItemDataBase_ItemDefinitions_369 = "Titanium Ore"; - public static string ItemDataBase_ItemDefinitions_370 => instance._ItemDataBase_ItemDefinitions_370; - public string _ItemDataBase_ItemDefinitions_370 = "Chromium Ore"; - public static string ItemDataBase_ItemDefinitions_371 => instance._ItemDataBase_ItemDefinitions_371; - public string _ItemDataBase_ItemDefinitions_371 = "Tungsten Ore"; - public static string ItemDataBase_ItemDefinitions_372 => instance._ItemDataBase_ItemDefinitions_372; - public string _ItemDataBase_ItemDefinitions_372 = "Knife on a stick"; - public static string ItemDataBase_ItemDefinitions_373 => instance._ItemDataBase_ItemDefinitions_373; - public string _ItemDataBase_ItemDefinitions_373 = "Kasper named this item, his fault"; - public static string ItemDataBase_ItemDefinitions_374 => instance._ItemDataBase_ItemDefinitions_374; - public string _ItemDataBase_ItemDefinitions_374 = "Fists of Nails"; - public static string ItemDataBase_ItemDefinitions_375 => instance._ItemDataBase_ItemDefinitions_375; - public string _ItemDataBase_ItemDefinitions_375 = "Swiss sheese makers"; - public static string ItemDataBase_ItemDefinitions_376(params object[] objects) => string.Format(instance._ItemDataBase_ItemDefinitions_376, objects); - public string _ItemDataBase_ItemDefinitions_376 = "Gain {0} thorns per vitality"; - public static string ItemDataBase_ItemDefinitions_377 => instance._ItemDataBase_ItemDefinitions_377; - public string _ItemDataBase_ItemDefinitions_377 = "Cargo Shorts MK2"; - public static string ItemDataBase_ItemDefinitions_378 => instance._ItemDataBase_ItemDefinitions_378; - public string _ItemDataBase_ItemDefinitions_378 = "Deepest pockets out there"; - public static string ItemDataBase_ItemDefinitions_379 => instance._ItemDataBase_ItemDefinitions_379; - public string _ItemDataBase_ItemDefinitions_379 = "Improved cargo pants. Twice as many pockets, and since they didnt fit on the outside, they are inside. They are still ugly as hell tho"; - public static string ItemDataBase_ItemDefinitions_380 => instance._ItemDataBase_ItemDefinitions_380; - public string _ItemDataBase_ItemDefinitions_380 = "Aezyn"; - public static string ItemDataBase_ItemDefinitions_381 => instance._ItemDataBase_ItemDefinitions_381; - public string _ItemDataBase_ItemDefinitions_381 = "Enchanted with magic as strong as power swing. It's purpose? Hit harder."; - public static string ItemDataBase_ItemDefinitions_382(params object[] objects) => string.Format(instance._ItemDataBase_ItemDefinitions_382, objects); - public string _ItemDataBase_ItemDefinitions_382 = "Magic arrow damage scaling is increased by {0}"; - public static string ItemDataBase_ItemDefinitions_383 => instance._ItemDataBase_ItemDefinitions_383; - public string _ItemDataBase_ItemDefinitions_383 = "Punny's Reflective Ring"; - public static string ItemDataBase_ItemDefinitions_384 => instance._ItemDataBase_ItemDefinitions_384; - public string _ItemDataBase_ItemDefinitions_384 = "Magic arrow is shot in volleys. This effect can stack."; - public static string ItemDataBase_ItemDefinitions_385 => instance._ItemDataBase_ItemDefinitions_385; - public string _ItemDataBase_ItemDefinitions_385 = "Eyepatch"; - public static string ItemDataBase_ItemDefinitions_386 => instance._ItemDataBase_ItemDefinitions_386; - public string _ItemDataBase_ItemDefinitions_386 = "A wise man once said:"; - public static string ItemDataBase_ItemDefinitions_387 => instance._ItemDataBase_ItemDefinitions_387; - public string _ItemDataBase_ItemDefinitions_387 = "Everyone thinks I'm just a one-eyed bloody monster, god damnit... (sobbing)"; - public static string ItemDataBase_ItemDefinitions_388 => instance._ItemDataBase_ItemDefinitions_388; - public string _ItemDataBase_ItemDefinitions_388 = "Explosion damage is also applied when performing jump attacks"; - public static string ItemDataBase_ItemDefinitions_389 => instance._ItemDataBase_ItemDefinitions_389; - public string _ItemDataBase_ItemDefinitions_389 = "Javelin"; - public static string ItemDataBase_ItemDefinitions_390 => instance._ItemDataBase_ItemDefinitions_390; - public string _ItemDataBase_ItemDefinitions_390 = "Warplate"; - public static string ItemDataBase_ItemDefinitions_391 => instance._ItemDataBase_ItemDefinitions_391; - public string _ItemDataBase_ItemDefinitions_391 = "Enchanted with the power of the GOD's armor. It's purpose? Hit harder, daddy."; - public static string ItemDataBase_ItemDefinitions_392 => instance._ItemDataBase_ItemDefinitions_392; - public string _ItemDataBase_ItemDefinitions_392 = "Strength comes from the power of will, the stronger the will the stronger you are"; - public static string ItemDataBase_ItemDefinitions_393 => instance._ItemDataBase_ItemDefinitions_393; - public string _ItemDataBase_ItemDefinitions_393 = "Torso of Strength"; - public static string ItemDataBase_ItemDefinitions_394 => instance._ItemDataBase_ItemDefinitions_394; - public string _ItemDataBase_ItemDefinitions_394 = "Demoman's Vest"; - public static string ItemDataBase_ItemDefinitions_395 => instance._ItemDataBase_ItemDefinitions_395; - public string _ItemDataBase_ItemDefinitions_395 = "What makes me a good demoman? If I were a bad demoman, I wouldn't be sittin' here discussin' it with you, now would I?! LET'S DO IT! Not one of you's gonna survive this! One crossed wire, one wayward pinch of potassium chlorate, one errant twitch, and KA-BLOOIE! I got a manky eye. I'm a black Scottish cyclops. They got more fecking sea monsters in the great Lochett Ness than they got the likes of me. So! T'all you fine dandies, so proud, so cocksure, prancin' about with your heads full of eyeballs... come and get me, I say! I'll be waitin' on you with a whiff of the old brimstone! I'm a Grimm bloody fable with an unhappy bloody end! Oh, they're going to have to glue you back together...IN HELL!"; - public static string ItemDataBase_ItemDefinitions_396 => instance._ItemDataBase_ItemDefinitions_396; - public string _ItemDataBase_ItemDefinitions_396 = "Brawler's Gloves"; - public static string ItemDataBase_ItemDefinitions_397 => instance._ItemDataBase_ItemDefinitions_397; - public string _ItemDataBase_ItemDefinitions_397 = "Nail Gloves"; - public static string ItemDataBase_ItemDefinitions_398 => instance._ItemDataBase_ItemDefinitions_398; - public string _ItemDataBase_ItemDefinitions_398 = "Enchanted with the power of penetration. It's purpose? Hit harder."; - public static string ItemDataBase_ItemDefinitions_399 => instance._ItemDataBase_ItemDefinitions_399; - public string _ItemDataBase_ItemDefinitions_399 = "Hand-held Ballista"; - public static string ItemDataBase_ItemDefinitions_400 => instance._ItemDataBase_ItemDefinitions_400; - public string _ItemDataBase_ItemDefinitions_400 = "Kuldars's Scarf"; - public static string ItemDataBase_ItemDefinitions_401 => instance._ItemDataBase_ItemDefinitions_401; - public string _ItemDataBase_ItemDefinitions_401 = "Strength comes from the power of will"; - public static string ItemDataBase_ItemDefinitions_402 => instance._ItemDataBase_ItemDefinitions_402; - public string _ItemDataBase_ItemDefinitions_402 = "Sword Devil's Scarf"; - public static string ItemDataBase_ItemDefinitions_403 => instance._ItemDataBase_ItemDefinitions_403; - public string _ItemDataBase_ItemDefinitions_403 = "Peasant's Scarf"; - public static string ItemDataBase_ItemDefinitions_404 => instance._ItemDataBase_ItemDefinitions_404; - public string _ItemDataBase_ItemDefinitions_404 = "Bombastinc Choker"; - public static string ItemDataBase_ItemDefinitions_405 => instance._ItemDataBase_ItemDefinitions_405; - public string _ItemDataBase_ItemDefinitions_405 = "Explosive Touch"; - public static string ItemDataBase_ItemDefinitions_406 => instance._ItemDataBase_ItemDefinitions_406; - public string _ItemDataBase_ItemDefinitions_406 = "Enchanted with the power of the explosions armor. It's purpose? Become the true explosion master"; - public static string ItemDataBase_ItemDefinitions_407 => instance._ItemDataBase_ItemDefinitions_407; - public string _ItemDataBase_ItemDefinitions_407 = "Strength comes from the power of will, the stronger the will the stronger the explosion"; - public static string ItemDataBase_ItemDefinitions_408 => instance._ItemDataBase_ItemDefinitions_408; - public string _ItemDataBase_ItemDefinitions_408 = "Volatile Bracers"; - public static string ItemDataBase_ItemDefinitions_409 => instance._ItemDataBase_ItemDefinitions_409; - public string _ItemDataBase_ItemDefinitions_409 = "Volatile Helmet"; - public static string ItemDataBase_ItemDefinitions_410 => instance._ItemDataBase_ItemDefinitions_410; - public string _ItemDataBase_ItemDefinitions_410 = "Gunpowder filled socks"; - public static string ItemDataBase_ItemDefinitions_411 => instance._ItemDataBase_ItemDefinitions_411; - public string _ItemDataBase_ItemDefinitions_411 = "Red Skirt"; - public static string ItemDataBase_ItemDefinitions_412 => instance._ItemDataBase_ItemDefinitions_412; - public string _ItemDataBase_ItemDefinitions_412 = "Gunpowder Boxers"; - public static string ItemDataBase_ItemDefinitions_413 => instance._ItemDataBase_ItemDefinitions_413; - public string _ItemDataBase_ItemDefinitions_413 = "Jihad Vest"; - public static string ItemDataBase_ItemDefinitions_414 => instance._ItemDataBase_ItemDefinitions_414; - public string _ItemDataBase_ItemDefinitions_414 = "Ring of Fortune"; - public static string ItemDataBase_ItemDefinitions_415 => instance._ItemDataBase_ItemDefinitions_415; - public string _ItemDataBase_ItemDefinitions_415 = "Mana Ring"; - public static string ItemDataBase_ItemDefinitions_416 => instance._ItemDataBase_ItemDefinitions_416; - public string _ItemDataBase_ItemDefinitions_416 = "Life Ring"; - public static string ItemDataBase_ItemDefinitions_417 => instance._ItemDataBase_ItemDefinitions_417; - public string _ItemDataBase_ItemDefinitions_417 = "Moritz's Gear"; - public static string ItemDataBase_ItemDefinitions_418 => instance._ItemDataBase_ItemDefinitions_418; - public string _ItemDataBase_ItemDefinitions_418 = "Band of Hurting"; - public static string ItemDataBase_ItemDefinitions_419 => instance._ItemDataBase_ItemDefinitions_419; - public string _ItemDataBase_ItemDefinitions_419 = "A ring for a warrior"; - public static string ItemDataBase_ItemDefinitions_420 => instance._ItemDataBase_ItemDefinitions_420; - public string _ItemDataBase_ItemDefinitions_420 = "Straw Hat"; - public static string ItemDataBase_ItemDefinitions_421 => instance._ItemDataBase_ItemDefinitions_421; - public string _ItemDataBase_ItemDefinitions_421 = "Rusty Javelin"; - public static string ItemDataBase_ItemDefinitions_422 => instance._ItemDataBase_ItemDefinitions_422; - public string _ItemDataBase_ItemDefinitions_422 = "Star Robe"; - public static string ItemDataBase_ItemDefinitions_423 => instance._ItemDataBase_ItemDefinitions_423; - public string _ItemDataBase_ItemDefinitions_423 = "Anger"; - public static string ItemDataBase_ItemDefinitions_424 => instance._ItemDataBase_ItemDefinitions_424; - public string _ItemDataBase_ItemDefinitions_424 = "Downscaled version of Greatsword Rage, made to be wielded by flimsy wizards"; - public static string ItemDataBase_ItemDefinitions_425(params object[] objects) => string.Format(instance._ItemDataBase_ItemDefinitions_425, objects); - public string _ItemDataBase_ItemDefinitions_425 = "Increases maximum stacks of frenzy by {0}"; - public static string ItemDataBase_ItemDefinitions_426 => instance._ItemDataBase_ItemDefinitions_426; - public string _ItemDataBase_ItemDefinitions_426 = "Yuki-Onna Strides"; - public static string ItemDataBase_ItemDefinitions_427(params object[] objects) => string.Format(instance._ItemDataBase_ItemDefinitions_427, objects); - public string _ItemDataBase_ItemDefinitions_427 = "Set Piece:\n2 Pieces- Snow Storm pulls enemies towards you\n3 Pieces - Snow Storm radius, maximum damage, spell cost is doubled, but charge rate is slower\n4 Pieces - Snow storm hit frequency is increased by {0}"; - public static string ItemDataBase_ItemDefinitions_428 => instance._ItemDataBase_ItemDefinitions_428; - public string _ItemDataBase_ItemDefinitions_428 = "Boots looted off a snow demon"; - public static string ItemDataBase_ItemDefinitions_429(params object[] objects) => string.Format(instance._ItemDataBase_ItemDefinitions_429, objects); - public string _ItemDataBase_ItemDefinitions_429 = "Increses snowstorm damage by {0}"; - public static string ItemDataBase_ItemDefinitions_430 => instance._ItemDataBase_ItemDefinitions_430; - public string _ItemDataBase_ItemDefinitions_430 = "Yuki-Onna Greaves"; - public static string ItemDataBase_ItemDefinitions_431 => instance._ItemDataBase_ItemDefinitions_431; - public string _ItemDataBase_ItemDefinitions_431 = "Yuki-Onna Kimono"; - public static string ItemDataBase_ItemDefinitions_432 => instance._ItemDataBase_ItemDefinitions_432; - public string _ItemDataBase_ItemDefinitions_432 = "Yuki-Onna's Headdress"; - public static string ItemDataBase_ItemDefinitions_433(params object[] objects) => string.Format(instance._ItemDataBase_ItemDefinitions_433, objects); - public string _ItemDataBase_ItemDefinitions_433 = "Set Piece:\n2 Pieces- Snow Storm pulls enemies towards you\n3 Pieces - Snow Storm radius, maximum damage, spell cost is doubled, but charge rate is slower\n4 Pieces - Snow storm hit frequency is increased by {0} and damage is increased by {1}"; - public static string ItemDataBase_ItemDefinitions_434 => instance._ItemDataBase_ItemDefinitions_434; - public string _ItemDataBase_ItemDefinitions_434 = "Lama Mega's Blood Bag"; - public static string ItemDataBase_ItemDefinitions_435(params object[] objects) => string.Format(instance._ItemDataBase_ItemDefinitions_435, objects); - public string _ItemDataBase_ItemDefinitions_435 = "Melee hits cause enemies to bleed for {0} of your health as damage for {1} seconds"; - public static string ItemDataBase_ItemDefinitions_436 => instance._ItemDataBase_ItemDefinitions_436; - public string _ItemDataBase_ItemDefinitions_436 = "Socket Drill"; - public static string ItemDataBase_ItemDefinitions_437 => instance._ItemDataBase_ItemDefinitions_437; - public string _ItemDataBase_ItemDefinitions_437 = "A convienient one use tool"; - public static string ItemDataBase_ItemDefinitions_438 => instance._ItemDataBase_ItemDefinitions_438; - public string _ItemDataBase_ItemDefinitions_438 = "What's a drill doing here in a place full of primitive tribes?"; - public static string ItemDataBase_ItemDefinitions_439 => instance._ItemDataBase_ItemDefinitions_439; - public string _ItemDataBase_ItemDefinitions_439 = "Adds one socket to an item, unless the item can't have any more sockets."; - public static string ItemDataBase_ItemDefinitions_440 => instance._ItemDataBase_ItemDefinitions_440; - public string _ItemDataBase_ItemDefinitions_440 = "Moonwalkers"; - public static string ItemDataBase_ItemDefinitions_441 => instance._ItemDataBase_ItemDefinitions_441; - public string _ItemDataBase_ItemDefinitions_441 = "Cha cha real smooth."; - public static string ItemDataBase_ItemDefinitions_442 => instance._ItemDataBase_ItemDefinitions_442; - public string _ItemDataBase_ItemDefinitions_442 = "Inverts movement"; - public static string ItemDataBase_ItemDefinitions_443 => instance._ItemDataBase_ItemDefinitions_443; - public string _ItemDataBase_ItemDefinitions_443 = "Rabbit Ears Hairband"; - public static string ItemDataBase_ItemDefinitions_444 => instance._ItemDataBase_ItemDefinitions_444; - public string _ItemDataBase_ItemDefinitions_444 = "Cute"; - public static string ItemDataBase_ItemDefinitions_445 => instance._ItemDataBase_ItemDefinitions_445; - public string _ItemDataBase_ItemDefinitions_445 = "Bunny Ears Hairband"; - public static string ItemDataBase_ItemDefinitions_446 => instance._ItemDataBase_ItemDefinitions_446; - public string _ItemDataBase_ItemDefinitions_446 = "Iron plate full of holes"; - public static string ItemDataBase_ItemDefinitions_447 => instance._ItemDataBase_ItemDefinitions_447; - public string _ItemDataBase_ItemDefinitions_447 = "The integrity of this item is questionable"; - public static string ItemDataBase_ItemDefinitions_448 => instance._ItemDataBase_ItemDefinitions_448; - public string _ItemDataBase_ItemDefinitions_448 = "Small Tribal Necklace"; - public static string ItemDataBase_ItemDefinitions_449(params object[] objects) => string.Format(instance._ItemDataBase_ItemDefinitions_449, objects); - public string _ItemDataBase_ItemDefinitions_449 = "Increases maximum stacks of frenzy by {0}"; - public static string ItemDataBase_ItemDefinitions_450 => instance._ItemDataBase_ItemDefinitions_450; - public string _ItemDataBase_ItemDefinitions_450 = "Tribal Necklace"; - public static string ItemDataBase_ItemDefinitions_451(params object[] objects) => string.Format(instance._ItemDataBase_ItemDefinitions_451, objects); - public string _ItemDataBase_ItemDefinitions_451 = "Increases maximum stacks of frenzy by {0}"; - public static string ItemDataBase_ItemDefinitions_452 => instance._ItemDataBase_ItemDefinitions_452; - public string _ItemDataBase_ItemDefinitions_452 = "Warlord Necklace"; - public static string ItemDataBase_ItemDefinitions_453(params object[] objects) => string.Format(instance._ItemDataBase_ItemDefinitions_453, objects); - public string _ItemDataBase_ItemDefinitions_453 = "Increases maximum stacks of frenzy by {0}"; - public static string ItemDataBase_ItemDefinitions_454 => instance._ItemDataBase_ItemDefinitions_454; - public string _ItemDataBase_ItemDefinitions_454 = "Travel Band"; - public static string ItemDataBase_ItemDefinitions_455(params object[] objects) => string.Format(instance._ItemDataBase_ItemDefinitions_455, objects); - public string _ItemDataBase_ItemDefinitions_455 = "The distance of blink is increased by {0} feet"; - public static string ItemDataBase_ItemDefinitions_456 => instance._ItemDataBase_ItemDefinitions_456; - public string _ItemDataBase_ItemDefinitions_456 = "Destroyed Void Shard"; - public static string ItemDataBase_ItemDefinitions_457 => instance._ItemDataBase_ItemDefinitions_457; - public string _ItemDataBase_ItemDefinitions_457 = "Only a fraction of its previous might remains"; - public static string ItemDataBase_ItemDefinitions_458(params object[] objects) => string.Format(instance._ItemDataBase_ItemDefinitions_458, objects); - public string _ItemDataBase_ItemDefinitions_458 = "Decrease the cooldown of one ability by {0} second whenever you hit something with melee or ranged attack."; - public static string ItemDataBase_ItemDefinitions_459 => instance._ItemDataBase_ItemDefinitions_459; - public string _ItemDataBase_ItemDefinitions_459 = "Famine Hammer"; - public static string ItemDataBase_ItemDefinitions_460(params object[] objects) => string.Format(instance._ItemDataBase_ItemDefinitions_460, objects); - public string _ItemDataBase_ItemDefinitions_460 = "Chance to weaken enemies, causing them to take more damage from all attacks, is increased by {0}"; - public static string ItemDataBase_ItemDefinitions_461 => instance._ItemDataBase_ItemDefinitions_461; - public string _ItemDataBase_ItemDefinitions_461 = "Curse Hammer"; - public static string ItemDataBase_ItemDefinitions_462 => instance._ItemDataBase_ItemDefinitions_462; - public string _ItemDataBase_ItemDefinitions_462 = "Omnious Weapon"; - public static string ItemDataBase_ItemDefinitions_463(params object[] objects) => string.Format(instance._ItemDataBase_ItemDefinitions_463, objects); - public string _ItemDataBase_ItemDefinitions_463 = "Chance to weaken enemies, causing them to take more damage from all attacks, is increased by {0}"; - public static string ItemDataBase_ItemDefinitions_464 => instance._ItemDataBase_ItemDefinitions_464; - public string _ItemDataBase_ItemDefinitions_464 = "Smasher"; - public static string ItemDataBase_ItemDefinitions_465 => instance._ItemDataBase_ItemDefinitions_465; - public string _ItemDataBase_ItemDefinitions_465 = "Smash damage is increased tripled"; - public static string ItemDataBase_ItemDefinitions_466 => instance._ItemDataBase_ItemDefinitions_466; - public string _ItemDataBase_ItemDefinitions_466 = "Vampiric Band"; - public static string ItemDataBase_ItemDefinitions_467(params object[] objects) => string.Format(instance._ItemDataBase_ItemDefinitions_467, objects); - public string _ItemDataBase_ItemDefinitions_467 = "Gain {0} stamina on ranged and melee hit or double that amount on critical hits"; - public static string ItemDataBase_ItemDefinitions_468 => instance._ItemDataBase_ItemDefinitions_468; - public string _ItemDataBase_ItemDefinitions_468 = "Vampire Ring"; - public static string ItemDataBase_ItemDefinitions_469(params object[] objects) => string.Format(instance._ItemDataBase_ItemDefinitions_469, objects); - public string _ItemDataBase_ItemDefinitions_469 = "Gain {0} stamina on ranged and melee hit or double that amount on critical hits"; - public static string ItemDataBase_ItemDefinitions_470 => instance._ItemDataBase_ItemDefinitions_470; - public string _ItemDataBase_ItemDefinitions_470 = "Tricksters Scarf"; - public static string ItemDataBase_ItemDefinitions_471(params object[] objects) => string.Format(instance._ItemDataBase_ItemDefinitions_471, objects); - public string _ItemDataBase_ItemDefinitions_471 = "Magic arrow shoots {0} additional arrow."; - public static string ItemDataBase_ItemDefinitions_472 => instance._ItemDataBase_ItemDefinitions_472; - public string _ItemDataBase_ItemDefinitions_472 = "Magus' Necktie"; - public static string ItemDataBase_ItemDefinitions_473(params object[] objects) => string.Format(instance._ItemDataBase_ItemDefinitions_473, objects); - public string _ItemDataBase_ItemDefinitions_473 = "Magic arrow shoots {0} additional arrows."; - public static string ItemDataBase_ItemDefinitions_474 => instance._ItemDataBase_ItemDefinitions_474; - public string _ItemDataBase_ItemDefinitions_474 = "Discounted Knockoff Magic Quiver"; - public static string ItemDataBase_ItemDefinitions_475(params object[] objects) => string.Format(instance._ItemDataBase_ItemDefinitions_475, objects); - public string _ItemDataBase_ItemDefinitions_475 = "There's a {0} increased chance to not consume ammo when firing a projectile."; - public static string ItemDataBase_ItemDefinitions_476 => instance._ItemDataBase_ItemDefinitions_476; - public string _ItemDataBase_ItemDefinitions_476 = "Magic Quiver"; - public static string ItemDataBase_ItemDefinitions_477(params object[] objects) => string.Format(instance._ItemDataBase_ItemDefinitions_477, objects); - public string _ItemDataBase_ItemDefinitions_477 = "There's a {0} increased chance to not consume ammo when firing a projectile."; - public static string ItemDataBase_ItemDefinitions_478 => instance._ItemDataBase_ItemDefinitions_478; - public string _ItemDataBase_ItemDefinitions_478 = "Improved Magic Quiver"; - public static string ItemDataBase_ItemDefinitions_479(params object[] objects) => string.Format(instance._ItemDataBase_ItemDefinitions_479, objects); - public string _ItemDataBase_ItemDefinitions_479 = "There's a {0} increased chance to not consume ammo when firing a projectile."; - public static string ItemDataBase_ItemDefinitions_480 => instance._ItemDataBase_ItemDefinitions_480; - public string _ItemDataBase_ItemDefinitions_480 = "Factory Quiver"; - public static string ItemDataBase_ItemDefinitions_481(params object[] objects) => string.Format(instance._ItemDataBase_ItemDefinitions_481, objects); - public string _ItemDataBase_ItemDefinitions_481 = "There's a {0} increased chance to not consume ammo when firing a projectile."; - public static string ItemDataBase_ItemDefinitions_482 => instance._ItemDataBase_ItemDefinitions_482; - public string _ItemDataBase_ItemDefinitions_482 = "Enzyme STR/34"; - public static string ItemDataBase_ItemDefinitions_483 => instance._ItemDataBase_ItemDefinitions_483; - public string _ItemDataBase_ItemDefinitions_483 = "A substance which results in surprising changes to gear"; - public static string ItemDataBase_ItemDefinitions_484 => instance._ItemDataBase_ItemDefinitions_484; - public string _ItemDataBase_ItemDefinitions_484 = "Changes Vitality, Agility or Intelligence stat on an item to Strength or changes Ranged or Spell damage stat to Melee Damage"; - public static string ItemDataBase_ItemDefinitions_485 => instance._ItemDataBase_ItemDefinitions_485; - public string _ItemDataBase_ItemDefinitions_485 = "Enzyme INT/33"; - public static string ItemDataBase_ItemDefinitions_486 => instance._ItemDataBase_ItemDefinitions_486; - public string _ItemDataBase_ItemDefinitions_486 = "Changes Vitality, Agility or Strength stat on an item to Intelligence or changes Ranged or Melee damage stat to Spell Damage"; - public static string ItemDataBase_ItemDefinitions_487 => instance._ItemDataBase_ItemDefinitions_487; - public string _ItemDataBase_ItemDefinitions_487 = "Enzyme AGI/39"; - public static string ItemDataBase_ItemDefinitions_488 => instance._ItemDataBase_ItemDefinitions_488; - public string _ItemDataBase_ItemDefinitions_488 = "Changes Vitality, Intelligence or Strength stat on an item to Agility or changes Melee or Spell damage stat to Ranged Damage"; - public static string ItemDataBase_ItemDefinitions_489 => instance._ItemDataBase_ItemDefinitions_489; - public string _ItemDataBase_ItemDefinitions_489 = "Enzyme VIT/449"; - public static string ItemDataBase_ItemDefinitions_490 => instance._ItemDataBase_ItemDefinitions_490; - public string _ItemDataBase_ItemDefinitions_490 = "Changes Agility, Intelligence or Strength stat on an item to Vitality"; - public static string ItemDataBase_ItemDefinitions_491 => instance._ItemDataBase_ItemDefinitions_491; - public string _ItemDataBase_ItemDefinitions_491 = "Stomach Acid"; - public static string ItemDataBase_ItemDefinitions_492 => instance._ItemDataBase_ItemDefinitions_492; - public string _ItemDataBase_ItemDefinitions_492 = "Removes all stats with negative values from an item"; - public static string ItemDataBase_ItemDefinitions_493 => instance._ItemDataBase_ItemDefinitions_493; - public string _ItemDataBase_ItemDefinitions_493 = "Elite Stomach Acid"; - public static string ItemDataBase_ItemDefinitions_494 => instance._ItemDataBase_ItemDefinitions_494; - public string _ItemDataBase_ItemDefinitions_494 = "Changes negative stat values into positive values on an item"; - public static string ItemDataBase_ItemDefinitions_495 => instance._ItemDataBase_ItemDefinitions_495; - public string _ItemDataBase_ItemDefinitions_495 = "Crimson Solution"; - public static string ItemDataBase_ItemDefinitions_496 => instance._ItemDataBase_ItemDefinitions_496; - public string _ItemDataBase_ItemDefinitions_496 = "Upgrades item of any rarity to one of the same type but of Legendary rarity"; - public static string ItemDataBase_ItemDefinitions_497 => instance._ItemDataBase_ItemDefinitions_497; - public string _ItemDataBase_ItemDefinitions_497 = "Weak Armor Hardening Mixture"; - public static string ItemDataBase_ItemDefinitions_498 => instance._ItemDataBase_ItemDefinitions_498; - public string _ItemDataBase_ItemDefinitions_498 = "Adds Armor Stat to a piece of equipment if the item does not already have it"; - public static string ItemDataBase_ItemDefinitions_499 => instance._ItemDataBase_ItemDefinitions_499; - public string _ItemDataBase_ItemDefinitions_499 = "Upgraded Armor Hardening Mixture"; - public static string ItemDataBase_ItemDefinitions_500 => instance._ItemDataBase_ItemDefinitions_500; - public string _ItemDataBase_ItemDefinitions_500 = "Adds Damage Reduction Stat to a piece of equipment if the item does not already have it"; - public static string ItemDataBase_ItemDefinitions_501 => instance._ItemDataBase_ItemDefinitions_501; - public string _ItemDataBase_ItemDefinitions_501 = "Chaos Water"; - public static string ItemDataBase_ItemDefinitions_502 => instance._ItemDataBase_ItemDefinitions_502; - public string _ItemDataBase_ItemDefinitions_502 = "Rerolls all stats on an item of rarity no higher than orange"; - public static string ItemDataBase_ItemDefinitions_503 => instance._ItemDataBase_ItemDefinitions_503; - public string _ItemDataBase_ItemDefinitions_503 = "Upgraded Chaos Water"; - public static string ItemDataBase_ItemDefinitions_504 => instance._ItemDataBase_ItemDefinitions_504; - public string _ItemDataBase_ItemDefinitions_504 = "Rerolls all stats on an item of any rarity"; - public static string ItemDataBase_ItemDefinitions_505 => instance._ItemDataBase_ItemDefinitions_505; - public string _ItemDataBase_ItemDefinitions_505 = "Gun Blade"; - public static string ItemDataBase_ItemDefinitions_506(params object[] objects) => string.Format(instance._ItemDataBase_ItemDefinitions_506, objects); - public string _ItemDataBase_ItemDefinitions_506 = "Increases pistol damage by {0}"; - public static string ItemDataBase_ItemDefinitions_507 => instance._ItemDataBase_ItemDefinitions_507; - public string _ItemDataBase_ItemDefinitions_507 = "Sharpshooter's Axe"; - public static string ItemDataBase_ItemDefinitions_508(params object[] objects) => string.Format(instance._ItemDataBase_ItemDefinitions_508, objects); - public string _ItemDataBase_ItemDefinitions_508 = "Increases pistol headshot chance by {0} and pistol damage by {1}"; - public static string ItemDataBase_ItemDefinitions_509 => instance._ItemDataBase_ItemDefinitions_509; - public string _ItemDataBase_ItemDefinitions_509 = "Shield Blade"; - public static string ItemDataBase_ItemDefinitions_510 => instance._ItemDataBase_ItemDefinitions_510; - public string _ItemDataBase_ItemDefinitions_510 = "So large can be used as a shield"; - public static string ItemDataBase_ItemDefinitions_511 => instance._ItemDataBase_ItemDefinitions_511; - public string _ItemDataBase_ItemDefinitions_511 = "A normal human cannot lift this weapon."; - public static string ItemDataBase_ItemDefinitions_512 => instance._ItemDataBase_ItemDefinitions_512; - public string _ItemDataBase_ItemDefinitions_512 = "Blunt Blade for Bashing Skulls"; - public static string ItemDataBase_ItemDefinitions_513(params object[] objects) => string.Format(instance._ItemDataBase_ItemDefinitions_513, objects); - public string _ItemDataBase_ItemDefinitions_513 = "Bash damage debuff on enemies is increased by {0}"; - public static string ItemDataBase_ItemDefinitions_514 => instance._ItemDataBase_ItemDefinitions_514; - public string _ItemDataBase_ItemDefinitions_514 = "Madman's Legacy"; - public static string ItemDataBase_ItemDefinitions_515(params object[] objects) => string.Format(instance._ItemDataBase_ItemDefinitions_515, objects); - public string _ItemDataBase_ItemDefinitions_515 = "Frenzy damage per stack is increased by {0}"; - public static string ItemDataBase_ItemDefinitions_516 => instance._ItemDataBase_ItemDefinitions_516; - public string _ItemDataBase_ItemDefinitions_516 = "Buckler"; - public static string ItemDataBase_ItemDefinitions_517 => instance._ItemDataBase_ItemDefinitions_517; - public string _ItemDataBase_ItemDefinitions_517 = "Pyromancy Mask"; - public static string ItemDataBase_ItemDefinitions_518(params object[] objects) => string.Format(instance._ItemDataBase_ItemDefinitions_518, objects); - public string _ItemDataBase_ItemDefinitions_518 = "Ignited enemies burn for {0} longer."; - public static string ItemDataBase_ItemDefinitions_519 => instance._ItemDataBase_ItemDefinitions_519; - public string _ItemDataBase_ItemDefinitions_519 = "Ember Mask"; - public static string ItemDataBase_ItemDefinitions_520(params object[] objects) => string.Format(instance._ItemDataBase_ItemDefinitions_520, objects); - public string _ItemDataBase_ItemDefinitions_520 = "Ignited enemies burn for {0} longer and fire ticks thrice as fast."; - public static string ItemDataBase_ItemDefinitions_521 => instance._ItemDataBase_ItemDefinitions_521; - public string _ItemDataBase_ItemDefinitions_521 = "Flame Pauldrons"; - public static string ItemDataBase_ItemDefinitions_522(params object[] objects) => string.Format(instance._ItemDataBase_ItemDefinitions_522, objects); - public string _ItemDataBase_ItemDefinitions_522 = "Firebolt costs {0} additional energy to cast and its damage scaling is increased by {1}"; - public static string ItemDataBase_ItemDefinitions_523 => instance._ItemDataBase_ItemDefinitions_523; - public string _ItemDataBase_ItemDefinitions_523 = "Ancient Scroll"; - public static string ItemDataBase_ItemDefinitions_524 => instance._ItemDataBase_ItemDefinitions_524; - public string _ItemDataBase_ItemDefinitions_524 = "Guide on Tearing Spacetime"; - public static string ItemDataBase_ItemDefinitions_525 => instance._ItemDataBase_ItemDefinitions_525; - public string _ItemDataBase_ItemDefinitions_525 = "Blink creates an explosion at the exit point, and the damage of the explosion is increased by velocity and the radius is increased by the distance of blink"; - public static string ItemDataBase_ItemDefinitions_526 => instance._ItemDataBase_ItemDefinitions_526; - public string _ItemDataBase_ItemDefinitions_526 = "300th Spear"; - public static string ItemDataBase_ItemDefinitions_527 => instance._ItemDataBase_ItemDefinitions_527; - public string _ItemDataBase_ItemDefinitions_527 = "Stone Pauldrons"; - public static string ItemDataBase_ItemDefinitions_528(params object[] objects) => string.Format(instance._ItemDataBase_ItemDefinitions_528, objects); - public string _ItemDataBase_ItemDefinitions_528 = "All damage increased by {0}"; - public static string ItemDataBase_ItemDefinitions_529 => instance._ItemDataBase_ItemDefinitions_529; - public string _ItemDataBase_ItemDefinitions_529 = "Iron Shoulder Pads"; - public static string ItemDataBase_ItemDefinitions_530(params object[] objects) => string.Format(instance._ItemDataBase_ItemDefinitions_530, objects); - public string _ItemDataBase_ItemDefinitions_530 = "All damage increased by {0}"; - public static string ItemDataBase_ItemDefinitions_531 => instance._ItemDataBase_ItemDefinitions_531; - public string _ItemDataBase_ItemDefinitions_531 = "Steel Shoulder Pads"; - public static string ItemDataBase_ItemDefinitions_532(params object[] objects) => string.Format(instance._ItemDataBase_ItemDefinitions_532, objects); - public string _ItemDataBase_ItemDefinitions_532 = "All damage increased by {0}"; - public static string ItemDataBase_ItemDefinitions_533 => instance._ItemDataBase_ItemDefinitions_533; - public string _ItemDataBase_ItemDefinitions_533 = "Battle scarred Shoulder Pads"; - public static string ItemDataBase_ItemDefinitions_534(params object[] objects) => string.Format(instance._ItemDataBase_ItemDefinitions_534, objects); - public string _ItemDataBase_ItemDefinitions_534 = "All damage increased by {0}"; - public static string ItemDataBase_ItemDefinitions_535 => instance._ItemDataBase_ItemDefinitions_535; - public string _ItemDataBase_ItemDefinitions_535 = "Mystery Shoulder Pads"; - public static string ItemDataBase_ItemDefinitions_536(params object[] objects) => string.Format(instance._ItemDataBase_ItemDefinitions_536, objects); - public string _ItemDataBase_ItemDefinitions_536 = "All damage increased by {0}"; - public static string ItemDataBase_ItemDefinitions_537 => instance._ItemDataBase_ItemDefinitions_537; - public string _ItemDataBase_ItemDefinitions_537 = "Stone Shield"; - public static string ItemDataBase_ItemDefinitions_538 => instance._ItemDataBase_ItemDefinitions_538; - public string _ItemDataBase_ItemDefinitions_538 = "Iron Shield"; - public static string ItemDataBase_ItemDefinitions_539 => instance._ItemDataBase_ItemDefinitions_539; - public string _ItemDataBase_ItemDefinitions_539 = "Steel Tower Shield"; - public static string ItemDataBase_ItemDefinitions_540 => instance._ItemDataBase_ItemDefinitions_540; - public string _ItemDataBase_ItemDefinitions_540 = "Guardian"; - public static string ItemDataBase_ItemDefinitions_541 => instance._ItemDataBase_ItemDefinitions_541; - public string _ItemDataBase_ItemDefinitions_541 = "Mystery Shield"; - public static string ItemDataBase_ItemDefinitions_542 => instance._ItemDataBase_ItemDefinitions_542; - public string _ItemDataBase_ItemDefinitions_542 = "Light Boot"; - public static string ItemDataBase_ItemDefinitions_543 => instance._ItemDataBase_ItemDefinitions_543; - public string _ItemDataBase_ItemDefinitions_543 = "Iron Boots"; - public static string ItemDataBase_ItemDefinitions_544 => instance._ItemDataBase_ItemDefinitions_544; - public string _ItemDataBase_ItemDefinitions_544 = "Steel Boots"; - public static string ItemDataBase_ItemDefinitions_545 => instance._ItemDataBase_ItemDefinitions_545; - public string _ItemDataBase_ItemDefinitions_545 = "Threads"; - public static string ItemDataBase_ItemDefinitions_546 => instance._ItemDataBase_ItemDefinitions_546; - public string _ItemDataBase_ItemDefinitions_546 = "Mystery Boots"; - public static string ItemDataBase_ItemDefinitions_547 => instance._ItemDataBase_ItemDefinitions_547; - public string _ItemDataBase_ItemDefinitions_547 = "Wraps"; - public static string ItemDataBase_ItemDefinitions_548 => instance._ItemDataBase_ItemDefinitions_548; - public string _ItemDataBase_ItemDefinitions_548 = "Steel Gauntlet"; - public static string ItemDataBase_ItemDefinitions_549 => instance._ItemDataBase_ItemDefinitions_549; - public string _ItemDataBase_ItemDefinitions_549 = "Titanium Gauntlet"; - public static string ItemDataBase_ItemDefinitions_550 => instance._ItemDataBase_ItemDefinitions_550; - public string _ItemDataBase_ItemDefinitions_550 = "Mystery Gauntlet"; - public static string ItemDataBase_ItemDefinitions_551 => instance._ItemDataBase_ItemDefinitions_551; - public string _ItemDataBase_ItemDefinitions_551 = "Leather Tasset"; - public static string ItemDataBase_ItemDefinitions_552 => instance._ItemDataBase_ItemDefinitions_552; - public string _ItemDataBase_ItemDefinitions_552 = "Iron Tasset"; - public static string ItemDataBase_ItemDefinitions_553 => instance._ItemDataBase_ItemDefinitions_553; - public string _ItemDataBase_ItemDefinitions_553 = "Steel Tasset"; - public static string ItemDataBase_ItemDefinitions_554 => instance._ItemDataBase_ItemDefinitions_554; - public string _ItemDataBase_ItemDefinitions_554 = "Black Steel Leggins"; - public static string ItemDataBase_ItemDefinitions_555 => instance._ItemDataBase_ItemDefinitions_555; - public string _ItemDataBase_ItemDefinitions_555 = "Mystery Leggins"; - public static string ItemDataBase_ItemDefinitions_556 => instance._ItemDataBase_ItemDefinitions_556; - public string _ItemDataBase_ItemDefinitions_556 = "Leather Vest"; - public static string ItemDataBase_ItemDefinitions_557 => instance._ItemDataBase_ItemDefinitions_557; - public string _ItemDataBase_ItemDefinitions_557 = "Iron Breastplate"; - public static string ItemDataBase_ItemDefinitions_558 => instance._ItemDataBase_ItemDefinitions_558; - public string _ItemDataBase_ItemDefinitions_558 = "Steel Breastplate"; - public static string ItemDataBase_ItemDefinitions_559 => instance._ItemDataBase_ItemDefinitions_559; - public string _ItemDataBase_ItemDefinitions_559 = "Silver Armor"; - public static string ItemDataBase_ItemDefinitions_560 => instance._ItemDataBase_ItemDefinitions_560; - public string _ItemDataBase_ItemDefinitions_560 = "Mystery Breastplate"; - public static string ItemDataBase_ItemDefinitions_561 => instance._ItemDataBase_ItemDefinitions_561; - public string _ItemDataBase_ItemDefinitions_561 = "Cloth Band"; - public static string ItemDataBase_ItemDefinitions_562 => instance._ItemDataBase_ItemDefinitions_562; - public string _ItemDataBase_ItemDefinitions_562 = "Iron Wristguard"; - public static string ItemDataBase_ItemDefinitions_563 => instance._ItemDataBase_ItemDefinitions_563; - public string _ItemDataBase_ItemDefinitions_563 = "Steel Wristguard"; - public static string ItemDataBase_ItemDefinitions_564 => instance._ItemDataBase_ItemDefinitions_564; - public string _ItemDataBase_ItemDefinitions_564 = "Baron Wristguards"; - public static string ItemDataBase_ItemDefinitions_565 => instance._ItemDataBase_ItemDefinitions_565; - public string _ItemDataBase_ItemDefinitions_565 = "Mystery Wristguards"; - public static string ItemDataBase_ItemDefinitions_566 => instance._ItemDataBase_ItemDefinitions_566; - public string _ItemDataBase_ItemDefinitions_566 = "Iron Helmet"; - public static string ItemDataBase_ItemDefinitions_567 => instance._ItemDataBase_ItemDefinitions_567; - public string _ItemDataBase_ItemDefinitions_567 = "Steel Helmet"; - public static string ItemDataBase_ItemDefinitions_568 => instance._ItemDataBase_ItemDefinitions_568; - public string _ItemDataBase_ItemDefinitions_568 = "Armored Hood"; - public static string ItemDataBase_ItemDefinitions_569 => instance._ItemDataBase_ItemDefinitions_569; - public string _ItemDataBase_ItemDefinitions_569 = "Mystery Helmet"; - public static string ItemDataBase_ItemDefinitions_570 => instance._ItemDataBase_ItemDefinitions_570; - public string _ItemDataBase_ItemDefinitions_570 = "Yorium's Gaze"; - public static string ItemDataBase_ItemDefinitions_571(params object[] objects) => string.Format(instance._ItemDataBase_ItemDefinitions_571, objects); - public string _ItemDataBase_ItemDefinitions_571 = "SET PIECE. Melee weapon range is increased by {0}, attack cost in stamina is halved."; - public static string ItemDataBase_ItemDefinitions_572(params object[] objects) => string.Format(instance._ItemDataBase_ItemDefinitions_572, objects); - public string _ItemDataBase_ItemDefinitions_572 = "Set Piece:\n2 Pieces- Berserk does not apply exhaustion when it ends\n3 Pieces - Berserk duration is increased by {0} seconds\n4 Pieces - Each second of berserk being in effect increases damage by {1}.\n5 Pieces - For the first {2} seconds of Berserk attack speed increases by {3} per second, and lasts till the end of the spell's duration."; - public static string ItemDataBase_ItemDefinitions_573 => instance._ItemDataBase_ItemDefinitions_573; - public string _ItemDataBase_ItemDefinitions_573 = "Yorium's Ruthlessness"; - public static string ItemDataBase_ItemDefinitions_574 => instance._ItemDataBase_ItemDefinitions_574; - public string _ItemDataBase_ItemDefinitions_574 = "Yorium's Burden"; - public static string ItemDataBase_ItemDefinitions_575 => instance._ItemDataBase_ItemDefinitions_575; - public string _ItemDataBase_ItemDefinitions_575 = "Yorium's Resolve"; - public static string ItemDataBase_ItemDefinitions_576 => instance._ItemDataBase_ItemDefinitions_576; - public string _ItemDataBase_ItemDefinitions_576 = "Atomic Augmentation"; - public static string ItemDataBase_ItemDefinitions_577 => instance._ItemDataBase_ItemDefinitions_577; - public string _ItemDataBase_ItemDefinitions_577 = "Yorium's Assault"; - public static string ItemDataBase_ItemDefinitions_578 => instance._ItemDataBase_ItemDefinitions_578; - public string _ItemDataBase_ItemDefinitions_578 = "Undying Promise"; - public static string ItemDataBase_ItemDefinitions_579(params object[] objects) => string.Format(instance._ItemDataBase_ItemDefinitions_579, objects); - public string _ItemDataBase_ItemDefinitions_579 = "Resist lethal damage on a {0} minute cooldown"; - public static string ItemDataBase_ItemDefinitions_581(params object[] objects) => string.Format(instance._ItemDataBase_ItemDefinitions_581, objects); - public string _ItemDataBase_ItemDefinitions_581 = "Snap freeze damage scaling is increased by {0} and the slow duration is increased by {1} seconds"; - public static string ItemDataBase_ItemDefinitions_582 => instance._ItemDataBase_ItemDefinitions_582; - public string _ItemDataBase_ItemDefinitions_582 = "If equipped on a weapon, increases ranged damage by "; - public static string ItemDataBase_ItemDefinitions_583 => instance._ItemDataBase_ItemDefinitions_583; - public string _ItemDataBase_ItemDefinitions_583 = "If equipped on boots, increases movement speed by "; - public static string ItemDataBase_ItemDefinitions_584 => instance._ItemDataBase_ItemDefinitions_584; - public string _ItemDataBase_ItemDefinitions_584 = "If equipped on a helmet, increases critical hit chance by "; - public static string ItemDataBase_ItemDefinitions_585 => instance._ItemDataBase_ItemDefinitions_585; - public string _ItemDataBase_ItemDefinitions_585 = "If equipped on accessories, increases ranged armor piercing by "; - public static string ItemDataBase_ItemDefinitions_586 => instance._ItemDataBase_ItemDefinitions_586; - public string _ItemDataBase_ItemDefinitions_586 = "If equipped in other slots, increases agility by "; - public static string ItemDataBase_ItemDefinitions_587 => instance._ItemDataBase_ItemDefinitions_587; - public string _ItemDataBase_ItemDefinitions_587 = "If equipped on a weapon, increases melee damage by "; - public static string ItemDataBase_ItemDefinitions_588 => instance._ItemDataBase_ItemDefinitions_588; - public string _ItemDataBase_ItemDefinitions_588 = "If equipped on boots, decreases damage taken by "; - public static string ItemDataBase_ItemDefinitions_589 => instance._ItemDataBase_ItemDefinitions_589; - public string _ItemDataBase_ItemDefinitions_589 = "If equipped on a helmet, increases attack speed by "; - public static string ItemDataBase_ItemDefinitions_590 => instance._ItemDataBase_ItemDefinitions_590; - public string _ItemDataBase_ItemDefinitions_590 = "If equipped on accessories, increases melee armor piercing by "; - public static string ItemDataBase_ItemDefinitions_591 => instance._ItemDataBase_ItemDefinitions_591; - public string _ItemDataBase_ItemDefinitions_591 = "If equipped in other slots, increases strength by "; - public static string ItemDataBase_ItemDefinitions_592 => instance._ItemDataBase_ItemDefinitions_592; - public string _ItemDataBase_ItemDefinitions_592 = "If equipped on a weapon, increases magic damage by "; - public static string ItemDataBase_ItemDefinitions_593 => instance._ItemDataBase_ItemDefinitions_593; - public string _ItemDataBase_ItemDefinitions_593 = "If equipped on boots, decreases spell cost by "; - public static string ItemDataBase_ItemDefinitions_594 => instance._ItemDataBase_ItemDefinitions_594; - public string _ItemDataBase_ItemDefinitions_594 = "If equipped on a helmet, decreases spell cooldown by "; - public static string ItemDataBase_ItemDefinitions_595 => instance._ItemDataBase_ItemDefinitions_595; - public string _ItemDataBase_ItemDefinitions_595 = "If equipped on accessories, increases energy on hit by "; - public static string ItemDataBase_ItemDefinitions_596 => instance._ItemDataBase_ItemDefinitions_596; - public string _ItemDataBase_ItemDefinitions_596 = "If equipped in other slots, increases intelligence by "; - public static string ItemDataBase_ItemDefinitions_597 => instance._ItemDataBase_ItemDefinitions_597; - public string _ItemDataBase_ItemDefinitions_597 = "If equipped on a weapon, increases all healing by "; - public static string ItemDataBase_ItemDefinitions_598 => instance._ItemDataBase_ItemDefinitions_598; - public string _ItemDataBase_ItemDefinitions_598 = "If equipped on boots, increases magic find by "; - public static string ItemDataBase_ItemDefinitions_599 => instance._ItemDataBase_ItemDefinitions_599; - public string _ItemDataBase_ItemDefinitions_599 = "If equipped on a helmet, increases experience gained by "; - public static string ItemDataBase_ItemDefinitions_600 => instance._ItemDataBase_ItemDefinitions_600; - public string _ItemDataBase_ItemDefinitions_600 = "If equipped on accessories, increases life per second by "; - public static string ItemDataBase_ItemDefinitions_601 => instance._ItemDataBase_ItemDefinitions_601; - public string _ItemDataBase_ItemDefinitions_601 = "If equipped in other slots, increases vitality by "; - public static string ItemDataBase_ItemDefinitions_602 => instance._ItemDataBase_ItemDefinitions_602; - public string _ItemDataBase_ItemDefinitions_602 = "If equipped on a weapon, increases crit damage by "; - public static string ItemDataBase_ItemDefinitions_603 => instance._ItemDataBase_ItemDefinitions_603; - public string _ItemDataBase_ItemDefinitions_603 = "If equipped on boots, increases resistance to magic by "; - public static string ItemDataBase_ItemDefinitions_604 => instance._ItemDataBase_ItemDefinitions_604; - public string _ItemDataBase_ItemDefinitions_604 = "If equipped on a helmet, increases health by "; - public static string ItemDataBase_ItemDefinitions_605 => instance._ItemDataBase_ItemDefinitions_605; - public string _ItemDataBase_ItemDefinitions_605 = "If equipped on accessories, increases thorns by "; - public static string ItemDataBase_ItemDefinitions_606 => instance._ItemDataBase_ItemDefinitions_606; - public string _ItemDataBase_ItemDefinitions_606 = "If equipped in other slots, increases armor by "; - public static string ItemDataBase_ItemDefinitions_607 => instance._ItemDataBase_ItemDefinitions_607; - public string _ItemDataBase_ItemDefinitions_607 = "Firebolt deals increased damage"; - public static string ItemDataBase_ItemDefinitions_608 => instance._ItemDataBase_ItemDefinitions_608; - public string _ItemDataBase_ItemDefinitions_608 = "\nWarcry gives damage resistance."; - public static string ItemDataBase_ItemDefinitions_609 => instance._ItemDataBase_ItemDefinitions_609; - public string _ItemDataBase_ItemDefinitions_609 = "Devil Dancers"; - public static string ItemDataBase_ItemDefinitions_610 => instance._ItemDataBase_ItemDefinitions_610; - public string _ItemDataBase_ItemDefinitions_610 = "When consuming frenzy stacks, gain 5% crit chance for 10 seconds for every stack consumed. Gain 3% attack speed per frenzy stack active."; - public static string ItemDataBase_ItemDefinitions_611 => instance._ItemDataBase_ItemDefinitions_611; - public string _ItemDataBase_ItemDefinitions_611 = "Call of the Ancients"; - public static string ItemDataBase_ItemDefinitions_612(params object[] objects) => string.Format(instance._ItemDataBase_ItemDefinitions_612, objects); - public string _ItemDataBase_ItemDefinitions_612 = "Berserk increases all damage by additional {0}"; - public static string ItemDataBase_ItemDefinitions_613 => instance._ItemDataBase_ItemDefinitions_613; - public string _ItemDataBase_ItemDefinitions_613 = "Berserker's Wrath"; - public static string ItemDataBase_ItemDefinitions_614 => instance._ItemDataBase_ItemDefinitions_614; - public string _ItemDataBase_ItemDefinitions_614 = "Viking Amulet"; - public static string ItemDataBase_ItemDefinitions_615(params object[] objects) => string.Format(instance._ItemDataBase_ItemDefinitions_615, objects); - public string _ItemDataBase_ItemDefinitions_615 = "Increases attack and movement speed during berserk by {0}"; - public static string ItemDataBase_ItemDefinitions_616 => instance._ItemDataBase_ItemDefinitions_616; - public string _ItemDataBase_ItemDefinitions_616 = "Pedant of Skallagrim"; - public static string ItemDataBase_ItemDefinitions_617 => instance._ItemDataBase_ItemDefinitions_617; - public string _ItemDataBase_ItemDefinitions_617 = "Wristguards of The Sanctuary Keeper"; - public static string ItemDataBase_ItemDefinitions_618(params object[] objects) => string.Format(instance._ItemDataBase_ItemDefinitions_618, objects); - public string _ItemDataBase_ItemDefinitions_618 = "Allies inside Sanctuary have {0} increased cooldown rate and attacks use {1} less resources"; + //ItemDatabase_ItemDefinitions + public static string ItemDatabase_ItemDefinitions_1 => instance._ItemDatabase_ItemDefinitions_1; + public string _ItemDatabase_ItemDefinitions_1 = "Broken Flip-Flops"; + public static string ItemDatabase_ItemDefinitions_2 => instance._ItemDatabase_ItemDefinitions_2; + public string _ItemDatabase_ItemDefinitions_2 = "A pair of damaged shoes. Judging by their condition, i can imagine what happened to their owner."; + public static string ItemDatabase_ItemDefinitions_3 => instance._ItemDatabase_ItemDefinitions_3; + public string _ItemDatabase_ItemDefinitions_3 = "Worn by one of the passengers of the plane that Eric also flew in."; + public static string ItemDatabase_ItemDefinitions_4 => instance._ItemDatabase_ItemDefinitions_4; + public string _ItemDatabase_ItemDefinitions_4 = "Old Boots"; + public static string ItemDatabase_ItemDefinitions_5 => instance._ItemDatabase_ItemDefinitions_5; + public string _ItemDatabase_ItemDefinitions_5 = "A pair of old boots. They must have been lying here for ages."; + public static string ItemDatabase_ItemDefinitions_6 => instance._ItemDatabase_ItemDefinitions_6; + public string _ItemDatabase_ItemDefinitions_6 = "Found on the Peninsula, but judging by their condition, they belong neither to a plane passenger nor a cannibal."; + public static string ItemDatabase_ItemDefinitions_7 => instance._ItemDatabase_ItemDefinitions_7; + public string _ItemDatabase_ItemDefinitions_7 = "Damaged Leather Boots"; + public static string ItemDatabase_ItemDefinitions_8 => instance._ItemDatabase_ItemDefinitions_8; + public string _ItemDatabase_ItemDefinitions_8 = "A pair of leather boots. They look good and have only some scratches."; + public static string ItemDatabase_ItemDefinitions_9 => instance._ItemDatabase_ItemDefinitions_9; + public string _ItemDatabase_ItemDefinitions_9 = "They arrived to the Peninsula the same way Eric did. Since they were in a baggage, they avoided a lot of damage."; + public static string ItemDatabase_ItemDefinitions_10 => instance._ItemDatabase_ItemDefinitions_10; + public string _ItemDatabase_ItemDefinitions_10 = "Sturdy Leather Boots"; + public static string ItemDatabase_ItemDefinitions_11 => instance._ItemDatabase_ItemDefinitions_11; + public string _ItemDatabase_ItemDefinitions_11 = "A pair of leather boots. They are in a very good condition."; + public static string ItemDatabase_ItemDefinitions_12 => instance._ItemDatabase_ItemDefinitions_12; + public string _ItemDatabase_ItemDefinitions_12 = "They arrived to the Peninsula the same way Eric did. Eric found them undamaged in their original box. They still had a pricetag - $419,99."; + public static string ItemDatabase_ItemDefinitions_13 => instance._ItemDatabase_ItemDefinitions_13; + public string _ItemDatabase_ItemDefinitions_13 = "Damaged Army Boots"; + public static string ItemDatabase_ItemDefinitions_14 => instance._ItemDatabase_ItemDefinitions_14; + public string _ItemDatabase_ItemDefinitions_14 = "Sturdy, hard, resistant but damaged boots."; + public static string ItemDatabase_ItemDefinitions_15 => instance._ItemDatabase_ItemDefinitions_15; + public string _ItemDatabase_ItemDefinitions_15 = "They look modern, almost too modern for everything here."; + public static string ItemDatabase_ItemDefinitions_16 => instance._ItemDatabase_ItemDefinitions_16; + public string _ItemDatabase_ItemDefinitions_16 = "Army Boots"; + public static string ItemDatabase_ItemDefinitions_17 => instance._ItemDatabase_ItemDefinitions_17; + public string _ItemDatabase_ItemDefinitions_17 = "Sturdy, hard, resistant boots."; + public static string ItemDatabase_ItemDefinitions_18 => instance._ItemDatabase_ItemDefinitions_18; + public string _ItemDatabase_ItemDefinitions_18 = "Armsy Skin Footwear"; + public static string ItemDatabase_ItemDefinitions_19 => instance._ItemDatabase_ItemDefinitions_19; + public string _ItemDatabase_ItemDefinitions_19 = "Severed armsy legs, with all of their insides removed. All thats left is dried mutated skin."; + public static string ItemDatabase_ItemDefinitions_20 => instance._ItemDatabase_ItemDefinitions_20; + public string _ItemDatabase_ItemDefinitions_20 = "Armsy, the second heaviest of the mutants needs very resistant skin. It often drags its legs on the ground when it moves. The skin on their legs grew very thick, and has bone tissue mixed with skin tissue."; + public static string ItemDatabase_ItemDefinitions_21 => instance._ItemDatabase_ItemDefinitions_21; + public string _ItemDatabase_ItemDefinitions_21 = "Finger Warmer"; + public static string ItemDatabase_ItemDefinitions_22 => instance._ItemDatabase_ItemDefinitions_22; + public string _ItemDatabase_ItemDefinitions_22 = "A little glove to keep your fingers warm and cozy."; + public static string ItemDatabase_ItemDefinitions_23 => instance._ItemDatabase_ItemDefinitions_23; + public string _ItemDatabase_ItemDefinitions_23 = "Made of wool."; + public static string ItemDatabase_ItemDefinitions_24 => instance._ItemDatabase_ItemDefinitions_24; + public string _ItemDatabase_ItemDefinitions_24 = "Thick Rubber Glove"; + public static string ItemDatabase_ItemDefinitions_25 => instance._ItemDatabase_ItemDefinitions_25; + public string _ItemDatabase_ItemDefinitions_25 = "A glove that helps get a better grip."; + public static string ItemDatabase_ItemDefinitions_26 => instance._ItemDatabase_ItemDefinitions_26; + public string _ItemDatabase_ItemDefinitions_26 = "Tribal Glove"; + public static string ItemDatabase_ItemDefinitions_27 => instance._ItemDatabase_ItemDefinitions_27; + public string _ItemDatabase_ItemDefinitions_27 = "Offers medicore protection."; + public static string ItemDatabase_ItemDefinitions_28 => instance._ItemDatabase_ItemDefinitions_28; + public string _ItemDatabase_ItemDefinitions_28 = "Glove made out of thin bones, some may possibly be from a human."; + public static string ItemDatabase_ItemDefinitions_29 => instance._ItemDatabase_ItemDefinitions_29; + public string _ItemDatabase_ItemDefinitions_29 = "Tribe Leader Glove"; + public static string ItemDatabase_ItemDefinitions_30 => instance._ItemDatabase_ItemDefinitions_30; + public string _ItemDatabase_ItemDefinitions_30 = "A glove that offers little protection but a lot of offensive stats."; + public static string ItemDatabase_ItemDefinitions_31 => instance._ItemDatabase_ItemDefinitions_31; + public string _ItemDatabase_ItemDefinitions_31 = "A glove made of bones, some have engravings of crosses."; + public static string ItemDatabase_ItemDefinitions_32 => instance._ItemDatabase_ItemDefinitions_32; + public string _ItemDatabase_ItemDefinitions_32 = "Worn Shorts"; + public static string ItemDatabase_ItemDefinitions_33 => instance._ItemDatabase_ItemDefinitions_33; + public string _ItemDatabase_ItemDefinitions_33 = "Some protection for legs."; + public static string ItemDatabase_ItemDefinitions_34 => instance._ItemDatabase_ItemDefinitions_34; + public string _ItemDatabase_ItemDefinitions_34 = "Short, made out of cheap thin fabric, and on top of that they are damaged. But its better than nothing."; + public static string ItemDatabase_ItemDefinitions_35 => instance._ItemDatabase_ItemDefinitions_35; + public string _ItemDatabase_ItemDefinitions_35 = "Cargo Shorts"; + public static string ItemDatabase_ItemDefinitions_36 => instance._ItemDatabase_ItemDefinitions_36; + public string _ItemDatabase_ItemDefinitions_36 = "No protection at all but they allow to carry more items."; + public static string ItemDatabase_ItemDefinitions_37 => instance._ItemDatabase_ItemDefinitions_37; + public string _ItemDatabase_ItemDefinitions_37 = "They are ugly as hell tho"; + public static string ItemDatabase_ItemDefinitions_38 => instance._ItemDatabase_ItemDefinitions_38; + public string _ItemDatabase_ItemDefinitions_38 = "Passenger's Jacket"; + public static string ItemDatabase_ItemDefinitions_39 => instance._ItemDatabase_ItemDefinitions_39; + public string _ItemDatabase_ItemDefinitions_39 = "It's a little torn. "; + public static string ItemDatabase_ItemDefinitions_40 => instance._ItemDatabase_ItemDefinitions_40; + public string _ItemDatabase_ItemDefinitions_40 = "This jacket was worn by Preston A. the 34th passenger on the plane. Eric talked to him at the airport. Guy was odd, and now he's dead."; + public static string ItemDatabase_ItemDefinitions_41 => instance._ItemDatabase_ItemDefinitions_41; + public string _ItemDatabase_ItemDefinitions_41 = "Leather Jacket"; + public static string ItemDatabase_ItemDefinitions_42 => instance._ItemDatabase_ItemDefinitions_42; + public string _ItemDatabase_ItemDefinitions_42 = "Offers little protection"; + public static string ItemDatabase_ItemDefinitions_43 => instance._ItemDatabase_ItemDefinitions_43; + public string _ItemDatabase_ItemDefinitions_43 = "This jacket was in a baggage of one of the plane passengers"; + public static string ItemDatabase_ItemDefinitions_44 => instance._ItemDatabase_ItemDefinitions_44; + public string _ItemDatabase_ItemDefinitions_44 = "Boar Skin Armor"; + public static string ItemDatabase_ItemDefinitions_45 => instance._ItemDatabase_ItemDefinitions_45; + public string _ItemDatabase_ItemDefinitions_45 = "It's made from a skin of a huge individual. It's heavy and thick, and surely can protect from attacks of weaker enemies."; + public static string ItemDatabase_ItemDefinitions_46 => instance._ItemDatabase_ItemDefinitions_46; + public string _ItemDatabase_ItemDefinitions_46 = "Boar, one of the animals on the peninsula, is rather rare and it's skin is very durable."; + public static string ItemDatabase_ItemDefinitions_47 => instance._ItemDatabase_ItemDefinitions_47; + public string _ItemDatabase_ItemDefinitions_47 = "Crocodile Skin Armor"; + public static string ItemDatabase_ItemDefinitions_48 => instance._ItemDatabase_ItemDefinitions_48; + public string _ItemDatabase_ItemDefinitions_48 = "Plate armour"; + public static string ItemDatabase_ItemDefinitions_49 => instance._ItemDatabase_ItemDefinitions_49; + public string _ItemDatabase_ItemDefinitions_49 = "Bear Skin Armor"; + public static string ItemDatabase_ItemDefinitions_50 => instance._ItemDatabase_ItemDefinitions_50; + public string _ItemDatabase_ItemDefinitions_50 = "Archer's Gear"; + public static string ItemDatabase_ItemDefinitions_51 => instance._ItemDatabase_ItemDefinitions_51; + public string _ItemDatabase_ItemDefinitions_51 = "Hazard's Gear"; + public static string ItemDatabase_ItemDefinitions_52 => instance._ItemDatabase_ItemDefinitions_52; + public string _ItemDatabase_ItemDefinitions_52 = "Mysterious robe"; + public static string ItemDatabase_ItemDefinitions_53 => instance._ItemDatabase_ItemDefinitions_53; + public string _ItemDatabase_ItemDefinitions_53 = "Magic flows through the entirety of this object. It's made out of unknown material"; + public static string ItemDatabase_ItemDefinitions_54 => instance._ItemDatabase_ItemDefinitions_54; + public string _ItemDatabase_ItemDefinitions_54 = "Robe looks like it was created yesterday, but its older than the oldest of mankinds' civilizations. Simply looking at it sends chills down the spine."; + public static string ItemDatabase_ItemDefinitions_55 => instance._ItemDatabase_ItemDefinitions_55; + public string _ItemDatabase_ItemDefinitions_55 = "Empowers cataclysm. The vortex turns blue, damage is increased, freezes enemies "; + public static string ItemDatabase_ItemDefinitions_56 => instance._ItemDatabase_ItemDefinitions_56; + public string _ItemDatabase_ItemDefinitions_56 = "Rusty Longsword"; + public static string ItemDatabase_ItemDefinitions_57 => instance._ItemDatabase_ItemDefinitions_57; + public string _ItemDatabase_ItemDefinitions_57 = "A long, very heavy sword. Edge got dull over time. Still, it's in a condition that allows me to slice some enemies in half."; + public static string ItemDatabase_ItemDefinitions_58 => instance._ItemDatabase_ItemDefinitions_58; + public string _ItemDatabase_ItemDefinitions_58 = "The sword appears to be from medieval ages, through it's not. It was made a lot later. It never was used as a weapon in battles, because it was merely a decoration."; + public static string ItemDatabase_ItemDefinitions_59 => instance._ItemDatabase_ItemDefinitions_59; + public string _ItemDatabase_ItemDefinitions_59 = "Longsword"; + public static string ItemDatabase_ItemDefinitions_60 => instance._ItemDatabase_ItemDefinitions_60; + public string _ItemDatabase_ItemDefinitions_60 = "Sharp and long"; + public static string ItemDatabase_ItemDefinitions_61 => instance._ItemDatabase_ItemDefinitions_61; + public string _ItemDatabase_ItemDefinitions_61 = "The sword is in perfect contidion."; + public static string ItemDatabase_ItemDefinitions_62 => instance._ItemDatabase_ItemDefinitions_62; + public string _ItemDatabase_ItemDefinitions_62 = "Full Metal Sword"; + public static string ItemDatabase_ItemDefinitions_63 => instance._ItemDatabase_ItemDefinitions_63; + public string _ItemDatabase_ItemDefinitions_63 = "It's sooo big..."; + public static string ItemDatabase_ItemDefinitions_64 => instance._ItemDatabase_ItemDefinitions_64; + public string _ItemDatabase_ItemDefinitions_64 = "A normal human cannot lift this."; + public static string ItemDatabase_ItemDefinitions_65 => instance._ItemDatabase_ItemDefinitions_65; + public string _ItemDatabase_ItemDefinitions_65 = "The Leech"; + public static string ItemDatabase_ItemDefinitions_66 => instance._ItemDatabase_ItemDefinitions_66; + public string _ItemDatabase_ItemDefinitions_66 = "Hey where did my health g- oh it's back..."; + public static string ItemDatabase_ItemDefinitions_67 => instance._ItemDatabase_ItemDefinitions_67; + public string _ItemDatabase_ItemDefinitions_67 = "Smokey's Sacred Quiver"; + public static string ItemDatabase_ItemDefinitions_68 => instance._ItemDatabase_ItemDefinitions_68; + public string _ItemDatabase_ItemDefinitions_68 = "SmokeyTheBear died because he never used this item."; + public static string ItemDatabase_ItemDefinitions_69 => instance._ItemDatabase_ItemDefinitions_69; + public string _ItemDatabase_ItemDefinitions_69 = "Smokey was the friend of allmighty Hazard, who can materialize any kind of weapon at the snap of his fingers. Hazard remebered Smokey's favourite playstyle and he gave him this as a gift to purge the sh** out of mutants."; + public static string ItemDatabase_ItemDefinitions_70(params object[] objects) => string.Format(instance._ItemDatabase_ItemDefinitions_70, objects); + public string _ItemDatabase_ItemDefinitions_70 = "Crossbows operate at {0} speed and deal {1} increased damage"; + public static string ItemDatabase_ItemDefinitions_71 => instance._ItemDatabase_ItemDefinitions_71; + public string _ItemDatabase_ItemDefinitions_71 = "Broken shield"; + public static string ItemDatabase_ItemDefinitions_72 => instance._ItemDatabase_ItemDefinitions_72; + public string _ItemDatabase_ItemDefinitions_72 = "Tower Shield"; + public static string ItemDatabase_ItemDefinitions_73 => instance._ItemDatabase_ItemDefinitions_73; + public string _ItemDatabase_ItemDefinitions_73 = "Broken Leather Shoulder Armor"; + public static string ItemDatabase_ItemDefinitions_74 => instance._ItemDatabase_ItemDefinitions_74; + public string _ItemDatabase_ItemDefinitions_74 = "Leather Shoulder Armor"; + public static string ItemDatabase_ItemDefinitions_75 => instance._ItemDatabase_ItemDefinitions_75; + public string _ItemDatabase_ItemDefinitions_75 = "Phase Pauldrons"; + public static string ItemDatabase_ItemDefinitions_76 => instance._ItemDatabase_ItemDefinitions_76; + public string _ItemDatabase_ItemDefinitions_76 = "The distance of blink is increased by {} meters, and blink now hits everything that you teleported through"; + public static string ItemDatabase_ItemDefinitions_77 => instance._ItemDatabase_ItemDefinitions_77; + public string _ItemDatabase_ItemDefinitions_77 = "MAGA Cap"; + public static string ItemDatabase_ItemDefinitions_78 => instance._ItemDatabase_ItemDefinitions_78; + public string _ItemDatabase_ItemDefinitions_78 = "Wearing this item channels the power of D.Trump to you"; + public static string ItemDatabase_ItemDefinitions_79 => instance._ItemDatabase_ItemDefinitions_79; + public string _ItemDatabase_ItemDefinitions_79 = "... or does it?"; + public static string ItemDatabase_ItemDefinitions_80 => instance._ItemDatabase_ItemDefinitions_80; + public string _ItemDatabase_ItemDefinitions_80 = "Hubble's Vision"; + public static string ItemDatabase_ItemDefinitions_81 => instance._ItemDatabase_ItemDefinitions_81; + public string _ItemDatabase_ItemDefinitions_81 = "Wearing this item empowers your black hole spell"; + public static string ItemDatabase_ItemDefinitions_82 => instance._ItemDatabase_ItemDefinitions_82; + public string _ItemDatabase_ItemDefinitions_82 = "Man, fuck gravity."; + public static string ItemDatabase_ItemDefinitions_83 => instance._ItemDatabase_ItemDefinitions_83; + public string _ItemDatabase_ItemDefinitions_83 = "Broken Loop"; + public static string ItemDatabase_ItemDefinitions_84 => instance._ItemDatabase_ItemDefinitions_84; + public string _ItemDatabase_ItemDefinitions_84 = "Loop"; + public static string ItemDatabase_ItemDefinitions_85 => instance._ItemDatabase_ItemDefinitions_85; + public string _ItemDatabase_ItemDefinitions_85 = "Toxic Ring"; + public static string ItemDatabase_ItemDefinitions_86 => instance._ItemDatabase_ItemDefinitions_86; + public string _ItemDatabase_ItemDefinitions_86 = " comment was about to bring down upon you, maybe you would have held your fucking tongue. But you couldn't, you didn't, and now you're paying the price, you goddamn idiot. I will shit fury all over you and you will drown in it. You're fucking dead, kiddo."; + public static string ItemDatabase_ItemDefinitions_87 => instance._ItemDatabase_ItemDefinitions_87; + public string _ItemDatabase_ItemDefinitions_87 = "What the fuck did you just fucking say about me, you little bitch? I'll have you know I graduated top of my class in the Navy Seals, and I've been involved in numerous secret raids on Al-Quaeda, and I have over 300 confirmed kills. I am trained in gorilla warfare and I'm the top sniper in the entire US armed forces. You are nothing to me but just another target. I will wipe you the fuck out with precision the likes of which has never been seen before on this Earth, mark my fucking words. You think you can get away with saying that shit to me over the Internet? Think again, fucker. As we speak I am contacting my secret network of spies across the USA and your IP is being traced right now so you better prepare for the storm, maggot. The storm that wipes out the pathetic little thing you call your life. You're fucking dead, kid. I can be anywhere, anytime, and I can kill you in over seven hundred ways, and that's just with my bare hands. Not only am I extensively trained in unarmed combat, but I have access to the entire arsenal of the United States Marine Corps and I will use it to its full extent to wipe your miserable ass off the face of the continent, you little shit. If only you could have known what unholy retribution your little \"clever\" comment was about to bring down upon you, maybe you would have held your fucking tongue. But you couldn't, you didn't, and now you're paying the price, you goddamn idiot. I will shit fury all over you and you will drown in it. You're fucking dead, kiddo."; + public static string ItemDatabase_ItemDefinitions_88 => instance._ItemDatabase_ItemDefinitions_88; + public string _ItemDatabase_ItemDefinitions_88 = "Scarf"; + public static string ItemDatabase_ItemDefinitions_89 => instance._ItemDatabase_ItemDefinitions_89; + public string _ItemDatabase_ItemDefinitions_89 = "Damaged Bracer"; + public static string ItemDatabase_ItemDefinitions_90 => instance._ItemDatabase_ItemDefinitions_90; + public string _ItemDatabase_ItemDefinitions_90 = "Worn Bracer"; + public static string ItemDatabase_ItemDefinitions_91 => instance._ItemDatabase_ItemDefinitions_91; + public string _ItemDatabase_ItemDefinitions_91 = "Leather Bracer"; + public static string ItemDatabase_ItemDefinitions_92 => instance._ItemDatabase_ItemDefinitions_92; + public string _ItemDatabase_ItemDefinitions_92 = "Greater Mutated Heart"; + public static string ItemDatabase_ItemDefinitions_93 => instance._ItemDatabase_ItemDefinitions_93; + public string _ItemDatabase_ItemDefinitions_93 = "Can be consumed by right clicking it"; + public static string ItemDatabase_ItemDefinitions_94 => instance._ItemDatabase_ItemDefinitions_94; + public string _ItemDatabase_ItemDefinitions_94 = "Lesser Mutated Heart"; + public static string ItemDatabase_ItemDefinitions_95 => instance._ItemDatabase_ItemDefinitions_95; + public string _ItemDatabase_ItemDefinitions_95 = "Spiked ring"; + public static string ItemDatabase_ItemDefinitions_96 => instance._ItemDatabase_ItemDefinitions_96; + public string _ItemDatabase_ItemDefinitions_96 = "Armor piercing for either melee or ranged weapons"; + public static string ItemDatabase_ItemDefinitions_97 => instance._ItemDatabase_ItemDefinitions_97; + public string _ItemDatabase_ItemDefinitions_97 = "Piercer"; + public static string ItemDatabase_ItemDefinitions_98 => instance._ItemDatabase_ItemDefinitions_98; + public string _ItemDatabase_ItemDefinitions_98 = "Moon Boots"; + public static string ItemDatabase_ItemDefinitions_99 => instance._ItemDatabase_ItemDefinitions_99; + public string _ItemDatabase_ItemDefinitions_99 = "A pair of boots from the moon."; + public static string ItemDatabase_ItemDefinitions_100 => instance._ItemDatabase_ItemDefinitions_100; + public string _ItemDatabase_ItemDefinitions_100 = "It is said that the wearer will not take fall damage while wearing these boots and will jump like on the moon, I wouldn't trust it tough."; + public static string ItemDatabase_ItemDefinitions_101 => instance._ItemDatabase_ItemDefinitions_101; + public string _ItemDatabase_ItemDefinitions_101 = "Golden Ring of Strength"; + public static string ItemDatabase_ItemDefinitions_102 => instance._ItemDatabase_ItemDefinitions_102; + public string _ItemDatabase_ItemDefinitions_102 = "A Ring of ancient times."; + public static string ItemDatabase_ItemDefinitions_103 => instance._ItemDatabase_ItemDefinitions_103; + public string _ItemDatabase_ItemDefinitions_103 = "A Golden Ring that looks simple and elegant, yet it feels powerfull to the touch."; + public static string ItemDatabase_ItemDefinitions_104 => instance._ItemDatabase_ItemDefinitions_104; + public string _ItemDatabase_ItemDefinitions_104 = "Golden Ring of Vitality"; + public static string ItemDatabase_ItemDefinitions_105 => instance._ItemDatabase_ItemDefinitions_105; + public string _ItemDatabase_ItemDefinitions_105 = "Golden Ring of Agility"; + public static string ItemDatabase_ItemDefinitions_106 => instance._ItemDatabase_ItemDefinitions_106; + public string _ItemDatabase_ItemDefinitions_106 = "Golden Ring of Intelligence"; + public static string ItemDatabase_ItemDefinitions_107 => instance._ItemDatabase_ItemDefinitions_107; + public string _ItemDatabase_ItemDefinitions_107 = "Silver Ring of Strength"; + public static string ItemDatabase_ItemDefinitions_108 => instance._ItemDatabase_ItemDefinitions_108; + public string _ItemDatabase_ItemDefinitions_108 = "A Silver Ring that looks simple and elegant, yet it feels powerfull to the touch."; + public static string ItemDatabase_ItemDefinitions_109 => instance._ItemDatabase_ItemDefinitions_109; + public string _ItemDatabase_ItemDefinitions_109 = "Silver Ring of Vitality"; + public static string ItemDatabase_ItemDefinitions_110 => instance._ItemDatabase_ItemDefinitions_110; + public string _ItemDatabase_ItemDefinitions_110 = "Silver Ring of Agility"; + public static string ItemDatabase_ItemDefinitions_111 => instance._ItemDatabase_ItemDefinitions_111; + public string _ItemDatabase_ItemDefinitions_111 = "Silver Ring of Intelligence"; + public static string ItemDatabase_ItemDefinitions_112 => instance._ItemDatabase_ItemDefinitions_112; + public string _ItemDatabase_ItemDefinitions_112 = "Steel Ring of Strength"; + public static string ItemDatabase_ItemDefinitions_113 => instance._ItemDatabase_ItemDefinitions_113; + public string _ItemDatabase_ItemDefinitions_113 = "A Steel Ring that looks simple and elegant, yet it feels powerfull to the touch."; + public static string ItemDatabase_ItemDefinitions_114 => instance._ItemDatabase_ItemDefinitions_114; + public string _ItemDatabase_ItemDefinitions_114 = "Steel Ring of Vitality"; + public static string ItemDatabase_ItemDefinitions_115 => instance._ItemDatabase_ItemDefinitions_115; + public string _ItemDatabase_ItemDefinitions_115 = "Steel Ring of Agility"; + public static string ItemDatabase_ItemDefinitions_116 => instance._ItemDatabase_ItemDefinitions_116; + public string _ItemDatabase_ItemDefinitions_116 = "Steel Ring of Intelligence"; + public static string ItemDatabase_ItemDefinitions_117 => instance._ItemDatabase_ItemDefinitions_117; + public string _ItemDatabase_ItemDefinitions_117 = "The One Ring To Rule Them All"; + public static string ItemDatabase_ItemDefinitions_118 => instance._ItemDatabase_ItemDefinitions_118; + public string _ItemDatabase_ItemDefinitions_118 = "An Ancient magical Ring of great power."; + public static string ItemDatabase_ItemDefinitions_119 => instance._ItemDatabase_ItemDefinitions_119; + public string _ItemDatabase_ItemDefinitions_119 = "It looks like and ordinay ring, but a strange energy is surrounding it. The Ring is said to have been found inside a volcanic rock by an archeologist, who went mad and isolated himself on the peninsula many years ago. But that's just a fairy tale, ring?"; + public static string ItemDatabase_ItemDefinitions_120 => instance._ItemDatabase_ItemDefinitions_120; + public string _ItemDatabase_ItemDefinitions_120 = "Attracts unwanted attention of an unknown entity."; + public static string ItemDatabase_ItemDefinitions_121 => instance._ItemDatabase_ItemDefinitions_121; + public string _ItemDatabase_ItemDefinitions_121 = "Golden Locket of Strength"; + public static string ItemDatabase_ItemDefinitions_122 => instance._ItemDatabase_ItemDefinitions_122; + public string _ItemDatabase_ItemDefinitions_122 = "A Locket of ancient times."; + public static string ItemDatabase_ItemDefinitions_123 => instance._ItemDatabase_ItemDefinitions_123; + public string _ItemDatabase_ItemDefinitions_123 = "A Golden Locket that looks simple and elegant, yet it feels powerfull to the touch."; + public static string ItemDatabase_ItemDefinitions_124 => instance._ItemDatabase_ItemDefinitions_124; + public string _ItemDatabase_ItemDefinitions_124 = "Golden Locket of Vitality"; + public static string ItemDatabase_ItemDefinitions_125 => instance._ItemDatabase_ItemDefinitions_125; + public string _ItemDatabase_ItemDefinitions_125 = "Golden Locket of Agility"; + public static string ItemDatabase_ItemDefinitions_126 => instance._ItemDatabase_ItemDefinitions_126; + public string _ItemDatabase_ItemDefinitions_126 = "Golden Locket of Intelligence"; + public static string ItemDatabase_ItemDefinitions_127 => instance._ItemDatabase_ItemDefinitions_127; + public string _ItemDatabase_ItemDefinitions_127 = "Silver Locket of Strength"; + public static string ItemDatabase_ItemDefinitions_128 => instance._ItemDatabase_ItemDefinitions_128; + public string _ItemDatabase_ItemDefinitions_128 = "A Silver Locket that looks simple and elegant, yet it feels powerfull to the touch."; + public static string ItemDatabase_ItemDefinitions_129 => instance._ItemDatabase_ItemDefinitions_129; + public string _ItemDatabase_ItemDefinitions_129 = "Silver Locket of Vitality"; + public static string ItemDatabase_ItemDefinitions_130 => instance._ItemDatabase_ItemDefinitions_130; + public string _ItemDatabase_ItemDefinitions_130 = "Silver Locket of Agility"; + public static string ItemDatabase_ItemDefinitions_131 => instance._ItemDatabase_ItemDefinitions_131; + public string _ItemDatabase_ItemDefinitions_131 = "Silver Locket of Intelligence"; + public static string ItemDatabase_ItemDefinitions_132 => instance._ItemDatabase_ItemDefinitions_132; + public string _ItemDatabase_ItemDefinitions_132 = "Emerald Pendant of Strength"; + public static string ItemDatabase_ItemDefinitions_133 => instance._ItemDatabase_ItemDefinitions_133; + public string _ItemDatabase_ItemDefinitions_133 = "A Pendant of ancient times."; + public static string ItemDatabase_ItemDefinitions_134 => instance._ItemDatabase_ItemDefinitions_134; + public string _ItemDatabase_ItemDefinitions_134 = "An Emerald Pendant that looks simple and elegant, yet it feels powerfull to the touch."; + public static string ItemDatabase_ItemDefinitions_135 => instance._ItemDatabase_ItemDefinitions_135; + public string _ItemDatabase_ItemDefinitions_135 = "Emerald Pendant of Vitality"; + public static string ItemDatabase_ItemDefinitions_136 => instance._ItemDatabase_ItemDefinitions_136; + public string _ItemDatabase_ItemDefinitions_136 = "Emerald Pendant of Agility"; + public static string ItemDatabase_ItemDefinitions_137 => instance._ItemDatabase_ItemDefinitions_137; + public string _ItemDatabase_ItemDefinitions_137 = "Emerald Pendant of Intelligence"; + public static string ItemDatabase_ItemDefinitions_138 => instance._ItemDatabase_ItemDefinitions_138; + public string _ItemDatabase_ItemDefinitions_138 = "Diamond Pendant of Strength"; + public static string ItemDatabase_ItemDefinitions_139 => instance._ItemDatabase_ItemDefinitions_139; + public string _ItemDatabase_ItemDefinitions_139 = "A Diamond Pendant that looks simple and elegant, yet it feels powerfull to the touch."; + public static string ItemDatabase_ItemDefinitions_140 => instance._ItemDatabase_ItemDefinitions_140; + public string _ItemDatabase_ItemDefinitions_140 = "Diamond Pendant of Vitality"; + public static string ItemDatabase_ItemDefinitions_141 => instance._ItemDatabase_ItemDefinitions_141; + public string _ItemDatabase_ItemDefinitions_141 = "Diamond Pendant of Agility"; + public static string ItemDatabase_ItemDefinitions_142 => instance._ItemDatabase_ItemDefinitions_142; + public string _ItemDatabase_ItemDefinitions_142 = "Diamond Pendant of Intelligence"; + public static string ItemDatabase_ItemDefinitions_143 => instance._ItemDatabase_ItemDefinitions_143; + public string _ItemDatabase_ItemDefinitions_143 = "Armsy Finger Necklace"; + public static string ItemDatabase_ItemDefinitions_144 => instance._ItemDatabase_ItemDefinitions_144; + public string _ItemDatabase_ItemDefinitions_144 = "A Necklace decorated with armsy fingertips."; + public static string ItemDatabase_ItemDefinitions_145 => instance._ItemDatabase_ItemDefinitions_145; + public string _ItemDatabase_ItemDefinitions_145 = "A Necklace made from the fingertips of an armsy, yeilding it's raw power and strentgh."; + public static string ItemDatabase_ItemDefinitions_146 => instance._ItemDatabase_ItemDefinitions_146; + public string _ItemDatabase_ItemDefinitions_146 = "Virginia Heart Pendant"; + public static string ItemDatabase_ItemDefinitions_147 => instance._ItemDatabase_ItemDefinitions_147; + public string _ItemDatabase_ItemDefinitions_147 = "A Pendant of a petrified Virginia heart."; + public static string ItemDatabase_ItemDefinitions_148 => instance._ItemDatabase_ItemDefinitions_148; + public string _ItemDatabase_ItemDefinitions_148 = "A Pendant made from a petrified Virginia heart, yeilding it's love and Vitality."; + public static string ItemDatabase_ItemDefinitions_149 => instance._ItemDatabase_ItemDefinitions_149; + public string _ItemDatabase_ItemDefinitions_149 = "Cowman Toe Necklace"; + public static string ItemDatabase_ItemDefinitions_150 => instance._ItemDatabase_ItemDefinitions_150; + public string _ItemDatabase_ItemDefinitions_150 = "A Necklace decorated with cowman toes."; + public static string ItemDatabase_ItemDefinitions_151 => instance._ItemDatabase_ItemDefinitions_151; + public string _ItemDatabase_ItemDefinitions_151 = "A Necklace made from the fingertips of an armsy, yeilding it's speed and agility."; + public static string ItemDatabase_ItemDefinitions_152 => instance._ItemDatabase_ItemDefinitions_152; + public string _ItemDatabase_ItemDefinitions_152 = "Pendant of Perpetual Rebirth"; + public static string ItemDatabase_ItemDefinitions_153 => instance._ItemDatabase_ItemDefinitions_153; + public string _ItemDatabase_ItemDefinitions_153 = "A Pendant of a shrunken babyhead."; + public static string ItemDatabase_ItemDefinitions_154 => instance._ItemDatabase_ItemDefinitions_154; + public string _ItemDatabase_ItemDefinitions_154 = "A pedant of great power. Obtainable only from babies or crafting"; + public static string ItemDatabase_ItemDefinitions_155(params object[] objects) => string.Format(instance._ItemDatabase_ItemDefinitions_155, objects); + public string _ItemDatabase_ItemDefinitions_155 = "decrease a random cooldown by {0} second whenever you hit something with melee or ranged attack."; + public static string ItemDatabase_ItemDefinitions_156 => instance._ItemDatabase_ItemDefinitions_156; + public string _ItemDatabase_ItemDefinitions_156 = "Megan's Locket"; + public static string ItemDatabase_ItemDefinitions_157 => instance._ItemDatabase_ItemDefinitions_157; + public string _ItemDatabase_ItemDefinitions_157 = "The Locket Megan wore."; + public static string ItemDatabase_ItemDefinitions_158 => instance._ItemDatabase_ItemDefinitions_158; + public string _ItemDatabase_ItemDefinitions_158 = "Megan wore this Locket, it has a picture of her mom in it."; + public static string ItemDatabase_ItemDefinitions_159 => instance._ItemDatabase_ItemDefinitions_159; + public string _ItemDatabase_ItemDefinitions_159 = "Relic Hammer"; + public static string ItemDatabase_ItemDefinitions_160 => instance._ItemDatabase_ItemDefinitions_160; + public string _ItemDatabase_ItemDefinitions_160 = "It's slow and weak."; + public static string ItemDatabase_ItemDefinitions_161 => instance._ItemDatabase_ItemDefinitions_161; + public string _ItemDatabase_ItemDefinitions_161 = "Slows on hit"; + public static string ItemDatabase_ItemDefinitions_162 => instance._ItemDatabase_ItemDefinitions_162; + public string _ItemDatabase_ItemDefinitions_162 = "Black Hammer"; + public static string ItemDatabase_ItemDefinitions_163 => instance._ItemDatabase_ItemDefinitions_163; + public string _ItemDatabase_ItemDefinitions_163 = "It's slow but with enough strength i can make it a very deadly tool"; + public static string ItemDatabase_ItemDefinitions_164 => instance._ItemDatabase_ItemDefinitions_164; + public string _ItemDatabase_ItemDefinitions_164 = "Potato Sack"; + public static string ItemDatabase_ItemDefinitions_165 => instance._ItemDatabase_ItemDefinitions_165; + public string _ItemDatabase_ItemDefinitions_165 = "Can be used as a quiver"; + public static string ItemDatabase_ItemDefinitions_166 => instance._ItemDatabase_ItemDefinitions_166; + public string _ItemDatabase_ItemDefinitions_166 = "Rabbit Skin Quiver"; + public static string ItemDatabase_ItemDefinitions_167 => instance._ItemDatabase_ItemDefinitions_167; + public string _ItemDatabase_ItemDefinitions_167 = "Hollow Log"; + public static string ItemDatabase_ItemDefinitions_168 => instance._ItemDatabase_ItemDefinitions_168; + public string _ItemDatabase_ItemDefinitions_168 = "It allows for faster drawing of arrow than a cloth quiver"; + public static string ItemDatabase_ItemDefinitions_169 => instance._ItemDatabase_ItemDefinitions_169; + public string _ItemDatabase_ItemDefinitions_169 = "Spellbound Quiver"; + public static string ItemDatabase_ItemDefinitions_170 => instance._ItemDatabase_ItemDefinitions_170; + public string _ItemDatabase_ItemDefinitions_170 = "Long Lost Quiver"; + public static string ItemDatabase_ItemDefinitions_171 => instance._ItemDatabase_ItemDefinitions_171; + public string _ItemDatabase_ItemDefinitions_171 = "Spell Scroll"; + public static string ItemDatabase_ItemDefinitions_172 => instance._ItemDatabase_ItemDefinitions_172; + public string _ItemDatabase_ItemDefinitions_172 = "Contains a lot of information on how to properly cast spells to achieve better results"; + public static string ItemDatabase_ItemDefinitions_173 => instance._ItemDatabase_ItemDefinitions_173; + public string _ItemDatabase_ItemDefinitions_173 = "Cloth Pants"; + public static string ItemDatabase_ItemDefinitions_174 => instance._ItemDatabase_ItemDefinitions_174; + public string _ItemDatabase_ItemDefinitions_174 = "Offer little protction"; + public static string ItemDatabase_ItemDefinitions_175 => instance._ItemDatabase_ItemDefinitions_175; + public string _ItemDatabase_ItemDefinitions_175 = "Rough Hide Leggins"; + public static string ItemDatabase_ItemDefinitions_176 => instance._ItemDatabase_ItemDefinitions_176; + public string _ItemDatabase_ItemDefinitions_176 = "Plate Leggins"; + public static string ItemDatabase_ItemDefinitions_177 => instance._ItemDatabase_ItemDefinitions_177; + public string _ItemDatabase_ItemDefinitions_177 = "Sage's Robes"; + public static string ItemDatabase_ItemDefinitions_178 => instance._ItemDatabase_ItemDefinitions_178; + public string _ItemDatabase_ItemDefinitions_178 = "Hammer Jammers"; + public static string ItemDatabase_ItemDefinitions_179(params object[] objects) => string.Format(instance._ItemDatabase_ItemDefinitions_179, objects); + public string _ItemDatabase_ItemDefinitions_179 = "Damage of your smash attack is increased by {0}, hammer stun duration is doubled"; + public static string ItemDatabase_ItemDefinitions_180 => instance._ItemDatabase_ItemDefinitions_180; + public string _ItemDatabase_ItemDefinitions_180 = "Pirate Pants"; + public static string ItemDatabase_ItemDefinitions_181 => instance._ItemDatabase_ItemDefinitions_181; + public string _ItemDatabase_ItemDefinitions_181 = "Those pants are ligh and comfortable. They offer plenty of mobility but lack in protection."; + public static string ItemDatabase_ItemDefinitions_182 => instance._ItemDatabase_ItemDefinitions_182; + public string _ItemDatabase_ItemDefinitions_182 = "Hexed Pants of Mr M."; + public static string ItemDatabase_ItemDefinitions_183 => instance._ItemDatabase_ItemDefinitions_183; + public string _ItemDatabase_ItemDefinitions_183 = "They look like yoga pants but for a man the size of a wardrobe"; + public static string ItemDatabase_ItemDefinitions_184 => instance._ItemDatabase_ItemDefinitions_184; + public string _ItemDatabase_ItemDefinitions_184 = "Once upon a time there was a man who was in a basement and fed himself with nothing but nuggets. He got so obese that friends and family started worrying. Hazard noticed this man and cursed his pants to force him to excercise."; + public static string ItemDatabase_ItemDefinitions_185(params object[] objects) => string.Format(instance._ItemDatabase_ItemDefinitions_185, objects); + public string _ItemDatabase_ItemDefinitions_185 = "While moving, energy regeneration and damage is increased by {0}. While standing still for longer than a second, you loose {1} of max health per second."; + public static string ItemDatabase_ItemDefinitions_186 => instance._ItemDatabase_ItemDefinitions_186; + public string _ItemDatabase_ItemDefinitions_186 = "Leather Mantle"; + public static string ItemDatabase_ItemDefinitions_187 => instance._ItemDatabase_ItemDefinitions_187; + public string _ItemDatabase_ItemDefinitions_187 = "A piece of cloth to give protection from "; + public static string ItemDatabase_ItemDefinitions_188 => instance._ItemDatabase_ItemDefinitions_188; + public string _ItemDatabase_ItemDefinitions_188 = "Shoulder Guards"; + public static string ItemDatabase_ItemDefinitions_189 => instance._ItemDatabase_ItemDefinitions_189; + public string _ItemDatabase_ItemDefinitions_189 = "Medium armor piece."; + public static string ItemDatabase_ItemDefinitions_190 => instance._ItemDatabase_ItemDefinitions_190; + public string _ItemDatabase_ItemDefinitions_190 = "Heavy armor"; + public static string ItemDatabase_ItemDefinitions_191 => instance._ItemDatabase_ItemDefinitions_191; + public string _ItemDatabase_ItemDefinitions_191 = "Heavy Shoulder Plates"; + public static string ItemDatabase_ItemDefinitions_192 => instance._ItemDatabase_ItemDefinitions_192; + public string _ItemDatabase_ItemDefinitions_192 = "Heavy armor piece. They offer great protection at the cost of attack speed and movement speed decrease"; + public static string ItemDatabase_ItemDefinitions_193 => instance._ItemDatabase_ItemDefinitions_193; + public string _ItemDatabase_ItemDefinitions_193 = "Etched Mantle"; + public static string ItemDatabase_ItemDefinitions_194 => instance._ItemDatabase_ItemDefinitions_194; + public string _ItemDatabase_ItemDefinitions_194 = "Those pauldrons empower wearer's combat skill"; + public static string ItemDatabase_ItemDefinitions_195 => instance._ItemDatabase_ItemDefinitions_195; + public string _ItemDatabase_ItemDefinitions_195 = "Assassins Pauldrons"; + public static string ItemDatabase_ItemDefinitions_196 => instance._ItemDatabase_ItemDefinitions_196; + public string _ItemDatabase_ItemDefinitions_196 = "Death Pact"; + public static string ItemDatabase_ItemDefinitions_197 => instance._ItemDatabase_ItemDefinitions_197; + public string _ItemDatabase_ItemDefinitions_197 = "Find the greatest strength on the border of life and death."; + public static string ItemDatabase_ItemDefinitions_198(params object[] objects) => string.Format(instance._ItemDatabase_ItemDefinitions_198, objects); + public string _ItemDatabase_ItemDefinitions_198 = "Every attack you make decreases your health by {0} of max health. For every percent of missing health you gain {1} damage amplification. This damage cannot kill you."; + public static string ItemDatabase_ItemDefinitions_199 => instance._ItemDatabase_ItemDefinitions_199; + public string _ItemDatabase_ItemDefinitions_199 = "Maximale Qualitot"; + public static string ItemDatabase_ItemDefinitions_200 => instance._ItemDatabase_ItemDefinitions_200; + public string _ItemDatabase_ItemDefinitions_200 = "A platinum ring with the most expensive jewels engraved on it. It's quality is uncomparable."; + public static string ItemDatabase_ItemDefinitions_201 => instance._ItemDatabase_ItemDefinitions_201; + public string _ItemDatabase_ItemDefinitions_201 = "Heart of Purity"; + public static string ItemDatabase_ItemDefinitions_202 => instance._ItemDatabase_ItemDefinitions_202; + public string _ItemDatabase_ItemDefinitions_202 = "A object filled with both destructive and creative energy. Allows to re-assign all spent mutation points"; + public static string ItemDatabase_ItemDefinitions_203 => instance._ItemDatabase_ItemDefinitions_203; + public string _ItemDatabase_ItemDefinitions_203 = "This powerful relic contains so much power, that it can kill anything and force it to come back to life, resulting in it's rebirth."; + public static string ItemDatabase_ItemDefinitions_204 => instance._ItemDatabase_ItemDefinitions_204; + public string _ItemDatabase_ItemDefinitions_204 = "Can be consumed by right clicking it. "; + public static string ItemDatabase_ItemDefinitions_205 => instance._ItemDatabase_ItemDefinitions_205; + public string _ItemDatabase_ItemDefinitions_205 = "Round Shield"; + public static string ItemDatabase_ItemDefinitions_206 => instance._ItemDatabase_ItemDefinitions_206; + public string _ItemDatabase_ItemDefinitions_206 = "A sturdy shield made of wood and reinforced with iron."; + public static string ItemDatabase_ItemDefinitions_207 => instance._ItemDatabase_ItemDefinitions_207; + public string _ItemDatabase_ItemDefinitions_207 = "Old Buckler"; + public static string ItemDatabase_ItemDefinitions_208 => instance._ItemDatabase_ItemDefinitions_208; + public string _ItemDatabase_ItemDefinitions_208 = "An old shield."; + public static string ItemDatabase_ItemDefinitions_209 => instance._ItemDatabase_ItemDefinitions_209; + public string _ItemDatabase_ItemDefinitions_209 = "This item has a lot of scratches that look like they were made by something with sharp claws."; + public static string ItemDatabase_ItemDefinitions_210 => instance._ItemDatabase_ItemDefinitions_210; + public string _ItemDatabase_ItemDefinitions_210 = "Dark Oak Shield"; + public static string ItemDatabase_ItemDefinitions_211 => instance._ItemDatabase_ItemDefinitions_211; + public string _ItemDatabase_ItemDefinitions_211 = "Bone Shield"; + public static string ItemDatabase_ItemDefinitions_212 => instance._ItemDatabase_ItemDefinitions_212; + public string _ItemDatabase_ItemDefinitions_212 = "A shield made of bones, held together by thick steel wire."; + public static string ItemDatabase_ItemDefinitions_213 => instance._ItemDatabase_ItemDefinitions_213; + public string _ItemDatabase_ItemDefinitions_213 = "Dull Longsword"; + public static string ItemDatabase_ItemDefinitions_214 => instance._ItemDatabase_ItemDefinitions_214; + public string _ItemDatabase_ItemDefinitions_214 = "It's round on the edges"; + public static string ItemDatabase_ItemDefinitions_215 => instance._ItemDatabase_ItemDefinitions_215; + public string _ItemDatabase_ItemDefinitions_215 = "Iron Horn"; + public static string ItemDatabase_ItemDefinitions_216(params object[] objects) => string.Format(instance._ItemDatabase_ItemDefinitions_216, objects); + public string _ItemDatabase_ItemDefinitions_216 = "When using Warcry, you and all allies recieve armor bonus equal to {0} of your armor"; + public static string ItemDatabase_ItemDefinitions_217 => instance._ItemDatabase_ItemDefinitions_217; + public string _ItemDatabase_ItemDefinitions_217 = "The Great Iron Horn"; + public static string ItemDatabase_ItemDefinitions_218 => instance._ItemDatabase_ItemDefinitions_218; + public string _ItemDatabase_ItemDefinitions_218 = "Horned Helmet"; + public static string ItemDatabase_ItemDefinitions_219 => instance._ItemDatabase_ItemDefinitions_219; + public string _ItemDatabase_ItemDefinitions_219 = "A viking helmet"; + public static string ItemDatabase_ItemDefinitions_220 => instance._ItemDatabase_ItemDefinitions_220; + public string _ItemDatabase_ItemDefinitions_220 = "Mask"; + public static string ItemDatabase_ItemDefinitions_221 => instance._ItemDatabase_ItemDefinitions_221; + public string _ItemDatabase_ItemDefinitions_221 = "Mask of Madness"; + public static string ItemDatabase_ItemDefinitions_222 => instance._ItemDatabase_ItemDefinitions_222; + public string _ItemDatabase_ItemDefinitions_222 = "Old Scroll"; + public static string ItemDatabase_ItemDefinitions_223 => instance._ItemDatabase_ItemDefinitions_223; + public string _ItemDatabase_ItemDefinitions_223 = "Wormhole Stabilizators"; + public static string ItemDatabase_ItemDefinitions_224 => instance._ItemDatabase_ItemDefinitions_224; + public string _ItemDatabase_ItemDefinitions_224 = "High-tech gear"; + public static string ItemDatabase_ItemDefinitions_225 => instance._ItemDatabase_ItemDefinitions_225; + public string _ItemDatabase_ItemDefinitions_225 = "Hazard remember to put some fucking lore in here, don't leave it like this!"; + public static string ItemDatabase_ItemDefinitions_226(params object[] objects) => string.Format(instance._ItemDatabase_ItemDefinitions_226, objects); + public string _ItemDatabase_ItemDefinitions_226 = "Increases the duration of a portal by {0} seconds"; + public static string ItemDatabase_ItemDefinitions_227 => instance._ItemDatabase_ItemDefinitions_227; + public string _ItemDatabase_ItemDefinitions_227 = "Cripplers"; + public static string ItemDatabase_ItemDefinitions_228(params object[] objects) => string.Format(instance._ItemDatabase_ItemDefinitions_228, objects); + public string _ItemDatabase_ItemDefinitions_228 = "Increases the duration of a magic arrow's negative effect by {0} seconds"; + public static string ItemDatabase_ItemDefinitions_229 => instance._ItemDatabase_ItemDefinitions_229; + public string _ItemDatabase_ItemDefinitions_229 = "Crossfire"; + public static string ItemDatabase_ItemDefinitions_230 => instance._ItemDatabase_ItemDefinitions_230; + public string _ItemDatabase_ItemDefinitions_230 = "Infused with powerful magic. This item is a dangerous tool of destruction."; + public static string ItemDatabase_ItemDefinitions_231 => instance._ItemDatabase_ItemDefinitions_231; + public string _ItemDatabase_ItemDefinitions_231 = "When hitting an enemy with a projectile, create a magic arrow pointed at the enemy and shoot it without using in energy. This effect may occur once every 2 seconds, but can be interval can be shortened with cooldown reduction."; + public static string ItemDatabase_ItemDefinitions_232 => instance._ItemDatabase_ItemDefinitions_232; + public string _ItemDatabase_ItemDefinitions_232 = "Scroll of Recovery"; + public static string ItemDatabase_ItemDefinitions_233 => instance._ItemDatabase_ItemDefinitions_233; + public string _ItemDatabase_ItemDefinitions_233 = "Recovers health and stamina"; + public static string ItemDatabase_ItemDefinitions_234 => instance._ItemDatabase_ItemDefinitions_234; + public string _ItemDatabase_ItemDefinitions_234 = "Tiara"; + public static string ItemDatabase_ItemDefinitions_235 => instance._ItemDatabase_ItemDefinitions_235; + public string _ItemDatabase_ItemDefinitions_235 = "A beautiful tiara "; + public static string ItemDatabase_ItemDefinitions_236 => instance._ItemDatabase_ItemDefinitions_236; + public string _ItemDatabase_ItemDefinitions_236 = "This tiara may not provide much protection, but it sure is pretty"; + public static string ItemDatabase_ItemDefinitions_237 => instance._ItemDatabase_ItemDefinitions_237; + public string _ItemDatabase_ItemDefinitions_237 = "Shiny"; + public static string ItemDatabase_ItemDefinitions_238 => instance._ItemDatabase_ItemDefinitions_238; + public string _ItemDatabase_ItemDefinitions_238 = "Chastity belt"; + public static string ItemDatabase_ItemDefinitions_239 => instance._ItemDatabase_ItemDefinitions_239; + public string _ItemDatabase_ItemDefinitions_239 = "Dodge those fukbois"; + public static string ItemDatabase_ItemDefinitions_240 => instance._ItemDatabase_ItemDefinitions_240; + public string _ItemDatabase_ItemDefinitions_240 = "This belt will stop those cheeky cannibals and armsies from getting into your pants"; + public static string ItemDatabase_ItemDefinitions_241(params object[] objects) => string.Format(instance._ItemDatabase_ItemDefinitions_241, objects); + public string _ItemDatabase_ItemDefinitions_241 = " {0} damage reduction while sleeping"; + public static string ItemDatabase_ItemDefinitions_242 => instance._ItemDatabase_ItemDefinitions_242; + public string _ItemDatabase_ItemDefinitions_242 = "Ice Scroll"; + public static string ItemDatabase_ItemDefinitions_243 => instance._ItemDatabase_ItemDefinitions_243; + public string _ItemDatabase_ItemDefinitions_243 = "A spell surrounded by flying shards of ice, contains tramendous power of cold."; + public static string ItemDatabase_ItemDefinitions_244 => instance._ItemDatabase_ItemDefinitions_244; + public string _ItemDatabase_ItemDefinitions_244 = "Created at the top of the mountain."; + public static string ItemDatabase_ItemDefinitions_245 => instance._ItemDatabase_ItemDefinitions_245; + public string _ItemDatabase_ItemDefinitions_245 = "Motorboat Modification Blueprints"; + public static string ItemDatabase_ItemDefinitions_246 => instance._ItemDatabase_ItemDefinitions_246; + public string _ItemDatabase_ItemDefinitions_246 = "Sheet of paper that allows to turn any raft into a high speed. Increases carry amount and increases speed of rafts."; + public static string ItemDatabase_ItemDefinitions_247 => instance._ItemDatabase_ItemDefinitions_247; + public string _ItemDatabase_ItemDefinitions_247 = "Who did this lmao."; + public static string ItemDatabase_ItemDefinitions_248 => instance._ItemDatabase_ItemDefinitions_248; + public string _ItemDatabase_ItemDefinitions_248 = "Axe of Swiftness"; + public static string ItemDatabase_ItemDefinitions_249 => instance._ItemDatabase_ItemDefinitions_249; + public string _ItemDatabase_ItemDefinitions_249 = "Severer"; + public static string ItemDatabase_ItemDefinitions_250 => instance._ItemDatabase_ItemDefinitions_250; + public string _ItemDatabase_ItemDefinitions_250 = "Golden Axe of Fortune"; + public static string ItemDatabase_ItemDefinitions_251 => instance._ItemDatabase_ItemDefinitions_251; + public string _ItemDatabase_ItemDefinitions_251 = "Axe of Misfortune"; + public static string ItemDatabase_ItemDefinitions_252 => instance._ItemDatabase_ItemDefinitions_252; + public string _ItemDatabase_ItemDefinitions_252 = "Misfortunate are the ones on the recieving end. They will bleed a lot"; + public static string ItemDatabase_ItemDefinitions_253 => instance._ItemDatabase_ItemDefinitions_253; + public string _ItemDatabase_ItemDefinitions_253 = "Golden Ring"; + public static string ItemDatabase_ItemDefinitions_254 => instance._ItemDatabase_ItemDefinitions_254; + public string _ItemDatabase_ItemDefinitions_254 = "Golden Locket"; + public static string ItemDatabase_ItemDefinitions_255 => instance._ItemDatabase_ItemDefinitions_255; + public string _ItemDatabase_ItemDefinitions_255 = "Dull Axe"; + public static string ItemDatabase_ItemDefinitions_256 => instance._ItemDatabase_ItemDefinitions_256; + public string _ItemDatabase_ItemDefinitions_256 = "Precise Adjustments"; + public static string ItemDatabase_ItemDefinitions_257(params object[] objects) => string.Format(instance._ItemDatabase_ItemDefinitions_257, objects); + public string _ItemDatabase_ItemDefinitions_257 = "Focus attack speed buff duration is increased by {0} seconds"; + public static string ItemDatabase_ItemDefinitions_258 => instance._ItemDatabase_ItemDefinitions_258; + public string _ItemDatabase_ItemDefinitions_258 = "Rage"; + public static string ItemDatabase_ItemDefinitions_259(params object[] objects) => string.Format(instance._ItemDatabase_ItemDefinitions_259, objects); + public string _ItemDatabase_ItemDefinitions_259 = "Increases maximum stacks of frenzy by {0}"; + public static string ItemDatabase_ItemDefinitions_260 => instance._ItemDatabase_ItemDefinitions_260; + public string _ItemDatabase_ItemDefinitions_260 = "Swords go brrrrrrttt"; + public static string ItemDatabase_ItemDefinitions_261 => instance._ItemDatabase_ItemDefinitions_261; + public string _ItemDatabase_ItemDefinitions_261 = "Jagged Edge"; + public static string ItemDatabase_ItemDefinitions_262(params object[] objects) => string.Format(instance._ItemDatabase_ItemDefinitions_262, objects); + public string _ItemDatabase_ItemDefinitions_262 = "Bash has {0} a chance to make enemies to bleed for {1} of damage dealt per second for duration of slow"; + public static string ItemDatabase_ItemDefinitions_263 => instance._ItemDatabase_ItemDefinitions_263; + public string _ItemDatabase_ItemDefinitions_263 = "Bloodthirster"; + public static string ItemDatabase_ItemDefinitions_264 => instance._ItemDatabase_ItemDefinitions_264; + public string _ItemDatabase_ItemDefinitions_264 = "Drenched in blood of many unfortunate foes."; + public static string ItemDatabase_ItemDefinitions_265(params object[] objects) => string.Format(instance._ItemDatabase_ItemDefinitions_265, objects); + public string _ItemDatabase_ItemDefinitions_265 = "Bash lifesteals {0} of damage dealt into energy and health"; + public static string ItemDatabase_ItemDefinitions_266 => instance._ItemDatabase_ItemDefinitions_266; + public string _ItemDatabase_ItemDefinitions_266 = "Frost Giant"; + public static string ItemDatabase_ItemDefinitions_267 => instance._ItemDatabase_ItemDefinitions_267; + public string _ItemDatabase_ItemDefinitions_267 = "Melee hits freeze enemies"; + public static string ItemDatabase_ItemDefinitions_268 => instance._ItemDatabase_ItemDefinitions_268; + public string _ItemDatabase_ItemDefinitions_268 = "Alexander's Shield"; + public static string ItemDatabase_ItemDefinitions_269 => instance._ItemDatabase_ItemDefinitions_269; + public string _ItemDatabase_ItemDefinitions_269 = "Parry has a chance to be casted when getting it. Requires parry to be equipped"; + public static string ItemDatabase_ItemDefinitions_270 => instance._ItemDatabase_ItemDefinitions_270; + public string _ItemDatabase_ItemDefinitions_270 = "King Qruies"; + public static string ItemDatabase_ItemDefinitions_271 => instance._ItemDatabase_ItemDefinitions_271; + public string _ItemDatabase_ItemDefinitions_271 = "A mighty sword seeking for it's owner"; + public static string ItemDatabase_ItemDefinitions_272 => instance._ItemDatabase_ItemDefinitions_272; + public string _ItemDatabase_ItemDefinitions_272 = "Gain additional melee damage equal to the last instance of physical damage taken."; + public static string ItemDatabase_ItemDefinitions_273 => instance._ItemDatabase_ItemDefinitions_273; + public string _ItemDatabase_ItemDefinitions_273 = "Grip of Sora"; + public static string ItemDatabase_ItemDefinitions_274 => instance._ItemDatabase_ItemDefinitions_274; + public string _ItemDatabase_ItemDefinitions_274 = "Look, a porcupine! -Sora"; + public static string ItemDatabase_ItemDefinitions_275(params object[] objects) => string.Format(instance._ItemDatabase_ItemDefinitions_275, objects); + public string _ItemDatabase_ItemDefinitions_275 = "Multishot drains {0} less energy and shoots +4 projectiles. Additional projectiles do not increase the cost of multishot"; + public static string ItemDatabase_ItemDefinitions_276 => instance._ItemDatabase_ItemDefinitions_276; + public string _ItemDatabase_ItemDefinitions_276 = "Ancient Greatbow"; + public static string ItemDatabase_ItemDefinitions_277 => instance._ItemDatabase_ItemDefinitions_277; + public string _ItemDatabase_ItemDefinitions_277 = "A massive and slow bow, deals extra damage"; + public static string ItemDatabase_ItemDefinitions_278 => instance._ItemDatabase_ItemDefinitions_278; + public string _ItemDatabase_ItemDefinitions_278 = "Phoenix's Death"; + public static string ItemDatabase_ItemDefinitions_279 => instance._ItemDatabase_ItemDefinitions_279; + public string _ItemDatabase_ItemDefinitions_279 = "Ignites enemies on hit"; + public static string ItemDatabase_ItemDefinitions_280 => instance._ItemDatabase_ItemDefinitions_280; + public string _ItemDatabase_ItemDefinitions_280 = "Soulstring"; + public static string ItemDatabase_ItemDefinitions_281 => instance._ItemDatabase_ItemDefinitions_281; + public string _ItemDatabase_ItemDefinitions_281 = "A massive and slow bow"; + public static string ItemDatabase_ItemDefinitions_282(params object[] objects) => string.Format(instance._ItemDatabase_ItemDefinitions_282, objects); + public string _ItemDatabase_ItemDefinitions_282 = "Blood infused arrow now deals additional {0} points of damage per health consumed"; + public static string ItemDatabase_ItemDefinitions_283 => instance._ItemDatabase_ItemDefinitions_283; + public string _ItemDatabase_ItemDefinitions_283 = "Greatbow"; + public static string ItemDatabase_ItemDefinitions_284 => instance._ItemDatabase_ItemDefinitions_284; + public string _ItemDatabase_ItemDefinitions_284 = "Withered Crown"; + public static string ItemDatabase_ItemDefinitions_285 => instance._ItemDatabase_ItemDefinitions_285; + public string _ItemDatabase_ItemDefinitions_285 = "Worn by Hazard."; + public static string ItemDatabase_ItemDefinitions_286(params object[] objects) => string.Format(instance._ItemDatabase_ItemDefinitions_286, objects); + public string _ItemDatabase_ItemDefinitions_286 = "A single cast of blood infused arrow affects {0} more projectiles"; + public static string ItemDatabase_ItemDefinitions_287 => instance._ItemDatabase_ItemDefinitions_287; + public string _ItemDatabase_ItemDefinitions_287 = "Novice Magic Caster's Bracers"; + public static string ItemDatabase_ItemDefinitions_288 => instance._ItemDatabase_ItemDefinitions_288; + public string _ItemDatabase_ItemDefinitions_288 = "Ranger's Bracers"; + public static string ItemDatabase_ItemDefinitions_289 => instance._ItemDatabase_ItemDefinitions_289; + public string _ItemDatabase_ItemDefinitions_289 = "Swordsman's Bracers"; + public static string ItemDatabase_ItemDefinitions_290 => instance._ItemDatabase_ItemDefinitions_290; + public string _ItemDatabase_ItemDefinitions_290 = "Healer's Bracers"; + public static string ItemDatabase_ItemDefinitions_291 => instance._ItemDatabase_ItemDefinitions_291; + public string _ItemDatabase_ItemDefinitions_291 = "Novice Magic Caster's Gloves"; + public static string ItemDatabase_ItemDefinitions_292 => instance._ItemDatabase_ItemDefinitions_292; + public string _ItemDatabase_ItemDefinitions_292 = "Ranger's Gloves"; + public static string ItemDatabase_ItemDefinitions_293 => instance._ItemDatabase_ItemDefinitions_293; + public string _ItemDatabase_ItemDefinitions_293 = "Swordsman's Gloves"; + public static string ItemDatabase_ItemDefinitions_294 => instance._ItemDatabase_ItemDefinitions_294; + public string _ItemDatabase_ItemDefinitions_294 = "Healer's Gloves"; + public static string ItemDatabase_ItemDefinitions_295 => instance._ItemDatabase_ItemDefinitions_295; + public string _ItemDatabase_ItemDefinitions_295 = "Fate Gloves"; + public static string ItemDatabase_ItemDefinitions_296 => instance._ItemDatabase_ItemDefinitions_296; + public string _ItemDatabase_ItemDefinitions_296 = "Fate Boots"; + public static string ItemDatabase_ItemDefinitions_297 => instance._ItemDatabase_ItemDefinitions_297; + public string _ItemDatabase_ItemDefinitions_297 = "Greed"; + public static string ItemDatabase_ItemDefinitions_298 => instance._ItemDatabase_ItemDefinitions_298; + public string _ItemDatabase_ItemDefinitions_298 = "Automatically casts wide reach every second"; + public static string ItemDatabase_ItemDefinitions_299 => instance._ItemDatabase_ItemDefinitions_299; + public string _ItemDatabase_ItemDefinitions_299 = "Titanium Leggins"; + public static string ItemDatabase_ItemDefinitions_300 => instance._ItemDatabase_ItemDefinitions_300; + public string _ItemDatabase_ItemDefinitions_300 = "Heavily armored leg protection. Suffers from the same weaknesses as spartan armor."; + public static string ItemDatabase_ItemDefinitions_301 => instance._ItemDatabase_ItemDefinitions_301; + public string _ItemDatabase_ItemDefinitions_301 = "Iron Gauntlet"; + public static string ItemDatabase_ItemDefinitions_302 => instance._ItemDatabase_ItemDefinitions_302; + public string _ItemDatabase_ItemDefinitions_302 = "Magefist"; + public static string ItemDatabase_ItemDefinitions_303 => instance._ItemDatabase_ItemDefinitions_303; + public string _ItemDatabase_ItemDefinitions_303 = "Gloves that amplify magic"; + public static string ItemDatabase_ItemDefinitions_304 => instance._ItemDatabase_ItemDefinitions_304; + public string _ItemDatabase_ItemDefinitions_304 = "Spells deal double damage but have double the energy cost"; + public static string ItemDatabase_ItemDefinitions_305 => instance._ItemDatabase_ItemDefinitions_305; + public string _ItemDatabase_ItemDefinitions_305 = "Armored Boots"; + public static string ItemDatabase_ItemDefinitions_306 => instance._ItemDatabase_ItemDefinitions_306; + public string _ItemDatabase_ItemDefinitions_306 = "Heavily armored, resistant to damage boots."; + public static string ItemDatabase_ItemDefinitions_307 => instance._ItemDatabase_ItemDefinitions_307; + public string _ItemDatabase_ItemDefinitions_307 = "Broken Protector"; + public static string ItemDatabase_ItemDefinitions_308 => instance._ItemDatabase_ItemDefinitions_308; + public string _ItemDatabase_ItemDefinitions_308 = "This shield failed to protect those behind it."; + public static string ItemDatabase_ItemDefinitions_309 => instance._ItemDatabase_ItemDefinitions_309; + public string _ItemDatabase_ItemDefinitions_309 = "Forbidden Scroll"; + public static string ItemDatabase_ItemDefinitions_310 => instance._ItemDatabase_ItemDefinitions_310; + public string _ItemDatabase_ItemDefinitions_310 = "Too powerful to be kept."; + public static string ItemDatabase_ItemDefinitions_311 => instance._ItemDatabase_ItemDefinitions_311; + public string _ItemDatabase_ItemDefinitions_311 = "Doom Pauldrons"; + public static string ItemDatabase_ItemDefinitions_312 => instance._ItemDatabase_ItemDefinitions_312; + public string _ItemDatabase_ItemDefinitions_312 = "Despite the cool name, they are completely normal pair of shoulder armor."; + public static string ItemDatabase_ItemDefinitions_313 => instance._ItemDatabase_ItemDefinitions_313; + public string _ItemDatabase_ItemDefinitions_313 = "Wind armor"; + public static string ItemDatabase_ItemDefinitions_314 => instance._ItemDatabase_ItemDefinitions_314; + public string _ItemDatabase_ItemDefinitions_314 = "Run fast like the wind"; + public static string ItemDatabase_ItemDefinitions_315(params object[] objects) => string.Format(instance._ItemDatabase_ItemDefinitions_315, objects); + public string _ItemDatabase_ItemDefinitions_315 = "Upon dodging an attack, gain {0} movement speed, {1} damage, {2} armor, and heal for {3} of your maximum health"; + public static string ItemDatabase_ItemDefinitions_316 => instance._ItemDatabase_ItemDefinitions_316; + public string _ItemDatabase_ItemDefinitions_316 = "Crusader Helmet"; + public static string ItemDatabase_ItemDefinitions_317 => instance._ItemDatabase_ItemDefinitions_317; + public string _ItemDatabase_ItemDefinitions_317 = "You're talking mad shit for someone within crusading distance"; + public static string ItemDatabase_ItemDefinitions_318 => instance._ItemDatabase_ItemDefinitions_318; + public string _ItemDatabase_ItemDefinitions_318 = "Hood"; + public static string ItemDatabase_ItemDefinitions_319 => instance._ItemDatabase_ItemDefinitions_319; + public string _ItemDatabase_ItemDefinitions_319 = "Hats provide usefull stat bonuses"; + public static string ItemDatabase_ItemDefinitions_320 => instance._ItemDatabase_ItemDefinitions_320; + public string _ItemDatabase_ItemDefinitions_320 = "The Spark of Light in The Darkness"; + public static string ItemDatabase_ItemDefinitions_321 => instance._ItemDatabase_ItemDefinitions_321; + public string _ItemDatabase_ItemDefinitions_321 = "Magic Scroll of great quality"; + public static string ItemDatabase_ItemDefinitions_322 => instance._ItemDatabase_ItemDefinitions_322; + public string _ItemDatabase_ItemDefinitions_322 = "Written in a language i canno't understand. Decyphering this text is impossible, so is the full utilization of the scroll."; + public static string ItemDatabase_ItemDefinitions_323(params object[] objects) => string.Format(instance._ItemDatabase_ItemDefinitions_323, objects); + public string _ItemDatabase_ItemDefinitions_323 = "If a black hole hits {0} or more enemies during it's lifetime, a ball lightning is summoned after it ends."; + public static string ItemDatabase_ItemDefinitions_324 => instance._ItemDatabase_ItemDefinitions_324; + public string _ItemDatabase_ItemDefinitions_324 = "Purgatory"; + public static string ItemDatabase_ItemDefinitions_325 => instance._ItemDatabase_ItemDefinitions_325; + public string _ItemDatabase_ItemDefinitions_325 = "Golden ring with a bone chilling feel about it. This thing will only bring harm, but not to the wearer"; + public static string ItemDatabase_ItemDefinitions_326 => instance._ItemDatabase_ItemDefinitions_326; + public string _ItemDatabase_ItemDefinitions_326 = "Ring made of Netherrite"; + public static string ItemDatabase_ItemDefinitions_327(params object[] objects) => string.Format(instance._ItemDatabase_ItemDefinitions_327, objects); + public string _ItemDatabase_ItemDefinitions_327 = "Purge increases all of your damage based on missing health. Up to {0}"; + public static string ItemDatabase_ItemDefinitions_328 => instance._ItemDatabase_ItemDefinitions_328; + public string _ItemDatabase_ItemDefinitions_328 = "Eruption"; + public static string ItemDatabase_ItemDefinitions_329 => instance._ItemDatabase_ItemDefinitions_329; + public string _ItemDatabase_ItemDefinitions_329 = "Incarnation of devastation"; + public static string ItemDatabase_ItemDefinitions_330 => instance._ItemDatabase_ItemDefinitions_330; + public string _ItemDatabase_ItemDefinitions_330 = "Headshots cause explosions"; + public static string ItemDatabase_ItemDefinitions_331 => instance._ItemDatabase_ItemDefinitions_331; + public string _ItemDatabase_ItemDefinitions_331 = "Archangel"; + public static string ItemDatabase_ItemDefinitions_332 => instance._ItemDatabase_ItemDefinitions_332; + public string _ItemDatabase_ItemDefinitions_332 = "Spread the goodness"; + public static string ItemDatabase_ItemDefinitions_333(params object[] objects) => string.Format(instance._ItemDatabase_ItemDefinitions_333, objects); + public string _ItemDatabase_ItemDefinitions_333 = "Shooting another player causes them to be greatly empowered for {0} seconds"; + public static string ItemDatabase_ItemDefinitions_334 => instance._ItemDatabase_ItemDefinitions_334; + public string _ItemDatabase_ItemDefinitions_334 = "The Executioner"; + public static string ItemDatabase_ItemDefinitions_335 => instance._ItemDatabase_ItemDefinitions_335; + public string _ItemDatabase_ItemDefinitions_335 = "A sword for decapitating"; + public static string ItemDatabase_ItemDefinitions_336 => instance._ItemDatabase_ItemDefinitions_336; + public string _ItemDatabase_ItemDefinitions_336 = "Moon Cuirass"; + public static string ItemDatabase_ItemDefinitions_337 => instance._ItemDatabase_ItemDefinitions_337; + public string _ItemDatabase_ItemDefinitions_337 = "A piece of armor designed for an archer. "; + public static string ItemDatabase_ItemDefinitions_338(params object[] objects) => string.Format(instance._ItemDatabase_ItemDefinitions_338, objects); + public string _ItemDatabase_ItemDefinitions_338 = "Landing a headshot with an arrow without the homing effect of seeking arrow at a distance greater than {0} feet deals tenfold damage, and hits the enemy two extra times"; + public static string ItemDatabase_ItemDefinitions_339 => instance._ItemDatabase_ItemDefinitions_339; + public string _ItemDatabase_ItemDefinitions_339 = "Thornmail"; + public static string ItemDatabase_ItemDefinitions_340 => instance._ItemDatabase_ItemDefinitions_340; + public string _ItemDatabase_ItemDefinitions_340 = "Spiked death on the outside, really comfy on the inside"; + public static string ItemDatabase_ItemDefinitions_341 => instance._ItemDatabase_ItemDefinitions_341; + public string _ItemDatabase_ItemDefinitions_341 = "Thorns deal double damage"; + public static string ItemDatabase_ItemDefinitions_342 => instance._ItemDatabase_ItemDefinitions_342; + public string _ItemDatabase_ItemDefinitions_342 = "Rusty Polearm"; + public static string ItemDatabase_ItemDefinitions_343 => instance._ItemDatabase_ItemDefinitions_343; + public string _ItemDatabase_ItemDefinitions_343 = "Used by the Ubersreik Five"; + public static string ItemDatabase_ItemDefinitions_344 => instance._ItemDatabase_ItemDefinitions_344; + public string _ItemDatabase_ItemDefinitions_344 = "Giant Polearm"; + public static string ItemDatabase_ItemDefinitions_345 => instance._ItemDatabase_ItemDefinitions_345; + public string _ItemDatabase_ItemDefinitions_345 = "Used by the Sir Kruber"; + public static string ItemDatabase_ItemDefinitions_346 => instance._ItemDatabase_ItemDefinitions_346; + public string _ItemDatabase_ItemDefinitions_346 = "Crude Feather"; + public static string ItemDatabase_ItemDefinitions_347 => instance._ItemDatabase_ItemDefinitions_347; + public string _ItemDatabase_ItemDefinitions_347 = "Materials can be put inside empty sockets to add stats to items"; + public static string ItemDatabase_ItemDefinitions_348 => instance._ItemDatabase_ItemDefinitions_348; + public string _ItemDatabase_ItemDefinitions_348 = "Soft Feather"; + public static string ItemDatabase_ItemDefinitions_349 => instance._ItemDatabase_ItemDefinitions_349; + public string _ItemDatabase_ItemDefinitions_349 = "Ornate Feather"; + public static string ItemDatabase_ItemDefinitions_350 => instance._ItemDatabase_ItemDefinitions_350; + public string _ItemDatabase_ItemDefinitions_350 = "Wonderful Feather"; + public static string ItemDatabase_ItemDefinitions_351 => instance._ItemDatabase_ItemDefinitions_351; + public string _ItemDatabase_ItemDefinitions_351 = "White Crow's Feather"; + public static string ItemDatabase_ItemDefinitions_352 => instance._ItemDatabase_ItemDefinitions_352; + public string _ItemDatabase_ItemDefinitions_352 = "Reef Shark"; + public static string ItemDatabase_ItemDefinitions_353 => instance._ItemDatabase_ItemDefinitions_353; + public string _ItemDatabase_ItemDefinitions_353 = "Tiger Shark Tooth"; + public static string ItemDatabase_ItemDefinitions_354 => instance._ItemDatabase_ItemDefinitions_354; + public string _ItemDatabase_ItemDefinitions_354 = "Whale Shark Tooth"; + public static string ItemDatabase_ItemDefinitions_355 => instance._ItemDatabase_ItemDefinitions_355; + public string _ItemDatabase_ItemDefinitions_355 = "Great White Shark Tooth"; + public static string ItemDatabase_ItemDefinitions_356 => instance._ItemDatabase_ItemDefinitions_356; + public string _ItemDatabase_ItemDefinitions_356 = "Megalodon's Tooth"; + public static string ItemDatabase_ItemDefinitions_357 => instance._ItemDatabase_ItemDefinitions_357; + public string _ItemDatabase_ItemDefinitions_357 = "Uncut Sapphire"; + public static string ItemDatabase_ItemDefinitions_358 => instance._ItemDatabase_ItemDefinitions_358; + public string _ItemDatabase_ItemDefinitions_358 = "Clear Sapphire"; + public static string ItemDatabase_ItemDefinitions_359 => instance._ItemDatabase_ItemDefinitions_359; + public string _ItemDatabase_ItemDefinitions_359 = "Shiny Sapphire"; + public static string ItemDatabase_ItemDefinitions_360 => instance._ItemDatabase_ItemDefinitions_360; + public string _ItemDatabase_ItemDefinitions_360 = "Enchanted Sapphire"; + public static string ItemDatabase_ItemDefinitions_361 => instance._ItemDatabase_ItemDefinitions_361; + public string _ItemDatabase_ItemDefinitions_361 = "Celestial Sapphire"; + public static string ItemDatabase_ItemDefinitions_362 => instance._ItemDatabase_ItemDefinitions_362; + public string _ItemDatabase_ItemDefinitions_362 = "Uncut Moonstone"; + public static string ItemDatabase_ItemDefinitions_363 => instance._ItemDatabase_ItemDefinitions_363; + public string _ItemDatabase_ItemDefinitions_363 = "Clear Moonstone"; + public static string ItemDatabase_ItemDefinitions_364 => instance._ItemDatabase_ItemDefinitions_364; + public string _ItemDatabase_ItemDefinitions_364 = "Shiny Moonstone"; + public static string ItemDatabase_ItemDefinitions_365 => instance._ItemDatabase_ItemDefinitions_365; + public string _ItemDatabase_ItemDefinitions_365 = "Enchanted Moonstone"; + public static string ItemDatabase_ItemDefinitions_366 => instance._ItemDatabase_ItemDefinitions_366; + public string _ItemDatabase_ItemDefinitions_366 = "Celestial Moonstone"; + public static string ItemDatabase_ItemDefinitions_367 => instance._ItemDatabase_ItemDefinitions_367; + public string _ItemDatabase_ItemDefinitions_367 = "Lead Ore"; + public static string ItemDatabase_ItemDefinitions_368 => instance._ItemDatabase_ItemDefinitions_368; + public string _ItemDatabase_ItemDefinitions_368 = "Vanadium Ore"; + public static string ItemDatabase_ItemDefinitions_369 => instance._ItemDatabase_ItemDefinitions_369; + public string _ItemDatabase_ItemDefinitions_369 = "Titanium Ore"; + public static string ItemDatabase_ItemDefinitions_370 => instance._ItemDatabase_ItemDefinitions_370; + public string _ItemDatabase_ItemDefinitions_370 = "Chromium Ore"; + public static string ItemDatabase_ItemDefinitions_371 => instance._ItemDatabase_ItemDefinitions_371; + public string _ItemDatabase_ItemDefinitions_371 = "Tungsten Ore"; + public static string ItemDatabase_ItemDefinitions_372 => instance._ItemDatabase_ItemDefinitions_372; + public string _ItemDatabase_ItemDefinitions_372 = "Knife on a stick"; + public static string ItemDatabase_ItemDefinitions_373 => instance._ItemDatabase_ItemDefinitions_373; + public string _ItemDatabase_ItemDefinitions_373 = "Kasper named this item, his fault"; + public static string ItemDatabase_ItemDefinitions_374 => instance._ItemDatabase_ItemDefinitions_374; + public string _ItemDatabase_ItemDefinitions_374 = "Fists of Nails"; + public static string ItemDatabase_ItemDefinitions_375 => instance._ItemDatabase_ItemDefinitions_375; + public string _ItemDatabase_ItemDefinitions_375 = "Swiss sheese makers"; + public static string ItemDatabase_ItemDefinitions_376(params object[] objects) => string.Format(instance._ItemDatabase_ItemDefinitions_376, objects); + public string _ItemDatabase_ItemDefinitions_376 = "Gain {0} thorns per vitality"; + public static string ItemDatabase_ItemDefinitions_377 => instance._ItemDatabase_ItemDefinitions_377; + public string _ItemDatabase_ItemDefinitions_377 = "Cargo Shorts MK2"; + public static string ItemDatabase_ItemDefinitions_378 => instance._ItemDatabase_ItemDefinitions_378; + public string _ItemDatabase_ItemDefinitions_378 = "Deepest pockets out there"; + public static string ItemDatabase_ItemDefinitions_379 => instance._ItemDatabase_ItemDefinitions_379; + public string _ItemDatabase_ItemDefinitions_379 = "Improved cargo pants. Twice as many pockets, and since they didnt fit on the outside, they are inside. They are still ugly as hell tho"; + public static string ItemDatabase_ItemDefinitions_380 => instance._ItemDatabase_ItemDefinitions_380; + public string _ItemDatabase_ItemDefinitions_380 = "Aezyn"; + public static string ItemDatabase_ItemDefinitions_381 => instance._ItemDatabase_ItemDefinitions_381; + public string _ItemDatabase_ItemDefinitions_381 = "Enchanted with magic as strong as power swing. It's purpose? Hit harder."; + public static string ItemDatabase_ItemDefinitions_382(params object[] objects) => string.Format(instance._ItemDatabase_ItemDefinitions_382, objects); + public string _ItemDatabase_ItemDefinitions_382 = "Magic arrow damage scaling is increased by {0}"; + public static string ItemDatabase_ItemDefinitions_383 => instance._ItemDatabase_ItemDefinitions_383; + public string _ItemDatabase_ItemDefinitions_383 = "Punny's Reflective Ring"; + public static string ItemDatabase_ItemDefinitions_384 => instance._ItemDatabase_ItemDefinitions_384; + public string _ItemDatabase_ItemDefinitions_384 = "Magic arrow is shot in volleys. This effect can stack."; + public static string ItemDatabase_ItemDefinitions_385 => instance._ItemDatabase_ItemDefinitions_385; + public string _ItemDatabase_ItemDefinitions_385 = "Eyepatch"; + public static string ItemDatabase_ItemDefinitions_386 => instance._ItemDatabase_ItemDefinitions_386; + public string _ItemDatabase_ItemDefinitions_386 = "A wise man once said:"; + public static string ItemDatabase_ItemDefinitions_387 => instance._ItemDatabase_ItemDefinitions_387; + public string _ItemDatabase_ItemDefinitions_387 = "Everyone thinks I'm just a one-eyed bloody monster, god damnit... (sobbing)"; + public static string ItemDatabase_ItemDefinitions_388 => instance._ItemDatabase_ItemDefinitions_388; + public string _ItemDatabase_ItemDefinitions_388 = "Explosion damage is also applied when performing jump attacks"; + public static string ItemDatabase_ItemDefinitions_389 => instance._ItemDatabase_ItemDefinitions_389; + public string _ItemDatabase_ItemDefinitions_389 = "Javelin"; + public static string ItemDatabase_ItemDefinitions_390 => instance._ItemDatabase_ItemDefinitions_390; + public string _ItemDatabase_ItemDefinitions_390 = "Warplate"; + public static string ItemDatabase_ItemDefinitions_391 => instance._ItemDatabase_ItemDefinitions_391; + public string _ItemDatabase_ItemDefinitions_391 = "Enchanted with the power of the GOD's armor. It's purpose? Hit harder, daddy."; + public static string ItemDatabase_ItemDefinitions_392 => instance._ItemDatabase_ItemDefinitions_392; + public string _ItemDatabase_ItemDefinitions_392 = "Strength comes from the power of will, the stronger the will the stronger you are"; + public static string ItemDatabase_ItemDefinitions_393 => instance._ItemDatabase_ItemDefinitions_393; + public string _ItemDatabase_ItemDefinitions_393 = "Torso of Strength"; + public static string ItemDatabase_ItemDefinitions_394 => instance._ItemDatabase_ItemDefinitions_394; + public string _ItemDatabase_ItemDefinitions_394 = "Demoman's Vest"; + public static string ItemDatabase_ItemDefinitions_395 => instance._ItemDatabase_ItemDefinitions_395; + public string _ItemDatabase_ItemDefinitions_395 = "What makes me a good demoman? If I were a bad demoman, I wouldn't be sittin' here discussin' it with you, now would I?! LET'S DO IT! Not one of you's gonna survive this! One crossed wire, one wayward pinch of potassium chlorate, one errant twitch, and KA-BLOOIE! I got a manky eye. I'm a black Scottish cyclops. They got more fecking sea monsters in the great Lochett Ness than they got the likes of me. So! T'all you fine dandies, so proud, so cocksure, prancin' about with your heads full of eyeballs... come and get me, I say! I'll be waitin' on you with a whiff of the old brimstone! I'm a Grimm bloody fable with an unhappy bloody end! Oh, they're going to have to glue you back together...IN HELL!"; + public static string ItemDatabase_ItemDefinitions_396 => instance._ItemDatabase_ItemDefinitions_396; + public string _ItemDatabase_ItemDefinitions_396 = "Brawler's Gloves"; + public static string ItemDatabase_ItemDefinitions_397 => instance._ItemDatabase_ItemDefinitions_397; + public string _ItemDatabase_ItemDefinitions_397 = "Nail Gloves"; + public static string ItemDatabase_ItemDefinitions_398 => instance._ItemDatabase_ItemDefinitions_398; + public string _ItemDatabase_ItemDefinitions_398 = "Enchanted with the power of penetration. It's purpose? Hit harder."; + public static string ItemDatabase_ItemDefinitions_399 => instance._ItemDatabase_ItemDefinitions_399; + public string _ItemDatabase_ItemDefinitions_399 = "Hand-held Ballista"; + public static string ItemDatabase_ItemDefinitions_400 => instance._ItemDatabase_ItemDefinitions_400; + public string _ItemDatabase_ItemDefinitions_400 = "Kuldars's Scarf"; + public static string ItemDatabase_ItemDefinitions_401 => instance._ItemDatabase_ItemDefinitions_401; + public string _ItemDatabase_ItemDefinitions_401 = "Strength comes from the power of will"; + public static string ItemDatabase_ItemDefinitions_402 => instance._ItemDatabase_ItemDefinitions_402; + public string _ItemDatabase_ItemDefinitions_402 = "Sword Devil's Scarf"; + public static string ItemDatabase_ItemDefinitions_403 => instance._ItemDatabase_ItemDefinitions_403; + public string _ItemDatabase_ItemDefinitions_403 = "Peasant's Scarf"; + public static string ItemDatabase_ItemDefinitions_404 => instance._ItemDatabase_ItemDefinitions_404; + public string _ItemDatabase_ItemDefinitions_404 = "Bombastinc Choker"; + public static string ItemDatabase_ItemDefinitions_405 => instance._ItemDatabase_ItemDefinitions_405; + public string _ItemDatabase_ItemDefinitions_405 = "Explosive Touch"; + public static string ItemDatabase_ItemDefinitions_406 => instance._ItemDatabase_ItemDefinitions_406; + public string _ItemDatabase_ItemDefinitions_406 = "Enchanted with the power of the explosions armor. It's purpose? Become the true explosion master"; + public static string ItemDatabase_ItemDefinitions_407 => instance._ItemDatabase_ItemDefinitions_407; + public string _ItemDatabase_ItemDefinitions_407 = "Strength comes from the power of will, the stronger the will the stronger the explosion"; + public static string ItemDatabase_ItemDefinitions_408 => instance._ItemDatabase_ItemDefinitions_408; + public string _ItemDatabase_ItemDefinitions_408 = "Volatile Bracers"; + public static string ItemDatabase_ItemDefinitions_409 => instance._ItemDatabase_ItemDefinitions_409; + public string _ItemDatabase_ItemDefinitions_409 = "Volatile Helmet"; + public static string ItemDatabase_ItemDefinitions_410 => instance._ItemDatabase_ItemDefinitions_410; + public string _ItemDatabase_ItemDefinitions_410 = "Gunpowder filled socks"; + public static string ItemDatabase_ItemDefinitions_411 => instance._ItemDatabase_ItemDefinitions_411; + public string _ItemDatabase_ItemDefinitions_411 = "Red Skirt"; + public static string ItemDatabase_ItemDefinitions_412 => instance._ItemDatabase_ItemDefinitions_412; + public string _ItemDatabase_ItemDefinitions_412 = "Gunpowder Boxers"; + public static string ItemDatabase_ItemDefinitions_413 => instance._ItemDatabase_ItemDefinitions_413; + public string _ItemDatabase_ItemDefinitions_413 = "Jihad Vest"; + public static string ItemDatabase_ItemDefinitions_414 => instance._ItemDatabase_ItemDefinitions_414; + public string _ItemDatabase_ItemDefinitions_414 = "Ring of Fortune"; + public static string ItemDatabase_ItemDefinitions_415 => instance._ItemDatabase_ItemDefinitions_415; + public string _ItemDatabase_ItemDefinitions_415 = "Mana Ring"; + public static string ItemDatabase_ItemDefinitions_416 => instance._ItemDatabase_ItemDefinitions_416; + public string _ItemDatabase_ItemDefinitions_416 = "Life Ring"; + public static string ItemDatabase_ItemDefinitions_417 => instance._ItemDatabase_ItemDefinitions_417; + public string _ItemDatabase_ItemDefinitions_417 = "Moritz's Gear"; + public static string ItemDatabase_ItemDefinitions_418 => instance._ItemDatabase_ItemDefinitions_418; + public string _ItemDatabase_ItemDefinitions_418 = "Band of Hurting"; + public static string ItemDatabase_ItemDefinitions_419 => instance._ItemDatabase_ItemDefinitions_419; + public string _ItemDatabase_ItemDefinitions_419 = "A ring for a warrior"; + public static string ItemDatabase_ItemDefinitions_420 => instance._ItemDatabase_ItemDefinitions_420; + public string _ItemDatabase_ItemDefinitions_420 = "Straw Hat"; + public static string ItemDatabase_ItemDefinitions_421 => instance._ItemDatabase_ItemDefinitions_421; + public string _ItemDatabase_ItemDefinitions_421 = "Rusty Javelin"; + public static string ItemDatabase_ItemDefinitions_422 => instance._ItemDatabase_ItemDefinitions_422; + public string _ItemDatabase_ItemDefinitions_422 = "Star Robe"; + public static string ItemDatabase_ItemDefinitions_423 => instance._ItemDatabase_ItemDefinitions_423; + public string _ItemDatabase_ItemDefinitions_423 = "Anger"; + public static string ItemDatabase_ItemDefinitions_424 => instance._ItemDatabase_ItemDefinitions_424; + public string _ItemDatabase_ItemDefinitions_424 = "Downscaled version of Greatsword Rage, made to be wielded by flimsy wizards"; + public static string ItemDatabase_ItemDefinitions_425(params object[] objects) => string.Format(instance._ItemDatabase_ItemDefinitions_425, objects); + public string _ItemDatabase_ItemDefinitions_425 = "Increases maximum stacks of frenzy by {0}"; + public static string ItemDatabase_ItemDefinitions_426 => instance._ItemDatabase_ItemDefinitions_426; + public string _ItemDatabase_ItemDefinitions_426 = "Yuki-Onna Strides"; + public static string ItemDatabase_ItemDefinitions_427(params object[] objects) => string.Format(instance._ItemDatabase_ItemDefinitions_427, objects); + public string _ItemDatabase_ItemDefinitions_427 = "Set Piece:\n2 Pieces- Snow Storm pulls enemies towards you\n3 Pieces - Snow Storm radius, maximum damage, spell cost is doubled, but charge rate is slower\n4 Pieces - Snow storm hit frequency is increased by {0}"; + public static string ItemDatabase_ItemDefinitions_428 => instance._ItemDatabase_ItemDefinitions_428; + public string _ItemDatabase_ItemDefinitions_428 = "Boots looted off a snow demon"; + public static string ItemDatabase_ItemDefinitions_429(params object[] objects) => string.Format(instance._ItemDatabase_ItemDefinitions_429, objects); + public string _ItemDatabase_ItemDefinitions_429 = "Increses snowstorm damage by {0}"; + public static string ItemDatabase_ItemDefinitions_430 => instance._ItemDatabase_ItemDefinitions_430; + public string _ItemDatabase_ItemDefinitions_430 = "Yuki-Onna Greaves"; + public static string ItemDatabase_ItemDefinitions_431 => instance._ItemDatabase_ItemDefinitions_431; + public string _ItemDatabase_ItemDefinitions_431 = "Yuki-Onna Kimono"; + public static string ItemDatabase_ItemDefinitions_432 => instance._ItemDatabase_ItemDefinitions_432; + public string _ItemDatabase_ItemDefinitions_432 = "Yuki-Onna's Headdress"; + public static string ItemDatabase_ItemDefinitions_433(params object[] objects) => string.Format(instance._ItemDatabase_ItemDefinitions_433, objects); + public string _ItemDatabase_ItemDefinitions_433 = "Set Piece:\n2 Pieces- Snow Storm pulls enemies towards you\n3 Pieces - Snow Storm radius, maximum damage, spell cost is doubled, but charge rate is slower\n4 Pieces - Snow storm hit frequency is increased by {0} and damage is increased by {1}"; + public static string ItemDatabase_ItemDefinitions_434 => instance._ItemDatabase_ItemDefinitions_434; + public string _ItemDatabase_ItemDefinitions_434 = "Lama Mega's Blood Bag"; + public static string ItemDatabase_ItemDefinitions_435(params object[] objects) => string.Format(instance._ItemDatabase_ItemDefinitions_435, objects); + public string _ItemDatabase_ItemDefinitions_435 = "Melee hits cause enemies to bleed for {0} of your health as damage for {1} seconds"; + public static string ItemDatabase_ItemDefinitions_436 => instance._ItemDatabase_ItemDefinitions_436; + public string _ItemDatabase_ItemDefinitions_436 = "Socket Drill"; + public static string ItemDatabase_ItemDefinitions_437 => instance._ItemDatabase_ItemDefinitions_437; + public string _ItemDatabase_ItemDefinitions_437 = "A convienient one use tool"; + public static string ItemDatabase_ItemDefinitions_438 => instance._ItemDatabase_ItemDefinitions_438; + public string _ItemDatabase_ItemDefinitions_438 = "What's a drill doing here in a place full of primitive tribes?"; + public static string ItemDatabase_ItemDefinitions_439 => instance._ItemDatabase_ItemDefinitions_439; + public string _ItemDatabase_ItemDefinitions_439 = "Adds one socket to an item, unless the item can't have any more sockets."; + public static string ItemDatabase_ItemDefinitions_440 => instance._ItemDatabase_ItemDefinitions_440; + public string _ItemDatabase_ItemDefinitions_440 = "Moonwalkers"; + public static string ItemDatabase_ItemDefinitions_441 => instance._ItemDatabase_ItemDefinitions_441; + public string _ItemDatabase_ItemDefinitions_441 = "Cha cha real smooth."; + public static string ItemDatabase_ItemDefinitions_442 => instance._ItemDatabase_ItemDefinitions_442; + public string _ItemDatabase_ItemDefinitions_442 = "Inverts movement"; + public static string ItemDatabase_ItemDefinitions_443 => instance._ItemDatabase_ItemDefinitions_443; + public string _ItemDatabase_ItemDefinitions_443 = "Rabbit Ears Hairband"; + public static string ItemDatabase_ItemDefinitions_444 => instance._ItemDatabase_ItemDefinitions_444; + public string _ItemDatabase_ItemDefinitions_444 = "Cute"; + public static string ItemDatabase_ItemDefinitions_445 => instance._ItemDatabase_ItemDefinitions_445; + public string _ItemDatabase_ItemDefinitions_445 = "Bunny Ears Hairband"; + public static string ItemDatabase_ItemDefinitions_446 => instance._ItemDatabase_ItemDefinitions_446; + public string _ItemDatabase_ItemDefinitions_446 = "Iron plate full of holes"; + public static string ItemDatabase_ItemDefinitions_447 => instance._ItemDatabase_ItemDefinitions_447; + public string _ItemDatabase_ItemDefinitions_447 = "The integrity of this item is questionable"; + public static string ItemDatabase_ItemDefinitions_448 => instance._ItemDatabase_ItemDefinitions_448; + public string _ItemDatabase_ItemDefinitions_448 = "Small Tribal Necklace"; + public static string ItemDatabase_ItemDefinitions_449(params object[] objects) => string.Format(instance._ItemDatabase_ItemDefinitions_449, objects); + public string _ItemDatabase_ItemDefinitions_449 = "Increases maximum stacks of frenzy by {0}"; + public static string ItemDatabase_ItemDefinitions_450 => instance._ItemDatabase_ItemDefinitions_450; + public string _ItemDatabase_ItemDefinitions_450 = "Tribal Necklace"; + public static string ItemDatabase_ItemDefinitions_451(params object[] objects) => string.Format(instance._ItemDatabase_ItemDefinitions_451, objects); + public string _ItemDatabase_ItemDefinitions_451 = "Increases maximum stacks of frenzy by {0}"; + public static string ItemDatabase_ItemDefinitions_452 => instance._ItemDatabase_ItemDefinitions_452; + public string _ItemDatabase_ItemDefinitions_452 = "Warlord Necklace"; + public static string ItemDatabase_ItemDefinitions_453(params object[] objects) => string.Format(instance._ItemDatabase_ItemDefinitions_453, objects); + public string _ItemDatabase_ItemDefinitions_453 = "Increases maximum stacks of frenzy by {0}"; + public static string ItemDatabase_ItemDefinitions_454 => instance._ItemDatabase_ItemDefinitions_454; + public string _ItemDatabase_ItemDefinitions_454 = "Travel Band"; + public static string ItemDatabase_ItemDefinitions_455(params object[] objects) => string.Format(instance._ItemDatabase_ItemDefinitions_455, objects); + public string _ItemDatabase_ItemDefinitions_455 = "The distance of blink is increased by {0} feet"; + public static string ItemDatabase_ItemDefinitions_456 => instance._ItemDatabase_ItemDefinitions_456; + public string _ItemDatabase_ItemDefinitions_456 = "Destroyed Void Shard"; + public static string ItemDatabase_ItemDefinitions_457 => instance._ItemDatabase_ItemDefinitions_457; + public string _ItemDatabase_ItemDefinitions_457 = "Only a fraction of its previous might remains"; + public static string ItemDatabase_ItemDefinitions_458(params object[] objects) => string.Format(instance._ItemDatabase_ItemDefinitions_458, objects); + public string _ItemDatabase_ItemDefinitions_458 = "Decrease the cooldown of one ability by {0} second whenever you hit something with melee or ranged attack."; + public static string ItemDatabase_ItemDefinitions_459 => instance._ItemDatabase_ItemDefinitions_459; + public string _ItemDatabase_ItemDefinitions_459 = "Famine Hammer"; + public static string ItemDatabase_ItemDefinitions_460(params object[] objects) => string.Format(instance._ItemDatabase_ItemDefinitions_460, objects); + public string _ItemDatabase_ItemDefinitions_460 = "Chance to weaken enemies, causing them to take more damage from all attacks, is increased by {0}"; + public static string ItemDatabase_ItemDefinitions_461 => instance._ItemDatabase_ItemDefinitions_461; + public string _ItemDatabase_ItemDefinitions_461 = "Curse Hammer"; + public static string ItemDatabase_ItemDefinitions_462 => instance._ItemDatabase_ItemDefinitions_462; + public string _ItemDatabase_ItemDefinitions_462 = "Omnious Weapon"; + public static string ItemDatabase_ItemDefinitions_463(params object[] objects) => string.Format(instance._ItemDatabase_ItemDefinitions_463, objects); + public string _ItemDatabase_ItemDefinitions_463 = "Chance to weaken enemies, causing them to take more damage from all attacks, is increased by {0}"; + public static string ItemDatabase_ItemDefinitions_464 => instance._ItemDatabase_ItemDefinitions_464; + public string _ItemDatabase_ItemDefinitions_464 = "Smasher"; + public static string ItemDatabase_ItemDefinitions_465 => instance._ItemDatabase_ItemDefinitions_465; + public string _ItemDatabase_ItemDefinitions_465 = "Smash damage is increased tripled"; + public static string ItemDatabase_ItemDefinitions_466 => instance._ItemDatabase_ItemDefinitions_466; + public string _ItemDatabase_ItemDefinitions_466 = "Vampiric Band"; + public static string ItemDatabase_ItemDefinitions_467(params object[] objects) => string.Format(instance._ItemDatabase_ItemDefinitions_467, objects); + public string _ItemDatabase_ItemDefinitions_467 = "Gain {0} stamina on ranged and melee hit or double that amount on critical hits"; + public static string ItemDatabase_ItemDefinitions_468 => instance._ItemDatabase_ItemDefinitions_468; + public string _ItemDatabase_ItemDefinitions_468 = "Vampire Ring"; + public static string ItemDatabase_ItemDefinitions_469(params object[] objects) => string.Format(instance._ItemDatabase_ItemDefinitions_469, objects); + public string _ItemDatabase_ItemDefinitions_469 = "Gain {0} stamina on ranged and melee hit or double that amount on critical hits"; + public static string ItemDatabase_ItemDefinitions_470 => instance._ItemDatabase_ItemDefinitions_470; + public string _ItemDatabase_ItemDefinitions_470 = "Tricksters Scarf"; + public static string ItemDatabase_ItemDefinitions_471(params object[] objects) => string.Format(instance._ItemDatabase_ItemDefinitions_471, objects); + public string _ItemDatabase_ItemDefinitions_471 = "Magic arrow shoots {0} additional arrow."; + public static string ItemDatabase_ItemDefinitions_472 => instance._ItemDatabase_ItemDefinitions_472; + public string _ItemDatabase_ItemDefinitions_472 = "Magus' Necktie"; + public static string ItemDatabase_ItemDefinitions_473(params object[] objects) => string.Format(instance._ItemDatabase_ItemDefinitions_473, objects); + public string _ItemDatabase_ItemDefinitions_473 = "Magic arrow shoots {0} additional arrows."; + public static string ItemDatabase_ItemDefinitions_474 => instance._ItemDatabase_ItemDefinitions_474; + public string _ItemDatabase_ItemDefinitions_474 = "Discounted Knockoff Magic Quiver"; + public static string ItemDatabase_ItemDefinitions_475(params object[] objects) => string.Format(instance._ItemDatabase_ItemDefinitions_475, objects); + public string _ItemDatabase_ItemDefinitions_475 = "There's a {0} increased chance to not consume ammo when firing a projectile."; + public static string ItemDatabase_ItemDefinitions_476 => instance._ItemDatabase_ItemDefinitions_476; + public string _ItemDatabase_ItemDefinitions_476 = "Magic Quiver"; + public static string ItemDatabase_ItemDefinitions_477(params object[] objects) => string.Format(instance._ItemDatabase_ItemDefinitions_477, objects); + public string _ItemDatabase_ItemDefinitions_477 = "There's a {0} increased chance to not consume ammo when firing a projectile."; + public static string ItemDatabase_ItemDefinitions_478 => instance._ItemDatabase_ItemDefinitions_478; + public string _ItemDatabase_ItemDefinitions_478 = "Improved Magic Quiver"; + public static string ItemDatabase_ItemDefinitions_479(params object[] objects) => string.Format(instance._ItemDatabase_ItemDefinitions_479, objects); + public string _ItemDatabase_ItemDefinitions_479 = "There's a {0} increased chance to not consume ammo when firing a projectile."; + public static string ItemDatabase_ItemDefinitions_480 => instance._ItemDatabase_ItemDefinitions_480; + public string _ItemDatabase_ItemDefinitions_480 = "Factory Quiver"; + public static string ItemDatabase_ItemDefinitions_481(params object[] objects) => string.Format(instance._ItemDatabase_ItemDefinitions_481, objects); + public string _ItemDatabase_ItemDefinitions_481 = "There's a {0} increased chance to not consume ammo when firing a projectile."; + public static string ItemDatabase_ItemDefinitions_482 => instance._ItemDatabase_ItemDefinitions_482; + public string _ItemDatabase_ItemDefinitions_482 = "Enzyme STR/34"; + public static string ItemDatabase_ItemDefinitions_483 => instance._ItemDatabase_ItemDefinitions_483; + public string _ItemDatabase_ItemDefinitions_483 = "A substance which results in surprising changes to gear"; + public static string ItemDatabase_ItemDefinitions_484 => instance._ItemDatabase_ItemDefinitions_484; + public string _ItemDatabase_ItemDefinitions_484 = "Changes Vitality, Agility or Intelligence stat on an item to Strength or changes Ranged or Spell damage stat to Melee Damage"; + public static string ItemDatabase_ItemDefinitions_485 => instance._ItemDatabase_ItemDefinitions_485; + public string _ItemDatabase_ItemDefinitions_485 = "Enzyme INT/33"; + public static string ItemDatabase_ItemDefinitions_486 => instance._ItemDatabase_ItemDefinitions_486; + public string _ItemDatabase_ItemDefinitions_486 = "Changes Vitality, Agility or Strength stat on an item to Intelligence or changes Ranged or Melee damage stat to Spell Damage"; + public static string ItemDatabase_ItemDefinitions_487 => instance._ItemDatabase_ItemDefinitions_487; + public string _ItemDatabase_ItemDefinitions_487 = "Enzyme AGI/39"; + public static string ItemDatabase_ItemDefinitions_488 => instance._ItemDatabase_ItemDefinitions_488; + public string _ItemDatabase_ItemDefinitions_488 = "Changes Vitality, Intelligence or Strength stat on an item to Agility or changes Melee or Spell damage stat to Ranged Damage"; + public static string ItemDatabase_ItemDefinitions_489 => instance._ItemDatabase_ItemDefinitions_489; + public string _ItemDatabase_ItemDefinitions_489 = "Enzyme VIT/449"; + public static string ItemDatabase_ItemDefinitions_490 => instance._ItemDatabase_ItemDefinitions_490; + public string _ItemDatabase_ItemDefinitions_490 = "Changes Agility, Intelligence or Strength stat on an item to Vitality"; + public static string ItemDatabase_ItemDefinitions_491 => instance._ItemDatabase_ItemDefinitions_491; + public string _ItemDatabase_ItemDefinitions_491 = "Stomach Acid"; + public static string ItemDatabase_ItemDefinitions_492 => instance._ItemDatabase_ItemDefinitions_492; + public string _ItemDatabase_ItemDefinitions_492 = "Removes all stats with negative values from an item"; + public static string ItemDatabase_ItemDefinitions_493 => instance._ItemDatabase_ItemDefinitions_493; + public string _ItemDatabase_ItemDefinitions_493 = "Elite Stomach Acid"; + public static string ItemDatabase_ItemDefinitions_494 => instance._ItemDatabase_ItemDefinitions_494; + public string _ItemDatabase_ItemDefinitions_494 = "Changes negative stat values into positive values on an item"; + public static string ItemDatabase_ItemDefinitions_495 => instance._ItemDatabase_ItemDefinitions_495; + public string _ItemDatabase_ItemDefinitions_495 = "Crimson Solution"; + public static string ItemDatabase_ItemDefinitions_496 => instance._ItemDatabase_ItemDefinitions_496; + public string _ItemDatabase_ItemDefinitions_496 = "Upgrades item of any rarity to one of the same type but of Legendary rarity"; + public static string ItemDatabase_ItemDefinitions_497 => instance._ItemDatabase_ItemDefinitions_497; + public string _ItemDatabase_ItemDefinitions_497 = "Weak Armor Hardening Mixture"; + public static string ItemDatabase_ItemDefinitions_498 => instance._ItemDatabase_ItemDefinitions_498; + public string _ItemDatabase_ItemDefinitions_498 = "Adds Armor Stat to a piece of equipment if the item does not already have it"; + public static string ItemDatabase_ItemDefinitions_499 => instance._ItemDatabase_ItemDefinitions_499; + public string _ItemDatabase_ItemDefinitions_499 = "Upgraded Armor Hardening Mixture"; + public static string ItemDatabase_ItemDefinitions_500 => instance._ItemDatabase_ItemDefinitions_500; + public string _ItemDatabase_ItemDefinitions_500 = "Adds Damage Reduction Stat to a piece of equipment if the item does not already have it"; + public static string ItemDatabase_ItemDefinitions_501 => instance._ItemDatabase_ItemDefinitions_501; + public string _ItemDatabase_ItemDefinitions_501 = "Chaos Water"; + public static string ItemDatabase_ItemDefinitions_502 => instance._ItemDatabase_ItemDefinitions_502; + public string _ItemDatabase_ItemDefinitions_502 = "Rerolls all stats on an item of rarity no higher than orange"; + public static string ItemDatabase_ItemDefinitions_503 => instance._ItemDatabase_ItemDefinitions_503; + public string _ItemDatabase_ItemDefinitions_503 = "Upgraded Chaos Water"; + public static string ItemDatabase_ItemDefinitions_504 => instance._ItemDatabase_ItemDefinitions_504; + public string _ItemDatabase_ItemDefinitions_504 = "Rerolls all stats on an item of any rarity"; + public static string ItemDatabase_ItemDefinitions_505 => instance._ItemDatabase_ItemDefinitions_505; + public string _ItemDatabase_ItemDefinitions_505 = "Gun Blade"; + public static string ItemDatabase_ItemDefinitions_506(params object[] objects) => string.Format(instance._ItemDatabase_ItemDefinitions_506, objects); + public string _ItemDatabase_ItemDefinitions_506 = "Increases pistol damage by {0}"; + public static string ItemDatabase_ItemDefinitions_507 => instance._ItemDatabase_ItemDefinitions_507; + public string _ItemDatabase_ItemDefinitions_507 = "Sharpshooter's Axe"; + public static string ItemDatabase_ItemDefinitions_508(params object[] objects) => string.Format(instance._ItemDatabase_ItemDefinitions_508, objects); + public string _ItemDatabase_ItemDefinitions_508 = "Increases pistol headshot chance by {0} and pistol damage by {1}"; + public static string ItemDatabase_ItemDefinitions_509 => instance._ItemDatabase_ItemDefinitions_509; + public string _ItemDatabase_ItemDefinitions_509 = "Shield Blade"; + public static string ItemDatabase_ItemDefinitions_510 => instance._ItemDatabase_ItemDefinitions_510; + public string _ItemDatabase_ItemDefinitions_510 = "So large can be used as a shield"; + public static string ItemDatabase_ItemDefinitions_511 => instance._ItemDatabase_ItemDefinitions_511; + public string _ItemDatabase_ItemDefinitions_511 = "A normal human cannot lift this weapon."; + public static string ItemDatabase_ItemDefinitions_512 => instance._ItemDatabase_ItemDefinitions_512; + public string _ItemDatabase_ItemDefinitions_512 = "Blunt Blade for Bashing Skulls"; + public static string ItemDatabase_ItemDefinitions_513(params object[] objects) => string.Format(instance._ItemDatabase_ItemDefinitions_513, objects); + public string _ItemDatabase_ItemDefinitions_513 = "Bash damage debuff on enemies is increased by {0}"; + public static string ItemDatabase_ItemDefinitions_514 => instance._ItemDatabase_ItemDefinitions_514; + public string _ItemDatabase_ItemDefinitions_514 = "Madman's Legacy"; + public static string ItemDatabase_ItemDefinitions_515(params object[] objects) => string.Format(instance._ItemDatabase_ItemDefinitions_515, objects); + public string _ItemDatabase_ItemDefinitions_515 = "Frenzy damage per stack is increased by {0}"; + public static string ItemDatabase_ItemDefinitions_516 => instance._ItemDatabase_ItemDefinitions_516; + public string _ItemDatabase_ItemDefinitions_516 = "Buckler"; + public static string ItemDatabase_ItemDefinitions_517 => instance._ItemDatabase_ItemDefinitions_517; + public string _ItemDatabase_ItemDefinitions_517 = "Pyromancy Mask"; + public static string ItemDatabase_ItemDefinitions_518(params object[] objects) => string.Format(instance._ItemDatabase_ItemDefinitions_518, objects); + public string _ItemDatabase_ItemDefinitions_518 = "Ignited enemies burn for {0} longer."; + public static string ItemDatabase_ItemDefinitions_519 => instance._ItemDatabase_ItemDefinitions_519; + public string _ItemDatabase_ItemDefinitions_519 = "Ember Mask"; + public static string ItemDatabase_ItemDefinitions_520(params object[] objects) => string.Format(instance._ItemDatabase_ItemDefinitions_520, objects); + public string _ItemDatabase_ItemDefinitions_520 = "Ignited enemies burn for {0} longer and fire ticks thrice as fast."; + public static string ItemDatabase_ItemDefinitions_521 => instance._ItemDatabase_ItemDefinitions_521; + public string _ItemDatabase_ItemDefinitions_521 = "Flame Pauldrons"; + public static string ItemDatabase_ItemDefinitions_522(params object[] objects) => string.Format(instance._ItemDatabase_ItemDefinitions_522, objects); + public string _ItemDatabase_ItemDefinitions_522 = "Firebolt costs {0} additional energy to cast and its damage scaling is increased by {1}"; + public static string ItemDatabase_ItemDefinitions_523 => instance._ItemDatabase_ItemDefinitions_523; + public string _ItemDatabase_ItemDefinitions_523 = "Ancient Scroll"; + public static string ItemDatabase_ItemDefinitions_524 => instance._ItemDatabase_ItemDefinitions_524; + public string _ItemDatabase_ItemDefinitions_524 = "Guide on Tearing Spacetime"; + public static string ItemDatabase_ItemDefinitions_525 => instance._ItemDatabase_ItemDefinitions_525; + public string _ItemDatabase_ItemDefinitions_525 = "Blink creates an explosion at the exit point, and the damage of the explosion is increased by velocity and the radius is increased by the distance of blink"; + public static string ItemDatabase_ItemDefinitions_526 => instance._ItemDatabase_ItemDefinitions_526; + public string _ItemDatabase_ItemDefinitions_526 = "300th Spear"; + public static string ItemDatabase_ItemDefinitions_527 => instance._ItemDatabase_ItemDefinitions_527; + public string _ItemDatabase_ItemDefinitions_527 = "Stone Pauldrons"; + public static string ItemDatabase_ItemDefinitions_528(params object[] objects) => string.Format(instance._ItemDatabase_ItemDefinitions_528, objects); + public string _ItemDatabase_ItemDefinitions_528 = "All damage increased by {0}"; + public static string ItemDatabase_ItemDefinitions_529 => instance._ItemDatabase_ItemDefinitions_529; + public string _ItemDatabase_ItemDefinitions_529 = "Iron Shoulder Pads"; + public static string ItemDatabase_ItemDefinitions_530(params object[] objects) => string.Format(instance._ItemDatabase_ItemDefinitions_530, objects); + public string _ItemDatabase_ItemDefinitions_530 = "All damage increased by {0}"; + public static string ItemDatabase_ItemDefinitions_531 => instance._ItemDatabase_ItemDefinitions_531; + public string _ItemDatabase_ItemDefinitions_531 = "Steel Shoulder Pads"; + public static string ItemDatabase_ItemDefinitions_532(params object[] objects) => string.Format(instance._ItemDatabase_ItemDefinitions_532, objects); + public string _ItemDatabase_ItemDefinitions_532 = "All damage increased by {0}"; + public static string ItemDatabase_ItemDefinitions_533 => instance._ItemDatabase_ItemDefinitions_533; + public string _ItemDatabase_ItemDefinitions_533 = "Battle scarred Shoulder Pads"; + public static string ItemDatabase_ItemDefinitions_534(params object[] objects) => string.Format(instance._ItemDatabase_ItemDefinitions_534, objects); + public string _ItemDatabase_ItemDefinitions_534 = "All damage increased by {0}"; + public static string ItemDatabase_ItemDefinitions_535 => instance._ItemDatabase_ItemDefinitions_535; + public string _ItemDatabase_ItemDefinitions_535 = "Mystery Shoulder Pads"; + public static string ItemDatabase_ItemDefinitions_536(params object[] objects) => string.Format(instance._ItemDatabase_ItemDefinitions_536, objects); + public string _ItemDatabase_ItemDefinitions_536 = "All damage increased by {0}"; + public static string ItemDatabase_ItemDefinitions_537 => instance._ItemDatabase_ItemDefinitions_537; + public string _ItemDatabase_ItemDefinitions_537 = "Stone Shield"; + public static string ItemDatabase_ItemDefinitions_538 => instance._ItemDatabase_ItemDefinitions_538; + public string _ItemDatabase_ItemDefinitions_538 = "Iron Shield"; + public static string ItemDatabase_ItemDefinitions_539 => instance._ItemDatabase_ItemDefinitions_539; + public string _ItemDatabase_ItemDefinitions_539 = "Steel Tower Shield"; + public static string ItemDatabase_ItemDefinitions_540 => instance._ItemDatabase_ItemDefinitions_540; + public string _ItemDatabase_ItemDefinitions_540 = "Guardian"; + public static string ItemDatabase_ItemDefinitions_541 => instance._ItemDatabase_ItemDefinitions_541; + public string _ItemDatabase_ItemDefinitions_541 = "Mystery Shield"; + public static string ItemDatabase_ItemDefinitions_542 => instance._ItemDatabase_ItemDefinitions_542; + public string _ItemDatabase_ItemDefinitions_542 = "Light Boot"; + public static string ItemDatabase_ItemDefinitions_543 => instance._ItemDatabase_ItemDefinitions_543; + public string _ItemDatabase_ItemDefinitions_543 = "Iron Boots"; + public static string ItemDatabase_ItemDefinitions_544 => instance._ItemDatabase_ItemDefinitions_544; + public string _ItemDatabase_ItemDefinitions_544 = "Steel Boots"; + public static string ItemDatabase_ItemDefinitions_545 => instance._ItemDatabase_ItemDefinitions_545; + public string _ItemDatabase_ItemDefinitions_545 = "Threads"; + public static string ItemDatabase_ItemDefinitions_546 => instance._ItemDatabase_ItemDefinitions_546; + public string _ItemDatabase_ItemDefinitions_546 = "Mystery Boots"; + public static string ItemDatabase_ItemDefinitions_547 => instance._ItemDatabase_ItemDefinitions_547; + public string _ItemDatabase_ItemDefinitions_547 = "Wraps"; + public static string ItemDatabase_ItemDefinitions_548 => instance._ItemDatabase_ItemDefinitions_548; + public string _ItemDatabase_ItemDefinitions_548 = "Steel Gauntlet"; + public static string ItemDatabase_ItemDefinitions_549 => instance._ItemDatabase_ItemDefinitions_549; + public string _ItemDatabase_ItemDefinitions_549 = "Titanium Gauntlet"; + public static string ItemDatabase_ItemDefinitions_550 => instance._ItemDatabase_ItemDefinitions_550; + public string _ItemDatabase_ItemDefinitions_550 = "Mystery Gauntlet"; + public static string ItemDatabase_ItemDefinitions_551 => instance._ItemDatabase_ItemDefinitions_551; + public string _ItemDatabase_ItemDefinitions_551 = "Leather Tasset"; + public static string ItemDatabase_ItemDefinitions_552 => instance._ItemDatabase_ItemDefinitions_552; + public string _ItemDatabase_ItemDefinitions_552 = "Iron Tasset"; + public static string ItemDatabase_ItemDefinitions_553 => instance._ItemDatabase_ItemDefinitions_553; + public string _ItemDatabase_ItemDefinitions_553 = "Steel Tasset"; + public static string ItemDatabase_ItemDefinitions_554 => instance._ItemDatabase_ItemDefinitions_554; + public string _ItemDatabase_ItemDefinitions_554 = "Black Steel Leggins"; + public static string ItemDatabase_ItemDefinitions_555 => instance._ItemDatabase_ItemDefinitions_555; + public string _ItemDatabase_ItemDefinitions_555 = "Mystery Leggins"; + public static string ItemDatabase_ItemDefinitions_556 => instance._ItemDatabase_ItemDefinitions_556; + public string _ItemDatabase_ItemDefinitions_556 = "Leather Vest"; + public static string ItemDatabase_ItemDefinitions_557 => instance._ItemDatabase_ItemDefinitions_557; + public string _ItemDatabase_ItemDefinitions_557 = "Iron Breastplate"; + public static string ItemDatabase_ItemDefinitions_558 => instance._ItemDatabase_ItemDefinitions_558; + public string _ItemDatabase_ItemDefinitions_558 = "Steel Breastplate"; + public static string ItemDatabase_ItemDefinitions_559 => instance._ItemDatabase_ItemDefinitions_559; + public string _ItemDatabase_ItemDefinitions_559 = "Silver Armor"; + public static string ItemDatabase_ItemDefinitions_560 => instance._ItemDatabase_ItemDefinitions_560; + public string _ItemDatabase_ItemDefinitions_560 = "Mystery Breastplate"; + public static string ItemDatabase_ItemDefinitions_561 => instance._ItemDatabase_ItemDefinitions_561; + public string _ItemDatabase_ItemDefinitions_561 = "Cloth Band"; + public static string ItemDatabase_ItemDefinitions_562 => instance._ItemDatabase_ItemDefinitions_562; + public string _ItemDatabase_ItemDefinitions_562 = "Iron Wristguard"; + public static string ItemDatabase_ItemDefinitions_563 => instance._ItemDatabase_ItemDefinitions_563; + public string _ItemDatabase_ItemDefinitions_563 = "Steel Wristguard"; + public static string ItemDatabase_ItemDefinitions_564 => instance._ItemDatabase_ItemDefinitions_564; + public string _ItemDatabase_ItemDefinitions_564 = "Baron Wristguards"; + public static string ItemDatabase_ItemDefinitions_565 => instance._ItemDatabase_ItemDefinitions_565; + public string _ItemDatabase_ItemDefinitions_565 = "Mystery Wristguards"; + public static string ItemDatabase_ItemDefinitions_566 => instance._ItemDatabase_ItemDefinitions_566; + public string _ItemDatabase_ItemDefinitions_566 = "Iron Helmet"; + public static string ItemDatabase_ItemDefinitions_567 => instance._ItemDatabase_ItemDefinitions_567; + public string _ItemDatabase_ItemDefinitions_567 = "Steel Helmet"; + public static string ItemDatabase_ItemDefinitions_568 => instance._ItemDatabase_ItemDefinitions_568; + public string _ItemDatabase_ItemDefinitions_568 = "Armored Hood"; + public static string ItemDatabase_ItemDefinitions_569 => instance._ItemDatabase_ItemDefinitions_569; + public string _ItemDatabase_ItemDefinitions_569 = "Mystery Helmet"; + public static string ItemDatabase_ItemDefinitions_570 => instance._ItemDatabase_ItemDefinitions_570; + public string _ItemDatabase_ItemDefinitions_570 = "Yorium's Gaze"; + public static string ItemDatabase_ItemDefinitions_571(params object[] objects) => string.Format(instance._ItemDatabase_ItemDefinitions_571, objects); + public string _ItemDatabase_ItemDefinitions_571 = "SET PIECE. Melee weapon range is increased by {0}, attack cost in stamina is halved."; + public static string ItemDatabase_ItemDefinitions_572(params object[] objects) => string.Format(instance._ItemDatabase_ItemDefinitions_572, objects); + public string _ItemDatabase_ItemDefinitions_572 = "Set Piece:\n2 Pieces- Berserk does not apply exhaustion when it ends\n3 Pieces - Berserk duration is increased by {0} seconds\n4 Pieces - Each second of berserk being in effect increases damage by {1}.\n5 Pieces - For the first {2} seconds of Berserk attack speed increases by {3} per second, and lasts till the end of the spell's duration."; + public static string ItemDatabase_ItemDefinitions_573 => instance._ItemDatabase_ItemDefinitions_573; + public string _ItemDatabase_ItemDefinitions_573 = "Yorium's Ruthlessness"; + public static string ItemDatabase_ItemDefinitions_574 => instance._ItemDatabase_ItemDefinitions_574; + public string _ItemDatabase_ItemDefinitions_574 = "Yorium's Burden"; + public static string ItemDatabase_ItemDefinitions_575 => instance._ItemDatabase_ItemDefinitions_575; + public string _ItemDatabase_ItemDefinitions_575 = "Yorium's Resolve"; + public static string ItemDatabase_ItemDefinitions_576 => instance._ItemDatabase_ItemDefinitions_576; + public string _ItemDatabase_ItemDefinitions_576 = "Atomic Augmentation"; + public static string ItemDatabase_ItemDefinitions_577 => instance._ItemDatabase_ItemDefinitions_577; + public string _ItemDatabase_ItemDefinitions_577 = "Yorium's Assault"; + public static string ItemDatabase_ItemDefinitions_578 => instance._ItemDatabase_ItemDefinitions_578; + public string _ItemDatabase_ItemDefinitions_578 = "Undying Promise"; + public static string ItemDatabase_ItemDefinitions_579(params object[] objects) => string.Format(instance._ItemDatabase_ItemDefinitions_579, objects); + public string _ItemDatabase_ItemDefinitions_579 = "Resist lethal damage on a {0} minute cooldown"; + public static string ItemDatabase_ItemDefinitions_581(params object[] objects) => string.Format(instance._ItemDatabase_ItemDefinitions_581, objects); + public string _ItemDatabase_ItemDefinitions_581 = "Snap freeze damage scaling is increased by {0} and the slow duration is increased by {1} seconds"; + public static string ItemDatabase_ItemDefinitions_582 => instance._ItemDatabase_ItemDefinitions_582; + public string _ItemDatabase_ItemDefinitions_582 = "If equipped on a weapon, increases ranged damage by "; + public static string ItemDatabase_ItemDefinitions_583 => instance._ItemDatabase_ItemDefinitions_583; + public string _ItemDatabase_ItemDefinitions_583 = "If equipped on boots, increases movement speed by "; + public static string ItemDatabase_ItemDefinitions_584 => instance._ItemDatabase_ItemDefinitions_584; + public string _ItemDatabase_ItemDefinitions_584 = "If equipped on a helmet, increases critical hit chance by "; + public static string ItemDatabase_ItemDefinitions_585 => instance._ItemDatabase_ItemDefinitions_585; + public string _ItemDatabase_ItemDefinitions_585 = "If equipped on accessories, increases ranged armor piercing by "; + public static string ItemDatabase_ItemDefinitions_586 => instance._ItemDatabase_ItemDefinitions_586; + public string _ItemDatabase_ItemDefinitions_586 = "If equipped in other slots, increases agility by "; + public static string ItemDatabase_ItemDefinitions_587 => instance._ItemDatabase_ItemDefinitions_587; + public string _ItemDatabase_ItemDefinitions_587 = "If equipped on a weapon, increases melee damage by "; + public static string ItemDatabase_ItemDefinitions_588 => instance._ItemDatabase_ItemDefinitions_588; + public string _ItemDatabase_ItemDefinitions_588 = "If equipped on boots, decreases damage taken by "; + public static string ItemDatabase_ItemDefinitions_589 => instance._ItemDatabase_ItemDefinitions_589; + public string _ItemDatabase_ItemDefinitions_589 = "If equipped on a helmet, increases attack speed by "; + public static string ItemDatabase_ItemDefinitions_590 => instance._ItemDatabase_ItemDefinitions_590; + public string _ItemDatabase_ItemDefinitions_590 = "If equipped on accessories, increases melee armor piercing by "; + public static string ItemDatabase_ItemDefinitions_591 => instance._ItemDatabase_ItemDefinitions_591; + public string _ItemDatabase_ItemDefinitions_591 = "If equipped in other slots, increases strength by "; + public static string ItemDatabase_ItemDefinitions_592 => instance._ItemDatabase_ItemDefinitions_592; + public string _ItemDatabase_ItemDefinitions_592 = "If equipped on a weapon, increases magic damage by "; + public static string ItemDatabase_ItemDefinitions_593 => instance._ItemDatabase_ItemDefinitions_593; + public string _ItemDatabase_ItemDefinitions_593 = "If equipped on boots, decreases spell cost by "; + public static string ItemDatabase_ItemDefinitions_594 => instance._ItemDatabase_ItemDefinitions_594; + public string _ItemDatabase_ItemDefinitions_594 = "If equipped on a helmet, decreases spell cooldown by "; + public static string ItemDatabase_ItemDefinitions_595 => instance._ItemDatabase_ItemDefinitions_595; + public string _ItemDatabase_ItemDefinitions_595 = "If equipped on accessories, increases energy on hit by "; + public static string ItemDatabase_ItemDefinitions_596 => instance._ItemDatabase_ItemDefinitions_596; + public string _ItemDatabase_ItemDefinitions_596 = "If equipped in other slots, increases intelligence by "; + public static string ItemDatabase_ItemDefinitions_597 => instance._ItemDatabase_ItemDefinitions_597; + public string _ItemDatabase_ItemDefinitions_597 = "If equipped on a weapon, increases all healing by "; + public static string ItemDatabase_ItemDefinitions_598 => instance._ItemDatabase_ItemDefinitions_598; + public string _ItemDatabase_ItemDefinitions_598 = "If equipped on boots, increases magic find by "; + public static string ItemDatabase_ItemDefinitions_599 => instance._ItemDatabase_ItemDefinitions_599; + public string _ItemDatabase_ItemDefinitions_599 = "If equipped on a helmet, increases experience gained by "; + public static string ItemDatabase_ItemDefinitions_600 => instance._ItemDatabase_ItemDefinitions_600; + public string _ItemDatabase_ItemDefinitions_600 = "If equipped on accessories, increases life per second by "; + public static string ItemDatabase_ItemDefinitions_601 => instance._ItemDatabase_ItemDefinitions_601; + public string _ItemDatabase_ItemDefinitions_601 = "If equipped in other slots, increases vitality by "; + public static string ItemDatabase_ItemDefinitions_602 => instance._ItemDatabase_ItemDefinitions_602; + public string _ItemDatabase_ItemDefinitions_602 = "If equipped on a weapon, increases crit damage by "; + public static string ItemDatabase_ItemDefinitions_603 => instance._ItemDatabase_ItemDefinitions_603; + public string _ItemDatabase_ItemDefinitions_603 = "If equipped on boots, increases resistance to magic by "; + public static string ItemDatabase_ItemDefinitions_604 => instance._ItemDatabase_ItemDefinitions_604; + public string _ItemDatabase_ItemDefinitions_604 = "If equipped on a helmet, increases health by "; + public static string ItemDatabase_ItemDefinitions_605 => instance._ItemDatabase_ItemDefinitions_605; + public string _ItemDatabase_ItemDefinitions_605 = "If equipped on accessories, increases thorns by "; + public static string ItemDatabase_ItemDefinitions_606 => instance._ItemDatabase_ItemDefinitions_606; + public string _ItemDatabase_ItemDefinitions_606 = "If equipped in other slots, increases armor by "; + public static string ItemDatabase_ItemDefinitions_607 => instance._ItemDatabase_ItemDefinitions_607; + public string _ItemDatabase_ItemDefinitions_607 = "Firebolt deals increased damage"; + public static string ItemDatabase_ItemDefinitions_608 => instance._ItemDatabase_ItemDefinitions_608; + public string _ItemDatabase_ItemDefinitions_608 = "\nWarcry gives damage resistance."; + public static string ItemDatabase_ItemDefinitions_609 => instance._ItemDatabase_ItemDefinitions_609; + public string _ItemDatabase_ItemDefinitions_609 = "Devil Dancers"; + public static string ItemDatabase_ItemDefinitions_610 => instance._ItemDatabase_ItemDefinitions_610; + public string _ItemDatabase_ItemDefinitions_610 = "When consuming frenzy stacks, gain 5% crit chance for 10 seconds for every stack consumed. Gain 3% attack speed per frenzy stack active."; + public static string ItemDatabase_ItemDefinitions_611 => instance._ItemDatabase_ItemDefinitions_611; + public string _ItemDatabase_ItemDefinitions_611 = "Call of the Ancients"; + public static string ItemDatabase_ItemDefinitions_612(params object[] objects) => string.Format(instance._ItemDatabase_ItemDefinitions_612, objects); + public string _ItemDatabase_ItemDefinitions_612 = "Berserk increases all damage by additional {0}"; + public static string ItemDatabase_ItemDefinitions_613 => instance._ItemDatabase_ItemDefinitions_613; + public string _ItemDatabase_ItemDefinitions_613 = "Berserker's Wrath"; + public static string ItemDatabase_ItemDefinitions_614 => instance._ItemDatabase_ItemDefinitions_614; + public string _ItemDatabase_ItemDefinitions_614 = "Viking Amulet"; + public static string ItemDatabase_ItemDefinitions_615(params object[] objects) => string.Format(instance._ItemDatabase_ItemDefinitions_615, objects); + public string _ItemDatabase_ItemDefinitions_615 = "Increases attack and movement speed during berserk by {0}"; + public static string ItemDatabase_ItemDefinitions_616 => instance._ItemDatabase_ItemDefinitions_616; + public string _ItemDatabase_ItemDefinitions_616 = "Pedant of Skallagrim"; + public static string ItemDatabase_ItemDefinitions_617 => instance._ItemDatabase_ItemDefinitions_617; + public string _ItemDatabase_ItemDefinitions_617 = "Wristguards of The Sanctuary Keeper"; + public static string ItemDatabase_ItemDefinitions_618(params object[] objects) => string.Format(instance._ItemDatabase_ItemDefinitions_618, objects); + public string _ItemDatabase_ItemDefinitions_618 = "Allies inside Sanctuary have {0} increased cooldown rate and attacks use {1} less resources"; //MainMenu_Hints public static string MainMenu_Hints_1 => instance._MainMenu_Hints_1; @@ -3286,9 +3286,9 @@ public partial class Translations //Player\Spells\SpellDataBase.cs - //Items\ItemDataBase_StatDefinitions.cs + //Items\ItemDatabase_StatDefinitions.cs - //Items\ItemDataBase_ItemDefinitions.cs + //Items\ItemDatabase_ItemDefinitions.cs //Items\Item.cs @@ -4149,704 +4149,704 @@ public partial class Translations SpellDataBase_50:: "Firebolt" SpellDataBase_51:: "Puts your weapon away and instead allows you to summon bone chilling blizzard around you that progressively gets stronger. After {0} seconds spell reaches maximum power - damage and radius is at it's peak\nAttacks twice per second, frost seeps into enemy armor reducing it by a fraction of damage dealt" SpellDataBase_52:: "Snow Storm" -ItemDataBase_StatDefinitions_1:: "Health" -ItemDataBase_StatDefinitions_2:: "Energy" -ItemDataBase_StatDefinitions_3:: "Health/sec" -ItemDataBase_StatDefinitions_4:: "Stamina/sec" -ItemDataBase_StatDefinitions_5:: "Energy regen" -ItemDataBase_StatDefinitions_6:: "Life regen" -ItemDataBase_StatDefinitions_7:: "Critical hit chance" -ItemDataBase_StatDefinitions_8:: "Life on hit" -ItemDataBase_StatDefinitions_9:: "Dodge chance" -ItemDataBase_StatDefinitions_10:: "Magic resistance" -ItemDataBase_StatDefinitions_11:: "Experience" -ItemDataBase_StatDefinitions_12:: "Spell damage" -ItemDataBase_StatDefinitions_13:: "Melee damage" -ItemDataBase_StatDefinitions_14:: "Ranged damage" -ItemDataBase_StatDefinitions_15:: "Base spell damage" -ItemDataBase_StatDefinitions_16:: "Base melee damage" -ItemDataBase_StatDefinitions_17:: "Base ranged damage" -ItemDataBase_StatDefinitions_18:: "Energy/agility" -ItemDataBase_StatDefinitions_19:: "Health/vitality" -ItemDataBase_StatDefinitions_20:: "Spell damage/intelligence" -ItemDataBase_StatDefinitions_21:: "Melee damage/strength" -ItemDataBase_StatDefinitions_22:: "Recovery" -ItemDataBase_StatDefinitions_23:: "PERMANENT PERK POINTS" -ItemDataBase_StatDefinitions_24:: " / " -ItemDataBase_StatDefinitions_25:: "EXPERIENCE" -ItemDataBase_StatDefinitions_26:: "Weapon length" -ItemDataBase_StatDefinitions_27:: "Attack cost reduction" -ItemDataBase_StatDefinitions_28:: "Spell cost to stamina" -ItemDataBase_StatDefinitions_29:: "Energy/sec" -ItemDataBase_StatDefinitions_30:: "Ranged damage/agility" -ItemDataBase_StatDefinitions_31:: "Melee armor piercing" -ItemDataBase_StatDefinitions_32:: "Ranged armor piercing" -ItemDataBase_StatDefinitions_33:: "Armor piercing" -ItemDataBase_StatDefinitions_34:: "Refund points" -ItemDataBase_StatDefinitions_35:: "Headshot damage" -ItemDataBase_StatDefinitions_36:: "Fire damage" -ItemDataBase_StatDefinitions_37:: "Chance on hit to slow" -ItemDataBase_StatDefinitions_38:: "Chance on hit to bleed" -ItemDataBase_StatDefinitions_39:: "Chance on hit to weaken" -ItemDataBase_StatDefinitions_40:: "Dynamite & bomb damage" -ItemDataBase_StatDefinitions_41:: "Spear damage" -ItemDataBase_StatDefinitions_42:: "Extra carried Sticks" -ItemDataBase_StatDefinitions_43:: "Extra carried Rocks" -ItemDataBase_StatDefinitions_44:: "Extra carried Ropes" -ItemDataBase_StatDefinitions_45:: " Soda: " -ItemDataBase_StatDefinitions_46:: "Booze: " -ItemDataBase_StatDefinitions_47:: "Extra carried Drinks" -ItemDataBase_StatDefinitions_48:: "Extra carried Food" -ItemDataBase_StatDefinitions_49:: "Black hole radius" -ItemDataBase_StatDefinitions_50:: "Black hole lifetime" -ItemDataBase_StatDefinitions_51:: "Black hole gravitational force" -ItemDataBase_StatDefinitions_52:: "Black hole damage" -ItemDataBase_StatDefinitions_53:: "Stun on hit" -ItemDataBase_StatDefinitions_54:: "Snap freeze Duration" -ItemDataBase_StatDefinitions_55:: "Raft speed" -ItemDataBase_StatDefinitions_56:: "Empty socket" -ItemDataBase_StatDefinitions_57:: "Socket: crit chance" -ItemDataBase_StatDefinitions_58:: "Socket: agility" -ItemDataBase_StatDefinitions_59:: "Socket: movement speed" -ItemDataBase_StatDefinitions_60:: "Socket: ranged damage" -ItemDataBase_StatDefinitions_61:: "Socket: ranged armor piercing" -ItemDataBase_StatDefinitions_62:: "Socket: attack speed" -ItemDataBase_StatDefinitions_63:: "Socket: strength" -ItemDataBase_StatDefinitions_64:: "Socket: damage reduction" -ItemDataBase_StatDefinitions_65:: "Socket: melee damage" -ItemDataBase_StatDefinitions_66:: "Socket: melee armor piercing" -ItemDataBase_StatDefinitions_67:: "Socket: cooldown reduction" -ItemDataBase_StatDefinitions_68:: "Socket: intelligence" -ItemDataBase_StatDefinitions_69:: "Socket: spell cost reduction" -ItemDataBase_StatDefinitions_70:: "Socket: spell damage" -ItemDataBase_StatDefinitions_71:: "Socket: energy on hit" -ItemDataBase_StatDefinitions_72:: "Socket: experience gain" -ItemDataBase_StatDefinitions_73:: "Socket: vitality " -ItemDataBase_StatDefinitions_74:: "Socket: magic find" -ItemDataBase_StatDefinitions_75:: "Socket: all healing" -ItemDataBase_StatDefinitions_76:: "Socket: life per second" -ItemDataBase_StatDefinitions_77:: "Socket: maximum health " -ItemDataBase_StatDefinitions_78:: "Socket: armor " -ItemDataBase_StatDefinitions_79:: "Socket: Resistance to magic" -ItemDataBase_StatDefinitions_80:: "Socket: crit damage" -ItemDataBase_StatDefinitions_81:: "Socket: thorns" -ItemDataBase_ItemDefinitions_1:: "Broken Flip-Flops" -ItemDataBase_ItemDefinitions_2:: "A pair of damaged shoes. Judging by their condition, i can imagine what happened to their owner." -ItemDataBase_ItemDefinitions_3:: "Worn by one of the passengers of the plane that Eric also flew in." -ItemDataBase_ItemDefinitions_4:: "Old Boots" -ItemDataBase_ItemDefinitions_5:: "A pair of old boots. They must have been lying here for ages." -ItemDataBase_ItemDefinitions_6:: "Found on the Peninsula, but judging by their condition, they belong neither to a plane passenger nor a cannibal." -ItemDataBase_ItemDefinitions_7:: "Damaged Leather Boots" -ItemDataBase_ItemDefinitions_8:: "A pair of leather boots. They look good and have only some scratches." -ItemDataBase_ItemDefinitions_9:: "They arrived to the Peninsula the same way Eric did. Since they were in a baggage, they avoided a lot of damage." -ItemDataBase_ItemDefinitions_10:: "Sturdy Leather Boots" -ItemDataBase_ItemDefinitions_11:: "A pair of leather boots. They are in a very good condition." -ItemDataBase_ItemDefinitions_12:: "They arrived to the Peninsula the same way Eric did. Eric found them undamaged in their original box. They still had a pricetag - $419,99." -ItemDataBase_ItemDefinitions_13:: "Damaged Army Boots" -ItemDataBase_ItemDefinitions_14:: "Sturdy, hard, resistant but damaged boots." -ItemDataBase_ItemDefinitions_15:: "They look modern, almost too modern for everything here." -ItemDataBase_ItemDefinitions_16:: "Army Boots" -ItemDataBase_ItemDefinitions_17:: "Sturdy, hard, resistant boots." -ItemDataBase_ItemDefinitions_18:: "Armsy Skin Footwear" -ItemDataBase_ItemDefinitions_19:: "Severed armsy legs, with all of their insides removed. All thats left is dried mutated skin." -ItemDataBase_ItemDefinitions_20:: "Armsy, the second heaviest of the mutants needs very resistant skin. It often drags its legs on the ground when it moves. The skin on their legs grew very thick, and has bone tissue mixed with skin tissue." -ItemDataBase_ItemDefinitions_21:: "Finger Warmer" -ItemDataBase_ItemDefinitions_22:: "A little glove to keep your fingers warm and cozy." -ItemDataBase_ItemDefinitions_23:: "Made of wool." -ItemDataBase_ItemDefinitions_24:: "Thick Rubber Glove" -ItemDataBase_ItemDefinitions_25:: "A glove that helps get a better grip." -ItemDataBase_ItemDefinitions_26:: "Tribal Glove" -ItemDataBase_ItemDefinitions_27:: "Offers medicore protection." -ItemDataBase_ItemDefinitions_28:: "Glove made out of thin bones, some may possibly be from a human." -ItemDataBase_ItemDefinitions_29:: "Tribe Leader Glove" -ItemDataBase_ItemDefinitions_30:: "A glove that offers little protection but a lot of offensive stats." -ItemDataBase_ItemDefinitions_31:: "A glove made of bones, some have engravings of crosses." -ItemDataBase_ItemDefinitions_32:: "Worn Shorts" -ItemDataBase_ItemDefinitions_33:: "Some protection for legs." -ItemDataBase_ItemDefinitions_34:: "Short, made out of cheap thin fabric, and on top of that they are damaged. But its better than nothing." -ItemDataBase_ItemDefinitions_35:: "Cargo Shorts" -ItemDataBase_ItemDefinitions_36:: "No protection at all but they allow to carry more items." -ItemDataBase_ItemDefinitions_37:: "They are ugly as hell tho" -ItemDataBase_ItemDefinitions_38:: "Passenger's Jacket" -ItemDataBase_ItemDefinitions_39:: "It's a little torn. " -ItemDataBase_ItemDefinitions_40:: "This jacket was worn by Preston A. the 34th passenger on the plane. Eric talked to him at the airport. Guy was odd, and now he's dead." -ItemDataBase_ItemDefinitions_41:: "Leather Jacket" -ItemDataBase_ItemDefinitions_42:: "Offers little protection" -ItemDataBase_ItemDefinitions_43:: "This jacket was in a baggage of one of the plane passengers" -ItemDataBase_ItemDefinitions_44:: "Boar Skin Armor" -ItemDataBase_ItemDefinitions_45:: "It's made from a skin of a huge individual. It's heavy and thick, and surely can protect from attacks of weaker enemies." -ItemDataBase_ItemDefinitions_46:: "Boar, one of the animals on the peninsula, is rather rare and it's skin is very durable." -ItemDataBase_ItemDefinitions_47:: "Crocodile Skin Armor" -ItemDataBase_ItemDefinitions_48:: "Plate armour" -ItemDataBase_ItemDefinitions_49:: "Bear Skin Armor" -ItemDataBase_ItemDefinitions_50:: "Archer's Gear" -ItemDataBase_ItemDefinitions_51:: "Hazard's Gear" -ItemDataBase_ItemDefinitions_52:: "Mysterious robe" -ItemDataBase_ItemDefinitions_53:: "Magic flows through the entirety of this object. It's made out of unknown material" -ItemDataBase_ItemDefinitions_54:: "Robe looks like it was created yesterday, but its older than the oldest of mankinds' civilizations. Simply looking at it sends chills down the spine." -ItemDataBase_ItemDefinitions_55:: "Empowers cataclysm. The vortex turns blue, damage is increased, freezes enemies " -ItemDataBase_ItemDefinitions_56:: "Rusty Longsword" -ItemDataBase_ItemDefinitions_57:: "A long, very heavy sword. Edge got dull over time. Still, it's in a condition that allows me to slice some enemies in half." -ItemDataBase_ItemDefinitions_58:: "The sword appears to be from medieval ages, through it's not. It was made a lot later. It never was used as a weapon in battles, because it was merely a decoration." -ItemDataBase_ItemDefinitions_59:: "Longsword" -ItemDataBase_ItemDefinitions_60:: "Sharp and long" -ItemDataBase_ItemDefinitions_61:: "The sword is in perfect contidion." -ItemDataBase_ItemDefinitions_62:: "Full Metal Sword" -ItemDataBase_ItemDefinitions_63:: "It's sooo big..." -ItemDataBase_ItemDefinitions_64:: "A normal human cannot lift this." -ItemDataBase_ItemDefinitions_65:: "The Leech" -ItemDataBase_ItemDefinitions_66:: "Hey where did my health g- oh it's back..." -ItemDataBase_ItemDefinitions_67:: "Smokey's Sacred Quiver" -ItemDataBase_ItemDefinitions_68:: "SmokeyTheBear died because he never used this item." -ItemDataBase_ItemDefinitions_69:: "Smokey was the friend of allmighty Hazard, who can materialize any kind of weapon at the snap of his fingers. Hazard remebered Smokey's favourite playstyle and he gave him this as a gift to purge the sh** out of mutants." -ItemDataBase_ItemDefinitions_70:: "Crossbows operate at {0} speed and deal {1} increased damage" -ItemDataBase_ItemDefinitions_71:: "Broken shield" -ItemDataBase_ItemDefinitions_72:: "Tower Shield" -ItemDataBase_ItemDefinitions_73:: "Broken Leather Shoulder Armor" -ItemDataBase_ItemDefinitions_74:: "Leather Shoulder Armor" -ItemDataBase_ItemDefinitions_75:: "Phase Pauldrons" -ItemDataBase_ItemDefinitions_76:: "The distance of blink is increased by {} meters, and blink now hits everything that you teleported through" -ItemDataBase_ItemDefinitions_77:: "MAGA Cap" -ItemDataBase_ItemDefinitions_78:: "Wearing this item channels the power of D.Trump to you" -ItemDataBase_ItemDefinitions_79:: "... or does it?" -ItemDataBase_ItemDefinitions_80:: "Hubble's Vision" -ItemDataBase_ItemDefinitions_81:: "Wearing this item empowers your black hole spell" -ItemDataBase_ItemDefinitions_82:: "Man, fuck gravity." -ItemDataBase_ItemDefinitions_83:: "Broken Loop" -ItemDataBase_ItemDefinitions_84:: "Loop" -ItemDataBase_ItemDefinitions_85:: "Toxic Ring" -ItemDataBase_ItemDefinitions_86:: " comment was about to bring down upon you, maybe you would have held your fucking tongue. But you couldn't, you didn't, and now you're paying the price, you goddamn idiot. I will shit fury all over you and you will drown in it. You're fucking dead, kiddo." -ItemDataBase_ItemDefinitions_87:: "What the fuck did you just fucking say about me, you little bitch? I'll have you know I graduated top of my class in the Navy Seals, and I've been involved in numerous secret raids on Al-Quaeda, and I have over 300 confirmed kills. I am trained in gorilla warfare and I'm the top sniper in the entire US armed forces. You are nothing to me but just another target. I will wipe you the fuck out with precision the likes of which has never been seen before on this Earth, mark my fucking words. You think you can get away with saying that shit to me over the Internet? Think again, fucker. As we speak I am contacting my secret network of spies across the USA and your IP is being traced right now so you better prepare for the storm, maggot. The storm that wipes out the pathetic little thing you call your life. You're fucking dead, kid. I can be anywhere, anytime, and I can kill you in over seven hundred ways, and that's just with my bare hands. Not only am I extensively trained in unarmed combat, but I have access to the entire arsenal of the United States Marine Corps and I will use it to its full extent to wipe your miserable ass off the face of the continent, you little shit. If only you could have known what unholy retribution your little \"clever\" comment was about to bring down upon you, maybe you would have held your fucking tongue. But you couldn't, you didn't, and now you're paying the price, you goddamn idiot. I will shit fury all over you and you will drown in it. You're fucking dead, kiddo." -ItemDataBase_ItemDefinitions_88:: "Scarf" -ItemDataBase_ItemDefinitions_89:: "Damaged Bracer" -ItemDataBase_ItemDefinitions_90:: "Worn Bracer" -ItemDataBase_ItemDefinitions_91:: "Leather Bracer" -ItemDataBase_ItemDefinitions_92:: "Greater Mutated Heart" -ItemDataBase_ItemDefinitions_93:: "Can be consumed by right clicking it" -ItemDataBase_ItemDefinitions_94:: "Lesser Mutated Heart" -ItemDataBase_ItemDefinitions_95:: "Spiked ring" -ItemDataBase_ItemDefinitions_96:: "Armor piercing for either melee or ranged weapons" -ItemDataBase_ItemDefinitions_97:: "Piercer" -ItemDataBase_ItemDefinitions_98:: "Moon Boots" -ItemDataBase_ItemDefinitions_99:: "A pair of boots from the moon." -ItemDataBase_ItemDefinitions_100:: "It is said that the wearer will not take fall damage while wearing these boots and will jump like on the moon, I wouldn't trust it tough." -ItemDataBase_ItemDefinitions_101:: "Golden Ring of Strength" -ItemDataBase_ItemDefinitions_102:: "A Ring of ancient times." -ItemDataBase_ItemDefinitions_103:: "A Golden Ring that looks simple and elegant, yet it feels powerfull to the touch." -ItemDataBase_ItemDefinitions_104:: "Golden Ring of Vitality" -ItemDataBase_ItemDefinitions_105:: "Golden Ring of Agility" -ItemDataBase_ItemDefinitions_106:: "Golden Ring of Intelligence" -ItemDataBase_ItemDefinitions_107:: "Silver Ring of Strength" -ItemDataBase_ItemDefinitions_108:: "A Silver Ring that looks simple and elegant, yet it feels powerfull to the touch." -ItemDataBase_ItemDefinitions_109:: "Silver Ring of Vitality" -ItemDataBase_ItemDefinitions_110:: "Silver Ring of Agility" -ItemDataBase_ItemDefinitions_111:: "Silver Ring of Intelligence" -ItemDataBase_ItemDefinitions_112:: "Steel Ring of Strength" -ItemDataBase_ItemDefinitions_113:: "A Steel Ring that looks simple and elegant, yet it feels powerfull to the touch." -ItemDataBase_ItemDefinitions_114:: "Steel Ring of Vitality" -ItemDataBase_ItemDefinitions_115:: "Steel Ring of Agility" -ItemDataBase_ItemDefinitions_116:: "Steel Ring of Intelligence" -ItemDataBase_ItemDefinitions_117:: "The One Ring To Rule Them All" -ItemDataBase_ItemDefinitions_118:: "An Ancient magical Ring of great power." -ItemDataBase_ItemDefinitions_119:: "It looks like and ordinay ring, but a strange energy is surrounding it. The Ring is said to have been found inside a volcanic rock by an archeologist, who went mad and isolated himself on the peninsula many years ago. But that's just a fairy tale, ring?" -ItemDataBase_ItemDefinitions_120:: "Attracts unwanted attention of an unknown entity." -ItemDataBase_ItemDefinitions_121:: "Golden Locket of Strength" -ItemDataBase_ItemDefinitions_122:: "A Locket of ancient times." -ItemDataBase_ItemDefinitions_123:: "A Golden Locket that looks simple and elegant, yet it feels powerfull to the touch." -ItemDataBase_ItemDefinitions_124:: "Golden Locket of Vitality" -ItemDataBase_ItemDefinitions_125:: "Golden Locket of Agility" -ItemDataBase_ItemDefinitions_126:: "Golden Locket of Intelligence" -ItemDataBase_ItemDefinitions_127:: "Silver Locket of Strength" -ItemDataBase_ItemDefinitions_128:: "A Silver Locket that looks simple and elegant, yet it feels powerfull to the touch." -ItemDataBase_ItemDefinitions_129:: "Silver Locket of Vitality" -ItemDataBase_ItemDefinitions_130:: "Silver Locket of Agility" -ItemDataBase_ItemDefinitions_131:: "Silver Locket of Intelligence" -ItemDataBase_ItemDefinitions_132:: "Emerald Pendant of Strength" -ItemDataBase_ItemDefinitions_133:: "A Pendant of ancient times." -ItemDataBase_ItemDefinitions_134:: "An Emerald Pendant that looks simple and elegant, yet it feels powerfull to the touch." -ItemDataBase_ItemDefinitions_135:: "Emerald Pendant of Vitality" -ItemDataBase_ItemDefinitions_136:: "Emerald Pendant of Agility" -ItemDataBase_ItemDefinitions_137:: "Emerald Pendant of Intelligence" -ItemDataBase_ItemDefinitions_138:: "Diamond Pendant of Strength" -ItemDataBase_ItemDefinitions_139:: "A Diamond Pendant that looks simple and elegant, yet it feels powerfull to the touch." -ItemDataBase_ItemDefinitions_140:: "Diamond Pendant of Vitality" -ItemDataBase_ItemDefinitions_141:: "Diamond Pendant of Agility" -ItemDataBase_ItemDefinitions_142:: "Diamond Pendant of Intelligence" -ItemDataBase_ItemDefinitions_143:: "Armsy Finger Necklace" -ItemDataBase_ItemDefinitions_144:: "A Necklace decorated with armsy fingertips." -ItemDataBase_ItemDefinitions_145:: "A Necklace made from the fingertips of an armsy, yeilding it's raw power and strentgh." -ItemDataBase_ItemDefinitions_146:: "Virginia Heart Pendant" -ItemDataBase_ItemDefinitions_147:: "A Pendant of a petrified Virginia heart." -ItemDataBase_ItemDefinitions_148:: "A Pendant made from a petrified Virginia heart, yeilding it's love and Vitality." -ItemDataBase_ItemDefinitions_149:: "Cowman Toe Necklace" -ItemDataBase_ItemDefinitions_150:: "A Necklace decorated with cowman toes." -ItemDataBase_ItemDefinitions_151:: "A Necklace made from the fingertips of an armsy, yeilding it's speed and agility." -ItemDataBase_ItemDefinitions_152:: "Pendant of Perpetual Rebirth" -ItemDataBase_ItemDefinitions_153:: "A Pendant of a shrunken babyhead." -ItemDataBase_ItemDefinitions_154:: "A pedant of great power. Obtainable only from babies or crafting" -ItemDataBase_ItemDefinitions_155:: "decrease a random cooldown by {0} second whenever you hit something with melee or ranged attack." -ItemDataBase_ItemDefinitions_156:: "Megan's Locket" -ItemDataBase_ItemDefinitions_157:: "The Locket Megan wore." -ItemDataBase_ItemDefinitions_158:: "Megan wore this Locket, it has a picture of her mom in it." -ItemDataBase_ItemDefinitions_159:: "Relic Hammer" -ItemDataBase_ItemDefinitions_160:: "It's slow and weak." -ItemDataBase_ItemDefinitions_161:: "Slows on hit" -ItemDataBase_ItemDefinitions_162:: "Black Hammer" -ItemDataBase_ItemDefinitions_163:: "It's slow but with enough strength i can make it a very deadly tool" -ItemDataBase_ItemDefinitions_164:: "Potato Sack" -ItemDataBase_ItemDefinitions_165:: "Can be used as a quiver" -ItemDataBase_ItemDefinitions_166:: "Rabbit Skin Quiver" -ItemDataBase_ItemDefinitions_167:: "Hollow Log" -ItemDataBase_ItemDefinitions_168:: "It allows for faster drawing of arrow than a cloth quiver" -ItemDataBase_ItemDefinitions_169:: "Spellbound Quiver" -ItemDataBase_ItemDefinitions_170:: "Long Lost Quiver" -ItemDataBase_ItemDefinitions_171:: "Spell Scroll" -ItemDataBase_ItemDefinitions_172:: "Contains a lot of information on how to properly cast spells to achieve better results" -ItemDataBase_ItemDefinitions_173:: "Cloth Pants" -ItemDataBase_ItemDefinitions_174:: "Offer little protction" -ItemDataBase_ItemDefinitions_175:: "Rough Hide Leggins" -ItemDataBase_ItemDefinitions_176:: "Plate Leggins" -ItemDataBase_ItemDefinitions_177:: "Sage's Robes" -ItemDataBase_ItemDefinitions_178:: "Hammer Jammers" -ItemDataBase_ItemDefinitions_179:: "Damage of your smash attack is increased by {0}, hammer stun duration is doubled" -ItemDataBase_ItemDefinitions_180:: "Pirate Pants" -ItemDataBase_ItemDefinitions_181:: "Those pants are ligh and comfortable. They offer plenty of mobility but lack in protection." -ItemDataBase_ItemDefinitions_182:: "Hexed Pants of Mr M." -ItemDataBase_ItemDefinitions_183:: "They look like yoga pants but for a man the size of a wardrobe" -ItemDataBase_ItemDefinitions_184:: "Once upon a time there was a man who was in a basement and fed himself with nothing but nuggets. He got so obese that friends and family started worrying. Hazard noticed this man and cursed his pants to force him to excercise." -ItemDataBase_ItemDefinitions_185:: "While moving, energy regeneration and damage is increased by {0}. While standing still for longer than a second, you loose {1} of max health per second." -ItemDataBase_ItemDefinitions_186:: "Leather Mantle" -ItemDataBase_ItemDefinitions_187:: "A piece of cloth to give protection from " -ItemDataBase_ItemDefinitions_188:: "Shoulder Guards" -ItemDataBase_ItemDefinitions_189:: "Medium armor piece." -ItemDataBase_ItemDefinitions_190:: "Heavy armor" -ItemDataBase_ItemDefinitions_191:: "Heavy Shoulder Plates" -ItemDataBase_ItemDefinitions_192:: "Heavy armor piece. They offer great protection at the cost of attack speed and movement speed decrease" -ItemDataBase_ItemDefinitions_193:: "Etched Mantle" -ItemDataBase_ItemDefinitions_194:: "Those pauldrons empower wearer's combat skill" -ItemDataBase_ItemDefinitions_195:: "Assassins Pauldrons" -ItemDataBase_ItemDefinitions_196:: "Death Pact" -ItemDataBase_ItemDefinitions_197:: "Find the greatest strength on the border of life and death." -ItemDataBase_ItemDefinitions_198:: "Every attack you make decreases your health by {0} of max health. For every percent of missing health you gain {1} damage amplification. This damage cannot kill you." -ItemDataBase_ItemDefinitions_199:: "Maximale Qualitot" -ItemDataBase_ItemDefinitions_200:: "A platinum ring with the most expensive jewels engraved on it. It's quality is uncomparable." -ItemDataBase_ItemDefinitions_201:: "Heart of Purity" -ItemDataBase_ItemDefinitions_202:: "A object filled with both destructive and creative energy. Allows to re-assign all spent mutation points" -ItemDataBase_ItemDefinitions_203:: "This powerful relic contains so much power, that it can kill anything and force it to come back to life, resulting in it's rebirth." -ItemDataBase_ItemDefinitions_204:: "Can be consumed by right clicking it. " -ItemDataBase_ItemDefinitions_205:: "Round Shield" -ItemDataBase_ItemDefinitions_206:: "A sturdy shield made of wood and reinforced with iron." -ItemDataBase_ItemDefinitions_207:: "Old Buckler" -ItemDataBase_ItemDefinitions_208:: "An old shield." -ItemDataBase_ItemDefinitions_209:: "This item has a lot of scratches that look like they were made by something with sharp claws." -ItemDataBase_ItemDefinitions_210:: "Dark Oak Shield" -ItemDataBase_ItemDefinitions_211:: "Bone Shield" -ItemDataBase_ItemDefinitions_212:: "A shield made of bones, held together by thick steel wire." -ItemDataBase_ItemDefinitions_213:: "Dull Longsword" -ItemDataBase_ItemDefinitions_214:: "It's round on the edges" -ItemDataBase_ItemDefinitions_215:: "Iron Horn" -ItemDataBase_ItemDefinitions_216:: "When using Warcry, you and all allies recieve armor bonus equal to {0} of your armor" -ItemDataBase_ItemDefinitions_217:: "The Great Iron Horn" -ItemDataBase_ItemDefinitions_218:: "Horned Helmet" -ItemDataBase_ItemDefinitions_219:: "A viking helmet" -ItemDataBase_ItemDefinitions_220:: "Mask" -ItemDataBase_ItemDefinitions_221:: "Mask of Madness" -ItemDataBase_ItemDefinitions_222:: "Old Scroll" -ItemDataBase_ItemDefinitions_223:: "Wormhole Stabilizators" -ItemDataBase_ItemDefinitions_224:: "High-tech gear" -ItemDataBase_ItemDefinitions_225:: "Hazard remember to put some fucking lore in here, don't leave it like this!" -ItemDataBase_ItemDefinitions_226:: "Increases the duration of a portal by {0} seconds" -ItemDataBase_ItemDefinitions_227:: "Cripplers" -ItemDataBase_ItemDefinitions_228:: "Increases the duration of a magic arrow's negative effect by {0} seconds" -ItemDataBase_ItemDefinitions_229:: "Crossfire" -ItemDataBase_ItemDefinitions_230:: "Infused with powerful magic. This item is a dangerous tool of destruction." -ItemDataBase_ItemDefinitions_231:: "When hitting an enemy with a projectile, create a magic arrow pointed at the enemy and shoot it without using in energy. This effect may occur once every 2 seconds, but can be interval can be shortened with cooldown reduction." -ItemDataBase_ItemDefinitions_232:: "Scroll of Recovery" -ItemDataBase_ItemDefinitions_233:: "Recovers health and stamina" -ItemDataBase_ItemDefinitions_234:: "Tiara" -ItemDataBase_ItemDefinitions_235:: "A beautiful tiara " -ItemDataBase_ItemDefinitions_236:: "This tiara may not provide much protection, but it sure is pretty" -ItemDataBase_ItemDefinitions_237:: "Shiny" -ItemDataBase_ItemDefinitions_238:: "Chastity belt" -ItemDataBase_ItemDefinitions_239:: "Dodge those fukbois" -ItemDataBase_ItemDefinitions_240:: "This belt will stop those cheeky cannibals and armsies from getting into your pants" -ItemDataBase_ItemDefinitions_241:: " {0} damage reduction while sleeping" -ItemDataBase_ItemDefinitions_242:: "Ice Scroll" -ItemDataBase_ItemDefinitions_243:: "A spell surrounded by flying shards of ice, contains tramendous power of cold." -ItemDataBase_ItemDefinitions_244:: "Created at the top of the mountain." -ItemDataBase_ItemDefinitions_245:: "Motorboat Modification Blueprints" -ItemDataBase_ItemDefinitions_246:: "Sheet of paper that allows to turn any raft into a high speed. Increases carry amount and increases speed of rafts." -ItemDataBase_ItemDefinitions_247:: "Who did this lmao." -ItemDataBase_ItemDefinitions_248:: "Axe of Swiftness" -ItemDataBase_ItemDefinitions_249:: "Severer" -ItemDataBase_ItemDefinitions_250:: "Golden Axe of Fortune" -ItemDataBase_ItemDefinitions_251:: "Axe of Misfortune" -ItemDataBase_ItemDefinitions_252:: "Misfortunate are the ones on the recieving end. They will bleed a lot" -ItemDataBase_ItemDefinitions_253:: "Golden Ring" -ItemDataBase_ItemDefinitions_254:: "Golden Locket" -ItemDataBase_ItemDefinitions_255:: "Dull Axe" -ItemDataBase_ItemDefinitions_256:: "Precise Adjustments" -ItemDataBase_ItemDefinitions_257:: "Focus attack speed buff duration is increased by {0} seconds" -ItemDataBase_ItemDefinitions_258:: "Rage" -ItemDataBase_ItemDefinitions_259:: "Increases maximum stacks of frenzy by {0}" -ItemDataBase_ItemDefinitions_260:: "Swords go brrrrrrttt" -ItemDataBase_ItemDefinitions_261:: "Jagged Edge" -ItemDataBase_ItemDefinitions_262:: "Bash has {0} a chance to make enemies to bleed for {1} of damage dealt per second for duration of slow" -ItemDataBase_ItemDefinitions_263:: "Bloodthirster" -ItemDataBase_ItemDefinitions_264:: "Drenched in blood of many unfortunate foes." -ItemDataBase_ItemDefinitions_265:: "Bash lifesteals {0} of damage dealt into energy and health" -ItemDataBase_ItemDefinitions_266:: "Frost Giant" -ItemDataBase_ItemDefinitions_267:: "Melee hits freeze enemies" -ItemDataBase_ItemDefinitions_268:: "Alexander's Shield" -ItemDataBase_ItemDefinitions_269:: "Parry has a chance to be casted when getting it. Requires parry to be equipped" -ItemDataBase_ItemDefinitions_270:: "King Qruies" -ItemDataBase_ItemDefinitions_271:: "A mighty sword seeking for it's owner" -ItemDataBase_ItemDefinitions_272:: "Gain additional melee damage equal to the last instance of physical damage taken." -ItemDataBase_ItemDefinitions_273:: "Grip of Sora" -ItemDataBase_ItemDefinitions_274:: "Look, a porcupine! -Sora" -ItemDataBase_ItemDefinitions_275:: "Multishot drains {0} less energy and shoots +4 projectiles. Additional projectiles do not increase the cost of multishot" -ItemDataBase_ItemDefinitions_276:: "Ancient Greatbow" -ItemDataBase_ItemDefinitions_277:: "A massive and slow bow, deals extra damage" -ItemDataBase_ItemDefinitions_278:: "Phoenix's Death" -ItemDataBase_ItemDefinitions_279:: "Ignites enemies on hit" -ItemDataBase_ItemDefinitions_280:: "Soulstring" -ItemDataBase_ItemDefinitions_281:: "A massive and slow bow" -ItemDataBase_ItemDefinitions_282:: "Blood infused arrow now deals additional {0} points of damage per health consumed" -ItemDataBase_ItemDefinitions_283:: "Greatbow" -ItemDataBase_ItemDefinitions_284:: "Withered Crown" -ItemDataBase_ItemDefinitions_285:: "Worn by Hazard." -ItemDataBase_ItemDefinitions_286:: "A single cast of blood infused arrow affects {0} more projectiles" -ItemDataBase_ItemDefinitions_287:: "Novice Magic Caster's Bracers" -ItemDataBase_ItemDefinitions_288:: "Ranger's Bracers" -ItemDataBase_ItemDefinitions_289:: "Swordsman's Bracers" -ItemDataBase_ItemDefinitions_290:: "Healer's Bracers" -ItemDataBase_ItemDefinitions_291:: "Novice Magic Caster's Gloves" -ItemDataBase_ItemDefinitions_292:: "Ranger's Gloves" -ItemDataBase_ItemDefinitions_293:: "Swordsman's Gloves" -ItemDataBase_ItemDefinitions_294:: "Healer's Gloves" -ItemDataBase_ItemDefinitions_295:: "Fate Gloves" -ItemDataBase_ItemDefinitions_296:: "Fate Boots" -ItemDataBase_ItemDefinitions_297:: "Greed" -ItemDataBase_ItemDefinitions_298:: "Automatically casts wide reach every second" -ItemDataBase_ItemDefinitions_299:: "Titanium Leggins" -ItemDataBase_ItemDefinitions_300:: "Heavily armored leg protection. Suffers from the same weaknesses as spartan armor." -ItemDataBase_ItemDefinitions_301:: "Iron Gauntlet" -ItemDataBase_ItemDefinitions_302:: "Magefist" -ItemDataBase_ItemDefinitions_303:: "Gloves that amplify magic" -ItemDataBase_ItemDefinitions_304:: "Spells deal double damage but have double the energy cost" -ItemDataBase_ItemDefinitions_305:: "Armored Boots" -ItemDataBase_ItemDefinitions_306:: "Heavily armored, resistant to damage boots." -ItemDataBase_ItemDefinitions_307:: "Broken Protector" -ItemDataBase_ItemDefinitions_308:: "This shield failed to protect those behind it." -ItemDataBase_ItemDefinitions_309:: "Forbidden Scroll" -ItemDataBase_ItemDefinitions_310:: "Too powerful to be kept." -ItemDataBase_ItemDefinitions_311:: "Doom Pauldrons" -ItemDataBase_ItemDefinitions_312:: "Despite the cool name, they are completely normal pair of shoulder armor." -ItemDataBase_ItemDefinitions_313:: "Wind armor" -ItemDataBase_ItemDefinitions_314:: "Run fast like the wind" -ItemDataBase_ItemDefinitions_315:: "Upon dodging an attack, gain {0} movement speed, {1} damage, {2} armor, and heal for {3} of your maximum health" -ItemDataBase_ItemDefinitions_316:: "Crusader Helmet" -ItemDataBase_ItemDefinitions_317:: "You're talking mad shit for someone within crusading distance" -ItemDataBase_ItemDefinitions_318:: "Hood" -ItemDataBase_ItemDefinitions_319:: "Hats provide usefull stat bonuses" -ItemDataBase_ItemDefinitions_320:: "The Spark of Light in The Darkness" -ItemDataBase_ItemDefinitions_321:: "Magic Scroll of great quality" -ItemDataBase_ItemDefinitions_322:: "Written in a language i canno't understand. Decyphering this text is impossible, so is the full utilization of the scroll." -ItemDataBase_ItemDefinitions_323:: "If a black hole hits {0} or more enemies during it's lifetime, a ball lightning is summoned after it ends." -ItemDataBase_ItemDefinitions_324:: "Purgatory" -ItemDataBase_ItemDefinitions_325:: "Golden ring with a bone chilling feel about it. This thing will only bring harm, but not to the wearer" -ItemDataBase_ItemDefinitions_326:: "Ring made of Netherrite" -ItemDataBase_ItemDefinitions_327:: "Purge increases all of your damage based on missing health. Up to {0}" -ItemDataBase_ItemDefinitions_328:: "Eruption" -ItemDataBase_ItemDefinitions_329:: "Incarnation of devastation" -ItemDataBase_ItemDefinitions_330:: "Headshots cause explosions" -ItemDataBase_ItemDefinitions_331:: "Archangel" -ItemDataBase_ItemDefinitions_332:: "Spread the goodness" -ItemDataBase_ItemDefinitions_333:: "Shooting another player causes them to be greatly empowered for {0} seconds" -ItemDataBase_ItemDefinitions_334:: "The Executioner" -ItemDataBase_ItemDefinitions_335:: "A sword for decapitating" -ItemDataBase_ItemDefinitions_336:: "Moon Cuirass" -ItemDataBase_ItemDefinitions_337:: "A piece of armor designed for an archer. " -ItemDataBase_ItemDefinitions_338:: "Landing a headshot with an arrow without the homing effect of seeking arrow at a distance greater than {0} feet deals tenfold damage, and hits the enemy two extra times" -ItemDataBase_ItemDefinitions_339:: "Thornmail" -ItemDataBase_ItemDefinitions_340:: "Spiked death on the outside, really comfy on the inside" -ItemDataBase_ItemDefinitions_341:: "Thorns deal double damage" -ItemDataBase_ItemDefinitions_342:: "Rusty Polearm" -ItemDataBase_ItemDefinitions_343:: "Used by the Ubersreik Five" -ItemDataBase_ItemDefinitions_344:: "Giant Polearm" -ItemDataBase_ItemDefinitions_345:: "Used by the Sir Kruber" -ItemDataBase_ItemDefinitions_346:: "Crude Feather" -ItemDataBase_ItemDefinitions_347:: "Materials can be put inside empty sockets to add stats to items" -ItemDataBase_ItemDefinitions_348:: "Soft Feather" -ItemDataBase_ItemDefinitions_349:: "Ornate Feather" -ItemDataBase_ItemDefinitions_350:: "Wonderful Feather" -ItemDataBase_ItemDefinitions_351:: "White Crow's Feather" -ItemDataBase_ItemDefinitions_352:: "Reef Shark" -ItemDataBase_ItemDefinitions_353:: "Tiger Shark Tooth" -ItemDataBase_ItemDefinitions_354:: "Whale Shark Tooth" -ItemDataBase_ItemDefinitions_355:: "Great White Shark Tooth" -ItemDataBase_ItemDefinitions_356:: "Megalodon's Tooth" -ItemDataBase_ItemDefinitions_357:: "Uncut Sapphire" -ItemDataBase_ItemDefinitions_358:: "Clear Sapphire" -ItemDataBase_ItemDefinitions_359:: "Shiny Sapphire" -ItemDataBase_ItemDefinitions_360:: "Enchanted Sapphire" -ItemDataBase_ItemDefinitions_361:: "Celestial Sapphire" -ItemDataBase_ItemDefinitions_362:: "Uncut Moonstone" -ItemDataBase_ItemDefinitions_363:: "Clear Moonstone" -ItemDataBase_ItemDefinitions_364:: "Shiny Moonstone" -ItemDataBase_ItemDefinitions_365:: "Enchanted Moonstone" -ItemDataBase_ItemDefinitions_366:: "Celestial Moonstone" -ItemDataBase_ItemDefinitions_367:: "Lead Ore" -ItemDataBase_ItemDefinitions_368:: "Vanadium Ore" -ItemDataBase_ItemDefinitions_369:: "Titanium Ore" -ItemDataBase_ItemDefinitions_370:: "Chromium Ore" -ItemDataBase_ItemDefinitions_371:: "Tungsten Ore" -ItemDataBase_ItemDefinitions_372:: "Knife on a stick" -ItemDataBase_ItemDefinitions_373:: "Kasper named this item, his fault" -ItemDataBase_ItemDefinitions_374:: "Fists of Nails" -ItemDataBase_ItemDefinitions_375:: "Swiss sheese makers" -ItemDataBase_ItemDefinitions_376:: "Gain {0} thorns per vitality" -ItemDataBase_ItemDefinitions_377:: "Cargo Shorts MK2" -ItemDataBase_ItemDefinitions_378:: "Deepest pockets out there" -ItemDataBase_ItemDefinitions_379:: "Improved cargo pants. Twice as many pockets, and since they didnt fit on the outside, they are inside. They are still ugly as hell tho" -ItemDataBase_ItemDefinitions_380:: "Aezyn" -ItemDataBase_ItemDefinitions_381:: "Enchanted with magic as strong as power swing. It's purpose? Hit harder." -ItemDataBase_ItemDefinitions_382:: "Magic arrow damage scaling is increased by {0}" -ItemDataBase_ItemDefinitions_383:: "Punny's Reflective Ring" -ItemDataBase_ItemDefinitions_384:: "Magic arrow is shot in volleys. This effect can stack." -ItemDataBase_ItemDefinitions_385:: "Eyepatch" -ItemDataBase_ItemDefinitions_386:: "A wise man once said:" -ItemDataBase_ItemDefinitions_387:: "Everyone thinks I'm just a one-eyed bloody monster, god damnit... (sobbing)" -ItemDataBase_ItemDefinitions_388:: "Explosion damage is also applied when performing jump attacks" -ItemDataBase_ItemDefinitions_389:: "Javelin" -ItemDataBase_ItemDefinitions_390:: "Warplate" -ItemDataBase_ItemDefinitions_391:: "Enchanted with the power of the GOD's armor. It's purpose? Hit harder, daddy." -ItemDataBase_ItemDefinitions_392:: "Strength comes from the power of will, the stronger the will the stronger you are" -ItemDataBase_ItemDefinitions_393:: "Torso of Strength" -ItemDataBase_ItemDefinitions_394:: "Demoman's Vest" -ItemDataBase_ItemDefinitions_395:: "What makes me a good demoman? If I were a bad demoman, I wouldn't be sittin' here discussin' it with you, now would I?! LET'S DO IT! Not one of you's gonna survive this! One crossed wire, one wayward pinch of potassium chlorate, one errant twitch, and KA-BLOOIE! I got a manky eye. I'm a black Scottish cyclops. They got more fecking sea monsters in the great Lochett Ness than they got the likes of me. So! T'all you fine dandies, so proud, so cocksure, prancin' about with your heads full of eyeballs... come and get me, I say! I'll be waitin' on you with a whiff of the old brimstone! I'm a Grimm bloody fable with an unhappy bloody end! Oh, they're going to have to glue you back together...IN HELL!" -ItemDataBase_ItemDefinitions_396:: "Brawler's Gloves" -ItemDataBase_ItemDefinitions_397:: "Nail Gloves" -ItemDataBase_ItemDefinitions_398:: "Enchanted with the power of penetration. It's purpose? Hit harder." -ItemDataBase_ItemDefinitions_399:: "Hand-held Ballista" -ItemDataBase_ItemDefinitions_400:: "Kuldars's Scarf" -ItemDataBase_ItemDefinitions_401:: "Strength comes from the power of will" -ItemDataBase_ItemDefinitions_402:: "Sword Devil's Scarf" -ItemDataBase_ItemDefinitions_403:: "Peasant's Scarf" -ItemDataBase_ItemDefinitions_404:: "Bombastinc Choker" -ItemDataBase_ItemDefinitions_405:: "Explosive Touch" -ItemDataBase_ItemDefinitions_406:: "Enchanted with the power of the explosions armor. It's purpose? Become the true explosion master" -ItemDataBase_ItemDefinitions_407:: "Strength comes from the power of will, the stronger the will the stronger the explosion" -ItemDataBase_ItemDefinitions_408:: "Volatile Bracers" -ItemDataBase_ItemDefinitions_409:: "Volatile Helmet" -ItemDataBase_ItemDefinitions_410:: "Gunpowder filled socks" -ItemDataBase_ItemDefinitions_411:: "Red Skirt" -ItemDataBase_ItemDefinitions_412:: "Gunpowder Boxers" -ItemDataBase_ItemDefinitions_413:: "Jihad Vest" -ItemDataBase_ItemDefinitions_414:: "Ring of Fortune" -ItemDataBase_ItemDefinitions_415:: "Mana Ring" -ItemDataBase_ItemDefinitions_416:: "Life Ring" -ItemDataBase_ItemDefinitions_417:: "Moritz's Gear" -ItemDataBase_ItemDefinitions_418:: "Band of Hurting" -ItemDataBase_ItemDefinitions_419:: "A ring for a warrior" -ItemDataBase_ItemDefinitions_420:: "Straw Hat" -ItemDataBase_ItemDefinitions_421:: "Rusty Javelin" -ItemDataBase_ItemDefinitions_422:: "Star Robe" -ItemDataBase_ItemDefinitions_423:: "Anger" -ItemDataBase_ItemDefinitions_424:: "Downscaled version of Greatsword Rage, made to be wielded by flimsy wizards" -ItemDataBase_ItemDefinitions_425:: "Increases maximum stacks of frenzy by {0}" -ItemDataBase_ItemDefinitions_426:: "Yuki-Onna Strides" -ItemDataBase_ItemDefinitions_427:: "Set Piece:\n2 Pieces- Snow Storm pulls enemies towards you\n3 Pieces - Snow Storm radius, maximum damage, spell cost is doubled, but charge rate is slower\n4 Pieces - Snow storm hit frequency is increased by {0}" -ItemDataBase_ItemDefinitions_428:: "Boots looted off a snow demon" -ItemDataBase_ItemDefinitions_429:: "Increses snowstorm damage by {0}" -ItemDataBase_ItemDefinitions_430:: "Yuki-Onna Greaves" -ItemDataBase_ItemDefinitions_431:: "Yuki-Onna Kimono" -ItemDataBase_ItemDefinitions_432:: "Yuki-Onna's Headdress" -ItemDataBase_ItemDefinitions_433:: "Set Piece:\n2 Pieces- Snow Storm pulls enemies towards you\n3 Pieces - Snow Storm radius, maximum damage, spell cost is doubled, but charge rate is slower\n4 Pieces - Snow storm hit frequency is increased by {0} and damage is increased by {1}" -ItemDataBase_ItemDefinitions_434:: "Lama Mega's Blood Bag" -ItemDataBase_ItemDefinitions_435:: "Melee hits cause enemies to bleed for {0} of your health as damage for {1} seconds" -ItemDataBase_ItemDefinitions_436:: "Socket Drill" -ItemDataBase_ItemDefinitions_437:: "A convienient one use tool" -ItemDataBase_ItemDefinitions_438:: "What's a drill doing here in a place full of primitive tribes?" -ItemDataBase_ItemDefinitions_439:: "Adds one socket to an item, unless the item can't have any more sockets." -ItemDataBase_ItemDefinitions_440:: "Moonwalkers" -ItemDataBase_ItemDefinitions_441:: "Cha cha real smooth." -ItemDataBase_ItemDefinitions_442:: "Inverts movement" -ItemDataBase_ItemDefinitions_443:: "Rabbit Ears Hairband" -ItemDataBase_ItemDefinitions_444:: "Cute" -ItemDataBase_ItemDefinitions_445:: "Bunny Ears Hairband" -ItemDataBase_ItemDefinitions_446:: "Iron plate full of holes" -ItemDataBase_ItemDefinitions_447:: "The integrity of this item is questionable" -ItemDataBase_ItemDefinitions_448:: "Small Tribal Necklace" -ItemDataBase_ItemDefinitions_449:: "Increases maximum stacks of frenzy by {0}" -ItemDataBase_ItemDefinitions_450:: "Tribal Necklace" -ItemDataBase_ItemDefinitions_451:: "Increases maximum stacks of frenzy by {0}" -ItemDataBase_ItemDefinitions_452:: "Warlord Necklace" -ItemDataBase_ItemDefinitions_453:: "Increases maximum stacks of frenzy by {0}" -ItemDataBase_ItemDefinitions_454:: "Travel Band" -ItemDataBase_ItemDefinitions_455:: "The distance of blink is increased by {0} feet" -ItemDataBase_ItemDefinitions_456:: "Destroyed Void Shard" -ItemDataBase_ItemDefinitions_457:: "Only a fraction of its previous might remains" -ItemDataBase_ItemDefinitions_458:: "Decrease the cooldown of one ability by {0} second whenever you hit something with melee or ranged attack." -ItemDataBase_ItemDefinitions_459:: "Famine Hammer" -ItemDataBase_ItemDefinitions_460:: "Chance to weaken enemies, causing them to take more damage from all attacks, is increased by {0}" -ItemDataBase_ItemDefinitions_461:: "Curse Hammer" -ItemDataBase_ItemDefinitions_462:: "Omnious Weapon" -ItemDataBase_ItemDefinitions_463:: "Chance to weaken enemies, causing them to take more damage from all attacks, is increased by {0}" -ItemDataBase_ItemDefinitions_464:: "Smasher" -ItemDataBase_ItemDefinitions_465:: "Smash damage is increased tripled" -ItemDataBase_ItemDefinitions_466:: "Vampiric Band" -ItemDataBase_ItemDefinitions_467:: "Gain {0} stamina on ranged and melee hit or double that amount on critical hits" -ItemDataBase_ItemDefinitions_468:: "Vampire Ring" -ItemDataBase_ItemDefinitions_469:: "Gain {0} stamina on ranged and melee hit or double that amount on critical hits" -ItemDataBase_ItemDefinitions_470:: "Tricksters Scarf" -ItemDataBase_ItemDefinitions_471:: "Magic arrow shoots {0} additional arrow." -ItemDataBase_ItemDefinitions_472:: "Magus' Necktie" -ItemDataBase_ItemDefinitions_473:: "Magic arrow shoots {0} additional arrows." -ItemDataBase_ItemDefinitions_474:: "Discounted Knockoff Magic Quiver" -ItemDataBase_ItemDefinitions_475:: "There's a {0} increased chance to not consume ammo when firing a projectile." -ItemDataBase_ItemDefinitions_476:: "Magic Quiver" -ItemDataBase_ItemDefinitions_477:: "There's a {0} increased chance to not consume ammo when firing a projectile." -ItemDataBase_ItemDefinitions_478:: "Improved Magic Quiver" -ItemDataBase_ItemDefinitions_479:: "There's a {0} increased chance to not consume ammo when firing a projectile." -ItemDataBase_ItemDefinitions_480:: "Factory Quiver" -ItemDataBase_ItemDefinitions_481:: "There's a {0} increased chance to not consume ammo when firing a projectile." -ItemDataBase_ItemDefinitions_482:: "Enzyme STR/34" -ItemDataBase_ItemDefinitions_483:: "A substance which results in surprising changes to gear" -ItemDataBase_ItemDefinitions_484:: "Changes Vitality, Agility or Intelligence stat on an item to Strength or changes Ranged or Spell damage stat to Melee Damage" -ItemDataBase_ItemDefinitions_485:: "Enzyme INT/33" -ItemDataBase_ItemDefinitions_486:: "Changes Vitality, Agility or Strength stat on an item to Intelligence or changes Ranged or Melee damage stat to Spell Damage" -ItemDataBase_ItemDefinitions_487:: "Enzyme AGI/39" -ItemDataBase_ItemDefinitions_488:: "Changes Vitality, Intelligence or Strength stat on an item to Agility or changes Melee or Spell damage stat to Ranged Damage" -ItemDataBase_ItemDefinitions_489:: "Enzyme VIT/449" -ItemDataBase_ItemDefinitions_490:: "Changes Agility, Intelligence or Strength stat on an item to Vitality" -ItemDataBase_ItemDefinitions_491:: "Stomach Acid" -ItemDataBase_ItemDefinitions_492:: "Removes all stats with negative values from an item" -ItemDataBase_ItemDefinitions_493:: "Elite Stomach Acid" -ItemDataBase_ItemDefinitions_494:: "Changes negative stat values into positive values on an item" -ItemDataBase_ItemDefinitions_495:: "Crimson Solution" -ItemDataBase_ItemDefinitions_496:: "Upgrades item of any rarity to one of the same type but of Legendary rarity" -ItemDataBase_ItemDefinitions_497:: "Weak Armor Hardening Mixture" -ItemDataBase_ItemDefinitions_498:: "Adds Armor Stat to a piece of equipment if the item does not already have it" -ItemDataBase_ItemDefinitions_499:: "Upgraded Armor Hardening Mixture" -ItemDataBase_ItemDefinitions_500:: "Adds Damage Reduction Stat to a piece of equipment if the item does not already have it" -ItemDataBase_ItemDefinitions_501:: "Chaos Water" -ItemDataBase_ItemDefinitions_502:: "Rerolls all stats on an item of rarity no higher than orange" -ItemDataBase_ItemDefinitions_503:: "Upgraded Chaos Water" -ItemDataBase_ItemDefinitions_504:: "Rerolls all stats on an item of any rarity" -ItemDataBase_ItemDefinitions_505:: "Gun Blade" -ItemDataBase_ItemDefinitions_506:: "Increases pistol damage by {0}" -ItemDataBase_ItemDefinitions_507:: "Sharpshooter's Axe" -ItemDataBase_ItemDefinitions_508:: "Increases pistol headshot chance by {0} and pistol damage by {1}" -ItemDataBase_ItemDefinitions_509:: "Shield Blade" -ItemDataBase_ItemDefinitions_510:: "So large can be used as a shield" -ItemDataBase_ItemDefinitions_511:: "A normal human cannot lift this weapon." -ItemDataBase_ItemDefinitions_512:: "Blunt Blade for Bashing Skulls" -ItemDataBase_ItemDefinitions_513:: "Bash damage debuff on enemies is increased by {0}" -ItemDataBase_ItemDefinitions_514:: "Madman's Legacy" -ItemDataBase_ItemDefinitions_515:: "Frenzy damage per stack is increased by {0}" -ItemDataBase_ItemDefinitions_516:: "Buckler" -ItemDataBase_ItemDefinitions_517:: "Pyromancy Mask" -ItemDataBase_ItemDefinitions_518:: "Ignited enemies burn for {0} longer." -ItemDataBase_ItemDefinitions_519:: "Ember Mask" -ItemDataBase_ItemDefinitions_520:: "Ignited enemies burn for {0} longer and fire ticks thrice as fast." -ItemDataBase_ItemDefinitions_521:: "Flame Pauldrons" -ItemDataBase_ItemDefinitions_522:: "Firebolt costs {0} additional energy to cast and its damage scaling is increased by {1}" -ItemDataBase_ItemDefinitions_523:: "Ancient Scroll" -ItemDataBase_ItemDefinitions_524:: "Guide on Tearing Spacetime" -ItemDataBase_ItemDefinitions_525:: "Blink creates an explosion at the exit point, and the damage of the explosion is increased by velocity and the radius is increased by the distance of blink" -ItemDataBase_ItemDefinitions_526:: "300th Spear" -ItemDataBase_ItemDefinitions_527:: "Stone Pauldrons" -ItemDataBase_ItemDefinitions_528:: "All damage increased by {0}" -ItemDataBase_ItemDefinitions_529:: "Iron Shoulder Pads" -ItemDataBase_ItemDefinitions_530:: "All damage increased by {0}" -ItemDataBase_ItemDefinitions_531:: "Steel Shoulder Pads" -ItemDataBase_ItemDefinitions_532:: "All damage increased by {0}" -ItemDataBase_ItemDefinitions_533:: "Battle scarred Shoulder Pads" -ItemDataBase_ItemDefinitions_534:: "All damage increased by {0}" -ItemDataBase_ItemDefinitions_535:: "Mystery Shoulder Pads" -ItemDataBase_ItemDefinitions_536:: "All damage increased by {0}" -ItemDataBase_ItemDefinitions_537:: "Stone Shield" -ItemDataBase_ItemDefinitions_538:: "Iron Shield" -ItemDataBase_ItemDefinitions_539:: "Steel Tower Shield" -ItemDataBase_ItemDefinitions_540:: "Guardian" -ItemDataBase_ItemDefinitions_541:: "Mystery Shield" -ItemDataBase_ItemDefinitions_542:: "Light Boot" -ItemDataBase_ItemDefinitions_543:: "Iron Boots" -ItemDataBase_ItemDefinitions_544:: "Steel Boots" -ItemDataBase_ItemDefinitions_545:: "Threads" -ItemDataBase_ItemDefinitions_546:: "Mystery Boots" -ItemDataBase_ItemDefinitions_547:: "Wraps" -ItemDataBase_ItemDefinitions_548:: "Steel Gauntlet" -ItemDataBase_ItemDefinitions_549:: "Titanium Gauntlet" -ItemDataBase_ItemDefinitions_550:: "Mystery Gauntlet" -ItemDataBase_ItemDefinitions_551:: "Leather Tasset" -ItemDataBase_ItemDefinitions_552:: "Iron Tasset" -ItemDataBase_ItemDefinitions_553:: "Steel Tasset" -ItemDataBase_ItemDefinitions_554:: "Black Steel Leggins" -ItemDataBase_ItemDefinitions_555:: "Mystery Leggins" -ItemDataBase_ItemDefinitions_556:: "Leather Vest" -ItemDataBase_ItemDefinitions_557:: "Iron Breastplate" -ItemDataBase_ItemDefinitions_558:: "Steel Breastplate" -ItemDataBase_ItemDefinitions_559:: "Silver Armor" -ItemDataBase_ItemDefinitions_560:: "Mystery Breastplate" -ItemDataBase_ItemDefinitions_561:: "Cloth Band" -ItemDataBase_ItemDefinitions_562:: "Iron Wristguard" -ItemDataBase_ItemDefinitions_563:: "Steel Wristguard" -ItemDataBase_ItemDefinitions_564:: "Baron Wristguards" -ItemDataBase_ItemDefinitions_565:: "Mystery Wristguards" -ItemDataBase_ItemDefinitions_566:: "Iron Helmet" -ItemDataBase_ItemDefinitions_567:: "Steel Helmet" -ItemDataBase_ItemDefinitions_568:: "Armored Hood" -ItemDataBase_ItemDefinitions_569:: "Mystery Helmet" -ItemDataBase_ItemDefinitions_570:: "Yorium's Gaze" -ItemDataBase_ItemDefinitions_571:: "SET PIECE. Melee weapon range is increased by {0}, attack cost in stamina is halved." -ItemDataBase_ItemDefinitions_572:: "Set Piece:\n2 Pieces- Berserk does not apply exhaustion when it ends\n3 Pieces - Berserk duration is increased by {0} seconds\n4 Pieces - Each second of berserk being in effect increases damage by {1}.\n5 Pieces - For the first {2} seconds of Berserk attack speed increases by {3} per second, and lasts till the end of the spell's duration." -ItemDataBase_ItemDefinitions_573:: "Yorium's Ruthlessness" -ItemDataBase_ItemDefinitions_574:: "Yorium's Burden" -ItemDataBase_ItemDefinitions_575:: "Yorium's Resolve" -ItemDataBase_ItemDefinitions_576:: "Atomic Augmentation" -ItemDataBase_ItemDefinitions_577:: "Yorium's Assault" -ItemDataBase_ItemDefinitions_578:: "Undying Promise" -ItemDataBase_ItemDefinitions_579:: "Resist lethal damage on a {0} minute cooldown" -ItemDataBase_ItemDefinitions_581:: "Snap freeze damage scaling is increased by {0} and the slow duration is increased by {1} seconds" -ItemDataBase_ItemDefinitions_582:: "If equipped on a weapon, increases ranged damage by " -ItemDataBase_ItemDefinitions_583:: "If equipped on boots, increases movement speed by " -ItemDataBase_ItemDefinitions_584:: "If equipped on a helmet, increases critical hit chance by " -ItemDataBase_ItemDefinitions_585:: "If equipped on accessories, increases ranged armor piercing by " -ItemDataBase_ItemDefinitions_586:: "If equipped in other slots, increases agility by " -ItemDataBase_ItemDefinitions_587:: "If equipped on a weapon, increases melee damage by " -ItemDataBase_ItemDefinitions_588:: "If equipped on boots, decreases damage taken by " -ItemDataBase_ItemDefinitions_589:: "If equipped on a helmet, increases attack speed by " -ItemDataBase_ItemDefinitions_590:: "If equipped on accessories, increases melee armor piercing by " -ItemDataBase_ItemDefinitions_591:: "If equipped in other slots, increases strength by " -ItemDataBase_ItemDefinitions_592:: "If equipped on a weapon, increases magic damage by " -ItemDataBase_ItemDefinitions_593:: "If equipped on boots, decreases spell cost by " -ItemDataBase_ItemDefinitions_594:: "If equipped on a helmet, decreases spell cooldown by " -ItemDataBase_ItemDefinitions_595:: "If equipped on accessories, increases energy on hit by " -ItemDataBase_ItemDefinitions_596:: "If equipped in other slots, increases intelligence by " -ItemDataBase_ItemDefinitions_597:: "If equipped on a weapon, increases all healing by " -ItemDataBase_ItemDefinitions_598:: "If equipped on boots, increases magic find by " -ItemDataBase_ItemDefinitions_599:: "If equipped on a helmet, increases experience gained by " -ItemDataBase_ItemDefinitions_600:: "If equipped on accessories, increases life per second by " -ItemDataBase_ItemDefinitions_601:: "If equipped in other slots, increases vitality by " -ItemDataBase_ItemDefinitions_602:: "If equipped on a weapon, increases crit damage by " -ItemDataBase_ItemDefinitions_603:: "If equipped on boots, increases resistance to magic by " -ItemDataBase_ItemDefinitions_604:: "If equipped on a helmet, increases health by " -ItemDataBase_ItemDefinitions_605:: "If equipped on accessories, increases thorns by " -ItemDataBase_ItemDefinitions_606:: "If equipped in other slots, increases armor by " -ItemDataBase_ItemDefinitions_607:: "Firebolt deals increased damage" -ItemDataBase_ItemDefinitions_608:: "\nWarcry gives damage resistance." -ItemDataBase_ItemDefinitions_609:: "Devil Dancers" -ItemDataBase_ItemDefinitions_610:: "When consuming frenzy stacks, gain 5% crit chance for 10 seconds for every stack consumed. Gain 5% attack speed per frenzy stack active." -ItemDataBase_ItemDefinitions_611:: "Call of the Ancients" -ItemDataBase_ItemDefinitions_612:: "Berserk increases all damage by additional {0}" -ItemDataBase_ItemDefinitions_613:: "Berserker's Wrath" -ItemDataBase_ItemDefinitions_614:: "Viking Amulet" -ItemDataBase_ItemDefinitions_615:: "Increases attack and movement speed during berserk by {0}" -ItemDataBase_ItemDefinitions_616:: "Pedant of Skallagrim" -ItemDataBase_ItemDefinitions_617:: "Wristguards of The Sanctuary Keeper" -ItemDataBase_ItemDefinitions_618:: "Allies inside Sanctuary have {0} increased cooldown rate and attacks use {1} less resources" +ItemDatabase_StatDefinitions_1:: "Health" +ItemDatabase_StatDefinitions_2:: "Energy" +ItemDatabase_StatDefinitions_3:: "Health/sec" +ItemDatabase_StatDefinitions_4:: "Stamina/sec" +ItemDatabase_StatDefinitions_5:: "Energy regen" +ItemDatabase_StatDefinitions_6:: "Life regen" +ItemDatabase_StatDefinitions_7:: "Critical hit chance" +ItemDatabase_StatDefinitions_8:: "Life on hit" +ItemDatabase_StatDefinitions_9:: "Dodge chance" +ItemDatabase_StatDefinitions_10:: "Magic resistance" +ItemDatabase_StatDefinitions_11:: "Experience" +ItemDatabase_StatDefinitions_12:: "Spell damage" +ItemDatabase_StatDefinitions_13:: "Melee damage" +ItemDatabase_StatDefinitions_14:: "Ranged damage" +ItemDatabase_StatDefinitions_15:: "Base spell damage" +ItemDatabase_StatDefinitions_16:: "Base melee damage" +ItemDatabase_StatDefinitions_17:: "Base ranged damage" +ItemDatabase_StatDefinitions_18:: "Energy/agility" +ItemDatabase_StatDefinitions_19:: "Health/vitality" +ItemDatabase_StatDefinitions_20:: "Spell damage/intelligence" +ItemDatabase_StatDefinitions_21:: "Melee damage/strength" +ItemDatabase_StatDefinitions_22:: "Recovery" +ItemDatabase_StatDefinitions_23:: "PERMANENT PERK POINTS" +ItemDatabase_StatDefinitions_24:: " / " +ItemDatabase_StatDefinitions_25:: "EXPERIENCE" +ItemDatabase_StatDefinitions_26:: "Weapon length" +ItemDatabase_StatDefinitions_27:: "Attack cost reduction" +ItemDatabase_StatDefinitions_28:: "Spell cost to stamina" +ItemDatabase_StatDefinitions_29:: "Energy/sec" +ItemDatabase_StatDefinitions_30:: "Ranged damage/agility" +ItemDatabase_StatDefinitions_31:: "Melee armor piercing" +ItemDatabase_StatDefinitions_32:: "Ranged armor piercing" +ItemDatabase_StatDefinitions_33:: "Armor piercing" +ItemDatabase_StatDefinitions_34:: "Refund points" +ItemDatabase_StatDefinitions_35:: "Headshot damage" +ItemDatabase_StatDefinitions_36:: "Fire damage" +ItemDatabase_StatDefinitions_37:: "Chance on hit to slow" +ItemDatabase_StatDefinitions_38:: "Chance on hit to bleed" +ItemDatabase_StatDefinitions_39:: "Chance on hit to weaken" +ItemDatabase_StatDefinitions_40:: "Dynamite & bomb damage" +ItemDatabase_StatDefinitions_41:: "Spear damage" +ItemDatabase_StatDefinitions_42:: "Extra carried Sticks" +ItemDatabase_StatDefinitions_43:: "Extra carried Rocks" +ItemDatabase_StatDefinitions_44:: "Extra carried Ropes" +ItemDatabase_StatDefinitions_45:: " Soda: " +ItemDatabase_StatDefinitions_46:: "Booze: " +ItemDatabase_StatDefinitions_47:: "Extra carried Drinks" +ItemDatabase_StatDefinitions_48:: "Extra carried Food" +ItemDatabase_StatDefinitions_49:: "Black hole radius" +ItemDatabase_StatDefinitions_50:: "Black hole lifetime" +ItemDatabase_StatDefinitions_51:: "Black hole gravitational force" +ItemDatabase_StatDefinitions_52:: "Black hole damage" +ItemDatabase_StatDefinitions_53:: "Stun on hit" +ItemDatabase_StatDefinitions_54:: "Snap freeze Duration" +ItemDatabase_StatDefinitions_55:: "Raft speed" +ItemDatabase_StatDefinitions_56:: "Empty socket" +ItemDatabase_StatDefinitions_57:: "Socket: crit chance" +ItemDatabase_StatDefinitions_58:: "Socket: agility" +ItemDatabase_StatDefinitions_59:: "Socket: movement speed" +ItemDatabase_StatDefinitions_60:: "Socket: ranged damage" +ItemDatabase_StatDefinitions_61:: "Socket: ranged armor piercing" +ItemDatabase_StatDefinitions_62:: "Socket: attack speed" +ItemDatabase_StatDefinitions_63:: "Socket: strength" +ItemDatabase_StatDefinitions_64:: "Socket: damage reduction" +ItemDatabase_StatDefinitions_65:: "Socket: melee damage" +ItemDatabase_StatDefinitions_66:: "Socket: melee armor piercing" +ItemDatabase_StatDefinitions_67:: "Socket: cooldown reduction" +ItemDatabase_StatDefinitions_68:: "Socket: intelligence" +ItemDatabase_StatDefinitions_69:: "Socket: spell cost reduction" +ItemDatabase_StatDefinitions_70:: "Socket: spell damage" +ItemDatabase_StatDefinitions_71:: "Socket: energy on hit" +ItemDatabase_StatDefinitions_72:: "Socket: experience gain" +ItemDatabase_StatDefinitions_73:: "Socket: vitality " +ItemDatabase_StatDefinitions_74:: "Socket: magic find" +ItemDatabase_StatDefinitions_75:: "Socket: all healing" +ItemDatabase_StatDefinitions_76:: "Socket: life per second" +ItemDatabase_StatDefinitions_77:: "Socket: maximum health " +ItemDatabase_StatDefinitions_78:: "Socket: armor " +ItemDatabase_StatDefinitions_79:: "Socket: Resistance to magic" +ItemDatabase_StatDefinitions_80:: "Socket: crit damage" +ItemDatabase_StatDefinitions_81:: "Socket: thorns" +ItemDatabase_ItemDefinitions_1:: "Broken Flip-Flops" +ItemDatabase_ItemDefinitions_2:: "A pair of damaged shoes. Judging by their condition, i can imagine what happened to their owner." +ItemDatabase_ItemDefinitions_3:: "Worn by one of the passengers of the plane that Eric also flew in." +ItemDatabase_ItemDefinitions_4:: "Old Boots" +ItemDatabase_ItemDefinitions_5:: "A pair of old boots. They must have been lying here for ages." +ItemDatabase_ItemDefinitions_6:: "Found on the Peninsula, but judging by their condition, they belong neither to a plane passenger nor a cannibal." +ItemDatabase_ItemDefinitions_7:: "Damaged Leather Boots" +ItemDatabase_ItemDefinitions_8:: "A pair of leather boots. They look good and have only some scratches." +ItemDatabase_ItemDefinitions_9:: "They arrived to the Peninsula the same way Eric did. Since they were in a baggage, they avoided a lot of damage." +ItemDatabase_ItemDefinitions_10:: "Sturdy Leather Boots" +ItemDatabase_ItemDefinitions_11:: "A pair of leather boots. They are in a very good condition." +ItemDatabase_ItemDefinitions_12:: "They arrived to the Peninsula the same way Eric did. Eric found them undamaged in their original box. They still had a pricetag - $419,99." +ItemDatabase_ItemDefinitions_13:: "Damaged Army Boots" +ItemDatabase_ItemDefinitions_14:: "Sturdy, hard, resistant but damaged boots." +ItemDatabase_ItemDefinitions_15:: "They look modern, almost too modern for everything here." +ItemDatabase_ItemDefinitions_16:: "Army Boots" +ItemDatabase_ItemDefinitions_17:: "Sturdy, hard, resistant boots." +ItemDatabase_ItemDefinitions_18:: "Armsy Skin Footwear" +ItemDatabase_ItemDefinitions_19:: "Severed armsy legs, with all of their insides removed. All thats left is dried mutated skin." +ItemDatabase_ItemDefinitions_20:: "Armsy, the second heaviest of the mutants needs very resistant skin. It often drags its legs on the ground when it moves. The skin on their legs grew very thick, and has bone tissue mixed with skin tissue." +ItemDatabase_ItemDefinitions_21:: "Finger Warmer" +ItemDatabase_ItemDefinitions_22:: "A little glove to keep your fingers warm and cozy." +ItemDatabase_ItemDefinitions_23:: "Made of wool." +ItemDatabase_ItemDefinitions_24:: "Thick Rubber Glove" +ItemDatabase_ItemDefinitions_25:: "A glove that helps get a better grip." +ItemDatabase_ItemDefinitions_26:: "Tribal Glove" +ItemDatabase_ItemDefinitions_27:: "Offers medicore protection." +ItemDatabase_ItemDefinitions_28:: "Glove made out of thin bones, some may possibly be from a human." +ItemDatabase_ItemDefinitions_29:: "Tribe Leader Glove" +ItemDatabase_ItemDefinitions_30:: "A glove that offers little protection but a lot of offensive stats." +ItemDatabase_ItemDefinitions_31:: "A glove made of bones, some have engravings of crosses." +ItemDatabase_ItemDefinitions_32:: "Worn Shorts" +ItemDatabase_ItemDefinitions_33:: "Some protection for legs." +ItemDatabase_ItemDefinitions_34:: "Short, made out of cheap thin fabric, and on top of that they are damaged. But its better than nothing." +ItemDatabase_ItemDefinitions_35:: "Cargo Shorts" +ItemDatabase_ItemDefinitions_36:: "No protection at all but they allow to carry more items." +ItemDatabase_ItemDefinitions_37:: "They are ugly as hell tho" +ItemDatabase_ItemDefinitions_38:: "Passenger's Jacket" +ItemDatabase_ItemDefinitions_39:: "It's a little torn. " +ItemDatabase_ItemDefinitions_40:: "This jacket was worn by Preston A. the 34th passenger on the plane. Eric talked to him at the airport. Guy was odd, and now he's dead." +ItemDatabase_ItemDefinitions_41:: "Leather Jacket" +ItemDatabase_ItemDefinitions_42:: "Offers little protection" +ItemDatabase_ItemDefinitions_43:: "This jacket was in a baggage of one of the plane passengers" +ItemDatabase_ItemDefinitions_44:: "Boar Skin Armor" +ItemDatabase_ItemDefinitions_45:: "It's made from a skin of a huge individual. It's heavy and thick, and surely can protect from attacks of weaker enemies." +ItemDatabase_ItemDefinitions_46:: "Boar, one of the animals on the peninsula, is rather rare and it's skin is very durable." +ItemDatabase_ItemDefinitions_47:: "Crocodile Skin Armor" +ItemDatabase_ItemDefinitions_48:: "Plate armour" +ItemDatabase_ItemDefinitions_49:: "Bear Skin Armor" +ItemDatabase_ItemDefinitions_50:: "Archer's Gear" +ItemDatabase_ItemDefinitions_51:: "Hazard's Gear" +ItemDatabase_ItemDefinitions_52:: "Mysterious robe" +ItemDatabase_ItemDefinitions_53:: "Magic flows through the entirety of this object. It's made out of unknown material" +ItemDatabase_ItemDefinitions_54:: "Robe looks like it was created yesterday, but its older than the oldest of mankinds' civilizations. Simply looking at it sends chills down the spine." +ItemDatabase_ItemDefinitions_55:: "Empowers cataclysm. The vortex turns blue, damage is increased, freezes enemies " +ItemDatabase_ItemDefinitions_56:: "Rusty Longsword" +ItemDatabase_ItemDefinitions_57:: "A long, very heavy sword. Edge got dull over time. Still, it's in a condition that allows me to slice some enemies in half." +ItemDatabase_ItemDefinitions_58:: "The sword appears to be from medieval ages, through it's not. It was made a lot later. It never was used as a weapon in battles, because it was merely a decoration." +ItemDatabase_ItemDefinitions_59:: "Longsword" +ItemDatabase_ItemDefinitions_60:: "Sharp and long" +ItemDatabase_ItemDefinitions_61:: "The sword is in perfect contidion." +ItemDatabase_ItemDefinitions_62:: "Full Metal Sword" +ItemDatabase_ItemDefinitions_63:: "It's sooo big..." +ItemDatabase_ItemDefinitions_64:: "A normal human cannot lift this." +ItemDatabase_ItemDefinitions_65:: "The Leech" +ItemDatabase_ItemDefinitions_66:: "Hey where did my health g- oh it's back..." +ItemDatabase_ItemDefinitions_67:: "Smokey's Sacred Quiver" +ItemDatabase_ItemDefinitions_68:: "SmokeyTheBear died because he never used this item." +ItemDatabase_ItemDefinitions_69:: "Smokey was the friend of allmighty Hazard, who can materialize any kind of weapon at the snap of his fingers. Hazard remebered Smokey's favourite playstyle and he gave him this as a gift to purge the sh** out of mutants." +ItemDatabase_ItemDefinitions_70:: "Crossbows operate at {0} speed and deal {1} increased damage" +ItemDatabase_ItemDefinitions_71:: "Broken shield" +ItemDatabase_ItemDefinitions_72:: "Tower Shield" +ItemDatabase_ItemDefinitions_73:: "Broken Leather Shoulder Armor" +ItemDatabase_ItemDefinitions_74:: "Leather Shoulder Armor" +ItemDatabase_ItemDefinitions_75:: "Phase Pauldrons" +ItemDatabase_ItemDefinitions_76:: "The distance of blink is increased by {} meters, and blink now hits everything that you teleported through" +ItemDatabase_ItemDefinitions_77:: "MAGA Cap" +ItemDatabase_ItemDefinitions_78:: "Wearing this item channels the power of D.Trump to you" +ItemDatabase_ItemDefinitions_79:: "... or does it?" +ItemDatabase_ItemDefinitions_80:: "Hubble's Vision" +ItemDatabase_ItemDefinitions_81:: "Wearing this item empowers your black hole spell" +ItemDatabase_ItemDefinitions_82:: "Man, fuck gravity." +ItemDatabase_ItemDefinitions_83:: "Broken Loop" +ItemDatabase_ItemDefinitions_84:: "Loop" +ItemDatabase_ItemDefinitions_85:: "Toxic Ring" +ItemDatabase_ItemDefinitions_86:: " comment was about to bring down upon you, maybe you would have held your fucking tongue. But you couldn't, you didn't, and now you're paying the price, you goddamn idiot. I will shit fury all over you and you will drown in it. You're fucking dead, kiddo." +ItemDatabase_ItemDefinitions_87:: "What the fuck did you just fucking say about me, you little bitch? I'll have you know I graduated top of my class in the Navy Seals, and I've been involved in numerous secret raids on Al-Quaeda, and I have over 300 confirmed kills. I am trained in gorilla warfare and I'm the top sniper in the entire US armed forces. You are nothing to me but just another target. I will wipe you the fuck out with precision the likes of which has never been seen before on this Earth, mark my fucking words. You think you can get away with saying that shit to me over the Internet? Think again, fucker. As we speak I am contacting my secret network of spies across the USA and your IP is being traced right now so you better prepare for the storm, maggot. The storm that wipes out the pathetic little thing you call your life. You're fucking dead, kid. I can be anywhere, anytime, and I can kill you in over seven hundred ways, and that's just with my bare hands. Not only am I extensively trained in unarmed combat, but I have access to the entire arsenal of the United States Marine Corps and I will use it to its full extent to wipe your miserable ass off the face of the continent, you little shit. If only you could have known what unholy retribution your little \"clever\" comment was about to bring down upon you, maybe you would have held your fucking tongue. But you couldn't, you didn't, and now you're paying the price, you goddamn idiot. I will shit fury all over you and you will drown in it. You're fucking dead, kiddo." +ItemDatabase_ItemDefinitions_88:: "Scarf" +ItemDatabase_ItemDefinitions_89:: "Damaged Bracer" +ItemDatabase_ItemDefinitions_90:: "Worn Bracer" +ItemDatabase_ItemDefinitions_91:: "Leather Bracer" +ItemDatabase_ItemDefinitions_92:: "Greater Mutated Heart" +ItemDatabase_ItemDefinitions_93:: "Can be consumed by right clicking it" +ItemDatabase_ItemDefinitions_94:: "Lesser Mutated Heart" +ItemDatabase_ItemDefinitions_95:: "Spiked ring" +ItemDatabase_ItemDefinitions_96:: "Armor piercing for either melee or ranged weapons" +ItemDatabase_ItemDefinitions_97:: "Piercer" +ItemDatabase_ItemDefinitions_98:: "Moon Boots" +ItemDatabase_ItemDefinitions_99:: "A pair of boots from the moon." +ItemDatabase_ItemDefinitions_100:: "It is said that the wearer will not take fall damage while wearing these boots and will jump like on the moon, I wouldn't trust it tough." +ItemDatabase_ItemDefinitions_101:: "Golden Ring of Strength" +ItemDatabase_ItemDefinitions_102:: "A Ring of ancient times." +ItemDatabase_ItemDefinitions_103:: "A Golden Ring that looks simple and elegant, yet it feels powerfull to the touch." +ItemDatabase_ItemDefinitions_104:: "Golden Ring of Vitality" +ItemDatabase_ItemDefinitions_105:: "Golden Ring of Agility" +ItemDatabase_ItemDefinitions_106:: "Golden Ring of Intelligence" +ItemDatabase_ItemDefinitions_107:: "Silver Ring of Strength" +ItemDatabase_ItemDefinitions_108:: "A Silver Ring that looks simple and elegant, yet it feels powerfull to the touch." +ItemDatabase_ItemDefinitions_109:: "Silver Ring of Vitality" +ItemDatabase_ItemDefinitions_110:: "Silver Ring of Agility" +ItemDatabase_ItemDefinitions_111:: "Silver Ring of Intelligence" +ItemDatabase_ItemDefinitions_112:: "Steel Ring of Strength" +ItemDatabase_ItemDefinitions_113:: "A Steel Ring that looks simple and elegant, yet it feels powerfull to the touch." +ItemDatabase_ItemDefinitions_114:: "Steel Ring of Vitality" +ItemDatabase_ItemDefinitions_115:: "Steel Ring of Agility" +ItemDatabase_ItemDefinitions_116:: "Steel Ring of Intelligence" +ItemDatabase_ItemDefinitions_117:: "The One Ring To Rule Them All" +ItemDatabase_ItemDefinitions_118:: "An Ancient magical Ring of great power." +ItemDatabase_ItemDefinitions_119:: "It looks like and ordinay ring, but a strange energy is surrounding it. The Ring is said to have been found inside a volcanic rock by an archeologist, who went mad and isolated himself on the peninsula many years ago. But that's just a fairy tale, ring?" +ItemDatabase_ItemDefinitions_120:: "Attracts unwanted attention of an unknown entity." +ItemDatabase_ItemDefinitions_121:: "Golden Locket of Strength" +ItemDatabase_ItemDefinitions_122:: "A Locket of ancient times." +ItemDatabase_ItemDefinitions_123:: "A Golden Locket that looks simple and elegant, yet it feels powerfull to the touch." +ItemDatabase_ItemDefinitions_124:: "Golden Locket of Vitality" +ItemDatabase_ItemDefinitions_125:: "Golden Locket of Agility" +ItemDatabase_ItemDefinitions_126:: "Golden Locket of Intelligence" +ItemDatabase_ItemDefinitions_127:: "Silver Locket of Strength" +ItemDatabase_ItemDefinitions_128:: "A Silver Locket that looks simple and elegant, yet it feels powerfull to the touch." +ItemDatabase_ItemDefinitions_129:: "Silver Locket of Vitality" +ItemDatabase_ItemDefinitions_130:: "Silver Locket of Agility" +ItemDatabase_ItemDefinitions_131:: "Silver Locket of Intelligence" +ItemDatabase_ItemDefinitions_132:: "Emerald Pendant of Strength" +ItemDatabase_ItemDefinitions_133:: "A Pendant of ancient times." +ItemDatabase_ItemDefinitions_134:: "An Emerald Pendant that looks simple and elegant, yet it feels powerfull to the touch." +ItemDatabase_ItemDefinitions_135:: "Emerald Pendant of Vitality" +ItemDatabase_ItemDefinitions_136:: "Emerald Pendant of Agility" +ItemDatabase_ItemDefinitions_137:: "Emerald Pendant of Intelligence" +ItemDatabase_ItemDefinitions_138:: "Diamond Pendant of Strength" +ItemDatabase_ItemDefinitions_139:: "A Diamond Pendant that looks simple and elegant, yet it feels powerfull to the touch." +ItemDatabase_ItemDefinitions_140:: "Diamond Pendant of Vitality" +ItemDatabase_ItemDefinitions_141:: "Diamond Pendant of Agility" +ItemDatabase_ItemDefinitions_142:: "Diamond Pendant of Intelligence" +ItemDatabase_ItemDefinitions_143:: "Armsy Finger Necklace" +ItemDatabase_ItemDefinitions_144:: "A Necklace decorated with armsy fingertips." +ItemDatabase_ItemDefinitions_145:: "A Necklace made from the fingertips of an armsy, yeilding it's raw power and strentgh." +ItemDatabase_ItemDefinitions_146:: "Virginia Heart Pendant" +ItemDatabase_ItemDefinitions_147:: "A Pendant of a petrified Virginia heart." +ItemDatabase_ItemDefinitions_148:: "A Pendant made from a petrified Virginia heart, yeilding it's love and Vitality." +ItemDatabase_ItemDefinitions_149:: "Cowman Toe Necklace" +ItemDatabase_ItemDefinitions_150:: "A Necklace decorated with cowman toes." +ItemDatabase_ItemDefinitions_151:: "A Necklace made from the fingertips of an armsy, yeilding it's speed and agility." +ItemDatabase_ItemDefinitions_152:: "Pendant of Perpetual Rebirth" +ItemDatabase_ItemDefinitions_153:: "A Pendant of a shrunken babyhead." +ItemDatabase_ItemDefinitions_154:: "A pedant of great power. Obtainable only from babies or crafting" +ItemDatabase_ItemDefinitions_155:: "decrease a random cooldown by {0} second whenever you hit something with melee or ranged attack." +ItemDatabase_ItemDefinitions_156:: "Megan's Locket" +ItemDatabase_ItemDefinitions_157:: "The Locket Megan wore." +ItemDatabase_ItemDefinitions_158:: "Megan wore this Locket, it has a picture of her mom in it." +ItemDatabase_ItemDefinitions_159:: "Relic Hammer" +ItemDatabase_ItemDefinitions_160:: "It's slow and weak." +ItemDatabase_ItemDefinitions_161:: "Slows on hit" +ItemDatabase_ItemDefinitions_162:: "Black Hammer" +ItemDatabase_ItemDefinitions_163:: "It's slow but with enough strength i can make it a very deadly tool" +ItemDatabase_ItemDefinitions_164:: "Potato Sack" +ItemDatabase_ItemDefinitions_165:: "Can be used as a quiver" +ItemDatabase_ItemDefinitions_166:: "Rabbit Skin Quiver" +ItemDatabase_ItemDefinitions_167:: "Hollow Log" +ItemDatabase_ItemDefinitions_168:: "It allows for faster drawing of arrow than a cloth quiver" +ItemDatabase_ItemDefinitions_169:: "Spellbound Quiver" +ItemDatabase_ItemDefinitions_170:: "Long Lost Quiver" +ItemDatabase_ItemDefinitions_171:: "Spell Scroll" +ItemDatabase_ItemDefinitions_172:: "Contains a lot of information on how to properly cast spells to achieve better results" +ItemDatabase_ItemDefinitions_173:: "Cloth Pants" +ItemDatabase_ItemDefinitions_174:: "Offer little protction" +ItemDatabase_ItemDefinitions_175:: "Rough Hide Leggins" +ItemDatabase_ItemDefinitions_176:: "Plate Leggins" +ItemDatabase_ItemDefinitions_177:: "Sage's Robes" +ItemDatabase_ItemDefinitions_178:: "Hammer Jammers" +ItemDatabase_ItemDefinitions_179:: "Damage of your smash attack is increased by {0}, hammer stun duration is doubled" +ItemDatabase_ItemDefinitions_180:: "Pirate Pants" +ItemDatabase_ItemDefinitions_181:: "Those pants are ligh and comfortable. They offer plenty of mobility but lack in protection." +ItemDatabase_ItemDefinitions_182:: "Hexed Pants of Mr M." +ItemDatabase_ItemDefinitions_183:: "They look like yoga pants but for a man the size of a wardrobe" +ItemDatabase_ItemDefinitions_184:: "Once upon a time there was a man who was in a basement and fed himself with nothing but nuggets. He got so obese that friends and family started worrying. Hazard noticed this man and cursed his pants to force him to excercise." +ItemDatabase_ItemDefinitions_185:: "While moving, energy regeneration and damage is increased by {0}. While standing still for longer than a second, you loose {1} of max health per second." +ItemDatabase_ItemDefinitions_186:: "Leather Mantle" +ItemDatabase_ItemDefinitions_187:: "A piece of cloth to give protection from " +ItemDatabase_ItemDefinitions_188:: "Shoulder Guards" +ItemDatabase_ItemDefinitions_189:: "Medium armor piece." +ItemDatabase_ItemDefinitions_190:: "Heavy armor" +ItemDatabase_ItemDefinitions_191:: "Heavy Shoulder Plates" +ItemDatabase_ItemDefinitions_192:: "Heavy armor piece. They offer great protection at the cost of attack speed and movement speed decrease" +ItemDatabase_ItemDefinitions_193:: "Etched Mantle" +ItemDatabase_ItemDefinitions_194:: "Those pauldrons empower wearer's combat skill" +ItemDatabase_ItemDefinitions_195:: "Assassins Pauldrons" +ItemDatabase_ItemDefinitions_196:: "Death Pact" +ItemDatabase_ItemDefinitions_197:: "Find the greatest strength on the border of life and death." +ItemDatabase_ItemDefinitions_198:: "Every attack you make decreases your health by {0} of max health. For every percent of missing health you gain {1} damage amplification. This damage cannot kill you." +ItemDatabase_ItemDefinitions_199:: "Maximale Qualitot" +ItemDatabase_ItemDefinitions_200:: "A platinum ring with the most expensive jewels engraved on it. It's quality is uncomparable." +ItemDatabase_ItemDefinitions_201:: "Heart of Purity" +ItemDatabase_ItemDefinitions_202:: "A object filled with both destructive and creative energy. Allows to re-assign all spent mutation points" +ItemDatabase_ItemDefinitions_203:: "This powerful relic contains so much power, that it can kill anything and force it to come back to life, resulting in it's rebirth." +ItemDatabase_ItemDefinitions_204:: "Can be consumed by right clicking it. " +ItemDatabase_ItemDefinitions_205:: "Round Shield" +ItemDatabase_ItemDefinitions_206:: "A sturdy shield made of wood and reinforced with iron." +ItemDatabase_ItemDefinitions_207:: "Old Buckler" +ItemDatabase_ItemDefinitions_208:: "An old shield." +ItemDatabase_ItemDefinitions_209:: "This item has a lot of scratches that look like they were made by something with sharp claws." +ItemDatabase_ItemDefinitions_210:: "Dark Oak Shield" +ItemDatabase_ItemDefinitions_211:: "Bone Shield" +ItemDatabase_ItemDefinitions_212:: "A shield made of bones, held together by thick steel wire." +ItemDatabase_ItemDefinitions_213:: "Dull Longsword" +ItemDatabase_ItemDefinitions_214:: "It's round on the edges" +ItemDatabase_ItemDefinitions_215:: "Iron Horn" +ItemDatabase_ItemDefinitions_216:: "When using Warcry, you and all allies recieve armor bonus equal to {0} of your armor" +ItemDatabase_ItemDefinitions_217:: "The Great Iron Horn" +ItemDatabase_ItemDefinitions_218:: "Horned Helmet" +ItemDatabase_ItemDefinitions_219:: "A viking helmet" +ItemDatabase_ItemDefinitions_220:: "Mask" +ItemDatabase_ItemDefinitions_221:: "Mask of Madness" +ItemDatabase_ItemDefinitions_222:: "Old Scroll" +ItemDatabase_ItemDefinitions_223:: "Wormhole Stabilizators" +ItemDatabase_ItemDefinitions_224:: "High-tech gear" +ItemDatabase_ItemDefinitions_225:: "Hazard remember to put some fucking lore in here, don't leave it like this!" +ItemDatabase_ItemDefinitions_226:: "Increases the duration of a portal by {0} seconds" +ItemDatabase_ItemDefinitions_227:: "Cripplers" +ItemDatabase_ItemDefinitions_228:: "Increases the duration of a magic arrow's negative effect by {0} seconds" +ItemDatabase_ItemDefinitions_229:: "Crossfire" +ItemDatabase_ItemDefinitions_230:: "Infused with powerful magic. This item is a dangerous tool of destruction." +ItemDatabase_ItemDefinitions_231:: "When hitting an enemy with a projectile, create a magic arrow pointed at the enemy and shoot it without using in energy. This effect may occur once every 2 seconds, but can be interval can be shortened with cooldown reduction." +ItemDatabase_ItemDefinitions_232:: "Scroll of Recovery" +ItemDatabase_ItemDefinitions_233:: "Recovers health and stamina" +ItemDatabase_ItemDefinitions_234:: "Tiara" +ItemDatabase_ItemDefinitions_235:: "A beautiful tiara " +ItemDatabase_ItemDefinitions_236:: "This tiara may not provide much protection, but it sure is pretty" +ItemDatabase_ItemDefinitions_237:: "Shiny" +ItemDatabase_ItemDefinitions_238:: "Chastity belt" +ItemDatabase_ItemDefinitions_239:: "Dodge those fukbois" +ItemDatabase_ItemDefinitions_240:: "This belt will stop those cheeky cannibals and armsies from getting into your pants" +ItemDatabase_ItemDefinitions_241:: " {0} damage reduction while sleeping" +ItemDatabase_ItemDefinitions_242:: "Ice Scroll" +ItemDatabase_ItemDefinitions_243:: "A spell surrounded by flying shards of ice, contains tramendous power of cold." +ItemDatabase_ItemDefinitions_244:: "Created at the top of the mountain." +ItemDatabase_ItemDefinitions_245:: "Motorboat Modification Blueprints" +ItemDatabase_ItemDefinitions_246:: "Sheet of paper that allows to turn any raft into a high speed. Increases carry amount and increases speed of rafts." +ItemDatabase_ItemDefinitions_247:: "Who did this lmao." +ItemDatabase_ItemDefinitions_248:: "Axe of Swiftness" +ItemDatabase_ItemDefinitions_249:: "Severer" +ItemDatabase_ItemDefinitions_250:: "Golden Axe of Fortune" +ItemDatabase_ItemDefinitions_251:: "Axe of Misfortune" +ItemDatabase_ItemDefinitions_252:: "Misfortunate are the ones on the recieving end. They will bleed a lot" +ItemDatabase_ItemDefinitions_253:: "Golden Ring" +ItemDatabase_ItemDefinitions_254:: "Golden Locket" +ItemDatabase_ItemDefinitions_255:: "Dull Axe" +ItemDatabase_ItemDefinitions_256:: "Precise Adjustments" +ItemDatabase_ItemDefinitions_257:: "Focus attack speed buff duration is increased by {0} seconds" +ItemDatabase_ItemDefinitions_258:: "Rage" +ItemDatabase_ItemDefinitions_259:: "Increases maximum stacks of frenzy by {0}" +ItemDatabase_ItemDefinitions_260:: "Swords go brrrrrrttt" +ItemDatabase_ItemDefinitions_261:: "Jagged Edge" +ItemDatabase_ItemDefinitions_262:: "Bash has {0} a chance to make enemies to bleed for {1} of damage dealt per second for duration of slow" +ItemDatabase_ItemDefinitions_263:: "Bloodthirster" +ItemDatabase_ItemDefinitions_264:: "Drenched in blood of many unfortunate foes." +ItemDatabase_ItemDefinitions_265:: "Bash lifesteals {0} of damage dealt into energy and health" +ItemDatabase_ItemDefinitions_266:: "Frost Giant" +ItemDatabase_ItemDefinitions_267:: "Melee hits freeze enemies" +ItemDatabase_ItemDefinitions_268:: "Alexander's Shield" +ItemDatabase_ItemDefinitions_269:: "Parry has a chance to be casted when getting it. Requires parry to be equipped" +ItemDatabase_ItemDefinitions_270:: "King Qruies" +ItemDatabase_ItemDefinitions_271:: "A mighty sword seeking for it's owner" +ItemDatabase_ItemDefinitions_272:: "Gain additional melee damage equal to the last instance of physical damage taken." +ItemDatabase_ItemDefinitions_273:: "Grip of Sora" +ItemDatabase_ItemDefinitions_274:: "Look, a porcupine! -Sora" +ItemDatabase_ItemDefinitions_275:: "Multishot drains {0} less energy and shoots +4 projectiles. Additional projectiles do not increase the cost of multishot" +ItemDatabase_ItemDefinitions_276:: "Ancient Greatbow" +ItemDatabase_ItemDefinitions_277:: "A massive and slow bow, deals extra damage" +ItemDatabase_ItemDefinitions_278:: "Phoenix's Death" +ItemDatabase_ItemDefinitions_279:: "Ignites enemies on hit" +ItemDatabase_ItemDefinitions_280:: "Soulstring" +ItemDatabase_ItemDefinitions_281:: "A massive and slow bow" +ItemDatabase_ItemDefinitions_282:: "Blood infused arrow now deals additional {0} points of damage per health consumed" +ItemDatabase_ItemDefinitions_283:: "Greatbow" +ItemDatabase_ItemDefinitions_284:: "Withered Crown" +ItemDatabase_ItemDefinitions_285:: "Worn by Hazard." +ItemDatabase_ItemDefinitions_286:: "A single cast of blood infused arrow affects {0} more projectiles" +ItemDatabase_ItemDefinitions_287:: "Novice Magic Caster's Bracers" +ItemDatabase_ItemDefinitions_288:: "Ranger's Bracers" +ItemDatabase_ItemDefinitions_289:: "Swordsman's Bracers" +ItemDatabase_ItemDefinitions_290:: "Healer's Bracers" +ItemDatabase_ItemDefinitions_291:: "Novice Magic Caster's Gloves" +ItemDatabase_ItemDefinitions_292:: "Ranger's Gloves" +ItemDatabase_ItemDefinitions_293:: "Swordsman's Gloves" +ItemDatabase_ItemDefinitions_294:: "Healer's Gloves" +ItemDatabase_ItemDefinitions_295:: "Fate Gloves" +ItemDatabase_ItemDefinitions_296:: "Fate Boots" +ItemDatabase_ItemDefinitions_297:: "Greed" +ItemDatabase_ItemDefinitions_298:: "Automatically casts wide reach every second" +ItemDatabase_ItemDefinitions_299:: "Titanium Leggins" +ItemDatabase_ItemDefinitions_300:: "Heavily armored leg protection. Suffers from the same weaknesses as spartan armor." +ItemDatabase_ItemDefinitions_301:: "Iron Gauntlet" +ItemDatabase_ItemDefinitions_302:: "Magefist" +ItemDatabase_ItemDefinitions_303:: "Gloves that amplify magic" +ItemDatabase_ItemDefinitions_304:: "Spells deal double damage but have double the energy cost" +ItemDatabase_ItemDefinitions_305:: "Armored Boots" +ItemDatabase_ItemDefinitions_306:: "Heavily armored, resistant to damage boots." +ItemDatabase_ItemDefinitions_307:: "Broken Protector" +ItemDatabase_ItemDefinitions_308:: "This shield failed to protect those behind it." +ItemDatabase_ItemDefinitions_309:: "Forbidden Scroll" +ItemDatabase_ItemDefinitions_310:: "Too powerful to be kept." +ItemDatabase_ItemDefinitions_311:: "Doom Pauldrons" +ItemDatabase_ItemDefinitions_312:: "Despite the cool name, they are completely normal pair of shoulder armor." +ItemDatabase_ItemDefinitions_313:: "Wind armor" +ItemDatabase_ItemDefinitions_314:: "Run fast like the wind" +ItemDatabase_ItemDefinitions_315:: "Upon dodging an attack, gain {0} movement speed, {1} damage, {2} armor, and heal for {3} of your maximum health" +ItemDatabase_ItemDefinitions_316:: "Crusader Helmet" +ItemDatabase_ItemDefinitions_317:: "You're talking mad shit for someone within crusading distance" +ItemDatabase_ItemDefinitions_318:: "Hood" +ItemDatabase_ItemDefinitions_319:: "Hats provide usefull stat bonuses" +ItemDatabase_ItemDefinitions_320:: "The Spark of Light in The Darkness" +ItemDatabase_ItemDefinitions_321:: "Magic Scroll of great quality" +ItemDatabase_ItemDefinitions_322:: "Written in a language i canno't understand. Decyphering this text is impossible, so is the full utilization of the scroll." +ItemDatabase_ItemDefinitions_323:: "If a black hole hits {0} or more enemies during it's lifetime, a ball lightning is summoned after it ends." +ItemDatabase_ItemDefinitions_324:: "Purgatory" +ItemDatabase_ItemDefinitions_325:: "Golden ring with a bone chilling feel about it. This thing will only bring harm, but not to the wearer" +ItemDatabase_ItemDefinitions_326:: "Ring made of Netherrite" +ItemDatabase_ItemDefinitions_327:: "Purge increases all of your damage based on missing health. Up to {0}" +ItemDatabase_ItemDefinitions_328:: "Eruption" +ItemDatabase_ItemDefinitions_329:: "Incarnation of devastation" +ItemDatabase_ItemDefinitions_330:: "Headshots cause explosions" +ItemDatabase_ItemDefinitions_331:: "Archangel" +ItemDatabase_ItemDefinitions_332:: "Spread the goodness" +ItemDatabase_ItemDefinitions_333:: "Shooting another player causes them to be greatly empowered for {0} seconds" +ItemDatabase_ItemDefinitions_334:: "The Executioner" +ItemDatabase_ItemDefinitions_335:: "A sword for decapitating" +ItemDatabase_ItemDefinitions_336:: "Moon Cuirass" +ItemDatabase_ItemDefinitions_337:: "A piece of armor designed for an archer. " +ItemDatabase_ItemDefinitions_338:: "Landing a headshot with an arrow without the homing effect of seeking arrow at a distance greater than {0} feet deals tenfold damage, and hits the enemy two extra times" +ItemDatabase_ItemDefinitions_339:: "Thornmail" +ItemDatabase_ItemDefinitions_340:: "Spiked death on the outside, really comfy on the inside" +ItemDatabase_ItemDefinitions_341:: "Thorns deal double damage" +ItemDatabase_ItemDefinitions_342:: "Rusty Polearm" +ItemDatabase_ItemDefinitions_343:: "Used by the Ubersreik Five" +ItemDatabase_ItemDefinitions_344:: "Giant Polearm" +ItemDatabase_ItemDefinitions_345:: "Used by the Sir Kruber" +ItemDatabase_ItemDefinitions_346:: "Crude Feather" +ItemDatabase_ItemDefinitions_347:: "Materials can be put inside empty sockets to add stats to items" +ItemDatabase_ItemDefinitions_348:: "Soft Feather" +ItemDatabase_ItemDefinitions_349:: "Ornate Feather" +ItemDatabase_ItemDefinitions_350:: "Wonderful Feather" +ItemDatabase_ItemDefinitions_351:: "White Crow's Feather" +ItemDatabase_ItemDefinitions_352:: "Reef Shark" +ItemDatabase_ItemDefinitions_353:: "Tiger Shark Tooth" +ItemDatabase_ItemDefinitions_354:: "Whale Shark Tooth" +ItemDatabase_ItemDefinitions_355:: "Great White Shark Tooth" +ItemDatabase_ItemDefinitions_356:: "Megalodon's Tooth" +ItemDatabase_ItemDefinitions_357:: "Uncut Sapphire" +ItemDatabase_ItemDefinitions_358:: "Clear Sapphire" +ItemDatabase_ItemDefinitions_359:: "Shiny Sapphire" +ItemDatabase_ItemDefinitions_360:: "Enchanted Sapphire" +ItemDatabase_ItemDefinitions_361:: "Celestial Sapphire" +ItemDatabase_ItemDefinitions_362:: "Uncut Moonstone" +ItemDatabase_ItemDefinitions_363:: "Clear Moonstone" +ItemDatabase_ItemDefinitions_364:: "Shiny Moonstone" +ItemDatabase_ItemDefinitions_365:: "Enchanted Moonstone" +ItemDatabase_ItemDefinitions_366:: "Celestial Moonstone" +ItemDatabase_ItemDefinitions_367:: "Lead Ore" +ItemDatabase_ItemDefinitions_368:: "Vanadium Ore" +ItemDatabase_ItemDefinitions_369:: "Titanium Ore" +ItemDatabase_ItemDefinitions_370:: "Chromium Ore" +ItemDatabase_ItemDefinitions_371:: "Tungsten Ore" +ItemDatabase_ItemDefinitions_372:: "Knife on a stick" +ItemDatabase_ItemDefinitions_373:: "Kasper named this item, his fault" +ItemDatabase_ItemDefinitions_374:: "Fists of Nails" +ItemDatabase_ItemDefinitions_375:: "Swiss sheese makers" +ItemDatabase_ItemDefinitions_376:: "Gain {0} thorns per vitality" +ItemDatabase_ItemDefinitions_377:: "Cargo Shorts MK2" +ItemDatabase_ItemDefinitions_378:: "Deepest pockets out there" +ItemDatabase_ItemDefinitions_379:: "Improved cargo pants. Twice as many pockets, and since they didnt fit on the outside, they are inside. They are still ugly as hell tho" +ItemDatabase_ItemDefinitions_380:: "Aezyn" +ItemDatabase_ItemDefinitions_381:: "Enchanted with magic as strong as power swing. It's purpose? Hit harder." +ItemDatabase_ItemDefinitions_382:: "Magic arrow damage scaling is increased by {0}" +ItemDatabase_ItemDefinitions_383:: "Punny's Reflective Ring" +ItemDatabase_ItemDefinitions_384:: "Magic arrow is shot in volleys. This effect can stack." +ItemDatabase_ItemDefinitions_385:: "Eyepatch" +ItemDatabase_ItemDefinitions_386:: "A wise man once said:" +ItemDatabase_ItemDefinitions_387:: "Everyone thinks I'm just a one-eyed bloody monster, god damnit... (sobbing)" +ItemDatabase_ItemDefinitions_388:: "Explosion damage is also applied when performing jump attacks" +ItemDatabase_ItemDefinitions_389:: "Javelin" +ItemDatabase_ItemDefinitions_390:: "Warplate" +ItemDatabase_ItemDefinitions_391:: "Enchanted with the power of the GOD's armor. It's purpose? Hit harder, daddy." +ItemDatabase_ItemDefinitions_392:: "Strength comes from the power of will, the stronger the will the stronger you are" +ItemDatabase_ItemDefinitions_393:: "Torso of Strength" +ItemDatabase_ItemDefinitions_394:: "Demoman's Vest" +ItemDatabase_ItemDefinitions_395:: "What makes me a good demoman? If I were a bad demoman, I wouldn't be sittin' here discussin' it with you, now would I?! LET'S DO IT! Not one of you's gonna survive this! One crossed wire, one wayward pinch of potassium chlorate, one errant twitch, and KA-BLOOIE! I got a manky eye. I'm a black Scottish cyclops. They got more fecking sea monsters in the great Lochett Ness than they got the likes of me. So! T'all you fine dandies, so proud, so cocksure, prancin' about with your heads full of eyeballs... come and get me, I say! I'll be waitin' on you with a whiff of the old brimstone! I'm a Grimm bloody fable with an unhappy bloody end! Oh, they're going to have to glue you back together...IN HELL!" +ItemDatabase_ItemDefinitions_396:: "Brawler's Gloves" +ItemDatabase_ItemDefinitions_397:: "Nail Gloves" +ItemDatabase_ItemDefinitions_398:: "Enchanted with the power of penetration. It's purpose? Hit harder." +ItemDatabase_ItemDefinitions_399:: "Hand-held Ballista" +ItemDatabase_ItemDefinitions_400:: "Kuldars's Scarf" +ItemDatabase_ItemDefinitions_401:: "Strength comes from the power of will" +ItemDatabase_ItemDefinitions_402:: "Sword Devil's Scarf" +ItemDatabase_ItemDefinitions_403:: "Peasant's Scarf" +ItemDatabase_ItemDefinitions_404:: "Bombastinc Choker" +ItemDatabase_ItemDefinitions_405:: "Explosive Touch" +ItemDatabase_ItemDefinitions_406:: "Enchanted with the power of the explosions armor. It's purpose? Become the true explosion master" +ItemDatabase_ItemDefinitions_407:: "Strength comes from the power of will, the stronger the will the stronger the explosion" +ItemDatabase_ItemDefinitions_408:: "Volatile Bracers" +ItemDatabase_ItemDefinitions_409:: "Volatile Helmet" +ItemDatabase_ItemDefinitions_410:: "Gunpowder filled socks" +ItemDatabase_ItemDefinitions_411:: "Red Skirt" +ItemDatabase_ItemDefinitions_412:: "Gunpowder Boxers" +ItemDatabase_ItemDefinitions_413:: "Jihad Vest" +ItemDatabase_ItemDefinitions_414:: "Ring of Fortune" +ItemDatabase_ItemDefinitions_415:: "Mana Ring" +ItemDatabase_ItemDefinitions_416:: "Life Ring" +ItemDatabase_ItemDefinitions_417:: "Moritz's Gear" +ItemDatabase_ItemDefinitions_418:: "Band of Hurting" +ItemDatabase_ItemDefinitions_419:: "A ring for a warrior" +ItemDatabase_ItemDefinitions_420:: "Straw Hat" +ItemDatabase_ItemDefinitions_421:: "Rusty Javelin" +ItemDatabase_ItemDefinitions_422:: "Star Robe" +ItemDatabase_ItemDefinitions_423:: "Anger" +ItemDatabase_ItemDefinitions_424:: "Downscaled version of Greatsword Rage, made to be wielded by flimsy wizards" +ItemDatabase_ItemDefinitions_425:: "Increases maximum stacks of frenzy by {0}" +ItemDatabase_ItemDefinitions_426:: "Yuki-Onna Strides" +ItemDatabase_ItemDefinitions_427:: "Set Piece:\n2 Pieces- Snow Storm pulls enemies towards you\n3 Pieces - Snow Storm radius, maximum damage, spell cost is doubled, but charge rate is slower\n4 Pieces - Snow storm hit frequency is increased by {0}" +ItemDatabase_ItemDefinitions_428:: "Boots looted off a snow demon" +ItemDatabase_ItemDefinitions_429:: "Increses snowstorm damage by {0}" +ItemDatabase_ItemDefinitions_430:: "Yuki-Onna Greaves" +ItemDatabase_ItemDefinitions_431:: "Yuki-Onna Kimono" +ItemDatabase_ItemDefinitions_432:: "Yuki-Onna's Headdress" +ItemDatabase_ItemDefinitions_433:: "Set Piece:\n2 Pieces- Snow Storm pulls enemies towards you\n3 Pieces - Snow Storm radius, maximum damage, spell cost is doubled, but charge rate is slower\n4 Pieces - Snow storm hit frequency is increased by {0} and damage is increased by {1}" +ItemDatabase_ItemDefinitions_434:: "Lama Mega's Blood Bag" +ItemDatabase_ItemDefinitions_435:: "Melee hits cause enemies to bleed for {0} of your health as damage for {1} seconds" +ItemDatabase_ItemDefinitions_436:: "Socket Drill" +ItemDatabase_ItemDefinitions_437:: "A convienient one use tool" +ItemDatabase_ItemDefinitions_438:: "What's a drill doing here in a place full of primitive tribes?" +ItemDatabase_ItemDefinitions_439:: "Adds one socket to an item, unless the item can't have any more sockets." +ItemDatabase_ItemDefinitions_440:: "Moonwalkers" +ItemDatabase_ItemDefinitions_441:: "Cha cha real smooth." +ItemDatabase_ItemDefinitions_442:: "Inverts movement" +ItemDatabase_ItemDefinitions_443:: "Rabbit Ears Hairband" +ItemDatabase_ItemDefinitions_444:: "Cute" +ItemDatabase_ItemDefinitions_445:: "Bunny Ears Hairband" +ItemDatabase_ItemDefinitions_446:: "Iron plate full of holes" +ItemDatabase_ItemDefinitions_447:: "The integrity of this item is questionable" +ItemDatabase_ItemDefinitions_448:: "Small Tribal Necklace" +ItemDatabase_ItemDefinitions_449:: "Increases maximum stacks of frenzy by {0}" +ItemDatabase_ItemDefinitions_450:: "Tribal Necklace" +ItemDatabase_ItemDefinitions_451:: "Increases maximum stacks of frenzy by {0}" +ItemDatabase_ItemDefinitions_452:: "Warlord Necklace" +ItemDatabase_ItemDefinitions_453:: "Increases maximum stacks of frenzy by {0}" +ItemDatabase_ItemDefinitions_454:: "Travel Band" +ItemDatabase_ItemDefinitions_455:: "The distance of blink is increased by {0} feet" +ItemDatabase_ItemDefinitions_456:: "Destroyed Void Shard" +ItemDatabase_ItemDefinitions_457:: "Only a fraction of its previous might remains" +ItemDatabase_ItemDefinitions_458:: "Decrease the cooldown of one ability by {0} second whenever you hit something with melee or ranged attack." +ItemDatabase_ItemDefinitions_459:: "Famine Hammer" +ItemDatabase_ItemDefinitions_460:: "Chance to weaken enemies, causing them to take more damage from all attacks, is increased by {0}" +ItemDatabase_ItemDefinitions_461:: "Curse Hammer" +ItemDatabase_ItemDefinitions_462:: "Omnious Weapon" +ItemDatabase_ItemDefinitions_463:: "Chance to weaken enemies, causing them to take more damage from all attacks, is increased by {0}" +ItemDatabase_ItemDefinitions_464:: "Smasher" +ItemDatabase_ItemDefinitions_465:: "Smash damage is increased tripled" +ItemDatabase_ItemDefinitions_466:: "Vampiric Band" +ItemDatabase_ItemDefinitions_467:: "Gain {0} stamina on ranged and melee hit or double that amount on critical hits" +ItemDatabase_ItemDefinitions_468:: "Vampire Ring" +ItemDatabase_ItemDefinitions_469:: "Gain {0} stamina on ranged and melee hit or double that amount on critical hits" +ItemDatabase_ItemDefinitions_470:: "Tricksters Scarf" +ItemDatabase_ItemDefinitions_471:: "Magic arrow shoots {0} additional arrow." +ItemDatabase_ItemDefinitions_472:: "Magus' Necktie" +ItemDatabase_ItemDefinitions_473:: "Magic arrow shoots {0} additional arrows." +ItemDatabase_ItemDefinitions_474:: "Discounted Knockoff Magic Quiver" +ItemDatabase_ItemDefinitions_475:: "There's a {0} increased chance to not consume ammo when firing a projectile." +ItemDatabase_ItemDefinitions_476:: "Magic Quiver" +ItemDatabase_ItemDefinitions_477:: "There's a {0} increased chance to not consume ammo when firing a projectile." +ItemDatabase_ItemDefinitions_478:: "Improved Magic Quiver" +ItemDatabase_ItemDefinitions_479:: "There's a {0} increased chance to not consume ammo when firing a projectile." +ItemDatabase_ItemDefinitions_480:: "Factory Quiver" +ItemDatabase_ItemDefinitions_481:: "There's a {0} increased chance to not consume ammo when firing a projectile." +ItemDatabase_ItemDefinitions_482:: "Enzyme STR/34" +ItemDatabase_ItemDefinitions_483:: "A substance which results in surprising changes to gear" +ItemDatabase_ItemDefinitions_484:: "Changes Vitality, Agility or Intelligence stat on an item to Strength or changes Ranged or Spell damage stat to Melee Damage" +ItemDatabase_ItemDefinitions_485:: "Enzyme INT/33" +ItemDatabase_ItemDefinitions_486:: "Changes Vitality, Agility or Strength stat on an item to Intelligence or changes Ranged or Melee damage stat to Spell Damage" +ItemDatabase_ItemDefinitions_487:: "Enzyme AGI/39" +ItemDatabase_ItemDefinitions_488:: "Changes Vitality, Intelligence or Strength stat on an item to Agility or changes Melee or Spell damage stat to Ranged Damage" +ItemDatabase_ItemDefinitions_489:: "Enzyme VIT/449" +ItemDatabase_ItemDefinitions_490:: "Changes Agility, Intelligence or Strength stat on an item to Vitality" +ItemDatabase_ItemDefinitions_491:: "Stomach Acid" +ItemDatabase_ItemDefinitions_492:: "Removes all stats with negative values from an item" +ItemDatabase_ItemDefinitions_493:: "Elite Stomach Acid" +ItemDatabase_ItemDefinitions_494:: "Changes negative stat values into positive values on an item" +ItemDatabase_ItemDefinitions_495:: "Crimson Solution" +ItemDatabase_ItemDefinitions_496:: "Upgrades item of any rarity to one of the same type but of Legendary rarity" +ItemDatabase_ItemDefinitions_497:: "Weak Armor Hardening Mixture" +ItemDatabase_ItemDefinitions_498:: "Adds Armor Stat to a piece of equipment if the item does not already have it" +ItemDatabase_ItemDefinitions_499:: "Upgraded Armor Hardening Mixture" +ItemDatabase_ItemDefinitions_500:: "Adds Damage Reduction Stat to a piece of equipment if the item does not already have it" +ItemDatabase_ItemDefinitions_501:: "Chaos Water" +ItemDatabase_ItemDefinitions_502:: "Rerolls all stats on an item of rarity no higher than orange" +ItemDatabase_ItemDefinitions_503:: "Upgraded Chaos Water" +ItemDatabase_ItemDefinitions_504:: "Rerolls all stats on an item of any rarity" +ItemDatabase_ItemDefinitions_505:: "Gun Blade" +ItemDatabase_ItemDefinitions_506:: "Increases pistol damage by {0}" +ItemDatabase_ItemDefinitions_507:: "Sharpshooter's Axe" +ItemDatabase_ItemDefinitions_508:: "Increases pistol headshot chance by {0} and pistol damage by {1}" +ItemDatabase_ItemDefinitions_509:: "Shield Blade" +ItemDatabase_ItemDefinitions_510:: "So large can be used as a shield" +ItemDatabase_ItemDefinitions_511:: "A normal human cannot lift this weapon." +ItemDatabase_ItemDefinitions_512:: "Blunt Blade for Bashing Skulls" +ItemDatabase_ItemDefinitions_513:: "Bash damage debuff on enemies is increased by {0}" +ItemDatabase_ItemDefinitions_514:: "Madman's Legacy" +ItemDatabase_ItemDefinitions_515:: "Frenzy damage per stack is increased by {0}" +ItemDatabase_ItemDefinitions_516:: "Buckler" +ItemDatabase_ItemDefinitions_517:: "Pyromancy Mask" +ItemDatabase_ItemDefinitions_518:: "Ignited enemies burn for {0} longer." +ItemDatabase_ItemDefinitions_519:: "Ember Mask" +ItemDatabase_ItemDefinitions_520:: "Ignited enemies burn for {0} longer and fire ticks thrice as fast." +ItemDatabase_ItemDefinitions_521:: "Flame Pauldrons" +ItemDatabase_ItemDefinitions_522:: "Firebolt costs {0} additional energy to cast and its damage scaling is increased by {1}" +ItemDatabase_ItemDefinitions_523:: "Ancient Scroll" +ItemDatabase_ItemDefinitions_524:: "Guide on Tearing Spacetime" +ItemDatabase_ItemDefinitions_525:: "Blink creates an explosion at the exit point, and the damage of the explosion is increased by velocity and the radius is increased by the distance of blink" +ItemDatabase_ItemDefinitions_526:: "300th Spear" +ItemDatabase_ItemDefinitions_527:: "Stone Pauldrons" +ItemDatabase_ItemDefinitions_528:: "All damage increased by {0}" +ItemDatabase_ItemDefinitions_529:: "Iron Shoulder Pads" +ItemDatabase_ItemDefinitions_530:: "All damage increased by {0}" +ItemDatabase_ItemDefinitions_531:: "Steel Shoulder Pads" +ItemDatabase_ItemDefinitions_532:: "All damage increased by {0}" +ItemDatabase_ItemDefinitions_533:: "Battle scarred Shoulder Pads" +ItemDatabase_ItemDefinitions_534:: "All damage increased by {0}" +ItemDatabase_ItemDefinitions_535:: "Mystery Shoulder Pads" +ItemDatabase_ItemDefinitions_536:: "All damage increased by {0}" +ItemDatabase_ItemDefinitions_537:: "Stone Shield" +ItemDatabase_ItemDefinitions_538:: "Iron Shield" +ItemDatabase_ItemDefinitions_539:: "Steel Tower Shield" +ItemDatabase_ItemDefinitions_540:: "Guardian" +ItemDatabase_ItemDefinitions_541:: "Mystery Shield" +ItemDatabase_ItemDefinitions_542:: "Light Boot" +ItemDatabase_ItemDefinitions_543:: "Iron Boots" +ItemDatabase_ItemDefinitions_544:: "Steel Boots" +ItemDatabase_ItemDefinitions_545:: "Threads" +ItemDatabase_ItemDefinitions_546:: "Mystery Boots" +ItemDatabase_ItemDefinitions_547:: "Wraps" +ItemDatabase_ItemDefinitions_548:: "Steel Gauntlet" +ItemDatabase_ItemDefinitions_549:: "Titanium Gauntlet" +ItemDatabase_ItemDefinitions_550:: "Mystery Gauntlet" +ItemDatabase_ItemDefinitions_551:: "Leather Tasset" +ItemDatabase_ItemDefinitions_552:: "Iron Tasset" +ItemDatabase_ItemDefinitions_553:: "Steel Tasset" +ItemDatabase_ItemDefinitions_554:: "Black Steel Leggins" +ItemDatabase_ItemDefinitions_555:: "Mystery Leggins" +ItemDatabase_ItemDefinitions_556:: "Leather Vest" +ItemDatabase_ItemDefinitions_557:: "Iron Breastplate" +ItemDatabase_ItemDefinitions_558:: "Steel Breastplate" +ItemDatabase_ItemDefinitions_559:: "Silver Armor" +ItemDatabase_ItemDefinitions_560:: "Mystery Breastplate" +ItemDatabase_ItemDefinitions_561:: "Cloth Band" +ItemDatabase_ItemDefinitions_562:: "Iron Wristguard" +ItemDatabase_ItemDefinitions_563:: "Steel Wristguard" +ItemDatabase_ItemDefinitions_564:: "Baron Wristguards" +ItemDatabase_ItemDefinitions_565:: "Mystery Wristguards" +ItemDatabase_ItemDefinitions_566:: "Iron Helmet" +ItemDatabase_ItemDefinitions_567:: "Steel Helmet" +ItemDatabase_ItemDefinitions_568:: "Armored Hood" +ItemDatabase_ItemDefinitions_569:: "Mystery Helmet" +ItemDatabase_ItemDefinitions_570:: "Yorium's Gaze" +ItemDatabase_ItemDefinitions_571:: "SET PIECE. Melee weapon range is increased by {0}, attack cost in stamina is halved." +ItemDatabase_ItemDefinitions_572:: "Set Piece:\n2 Pieces- Berserk does not apply exhaustion when it ends\n3 Pieces - Berserk duration is increased by {0} seconds\n4 Pieces - Each second of berserk being in effect increases damage by {1}.\n5 Pieces - For the first {2} seconds of Berserk attack speed increases by {3} per second, and lasts till the end of the spell's duration." +ItemDatabase_ItemDefinitions_573:: "Yorium's Ruthlessness" +ItemDatabase_ItemDefinitions_574:: "Yorium's Burden" +ItemDatabase_ItemDefinitions_575:: "Yorium's Resolve" +ItemDatabase_ItemDefinitions_576:: "Atomic Augmentation" +ItemDatabase_ItemDefinitions_577:: "Yorium's Assault" +ItemDatabase_ItemDefinitions_578:: "Undying Promise" +ItemDatabase_ItemDefinitions_579:: "Resist lethal damage on a {0} minute cooldown" +ItemDatabase_ItemDefinitions_581:: "Snap freeze damage scaling is increased by {0} and the slow duration is increased by {1} seconds" +ItemDatabase_ItemDefinitions_582:: "If equipped on a weapon, increases ranged damage by " +ItemDatabase_ItemDefinitions_583:: "If equipped on boots, increases movement speed by " +ItemDatabase_ItemDefinitions_584:: "If equipped on a helmet, increases critical hit chance by " +ItemDatabase_ItemDefinitions_585:: "If equipped on accessories, increases ranged armor piercing by " +ItemDatabase_ItemDefinitions_586:: "If equipped in other slots, increases agility by " +ItemDatabase_ItemDefinitions_587:: "If equipped on a weapon, increases melee damage by " +ItemDatabase_ItemDefinitions_588:: "If equipped on boots, decreases damage taken by " +ItemDatabase_ItemDefinitions_589:: "If equipped on a helmet, increases attack speed by " +ItemDatabase_ItemDefinitions_590:: "If equipped on accessories, increases melee armor piercing by " +ItemDatabase_ItemDefinitions_591:: "If equipped in other slots, increases strength by " +ItemDatabase_ItemDefinitions_592:: "If equipped on a weapon, increases magic damage by " +ItemDatabase_ItemDefinitions_593:: "If equipped on boots, decreases spell cost by " +ItemDatabase_ItemDefinitions_594:: "If equipped on a helmet, decreases spell cooldown by " +ItemDatabase_ItemDefinitions_595:: "If equipped on accessories, increases energy on hit by " +ItemDatabase_ItemDefinitions_596:: "If equipped in other slots, increases intelligence by " +ItemDatabase_ItemDefinitions_597:: "If equipped on a weapon, increases all healing by " +ItemDatabase_ItemDefinitions_598:: "If equipped on boots, increases magic find by " +ItemDatabase_ItemDefinitions_599:: "If equipped on a helmet, increases experience gained by " +ItemDatabase_ItemDefinitions_600:: "If equipped on accessories, increases life per second by " +ItemDatabase_ItemDefinitions_601:: "If equipped in other slots, increases vitality by " +ItemDatabase_ItemDefinitions_602:: "If equipped on a weapon, increases crit damage by " +ItemDatabase_ItemDefinitions_603:: "If equipped on boots, increases resistance to magic by " +ItemDatabase_ItemDefinitions_604:: "If equipped on a helmet, increases health by " +ItemDatabase_ItemDefinitions_605:: "If equipped on accessories, increases thorns by " +ItemDatabase_ItemDefinitions_606:: "If equipped in other slots, increases armor by " +ItemDatabase_ItemDefinitions_607:: "Firebolt deals increased damage" +ItemDatabase_ItemDefinitions_608:: "\nWarcry gives damage resistance." +ItemDatabase_ItemDefinitions_609:: "Devil Dancers" +ItemDatabase_ItemDefinitions_610:: "When consuming frenzy stacks, gain 5% crit chance for 10 seconds for every stack consumed. Gain 5% attack speed per frenzy stack active." +ItemDatabase_ItemDefinitions_611:: "Call of the Ancients" +ItemDatabase_ItemDefinitions_612:: "Berserk increases all damage by additional {0}" +ItemDatabase_ItemDefinitions_613:: "Berserker's Wrath" +ItemDatabase_ItemDefinitions_614:: "Viking Amulet" +ItemDatabase_ItemDefinitions_615:: "Increases attack and movement speed during berserk by {0}" +ItemDatabase_ItemDefinitions_616:: "Pedant of Skallagrim" +ItemDatabase_ItemDefinitions_617:: "Wristguards of The Sanctuary Keeper" +ItemDatabase_ItemDefinitions_618:: "Allies inside Sanctuary have {0} increased cooldown rate and attacks use {1} less resources" MainMenu_Hints_1:: "Gain experience by hunting" MainMenu_Hints_2:: "Experience is shared between players" MainMenu_Hints_3:: "Gain experience by killing enemies" From fba080d50d8044e41482df907364c121a7d77cf7 Mon Sep 17 00:00:00 2001 From: "Hazard (Cyprian Skrzypczak)" Date: Fri, 18 Apr 2025 01:30:07 +0200 Subject: [PATCH 14/27] Added a new option to cotf settings --- Enemies/EnemyProgression/EnemyProgression.cs | 4 ++-- ModSettings.cs | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/Enemies/EnemyProgression/EnemyProgression.cs b/Enemies/EnemyProgression/EnemyProgression.cs index ac38085..2148ebb 100644 --- a/Enemies/EnemyProgression/EnemyProgression.cs +++ b/Enemies/EnemyProgression/EnemyProgression.cs @@ -407,8 +407,8 @@ private void DropLoot() int pc = ModReferences.Players.Count; for (int i = 0; i < pc; i++) { - //Drop megan only amulet - Network.NetworkManager.SendItemDrop(new Item(ItemDatabase.itemLookup[80]), LocalPlayer.Transform.position + Vector3.up * 2, ItemPickUp.DropSource.EnemyOnDeath); + ////Drop megan only amulet + //Network.NetworkManager.SendItemDrop(new Item(ItemDatabase.itemLookup[80]), LocalPlayer.Transform.position + Vector3.up * 2, ItemPickUp.DropSource.EnemyOnDeath); } } else if (abilities.Count >= 3) diff --git a/ModSettings.cs b/ModSettings.cs index d529ecf..9a065fc 100644 --- a/ModSettings.cs +++ b/ModSettings.cs @@ -43,6 +43,10 @@ public enum LootLevelPolicy public const float MagicFindPerDifficultyLevel = 0.25f; + // TODO use this + // TODO Add gui toggle for this + public static bool PrivateLoot = false; // new, if true, drops from enemies are private to each player. No more racing for items + public static readonly List outdatedFiles = new List(); public static float DropQuantityMultiplier = 1; From b4d3b36e308f6ff69e2116ff5f484e2d3977df07 Mon Sep 17 00:00:00 2001 From: "Hazard (Cyprian Skrzypczak)" Date: Fri, 18 Apr 2025 13:05:34 +0200 Subject: [PATCH 15/27] Updated amulets --- ChampionsOfForest.csproj | 13 +- Effects/Berserker.cs | 4 +- Enemies/EnemyProgression/EnemyProgression.cs | 2 +- Items/ItemDataBase.cs | 32 +- Items/ItemDataBase_Loot.cs | 155 +- Items/ItemDataBase_StatDefinitions.cs | 8 +- Items/ItemDefinitions/Amulet.cs | 71 - Items/ItemDefinitions/Amulets.cs | 111 + Items/ItemDefinitions/{Boot.cs => Boots.cs} | 10 +- .../ItemDefinitions/{Bracer.cs => Bracers.cs} | 2 +- .../{ChestArmor.cs => ChestArmors.cs} | 7 +- Items/ItemDefinitions/{Glove.cs => Gloves.cs} | 2 +- .../ItemDataBase_ItemDefinitions.cs | 15934 ++++++++-------- Items/ItemDefinitions/ItemDefinition.cs | 44 - Items/ItemDefinitions/Materials.cs | 22 + Items/ItemDefinitions/Other.cs | 2 +- Items/ItemDefinitions/Quivers.cs | 5 - Items/ItemDefinitions/Rings.cs | 17 +- .../{SpellScroll.cs => SpellScrolls.cs} | 2 +- Items/ItemTemplates.cs | 70 +- Items/StatActions.cs | 4 +- Player/BuffDataBase.cs | 4 +- Player/Main Menu/MainMenu_Guide.cs | 2 +- .../ModdedPlayer.ModdedPlayerStats.cs | 8 +- Player/Overrides/FPCharacterMod.cs | 4 +- Player/Perks/PerkDatabase.cs | 4 +- Player/Spells/SpellActions.cs | 4 +- Player/Spells/SpellDataBase.cs | 2 +- 28 files changed, 8299 insertions(+), 8246 deletions(-) delete mode 100644 Items/ItemDefinitions/Amulet.cs create mode 100644 Items/ItemDefinitions/Amulets.cs rename Items/ItemDefinitions/{Boot.cs => Boots.cs} (87%) rename Items/ItemDefinitions/{Bracer.cs => Bracers.cs} (97%) rename Items/ItemDefinitions/{ChestArmor.cs => ChestArmors.cs} (85%) rename Items/ItemDefinitions/{Glove.cs => Gloves.cs} (97%) create mode 100644 Items/ItemDefinitions/Materials.cs rename Items/ItemDefinitions/{SpellScroll.cs => SpellScrolls.cs} (97%) diff --git a/ChampionsOfForest.csproj b/ChampionsOfForest.csproj index 77ac801..24bc96a 100644 --- a/ChampionsOfForest.csproj +++ b/ChampionsOfForest.csproj @@ -210,19 +210,20 @@ - - - - - + + + + + + - + diff --git a/Effects/Berserker.cs b/Effects/Berserker.cs index a50b2a7..3fc9811 100644 --- a/Effects/Berserker.cs +++ b/Effects/Berserker.cs @@ -22,7 +22,7 @@ public static void OnEnable() active = true; ModdedPlayer.Stats.allDamage.Multiply(ModdedPlayer.Stats.spell_berserkDamage); ModdedPlayer.Stats.attackSpeed.Multiply(ModdedPlayer.Stats.spell_berserkAttackSpeed); - ModdedPlayer.Stats.movementSpeed.Multiply(ModdedPlayer.Stats.spell_berserkMovementSpeed); + ModdedPlayer.Stats.mOVEMENT_SPEED.Multiply(ModdedPlayer.Stats.spell_berserkMOVEMENT_SPEED); ModdedPlayer.Stats.maxLifeMult.Multiply(ModdedPlayer.Stats.spell_berserkMaxHP); ModdedPlayer.Stats.allDamageTaken.Multiply(2f); @@ -35,7 +35,7 @@ public static void OnDisable() active = false; ModdedPlayer.Stats.allDamage.Divide(ModdedPlayer.Stats.spell_berserkDamage); ModdedPlayer.Stats.attackSpeed.Divide(ModdedPlayer.Stats.spell_berserkAttackSpeed); - ModdedPlayer.Stats.movementSpeed.Divide(ModdedPlayer.Stats.spell_berserkMovementSpeed); + ModdedPlayer.Stats.mOVEMENT_SPEED.Divide(ModdedPlayer.Stats.spell_berserkMOVEMENT_SPEED); ModdedPlayer.Stats.maxLifeMult.Divide(ModdedPlayer.Stats.spell_berserkMaxHP); ModdedPlayer.Stats.allDamageTaken.Divide( 2f); if (ModdedPlayer.Stats.i_setcount_BerserkSet < 2) diff --git a/Enemies/EnemyProgression/EnemyProgression.cs b/Enemies/EnemyProgression/EnemyProgression.cs index 2148ebb..a14ea2a 100644 --- a/Enemies/EnemyProgression/EnemyProgression.cs +++ b/Enemies/EnemyProgression/EnemyProgression.cs @@ -121,7 +121,7 @@ public enum Enemy PaintedMale = 0b1000000000000000000, PaintedLeaderMale = 0b10000000000000000000, PaintedFemale = 0b100000000000000000000, - Fireman = 0b1000000000000000000000 + Fireman = 0b1000000000000000000000, }; #endregion Variables diff --git a/Items/ItemDataBase.cs b/Items/ItemDataBase.cs index 8338628..b9283a0 100644 --- a/Items/ItemDataBase.cs +++ b/Items/ItemDataBase.cs @@ -4,6 +4,7 @@ using System.Linq; using static ChampionsOfForest.ItemDefinition; +using static TheForest.Items.World.PickUp; namespace ChampionsOfForest.Items { @@ -32,7 +33,20 @@ public static void Initialize() try { - PopulateItems(); + AddAmulets(); + AddBoots(); + AddBracers(); + AddChestArmor(); + AddConsumables(); + AddGloves(); + AddHelmets(); + AddMaterials(); + AddPants(); + AddQuivers(); + AddRings(); + AddShields(); + AddShoulderArmor(); + AddSpellScrolls } catch (System.Exception ex) { @@ -70,5 +84,21 @@ public static ItemDefinition ItemBaseByName(string name) { return itemLookup.Values.First(x => x.name == name); } + + private static void SanitizeItems() + { + foreach (var keyValuePair in itemLookup) + { + var itemDef = keyValuePair.Value; + if (itemDef.lootTable == EnemyProgression.Enemy.All) + { + itemDef.lootTable = (EnemyProgression.Enemy)0b11111111111111111111111; + } + if (itemDef.lootWeight <= 0) + { + itemDef.lootWeight = 1; + } + } + } } } \ No newline at end of file diff --git a/Items/ItemDataBase_Loot.cs b/Items/ItemDataBase_Loot.cs index 094d566..ef2bd88 100644 --- a/Items/ItemDataBase_Loot.cs +++ b/Items/ItemDataBase_Loot.cs @@ -14,6 +14,21 @@ namespace ChampionsOfForest.Items { public static partial class ItemDatabase { + static int randomItemPoolLevel = -1; // at which level was the random item pool created + static RandomItemPoolEntry[] randomItemPoolEntries = new RandomItemPoolEntry[(int)ItemDefinition.Rarity.Max]; + static int[] odds = new int[] + { + // odds of upgrading from one rarity to another + // the odds are 1 in x + 3, // Common + 10, // Magic + 25, // Rare + 100, // Legendary + }; + + static System.Random rng = new System.Random(); + + private static int GetLevel(Vector3 pos) { int level; @@ -59,146 +74,84 @@ private static int GetLevel(Vector3 pos) } return level; } - public static Item GetRandomItem(float Worth, Vector3 pos) - { - int level = GetLevel(pos); - float w = Worth; - w *= ModdedPlayer.Stats.magicFind_quantity.Value; - - int rarity = GetRarity(w, ModSettings.difficulty); - - int[] itemIdPool = null; - while (itemIdPool == null) - { - itemIdPool = ItemRarityGroups[rarity].Where(i => (AllowItemDrop(i, level, EnemyProgression.Enemy.All))).ToArray(); - if (itemIdPool.Length == 0) - { - rarity--; - itemIdPool = null; - } - if (rarity == -1) - return null; - } - - int randomID = Random.Range(0, itemIdPool.Length); - Item item = new Item(itemLookup[itemIdPool[randomID]]); - - item.level = level; - if (item.id == 42 || item.id == 103 || item.type == ItemDefinition.ItemType.Material) - item.level = 1; - item.RollStats(); - return item; - } - - public static bool AllowItemDrop(int i, in int level, EnemyProgression.Enemy e) - { - if (!itemLookup.ContainsKey(i)) - { - return true; - } - if ((int)itemLookup[i].lootTable != 0) - return (itemLookup[i].lootTable & e) != 0 && itemLookup[i].minLevel <= level; - return itemLookup[i].minLevel <= level; - } - struct RandomItemPoolEntry + class RandomItemPoolEntry { - public int totalWeight; public List items; - public RandomItemPoolEntry(int level, int rarity) { - totalWeight = 0; items = new List(); foreach (var item in ItemRarityGroups[rarity]) { if (itemLookup[item].minLevel <= level && itemLookup[item].lootTable != 0) { - totalWeight += itemLookup[item].lootWeight; items.Add(itemLookup[item]); } } } - public ItemDefinition Get(int randomWeight) + + }; + + static ItemDefinition GetItemFromPool(List pool, int randomWeight, int totalWeight) + { + randomWeight = Mathf.Max(randomWeight, totalWeight); + int i = 0; + while (randomWeight > totalWeight && i < pool.Count - 1) { - randomWeight = Mathf.Max(randomWeight, totalWeight); - int i = 0; - while (randomWeight > totalWeight && i < items.Count-1) + if (randomWeight < pool[i].lootWeight) + return pool[i]; + else { - if (randomWeight < items[i].lootWeight) - return items[i]; - else - { - randomWeight -= items[i].lootWeight; - i++; - } + randomWeight -= pool[i].lootWeight; + i++; } - return items[i]; } - }; - - static int randomItemPoolLevel = -1; // at which level was the random item pool created - static RandomItemPoolEntry[] randomItemPoolEntries = new RandomItemPoolEntry[(int)ItemDefinition.Rarity.Max]; + return pool[i]; + } - static RandomItemPoolEntry GetPool(int level, int rarity) + static List GetPool(int level, int rarity, EnemyProgression.Enemy enemyType) { - if(randomItemPoolLevel != level) + if (randomItemPoolLevel != level) { randomItemPoolLevel = level; for (int i = 0; i < randomItemPoolEntries.Length; i++) - randomItemPoolEntries[i] = new RandomItemPoolEntry(); + randomItemPoolEntries[i] = new RandomItemPoolEntry(level, i); + } - if () + if (rarity < randomItemPoolEntries.Length) + return randomItemPoolEntries[rarity].items.Where(item => (item.lootTable & enemyType) > 0).ToList(); + return null; } - - public static Item GetRandomItem(float Worth, EnemyProgression.Enemy killedEnemyType, ModSettings.Difficulty difficulty, Vector3 pos) + // returns a list of random items that meet the criteria of the enemy type and level of players + public static Item[] GetRandomItems(EnemyProgression.Enemy killedEnemyType, ModSettings.Difficulty difficulty, Vector3 pos, int count) { int level = GetLevel(pos); ItemDefinition.Rarity rarity = GetRandomRarity(level, ModdedPlayer.Stats.magicFind_quality.Value, difficulty); - - - int[] itemIdPool = null; - while (itemIdPool == null) + List pool = GetPool(level, (int)rarity, killedEnemyType); + if (pool.Count == 0) { - itemIdPool = ItemRarityGroups[rarity].Where(i => (AllowItemDrop(i, level, EnemyProgression.Enemy.All))).ToArray(); - if (itemIdPool.Length == 0) - { - rarity--; - itemIdPool = null; - } - if (rarity == -1) - return null; + Debug.LogError($"No items for pool level:{level} rarity:{rarity} enemy:{killedEnemyType}"); + return null; } - int randomID = Random.Range(0, itemIdPool.Length); - Item item = new Item(itemLookup[itemIdPool[randomID]]); + int totalWeight = pool.Sum(x => x.lootWeight); + Item[] items = new Item[count]; + for (int i = 0; i < count; i++) + { + items[i] = new Item(GetItemFromPool(pool, Random.Range(0, totalWeight), totalWeight), level); + } + return items; - item.level = level; - if (item.id == 42 || item.id == 103 || item.type == ItemDefinition.ItemType.Material) - item.level = 1; - item.RollStats(); - return item; } - static int[] odds = new int[] - { - // odds of upgrading from one rarity to another - // the odds are 1 in x - 3, // Common - 10, // Magic - 25, // Rare - 100, // Legendary - }; - - static System.Random rng = new System.Random(); public static ItemDefinition.Rarity GetRandomRarity(int level, float qualitymult, ModSettings.Difficulty difficulty) { qualitymult += (int)difficulty * ModSettings.MagicFindPerDifficultyLevel; - int rarityNum = 0; - while (rarityNum < (int) ItemDefinition.Rarity.Max-1) + int rarityNum = 0; + while (rarityNum < (int)ItemDefinition.Rarity.Max - 1) { double chance = (odds[rarityNum] / qualitymult); double rand = rng.NextDouble() * chance; @@ -207,7 +160,7 @@ public static ItemDefinition.Rarity GetRandomRarity(int level, float qualitymult else break; } - return (ItemDefinition.Rarity) rarityNum; + return (ItemDefinition.Rarity)rarityNum; } } } \ No newline at end of file diff --git a/Items/ItemDataBase_StatDefinitions.cs b/Items/ItemDataBase_StatDefinitions.cs index 195becd..680f716 100644 --- a/Items/ItemDataBase_StatDefinitions.cs +++ b/Items/ItemDataBase_StatDefinitions.cs @@ -330,15 +330,15 @@ private static void PopulateStats() .RarityScaling(0.2f); new ItemStatBuilder(Stat.MOVEMENT_SPEED, "Movement speed", 0.03f, 0.07f) - .AffectsStat(ModdedPlayer.Stats.movementSpeed) - .Additive(ModdedPlayer.Stats.movementSpeed) + .AffectsStat(ModdedPlayer.Stats.mOVEMENT_SPEED) + .Additive(ModdedPlayer.Stats.mOVEMENT_SPEED) .PercentFormatting() .LevelScaling(0.1f) .RarityScaling(0.2f); new ItemStatBuilder(Stat.JUMP_POWER, "Jump power", 0.03f, 0.07f) - .AffectsStat(ModdedPlayer.Stats.movementSpeed) - .Additive(ModdedPlayer.Stats.movementSpeed) + .AffectsStat(ModdedPlayer.Stats.mOVEMENT_SPEED) + .Additive(ModdedPlayer.Stats.mOVEMENT_SPEED) .PercentFormatting() .LevelScaling(0.1f) .RarityScaling(0.2f); diff --git a/Items/ItemDefinitions/Amulet.cs b/Items/ItemDefinitions/Amulet.cs deleted file mode 100644 index c4b2203..0000000 --- a/Items/ItemDefinitions/Amulet.cs +++ /dev/null @@ -1,71 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Security.Policy; -using System.Text; - -using ChampionsOfForest.Items.ItemTemplates; - -using static ChampionsOfForest.Items.ItemDatabase.Stat; - -namespace ChampionsOfForest.Items -{ - public static partial class ItemDatabase - { - - public static void AddAmulet() - { - - //------------------------------------------------------ - //Rarity 0 (White) - //------------------------------------------------------ - - new Amulet() - .DefaultStatSlot(1) - .Name("") - .Description("") - .Rarity(0); - - //------------------------------------------------------ - //Rarity 1 (Green) - //------------------------------------------------------ - - new Amulet() - .DefaultStatSlot(2) - .Name("") - .Description("") - .Rarity(1); - - //------------------------------------------------------ - //Rarity 2 (Blue) - //------------------------------------------------------ - - new Amulet() - .DefaultStatSlot(3) - .Name("") - .Description("") - .Rarity(2); - - //------------------------------------------------------ - //Rarity 3 (Yellow) - //------------------------------------------------------ - - new Amulet() - .DefaultStatSlot(4) - .Name("") - .Description("") - .Rarity(3); - - //------------------------------------------------------ - //Rarity 4 (Red) - //------------------------------------------------------ - - new Amulet() - .DefaultStatSlot(5) - .Name("") - .Description("") - .Rarity(4); - - } - } -} \ No newline at end of file diff --git a/Items/ItemDefinitions/Amulets.cs b/Items/ItemDefinitions/Amulets.cs new file mode 100644 index 0000000..e48e1b8 --- /dev/null +++ b/Items/ItemDefinitions/Amulets.cs @@ -0,0 +1,111 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Security.Policy; +using System.Text; + +using ChampionsOfForest.Items.ItemTemplates; +using ChampionsOfForest.Player; + +using static ChampionsOfForest.Items.ItemDatabase.Stat; + +namespace ChampionsOfForest.Items +{ + public static partial class ItemDatabase + { + + public static void AddAmulets() + { + + //------------------------------------------------------ + //Rarity 0 (White) + //------------------------------------------------------ + + new Amulet() + .AmuletStatSlot(1) + .DefenseStatSlot(1) + .Name("Steel Locket") + .Description("A a trinklet that boosts defense.") + .Rarity(0); + + new Amulet() + .AmuletStatSlot(2) + .Name("Bronze Locket") + .Description("") + .Rarity(0) + .Weight(5); + + new Amulet() + .AmuletStatSlot(1) + .MagicStatSlot(1) + .Name("Small Sapphire Pedant") + .Description("Mages value sapphires for their arcane properites.") + .Rarity(0); + + + + //------------------------------------------------------ + //Rarity 1 (Green) + //------------------------------------------------------ + + new Amulet() + .AmuletStatSlot(3) + .Name("Enchanted Golden Chain") + .Description("") + .Rarity(1) + .Weight(5); + + new Amulet() + .AmuletStatSlot(2) + .RangedStatSlot(1) + .StatSlot(new Stat[] { LOOT_QUALITY, LOOT_QUANTITY }, probability: 0.10f) + .Name("Hunter's Charm") + .Description("An amulet crafted from a beast's fang, said to enhance fortune and precision during hunts.") + .Rarity(0); + + //------------------------------------------------------ + //Rarity 2 (Blue) + //------------------------------------------------------ + + new Amulet() + .AmuletStatSlot(4) + .Name("Champion's Chain") + .Description("") + .Rarity(2) + .Weight(5); + + //------------------------------------------------------ + //Rarity 3 (Yellow) + //------------------------------------------------------ + + new Amulet() + .AmuletStatSlot(5) + .Name("Sun Amulet") + .Description("") + .Rarity(3); + + new Amulet() + .AmuletStatSlot(3) + .DefenseStatSlot(1) + .RecoveryStatSlot(1) + .Name("Flesh Amulet") + .Description("Obtainable only from mutants.") + .Rarity(3) + .SetDropCreepy(); + + //------------------------------------------------------ + //Rarity 4 (Red) + //------------------------------------------------------ + + new Amulet() + .AmuletStatSlot(6) + .Name("Viridescent Mirror") + .Description("") + .Rarity(4) + .UniqueStat("Magic arrow creates 2 additional projectiles and fires in volleys", + () => ModdedPlayer.Stats.spell_magicArrowVolleyCount.Add(2), + () => ModdedPlayer.Stats.spell_magicArrowVolleyCount.Sub(2)); + + } + } +} \ No newline at end of file diff --git a/Items/ItemDefinitions/Boot.cs b/Items/ItemDefinitions/Boots.cs similarity index 87% rename from Items/ItemDefinitions/Boot.cs rename to Items/ItemDefinitions/Boots.cs index 8d406bb..0ec6f8d 100644 --- a/Items/ItemDefinitions/Boot.cs +++ b/Items/ItemDefinitions/Boots.cs @@ -21,7 +21,7 @@ public static void AddBoots() new Boot() .DefaultStatSlot(1) - .StatSlot(new Stat[] { MOVEMENTSPEED }) + .StatSlot(new Stat[] { MOVEMENT_SPEED }) .Name("") .Description("") .Rarity(0); @@ -32,7 +32,7 @@ public static void AddBoots() new Boot() .DefaultStatSlot(2) - .StatSlot(new Stat[] { MOVEMENTSPEED }) + .StatSlot(new Stat[] { MOVEMENT_SPEED }) .Name("") .Description("") .Rarity(1); @@ -43,7 +43,7 @@ public static void AddBoots() new Boot() .DefaultStatSlot(3) - .StatSlot(new Stat[] { MOVEMENTSPEED }) + .StatSlot(new Stat[] { MOVEMENT_SPEED }) .Name("") .Description("") .Rarity(2); @@ -54,7 +54,7 @@ public static void AddBoots() new Boot() .DefaultStatSlot(4) - .StatSlot(new Stat[] { MOVEMENTSPEED }) + .StatSlot(new Stat[] { MOVEMENT_SPEED }) .Name("") .Description("") .Rarity(3); @@ -65,7 +65,7 @@ public static void AddBoots() new Boot() .DefaultStatSlot(5) - .StatSlot(new Stat[] { MOVEMENTSPEED }) + .StatSlot(new Stat[] { MOVEMENT_SPEED }) .Name("") .Description("") .Rarity(4); diff --git a/Items/ItemDefinitions/Bracer.cs b/Items/ItemDefinitions/Bracers.cs similarity index 97% rename from Items/ItemDefinitions/Bracer.cs rename to Items/ItemDefinitions/Bracers.cs index 316fc27..352fdbc 100644 --- a/Items/ItemDefinitions/Bracer.cs +++ b/Items/ItemDefinitions/Bracers.cs @@ -13,7 +13,7 @@ namespace ChampionsOfForest.Items public static partial class ItemDatabase { - public static void AddBracer() + public static void AddBracers() { //------------------------------------------------------ diff --git a/Items/ItemDefinitions/ChestArmor.cs b/Items/ItemDefinitions/ChestArmors.cs similarity index 85% rename from Items/ItemDefinitions/ChestArmor.cs rename to Items/ItemDefinitions/ChestArmors.cs index 328ee6b..e360d16 100644 --- a/Items/ItemDefinitions/ChestArmor.cs +++ b/Items/ItemDefinitions/ChestArmors.cs @@ -13,7 +13,7 @@ namespace ChampionsOfForest.Items public static partial class ItemDatabase { - public static void AddChestArmor() + public static void AddChestArmors() { //------------------------------------------------------ @@ -22,6 +22,7 @@ public static void AddChestArmor() new ChestArmor() .DefaultStatSlot(1) + .StatSlot(new Stat[] { ARMOR }, probability: 0.5f) .Name("") .Description("") .Rarity(0); @@ -32,6 +33,7 @@ public static void AddChestArmor() new ChestArmor() .DefaultStatSlot(2) + .StatSlot(new Stat[] { ARMOR }, probability: 0.5f) .Name("") .Description("") .Rarity(1); @@ -42,6 +44,7 @@ public static void AddChestArmor() new ChestArmor() .DefaultStatSlot(3) + .StatSlot(new Stat[] { ARMOR }) .Name("") .Description("") .Rarity(2); @@ -52,6 +55,7 @@ public static void AddChestArmor() new ChestArmor() .DefaultStatSlot(4) + .StatSlot(new Stat[] { ARMOR }) .Name("") .Description("") .Rarity(3); @@ -62,6 +66,7 @@ public static void AddChestArmor() new ChestArmor() .DefaultStatSlot(5) + .StatSlot(new Stat[] { ARMOR }) .Name("") .Description("") .Rarity(4); diff --git a/Items/ItemDefinitions/Glove.cs b/Items/ItemDefinitions/Gloves.cs similarity index 97% rename from Items/ItemDefinitions/Glove.cs rename to Items/ItemDefinitions/Gloves.cs index 4e23504..740fcc4 100644 --- a/Items/ItemDefinitions/Glove.cs +++ b/Items/ItemDefinitions/Gloves.cs @@ -13,7 +13,7 @@ namespace ChampionsOfForest.Items public static partial class ItemDatabase { - public static void AddGlove() + public static void AddGloves() { //------------------------------------------------------ diff --git a/Items/ItemDefinitions/ItemDataBase_ItemDefinitions.cs b/Items/ItemDefinitions/ItemDataBase_ItemDefinitions.cs index 475531b..9c136d6 100644 --- a/Items/ItemDefinitions/ItemDataBase_ItemDefinitions.cs +++ b/Items/ItemDefinitions/ItemDataBase_ItemDefinitions.cs @@ -15,7972 +15,7972 @@ namespace ChampionsOfForest.Items public static partial class ItemDatabase { // todo remove this method once rarity 7 items are re-added. - public static void PopulateOldItems() - { - new BaseItem(new int[][] - { - new int[] { 34 }, - new int[] {43,0,39,59,67 }, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_1/*Broken Flip-Flops*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_2/*A pair of damaged shoes. Judging by their condition, i can imagine what happened to their owner.*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_3/*Worn by one of the passengers of the plane that Eric also flew in.*/, //tr - rarity = 0, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Boot, - icon = Res.ResourceLoader.GetTexture(85), - }; - new BaseItem(new int[][] - { - new int[] {34 }, - new int[] {34,0,40,41 }, - new int[] {43 }, - new int[] {43,0 ,67 }, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_4/*Old Boots*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_5/*A pair of old boots. They must have been lying here for ages.*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_6/*Found on the Peninsula, but judging by their condition, they belong neither to a plane passenger nor a cannibal.*/, //tr - rarity = 0, - minLevel = 1, - maxLevel = 2, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Boot, - icon = Res.ResourceLoader.GetTexture(85), - }; - new BaseItem(new int[][] - { - new int[] {34 }, - new int[] {34,40,41 }, - new int[] {43,3,2 }, - new int[] {43,65,67 }, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_7/*Damaged Leather Boots*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_8/*A pair of leather boots. They look good and have only some scratches.*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_9/*They arrived to the Peninsula the same way Eric did. Since they were in a baggage, they avoided a lot of damage.*/, //tr - rarity = 1, - minLevel = 1, - maxLevel = 6, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Boot, - icon = Res.ResourceLoader.GetTexture(85), - }; - new BaseItem(new int[][] - { - new int[] {34 }, - new int[] {3,2 }, - new int[] {43,3,2,1,4 }, - new int[] {43,65,67 }, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_10/*Sturdy Leather Boots*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_11/*A pair of leather boots. They are in a very good condition.*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_12/*They arrived to the Peninsula the same way Eric did. Eric found them undamaged in their original box. They still had a pricetag - $419,99.*/, //tr - rarity = 2, - minLevel = 7, - maxLevel = 12, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Boot, - icon = Res.ResourceLoader.GetTexture(85), - }; - new BaseItem(new int[][] - { - new int[] {34 }, - new int[] {34,39,41,11,57 }, - new int[] {-1}, - new int[] {16,7,8 }, - new int[] {43,65,67 }, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_13/*Damaged Army Boots*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_14/*Sturdy, hard, resistant but damaged boots.*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_15/*They look modern, almost too modern for everything here.*/, //tr - rarity = 3, - minLevel = 4, - maxLevel = 9, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Boot, - icon = Res.ResourceLoader.GetTexture(85), - }; - new BaseItem(new int[][] - { - new int[] {34 }, - new int[] {34,3,2,11 }, - new int[] {-1}, - new int[] {16,7,8 }, - new int[] {43,65,67 }, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_16/*Army Boots*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_17/*Sturdy, hard, resistant boots.*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_15/*They look modern, almost too modern for everything here.*/, //tr - rarity = 4, - minLevel = 10, - maxLevel = 14, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Boot, - icon = Res.ResourceLoader.GetTexture(85), - }; - new BaseItem(new int[][] - { - new int[] {25,22 }, - new int[] {11,1,3,17 }, - new int[] {22,1,3,17 }, - new int[] {28,1,65 }, - new int[] {-1 }, - new int[] {5,6,16,31,7,8,9,10 }, - new int[] {5,6,16,31,7,8,9,10 }, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_18/*Armsy Skin Footwear*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_19/*Severed armsy legs, with all of their insides removed. All thats left is dried mutated skin.*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_20/*Armsy, the second heaviest of the mutants needs very resistant skin. It often drags its legs on the ground when it moves. The skin on their legs grew very thick, and has bone tissue mixed with skin tissue.*/, //tr - rarity = 6, - minLevel = 5, - maxLevel = 8, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Boot, - icon = Res.ResourceLoader.GetTexture(85), - }.SetDropOnlyArmsy(); - new BaseItem(new int[][] - { - new int[] {42,0 }, - new int[] {40,41,26,25,67 }, - new int[] {43,65,0 }, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_21/*Finger Warmer*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_22/*A little glove to keep your fingers warm and cozy.*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_23/*Made of wool.*/, //tr - rarity = 0, - minLevel = 1, - maxLevel = 2, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Glove, - icon = Res.ResourceLoader.GetTexture(86), - }; - new BaseItem(new int[][] - { - new int[] {39,40,41,42,43,24,25,26 }, - new int[] {39,40,41,42,43,24,25,26,44 }, - new int[] {43,0,7,0,5,6,8,0,21,22,23,16,67 }, - new int[] {43,0,7,0,5,6,8,0,0,0,0,21,22,23,65,66,67 }, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_24/*Thick Rubber Glove*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_25/*A glove that helps get a better grip.*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_23/*Made of wool.*/, //tr - rarity = 1, - minLevel = 1, - maxLevel = 2, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Glove, - icon = Res.ResourceLoader.GetTexture(86), - }; - new BaseItem(new int[][] - { - new int[] {39,40,41,42}, - new int[] {39,40,41,42}, - new int[] {1,2,3,4,5,6,7}, - new int[] {0,18,14}, - new int[] {-1 }, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_26/*Tribal Glove*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_27/*Offers medicore protection.*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_28/*Glove made out of thin bones, some may possibly be from a human.*/, //tr - rarity = 3, - minLevel = 1, - maxLevel = 2, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Glove, - icon = Res.ResourceLoader.GetTexture(86), - }; - new BaseItem(new int[][] - { - new int[] {1,2,4,6,8,9}, - new int[] {1,11,65}, - new int[] {21,22,23}, - new int[] {12,13,15}, - new int[] {12,13,24,25,26}, - new int[] {24,25,26,44,35}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_29/*Tribe Leader Glove*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_30/*A glove that offers little protection but a lot of offensive stats.*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_31/*A glove made of bones, some have engravings of crosses.*/, //tr - rarity = 4, - minLevel = 1, - maxLevel = 4, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Glove, - icon = Res.ResourceLoader.GetTexture(86), - }; - new BaseItem(new int[][] - { - new int[] {43,0 }, - new int[] {43,39,40,41,42 }, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_32/*Worn Shorts*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_33/*Some protection for legs.*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_34/*Short, made out of cheap thin fabric, and on top of that they are damaged. But its better than nothing.*/, //tr - rarity = 0, - minLevel = 1, - maxLevel = 4, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Pants, - icon = Res.ResourceLoader.GetTexture(87), - }; - new BaseItem(new int[][] - { - new int[] {1000,1001,1002}, - new int[] {1000,1001,1002,1003,1004,0,0,0,0}, - new int[] {8,9,0,0,0,0 }, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_35/*Cargo Shorts*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_36/*No protection at all but they allow to carry more items.*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_37/*They are ugly as hell tho*/, //tr - rarity = 1, - minLevel = 1, - maxLevel = 4, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Pants, - icon = Res.ResourceLoader.GetTexture(87), - }; - new BaseItem(new int[][] - { - new int[] {5 }, - new int[] {43,16,0,41 }, - new int[] {39,40,41,42,43,44,0,0,0,0,0,0,1003,1004}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_38/*Passenger's Jacket*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_39/*It's a little torn. */, //tr - lore = Translations.ItemDatabase_ItemDefinitions_40/*This jacket was worn by Preston A. the 34th passenger on the plane. Eric talked to him at the airport. Guy was odd, and now he's dead.*/, //tr - rarity = 0, - minLevel = 1, - maxLevel = 4, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.ChestArmor, - icon = Res.ResourceLoader.GetTexture(96), - }; - new BaseItem(new int[][] - { - new int[] {5 }, - new int[] {1,2,3,4,5,6,65}, - new int[] {43,16,0,41,3,2,1 }, - new int[] {6,7,8,9,10,16,17,31, }, - new int[] {39,40,41,42,43,44,0,0,0,0,0,0,1003,1004}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_41/*Leather Jacket*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_42/*Offers little protection*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_43/*This jacket was in a baggage of one of the plane passengers*/, //tr - rarity = 1, - minLevel = 4, - maxLevel = 7, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.ChestArmor, - icon = Res.ResourceLoader.GetTexture(96), - }; - new BaseItem(new int[][] - { - new int[] {5,3,1 }, - new int[] {5 }, - new int[] {16}, - new int[] {7,11 }, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_44/*Boar Skin Armor*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_45/*It's made from a skin of a huge individual. It's heavy and thick, and surely can protect from attacks of weaker enemies.*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_46/*Boar, one of the animals on the peninsula, is rather rare and it's skin is very durable.*/, //tr - rarity = 1, - minLevel = 4, - maxLevel = 8, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.ChestArmor, - icon = Res.ResourceLoader.GetTexture(96), - }; - new BaseItem(new int[][] - { - new int[] {5 }, - new int[] {5,3,4,2,1 }, - new int[] {14,0,0,0 }, - new int[] {6,8,9}, - new int[] {6,8,9}, - new int[] {12,13,0,65,66 }, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_47/*Crocodile Skin Armor*/, //tr - rarity = 2, - minLevel = 7, - maxLevel = 9, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.ChestArmor, - icon = Res.ResourceLoader.GetTexture(96), - }; - ItemDefinition baseItem1 = new BaseItem(new int[][] - { - new int[] {5 }, - new int[] {16 }, - new int[] {18,17,16}, - new int[] {11}, - new int[] {65,0}, - new int[] {12,13,1,2,3,4}, - new int[] {25,22,0}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_48/*Plate armour*/, //tr - rarity = 4, - minLevel = 1, - maxLevel = 5, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.ChestArmor, - icon = Res.ResourceLoader.GetTexture(96), - }; - baseItem1.statSlots[1][0].multipier = 2.5f; - new BaseItem(new int[][] - { - new int[] {5 }, - new int[] {65 }, - new int[] {16}, - new int[] {16,43}, - new int[] {16,0,43}, - new int[] {6,8,9}, - new int[] {45,43,39,42}, - new int[] {7,10,11,17,18,31,66}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_49/*Bear Skin Armor*/, //tr - rarity = 3, - minLevel = 7, - maxLevel = 8, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.ChestArmor, - icon = Res.ResourceLoader.GetTexture(96), - }; - new BaseItem(new int[][] - { - new int[] {5 }, - new int[] {12,13}, - new int[] {13,23,26}, - new int[] {23,26}, - new int[] {34,2,2}, - new int[] {15,14}, - new int[] {16,23,4,5,6,66}, - new int[] {16,23,4,5,6,0,0,0,0}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_50/*Archer's Gear*/, //tr - rarity = 5, - minLevel = 7, - maxLevel = 9, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.ChestArmor, - icon = Res.ResourceLoader.GetTexture(96), - }; - new BaseItem(new int[][] - { - new int[] {5 }, - new int[] {23,26,2 }, - new int[] {23,26 }, - new int[] {12,13}, - new int[] {13,23,26}, - new int[] {23,26}, - new int[] {34,2,2}, - new int[] {15,14}, - new int[] {16,23,4,5,6}, - new int[] {45,46,66}, - new int[] {27,48}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_51/*Hazard's Gear*/, //tr - rarity = 6, - minLevel = 5, - maxLevel = 6, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.ChestArmor, - icon = Res.ResourceLoader.GetTexture(96), - }; - new BaseItem(new int[][] - { - new int[] {47 }, - new int[] {4,29 }, - new int[] {4,29 }, - new int[] {4,29 }, - new int[] {4,17,6,44,38,21,24,8,9}, - new int[] {4,17,6,44,38,21,24,8,9}, - new int[] {4,17,6,44,38,21,24,8,9}, - new int[] {4,17,6,44,38,21,24,8,9}, - new int[] {4,17,6,44,38,21,24,8,9}, - new int[] {4,17,6,44,38,21,24,8,9}, - new int[] {4,17,6,44,38,21,24,8,9}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_52/*Mysterious robe*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_53/*Magic flows through the entirety of this object. It's made out of unknown material*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_54/*Robe looks like it was created yesterday, but its older than the oldest of mankinds' civilizations. Simply looking at it sends chills down the spine.*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_55/*Empowers cataclysm. The vortex turns blue, damage is increased, freezes enemies */, //tr - rarity = 7, - minLevel = 15, - maxLevel = 20, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.ChestArmor, - icon = Res.ResourceLoader.GetTexture(96), - onEquipCallback = () => ModdedPlayer.Stats.spell_cataclysmArcane.value = true, - onUnequipCallback = () => ModdedPlayer.Stats.spell_cataclysmArcane.value = false - }; - new BaseItem(new int[][] - { - new int[] {39,40,41,42,44,8,14,49 }, - new int[] {39,40,41,42,44,8,14,49 }, - new int[] {0,62,63,64}, - new int[] {1,0,65}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_56/*Rusty Longsword*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_57/*A long, very heavy sword. Edge got dull over time. Still, it's in a condition that allows me to slice some enemies in half.*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_58/*The sword appears to be from medieval ages, through it's not. It was made a lot later. It never was used as a weapon in battles, because it was merely a decoration.*/, //tr - rarity = 3, - minLevel = 13, - maxLevel = 15, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Weapon, - subtype = ItemDefinition.ItemSubtype.LongSword, - icon = Res.ResourceLoader.GetTexture(89), - }; - new BaseItem(new int[][] - { - new int[] {25 }, - new int[] {25 ,62,63,64}, - new int[] {6,49}, - new int[] {22,0,25,1,2,3,4}, - new int[] {1,2,3,4}, - new int[] {39,40,41,42,44,8,18,65 }, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_59/*Longsword*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_60/*Sharp and long*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_61/*The sword is in perfect contidion.*/, //tr - rarity = 4, - minLevel = 20, - maxLevel = 27, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Weapon, - subtype = ItemDefinition.ItemSubtype.LongSword, - icon = Res.ResourceLoader.GetTexture(89), - }; - new BaseItem(new int[][] - { - new int[] {25 }, - new int[] {6,49}, - new int[] {22,0,25,1,2,3,4}, - new int[] {1,2,3,4,8}, - new int[] {1,2,3,4,8}, - new int[] {5,6,45,46,16,8}, - new int[] {39,40,41,42,44,8 }, - new int[] {39,40,41,42,44,8,62,63,64 }, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_62/*Full Metal Sword*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_63/*It's sooo big...*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_64/*A normal human cannot lift this.*/, //tr - rarity = 6, - minLevel = 50, - maxLevel = 52, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Weapon, - subtype = ItemDefinition.ItemSubtype.GreatSword, - icon = Res.ResourceLoader.GetTexture(88), - }; - new BaseItem(new int[][] - { - new int[] {25,1,3 }, - new int[] {25,22,1,3 }, - new int[] {25,22,0,0,0,0 }, - new int[] {49 }, - new int[] {14 }, - new int[] {14,1 }, - new int[] {14,31,49 }, - new int[] {14,18,49 }, - new int[] {38,36,1,3,4,5,6,16 ,62,63,64}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_65/*The Leech*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_66/*Hey where did my health g- oh it's back...*/, //tr - rarity = 6, - minLevel = 60, - maxLevel = 61, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Weapon, - subtype = ItemDefinition.ItemSubtype.GreatSword, - icon = Res.ResourceLoader.GetTexture(88), - }; - new BaseItem(new int[][] - { - new int[] {1,2,3,4 }, - new int[] {1,2,3,15,4,0,0,0 }, - new int[] {12,13,1,2,3,4,5, }, - new int[] {18,16,23,26,19 }, - new int[] {18,16,23,26 }, - new int[] {34,44,45,46 }, - new int[] {2,23,26}, - new int[] {2,23,26,51}, - new int[] {2,23,26,20,16,15,60}, - new int[] {52,66,60,0,0}, - new int[] {66}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_67/*Smokey's Sacred Quiver*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_68/*SmokeyTheBear died because he never used this item.*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_69/*Smokey was the friend of allmighty Hazard, who can materialize any kind of weapon at the snap of his fingers. Hazard remebered Smokey's favourite playstyle and he gave him this as a gift to purge the sh** out of mutants.*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_70("250%", "500%")/*Crossbows operate at 250% speed and deal 400% increased damage*/, //tr - rarity = 7, - minLevel = 5, - maxLevel = 8, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Quiver, - icon = Res.ResourceLoader.GetTexture(98), - onEquipCallback = () => { ModdedPlayer.Stats.i_SmokeyCrossbowQuiver.value = true; ModdedPlayer.Stats.perk_crossbowDamageMult.Multiply(5); }, - onUnequipCallback = () => - { - ModdedPlayer.Stats.i_SmokeyCrossbowQuiver.value = false; - ModdedPlayer.Stats.perk_crossbowDamageMult.Divide(5); - }, - }; - new BaseItem(new int[][] - { - new int[] {0,42 }, - new int[] {50 }, - new int[] {43,16 }, - new int[] {1,0 }, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_71/*Broken shield*/, //tr - rarity = 0, - minLevel = 1, - maxLevel = 2, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Shield, - icon = Res.ResourceLoader.GetTexture(99), - }; - new BaseItem(new int[][] - { - new int[] {1,2,3,4,0,42 }, - new int[] {0,42 }, - new int[] {50 }, - new int[] {1,0 }, - new int[] {43,16 }, - new int[] {43,16,0,0 }, - }) - { - name = Translations.Item_1/*Shield*/, //tr - rarity = 1, - minLevel = 3, - maxLevel = 6, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Shield, - icon = Res.ResourceLoader.GetTexture(99), - }; - new BaseItem(new int[][] - { - new int[] {16}, - new int[] {16}, - new int[] {16}, - new int[] {16,0}, - new int[] {16,0,45,46}, - new int[] {0,42,11 }, - new int[] {50 }, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_72/*Tower Shield*/, //tr - rarity = 3, - minLevel = 5, - maxLevel = 8, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Shield, - icon = Res.ResourceLoader.GetTexture(99), - }; - new BaseItem(new int[][] - { - new int[] {5,6,7,8,0,0,0}, - new int[] {43}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_73/*Broken Leather Shoulder Armor*/, //tr - rarity = 0, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.ShoulderArmor, - icon = Res.ResourceLoader.GetTexture(95), - }; - new BaseItem(new int[][] - { - new int[] {5,6,7,8}, - new int[] {43}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_74/*Leather Shoulder Armor*/, //tr - rarity = 1, - minLevel = 2, - maxLevel = 5, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.ShoulderArmor, - icon = Res.ResourceLoader.GetTexture(95), - }; - new BaseItem(new int[][] - { - new int[] {16}, - new int[] {1,2,3,4}, - new int[] {17}, - new int[] {17}, - new int[] {8,9,49,47}, - new int[] {8,9,49,47}, - new int[] {16,18,11,34}, - new int[] {37,34}, - new int[] {-1}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_75/*Phase Pauldrons*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_76/*The distance of blink is increased by 40 meters, and blink now hits everything that you teleported through*/, //tr - rarity = 7, - minLevel = 5, - maxLevel = 9, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.ShoulderArmor, - icon = Res.ResourceLoader.GetTexture(95), - onEquipCallback = () => { ModdedPlayer.Stats.spell_blinkRange.Add(40); ModdedPlayer.Stats.spell_blinkDamage.Add(60); }, - onUnequipCallback = () => { ModdedPlayer.Stats.spell_blinkRange.Sub(40); ModdedPlayer.Stats.spell_blinkDamage.Sub(60); }, - }; - new BaseItem(new int[][] - { - new int[] {39,49,5,6,7,8,0,0,0}, - new int[] {43,0}, - new int[] {43}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_77/*MAGA Cap*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_78/*Wearing this item channels the power of D.Trump to you*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_79/*... or does it?*/, //tr - rarity = 1, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Helmet, - icon = Res.ResourceLoader.GetTexture(91), - }; - new BaseItem(new int[][] - { - new int[] {2000}, - new int[] {2001}, - new int[] {2002}, - new int[] {2003}, - new int[] {16}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {1,2,3,4}, - new int[] {21,6}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_80/*Hubble's Vision*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_81/*Wearing this item empowers your black hole spell*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_82/*Man, fuck gravity.*/, //tr - rarity = 6, - minLevel = 10, - maxLevel = 11, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Helmet, - icon = Res.ResourceLoader.GetTexture(91), - }; - new BaseItem(new int[][] - { - new int[] {39,40,41,42,43,12,13}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_83/*Broken Loop*/, //tr - rarity = 0, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Ring, - icon = Res.ResourceLoader.GetTexture(90), - }; - new BaseItem(new int[][] - { - new int[] {-1}, - new int[] {39,40,41,42,43,12,13}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_84/*Loop*/, //tr - rarity = 1, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Ring, - icon = Res.ResourceLoader.GetTexture(90), - }; - new BaseItem(new int[][] - { - new int[] {63}, - new int[] {-1}, - new int[] {39,40,41,42,43,12,13,5,6,7,8,9,12,13,15,16,17,18,10,11}, - new int[] {1,2,3,4,21,22,23,24,25,26,43,12,13}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_85/*Toxic Ring*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_87/*What the fuck did you just fucking say about me, you little bitch? I'll have you know I graduated top of my class in the Navy Seals, and I've been involved in numerous secret raids on Al-Quaeda, and I have over 300 confirmed kills. I am trained in gorilla warfare and I'm the top sniper in the entire US armed forces. You are nothing to me but just another target. I will wipe you the fuck out with precision the likes of which has never been seen before on this Earth, mark my fucking words. You think you can get away with saying that shit to me over the Internet? Think again, fucker. As we speak I am contacting my secret network of spies across the USA and your IP is being traced right now so you better prepare for the storm, maggot. The storm that wipes out the pathetic little thing you call your life. You're fucking dead, kid. I can be anywhere, anytime, and I can kill you in over seven hundred ways, and that's just with my bare hands. Not only am I extensively trained in unarmed combat, but I have access to the entire arsenal of the United States Marine Corps and I will use it to its full extent to wipe your miserable ass off the face of the continent, you little shit. If only you could have known what unholy retribution your little /'clever\' comment was about to bring down upon you, maybe you would have held your fucking tongue. But you couldn't, you didn't, and now you're paying the price, you goddamn idiot. I will shit fury all over you and you will drown in it. You're fucking dead, kiddo."*/, //tr - rarity = 3, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Ring, - icon = Res.ResourceLoader.GetTexture(90), - }; - new BaseItem(new int[][] - { - new int[] {39,40,41,42,43}, - new int[] {-1}, - new int[] {-1}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_88/*Scarf*/, //tr - rarity = 1, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(100), - }; - new BaseItem(new int[][] - { - new int[] {39,40,41,42,43}, - new int[] {43}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_89/*Damaged Bracer*/, //tr - rarity = 0, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Bracer, - icon = Res.ResourceLoader.GetTexture(93), - }; - new BaseItem(new int[][] - { - new int[] {39,40,41,42,43}, - new int[] {43}, - new int[] {16}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_90/*Worn Bracer*/, //tr - rarity = 1, - minLevel = 3, - maxLevel = 10, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Bracer, - icon = Res.ResourceLoader.GetTexture(93), - }; - new BaseItem(new int[][] - { - new int[] {39,40,41,42,43}, - new int[] {16}, - new int[] {-1}, - new int[] {5,6,7,8,9,10}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_91/*Leather Bracer*/, //tr - rarity = 2, - minLevel = 4, - maxLevel = 10, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Bracer, - icon = Res.ResourceLoader.GetTexture(94), - }; - new BaseItem(new int[][] - { - new int[] {32}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_92/*Greater Mutated Heart*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_93/*Can be consumed by right clicking it*/, //tr - rarity = 7, - minLevel = 1, - maxLevel = 3, - canConsume = true, - stackSize = 100, - type = ItemDefinition.ItemType.Other, - icon = Res.ResourceLoader.GetTexture(105), - }; - new BaseItem(new int[][] - { - new int[] {33}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_94/*Lesser Mutated Heart*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_93/*Can be consumed by right clicking it*/, //tr - rarity = 5, - minLevel = 1, - maxLevel = 6, - canConsume = true, - stackSize = 1, - type = ItemDefinition.ItemType.Other, - icon = Res.ResourceLoader.GetTexture(105), - }; - new BaseItem(new int[][] - { - new int[] {1,2}, - new int[] {1,2,3,5,6}, - new int[] {65}, - new int[] {-1}, - new int[] {-1}, - new int[] {53,54}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_95/*Spiked ring*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_96/*Armor piercing for either melee or ranged weapons*/, //tr - rarity = 4, - minLevel = 10, - maxLevel = 16, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Ring, - icon = Res.ResourceLoader.GetTexture(90), - }; - - new BaseItem(new int[][] - { - new int[] {1,2,3,4,5,6}, - new int[] {1,2,3,4,5,6,65}, - new int[] {-1}, - new int[] {-1 }, - new int[] {1,2,3,4,21,22,23,24,25,26,18,16}, - new int[] {55}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_97/*Piercer*/, //tr - rarity = 4, - minLevel = 11, - maxLevel = 15, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(101), - }; - new BaseItem(new int[][] - { - new int[] {59 }, - new int[] {21 }, - new int[] {34,0,40,41 }, - new int[] {16,34}, - new int[] {12 }, - new int[] {-1 }, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_98/*Moon Boots*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_99/*A pair of boots from the moon.*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_100/*It is said that the wearer will not take fall damage while wearing these boots and will jump like on the moon, I wouldn't trust it tough.*/, //tr - rarity = 4, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 10, - maxLevel = 14, - canConsume = false, - stackSize = 1, //stacking in inventory like in mc, one means single item - type = ItemDefinition.ItemType.Boot, - icon = Res.ResourceLoader.GetTexture(85), //icon ids, don't worry about that - }; - new BaseItem(new int[][] - { - new int[] {1}, - new int[] {1,57,18,36}, - new int[] {12,13,1}, - new int[] {22,25,1}, - new int[] {22,25,1}, - new int[] {50,53,35}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_101/*Golden Ring of Strength*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_103/*A Golden Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - rarity = 5, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 10, - maxLevel = 14, - canConsume = false, - stackSize = 1, //stacking in inventory like in mc, one means single item - type = ItemDefinition.ItemType.Ring, - icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that - }; - new BaseItem(new int[][] - { - new int[] {3}, - new int[] {3,31,6,7,8,9}, - new int[] {5,3,41,45}, - new int[] {7,10,31,14}, - new int[] {14,16,11,17}, - new int[] {65,57,45,46}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_104/*Golden Ring of Vitality*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_103/*A Golden Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - rarity = 5, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 10, - maxLevel = 14, - canConsume = false, - stackSize = 1, //stacking in inventory like in mc, one means single item - type = ItemDefinition.ItemType.Ring, - icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that - }; - - new BaseItem(new int[][] - { - new int[] {2}, - new int[] {12,13,8,9, }, - new int[] {15,18,34,36}, - new int[] {23,48,54,26,59,55,16}, - new int[] {6,57,2,34,}, - new int[] {52,66,51,2,23} - }) - { - name = Translations.ItemDatabase_ItemDefinitions_105/*Golden Ring of Agility*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_103/*A Golden Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - rarity = 5, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 10, - maxLevel = 20, - canConsume = false, - stackSize = 1, //stacking in inventory like in mc, one means single item - type = ItemDefinition.ItemType.Ring, - icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that - }; - new BaseItem(new int[][] - { - new int[] {4}, - new int[] {12,13,21,24,6}, - new int[] {12,13,21,24}, - new int[] {19,47,49}, - new int[] { 37,38,4,24,61,44}, - new int[] { 57,44,6,24,21,47} - }) - { - name = Translations.ItemDatabase_ItemDefinitions_106/*Golden Ring of Intelligence*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_103/*A Golden Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - rarity = 5, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 10, - maxLevel = 20, - canConsume = false, - stackSize = 1, //stacking in inventory like in mc, one means single item - type = ItemDefinition.ItemType.Ring, - icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that - }; - //Silver Rings--------------------------------------------------------------------------- - new BaseItem(new int[][] - { - new int[] {1}, - new int[] {22,25,12,13}, - new int[] {35,50,53}, - new int[] {20,0,0,0} - }) - { - name = Translations.ItemDatabase_ItemDefinitions_107/*Silver Ring of Strength*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_108/*A Silver Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - rarity = 4, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 5, - maxLevel = 20, - canConsume = false, - stackSize = 1, //stacking in inventory like in mc, one means single item - type = ItemDefinition.ItemType.Ring, - icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that - }; - - new BaseItem(new int[][] - { - new int[] {3}, - new int[] {7,10,31,5, }, - new int[] {11,17,0}, - new int[] {14,16,45}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_109/*Silver Ring of Vitality*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_108/*A Silver Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - rarity = 4, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 5, - maxLevel = 8, - canConsume = false, - stackSize = 1, //stacking in inventory like in mc, one means single item - type = ItemDefinition.ItemType.Ring, - icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that - }; - - new BaseItem(new int[][] - { - new int[] {2}, - new int[] {12,13,51,8,9, }, - new int[] {15,18,34,36,0}, - new int[] {23,48,54,26,6,57,0,0,0 } - }) - { - name = Translations.ItemDatabase_ItemDefinitions_110/*Silver Ring of Agility*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_108/*A Silver Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - rarity = 4, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 5, - maxLevel = 20, - canConsume = false, - stackSize = 1, //stacking in inventory like in mc, one means single item - type = ItemDefinition.ItemType.Ring, - icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that - }; - - new BaseItem(new int[][] - { - new int[] {4}, - new int[] { 12, 13, 21, 24,12, 13,21,24,0}, - new int[] {19,47,49,6}, - new int[] { 57,37,38,0}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_111/*Silver Ring of Intelligence*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_108/*A Silver Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - rarity = 4, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 5, - maxLevel = 20, - canConsume = false, - stackSize = 1, //stacking in inventory like in mc, one means single item - type = ItemDefinition.ItemType.Ring, - icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that - }; - - //Steel Rings------------------------------------------------------------------- - new BaseItem(new int[][] - { - new int[] {1}, - new int[] {12,13,65}, - new int[] {22,25, 57,35,50,53,20}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_112/*Steel Ring of Strength*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_113/*A Steel Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - rarity = 2, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 1, - maxLevel = 6, - canConsume = false, - stackSize = 1, //stacking in inventory like in mc, one means single item - type = ItemDefinition.ItemType.Ring, - icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that - }; - - new BaseItem(new int[][] - { - new int[] {3}, - new int[] {7,10,31,5,65}, - new int[] {14,16, 45,11,17,0}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_114/*Steel Ring of Vitality*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_113/*A Steel Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - rarity = 2, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 1, - maxLevel = 6, - canConsume = false, - stackSize = 1, //stacking in inventory like in mc, one means single item - type = ItemDefinition.ItemType.Ring, - icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that - }; - - new BaseItem(new int[][] - { - new int[] {2}, - new int[] {8,9, 12,13,51,57}, - new int[] {23,54,26,59,18,34}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_115/*Steel Ring of Agility*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_113/*A Steel Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - rarity = 2, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 1, - maxLevel = 10, - canConsume = false, - stackSize = 1, //stacking in inventory like in mc, one means single item - type = ItemDefinition.ItemType.Ring, - icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that - }; - - new BaseItem(new int[][] - { - new int[] {4}, - new int[] {12,13,21,24,6}, - new int[] {19,47,49,57,37,38,21,24}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_116/*Steel Ring of Intelligence*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_113/*A Steel Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - rarity = 2, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 1, - maxLevel = 6, - canConsume = false, - stackSize = 1, //stacking in inventory like in mc, one means single item - type = ItemDefinition.ItemType.Ring, - icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that - }; - - //One Ring to rule them all---------------------------------------------------------- - - new BaseItem(new int[][] - { - new int[] {1,3,2,4}, - new int[] {12,13}, - new int[] {22,25,30,}, - new int[] {35,50,53,20}, - new int[] {5,28}, - new int[] {7,10,31}, - new int[] {11,17,14,16 }, - new int[] {8,9,27,45}, - new int[] {51,52,66}, - new int[] {15,18,34,36,57}, - new int[] {23,48,54,26}, - new int[] {21,24}, - new int[] {19,47,49,57,6}, - new int[] {29,37,38,57}, - new int[] {65}, - new int[] {-1}, - new int[] {-1}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_117/*The One Ring To Rule Them All*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_118/*An Ancient magical Ring of great power.*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_119/*It looks like and ordinay ring, but a strange energy is surrounding it. The Ring is said to have been found inside a volcanic rock by an archeologist, who went mad and isolated himself on the peninsula many years ago. But that's just a fairy tale, ring?*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_120/*Attracts unwanted attention of an unknown entity.*/, //tr - rarity = 7, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 20, - maxLevel = 30, - canConsume = false, - stackSize = 1, //stacking in inventory like in mc, one means single item - type = ItemDefinition.ItemType.Ring, - icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that - }; - - //Golden Lockets--------------------------------------------------------------------- - - new BaseItem(new int[][] - { - new int[] {1}, - new int[] {12,13}, - new int[] {22,25,57,}, - new int[] {35,50,53}, - new int[] {65,1,57,47,34,36,18} - }) - { - name = Translations.ItemDatabase_ItemDefinitions_121/*Golden Locket of Strength*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_122/*A Locket of ancient times.*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_123/*A Golden Locket that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - rarity = 3, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 15, - maxLevel = 20, - canConsume = false, - stackSize = 1, //stacking in inventory like in mc, one means single item - type = ItemDefinition.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that - }; - - new BaseItem(new int[][] - { - new int[] {3}, - new int[] {5,6,7}, - new int[] {7,10,31}, - new int[] {11,17}, - new int[] {14,16,45}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_124/*Golden Locket of Vitality*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_122/*A Locket of ancient times.*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_123/*A Golden Locket that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - rarity = 3, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 15, - maxLevel = 20, - canConsume = false, - stackSize = 1, //stacking in inventory like in mc, one means single item - type = ItemDefinition.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that - }; - - new BaseItem(new int[][] - { - new int[] {2}, - new int[] {12,13,51,52,66,8,9,}, - new int[] {12,13,51,52,66}, - new int[] {23,48,54,26}, - new int[] {57,18,47} - }) - { - name = Translations.ItemDatabase_ItemDefinitions_125/*Golden Locket of Agility*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_122/*A Locket of ancient times.*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_123/*A Golden Locket that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - rarity = 3, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 15, - maxLevel = 20, - canConsume = false, - stackSize = 1, //stacking in inventory like in mc, one means single item - type = ItemDefinition.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that - }; - - new BaseItem(new int[][] - { - new int[] {4}, - new int[] {12,13,21,24}, - new int[] {12,13,21,24,19,47,49,}, - new int[] {57,37,38,6}, - new int[] {4,37,38,} - }) - { - name = Translations.ItemDatabase_ItemDefinitions_126/*Golden Locket of Intelligence*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_122/*A Locket of ancient times.*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_123/*A Golden Locket that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - rarity = 3, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 15, - maxLevel = 20, - canConsume = false, - stackSize = 1, //stacking in inventory like in mc, one means single item - type = ItemDefinition.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that - }; - - //Silver Lockets--------------------------------------------------------------------------- - - new BaseItem(new int[][] - { - new int[] {1}, - new int[] {12,13}, - new int[] {22,25,57,}, - new int[] {35,50,53,0}, - new int[] {20,0,0,0} - }) - { - name = Translations.ItemDatabase_ItemDefinitions_127/*Silver Locket of Strength*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_122/*A Locket of ancient times.*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_128/*A Silver Locket that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - rarity = 2, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 5, - maxLevel = 20, - canConsume = false, - stackSize = 1, //stacking in inventory like in mc, one means single item - type = ItemDefinition.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that - }; - - new BaseItem(new int[][] - { - new int[] {3}, - new int[] {7,10,31,5,}, - new int[] {11,17,0}, - new int[] {14,16,0}, - new int[] {45,0,0,0} - }) - { - name = Translations.ItemDatabase_ItemDefinitions_129/*Silver Locket of Vitality*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_122/*A Locket of ancient times.*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_128/*A Silver Locket that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - rarity = 2, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 5, - maxLevel = 20, - canConsume = false, - stackSize = 1, //stacking in inventory like in mc, one means single item - type = ItemDefinition.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that - }; - - new BaseItem(new int[][] - { - new int[] {2}, - new int[] {12,13,51,52,66,8,9,6,}, - new int[] {12,13,51,52,66,0}, - new int[] {15,18,34,36,0}, - new int[] {23,48,54,26}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_130/*Silver Locket of Agility*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_122/*A Locket of ancient times.*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_128/*A Silver Locket that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - rarity = 2, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 5, - maxLevel = 8, - canConsume = false, - stackSize = 1, //stacking in inventory like in mc, one means single item - type = ItemDefinition.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that - }; - - new BaseItem(new int[][] - { - new int[] {4}, - new int[] {12,13,21,24}, - new int[] {12,13,21,24,6}, - new int[] {19,47,49,0}, - new int[] {57,37,38,0}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_131/*Silver Locket of Intelligence*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_122/*A Locket of ancient times.*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_128/*A Silver Locket that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - rarity = 2, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 5, - maxLevel = 8, - canConsume = false, - stackSize = 1, //stacking in inventory like in mc, one means single item - type = ItemDefinition.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that - }; - - // Emerald Pendant----------------------------------------------------------- - - new BaseItem(new int[][] - { - new int[] {1}, - new int[] {12,13}, - new int[] {22,25,57,1}, - new int[] {35,50,53}, - new int[] {36,65,22,25}, - new int[] {11,18,37,6,8}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_132/*Emerald Pendant of Strength*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_133/*A Pendant of ancient times.*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_134/*An Emerald Pendant that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - rarity = 5, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 10, - maxLevel = 12, - canConsume = false, - stackSize = 1, //stacking in inventory like in mc, one means single item - type = ItemDefinition.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that - }; - - new BaseItem(new int[][] - { - new int[] {3}, - new int[] {7,10,31,5}, - new int[] {11,17}, - new int[] {14,16,57,55}, - new int[] {5,7,10,3,31}, - new int[] {57,65}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_135/*Emerald Pendant of Vitality*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_133/*A Pendant of ancient times.*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_134/*An Emerald Pendant that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - rarity = 5, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 10, - maxLevel = 12, - canConsume = false, - stackSize = 1, //stacking in inventory like in mc, one means single item - type = ItemDefinition.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that - }; - - new BaseItem(new int[][] - { - new int[] {2}, - new int[] {8,9,12,13,51,52,66}, - new int[] {12,13,51,52,66}, - new int[] {15,18,34,36}, - new int[] {23,48,54,26}, - new int[] {52,66,23,26,2}, - new int[] {-1}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_136/*Emerald Pendant of Agility*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_133/*A Pendant of ancient times.*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_134/*An Emerald Pendant that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - rarity = 5, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 10, - maxLevel = 12, - canConsume = false, - stackSize = 1, //stacking in inventory like in mc, one means single item - type = ItemDefinition.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that - }; - - new BaseItem(new int[][] - { - new int[] {4}, - new int[] {29,37,21,24,46,56,19}, - new int[] {12,13,21,24,6}, - new int[] {21,4,47,49}, - new int[] {4,57,47,24}, - new int[] {-1}, - new int[] {-1}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_137/*Emerald Pendant of Intelligence*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_133/*A Pendant of ancient times.*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_134/*An Emerald Pendant that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - rarity = 5, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 10, - maxLevel = 12, - canConsume = false, - stackSize = 1, //stacking in inventory like in mc, one means single item - type = ItemDefinition.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that - }; - - // Diamond Pendant----------------------------------------------------------- - - new BaseItem(new int[][] - { - new int[] {1}, - new int[] {12,13}, - new int[] {22,25,1,}, - new int[] {35,50,53, }, - new int[] {65,30}, - new int[] {-1}, - new int[] {-1}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_138/*Diamond Pendant of Strength*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_133/*A Pendant of ancient times.*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_139/*A Diamond Pendant that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 12, - maxLevel = 14, - canConsume = false, - stackSize = 1, //stacking in inventory like in mc, one means single item - type = ItemDefinition.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that - }; - - new BaseItem(new int[][] - { - new int[] {3}, - new int[] {5,6,7,8,9,10}, - new int[] {7,10,31}, - new int[] {11,17}, - new int[] {14,16}, - new int[] {28,11}, - new int[] {-1}, - new int[] {-1}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_140/*Diamond Pendant of Vitality*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_133/*A Pendant of ancient times.*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_139/*A Diamond Pendant that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 12, - maxLevel = 14, - canConsume = false, - stackSize = 1, //stacking in inventory like in mc, one means single item - type = ItemDefinition.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that - }; - - new BaseItem(new int[][] - { - new int[] {2}, - new int[] {8,9,12,13,51,52,66}, - new int[] {12,13,51,52,66,15,18,34,36 }, - new int[] {23,48,54,26}, - new int[] {54,52,66,2}, - new int[] {2,18,38}, - new int[] {57,2,6}, - new int[] {-1}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_141/*Diamond Pendant of Agility*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_133/*A Pendant of ancient times.*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_139/*A Diamond Pendant that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 12, - maxLevel = 14, - canConsume = false, - stackSize = 1, //stacking in inventory like in mc, one means single item - type = ItemDefinition.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that - }; - - new BaseItem(new int[][] - { - new int[] {4}, - new int[] {12,13,21,24}, - new int[] {12,13,21,24,6,65}, - new int[] {19,47,49,11,5,6,7,8,46,34}, - new int[] {29,4}, - new int[] {21,4,47,49}, - new int[] {4,57,47,24}, - new int[] {-1}, - new int[] {-1}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_142/*Diamond Pendant of Intelligence*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_133/*A Pendant of ancient times.*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_139/*A Diamond Pendant that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 12, - maxLevel = 14, - canConsume = false, - stackSize = 1, //stacking in inventory like in mc, one means single item - type = ItemDefinition.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that - }; - - //Rare Amulets ----------------------------------------------------------------------------------------- - - var armsyFingerNecklace = new BaseItem(new int[][] - { - new int[] {1}, - new int[] {65}, - new int[] {18,11}, - new int[] {-1}, - new int[] {12,13}, - new int[] {22,25,30,}, - new int[] {35,50,53,57}, - new int[] {20,57} - }) - { - name = Translations.ItemDatabase_ItemDefinitions_143/*Armsy Finger Necklace*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_144/*A Necklace decorated with armsy fingertips.*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_145/*A Necklace made from the fingertips of an armsy, yeilding it's raw power and strentgh.*/, //tr - rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 1, - maxLevel = 5, - canConsume = false, - stackSize = 1, //stacking in inventory like in mc, one means single item - type = ItemDefinition.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that - - }; - armsyFingerNecklace.SetDropOnlyArmsy(); - armsyFingerNecklace.statSlots[0][0].multipier = 2; - armsyFingerNecklace.statSlots[1][0].multipier = 2; - var virginiaHeartPedant = new BaseItem(new int[][] - { - new int[] {2}, - new int[] {23}, - new int[] {48}, - new int[] {-1}, - new int[] {5,28}, - new int[] {7,10,31}, - new int[] {11,17,57}, - new int[] {14,16,57}, - new int[] {45,57} - }) - { - name = Translations.ItemDatabase_ItemDefinitions_146/*Virginia Heart Pendant*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_147/*A Pendant of a petrified Virginia heart.*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_148/*A Pendant made from a petrified Virginia heart, yeilding it's love and Vitality.*/, //tr - rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 1, - maxLevel = 5, - canConsume = false, - stackSize = 1, //stacking in inventory like in mc, one means single item - type = ItemDefinition.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that - }; - virginiaHeartPedant.SetDropOnlyVags(); - virginiaHeartPedant.statSlots[0][0].multipier = 2; - virginiaHeartPedant.statSlots[1][0].multipier = 2.25f; - - var cowmanToeNecklace = new BaseItem(new int[][] - { - new int[] {3}, - new int[] {31,6}, - new int[] {28}, - new int[] {8,9,27}, - new int[] {12,13,51,52,66}, - new int[] {12,13,51,52,66,57}, - new int[] {15,18,34,36,57}, - new int[] {23,48,54,26}, - new int[] {65,57} - }) - { - name = Translations.ItemDatabase_ItemDefinitions_149/*Cowman Toe Necklace*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_150/*A Necklace decorated with cowman toes.*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_151/*A Necklace made from the fingertips of an armsy, yeilding it's speed and agility.*/, //tr - rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 20, - maxLevel = 40, - canConsume = false, - stackSize = 1, //stacking in inventory like in mc, one means single item - type = ItemDefinition.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that - }; - cowmanToeNecklace.SetDropOnlyCow(); - cowmanToeNecklace.statSlots[0][0].multipier = 3; - cowmanToeNecklace.statSlots[1][0].multipier = 2; - new BaseItem(new int[][] - { - new int[] {47}, - new int[] {4,0}, - new int[] {21,0}, - new int[] {38,31,49,14}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {12,13,21,24,6}, - new int[] {19,47,49,6}, - new int[] {29,37,38}, - new int[] {29,37,38,}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_152/*Pendant of Perpetual Rebirth*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_153/*A Pendant of a shrunken babyhead.*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_154/*A pedant of great power. Obtainable only from babies or crafting*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_155(1)/*decrease a random cooldown by 1 second whenever you hit something with melee or ranged attack.*/, //tr - rarity = 7, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 30, - maxLevel = 40, - canConsume = false, - stackSize = 1, //stacking in inventory like in mc, one means single item - type = ItemDefinition.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that - onEquipCallback = () => ModdedPlayer.Stats.i_infinityLoop.value = true, - onUnequipCallback = () => ModdedPlayer.Stats.i_infinityLoop.value = false, - }.SetDropOnlyBaby(); - - //Boss drop Amulet---------------------------------------------------------------------------------------- - - new BaseItem(new int[][] - { - new int[] {1,2,4}, - new int[] {12,13}, - new int[] {22,25,30,18,5,28}, - new int[] {35,50,53,57,56,20,57,19,18}, - new int[] {7,10,31}, - new int[] {45,16,10,11,9,8, 14, 16, 57,11, 17,57}, - new int[] { 51, 52,66,8, 9,27}, - new int[] {15,18,34,36,57}, - new int[] {23,48,54,26}, - new int[] {6,55,46,54,53}, - new int[] {19,47,49,57, 21,24,29,37,38,57}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_156/*Megan's Locket*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_157/*The Locket Megan wore.*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_158/*Megan wore this Locket, it has a picture of her mom in it.*/, //tr - rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 1, - maxLevel = 4, - canConsume = false, - stackSize = 1, //stacking in inventory like in mc, one means single item - type = ItemDefinition.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that - }.SetDropOnlyMegan(); - - ItemDefinition RelicHammer = new BaseItem(new int[][] - { - new int[] {25 }, - new int[] {18 }, - new int[] {2004 }, - new int[] {1,62,63,64 }, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_159/*Relic Hammer*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_160/*It's slow and weak.*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_161/*Slows on hit*/, //tr - rarity = 2, - minLevel = 20, - maxLevel = 22, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Weapon, - subtype = ItemDefinition.ItemSubtype.Hammer, - icon = Res.ResourceLoader.GetTexture(109), - }; - RelicHammer.statSlots[1][0].multipier = -4; - - ItemDefinition GreaterHammer = new BaseItem(new int[][] - { - new int[] {25 }, - new int[] {18 }, - new int[] {2004 }, - new int[] {1,3,62,63,64}, - new int[] {53,16}, - new int[] {39,31,43,0,0}, - new int[] {25 ,22,1,12,13,5,6}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_162/*Black Hammer*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_163/*It's slow but with enough strength i can make it a very deadly tool*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_161/*Slows on hit*/, //tr - rarity = 4, - minLevel = 30, - maxLevel = 35, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Weapon, - subtype = ItemDefinition.ItemSubtype.Hammer, - icon = Res.ResourceLoader.GetTexture(109), - }; - GreaterHammer.statSlots[1][0].multipier = -3; - //Item 0/6 - new BaseItem(new int[][] - { - new int[] {23,26}, - new int[] {2,6,4}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_164/*Potato Sack*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_165/*Can be used as a quiver*/, //tr - rarity = 0, - minLevel = 1, - maxLevel = 4, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Quiver, - icon = Res.ResourceLoader.GetTexture(98), - }; - - //Item 1/6 - new BaseItem(new int[][] - { - new int[] {23,26}, - new int[] {40,41,42}, - new int[] {40,16,60}, - new int[] {2}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_166/*Rabbit Skin Quiver*/, //tr - rarity = 1, - minLevel = 2, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Quiver, - icon = Res.ResourceLoader.GetTexture(98), - }; - - //Item 2/6 - new BaseItem(new int[][] - { - new int[] {26}, - new int[] {23,2,54}, - new int[] {18,60,61}, - new int[] {40,41,16,5,6,40}, - new int[] {-1}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_167/*Hollow Log*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_168/*It allows for faster drawing of arrow than a cloth quiver*/, //tr - rarity = 2, - minLevel = 6, - maxLevel = 9, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Quiver, - icon = Res.ResourceLoader.GetTexture(98), - }; - - //Item 3/6 - new BaseItem(new int[][] - { - new int[] {26,23}, - new int[] {24,21}, - new int[] {17,16,18,54,51,52,66}, - new int[] {2,3,4,15,14,13,12,11,10}, - new int[] {5,6,47,60,61}, - new int[] {2,3,4,5,6,7,8,11,12,16,18,37}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_169/*Spellbound Quiver*/, //tr - rarity = 3, - minLevel = 6, - maxLevel = 11, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Quiver, - icon = Res.ResourceLoader.GetTexture(98), - }; - - //Item 4/6 - new BaseItem(new int[][] - { - new int[] {23,26}, - new int[] {23}, - new int[] {2,3,4}, - new int[] {34,18,17,16,15,14,60,61,55,}, - new int[] {16,19,23,31,54,51,52,66,57}, - new int[] {2,0}, - new int[] {2,3,4,5,6,7,8,9,10}, - new int[] {2,1,5,6}, - new int[] {-1}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_170/*Long Lost Quiver*/, //tr - rarity = 5, - minLevel = 12, - maxLevel = 20, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Quiver, - icon = Res.ResourceLoader.GetTexture(98), - }; - - //Item 5/6 - new BaseItem(new int[][] - { - new int[] {37, 24,47}, - new int[] {42,6,17,61}, - new int[] {-1}, - new int[] {4,0}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_171/*Spell Scroll*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_172/*Contains a lot of information on how to properly cast spells to achieve better results*/, //tr - rarity = 1, - minLevel = 1, - maxLevel = 1, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.SpellScroll, - icon = Res.ResourceLoader.GetTexture(110), - }; - - new BaseItem(new int[][] - { - new int[] {16,43}, - new int[] {43,39,40,41,42}, - new int[] {43,39,40,41,42}, - new int[] {43,0,0,0}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_173/*Cloth Pants*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_174/*Offer little protction*/, //tr - rarity = 1, - minLevel = 2, - maxLevel = 5, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Pants, - icon = Res.ResourceLoader.GetTexture(87), - }; - - //Item 1/7 - new BaseItem(new int[][] - { - new int[] {16}, - new int[] {1,2,3,4}, - new int[] {5,6}, - new int[] {16,43,39,40,41,42}, - new int[] {1000,1001,1002,1003,1004,43,0,0,0}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_175/*Rough Hide Leggins*/, //tr - rarity = 3, - minLevel = 1, - maxLevel = 1, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Pants, - icon = Res.ResourceLoader.GetTexture(87), - }; - - //Item 2/7 - new BaseItem(new int[][] - { - new int[] {16,}, - new int[] {1,2,3,4}, - new int[] {5,44,7,8}, - new int[] {6,16,3}, - new int[] {1,2,3,4,11}, - new int[] {17,16,10,9}, - new int[] {16,43}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_176/*Plate Leggins*/, //tr - rarity = 4, - minLevel = 4, - maxLevel = 10, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Pants, - icon = Res.ResourceLoader.GetTexture(87), - }; - - //Item 3/7 - new BaseItem(new int[][] - { - new int[] {16}, - new int[] {19}, - new int[] {1,2,3,4,5,6,7,8}, - new int[] {39,40,41,42,43}, - new int[] {4}, - new int[] {-1}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_177/*Sage's Robes*/, //tr - rarity = 3, - minLevel = 1, - maxLevel = 6, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Pants, - icon = Res.ResourceLoader.GetTexture(87), - }; - - //Item 4/7 - new BaseItem(new int[][] - { - new int[] {1,2,3,4}, - new int[] {1,5}, - new int[] {16}, - new int[] {22,25}, - new int[] {11,12,13,14,5,6,1,2,3,4}, - new int[] {7,8,9,10,44,45,46,49}, - new int[] {31,1,3,}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_178/*Hammer Jammers*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_179("450%")/*Damage of your smash attack is increased by 450%, hammer stun duration is doubled*/, //tr - rarity = 7, - minLevel = 20, - maxLevel = 28, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Pants, - icon = Res.ResourceLoader.GetTexture(87), - onEquipCallback = () => { ModdedPlayer.Stats.smashDamage.Multiply(4.5f); ModdedPlayer.Stats.i_HammerStunAmount.Multiply(2); }, - onUnequipCallback = () => { ModdedPlayer.Stats.smashDamage.Divide(4.5f); ModdedPlayer.Stats.i_HammerStunAmount.Divide(2); }, - }; - - //Item 5/7 - new BaseItem(new int[][] - { - new int[] {16}, - new int[] {34}, - new int[] {1,2,4,6,7,8}, - new int[] {-1}, - new int[] {26,23,24,21}, - new int[] {1000, 1001,1002, 1003, 1004, 0,0,0,1,2,4}, - new int[] {51,1,2,3,4,55}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_180/*Pirate Pants*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_181/*Those pants are ligh and comfortable. They offer plenty of mobility but lack in protection.*/, //tr - rarity = 5, - minLevel = 1, - maxLevel = 1, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Pants, - icon = Res.ResourceLoader.GetTexture(87), - }; - - //Item 6/7 - new BaseItem(new int[][] - { - new int[] {16}, - new int[] {1,2,3,4,16,17}, - new int[] {18,34}, - new int[] {1,2,3,4}, - new int[] {5,6,15,16,13,12,11}, - new int[] {8,4,2,9}, - new int[] {22,21,23}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_182/*Hexed Pants of Mr M.*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_183/*They look like yoga pants but for a man the size of a wardrobe*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_184/*Once upon a time there was a man who was in a basement and fed himself with nothing but nuggets. He got so obese that friends and family started worrying. Hazard noticed this man and cursed his pants to force him to excercise.*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_185("60%", "1%")/*While moving, energy regeneration and damage is increased by 40%. While standing still for longer than a second, you loose 1% of max health per second.*/, //tr - rarity = 7, - minLevel = 14, - maxLevel = 15, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Pants, - icon = Res.ResourceLoader.GetTexture(87), - onEquipCallback = () => ModdedPlayer.Stats.i_HexedPantsOfMrM_Enabled.value = true, - onUnequipCallback = () => ModdedPlayer.Stats.i_HexedPantsOfMrM_Enabled.value = false, - }; - new BaseItem(new int[][] - { -new int[] {39,40,41,42,43}, -new int[] {39,40,41,42,43}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_186/*Leather Mantle*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_187/*A piece of cloth to give protection from */, //tr - rarity = 1, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.ShoulderArmor, - icon = Res.ResourceLoader.GetTexture(95), - }; - - //Item 1/6 - new BaseItem(new int[][] - { -new int[] {16}, -new int[] {16}, -new int[] {1,2,3,4,5,6}, -new int[] {39,40,41,42,43}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_188/*Shoulder Guards*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_189/*Medium armor piece.*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_190/*Heavy armor*/, //tr - rarity = 2, - minLevel = 4, - maxLevel = 7, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.ShoulderArmor, - icon = Res.ResourceLoader.GetTexture(95), - }; - - //Item 2/6 - ItemDefinition Heavy_Shoulder_Plates = new BaseItem(new int[][] - { - new int[] {34}, - new int[] {18}, - new int[] {16}, - new int[] {16,65}, - new int[] {1,2,3,4}, - new int[] {1,2,3,4,5,8,9,7,10}, - new int[] {17,10,5,8,9,7,10}, - new int[] {5,45,3}, - new int[] {11}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_191/*Heavy Shoulder Plates*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_192/*Heavy armor piece. They offer great protection at the cost of attack speed and movement speed decrease*/, //tr - rarity = 4, - minLevel = 15, - maxLevel = 20, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.ShoulderArmor, - icon = Res.ResourceLoader.GetTexture(95), - }; - Heavy_Shoulder_Plates.statSlots[0][0].multipier = -1; - Heavy_Shoulder_Plates.statSlots[1][0].multipier = -1; - Heavy_Shoulder_Plates.statSlots[2][0].multipier = 3; - - //Item 3/6 - new BaseItem(new int[][] - { - new int[] {21,22,23,24,25,26}, - new int[] {16}, - new int[] {1,2,3,4}, - new int[] {1,2,3,4,16,39,40,41,42,43}, - new int[] {1,2,3,4,16,39,40,41,42,43}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_193/*Etched Mantle*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_194/*Those pauldrons empower wearer's combat skill*/, //tr - rarity = 3, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.ShoulderArmor, - icon = Res.ResourceLoader.GetTexture(95), - }; - - //Item 4/6 - new BaseItem(new int[][] - { - new int[] {22,25}, - new int[] {1,2,3,4}, - new int[] {16}, - new int[] {12,11,13,14}, - new int[] {5,6}, - new int[] {10,15,16,17,18,19,31,35,36,44,45,46,47,49,50,53,55}, - new int[] {10,15,16,17,18,19,31,35,36,44,45,46,47,49,50,53,55}, - new int[] {53,55}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_195/*Assassins Pauldrons*/, //tr - rarity = 5, - minLevel = 4, - maxLevel = 6, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.ShoulderArmor, - icon = Res.ResourceLoader.GetTexture(95), - }; - - //Item 5/6 - new BaseItem(new int[][] - { - new int[] {11}, - new int[] {1,2,3,4}, - new int[] {16}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {21,22,23,24,25,26}, - new int[] {5,14,7,10,45}, - new int[] {1,2,3,4}, - new int[] {12,13,15,16,18}, - new int[] {17,19,21,22,23}, - new int[] {37,35,36,38,44,45,47}, - new int[] {1,2,4}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_196/*Death Pact*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_197/*Find the greatest strength on the border of life and death.*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_198("6%", "5%")/*Every attack you make decreases your health by 7% of max health. For every percent of missing health you gain 5% damage amplification. This damage cannot kill you.*/, //tr - rarity = 7, - minLevel = 5, - maxLevel = 8, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.ShoulderArmor, - icon = Res.ResourceLoader.GetTexture(95), - onEquipCallback = () => ModdedPlayer.Stats.i_DeathPact_Enabled.value = true, - onUnequipCallback = () => ModdedPlayer.Stats.i_DeathPact_Enabled.value = false, - }; - new BaseItem(new int[][] - { - new int[] {56}, - new int[] {-1}, - new int[] {-1}, - new int[] {1,2,3,4}, - new int[] {11,12,13,14,15,16,17,18}, - new int[] {11,12,13,14,15,16,17,18}, - new int[] {5,6,7,8,9,10,31}, - new int[] {55,54,53,50}, - new int[] {1,2,3,4,21,22,23,24,25,26}, - new int[] {16,0,0,0,1,2,3,4,0,0,0,0}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_199/*Maximale Qualitöt*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_200/*A platinum ring with the most expensive jewels engraved on it. It's quality is uncomparable.*/, //tr - rarity = 6, - minLevel = 1, - maxLevel = 4, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Ring, - icon = Res.ResourceLoader.GetTexture(90), - }; - new BaseItem(new int[][] - { - }) - { - name = Translations.ItemDatabase_ItemDefinitions_201/*Heart of Purity*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_202/*A object filled with both destructive and creative energy. Allows to re-assign all spent mutation points*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_203/*This powerful relic contains so much power, that it can kill anything and force it to come back to life, resulting in it's rebirth.*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_204/*Can be consumed by right clicking it. */, //tr - rarity = 4, - minLevel = 1, - maxLevel = 2, - canConsume = true, - stackSize = 100, - type = ItemDefinition.ItemType.Other, - icon = Res.ResourceLoader.GetTexture(105), - onEquipCallback = ModdedPlayer.Respec - }; - - new BaseItem(new int[][] - { -new int[] {1,2,3,4,57}, -new int[] {16,17,14}, -new int[] {50,11}, -new int[] {49,39,40,41,42,45,44}, -new int[] {5,6,9,8,10,12,13,14,}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_205/*Round Shield*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_206/*A sturdy shield made of wood and reinforced with iron.*/, //tr - rarity = 2, - minLevel = 5, - maxLevel = 8, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Shield, - icon = Res.ResourceLoader.GetTexture(99), - }; - - //Item 1/5 - new BaseItem(new int[][] - { -new int[] {1,11,5,7}, -new int[] {57,2,3,4,5,6,7,8,10,11}, -new int[] {39,40,41,42,43,44,45,46}, -new int[] {50}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_207/*Old Buckler*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_208/*An old shield.*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_209/*This item has a lot of scratches that look like they were made by something with sharp claws.*/, //tr - rarity = 1, - minLevel = 4, - maxLevel = 12, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Shield, - icon = Res.ResourceLoader.GetTexture(99), - }; - - //Item 2/5 - new BaseItem(new int[][] - { -new int[] {16}, -new int[] {16,50}, -new int[] {-1}, -new int[] {-1}, -new int[] {-1}, -new int[] {11}, -new int[] {39,40,41,42,43,50,57}, -new int[] {39,40,41,42,43,50,57}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_210/*Dark Oak Shield*/, //tr - rarity = 4, - minLevel = 1, - maxLevel = 1, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Shield, - icon = Res.ResourceLoader.GetTexture(99), - }; - - //Item 3/5 - new BaseItem(new int[][] - { -new int[] {15,14}, -new int[] {2,3,4,1,41,42,57}, -new int[] {-1}, -new int[] {-1}, -new int[] {-1}, -new int[] {65,1,16,25}, -new int[] {2,4,5,6}, -new int[] {16,7,8,22,23,25,26}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_211/*Bone Shield*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_212/*A shield made of bones, held together by thick steel wire.*/, //tr - rarity = 3, - minLevel = 1, - maxLevel = 1, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Shield, - icon = Res.ResourceLoader.GetTexture(99), - }; - - new BaseItem(new int[][] - { -new int[] {18}, -new int[] {0,0,0,0,62,63,64}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_213/*Dull Longsword*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_214/*It's round on the edges*/, //tr - rarity = 0, - minLevel = 15, - maxLevel = 20, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Weapon, - subtype = ItemDefinition.ItemSubtype.LongSword, - icon = Res.ResourceLoader.GetTexture(89), - }.statSlots[0][0].multipier = -3; - - new BaseItem(new int[][] - { - new int[] {16}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {65}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_215/*Iron Horn*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_216("10%")/*When using Warcry, you and all allies recieve armor bonus equal to 10% of your armor*/, //tr - rarity = 4, - minLevel = 1, - maxLevel = 2, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(101), - onEquipCallback = () => ModdedPlayer.Stats.spell_warCryGiveArmor.value = true, - onUnequipCallback = () => ModdedPlayer.Stats.spell_warCryGiveArmor.value = false, - }.statSlots[0][0].multipier = 2; - - //Item 1/5 - new BaseItem(new int[][] - { - new int[] {16}, - new int[] {31,7,8,9,10}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_217/*The Great Iron Horn*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_216("10%") + Translations.ItemDatabase_ItemDefinitions_608/*When using Warcry, you and all allies recieve armor bonus equal to 10% of your armor*/, //tr - rarity = 7, - minLevel = 1, - maxLevel = 2, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(101), - onEquipCallback = () => - { - ModdedPlayer.Stats.spell_warCryGiveArmor.value = true; - ModdedPlayer.Stats.spell_warCryGiveDamageResistance.value = true; - }, - onUnequipCallback = () => - { - ModdedPlayer.Stats.spell_warCryGiveArmor.value = false; - ModdedPlayer.Stats.spell_warCryGiveDamageResistance.value = true; - }, - }.statSlots[0][0].multipier = 5; - - //Item 2/5 - new BaseItem(new int[][] - { - new int[] {16}, - new int[] {1}, - new int[] {65,0}, - new int[] {5,16,18}, - new int[] {21,22,23,0,0,0}, - new int[] {24,25,26,0,0,0}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_218/*Horned Helmet*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_219/*A viking helmet*/, //tr - rarity = 2, - minLevel = 2, - maxLevel = 8, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Helmet, - icon = Res.ResourceLoader.GetTexture(91), - }; - - //Item 3/5 - new BaseItem(new int[][] - { - new int[] {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,31,36,37,38,43,44,45,46,47,49,50,53,54,55,57}, - new int[] {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,31,36,37,38,43,44,45,46,47,49,50,53,54,55,57}, - new int[] {-1}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_220/*Mask*/, //tr - rarity = 2, - minLevel = 1, - maxLevel = 5, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Helmet, - icon = Res.ResourceLoader.GetTexture(91), - }; - - //Item 4/5 - ItemDefinition mask = new BaseItem(new int[][] - { - new int[] {18}, - new int[] {22,23,21}, - new int[] {11}, - new int[] {1,2,3,4,5,6,7,8,9,10,12,13,14,15,16,17,18,31,36,37,38,43,44,45,46,47,49,50,53,54,55,57}, - new int[] {1,2,3,4,5,6,7,8,9,10,12,13,14,15,16,17,18,31,36,37,38,43,44,45,46,47,49,50,53,54,55,57}, - new int[] {1,2,3,4,5,6,7,8,9,10,12,13,14,15,16,17,18,31,36,37,38,43,44,45,46,47,49,50,53,54,55,57}, - new int[] {24,25,26,0,0,0}, - new int[] {29,30,48}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_221/*Mask of Madness*/, //tr - rarity = 5, - minLevel = 2, - maxLevel = 6, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Helmet, - icon = Res.ResourceLoader.GetTexture(91), - }; - mask.statSlots[2][0].multipier = -4; - mask.statSlots[0][0].multipier = 1.5f; - mask.statSlots[1][0].multipier = 2.5f; - mask.statSlots[1][1].multipier = 2.5f; - mask.statSlots[1][2].multipier = 2.5f; - - new BaseItem(new int[][] - { - new int[] {47,49,37,38}, - new int[] {42,4}, - new int[] {44}, - new int[] {21}, - new int[] {-1}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_222/*Old Scroll*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_172/*Contains a lot of information on how to properly cast spells to achieve better results*/, //tr - rarity = 3, - minLevel = 1, - maxLevel = 1, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.SpellScroll, - icon = Res.ResourceLoader.GetTexture(110), - }; - new BaseItem(new int[][] - { - new int[] {57}, - new int[] {1,2,3,4}, - new int[] {5,46}, - new int[] {6,45}, - new int[] {21,24,11,12,13,14,15,16}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {4,18,7,8,19}, - new int[] {27,28,29,30,48,47}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_223/*Wormhole Stabilizators*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_224/*High-tech gear*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_225/*Hazard remember to put some fucking lore in here, don't leave it like this!*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_226("570")/*Increases the duration of a portal by 570 seconds*/, //tr - rarity = 7, - minLevel = 4, - maxLevel = 6, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Bracer, - icon = Res.ResourceLoader.GetTexture(94), - onEquipCallback = () => ModdedPlayer.Stats.spell_portalDuration.Add(570), - onUnequipCallback = () => ModdedPlayer.Stats.spell_portalDuration.Sub(570), - }; - new BaseItem(new int[][] - { - new int[] {57}, - new int[] {1,2,3,4}, - new int[] {5,46}, - new int[] {6,45}, - new int[] {21,24,11,12,13,14,15,16}, - new int[] {16}, - new int[] {17}, - new int[] {4,18,7,8,19}, - new int[] {27,28,29,30,48,47}, - new int[] {-1}, - new int[] {-1}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_227/*Cripplers*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_228(15)/*Increases the duration of a magic arrow's negative effect by 10 seconds*/, //tr - rarity = 7, - minLevel = 3, - maxLevel = 6, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Glove, - icon = Res.ResourceLoader.GetTexture(86), - onEquipCallback = () => ModdedPlayer.Stats.spell_magicArrowDuration.Add(15), - onUnequipCallback = () => ModdedPlayer.Stats.spell_magicArrowDuration.Sub(15), - }; - - new BaseItem(new int[][] - { - new int[] {24,4}, - new int[] {26,4}, - new int[] {21,2}, - new int[] {23,2,0,0,0,0}, - new int[] {2,4,57,16}, - new int[] {6,8,9,44,46}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {12,13,14,15,16,18}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_229/*Crossfire*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_230/*Infused with powerful magic. This item is a dangerous tool of destruction.*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_231/*When hitting an enemy with a projectile, create a magic arrow pointed at the enemy and shoot it without using in energy. This effect may occur once every seconds, but can be interval can be shortened with cooldown reduction.*/, //tr - rarity = 7, - minLevel = 1, - maxLevel = 6, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Quiver, - icon = Res.ResourceLoader.GetTexture(98), - onEquipCallback = () => ModdedPlayer.Stats.i_CrossfireQuiver.value = true, - onUnequipCallback = () => ModdedPlayer.Stats.i_CrossfireQuiver.value = false, - }; - - new BaseItem(new int[][] - { - new int[] {44}, - new int[] {44,8}, - new int[] {44,4,6,9,4}, - new int[] {49,7,0}, - new int[] {-1}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_232/*Scroll of Recovery*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_233/*Recovers health and stamina*/, //tr - rarity = 1, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.SpellScroll, - icon = Res.ResourceLoader.GetTexture(110), - }; - - new BaseItem(new int[][] - { - new int[] {11}, - new int[] {-1}, - new int[] {16,15}, - new int[] {37,38}, - new int[] {42,24}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_234/*Tiara*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_235/*A beautiful tiara */, //tr - lore = Translations.ItemDatabase_ItemDefinitions_236/*This tiara may not provide much protection, but it sure is pretty*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_237/*Shiny*/, //tr - rarity = 2, - minLevel = 5, - maxLevel = 10, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Helmet, - icon = Res.ResourceLoader.GetTexture(91), - }; - - //Item 1/2 - new BaseItem(new int[][] - { - new int[] {-1}, - new int[] {15}, - new int[] {15}, - new int[] {17,16}, - new int[] {17,16}, - new int[] {0,65}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_238/*Chastity belt*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_239/*Dodge those fukbois*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_240/*This belt will stop those cheeky cannibals and armsies from getting into your pants*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_241("99%")/* 100% damage reduction while sleeping*/, //tr - rarity = 2, - minLevel = 1, - maxLevel = 2, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Pants, - icon = Res.ResourceLoader.GetTexture(87), - }; - new BaseItem(new int[][] - { - new int[] {2005}, - new int[] {-1}, - new int[] {-1}, - new int[] {42,43}, - new int[] {44,0,49,}, - new int[] {21,24,0,0,0,0}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_242/*Ice Scroll*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_243/*A spell surrounded by flying shards of ice, contains tramendous power of cold.*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_244/*Created at the top of the mountain.*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_581("250", 2)/*Snap freeze damage is increased and the slow duration is increased by 1 second*/, //tr - rarity = 4, - minLevel = 30, - maxLevel = 40, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.SpellScroll, - icon = Res.ResourceLoader.GetTexture(110), - onEquipCallback = () => { ModdedPlayer.Stats.spell_snapDamageScaling.Add(250f); ModdedPlayer.Stats.spell_snapFreezeDuration.Add(2); }, - onUnequipCallback = () => { ModdedPlayer.Stats.spell_snapDamageScaling.Sub(250f); ModdedPlayer.Stats.spell_snapFreezeDuration.Add(2); } - }; - new BaseItem(new int[][] - { - new int[] {2006}, - new int[] {57,1,2,3,4}, - new int[] {34,45,46,15,1,2,3,4,57,11,14,7,10,59}, - new int[] {8,1,2,3,4,9,5,6}, - new int[] {1000,1001,1002}, - new int[] {1000,1001,1002, 1003, 1004, 0,0,0,0,0,0,0}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_245/*Motorboat Modification Blueprints*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_246/*Sheet of paper that allows to turn any raft into a high speed. Increases carry amount and increases speed of rafts.*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_247/*Who did this lmao.*/, //tr - rarity = 4, - minLevel = 1, - maxLevel = 4, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.SpellScroll, - icon = Res.ResourceLoader.GetTexture(110), - }; - new BaseItem(new int[][] - { - new int[]{1,2,3,4}, - new int[]{18}, - new int[]{18,0,0,62,63,64}, - new int[] {1,2,3,4,6,55}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_248/*Axe of Swiftness*/, //tr - rarity = 3, - minLevel = 15, - maxLevel = 17, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Weapon, - subtype = ItemDefinition.ItemSubtype.Axe, - icon = Res.ResourceLoader.GetTexture(138), - }.statSlots[1][0].multipier = 1.6f; - new BaseItem(new int[][] - { - new int[]{1,26,22}, - new int[]{18}, - new int[]{18,62,63,64}, - new int[] {1,2,3,4,6,55,59,57,34,35,36,14,44,49}, - new int[] {53,22,25,12,13}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_249/*Severer*/, //tr - rarity = 4, - minLevel = 25, - maxLevel = 25, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Weapon, - subtype = ItemDefinition.ItemSubtype.Axe, - icon = Res.ResourceLoader.GetTexture(138), - }.statSlots[1][0].multipier = 2.5f; - - new BaseItem(new int[][] - { - new int[]{1,26,22}, - new int[]{18}, - new int[]{1,2,3,4,5,6,7,8,9,10,12,13,14,15,16,17,18,20,34,35,36,37,38,44,45,46,47,49,53,54,55,}, - new int[]{62,63,64,0,0,0}, - new int[]{19,56}, - new int[] {1,2,3,4,6,55,59,57,34,35,36,14,44,49}, - new int[] {53,22,25,12,13,1,2,3,4,39,40,41,42,43}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_250/*Golden Axe of Fortune*/, //tr - rarity = 5, - minLevel = 35, - maxLevel = 36, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Weapon, - subtype = ItemDefinition.ItemSubtype.Axe, - icon = Res.ResourceLoader.GetTexture(138), - }.statSlots[1][0].multipier = 2.5f; - new BaseItem(new int[][] - { - new int[]{26,22}, - new int[]{63}, - new int[]{1,2,3,4,5,6,7,8,9,10,12,13,14,15,16,17,18,20,34,35,36,37,38,44,45,46,47,49,53,54,55,}, - new int[]{62,63,64,65}, - new int[]{19,56}, - new int[] {26}, - new int[] {53,22,25,12,13,1,2,3,4,39,40,41,42,43}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_251/*Axe of Misfortune*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_252/*Misfortunate are the ones on the recieving end. They will bleed a lot*/, //tr - rarity = 5, - minLevel = 6, - maxLevel = 9, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Weapon, - subtype = ItemDefinition.ItemSubtype.Axe, - icon = Res.ResourceLoader.GetTexture(138), - }.statSlots[1][0].multipier = 3; - - new BaseItem(new int[][] - { - new int[] {1,2,3,4}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_253/*Golden Ring*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_103/*A Golden Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - rarity = 4, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 1, - maxLevel = 4, - canConsume = false, - stackSize = 1, //stacking in inventory like in mc, one means single item - type = ItemDefinition.ItemType.Ring, - icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that - }; - new BaseItem(new int[][] - { - new int[] {1,2,3,4}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_254/*Golden Locket*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_122/*A Locket of ancient times.*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_123/*A Golden Locket that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr - rarity = 3, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 1, - maxLevel = 4, - canConsume = false, - stackSize = 1, //stacking in inventory like in mc, one means single item - type = ItemDefinition.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that - }; - new BaseItem(new int[][] - { - new int[]{0,39} - }) - { - name = Translations.ItemDatabase_ItemDefinitions_255/*Dull Axe*/, //tr - rarity = 0, - minLevel = 15, - maxLevel = 24, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Weapon, - subtype = ItemDefinition.ItemSubtype.Axe, - icon = Res.ResourceLoader.GetTexture(138), - }; - new BaseItem(new int[][] - { - new int[] {1,2,3,4 }, - new int[] {1,2,3,15,4,0,0,0 }, - new int[] {12,13,1,2,3,4,5, }, - new int[] {18,16,23,26,19 }, - new int[] {18,16,23,26 }, - new int[] {34,44,45,46 }, - new int[] {2,23,26}, - new int[] {2,23,26,51}, - new int[] {2,23,26,20,16,15,60}, - new int[] {52,66,60,0,0}, - new int[] {-1}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_256/*Precise Adjustments*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_257(15)/*Focus attack speed buff duration is increased by 16 seconds*/, //tr - rarity = 7, - minLevel = 5, - maxLevel = 8, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Quiver, - icon = Res.ResourceLoader.GetTexture(98), - onEquipCallback = () => ModdedPlayer.Stats.spell_focusOnAtkSpeedDuration.Add(16), - onUnequipCallback = () => ModdedPlayer.Stats.spell_focusOnAtkSpeedDuration.Sub(16), - }; - new BaseItem(new int[][] - { - new int[] {25 }, - new int[] {22,1,18,}, - new int[] {1,2,3,4,57,}, - new int[] {27,28,30}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {15,14,45,7,35,10}, - new int[] {62,63,64, }, - new int[] {53,61 }, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_258/*Rage*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_259(15)/*Increases maximum stacks of frenzy by 10*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_260/*Swords go brrrrrrttt*/, //tr - rarity = 7, - minLevel = 6, - maxLevel = 9, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Weapon, - subtype = ItemDefinition.ItemSubtype.GreatSword, - icon = Res.ResourceLoader.GetTexture(88), - onEquipCallback = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Add(15), - onUnequipCallback = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Sub(15), - }.statSlots[0][0].multipier = 5; - - ItemDefinition jaggedRipper = new BaseItem(new int[][] - { - new int[] {1,2,3,4,57,}, - new int[]{18}, - new int[] {25 }, - new int[] {62,63,64, }, - new int[] {53, }, - new int[] {49,14, }, - new int[] {35,36,15,12, }, - new int[] {27,28,30}, - new int[]{18,62,63,64}, - new int[] {65}, - new int[] {-1}, - new int[] {-1}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_261/*Jagged Edge*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_262("30%", "30%")/*Bash has 30% a chance to make enemies to bleed for 30% of damage dealt per second for duration of slow*/, //tr - rarity = 7, - minLevel = 1, - maxLevel = 5, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Weapon, - subtype = ItemDefinition.ItemSubtype.Axe, - icon = Res.ResourceLoader.GetTexture(138), - onEquipCallback = () => ModdedPlayer.Stats.spell_bashBleedChance.Add(0.3f), - onUnequipCallback = () => ModdedPlayer.Stats.spell_bashBleedChance.Sub(0.3f), - }; - jaggedRipper.statSlots[1][0].multipier = 2; - - new BaseItem(new int[][] - { - new int[] {25 }, - new int[] {22,}, - new int[] {1,2,3,4,57,}, - new int[] {27,28,30}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {15,14,45,7,35,10}, - new int[] {62,63,64, }, - new int[] {53,61 }, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_263/*Bloodthirster*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_264/*Drenched in blood of many unfortunate foes.*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_265("2%")/*Bash lifesteals 2% of damage dealt into energy and health*/, //tr - rarity = 7, - minLevel = 1, - maxLevel = 5, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Weapon, - subtype = ItemDefinition.ItemSubtype.LongSword, - icon = Res.ResourceLoader.GetTexture(89), - onEquipCallback = () => ModdedPlayer.Stats.spell_bashLifesteal.Add(0.02f), - onUnequipCallback = () => ModdedPlayer.Stats.spell_bashLifesteal.Sub(0.02f), - }.statSlots[0][0].multipier = 3; - new BaseItem(new int[][] - { - new int[] {25 }, - new int[] {22 }, - new int[] {2004 }, - new int[] {62,63,64 }, - new int[] {27,28,30,29,48}, - new int[] {1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_266/*Frost Giant*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_267/*Melee hits freeze enemies*/, //tr - rarity = 7, - minLevel = 1, - maxLevel = 2, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Weapon, - subtype = ItemDefinition.ItemSubtype.Hammer, - icon = Res.ResourceLoader.GetTexture(109), - onEquipCallback = () => - { - ModdedPlayer.Stats.i_HammerStunDuration.Multiply(2); - ModdedPlayer.Stats.i_HammerStunAmount.Multiply(0); - }, - onUnequipCallback = () => - { - ModdedPlayer.Stats.i_HammerStunDuration.Divide(2); - ModdedPlayer.Stats.i_HammerStunAmount.Reset(); - }, - }.statSlots[0][0].multipier = 3.25f; - - new BaseItem(new int[][] - { - new int[] {11}, - new int[] {65}, - new int[] {16,17}, - new int[] {1,11,45}, - new int[] {15}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_268/*Alexander's Shield*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_269/*Parry has a chance to be casted when getting it. Requires parry to be equipped*/, //tr - rarity = 7, - minLevel = 1, - maxLevel = 2, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Shield, - icon = Res.ResourceLoader.GetTexture(99), - onEquipCallback = () => ModdedPlayer.Stats.spell_chanceToParryOnHit.value = true, - onUnequipCallback = () => ModdedPlayer.Stats.spell_chanceToParryOnHit.value = false, - }; - - new BaseItem(new int[][] - { - new int[] {1}, - new int[] {12,3,16,45,46}, - new int[] {13,4,62,64}, - new int[] {22}, - new int[] {25,22}, - new int[] {25}, - new int[] {11,1}, - new int[] {30,1,57}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_270/*King Qruies*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_271/*A mighty sword seeking for it's owner*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_272/*Gain additional melee damage equal to the last instance of physical damage taken.*/, //tr - rarity = 7, - minLevel = 10, - maxLevel = 12, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Weapon, - subtype = ItemDefinition.ItemSubtype.LongSword, - icon = Res.ResourceLoader.GetTexture(89), - onEquipCallback = () => ModdedPlayer.Stats.i_KingQruiesSword.value = true, - onUnequipCallback = () => ModdedPlayer.Stats.i_KingQruiesSword.value = false, - }; - - new BaseItem(new int[][] - { - new int[] {2,3,4,5,6,11,12,13,15,23,26,51,60,44,49,48}, - new int[] {2,3,4,5,6,11,12,13,15,23,26,51,60,44,49,48}, - new int[] {13,4,62,64}, - new int[] {26,2,34,57,55}, - new int[] {26,23}, - new int[] {18,16}, - new int[] {48,2,55}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_273/*Grip of Sora*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_274/*Look, a porcupine! -Sora*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_275("20%", "+4")/*Multishot drains 20% less energy and shoots +4 projectiles. Additional projectiles do not increase the cost of multishot*/, //tr - rarity = 7, - minLevel = 10, - maxLevel = 12, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Bracer, - icon = Res.ResourceLoader.GetTexture(93), - onEquipCallback = () => ModdedPlayer.Stats.i_SoraBracers.value = true, - onUnequipCallback = () => ModdedPlayer.Stats.i_SoraBracers.value = false, - }; - new BaseItem(new int[][] - { - new int[] {18}, - new int[] {60,0}, - new int[] {2,40}, - new int[] {12,13,2,40,16,66}, - new int[] {39,40,41,42,43,0,0}, - new int[] {23,26}, - new int[] {-1,0}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_276/*Ancient Greatbow*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_277/*A massive and slow bow, deals extra damage*/, //tr - rarity = 4, - minLevel = 10, - maxLevel = 12, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Weapon, - subtype = ItemDefinition.ItemSubtype.Greatbow, - icon = Res.ResourceLoader.GetTexture(170), - }.statSlots[0][0].multipier = -1.55f; - - new BaseItem(new int[][] - { - new int[] {18}, - new int[] {61}, - new int[] {2,0,0,0}, - new int[] {12,13,2,40,16}, - new int[] {39,40,41,42,43,0,0}, - new int[] {23,26,2,66}, - new int[] {23,26}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {2,3,4,5,6,11,12,13,15,23,26,51,60,44,49,48}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_278/*Phoenix's Death*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_279/*Ignites enemies on hit*/, //tr - rarity = 6, - minLevel = 10, - maxLevel = 12, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Weapon, - subtype = ItemDefinition.ItemSubtype.Greatbow, - icon = Res.ResourceLoader.GetTexture(170), - onEquipCallback = () => ModdedPlayer.Stats.i_greatBowIgnites.value = true, - onUnequipCallback = () => ModdedPlayer.Stats.i_greatBowIgnites.value = false, - }.statSlots[0][0].multipier = -1.7f; - - new BaseItem(new int[][] - { - new int[] {18}, - new int[] {61,48}, - new int[] {2,3,5}, - new int[] {12,13,2,40,16}, - new int[] {39,40,41,42,43,66}, - new int[] {23,26}, - new int[] {23,26}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {2,3,4,5,6,11,12,13,15,23,26,51,60,44,49,48}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_280/*Soulstring*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_281/*A massive and slow bow*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_282(100)/*Blood infused arrow now deals additional 20 points of damage per health consumed*/, //tr - rarity = 7, - minLevel = 10, - maxLevel = 12, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Weapon, - subtype = ItemDefinition.ItemSubtype.Greatbow, - icon = Res.ResourceLoader.GetTexture(170), - onEquipCallback = () => ModdedPlayer.Stats.spell_bia_HealthDmMult.Add(100), - onUnequipCallback = () => ModdedPlayer.Stats.spell_bia_HealthDmMult.Sub(100), - }.statSlots[0][0].multipier = -1.7f; - - new BaseItem(new int[][] - { - new int[] {18}, - - new int[] {2,40,0}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_283/*Greatbow*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_277/*A massive and slow bow, deals extra damage*/, //tr - rarity = 2, - minLevel = 25, - maxLevel = 28, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Weapon, - subtype = ItemDefinition.ItemSubtype.Greatbow, - icon = Res.ResourceLoader.GetTexture(170), - }.statSlots[0][0].multipier = -2.7f; - - new BaseItem(new int[][] - { - new int[] {2,3,4,5,6,11,12,13,15,23,26,51,60,44,49,48}, - new int[] {2,3,4,5,6,11,12,13,15,23,26,51,60,44,49,48}, - new int[] {13,4,62,64}, - new int[] {26,2,34,57,55}, - new int[] {26,23}, - new int[] {26,0,0}, - new int[] {18,16}, - new int[] {30,1,57}, - new int[] {5}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_284/*Withered Crown*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_285/*Worn by Hazard.*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_286("4")/*A single cast of blood infused arrow affects 4 more projectiles*/, //tr - rarity = 7, - minLevel = 10, - maxLevel = 12, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Helmet, - icon = Res.ResourceLoader.GetTexture(91), - onEquipCallback = () => ModdedPlayer.Stats.i_HazardCrown.value = true, - onUnequipCallback = () => ModdedPlayer.Stats.i_HazardCrown.value = false, - }; - new BaseItem(new int[][] - { - new int[] {39,40,41,42,43,4}, - new int[] {4,6,24,21,16,3,42,43,49}, - new int[] {0,6,24,21,16,3,47,49,38,17,10,11,9,8,7,6}, - new int[] {37,4}, - new int[] {43,16,17,37,47 }, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_287/*Novice Magic Caster's Bracers*/, //tr - rarity = 4, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Bracer, - icon = Res.ResourceLoader.GetTexture(93), - }; - new BaseItem(new int[][] - { - new int[] {2,12,13,23,26,40,43,54}, - new int[] {2,12,13,23,26,40,43,60,62,63,51,52,66}, - new int[] {5,6,7,8,9,10,16,17,26}, - new int[] {37,0,0,0}, - new int[] {43,16,2 }, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_288/*Ranger's Bracers*/, //tr - rarity = 4, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Bracer, - icon = Res.ResourceLoader.GetTexture(93), - }; - new BaseItem(new int[][] - { - new int[] {1,16,5,6,18,39,14,22,25,53,62,63,57,45}, - new int[] {2,12,13,22,25,40,43,54}, - new int[] {5,6,7,8,9,10,16,17,26}, - new int[] {37,1,17,18,16}, - new int[] {43,1,65 }, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_289/*Swordsman's Bracers*/, //tr - rarity = 4, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Bracer, - icon = Res.ResourceLoader.GetTexture(93), - }; - new BaseItem(new int[][] - { - new int[] {3,5,6,7,8,9,10,11,14,15,16}, - new int[] {7,16,18,0,0}, - new int[] {39,40,41,42,43,31,16}, - new int[] {1,2,3,4,5,57,39,40,41,42,43,31,16}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_290/*Healer's Bracers*/, //tr - rarity = 5, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Bracer, - icon = Res.ResourceLoader.GetTexture(93), - }; - new BaseItem(new int[][] - { - new int[] {39,40,41,42,43,4}, - new int[] {4,6,24,21,16,3,42,43,49}, - new int[] {0,6,24,21,16,3,47,49,38,17,10,11,9,8,7,6}, - new int[] {37,0,0,0}, - new int[] {43,4 }, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_291/*Novice Magic Caster's Gloves*/, //tr - rarity = 4, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Glove, - icon = Res.ResourceLoader.GetTexture(86), - }; - new BaseItem(new int[][] - { - new int[] {2,12,13,23,26,40,43,54}, - new int[] {2,12,13,23,26,40,43,60,62,63,51,52,66}, - new int[] {5,6,7,8,9,10,16,17,26}, - new int[] {37,68}, - new int[] {43,2 }, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_292/*Ranger's Gloves*/, //tr - rarity = 4, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Glove, - icon = Res.ResourceLoader.GetTexture(86), - }; - new BaseItem(new int[][] - { - new int[] {1,16,5,6,18,39,14,22,25,53,62,63,57,45}, - new int[] {2,12,13,23,26,40,43,54}, - new int[] {5,6,7,8,9,10,16,17,26}, - new int[] {37,18,7,0}, - new int[] {43,1,65 }, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_293/*Swordsman's Gloves*/, //tr - rarity = 4, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Glove, - icon = Res.ResourceLoader.GetTexture(86), - }; - new BaseItem(new int[][] - { - new int[] {3,5,6,7,8,9,10,11,14,15,16}, - new int[] {7,16,18,0,0}, - new int[] {39,40,41,42,43,31,16}, - new int[] {1,2,3,4,5,57,39,40,41,42,43,31,16}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_294/*Healer's Gloves*/, //tr - rarity = 5, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Glove, - icon = Res.ResourceLoader.GetTexture(86), - }; - new BaseItem(new int[][] - { - new int[] {62,63,64,55,54,53,48,30,29,28,27}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_295/*Fate Gloves*/, //tr - rarity = 6, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Glove, - icon = Res.ResourceLoader.GetTexture(86), - }; - new BaseItem(new int[][] - { - new int[] {62,63,64,55,54,53,48,30,29,28,27}, - new int[] {34}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_296/*Fate Boots*/, //tr - rarity = 6, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Boot, - icon = Res.ResourceLoader.GetTexture(85), - }; - new BaseItem(new int[][] - { - new int[] {62,63,64,55,54,53,48,30,29,28,27}, - new int[] {34}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_297/*Greed*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_298/*Automatically casts wide reach every second*/, //tr - rarity = 7, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Boot, - icon = Res.ResourceLoader.GetTexture(85), - onEquipCallback = () => ModdedPlayer.Stats.i_isGreed.value = true, - onUnequipCallback = () => ModdedPlayer.Stats.i_isGreed.value = false, - }; - ItemDefinition titaniumleggins = new BaseItem(new int[][] - { - new int[] { 16}, - new int[] {31}, - new int[] {1,2,3,4}, - new int[] {5,}, - new int[] {-1,65}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_299/*Titanium Leggins*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_300/*Heavily armored leg protection. Suffers from the same weaknesses as spartan armor.*/, //tr - rarity = 6, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Pants, - icon = Res.ResourceLoader.GetTexture(87), - }; - titaniumleggins.statSlots[0][0].multipier = 3; - titaniumleggins.statSlots[1][0].multipier = 1.5f; - new BaseItem(new int[][] - { - new int[] {42,39,40,41,43,0,0 }, - new int[] {16,24,25,26,5,6,7,8,9,10,11,12,13,14,15,17,18,55,60,61,62,63,64,0,0,0 }, - new int[] {16,24,25,26,5,6,7,8,9,10,11,12,13,14,15,17,18,55,60,61,62,63,64 }, - new int[] {43,0,0,0,16 }, - new int[] {65,0}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_301/*Iron Gauntlet*/, //tr - rarity = 2, - minLevel = 1, - maxLevel = 2, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Glove, - icon = Res.ResourceLoader.GetTexture(86), - }; - - new BaseItem(new int[][] - { - new int[] {4,3,6}, - new int[] {21,24,16 }, - new int[] {29,4 }, - new int[] {16,15,17 }, - new int[] {47,49,44,45,46 }, - new int[] {-1 }, - new int[] {-1 }, - new int[] {-1 }, - new int[] {-1 }, - new int[] {-1 }, - new int[] {-1 }, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_302/*Magefist*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_303/*Gloves that amplify magic*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_304/*Spells deal double damage but have double the energy cost*/, //tr - rarity = 7, - minLevel = 1, - maxLevel = 2, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Glove, - icon = Res.ResourceLoader.GetTexture(86), - onEquipCallback = () => { ModdedPlayer.Stats.spellDamageMult.valueMultiplicative *= 2f; ModdedPlayer.Stats.spellCost.valueMultiplicative *= 2f; }, - onUnequipCallback = () => { ModdedPlayer.Stats.spellDamageMult.valueMultiplicative /= 2f; ModdedPlayer.Stats.spellCost.valueMultiplicative /= 2f; } - }; - new BaseItem(new int[][] - { - new int[] {34 }, - new int[] {34,5,1,2,4,3,2,11 }, - new int[] {16,3,2,1,4 }, - new int[] {16,7,8 }, - new int[] {16, }, - new int[] {-1 }, - new int[] {43 }, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_305/*Armored Boots*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_306/*Heavily armored, resistant to damage boots.*/, //tr - rarity = 5, - minLevel = 10, - maxLevel = 14, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Boot, - icon = Res.ResourceLoader.GetTexture(85), - }; - new BaseItem(new int[][] - { - new int[] {16}, - new int[] {16,18,57,53}, - new int[] {16,1,2,3,4,21,22,23,24,25,26,31,15,5,6,7,8,9}, - new int[] {1,2,3,4,57}, - new int[] {16,45,46,0,0,0}, - new int[] {-1 }, - new int[] {-1 }, - new int[] {-1 }, - new int[] {-1 }, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_307/*Broken Protector*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_308/*This shield failed to protect those behind it.*/, //tr - rarity = 6, - minLevel = 5, - maxLevel = 8, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Shield, - icon = Res.ResourceLoader.GetTexture(99), - }.statSlots[0][0].multipier = 2; - - new BaseItem(new int[][] - { - new int[] {4}, - new int[] {6,4,3,44}, - new int[] {21,24}, - new int[] {21,24}, - new int[] {-1,}, - new int[] {-1}, - new int[] {-1}, - new int[] {47,4,5,6,7,61,17,0,0,0,0,2,56,57,49,64}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_309/*Forbidden Scroll*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_310/*Too powerful to be kept.*/, //tr - rarity = 6, - minLevel = 1, - maxLevel = 1, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.SpellScroll, - icon = Res.ResourceLoader.GetTexture(110), - }; - - new BaseItem(new int[][] - { - new int[] {16}, - new int[] {1,2,3,4}, - new int[] {17}, - new int[] {8,9,49,47}, - new int[] {16,18,11,34}, - new int[] {37,34}, - new int[] {-1}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_311/*Doom Pauldrons*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_312/*Despite the cool name, they are completely normal pair of shoulder armor.*/, //tr - rarity = 6, - minLevel = 5, - maxLevel = 9, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.ShoulderArmor, - icon = Res.ResourceLoader.GetTexture(95), - }; - new BaseItem(new int[][] - { - new int[] {16}, - new int[] {1,2,3,4,57,53,54,55}, - new int[] {17,18,11,15}, - new int[] {15}, - new int[] {34}, - new int[] {16,5,6,7,8,9,10,11,12,13,14,15,17,18,59,47,45,46,60}, - new int[] {23,22,30,27,34,44,48,59}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_313/*Wind armor*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_314/*Run fast like the wind*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_315("20%", "35%", "2000", "5%")/*Upon dodging an attack, gain 20% movement speed, 35% damage, 2000 armor, and heal for 5% of your maximum health*/, //tr - rarity = 7, - minLevel = 5, - maxLevel = 9, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.ChestArmor, - icon = Res.ResourceLoader.GetTexture(96), - onEquipCallback = () => ModdedPlayer.Stats.i_isWindArmor.value = true, - onUnequipCallback = () => ModdedPlayer.Stats.i_isWindArmor.value = false, - }; - new BaseItem(new int[][] - { - new int[] {11}, - new int[] {22,23,21}, - new int[] {16}, - new int[] {1,2,3,4,5,6,7,8,9,10,12,13,14,15,16,17,18,31,36,37,38,43,44,45,46,47,49,50,53,54,55,57}, - new int[] {-1}, - new int[] {-1}, - new int[] {24,25,26,0,0,0}, - //new int[] {29,30,48}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_316/*Crusader Helmet*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_317/*You're talking mad shit for someone within crusading distance*/, //tr - rarity = 5, - minLevel = 2, - maxLevel = 6, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Helmet, - icon = Res.ResourceLoader.GetTexture(91), - }; - - new BaseItem(new int[][] - { - new int[] {1,2,3,4,5,6,57}, - new int[] {-1}, - new int[] {-1}, - new int[] {24,25,26,10,47,0,0,0}, - //new int[] {29,30,48}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_318/*Hood*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_319/*Hats provide usefull stat bonuses*/, //tr - rarity = 3, - minLevel = 2, - maxLevel = 6, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Helmet, - icon = Res.ResourceLoader.GetTexture(91), - }; - new BaseItem(new int[][] - { - new int[] {47 }, - new int[] {4,29 }, - new int[] {4,29 }, - new int[] {4,17,6,44,38,21,24,8,9}, - new int[] {4,17,6,44,38,21,24,8,9}, - new int[] {4,17,6,44,38,21,24,8,9}, - new int[] {4,17,6,44,38,21,24,8,9}, - new int[] {4,17,6,44,38,21,24,8,9}, - new int[] {2000,2002,49}, - new int[] {2001,4,29,24,21}, - new int[] {2002,4}, - new int[] {2003,-1}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_320/*The Spark of Light in The Darkness*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_321/*Magic Scroll of great quality*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_322/*Written in a language i canno't understand. Decyphering this text is impossible, so is the full utilization of the scroll.*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_323("5")/*If a black hole hits 5 or more enemies during it's lifetime, a ball lightning is summoned after it ends.*/, //tr - rarity = 7, - minLevel = 15, - maxLevel = 20, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.SpellScroll, - icon = Res.ResourceLoader.GetTexture(110), - onEquipCallback = () => ModdedPlayer.Stats.i_sparkOfLightAfterDark.value = true, - onUnequipCallback = () => ModdedPlayer.Stats.i_sparkOfLightAfterDark.value = false - }; - new BaseItem(new int[][] - { - new int[] {21,22,23,24,25,26,1,2,4}, - new int[] {12,13,11,47}, - new int[] {62,63,64,1000,1001,1002,1003,1004}, - new int[] {61}, - new int[] {5,57}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_324/*Purgatory*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_325/*Golden ring with a bone chilling feel about it. This thing will only bring harm, but not to the wearer*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_326/*Ring made of Netherrite*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_327("300%")/*Purge increases all of your damage based on missing health. Up to 300%*/, //tr - rarity = 7, - minLevel = 20, - maxLevel = 26, - canConsume = false, - stackSize = 1, - onEquipCallback = () => ModdedPlayer.Stats.spell_purgeDamageBonus.value = true, - onUnequipCallback = () => ModdedPlayer.Stats.spell_purgeDamageBonus.value = false, - type = ItemDefinition.ItemType.Ring, - icon = Res.ResourceLoader.GetTexture(90), - }.SetDropOnlyCannibals(); - - new BaseItem(new int[][] - { - new int[] {18}, - new int[] {61,48}, - new int[] {2,3,5}, - new int[] {12,13,2,40,16}, - new int[] {39,40,41,42,43,0,0}, - new int[] {23,26}, - new int[] {23,26}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {2,3,4,5,6,11,12,13,15,23,26,51,60,44,49,48}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_328/*Eruption*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_329/*Incarnation of devastation*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_330/*Headshots cause explosions*/, //tr - rarity = 7, - minLevel = 10, - maxLevel = 12, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Weapon, - subtype = ItemDefinition.ItemSubtype.Greatbow, - icon = Res.ResourceLoader.GetTexture(170), - onEquipCallback = () => ModdedPlayer.Stats.i_EruptionBow.value = true, - onUnequipCallback = () => ModdedPlayer.Stats.i_EruptionBow.value = false, - }.statSlots[0][0].multipier = -1.6f; - - new BaseItem(new int[][] - { - new int[] {18}, - new int[] {61,48}, - new int[] {2,3,5}, - new int[] {12,13,2,40,16}, - new int[] {39,40,41,42,43,0,0}, - new int[] {23,26}, - new int[] {23,26}, - new int[] {31}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - new int[] {2,3,4,5,6,11,12,13,15,23,26,51,60,44,49,48}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_331/*Archangel*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_332/*Spread the goodness*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_333("30")/*Shooting another player causes them to be greatly empowered for 30 seconds*/, //tr - rarity = 7, - minLevel = 10, - maxLevel = 12, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Weapon, - subtype = ItemDefinition.ItemSubtype.Greatbow, - icon = Res.ResourceLoader.GetTexture(170), - onEquipCallback = () => ModdedPlayer.Stats.i_ArchangelBow.value = true, - onUnequipCallback = () => ModdedPlayer.Stats.i_ArchangelBow.value = false, - }.statSlots[0][0].multipier = -2f; - new BaseItem(new int[][] - { - new int[] {1,4 }, - new int[] {1,3,5,6,49 }, - new int[] {22}, - new int[] {25}, - new int[] {12}, - new int[] {13}, - new int[] {1,12,13,22,25,30,53,57,65 }, - new int[] {-1 }, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_334/*The Executioner*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_335/*A sword for decapitating*/, //tr - rarity = 4, - minLevel = 25, - maxLevel = 27, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Weapon, - subtype = ItemDefinition.ItemSubtype.LongSword, - icon = Res.ResourceLoader.GetTexture(89), - }; - new BaseItem(new int[][] - { - new int[] {48 }, - new int[] {23,26,2 }, - new int[] {23,26 }, - new int[] {12,13}, - new int[] {60}, - new int[] {13,23,26}, - new int[] {23,26}, - new int[] {34,2,2,54}, - new int[] {15,14}, - new int[] {16,23,2,4,5,6}, - new int[] {45,46}, - new int[] {27,49}, - new int[] {-1}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_336/*Moon Cuirass*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_337/*A piece of armor designed for an archer. */, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_338("120")/*Landing a headshot with an arrow without the homing effect of seeking arrow at a distance greater than 120 feet deals five-fold damage, and hits the enemy two extra times*/, //tr - rarity = 7, - minLevel = 20, - maxLevel = 22, - canConsume = false, - stackSize = 1, - onEquipCallback = () => ModdedPlayer.Stats.perk_trueAimUpgrade.value = true, - onUnequipCallback = () => ModdedPlayer.Stats.perk_trueAimUpgrade.value = false, - type = ItemDefinition.ItemType.ChestArmor, - icon = Res.ResourceLoader.GetTexture(96), - }; - new BaseItem(new int[][] - { - new int[] {65 }, - new int[] {1 }, - new int[] {3}, - new int[] {5,65}, - new int[] {5,6,11,10,7,45}, - new int[] {53}, - new int[] {22}, - new int[] {1,3,4,5,31}, - new int[] {28}, - new int[] {63}, - new int[] {16}, - new int[] {-1}, - new int[] {-1}, - new int[] {-1}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_339/*Thornmail*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_340/*Spiked death on the outside, really comfy on the inside*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_341/*Thorns deal double damage*/, //tr - rarity = 7, - minLevel = 20, - maxLevel = 22, - canConsume = false, - stackSize = 1, - onEquipCallback = () => ModdedPlayer.Stats.thornsDmgMult.valueMultiplicative *= 2, - onUnequipCallback = () => ModdedPlayer.Stats.thornsDmgMult.valueMultiplicative /= 2, - type = ItemDefinition.ItemType.ChestArmor, - icon = Res.ResourceLoader.GetTexture(96), - }; - - new BaseItem(new int[][] - { - new int[] {1 }, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_342/*Rusty Polearm*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_343/*Used by the Ubersreik Five*/, //tr - rarity = 1, - minLevel = 10, - maxLevel = 16, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Weapon, - subtype = ItemDefinition.ItemSubtype.Polearm, - icon = Res.ResourceLoader.GetTexture(181), - }; - new BaseItem(new int[][] - { - new int[] {1 }, - new int[] {25,0 }, - new int[] {25 ,62,63,64}, - new int[] {6,49}, - new int[] {39,40,41,42,44,8,18,65 }, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_344/*Giant Polearm*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_345/*Used by the Sir Kruber*/, //tr - rarity = 4, - minLevel = 20, - maxLevel = 24, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Weapon, - subtype = ItemDefinition.ItemSubtype.Polearm, - icon = Res.ResourceLoader.GetTexture(181), - }; - - //Feathers - new BaseItem(new int[][] { }) - { - name = Translations.ItemDatabase_ItemDefinitions_346/*Crude Feather*/, //tr - description = - Translations.ItemDatabase_ItemDefinitions_582/*If equipped on a weapon, increases ranged damage by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.Weapon, 1).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_583/*If equipped on boots, increases movement speed by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.Boot, 1).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_584/*If equipped on a helmet, increases critical hit chance by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.Helmet, 1).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_585/*If equipped on accessories, increases ranged armor piercing by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.Amulet, 1).ToString("N") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_586/*If equipped in other slots, increases agility by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.ChestArmor, 1).ToString("N"), //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - rarity = 3, - minLevel = 20, - maxLevel = 21, - canConsume = false, - stackSize = 100, - subtype = 1, - type = ItemDefinition.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(185), - }; - new BaseItem(new int[][] { }) - { - name = Translations.ItemDatabase_ItemDefinitions_348/*Soft Feather*/, //tr - description = - Translations.ItemDatabase_ItemDefinitions_582/*If equipped on a weapon, increases ranged damage by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.Weapon, 1).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_583/*If equipped on boots, increases movement speed by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.Boot, 1).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_584/*If equipped on a helmet, increases critical hit chance by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.Helmet, 1).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_585/*If equipped on accessories, increases ranged armor piercing by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.Amulet, 1).ToString("N") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_586/*If equipped in other slots, increases agility by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.ChestArmor, 1).ToString("N"), //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - rarity = 4, - minLevel = 20, - maxLevel = 21, - canConsume = false, - stackSize = 100, - subtype = 1, - type = ItemDefinition.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(185), - }; - new BaseItem(new int[][] { }) - { - name = Translations.ItemDatabase_ItemDefinitions_349/*Ornate Feather*/, //tr - description = - Translations.ItemDatabase_ItemDefinitions_582/*If equipped on a weapon, increases ranged damage by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.Weapon, 1).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_583/*If equipped on boots, increases movement speed by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.Boot, 1).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_584/*If equipped on a helmet, increases critical hit chance by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.Helmet, 1).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_585/*If equipped on accessories, increases ranged armor piercing by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.Amulet, 1).ToString("N") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_586/*If equipped in other slots, increases agility by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.ChestArmor, 1).ToString("N"), //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - rarity = 5, - minLevel = 20, - maxLevel = 21, - canConsume = false, - stackSize = 100, - subtype = 1, - type = ItemDefinition.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(185), - }; - - new BaseItem(new int[][] { }) - { - name = Translations.ItemDatabase_ItemDefinitions_350/*Wonderful Feather*/, //tr - description = - Translations.ItemDatabase_ItemDefinitions_582/*If equipped on a weapon, increases ranged damage by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.Weapon, 1).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_583/*If equipped on boots, increases movement speed by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.Boot, 1).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_584/*If equipped on a helmet, increases critical hit chance by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.Helmet, 1).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_585/*If equipped on accessories, increases ranged armor piercing by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.Amulet, 1).ToString("N") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_586/*If equipped in other slots, increases agility by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.ChestArmor, 1).ToString("N"), //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - rarity = 6, - minLevel = 20, - maxLevel = 21, - canConsume = false, - stackSize = 100, - subtype = 1, - type = ItemDefinition.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(185), - }; - new BaseItem(new int[][] { }) - { - name = Translations.ItemDatabase_ItemDefinitions_351/*White Crow's Feather*/, //tr - description = - Translations.ItemDatabase_ItemDefinitions_582/*If equipped on a weapon, increases ranged damage by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.Weapon, 1).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_583/*If equipped on boots, increases movement speed by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.Boot, 1).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_584/*If equipped on a helmet, increases critical hit chance by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.Helmet, 1).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_585/*If equipped on accessories, increases ranged armor piercing by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.Amulet, 1).ToString("N") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_586/*If equipped in other slots, increases agility by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.ChestArmor, 1).ToString("N"), //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - rarity = 7, - minLevel = 20, - maxLevel = 21, - canConsume = false, - stackSize = 100, - subtype = 1, - type = ItemDefinition.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(185), - }; - - //-------------- Shark teeth - - new BaseItem(new int[][] { }) - { - name = Translations.ItemDatabase_ItemDefinitions_352/*Reef Shark*/, //tr - description = - Translations.ItemDatabase_ItemDefinitions_587/*If equipped on a weapon, increases melee damage by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.Weapon, 2).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_588/*If equipped on boots, decreases damage taken by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.Boot, 2).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_589/*If equipped on a helmet, increases cattack speed by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.Helmet, 2).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_590/*If equipped on accessories, increases melee armor piercing by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.Amulet, 2).ToString("N") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_591/*If equipped in other slots, increases strength by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.ChestArmor, 2).ToString("N"), //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - rarity = 3, - minLevel = 20, - maxLevel = 21, - canConsume = false, - stackSize = 100, - subtype = 2, - type = ItemDefinition.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(186), - }; - new BaseItem(new int[][] { }) - { - name = Translations.ItemDatabase_ItemDefinitions_353/*Tiger Shark Tooth*/, //tr - description = - Translations.ItemDatabase_ItemDefinitions_587/*If equipped on a weapon, increases melee damage by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.Weapon, 2).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_588/*If equipped on boots, decreases damage taken by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.Boot, 2).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_589/*If equipped on a helmet, increases cattack speed by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.Helmet, 2).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_590/*If equipped on accessories, increases melee armor piercing by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.Amulet, 2).ToString("N") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_591/*If equipped in other slots, increases strength by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.ChestArmor, 2).ToString("N"), //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - rarity = 4, - minLevel = 20, - maxLevel = 21, - canConsume = false, - stackSize = 100, - subtype = 2, - type = ItemDefinition.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(186), - }; - new BaseItem(new int[][] { }) - { - name = Translations.ItemDatabase_ItemDefinitions_354/*Whale Shark Tooth*/, //tr - description = - Translations.ItemDatabase_ItemDefinitions_587/*If equipped on a weapon, increases melee damage by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.Weapon, 2).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_588/*If equipped on boots, decreases damage taken by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.Boot, 2).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_589/*If equipped on a helmet, increases cattack speed by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.Helmet, 2).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_590/*If equipped on accessories, increases melee armor piercing by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.Amulet, 2).ToString("N") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_591/*If equipped in other slots, increases strength by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.ChestArmor, 2).ToString("N"), //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - rarity = 5, - minLevel = 20, - maxLevel = 21, - canConsume = false, - stackSize = 100, - subtype = 2, - type = ItemDefinition.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(186), - }; - - new BaseItem(new int[][] { }) - { - name = Translations.ItemDatabase_ItemDefinitions_355/*Great White Shark Tooth*/, //tr - description = - Translations.ItemDatabase_ItemDefinitions_587/*If equipped on a weapon, increases melee damage by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.Weapon, 2).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_588/*If equipped on boots, decreases damage taken by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.Boot, 2).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_589/*If equipped on a helmet, increases cattack speed by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.Helmet, 2).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_590/*If equipped on accessories, increases melee armor piercing by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.Amulet, 2).ToString("N") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_591/*If equipped in other slots, increases strength by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.ChestArmor, 2).ToString("N"), //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - rarity = 6, - minLevel = 20, - maxLevel = 21, - canConsume = false, - stackSize = 100, - subtype = 2, - type = ItemDefinition.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(186), - }; - new BaseItem(new int[][] { }) - { - name = Translations.ItemDatabase_ItemDefinitions_356/*Megalodon's Tooth*/, //tr - description = - Translations.ItemDatabase_ItemDefinitions_587/*If equipped on a weapon, increases melee damage by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.Weapon, 2).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_588/*If equipped on boots, decreases damage taken by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.Boot, 2).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_589/*If equipped on a helmet, increases cattack speed by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.Helmet, 2).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_590/*If equipped on accessories, increases melee armor piercing by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.Amulet, 2).ToString("N") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_591/*If equipped in other slots, increases strength by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.ChestArmor, 2).ToString("N"), //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - rarity = 7, - minLevel = 20, - maxLevel = 21, - canConsume = false, - stackSize = 100, - subtype = 2, - type = ItemDefinition.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(186), - }; - - //------------- Sapphires - - new BaseItem(new int[][] { }) - { - name = Translations.ItemDatabase_ItemDefinitions_357/*Uncut Sapphire*/, //tr - description = - Translations.ItemDatabase_ItemDefinitions_592/*If equipped on a weapon, increases magic damage by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.Weapon, 3).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_593/*If equipped on boots, decreases spell cost by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.Boot, 3).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_594/*If equipped on a helmet, decreases spell cooldown by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.Helmet, 3).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_595/*If equipped on accessories, increases energy on hit by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.Amulet, 3).ToString("N") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_596/*If equipped in other slots, increases intelligence by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.ChestArmor, 3).ToString("N"), //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - rarity = 3, - minLevel = 20, - maxLevel = 21, - canConsume = false, - stackSize = 100, - subtype = 3, - type = ItemDefinition.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(187), - }; - new BaseItem(new int[][] { }) - { - name = Translations.ItemDatabase_ItemDefinitions_358/*Clear Sapphire*/, //tr - description = - Translations.ItemDatabase_ItemDefinitions_592/*If equipped on a weapon, increases magic damage by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.Weapon, 3).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_593/*If equipped on boots, decreases spell cost by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.Boot, 3).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_594/*If equipped on a helmet, decreases spell cooldown by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.Helmet, 3).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_595/*If equipped on accessories, increases energy on hit by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.Amulet, 3).ToString("N") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_596/*If equipped in other slots, increases intelligence by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.ChestArmor, 3).ToString("N"), //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - rarity = 4, - minLevel = 20, - maxLevel = 21, - canConsume = false, - stackSize = 100, - subtype = 3, - type = ItemDefinition.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(187), - }; - new BaseItem(new int[][] { }) - { - name = Translations.ItemDatabase_ItemDefinitions_359/*Shiny Sapphire*/, //tr - description = - Translations.ItemDatabase_ItemDefinitions_592/*If equipped on a weapon, increases magic damage by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.Weapon, 3).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_593/*If equipped on boots, decreases spell cost by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.Boot, 3).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_594/*If equipped on a helmet, decreases spell cooldown by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.Helmet, 3).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_595/*If equipped on accessories, increases energy on hit by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.Amulet, 3).ToString("N") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_596/*If equipped in other slots, increases intelligence by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.ChestArmor, 3).ToString("N"), //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - rarity = 5, - minLevel = 20, - maxLevel = 21, - canConsume = false, - stackSize = 100, - subtype = 3, - type = ItemDefinition.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(187), - }; - - new BaseItem(new int[][] { }) - { - name = Translations.ItemDatabase_ItemDefinitions_360/*Enchanted Sapphire*/, //tr - description = - Translations.ItemDatabase_ItemDefinitions_592/*If equipped on a weapon, increases magic damage by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.Weapon, 3).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_593/*If equipped on boots, decreases spell cost by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.Boot, 3).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_594/*If equipped on a helmet, decreases spell cooldown by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.Helmet, 3).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_595/*If equipped on accessories, increases energy on hit by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.Amulet, 3).ToString("N") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_596/*If equipped in other slots, increases intelligence by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.ChestArmor, 3).ToString("N"), //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - rarity = 6, - minLevel = 20, - maxLevel = 21, - canConsume = false, - stackSize = 100, - subtype = 3, - type = ItemDefinition.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(187), - }; - new BaseItem(new int[][] { }) - { - name = Translations.ItemDatabase_ItemDefinitions_361/*Celestial Sapphire*/, //tr - description = - Translations.ItemDatabase_ItemDefinitions_592/*If equipped on a weapon, increases magic damage by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.Weapon, 3).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_593/*If equipped on boots, decreases spell cost by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.Boot, 3).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_594/*If equipped on a helmet, decreases spell cooldown by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.Helmet, 3).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_595/*If equipped on accessories, increases energy on hit by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.Amulet, 3).ToString("N") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_596/*If equipped in other slots, increases intelligence by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.ChestArmor, 3).ToString("N"), //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - rarity = 7, - minLevel = 20, - maxLevel = 21, - canConsume = false, - stackSize = 100, - subtype = 3, - type = ItemDefinition.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(187), - }; - - // -------- Moonstones - new BaseItem(new int[][] { }) - { - name = Translations.ItemDatabase_ItemDefinitions_362/*Uncut Moonstone*/, //tr - description = - Translations.ItemDatabase_ItemDefinitions_597/*If equipped on a weapon, increases all healing by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.Weapon, 4).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_598/*If equipped on boots, increases magic find by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.Boot, 4).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_599/*If equipped on a helmet, increases experience gained by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.Helmet, 4).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_600/*If equipped on accessories, increases life per second by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.Amulet, 4).ToString("N") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_601/*If equipped in other slots, increases vitality by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.ChestArmor, 4).ToString("N"), //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - rarity = 3, - minLevel = 20, - maxLevel = 21, - canConsume = false, - stackSize = 100, - subtype = 4, - type = ItemDefinition.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(188), - }; - new BaseItem(new int[][] { }) - { - name = Translations.ItemDatabase_ItemDefinitions_363/*Clear Moonstone*/, //tr - description = - Translations.ItemDatabase_ItemDefinitions_597/*If equipped on a weapon, increases all healing by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.Weapon, 4).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_598/*If equipped on boots, increases magic find by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.Boot, 4).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_599/*If equipped on a helmet, increases experience gained by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.Helmet, 4).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_600/*If equipped on accessories, increases life per second by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.Amulet, 4).ToString("N") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_601/*If equipped in other slots, increases vitality by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.ChestArmor, 4).ToString("N"), //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - rarity = 4, - minLevel = 20, - maxLevel = 21, - canConsume = false, - stackSize = 100, - subtype = 4, - type = ItemDefinition.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(188), - }; - new BaseItem(new int[][] { }) - { - name = Translations.ItemDatabase_ItemDefinitions_364/*Shiny Moonstone*/, //tr - description = - Translations.ItemDatabase_ItemDefinitions_597/*If equipped on a weapon, increases all healing by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.Weapon, 4).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_598/*If equipped on boots, increases magic find by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.Boot, 4).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_599/*If equipped on a helmet, increases experience gained by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.Helmet, 4).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_600/*If equipped on accessories, increases life per second by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.Amulet, 4).ToString("N") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_601/*If equipped in other slots, increases vitality by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.ChestArmor, 4).ToString("N"), //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - rarity = 5, - minLevel = 20, - maxLevel = 21, - canConsume = false, - stackSize = 100, - subtype = 4, - type = ItemDefinition.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(188), - }; - - new BaseItem(new int[][] { }) - { - name = Translations.ItemDatabase_ItemDefinitions_365/*Enchanted Moonstone*/, //tr - description = - Translations.ItemDatabase_ItemDefinitions_597/*If equipped on a weapon, increases all healing by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.Weapon, 4).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_598/*If equipped on boots, increases magic find by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.Boot, 4).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_599/*If equipped on a helmet, increases experience gained by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.Helmet, 4).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_600/*If equipped on accessories, increases life per second by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.Amulet, 4).ToString("N") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_601/*If equipped in other slots, increases vitality by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.ChestArmor, 4).ToString("N"), //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - rarity = 6, - minLevel = 20, - maxLevel = 21, - canConsume = false, - stackSize = 100, - subtype = 4, - type = ItemDefinition.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(188), - }; - new BaseItem(new int[][] { }) - { - name = Translations.ItemDatabase_ItemDefinitions_366/*Celestial Moonstone*/, //tr - description = - Translations.ItemDatabase_ItemDefinitions_597/*If equipped on a weapon, increases all healing by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.Weapon, 4).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_598/*If equipped on boots, increases magic find by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.Boot, 4).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_599/*If equipped on a helmet, increases experience gained by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.Helmet, 4).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_600/*If equipped on accessories, increases life per second by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.Amulet, 4).ToString("N") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_601/*If equipped in other slots, increases vitality by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.ChestArmor, 4).ToString("N"), //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - rarity = 7, - minLevel = 20, - maxLevel = 21, - canConsume = false, - stackSize = 100, - subtype = 4, - type = ItemDefinition.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(188), - }; - - // ----------------- Ores - - new BaseItem(new int[][] { }) - { - name = Translations.ItemDatabase_ItemDefinitions_367/*Lead Ore*/, //tr - description = - Translations.ItemDatabase_ItemDefinitions_602/*If equipped on a weapon, increases crit damage by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.Weapon, 5).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_603/*If equipped on boots, increases resistance to magic by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.Boot, 5).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_604/*If equipped on a helmet, increases health by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.Helmet, 5).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_605/*If equipped on accessories, increases thorns by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.Amulet, 5).ToString("N") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_606/*If equipped in other slots, increases armor by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.ChestArmor, 5).ToString("N"), //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - rarity = 3, - minLevel = 20, - maxLevel = 21, - canConsume = false, - stackSize = 100, - subtype = 5, - type = ItemDefinition.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(184), - }; - new BaseItem(new int[][] { }) - { - name = Translations.ItemDatabase_ItemDefinitions_368/*Vanadium Ore*/, //tr - description = - Translations.ItemDatabase_ItemDefinitions_602/*If equipped on a weapon, increases crit damage by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.Weapon, 5).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_603/*If equipped on boots, increases resistance to magic by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.Boot, 5).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_604/*If equipped on a helmet, increases health by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.Helmet, 5).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_605/*If equipped on accessories, increases thorns by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.Amulet, 5).ToString("N") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_606/*If equipped in other slots, increases armor by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.ChestArmor, 5).ToString("N"), //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - rarity = 4, - minLevel = 20, - maxLevel = 21, - canConsume = false, - stackSize = 100, - subtype = 5, - type = ItemDefinition.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(184), - }; - new BaseItem(new int[][] { }) - { - name = Translations.ItemDatabase_ItemDefinitions_369/*Titanium Ore*/, //tr - description = - Translations.ItemDatabase_ItemDefinitions_602/*If equipped on a weapon, increases crit damage by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.Weapon, 5).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_603/*If equipped on boots, increases resistance to magic by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.Boot, 5).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_604/*If equipped on a helmet, increases health by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.Helmet, 5).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_605/*If equipped on accessories, increases thorns by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.Amulet, 5).ToString("N") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_606/*If equipped in other slots, increases armor by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.ChestArmor, 5).ToString("N"), //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - rarity = 5, - - minLevel = 20, - maxLevel = 21, - canConsume = false, - stackSize = 100, - subtype = 5, - type = ItemDefinition.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(184), - }; - - new BaseItem(new int[][] { }) - { - name = Translations.ItemDatabase_ItemDefinitions_370/*Chromium Ore*/, //tr - description = - Translations.ItemDatabase_ItemDefinitions_602/*If equipped on a weapon, increases crit damage by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.Weapon, 5).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_603/*If equipped on boots, increases resistance to magic by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.Boot, 5).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_604/*If equipped on a helmet, increases health by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.Helmet, 5).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_605/*If equipped on accessories, increases thorns by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.Amulet, 5).ToString("N") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_606/*If equipped in other slots, increases armor by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.ChestArmor, 5).ToString("N"), //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - rarity = 6, - minLevel = 20, - maxLevel = 21, - canConsume = false, - stackSize = 100, - subtype = 5, - type = ItemDefinition.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(184), - }; - new BaseItem(new int[][] { }) - { - name = Translations.ItemDatabase_ItemDefinitions_371/*Tungsten Ore*/, //tr - description = - Translations.ItemDatabase_ItemDefinitions_602/*If equipped on a weapon, increases crit damage by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.Weapon, 5).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_603/*If equipped on boots, increases resistance to magic by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.Boot, 5).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_604/*If equipped on a helmet, increases health by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.Helmet, 5).ToString("P") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_605/*If equipped on accessories, increases thorns by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.Amulet, 5).ToString("N") + "\n" + //tr - Translations.ItemDatabase_ItemDefinitions_606/*If equipped in other slots, increases armor by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.ChestArmor, 5).ToString("N"), //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr - rarity = 7, - minLevel = 20, - maxLevel = 21, - canConsume = false, - stackSize = 100, - subtype = 5, - type = ItemDefinition.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(184), - }; - - //This is the new better way of defining items, no longer uses item ids, now uses enum like in C++, the enum is Stats, you can find it in ItemDatabase_StatDefinitons.cs - new BaseItem(new Stat[][] - { - new [] {MELEE_DMG_FROM_STR}, - new [] {STRENGTH}, - new [] {BASE_MELEE_DAMAGE,MELEE_DAMAGE_INCREASE}, - new [] {MELEE_ARMOR_PIERCING,ARMOR_PIERCING,ALL_ATTRIBUTES}, - new [] {ATTACK_COST_REDUCTION,ATTACKSPEED}, - new [] {ATTACKSPEED}, - new [] {ALL_ATTRIBUTES,MELEE_WEAPON_RANGE,VITALITY,MAX_LIFE}, - new [] {ENERGY_ON_HIT,VITALITY,LIFE_ON_HIT } - }) - { - name = Translations.ItemDatabase_ItemDefinitions_372/*Knife on a stick*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_373/*Kasper named this item, his fault*/, //tr - rarity = 5, - minLevel = 30, - maxLevel = 34, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Weapon, - subtype = ItemDefinition.ItemSubtype.Polearm, - icon = Res.ResourceLoader.GetTexture(181), - }; - new BaseItem(new Stat[][] - { - new [] {STRENGTH}, - new [] {STRENGTH,ALL_ATTRIBUTES,MELEE_ARMOR_PIERCING,MELEE_DAMAGE_INCREASE,COOLDOWN_REDUCTION,SPELL_DAMAGE_MULTIPLIER}, - new [] {MAX_LIFE,VITALITY,MAX_LIFE_MULT,ALL_ATTRIBUTES}, - new [] {MELEE_DAMAGE_INCREASE,DAMAGE_REDUCTION}, - new [] {THORNS}, - new [] {VITALITY,LIFE_REGEN_BASE,LIFE_REGEN_MULT}, - new [] {VITALITY,LIFE_REGEN_BASE,LIFE_REGEN_MULT,THORNS}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ENERGY_REGEN_BASE,MAX_ENERGY,DODGE_CHANCE,ARMOR,}, - new [] {STRENGTH,INTELLIGENCE,ARMOR,ARMOR_PIERCING,THORNS,} - }) - { - name = Translations.ItemDatabase_ItemDefinitions_374/*Fists of Nails*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_375/*Swiss sheese makers*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_376("900%")/*Gain 5 thorns per vitality*/, //tr - rarity = 7, - minLevel = 20, - maxLevel = 22, - canConsume = false, - stackSize = 1, - onEquipCallback = () => ModdedPlayer.Stats.thornsPerVit.Add(9), - onUnequipCallback = () => ModdedPlayer.Stats.thornsPerVit.Sub(9), - type = ItemDefinition.ItemType.Glove, - icon = Res.ResourceLoader.GetTexture(86), - }; - new BaseItem(new int[][] - { - new int[] {1000}, - new int[] {1001}, - new int[] {1002}, - new int[] {1003}, - new int[] {1004}, - new int[] {1,2,3,4,5,6 }, - new int[] {-1 }, - new int[] {-1 }, - new int[] {-1 }, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_377/*Cargo Shorts MK2*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_378/*Deepest pockets out there*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_379/*Improved cargo pants. Twice as many pockets, and since they didnt fit on the outside, they are inside. They are still ugly as hell tho*/, //tr - rarity = 4, - minLevel = 30, - maxLevel = 33, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Pants, - icon = Res.ResourceLoader.GetTexture(87), - }; - new BaseItem(new Stat[][] - { - new [] {INTELLIGENCE,AGILITY}, - new [] {LOOT_QUANTITY,SPELL_DAMAGE_MULTIPLIER,BASE_SPELL_DAMAGE}, - new [] {SPELL_DAMAGE_MULTIPLIER,BASE_SPELL_DAMAGE}, - new [] {MAX_ENERGY_FROM_AGILITY,SPELL_DMG_FROM_INT,RANGED_DMG_FROM_AGI}, - new [] {ARMOR}, - new [] {VITALITY,LIFE_REGEN_BASE,LIFE_REGEN_MULT,INTELLIGENCE,AGILITY,STRENGTH,ALL_ATTRIBUTES}, - new [] {COOLDOWN_REDUCTION,SPELL_COST_REDUCTION,SPELL_COST_TO_STAMINA,MOVEMENT_SPEED,DAMAGE_REDUCTION}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {DODGE_CHANCE,ARMOR,BASE_SPELL_DAMAGE,BASE_RANGED_DAMAGE}, - new [] {BASE_RANGED_DAMAGE,RANGED_ARMOR_PIERCING,RANGED_DAMAGE_INCREASE} - }) - { - name = Translations.ItemDatabase_ItemDefinitions_380/*Aezyn*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_381/*Enchanted with magic as strong as power swing. It's purpose? Hit harder.*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_382("1666%")/*Magic arrow damage scaling is increased by 666%*/, //tr - rarity = 7, - minLevel = 20, - maxLevel = 22, - canConsume = false, - stackSize = 1, - onEquipCallback = () => ModdedPlayer.Stats.spell_magicArrowDamageScaling.Add(16.66f), - onUnequipCallback = () => ModdedPlayer.Stats.spell_magicArrowDamageScaling.Sub(16.66f), - type = ItemDefinition.ItemType.Bracer, - icon = Res.ResourceLoader.GetTexture(93), - }; - new BaseItem(new Stat[][] - { - new [] {INTELLIGENCE,AGILITY}, - new [] {CRIT_CHANCE}, - new [] {CRIT_DAMAGE}, - new [] {VITALITY,LIFE_REGEN_BASE,LIFE_REGEN_MULT,INTELLIGENCE,AGILITY,STRENGTH,ALL_ATTRIBUTES}, - new [] {COOLDOWN_REDUCTION,SPELL_COST_REDUCTION,SPELL_COST_TO_STAMINA,MOVEMENT_SPEED,DAMAGE_REDUCTION}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {DODGE_CHANCE,ARMOR,BASE_SPELL_DAMAGE,BASE_RANGED_DAMAGE}, - new [] {BASE_RANGED_DAMAGE,RANGED_ARMOR_PIERCING,RANGED_DAMAGE_INCREASE} - }) - { - name = Translations.ItemDatabase_ItemDefinitions_383/*Punny's Reflective Ring*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_381/*Enchanted with magic as strong as power swing. It's purpose? Hit harder.*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_384/*Magic arrow is shot in volleys. This effect can stack.*/, //tr - rarity = 7, - minLevel = 20, - maxLevel = 22, - canConsume = false, - stackSize = 1, - onEquipCallback = () => ModdedPlayer.Stats.spell_magicArrowVolleyCount.Add(3), - onUnequipCallback = () => ModdedPlayer.Stats.spell_magicArrowVolleyCount.Sub(3), - type = ItemDefinition.ItemType.Ring, - icon = Res.ResourceLoader.GetTexture(90), - }; - new BaseItem(new int[][] - { - new int[] {39,0}, - new int[] {43,0}, - new int[] {67}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_385/*Eyepatch*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_386/*A wise man once said:*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_387/*Everyone thinks I'm just a one-eyed bloody monster, god damnit... (sobbing)*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_388/*Explosion damage is also applied when performing jump attacks*/, //tr - rarity = 0, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Helmet, - icon = Res.ResourceLoader.GetTexture(91), - }; - new BaseItem(new Stat[][] - { - new [] {RANGED_ARMOR_PIERCING}, - new [] {AGILITY}, - new [] {BASE_RANGED_DAMAGE,RANGED_DAMAGE_INCREASE}, - new [] {THROWN_SPEAR_DAMAGE}, - new [] {PROJECTILE_SPEED}, - new [] {ALL_ATTRIBUTES,PROJECTILE_SIZE,LESSERAGILITY}, - new [] {ENERGY_ON_HIT,VITALITY,LIFE_ON_HIT } - }) - { - name = Translations.ItemDatabase_ItemDefinitions_389/*Javelin*/, //tr - rarity = 5, - minLevel = 30, - maxLevel = 34, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Weapon, - subtype = ItemDefinition.ItemSubtype.Polearm, - icon = Res.ResourceLoader.GetTexture(181), - }; - new BaseItem(new Stat[][] - { - new [] {STRENGTH}, - new [] {MAX_LIFE, VITALITY,MAX_LIFE_MULT}, - new [] {MELEE_ARMOR_PIERCING, MELEE_DAMAGE_INCREASE,BASE_MELEE_DAMAGE}, - new [] {MELEE_DAMAGE_INCREASE,BASE_MELEE_DAMAGE}, - new [] {ATTACKSPEED, CRIT_DAMAGE,CRIT_CHANCE}, - new [] {MAX_ENERGY_FROM_AGILITY,MAX_ENERGY_MULT,ENERGY_ON_HIT,LIFE_ON_HIT,LIFE_REGEN_BASE,LIFE_REGEN_MULT,STAMINA_REGEN_BASE,STAMINA_AND_ENERGY_REGEN_MULT}, - new [] {ARMOR,THORNS,DAMAGE_REDUCTION,MAX_LIFE_MULT}, - new [] {ALL}, - new [] {ALL}, - - }) - { - name = Translations.ItemDatabase_ItemDefinitions_390/*Warplate*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_391/*Enchanted with the power of the GOD's armor. It's purpose? Hit harder, daddy.*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_392/*Strength comes from the power of will, the stronger the will the stronger you are*/, //tr - rarity = 6, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.ChestArmor, - icon = Res.ResourceLoader.GetTexture(96), - }; - { - var SomeItem = new BaseItem(new Stat[][] - { - new [] {STRENGTH}, - new [] {MAX_LIFE, VITALITY,MAX_HEALTH_FROM_VITALITY,MAX_LIFE_MULT}, - new [] {MELEE_ARMOR_PIERCING, MELEE_DAMAGE_INCREASE,BASE_MELEE_DAMAGE,ATTACKSPEED}, - new [] {SPELL_COST_REDUCTION, CRIT_DAMAGE,CRIT_CHANCE}, - new [] {ALL}, - new [] {STRENGTH, THORNS}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_393/*Torso of Strength*/, //tr - - rarity = 4, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.ChestArmor, - icon = Res.ResourceLoader.GetTexture(96), - }; - SomeItem.statSlots[0][0].multipier = 2; - } - { - var demoVestItem = new BaseItem(new Stat[][] - { - new [] {EXPLOSION_DAMAGE}, - new [] {AGILITY,INTELLIGENCE, ALL_ATTRIBUTES}, - new [] {MAX_LIFE, VITALITY, LIFE_ON_HIT}, - new [] {ALL_RECOVERY}, - new [] {ALL}, - new [] {MELEE_WEAPON_RANGE,ENERGY_ON_HIT,ARMOR_PIERCING, DODGE_CHANCE}, - new [] {MOVEMENT_SPEED,BLOCK,LOOT_QUANTITY}, - - }) - { - name = Translations.ItemDatabase_ItemDefinitions_394/*Demoman's Vest*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_395/*What makes me a good demoman? If I were a bad demoman, I wouldn't be sittin' here discussin' it with you, now would I?! LET'S DO IT! Not one of you's gonna survive this! One crossed wire, one wayward pinch of potassium chlorate, one errant twitch, and KA-BLOOIE! I got a manky eye. I'm a black Scottish cyclops. They got more fecking sea monsters in the great Lochett Ness than they got the likes of me. So! T'all you fine dandies, so proud, so cocksure, prancin' about with your heads full of eyeballs... come and get me, I say! I'll be waitin' on you with a whiff of the old brimstone! I'm a Grimm bloody fable with an unhappy bloody end! Oh, they're going to have to glue you back together...IN HELL!*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_392/*Strength comes from the power of will, the stronger the will the stronger you are*/, //tr - rarity = 5, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.ChestArmor, - icon = Res.ResourceLoader.GetTexture(96), - }; - demoVestItem.statSlots[0][0].multipier = 7; - - } - new BaseItem(new Stat[][] - { - new [] {STRENGTH,ALL_ATTRIBUTES,BASE_MELEE_DAMAGE}, - new [] {MAX_LIFE, VITALITY,DAMAGE_REDUCTION,MELEE_WEAPON_RANGE}, - new [] {MELEE_ARMOR_PIERCING, MELEE_DAMAGE_INCREASE}, - new [] {MELEE_DAMAGE_INCREASE,MELEE_DMG_FROM_STR}, - new [] {SPELL_COST_REDUCTION, CRIT_DAMAGE}, - new [] {ALL}, - new [] {STRENGTH,THORNS,BASE_MELEE_DAMAGE,CRIT_CHANCE,ATTACKSPEED,MELEE_WEAPON_RANGE}, - new [] {ARMOR}, - - }) - { - name = Translations.ItemDatabase_ItemDefinitions_396/*Brawler's Gloves*/, //tr - rarity = 6, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Glove, - icon = Res.ResourceLoader.GetTexture(86), - }; - new BaseItem(new Stat[][] - { - new [] {ALL_ATTRIBUTES,STRENGTH,AGILITY,INTELLIGENCE}, - new [] {MAX_LIFE, VITALITY,STRENGTH,INTELLIGENCE}, - new [] {MELEE_ARMOR_PIERCING, MELEE_DAMAGE_INCREASE,RANGED_DAMAGE_INCREASE,BASE_RANGED_DAMAGE,RANGED_ARMOR_PIERCING}, - new [] {SPELL_COST_REDUCTION, CRIT_DAMAGE,CRIT_CHANCE,SPELL_DAMAGE_MULTIPLIER,COOLDOWN_REDUCTION}, - new [] {ARMOR_PIERCING}, - new [] {ALL}, - new [] {ARMOR,DAMAGE_REDUCTION,ELITE_DAMAGE_REDUCTION,VITALITY,LESSERVITALITY}, - - }) - { - name = Translations.ItemDatabase_ItemDefinitions_397/*Nail Gloves*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_398/*Enchanted with the power of penetration. It's purpose? Hit harder.*/, //tr - rarity = 3, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Glove, - icon = Res.ResourceLoader.GetTexture(86), - }; - - new BaseItem(new Stat[][] - { - new [] {ATTACKSPEED}, - new [] {RANGED_DAMAGE_INCREASE,RANGED_DMG_FROM_AGI}, - new [] {BASE_RANGED_DAMAGE}, - new [] {BASE_RANGED_DAMAGE,NONE}, - new [] {PROJECTILE_SIZE,LESSERAGILITY,AGILITY}, - new [] {PROJECTILE_SPEED,CRIT_CHANCE,CRIT_DAMAGE}, - new [] {AGILITY,NONE}, - new [] {RANGED_ARMOR_PIERCING, ARMOR_PIERCING,ENERGY_ON_HIT}, - new [] {ALL}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_399/*Hand-held Ballista*/, //tr - rarity = 5, - minLevel = 10, - maxLevel = 12, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Weapon, - subtype = ItemDefinition.ItemSubtype.Greatbow, - icon = Res.ResourceLoader.GetTexture(170), - - }.statSlots[0][0].multipier = -2f; - - new BaseItem(new Stat[][] - { - new [] {STRENGTH,LESSERSTRENGTH}, - new [] {MAX_LIFE, VITALITY,MELEE_DMG_FROM_STR,ARMOR}, - new [] {MELEE_ARMOR_PIERCING, MELEE_DAMAGE_INCREASE}, - - }) - { - name = Translations.ItemDatabase_ItemDefinitions_400/*Kuldars's Scarf*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_401/*Strength comes from the power of will*/, //tr - rarity = 2, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(100), - }; - new BaseItem(new Stat[][] - { - new [] {MELEE_DAMAGE_INCREASE,MELEE_DMG_FROM_STR}, - new [] {MAX_LIFE, VITALITY,MELEE_DAMAGE_INCREASE,BASE_MELEE_DAMAGE}, - new [] {MELEE_ARMOR_PIERCING, MELEE_DAMAGE_INCREASE,MELEE_WEAPON_RANGE,ARMOR}, - new [] {SPELL_COST_REDUCTION, CRIT_DAMAGE,CRIT_CHANCE}, - new [] {ALL}, - new [] {STRENGTH,LESSERSTRENGTH}, - - }) - { - name = Translations.ItemDatabase_ItemDefinitions_402/*Sword Devil's Scarf*/, //tr - rarity = 4, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(100), - }; - new BaseItem(new Stat[][] - { - new [] {STRENGTH}, - new [] {MAX_LIFE, VITALITY}, - new [] {MELEE_ARMOR_PIERCING, MELEE_DAMAGE_INCREASE}, - new [] {SPELL_COST_REDUCTION, CRIT_DAMAGE}, - new [] {STRENGTH}, - - }) - { - name = Translations.ItemDatabase_ItemDefinitions_403/*Peasant's Scarf*/, //tr - rarity = 3, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(100), - }; - new BaseItem(new Stat[][] - { - new [] {EXPLOSION_DAMAGE}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {EXPLOSION_DAMAGE}, - new [] {EXPLOSION_DAMAGE}, - new [] {EXPLOSION_DAMAGE,NONE}, - - }) - { - name = Translations.ItemDatabase_ItemDefinitions_404/*Bombastinc Choker*/, //tr - rarity = 6, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(100), - }.statSlots[0][0].multipier = 7f; - new BaseItem(new Stat[][] - { - new [] {STRENGTH,VITALITY,AGILITY,ALL_ATTRIBUTES,INTELLIGENCE}, - new [] {MAX_ENERGY_FROM_AGILITY,MELEE_DMG_FROM_STR,SPELL_DMG_FROM_INT,RANGED_DMG_FROM_AGI,MAX_HEALTH_FROM_VITALITY}, - new [] {ARMOR,DAMAGE_REDUCTION}, - new [] { CRIT_CHANCE, CRIT_DAMAGE}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {EXPLOSION_DAMAGE}, - new [] {EXPLOSION_DAMAGE,NONE}, - new [] {EXPLOSION_DAMAGE,NONE}, - - }) - { - name = Translations.ItemDatabase_ItemDefinitions_405/*Explosive Touch*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_406/*Enchanted with the power of the explosions armor. It's purpose? Become the true explosion master*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_407/*Strength comes from the power of will, the stronger the will the stronger the explosion*/, //tr - rarity = 6, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Glove, - icon = Res.ResourceLoader.GetTexture(86), - }; - new BaseItem(new Stat[][] - { - new [] {ARMOR}, - new [] {MAX_LIFE, VITALITY}, - new [] {CRIT_CHANCE, CRIT_DAMAGE,ATTACKSPEED,BASE_SPELL_DAMAGE,STAMINA_REGEN_BASE}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL_ATTRIBUTES}, - new [] {EXPLOSION_DAMAGE}, - new [] {EXPLOSION_DAMAGE}, - - }) - { - name = Translations.ItemDatabase_ItemDefinitions_408/*Volatile Bracers*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_406/*Enchanted with the power of the explosions armor. It's purpose? Become the true explosion master*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_407/*Strength comes from the power of will, the stronger the will the stronger the explosion*/, //tr - rarity = 6, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Bracer, - icon = Res.ResourceLoader.GetTexture(93), - }; - new BaseItem(new Stat[][] - { - new [] {ARMOR}, - new [] {MAX_LIFE, VITALITY}, - new [] {CRIT_CHANCE, CRIT_DAMAGE,ATTACKSPEED,BASE_SPELL_DAMAGE,STAMINA_REGEN_BASE}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {EMPTYSOCKET}, - new [] {EMPTYSOCKET}, - new [] {EXPLOSION_DAMAGE}, - new [] {EXPLOSION_DAMAGE}, - - }) - { - name = Translations.ItemDatabase_ItemDefinitions_409/*Volatile Helmet*/, //tr - - rarity = 6, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Helmet, - icon = Res.ResourceLoader.GetTexture(91), - }; - new BaseItem(new Stat[][] - { - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {MAX_LIFE, VITALITY,ARMOR,MAX_LIFE_MULT,MAX_ENERGY_MULT,MAX_HEALTH_FROM_VITALITY,THORNS,ELITE_DAMAGE_REDUCTION}, - new [] {JUMP_POWER}, - new [] {MOVEMENT_SPEED}, - new [] {EMPTYSOCKET}, - new [] {EMPTYSOCKET}, - new [] {EXPLOSION_DAMAGE}, - new [] {EXPLOSION_DAMAGE}, - - }) - { - name = Translations.ItemDatabase_ItemDefinitions_410/*Gunpowder filled socks*/, //tr - rarity = 6, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Boot, - icon = Res.ResourceLoader.GetTexture(85), - }; - new BaseItem(new Stat[][] - { - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {MAX_LIFE, VITALITY,ARMOR,MAX_LIFE_MULT,MAX_ENERGY_MULT,MAX_HEALTH_FROM_VITALITY,THORNS,ELITE_DAMAGE_REDUCTION}, - new [] {EMPTYSOCKET}, - new [] {EMPTYSOCKET}, - new [] {EXPLOSION_DAMAGE}, - new [] {EXPLOSION_DAMAGE}, - - }) - { - name = Translations.ItemDatabase_ItemDefinitions_411/*Red Skirt*/, //tr - rarity = 5, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Pants, - icon = Res.ResourceLoader.GetTexture(87), - }; - new BaseItem(new Stat[][] - { - new [] {ALL}, - new [] {MAX_LIFE, VITALITY,ARMOR}, - new [] {MELEE_ARMOR_PIERCING, RANGED_ARMOR_PIERCING}, - new [] {ARMOR, ALL_ATTRIBUTES,VITALITY,LESSERVITALITY}, - new [] {EXTRA_CARRIED_STICKS,EXTRA_CARRIED_ROCKS,EXTRA_CARRIED_ROPES}, - new [] {EXPLOSION_DAMAGE}, - new [] {EXPLOSION_DAMAGE}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_412/*Gunpowder Boxers*/, //tr - rarity = 4, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Pants, - icon = Res.ResourceLoader.GetTexture(87), - }; - - new BaseItem(new Stat[][] - { - new [] {EXPLOSION_DAMAGE}, - new [] {EXPLOSION_DAMAGE}, - new [] {EXPLOSION_DAMAGE}, - new [] {EXPLOSION_DAMAGE}, - new [] {EXPLOSION_DAMAGE}, - new [] {EXPLOSION_DAMAGE}, - new [] {EXPLOSION_DAMAGE,NONE}, - new [] {EXPLOSION_DAMAGE,NONE}, - new [] {ARMOR}, - new [] {MAX_LIFE_MULT}, - - }) - { - name = Translations.ItemDatabase_ItemDefinitions_413/*Jihad Vest*/, //tr - rarity = 5, - minLevel = 1, - maxLevel = 4, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.ChestArmor, - icon = Res.ResourceLoader.GetTexture(96), - }; - - new BaseItem(new Stat[][] - { - new [] {CRIT_CHANCE}, - new [] {LOOT_QUANTITY,NONE,EXP_GAIN_MULT}, - new [] {RANGED_DAMAGE_INCREASE,MELEE_DAMAGE_INCREASE}, - new [] {STRENGTH,AGILITY}, - new [] {ALL}, - new [] {CHANCE_ON_HIT_TO_BLEED}, - new [] {CHANCE_ON_HIT_TO_SLOW}, - new [] {CHANCE_ON_HIT_TO_WEAKEN}, - new [] {MAX_ENERGY_FROM_AGILITY,FIRE_DAMAGE,CRIT_DAMAGE,RANGED_DMG_FROM_AGI,MELEE_DMG_FROM_STR}, - - - }) - { - name = Translations.ItemDatabase_ItemDefinitions_414/*Ring of Fortune*/, //tr - rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 10, - maxLevel = 14, - canConsume = false, - stackSize = 1, //stacking in inventory like in mc, one means single item - type = ItemDefinition.ItemType.Ring, - icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that - }; - new BaseItem(new Stat[][] - { - new [] {SPELL_DAMAGE_MULTIPLIER}, - new [] {INTELLIGENCE}, - new [] {COOLDOWN_REDUCTION}, - new [] {ALL_ATTRIBUTES, INTELLIGENCE,SPELL_DAMAGE_MULTIPLIER}, - new [] {SPELL_DMG_FROM_INT,MAX_ENERGY_FROM_AGILITY}, - new [] {BASE_SPELL_DAMAGE}, - new [] {MAX_ENERGY_MULT,ENERGY_ON_HIT,ENERGY_REGEN_BASE}, - new [] {FIRE_DAMAGE,SPELL_COST_REDUCTION,SPELL_COST_TO_STAMINA}, - - - }) - { - name = Translations.ItemDatabase_ItemDefinitions_415/*Mana Ring*/, //tr - rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 10, - maxLevel = 14, - canConsume = false, - stackSize = 1, //stacking in inventory like in mc, one means single item - type = ItemDefinition.ItemType.Ring, - icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that - }; - new BaseItem(new Stat[][] - { - new [] {MELEE_DMG_FROM_STR,ALL_ATTRIBUTES,STAMINA_REGEN_BASE,STAMINA_AND_ENERGY_REGEN_MULT,DODGE_CHANCE}, - new [] {STRENGTH,LESSERSTRENGTH,VITALITY,ARMOR}, - new [] {MELEE_WEAPON_RANGE,BASE_RANGED_DAMAGE,BASE_MELEE_DAMAGE}, - new [] {VITALITY}, - new [] {MAX_HEALTH_FROM_VITALITY,MAX_ENERGY_FROM_AGILITY}, - new [] {LIFE_REGEN_BASE}, - new [] {LIFE_ON_HIT}, - new [] {ENERGY_ON_HIT,ENERGY_REGEN_BASE,INTELLIGENCE,AGILITY}, - new [] {MAX_LIFE}, - new [] {MAX_LIFE_MULT,CRIT_CHANCE}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_416/*Life Ring*/, //tr - rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare - minLevel = 10, - maxLevel = 14, - canConsume = false, - stackSize = 1, //stacking in inventory like in mc, one means single item - type = ItemDefinition.ItemType.Ring, - icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that - }; - new BaseItem(new Stat[][] - { - new [] {STRENGTH}, - new [] {MOVEMENT_SPEED,DODGE_CHANCE,DAMAGE_REDUCTION}, - new [] {VITALITY,MAX_HEALTH_FROM_VITALITY,MAX_LIFE,MAX_LIFE_MULT,ARMOR}, - new [] {INTELLIGENCE,MAX_ENERGY_FROM_AGILITY,MAX_ENERGY_MULT,MAX_ENERGY,BASE_MELEE_DAMAGE,MELEE_DAMAGE_INCREASE,ARMOR,DAMAGE_REDUCTION}, - new [] {MELEE_ARMOR_PIERCING,MELEE_DAMAGE_INCREASE}, - new [] {ARMOR,ATTACKSPEED,STRENGTH}, - new [] {BASE_MELEE_DAMAGE}, - new [] {BASE_MELEE_DAMAGE,MELEE_DAMAGE_INCREASE}, - new [] {MELEE_DAMAGE_INCREASE,MELEE_DMG_FROM_STR}, - new [] {CRIT_CHANCE,MELEE_WEAPON_RANGE,ATTACKSPEED}, - new [] {CRIT_DAMAGE, MELEE_DAMAGE_INCREASE, STRENGTH}, - new [] {ENERGY_ON_HIT,ENERGY_REGEN_BASE,MAX_LIFE}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_417/*Moritz's Gear*/, //tr - rarity = 6, - minLevel = 5, - maxLevel = 6, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.ChestArmor, - icon = Res.ResourceLoader.GetTexture(96), - }; - new BaseItem(new Stat[][] - { - new [] {STRENGTH,BASE_MELEE_DAMAGE,MELEE_DAMAGE_INCREASE,ATTACKSPEED}, - new [] {MOVEMENT_SPEED,DODGE_CHANCE,DAMAGE_REDUCTION}, - new [] {VITALITY,MAX_HEALTH_FROM_VITALITY,MAX_LIFE,MAX_LIFE_MULT,MELEE_ARMOR_PIERCING}, - new [] {INTELLIGENCE,STRENGTH,CRIT_DAMAGE,MAX_ENERGY_MULT,MAX_ENERGY}, - new [] {BASE_MELEE_DAMAGE}, - new [] {BASE_MELEE_DAMAGE,MELEE_DAMAGE_INCREASE}, - new [] {MELEE_DAMAGE_INCREASE,MELEE_DMG_FROM_STR}, - new [] {CRIT_CHANCE,MELEE_WEAPON_RANGE}, - new [] {CRIT_DAMAGE, MELEE_DAMAGE_INCREASE, STRENGTH}, - new [] {ENERGY_ON_HIT,ENERGY_REGEN_BASE,MAX_LIFE}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_418/*Band of Hurting*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_419/*A ring for a warrior*/, //tr - rarity = 6, - minLevel = 5, - maxLevel = 6, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Ring, - icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that - }; - - new BaseItem(new Stat[][] - { - new [] {AGILITY,RANGED_DAMAGE_INCREASE}, - new [] {ALL_ATTRIBUTES, ARMOR,MAX_LIFE_MULT}, - new [] {CRIT_CHANCE}, - new [] {CRIT_DAMAGE,NONE}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_420/*Straw Hat*/, //tr - rarity = 2, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Helmet, - icon = Res.ResourceLoader.GetTexture(91), - }; - new BaseItem(new Stat[][] - { - new [] {INTELLIGENCE}, - new [] {ALL_ATTRIBUTES, ARMOR,ENERGY_ON_HIT}, - new [] {BASE_SPELL_DAMAGE}, - new [] {FIRE_DAMAGE,SPELL_DAMAGE_MULTIPLIER,SPELL_COST_REDUCTION}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_318/*Hood*/, //tr - rarity = 2, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Helmet, - icon = Res.ResourceLoader.GetTexture(91), - }; - new BaseItem(new Stat[][] - { - new [] {THROWN_SPEAR_DAMAGE}, - new [] {AGILITY}, - new [] {STAMINA_REGEN_BASE}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_421/*Rusty Javelin*/, //tr - rarity = 3, - minLevel = 10, - maxLevel = 16, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Weapon, - subtype = ItemDefinition.ItemSubtype.Polearm, - icon = Res.ResourceLoader.GetTexture(181), - }; - new BaseItem(new Stat[][] - { - new [] {INTELLIGENCE}, - new [] {DODGE_CHANCE,DAMAGE_REDUCTION}, - new [] {VITALITY,MAX_HEALTH_FROM_VITALITY,MAX_LIFE,MAX_LIFE_MULT}, - new [] {SPELL_DMG_FROM_INT}, - new [] {SPELL_COST_REDUCTION,COOLDOWN_REDUCTION}, - new [] {SPELL_COST_REDUCTION,COOLDOWN_REDUCTION}, - new [] {ENERGY_REGEN_BASE,MAX_ENERGY_MULT,MAX_ENERGY_FROM_AGILITY}, - new [] {BASE_SPELL_DAMAGE,SPELL_DAMAGE_MULTIPLIER,INTELLIGENCE}, - new [] {BASE_SPELL_DAMAGE,SPELL_DAMAGE_MULTIPLIER,INTELLIGENCE}, - new [] {BASE_SPELL_DAMAGE,SPELL_DAMAGE_MULTIPLIER,INTELLIGENCE}, - new [] {BASE_SPELL_DAMAGE,SPELL_DAMAGE_MULTIPLIER,INTELLIGENCE}, - new [] {ENERGY_ON_HIT,ENERGY_REGEN_BASE,MAX_LIFE}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_422/*Star Robe*/, //tr - rarity = 6, - minLevel = 5, - maxLevel = 6, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.ChestArmor, - icon = Res.ResourceLoader.GetTexture(96), - }; - new BaseItem(new Stat[][] - { - new [] {ATTACKSPEED}, - new [] {BASE_SPELL_DAMAGE}, - new [] {DODGE_CHANCE,DAMAGE_REDUCTION,MELEE_WEAPON_RANGE,ARMOR_PIERCING,FIRE_DAMAGE,CRIT_CHANCE}, - new [] {VITALITY,MAX_HEALTH_FROM_VITALITY,MAX_LIFE,MAX_LIFE_MULT,LIFE_REGEN_BASE,LIFE_ON_HIT}, - new [] {SPELL_DMG_FROM_INT}, - new [] {SPELL_COST_REDUCTION,COOLDOWN_REDUCTION,CRIT_CHANCE,CRIT_DAMAGE}, - new [] {SPELL_COST_REDUCTION,COOLDOWN_REDUCTION,SPELL_COST_TO_STAMINA,MAX_ENERGY_MULT,LIFE_REGEN_MULT}, - new [] {ENERGY_REGEN_BASE,MAX_ENERGY_MULT,MAX_ENERGY_FROM_AGILITY}, - new [] {INTELLIGENCE,STAMINA_REGEN_BASE,STAMINA_AND_ENERGY_REGEN_MULT}, - new [] {BASE_SPELL_DAMAGE,SPELL_DAMAGE_MULTIPLIER,INTELLIGENCE,BASE_MELEE_DAMAGE,ALL_ATTRIBUTES}, - new [] {BASE_SPELL_DAMAGE,SPELL_DAMAGE_MULTIPLIER,INTELLIGENCE,DAMAGE_REDUCTION}, - new [] {ENERGY_ON_HIT,ENERGY_REGEN_BASE,MAX_LIFE,MASSACRE_DURATION,LOOT_QUANTITY,EXPLOSION_DAMAGE}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_423/*Anger*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_424/*Downscaled version of Greatsword Rage, made to be wielded by flimsy wizards*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_425(15)/*Increases maximum stacks of frenzy by 10*/, //tr - rarity = 7, - minLevel = 6, - maxLevel = 9, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Weapon, - subtype = ItemDefinition.ItemSubtype.LongSword, - icon = Res.ResourceLoader.GetTexture(88), - onEquipCallback = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Add(15), - onUnequipCallback = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Sub(15), - }.statSlots[0][0].multipier = 1.5f; - - - new BaseItem(new Stat[][] - { - new[] { ARMOR }, - new[] { MOVEMENT_SPEED}, - new[] { SPELL_DMG_FROM_INT }, - new[] { SPELL_COST_REDUCTION,SPELL_COST_TO_STAMINA,ARMOR,ALL_ATTRIBUTES}, - new[] { BASE_SPELL_DAMAGE, SPELL_DAMAGE_MULTIPLIER, INTELLIGENCE, ALL_ATTRIBUTES }, - new[] { BASE_SPELL_DAMAGE, SPELL_DAMAGE_MULTIPLIER, INTELLIGENCE, DAMAGE_REDUCTION }, - new[] { VITALITY, MAX_HEALTH_FROM_VITALITY, MAX_LIFE, MAX_LIFE_MULT, LIFE_REGEN_BASE, LIFE_ON_HIT }, - new[] { SPELL_COST_REDUCTION, COOLDOWN_REDUCTION, CRIT_CHANCE, CRIT_DAMAGE, ARMOR,MAX_HEALTH_FROM_VITALITY }, - new[] { SPELL_COST_REDUCTION, COOLDOWN_REDUCTION, SPELL_COST_TO_STAMINA, MAX_ENERGY_MULT, LIFE_REGEN_MULT }, - new[] { ENERGY_REGEN_BASE, MAX_ENERGY_MULT, MAX_ENERGY_FROM_AGILITY }, - new[] { INTELLIGENCE, STAMINA_REGEN_BASE, STAMINA_AND_ENERGY_REGEN_MULT, ALL_ATTRIBUTES, ALL_RECOVERY }, - new[] { ENERGY_ON_HIT, ENERGY_REGEN_BASE, MAX_LIFE, MASSACRE_DURATION, LOOT_QUANTITY, EXPLOSION_DAMAGE }, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_426/*Yuki-Onna Strides*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_433("50%", "300%")/*Set Piece:\n2 Pieces- Snow Storm pulls enemies towards you\n3 Pieces - Snow Storm radius, maximum damage, spell cost is doubled, but charge rate is slower\n4 Pieces - Snow storm hit frequency is increased by 50%*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_428/*Boots looted off a snow demon*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_429("50%")/*Increses snowstorm damage by 50%*/, //tr - rarity = 7, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Boot, - icon = Res.ResourceLoader.GetTexture(85), - onEquipCallback = () => AkagiSet.Equip(), - onUnequipCallback = () => AkagiSet.Unequip(), - }; - - new BaseItem(new Stat[][] - { - new[] { INTELLIGENCE,NONE }, - new[] { ARMOR }, - new[] { ALL_RECOVERY,DODGE_CHANCE,SPELL_DAMAGE_MULTIPLIER,BASE_SPELL_DAMAGE}, - new[] { SPELL_DMG_FROM_INT,DAMAGE_REDUCTION }, - new[] { SPELL_COST_REDUCTION,SPELL_COST_TO_STAMINA,ARMOR,ALL_ATTRIBUTES}, - new[] { ARMOR,DAMAGE_REDUCTION ,ELITE_DAMAGE_REDUCTION}, - new[] { INTELLIGENCE, MAX_LIFE,LIFE_REGEN_BASE,SPELL_DAMAGE_MULTIPLIER,BASE_SPELL_DAMAGE }, - new[] { VITALITY, MAX_LIFE, MAX_LIFE_MULT, LIFE_REGEN_BASE, LIFE_ON_HIT }, - new[] { SPELL_COST_REDUCTION, COOLDOWN_REDUCTION, CRIT_CHANCE, CRIT_DAMAGE, ARMOR }, - new[] { SPELL_COST_REDUCTION, COOLDOWN_REDUCTION, SPELL_COST_TO_STAMINA, MAX_ENERGY_MULT, LIFE_REGEN_MULT,ELITE_DAMAGE_REDUCTION }, - new[] { ENERGY_REGEN_BASE, MAX_ENERGY_MULT, MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY }, - new[] { INTELLIGENCE, STAMINA_REGEN_BASE, STAMINA_AND_ENERGY_REGEN_MULT, ALL_ATTRIBUTES, ALL_RECOVERY }, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_430/*Yuki-Onna Greaves*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_433("50%", "300%")/*Set Piece:\n2 Pieces- Snow Storm pulls enemies towards you\n3 Pieces - Snow Storm radius, maximum damage, spell cost is doubled, but charge rate is slower\n4 Pieces - Snow storm hit frequency is increased by 50%*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_429("50%")/*Increses snowstorm damage by 50%*/, //tr - rarity = 7, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Pants, - icon = Res.ResourceLoader.GetTexture(87), - onEquipCallback = () => AkagiSet.Equip(), - onUnequipCallback = () => AkagiSet.Unequip(), - }; - - new BaseItem(new Stat[][] - { - new[] { INTELLIGENCE,NONE }, - new[] { ARMOR }, - new[] { ALL_RECOVERY,DODGE_CHANCE}, - new[] { SPELL_DMG_FROM_INT,DAMAGE_REDUCTION }, - new[] { SPELL_COST_REDUCTION,SPELL_COST_TO_STAMINA,ARMOR,ALL_ATTRIBUTES}, - new[] { ARMOR,DAMAGE_REDUCTION ,ELITE_DAMAGE_REDUCTION,SPELL_DAMAGE_MULTIPLIER,BASE_SPELL_DAMAGE}, - new[] { INTELLIGENCE, MAX_LIFE,LIFE_REGEN_BASE,SPELL_DAMAGE_MULTIPLIER,BASE_SPELL_DAMAGE }, - new[] { VITALITY, MAX_LIFE, MAX_LIFE_MULT, LIFE_REGEN_BASE, LIFE_ON_HIT }, - new[] { SPELL_COST_REDUCTION, COOLDOWN_REDUCTION, CRIT_CHANCE, CRIT_DAMAGE, ARMOR }, - new[] { SPELL_COST_REDUCTION, COOLDOWN_REDUCTION, SPELL_COST_TO_STAMINA, MAX_ENERGY_MULT, LIFE_REGEN_MULT,ELITE_DAMAGE_REDUCTION }, - new[] { ENERGY_REGEN_BASE, MAX_ENERGY_MULT, MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY }, - new[] { INTELLIGENCE, STAMINA_REGEN_BASE, STAMINA_AND_ENERGY_REGEN_MULT, ALL_ATTRIBUTES, ALL_RECOVERY }, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_431/*Yuki-Onna Kimono*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_433("50%", "300%")/*Set Piece:\n2 Pieces- Snow Storm pulls enemies towards you\n3 Pieces - Snow Storm radius, maximum damage, spell cost is doubled, but charge rate is slower\n4 Pieces - Snow storm hit frequency is increased by 50%*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_429("50%")/*Increses snowstorm damage by 50%*/, //tr - rarity = 7, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.ChestArmor, - icon = Res.ResourceLoader.GetTexture(96), - onEquipCallback = () => AkagiSet.Equip(), - onUnequipCallback = () => AkagiSet.Unequip(), - }; - - new BaseItem(new Stat[][] - { - new[] { INTELLIGENCE,NONE }, - new[] { ARMOR }, - new[] { CRIT_CHANCE,CRIT_DAMAGE}, - new[] { SPELL_DMG_FROM_INT }, - new[] { SPELL_COST_REDUCTION,SPELL_COST_TO_STAMINA,ARMOR,ALL_ATTRIBUTES}, - new[] { ARMOR, SPELL_DAMAGE_MULTIPLIER, BASE_SPELL_DAMAGE, ELITE_DAMAGE_REDUCTION}, - new[] { INTELLIGENCE, MAX_LIFE,LIFE_REGEN_BASE }, - new[] { SPELL_DAMAGE_MULTIPLIER,BASE_SPELL_DAMAGE, MAX_LIFE, MAX_LIFE_MULT, LIFE_REGEN_BASE, LIFE_ON_HIT }, - new[] { SPELL_COST_REDUCTION, COOLDOWN_REDUCTION, CRIT_CHANCE, CRIT_DAMAGE, ARMOR }, - new[] { SPELL_COST_REDUCTION, COOLDOWN_REDUCTION, SPELL_COST_TO_STAMINA, MAX_ENERGY_MULT, LIFE_REGEN_MULT,ELITE_DAMAGE_REDUCTION }, - new[] { ENERGY_REGEN_BASE, MAX_ENERGY_MULT, MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY }, - new[] { INTELLIGENCE, STAMINA_REGEN_BASE, STAMINA_AND_ENERGY_REGEN_MULT, ALL_ATTRIBUTES, ALL_RECOVERY }, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_432/*Yuki-Onna's Headdress*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_433("50%", "300%")/*Set Piece:\n2 Pieces- Snow Storm pulls enemies towards you\n3 Pieces - Snow Storm radius, maximum damage, spell cost is doubled, but charge rate is slower\n4 Pieces - Snow storm hit frequency is increased by 50% and damage is increased by 300%*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_429("50%")/*Increses snowstorm damage by 50%*/, //tr - rarity = 7, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Helmet, - icon = Res.ResourceLoader.GetTexture(91), - onEquipCallback = () => AkagiSet.Equip(), - onUnequipCallback = () => AkagiSet.Unequip(), - }; - - new BaseItem(new Stat[][] - { - new[] { INTELLIGENCE,NONE }, - new[] { ARMOR }, - new[] { CRIT_CHANCE,CRIT_DAMAGE}, - new[] { SPELL_DMG_FROM_INT }, - new[] { SPELL_COST_REDUCTION,SPELL_COST_TO_STAMINA,ARMOR,ALL_ATTRIBUTES}, - new[] { ARMOR, SPELL_DAMAGE_MULTIPLIER, BASE_SPELL_DAMAGE, ELITE_DAMAGE_REDUCTION}, - new[] { INTELLIGENCE, MAX_LIFE,LIFE_REGEN_BASE }, - new[] { SPELL_DAMAGE_MULTIPLIER,BASE_SPELL_DAMAGE, MAX_LIFE, MAX_LIFE_MULT, LIFE_REGEN_BASE, LIFE_ON_HIT }, - new[] { SPELL_COST_REDUCTION, COOLDOWN_REDUCTION, CRIT_CHANCE, CRIT_DAMAGE, ARMOR }, - new[] { SPELL_COST_REDUCTION, COOLDOWN_REDUCTION, SPELL_COST_TO_STAMINA, MAX_ENERGY_MULT, LIFE_REGEN_MULT,ELITE_DAMAGE_REDUCTION }, - new[] { ENERGY_REGEN_BASE, MAX_ENERGY_MULT, MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY }, - new[] { INTELLIGENCE, STAMINA_REGEN_BASE, STAMINA_AND_ENERGY_REGEN_MULT, ALL_ATTRIBUTES, ALL_RECOVERY }, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_434/*Lama Mega's Blood Bag*/, //tr - description = "", //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_435("15 000%", 15)/*Melee hits cause enemies to bleed for 100% of your health as damage for 15 seconds*/, //tr - rarity = 7, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(100), - onEquipCallback = () => COTFEvents.Instance.OnHitMelee.AddListener(UniqueItemFunctions.EnemyBleedForPlayerHP), - onUnequipCallback = () => COTFEvents.Instance.OnHitMelee.RemoveListener(UniqueItemFunctions.EnemyBleedForPlayerHP), - }; - new BaseItem(new int[][] { }) - { - name = Translations.ItemDatabase_ItemDefinitions_436/*Socket Drill*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_437/*A convienient one use tool*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_438/*What's a drill doing here in a place full of primitive tribes?*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_439/*Adds one socket to an item, unless the item can't have any more sockets.*/, //tr - rarity = 6, - minLevel = 1, - maxLevel = 2, - canConsume = false, - stackSize = 100, - type = ItemDefinition.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(190), - onConsumeCallback = x => - { - int socketMax = StatActions.GetMaxSocketAmountOnItem(in x.type); - int socketCurrent = x.stats.Count(y => y.id >= 3000); - if (socketCurrent < socketMax) - { - x.stats.Add(new ItemStat(ItemDatabase.StatByID(3000))); - return true; - } - return false; - } - }; - new BaseItem(new Stat[][] - { - new[] { MOVEMENT_SPEED}, - new[] { INTELLIGENCE,STRENGTH,AGILITY }, - new[] { ALL_ATTRIBUTES,VITALITY }, - new[] { ARMOR }, - new[] { NONE,JUMP_POWER}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_440/*Moonwalkers*/, //tr - description = "", //tr - lore = Translations.ItemDatabase_ItemDefinitions_441/*Cha cha real smooth.*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_442/*Inverts movement*/, //tr - rarity = 3, - minLevel = 16, - maxLevel = 18, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Boot, - icon = Res.ResourceLoader.GetTexture(85), - onEquipCallback = () => ModdedPlayer.Stats.movementSpeed.Multiply(-1.2f), - onUnequipCallback = () => ModdedPlayer.Stats.movementSpeed.Divide(-1.2f) - }.statSlots[0][0].multipier = 3; - - new BaseItem(new Stat[][] - { - new[] { JUMP_POWER}, - new[] { LESSERAGILITY}, - new[] { LESSERARMOR}, - new[] { PROJECTILE_SIZE,PROJECTILE_SIZE,ALL_ATTRIBUTES,LIFE_REGEN_MULT,LIFE_REGEN_BASE,LESSERVITALITY,AGILITY}, - new[] { RANGED_ARMOR_PIERCING,RANGED_DAMAGE_INCREASE,BASE_RANGED_DAMAGE,ATTACKSPEED}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_443/*Rabbit Ears Hairband*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_444/*Cute*/, //tr - lore = "", //tr - rarity = 3, - minLevel = 1, - maxLevel = 2, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Helmet, - icon = Res.ResourceLoader.GetTexture(91), - }; - new BaseItem(new Stat[][] - { - new[] { JUMP_POWER}, - new[] { AGILITY}, - new[] { ARMOR}, - new[] { PROJECTILE_SIZE,PROJECTILE_SIZE,ALL_ATTRIBUTES,LIFE_REGEN_MULT,LIFE_REGEN_BASE,VITALITY,INTELLIGENCE,AGILITY}, - new[] { RANGED_ARMOR_PIERCING,RANGED_DAMAGE_INCREASE,BASE_RANGED_DAMAGE,ATTACKSPEED}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_445/*Bunny Ears Hairband*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_444/*Cute*/, //tr - lore = "", //tr - rarity = 4, - minLevel = 1, - maxLevel = 2, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Helmet, - icon = Res.ResourceLoader.GetTexture(91), - }; - new BaseItem(new int[][] - { - new int[] {11}, - new int[] {16}, - new int[] {3000}, - new int[] {3000}, - new int[] {3000}, - new int[] {3000}, - new int[] {3000}, - new int[] {3000}, - new int[] {3000}, - new int[] {3000}, - new int[] {3000}, - new int[] {3000}, - new int[] {3000}, - new int[] {3000}, - new int[] {3000}, - new int[] {3000}, - new int[] {3000}, - new int[] {3000}, - new int[] {3000}, - new int[] {3000}, - new int[] {3000}, - new int[] {3000}, - new int[] {3000}, - new int[] {3000,0}, - new int[] {3000,0}, - new int[] {3000,0}, - new int[] {3000,0}, - new int[] {3000,0}, - - }) - { - name = Translations.ItemDatabase_ItemDefinitions_446/*Iron plate full of holes*/, //tr - description = "", //tr - lore = Translations.ItemDatabase_ItemDefinitions_447/*The integrity of this item is questionable*/, //tr - rarity = 3, - minLevel = 50, - maxLevel = 60, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.ChestArmor, - icon = Res.ResourceLoader.GetTexture(96), - }; - new BaseItem(new Stat[][] - { - new [] {ALL}, - new [] {BASE_SPELL_DAMAGE,BASE_RANGED_DAMAGE,BASE_MELEE_DAMAGE}, - new [] {SPELL_DMG_FROM_INT,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,DAMAGE_REDUCTION}, - new [] {ALL_ATTRIBUTES,AGILITY,STRENGTH,INTELLIGENCE,VITALITY}, - - }) - { - name = Translations.ItemDatabase_ItemDefinitions_448/*Small Tribal Necklace*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_449(2)/*Increases maximum stacks of frenzy by 2*/, //tr - rarity = 4, - minLevel = 6, - maxLevel = 9, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(100), - onEquipCallback = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Add(2), - onUnequipCallback = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Sub(2), - }; - new BaseItem(new Stat[][] - { - new [] {ALL}, - new [] {ALL}, - new [] {BASE_SPELL_DAMAGE,BASE_RANGED_DAMAGE,BASE_MELEE_DAMAGE}, - new [] {SPELL_DMG_FROM_INT,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,DAMAGE_REDUCTION}, - new [] {ALL_ATTRIBUTES,AGILITY,STRENGTH,INTELLIGENCE,VITALITY}, - - }) - { - name = Translations.ItemDatabase_ItemDefinitions_450/*Tribal Necklace*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_451(3)/*Increases maximum stacks of frenzy by 3*/, //tr - rarity = 4, - minLevel = 6, - maxLevel = 9, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(100), - onEquipCallback = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Add(3), - onUnequipCallback = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Sub(3), - }; - new BaseItem(new Stat[][] - { - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {BASE_SPELL_DAMAGE,BASE_RANGED_DAMAGE,BASE_MELEE_DAMAGE}, - new [] {SPELL_DMG_FROM_INT,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,DAMAGE_REDUCTION}, - new [] {ALL_ATTRIBUTES,AGILITY,STRENGTH,INTELLIGENCE,VITALITY}, - - }) - { - name = Translations.ItemDatabase_ItemDefinitions_452/*Warlord Necklace*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_453(4)/*Increases maximum stacks of frenzy by 4*/, //tr - rarity = 5, - minLevel = 6, - maxLevel = 9, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(100), - onEquipCallback = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Add(4), - onUnequipCallback = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Sub(4), - }; - new BaseItem(new Stat[][] - { - new [] {ALL}, - new [] {ALL}, - new [] {MOVEMENT_SPEED,COOLDOWN_REDUCTION}, - new [] {JUMP_POWER,ATTACKSPEED,MOVEMENT_SPEED,ENERGY_REGEN_BASE}, - new [] {BASE_SPELL_DAMAGE,BASE_RANGED_DAMAGE,BASE_MELEE_DAMAGE,CRIT_CHANCE,CRIT_DAMAGE}, - new [] {ALL_ATTRIBUTES,AGILITY,STRENGTH,INTELLIGENCE,VITALITY}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_454/*Travel Band*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_455(25)/*The distance of blink is increased by 20 feet*/, //tr - rarity = 5, - minLevel = 5, - maxLevel = 9, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Ring, - icon = Res.ResourceLoader.GetTexture(90), - onEquipCallback = () => { ModdedPlayer.Stats.spell_blinkRange.Add(25); }, - onUnequipCallback = () => { ModdedPlayer.Stats.spell_blinkRange.Sub(25); }, - }; - - new BaseItem(new Stat[][] - { - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {COOLDOWN_REDUCTION,NONE}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_456/*Destroyed Void Shard*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_457/*Only a fraction of its previous might remains*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_154/*A pedant of great power. Obtainable only from babies or crafting*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_458(1)/*Decrease the cooldown of one ability by 1 second whenever you hit something with melee or ranged attack.*/, //tr - rarity = 6, - minLevel = 80, - maxLevel = 90, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(101), - onEquipCallback = () => ModdedPlayer.Stats.i_infinityLoop.value = true, - onUnequipCallback = () => ModdedPlayer.Stats.i_infinityLoop.value = false, - }; - new BaseItem(new int[][] - { - new int[] {25 }, - new int[] {18 }, - new int[] {2004 }, - new int[] {1,3,62,63,64}, - new int[] {53,16}, - new int[] {25 ,22,1,12,13,5,6}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_459/*Famine Hammer*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_163/*It's slow but with enough strength i can make it a very deadly tool*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_460("30%")/*Chance to weaken enemies, causing them to take more damage from all attacks, is increased by 30%*/, //tr - rarity = 4, - minLevel = 30, - maxLevel = 35, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Weapon, - subtype = ItemDefinition.ItemSubtype.Hammer, - icon = Res.ResourceLoader.GetTexture(109), - onEquipCallback = () => ModdedPlayer.Stats.chanceToWeaken.Add(0.3f), - onUnequipCallback = () => ModdedPlayer.Stats.chanceToWeaken.Sub(0.3f), - }; - - new BaseItem(new int[][] - { - new int[] {25 }, - new int[] {18 }, - new int[] {-1 }, - new int[] {2004 }, - new int[] {1,3,62,63,64}, - new int[] {53,16}, - new int[] {25 ,22,1,12,13,5,6}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_461/*Curse Hammer*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_462/*Omnious Weapon*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_463("45%")/*Chance to weaken enemies, causing them to take more damage from all attacks, is increased by 40%*/, //tr - rarity = 5, - minLevel = 30, - maxLevel = 35, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Weapon, - subtype = ItemDefinition.ItemSubtype.Hammer, - icon = Res.ResourceLoader.GetTexture(109), - onEquipCallback = () => ModdedPlayer.Stats.chanceToWeaken.Add(0.45f), - onUnequipCallback = () => ModdedPlayer.Stats.chanceToWeaken.Sub(0.45f), - }; - new BaseItem(new Stat[][] - { - new [] {ALL}, - new [] {ALL}, - new [] {MELEE_DAMAGE_INCREASE,MELEE_DMG_FROM_STR}, - new [] {STRENGTH}, - new [] {BASE_MELEE_DAMAGE}, - new [] {ATTACK_COST_REDUCTION,ATTACKSPEED,LIFE_ON_HIT,ENERGY_ON_HIT,NONE,NONE,NONE}, - new [] {ALL_ATTRIBUTES,VITALITY,MELEE_DAMAGE_INCREASE,MELEE_ARMOR_PIERCING}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_464/*Smasher*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_163/*It's slow but with enough strength i can make it a very deadly tool*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_465/*Smash damage is increased tripled*/, //tr - rarity = 5, - minLevel = 30, - maxLevel = 35, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Weapon, - subtype = ItemDefinition.ItemSubtype.Hammer, - icon = Res.ResourceLoader.GetTexture(109), - onEquipCallback = () => { ModdedPlayer.Stats.smashDamage.Multiply(3f); }, - onUnequipCallback = () => { ModdedPlayer.Stats.smashDamage.Divide(3f); }, - }; - new BaseItem(new Stat[][] - { - new [] {ALL}, - new [] {LIFE_ON_HIT}, - new [] {ENERGY_ON_HIT}, - new [] {STAMINA_AND_ENERGY_REGEN_MULT,MAX_ENERGY_MULT,MAX_LIFE_MULT}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_466/*Vampiric Band*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_467(1)/*Gain 1 stamina on ranged and melee hit or double that amount on critical hits*/, //tr - rarity = 3, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Ring, - icon = Res.ResourceLoader.GetTexture(90), - onEquipCallback = () => COTFEvents.Instance.OnHitEnemy.AddListener(UniqueItemFunctions.Gain1EnergyOnHit), - onUnequipCallback = () => COTFEvents.Instance.OnHitEnemy.RemoveListener(UniqueItemFunctions.Gain1EnergyOnHit), - }; - new BaseItem(new Stat[][] - { - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {LIFE_ON_HIT}, - new [] {CRIT_CHANCE,CRIT_DAMAGE}, - new [] {MELEE_DAMAGE_INCREASE,RANGED_DAMAGE_INCREASE,SPELL_DAMAGE_MULTIPLIER}, - new [] {ENERGY_ON_HIT}, - new [] {STAMINA_AND_ENERGY_REGEN_MULT,MAX_ENERGY_MULT,MAX_LIFE_MULT}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_468/*Vampire Ring*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_469(10)/*Gain 10 stamina on ranged and melee hit or double that amount on critical hits*/, //tr - rarity = 6, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Ring, - icon = Res.ResourceLoader.GetTexture(90), - onEquipCallback = () => COTFEvents.Instance.OnHitEnemy.AddListener(UniqueItemFunctions.Gain10EnergyOnHit), - onUnequipCallback = () => COTFEvents.Instance.OnHitEnemy.RemoveListener(UniqueItemFunctions.Gain10EnergyOnHit), - }; - new BaseItem(new Stat[][] - { - new [] {SPELL_DAMAGE_MULTIPLIER,INTELLIGENCE,BASE_SPELL_DAMAGE}, - new [] {SPELL_DAMAGE_MULTIPLIER,INTELLIGENCE,BASE_SPELL_DAMAGE}, - new [] {VITALITY,LIFE_REGEN_BASE,LIFE_REGEN_MULT,INTELLIGENCE,AGILITY,STRENGTH,ALL_ATTRIBUTES}, - new [] {COOLDOWN_REDUCTION,SPELL_COST_REDUCTION,SPELL_COST_TO_STAMINA,INTELLIGENCE,DAMAGE_REDUCTION}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_470/*Tricksters Scarf*/, //tr - description = "", //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_471(1)/*Magic arrow shoots 1 additional arrow.*/, //tr - rarity = 4, - minLevel = 20, - maxLevel = 22, - canConsume = false, - stackSize = 1, - onEquipCallback = () => ModdedPlayer.Stats.spell_magicArrowVolleyCount.Add(1), - onUnequipCallback = () => ModdedPlayer.Stats.spell_magicArrowVolleyCount.Sub(1), - type = ItemDefinition.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(100) - }; - new BaseItem(new Stat[][] - { - new [] {SPELL_DAMAGE_MULTIPLIER,INTELLIGENCE,BASE_SPELL_DAMAGE}, - new [] {SPELL_DAMAGE_MULTIPLIER,INTELLIGENCE,BASE_SPELL_DAMAGE}, - new [] {VITALITY,LIFE_REGEN_BASE,LIFE_REGEN_MULT,INTELLIGENCE,AGILITY,STRENGTH,ALL_ATTRIBUTES}, - new [] {COOLDOWN_REDUCTION,SPELL_COST_REDUCTION,SPELL_COST_TO_STAMINA,INTELLIGENCE,DAMAGE_REDUCTION}, - new [] {INTELLIGENCE}, - new [] {ALL}, - - }) - { - name = Translations.ItemDatabase_ItemDefinitions_472/*Magus' Necktie*/, //tr - description = "", //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_473(2)/*Magic arrow shoots 2 additional arrows.*/, //tr - rarity = 5, - minLevel = 50, - maxLevel = 52, - canConsume = false, - stackSize = 1, - onEquipCallback = () => ModdedPlayer.Stats.spell_magicArrowVolleyCount.Add(2), - onUnequipCallback = () => ModdedPlayer.Stats.spell_magicArrowVolleyCount.Sub(2), - type = ItemDefinition.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(100) - }; - new BaseItem(new int[][] - { - new int[] {23,26}, - new int[] {34,18,17,16,15,14,60,61,55,}, - new int[] {16,19,23,31,54,51,52,66,57}, - new int[] {2,3,4,5,6,7,8,9,10}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_474/*Discounted Knockoff Magic Quiver*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_475("15%")/*There's a 15% increased chance to not consume ammo when firing a projectile.*/, //tr - rarity = 3, - minLevel = 2, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Quiver, - icon = Res.ResourceLoader.GetTexture(98), - onEquipCallback = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Add(0.15f), - onUnequipCallback = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Sub(0.15f), - }; - new BaseItem(new int[][] - { - new int[] {23,26}, - new int[] {34,18,17,16,15,14,60,61,55,}, - new int[] {16,19,23,31,54,51,52,66,57}, - new int[] {2,48,0,0}, - new int[] {2,3,4,5,6,7,8,9,10}, - new int[] {2,1,5,6,0}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_476/*Magic Quiver*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_477("20%")/*There's a 20% increased chance to not consume ammo when firing a projectile.*/, //tr - rarity = 4, - minLevel = 2, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Quiver, - icon = Res.ResourceLoader.GetTexture(98), - onEquipCallback = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Add(0.2f), - onUnequipCallback = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Sub(0.2f), - }; - new BaseItem(new int[][] - { - new int[] {23,26}, - new int[] {23}, - new int[] {34,18,17,16,15,14,60,61,55,}, - new int[] {16,19,23,31,54,51,52,66,57}, - new int[] {2,48}, - new int[] {2,3,4,5,6,7,8,9,10}, - new int[] {2,1,5,6}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_478/*Improved Magic Quiver*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_479("25%")/*There's a 25% increased chance to not consume ammo when firing a projectile.*/, //tr - rarity = 5, - minLevel = 2, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Quiver, - icon = Res.ResourceLoader.GetTexture(98), - onEquipCallback = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Add(0.25f), - onUnequipCallback = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Sub(0.25f), - }; - new BaseItem(new int[][] - { - new int[] {23,26}, - new int[] {23}, - new int[] {34,18,17,16,15,14,60,61,55,}, - new int[] {16,19,23,31,54,51,52,66,57}, - new int[] {2,16,14}, - new int[] {2,3,4,5,6,7,8,9,10}, - new int[] {48}, - new int[] {-1}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_480/*Factory Quiver*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_481("40%")/*There's a 40% increased chance to not consume ammo when firing a projectile.*/, //tr - rarity = 6, - minLevel = 12, - maxLevel = 20, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Quiver, - icon = Res.ResourceLoader.GetTexture(98), - onEquipCallback = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Add(0.4f), - onUnequipCallback = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Sub(0.4f), - }; - - new BaseItem(new int[][] { }) - { - name = Translations.ItemDatabase_ItemDefinitions_482/*Enzyme STR/34*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_484/*Changes Vitality, Agility or Intelligence stat on an item to Strength or changes Ranged or Spell damage stat to Melee Damage*/, //tr - rarity = 6, - minLevel = 1, - maxLevel = 2, - canConsume = false, - stackSize = 100, - type = ItemDefinition.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(193), - onConsumeCallback = x => - { - if (x.isEquipped) - return false; - - var stats = x.stats.Where(y => y.id == (int)VITALITY || y.id == (int)INTELLIGENCE || y.id == (int)AGILITY - || y.id == (int)LESSERVITALITY || y.id == (int)LESSERINTELLIGENCE || y.id == (int)LESSERAGILITY - || y.id == (int)BASE_RANGED_DAMAGE || y.id == (int)BASE_SPELL_DAMAGE - || y.id == (int)RANGED_DAMAGE_INCREASE || y.id == (int)SPELL_DAMAGE_MULTIPLIER).ToArray(); - - int c = stats.Count(); - - - if (c == 0) - return false; - int i = UnityEngine.Random.Range(0, c); - ItemStat stat = stats[i]; - int index = x.stats.IndexOf(stat); - - ItemStat newStat; - Stat statID = (Stat)stat.id; - switch (statID) - { - case VITALITY: - case INTELLIGENCE: - case AGILITY: - newStat = new ItemStat(StatByID((int)STRENGTH)); - break; - case LESSERVITALITY: - case LESSERINTELLIGENCE: - case LESSERAGILITY: - newStat = new ItemStat(StatByID((int)LESSERSTRENGTH)); - break; - case BASE_RANGED_DAMAGE: - case BASE_SPELL_DAMAGE: - newStat = new ItemStat(StatByID((int)BASE_MELEE_DAMAGE)); - break; - case RANGED_DAMAGE_INCREASE: - case SPELL_DAMAGE_MULTIPLIER: - newStat = new ItemStat(StatByID((int)MELEE_DAMAGE_INCREASE)); - break; - default: - return false; - } - newStat.amount = stat.amount; - newStat.possibleStatsIndex = stat.possibleStatsIndex; - x.stats[index] = newStat; - return true; - } - }; - new BaseItem(new int[][] { }) - { - name = Translations.ItemDatabase_ItemDefinitions_485/*Enzyme INT/33*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_486/*Changes Vitality, Agility or Strength stat on an item to Intelligence or changes Ranged or Melee damage stat to Spell Damage*/, //tr - rarity = 6, - minLevel = 1, - maxLevel = 2, - canConsume = false, - stackSize = 100, - type = ItemDefinition.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(191), - onConsumeCallback = x => - { - if (x.isEquipped) - return false; - - var stats = x.stats.Where(y => y.id == (int)VITALITY || y.id == (int)STRENGTH || y.id == (int)AGILITY - || y.id == (int)LESSERVITALITY || y.id == (int)LESSERSTRENGTH || y.id == (int)LESSERAGILITY - || y.id == (int)BASE_RANGED_DAMAGE || y.id == (int)BASE_MELEE_DAMAGE - || y.id == (int)RANGED_DAMAGE_INCREASE || y.id == (int)MELEE_DAMAGE_INCREASE).ToArray(); - - int c = stats.Count(); - - - if (c == 0) - return false; - int i = UnityEngine.Random.Range(0, c); - ItemStat stat = stats[i]; - int index = x.stats.IndexOf(stat); - - ItemStat newStat; - Stat statID = (Stat)stat.id; - switch (statID) - { - case VITALITY: - case STRENGTH: - case AGILITY: - newStat = new ItemStat(StatByID((int)INTELLIGENCE)); - break; - case LESSERVITALITY: - case LESSERSTRENGTH: - case LESSERAGILITY: - newStat = new ItemStat(StatByID((int)LESSERINTELLIGENCE)); - break; - case BASE_RANGED_DAMAGE: - case BASE_MELEE_DAMAGE: - newStat = new ItemStat(StatByID((int)BASE_SPELL_DAMAGE)); - break; - case RANGED_DAMAGE_INCREASE: - case MELEE_DAMAGE_INCREASE: - newStat = new ItemStat(StatByID((int)SPELL_DAMAGE_MULTIPLIER)); - break; - default: - return false; - } - newStat.amount = stat.amount; - newStat.possibleStatsIndex = stat.possibleStatsIndex; - x.stats[index] = newStat; - return true; - } - }; - new BaseItem(new int[][] { }) - { - name = Translations.ItemDatabase_ItemDefinitions_487/*Enzyme AGI/39*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_488/*Changes Vitality, Intelligence or Strength stat on an item to Agility or changes Melee or Spell damage stat to Ranged Damage*/, //tr - rarity = 6, - minLevel = 1, - maxLevel = 2, - canConsume = false, - stackSize = 100, - type = ItemDefinition.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(192), - onConsumeCallback = x => - { - if (x.isEquipped) - return false; - - var stats = x.stats.Where(y => y.id == (int)VITALITY || y.id == (int)STRENGTH || y.id == (int)INTELLIGENCE - || y.id == (int)LESSERVITALITY || y.id == (int)LESSERSTRENGTH || y.id == (int)LESSERINTELLIGENCE - || y.id == (int)BASE_SPELL_DAMAGE || y.id == (int)BASE_MELEE_DAMAGE - || y.id == (int)SPELL_DAMAGE_MULTIPLIER || y.id == (int)MELEE_DAMAGE_INCREASE).ToArray(); - - int c = stats.Count(); - - - if (c == 0) - return false; - int i = UnityEngine.Random.Range(0, c); - ItemStat stat = stats[i]; - int index = x.stats.IndexOf(stat); - - ItemStat newStat; - Stat statID = (Stat)stat.id; - switch (statID) - { - case VITALITY: - case INTELLIGENCE: - case STRENGTH: - newStat = new ItemStat(StatByID((int)AGILITY)); - break; - case LESSERVITALITY: - case LESSERINTELLIGENCE: - case LESSERSTRENGTH: - newStat = new ItemStat(StatByID((int)LESSERAGILITY)); - break; - case BASE_MELEE_DAMAGE: - case BASE_SPELL_DAMAGE: - newStat = new ItemStat(StatByID((int)BASE_RANGED_DAMAGE)); - break; - case MELEE_DAMAGE_INCREASE: - case SPELL_DAMAGE_MULTIPLIER: - newStat = new ItemStat(StatByID((int)RANGED_DAMAGE_INCREASE)); - break; - default: - return false; - } - newStat.amount = stat.amount; - newStat.possibleStatsIndex = stat.possibleStatsIndex; - x.stats[index] = newStat; - return true; - } - }; - - new BaseItem(new int[][] { }) - { - name = Translations.ItemDatabase_ItemDefinitions_489/*Enzyme VIT/449*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_490/*Changes Agility, Intelligence or Strength stat on an item to Vitality*/, //tr - rarity = 6, - minLevel = 1, - maxLevel = 2, - canConsume = false, - stackSize = 100, - type = ItemDefinition.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(199), - onConsumeCallback = x => - { - if (x.isEquipped) - return false; - - var stats = x.stats.Where(y => y.id == (int)VITALITY || y.id == (int)STRENGTH || y.id == (int)INTELLIGENCE - || y.id == (int)LESSERAGILITY || y.id == (int)LESSERSTRENGTH || y.id == (int)LESSERINTELLIGENCE).ToArray(); - - int c = stats.Count(); - - - if (c == 0) - return false; - int i = UnityEngine.Random.Range(0, c); - ItemStat stat = stats[i]; - int index = x.stats.IndexOf(stat); - - ItemStat newStat; - Stat statID = (Stat)stat.id; - switch (statID) - { - case AGILITY: - case INTELLIGENCE: - case STRENGTH: - newStat = new ItemStat(StatByID((int)VITALITY)); - break; - case LESSERAGILITY: - case LESSERINTELLIGENCE: - case LESSERSTRENGTH: - newStat = new ItemStat(StatByID((int)LESSERVITALITY)); - break; - default: - return false; - } - newStat.amount = stat.amount; - newStat.possibleStatsIndex = stat.possibleStatsIndex; - x.stats[index] = newStat; - return true; - } - }; - new BaseItem(new int[][] { }) - { - name = Translations.ItemDatabase_ItemDefinitions_491/*Stomach Acid*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_492/*Removes all stats with negative values from an item*/, //tr - rarity = 4, - minLevel = 1, - maxLevel = 2, - canConsume = false, - stackSize = 100, - type = ItemDefinition.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(198), - onConsumeCallback = x => - { - if (x.isEquipped) - return false; - - var stats = x.stats.RemoveAll(y => y.amount < 0); - if (stats > 0) - return true; - return false; - } - }; - new BaseItem(new int[][] { }) - { - name = Translations.ItemDatabase_ItemDefinitions_493/*Elite Stomach Acid*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_494/*Changes negative stat values into positive values on an item*/, //tr - rarity = 6, - minLevel = 1, - maxLevel = 2, - canConsume = false, - stackSize = 100, - type = ItemDefinition.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(198), - onConsumeCallback = x => - { - if (x.isEquipped) - return false; - - var stats = x.stats.Where(y => y.amount < 0).ToList(); - if (stats.Count > 0) - { - for (int i = 0; i < stats.Count; i++) - { - stats[i].amount *= -1; - } - return true; - } - return false; - } - }; - new BaseItem(new int[][] { }) - { - name = Translations.ItemDatabase_ItemDefinitions_495/*Crimson Solution*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_496/*Upgrades item of any rarity to one of the same type but of Legendary rarity*/, //tr - rarity = 7, - minLevel = 1, - maxLevel = 2, - canConsume = false, - stackSize = 100, - type = ItemDefinition.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(196), - onConsumeCallback = x => - { - if (x.isEquipped) - return false; - var itemType = x.type; - if (itemType == ItemDefinition.ItemType.Other || itemType == ItemDefinition.ItemType.Material || x.stackedAmount > 1) - return false; - if (Player.Inventory.Instance.ItemSlots.ContainsValue(x)) - { - for (int slotIndex = 0; slotIndex < Inventory.SlotCount; slotIndex++) - { - if (Player.Inventory.Instance.ItemSlots[slotIndex] == x) - { - var options = ItemDatabase.itemLookup.Where(y => y.Value.rarity == 7 && y.Value.type == itemType && (itemType != ItemDefinition.ItemType.Weapon || y.Value.subtype == x.subtype)).Select(y => y.Key).ToList(); - if (options.Count == 0) - { - ModAPI.Log.Write("No tier 7 items for type: " + itemType); - return false; - } - var random = options[UnityEngine.Random.Range(0, options.Count)]; - Item item = new Item(ItemDatabase.itemLookup[random], 1, 0, false) - { - level = x.level - }; - item.RollStats(); - Inventory.Instance.ItemSlots[slotIndex] = item; - return true; - } - } - } - return false; - } - }; - - new BaseItem(new int[][] { }) - { - name = Translations.ItemDatabase_ItemDefinitions_497/*Weak Armor Hardening Mixture*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_498/*Adds Armor Stat to a piece of equipment if the item does not already have it*/, //tr - rarity = 4, - minLevel = 1, - maxLevel = 2, - canConsume = false, - stackSize = 100, - type = ItemDefinition.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(197), - onConsumeCallback = x => - { - if (x.isEquipped) - return false; - var itemType = x.type; - if (itemType == ItemDefinition.ItemType.Other || itemType == ItemDefinition.ItemType.Material || x.stackedAmount > 1) - return false; - if (!x.stats.Any(y => y.id == (int)ARMOR || y.id == (int)LESSERARMOR)) - { - ItemStat stat = new ItemStat(StatByID((int)ARMOR), x.level); - x.stats.Add(stat); - return true; - } - return false; - } - }; - - new BaseItem(new int[][] { }) - { - name = Translations.ItemDatabase_ItemDefinitions_499/*Upgraded Armor Hardening Mixture*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_500/*Adds Damage Reduction Stat to a piece of equipment if the item does not already have it*/, //tr - rarity = 5, - minLevel = 1, - maxLevel = 2, - canConsume = false, - stackSize = 100, - type = ItemDefinition.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(197), - onConsumeCallback = x => - { - if (x.isEquipped) - return false; - var itemType = x.type; - if (itemType == ItemDefinition.ItemType.Other || itemType == ItemDefinition.ItemType.Material || x.stackedAmount > 1) - return false; - if (!x.stats.Any(y => y.id == (int)DAMAGE_REDUCTION)) - { - ItemStat stat = new ItemStat(StatByID((int)DAMAGE_REDUCTION), x.level); - x.stats.Add(stat); - return true; - } - return false; - } - }; - - new BaseItem(new int[][] { }) - { - name = Translations.ItemDatabase_ItemDefinitions_501/*Chaos Water*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_502/*Rerolls all stats on an item of rarity no higher than orange*/, //tr - rarity = 4, - minLevel = 1, - maxLevel = 2, - canConsume = false, - stackSize = 100, - type = ItemDefinition.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(195), - onConsumeCallback = x => - { - if (x.isEquipped) - return false; - var itemType = x.type; - if (itemType == ItemDefinition.ItemType.Other || itemType == ItemDefinition.ItemType.Material || x.stackedAmount > 1 || x.rarity > 5) - return false; - if (x.stats.Count > 1) - { - x.RollStats(); - return true; - } - return false; - } - }; - new BaseItem(new int[][] { }) - { - name = Translations.ItemDatabase_ItemDefinitions_503/*Upgraded Chaos Water*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_504/*Rerolls all stats on an item of any rarity*/, //tr - rarity = 6, - minLevel = 1, - maxLevel = 2, - canConsume = false, - stackSize = 100, - type = ItemDefinition.ItemType.Material, - icon = Res.ResourceLoader.GetTexture(194), - onConsumeCallback = x => - { - if (x.isEquipped) - return false; - var itemType = x.type; - if (itemType == ItemDefinition.ItemType.Other || itemType == ItemDefinition.ItemType.Material || x.stackedAmount > 1) - return false; - if (x.stats.Count > 1) - { - x.RollStats(); - return true; - } - return false; - } - }; - new BaseItem(new Stat[][] - { - new [] {SPELL_COST_REDUCTION,MELEE_DAMAGE_INCREASE,SPELL_DAMAGE_MULTIPLIER,COOLDOWN_REDUCTION,DAMAGE_REDUCTION, RANGED_DMG_FROM_AGI, ATTACKSPEED}, - new [] {AGILITY,LESSERAGILITY}, - new [] {MELEE_ARMOR_PIERCING,RANGED_ARMOR_PIERCING,ARMOR_PIERCING,ARMOR}, - new [] {RANGED_DAMAGE_INCREASE,RANGED_DMG_FROM_AGI,BASE_RANGED_DAMAGE,CRIT_CHANCE,CRIT_DAMAGE,ALL_ATTRIBUTES}, - new [] {INTELLIGENCE,STRENGTH,AGILITY,VITALITY,ALL_ATTRIBUTES,MAX_LIFE,MAX_ENERGY}, - new [] {INTELLIGENCE,STRENGTH,AGILITY,VITALITY,ALL_ATTRIBUTES,LIFE_ON_HIT,ENERGY_ON_HIT,ENERGY_REGEN_BASE,ALL_RECOVERY}, - new [] {RANGED_DAMAGE_INCREASE,BASE_RANGED_DAMAGE,AGILITY}, - new [] {ALL}, - new [] {ALL}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_505/*Gun Blade*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_506("150%")/*Increases pistol damage by 150%*/, //tr - rarity = 6, - minLevel = 35, - maxLevel = 36, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Weapon, - subtype = ItemDefinition.ItemSubtype.Axe, - icon = Res.ResourceLoader.GetTexture(138), - onEquipCallback = () => ModdedPlayer.Stats.perk_bulletDamageMult.Multiply(2.5f), - onUnequipCallback = () => ModdedPlayer.Stats.perk_bulletDamageMult.Divide(2.5f), - }.statSlots[0][0].multipier = -1f; - - new BaseItem(new Stat[][] - { - new [] {SPELL_COST_REDUCTION,BASE_SPELL_DAMAGE,SPELL_DAMAGE_MULTIPLIER,COOLDOWN_REDUCTION,DAMAGE_REDUCTION}, - new [] {ATTACKSPEED,PROJECTILE_SIZE,PROJECTILE_SPEED}, - new [] {AGILITY,LESSERAGILITY}, - new [] {HEADSHOT_DAMAGE_MULT}, - new [] {MELEE_ARMOR_PIERCING,RANGED_ARMOR_PIERCING,ARMOR_PIERCING,ARMOR,ELITE_DAMAGE_REDUCTION,LOOT_QUANTITY}, - new [] {RANGED_DAMAGE_INCREASE,RANGED_DMG_FROM_AGI,BASE_RANGED_DAMAGE,CRIT_CHANCE,CRIT_DAMAGE,ALL_ATTRIBUTES,MAX_ENERGY_FROM_AGILITY}, - new [] {RANGED_DAMAGE_INCREASE,BASE_RANGED_DAMAGE,AGILITY,VITALITY,INTELLIGENCE,CRIT_CHANCE,CRIT_DAMAGE}, - new [] {RANGED_DAMAGE_INCREASE,BASE_RANGED_DAMAGE,AGILITY,VITALITY,INTELLIGENCE,HEADSHOT_DAMAGE_MULT}, - new [] {INTELLIGENCE,STRENGTH,AGILITY,VITALITY,ALL_ATTRIBUTES,MAX_LIFE,MAX_ENERGY}, - new [] {INTELLIGENCE,STRENGTH,AGILITY,VITALITY,ALL_ATTRIBUTES,LIFE_ON_HIT,ENERGY_ON_HIT,ENERGY_REGEN_BASE,ALL_RECOVERY}, - new [] {ALL}, - new [] {ALL}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_507/*Sharpshooter's Axe*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_508("50%", "600%")/*Increases pistol headshot chance by 50% and pistol damage by 600%*/, //tr - rarity = 7, - minLevel = 35, - maxLevel = 36, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Weapon, - subtype = ItemDefinition.ItemSubtype.Axe, - icon = Res.ResourceLoader.GetTexture(138), - onEquipCallback = () => { ModdedPlayer.Stats.perk_bulletDamageMult.Multiply(6f); ModdedPlayer.Stats.perk_bulletCritChance.Add(0.5f); }, - onUnequipCallback = () => { ModdedPlayer.Stats.perk_bulletDamageMult.Divide(6f); ModdedPlayer.Stats.perk_bulletCritChance.Sub(0.5f); }, - }; - new BaseItem(new Stat[][] - { - new [] {ARMOR_PIERCING,MELEE_ARMOR_PIERCING,NONE}, - new [] {BLOCK,NONE}, - new [] {ARMOR,MAX_LIFE,MAX_HEALTH_FROM_VITALITY,DAMAGE_REDUCTION,ELITE_DAMAGE_REDUCTION,DODGE_CHANCE}, - new [] {ARMOR,MAX_LIFE,MAX_HEALTH_FROM_VITALITY,DAMAGE_REDUCTION,VITALITY,STRENGTH,ALL_ATTRIBUTES}, - new [] {ARMOR,MAX_LIFE,MAX_HEALTH_FROM_VITALITY,DAMAGE_REDUCTION,VITALITY,STRENGTH,ALL_ATTRIBUTES,THORNS}, - new [] {THORNS,MELEE_DAMAGE_INCREASE,VITALITY,STRENGTH}, - new [] {STRENGTH,ARMOR,MELEE_ARMOR_PIERCING}, - new [] {MELEE_DAMAGE_INCREASE,MELEE_DMG_FROM_STR,BASE_MELEE_DAMAGE}, - new [] {MELEE_DAMAGE_INCREASE,ATTACKSPEED,BASE_MELEE_DAMAGE,MELEE_WEAPON_RANGE}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_509/*Shield Blade*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_510/*So large can be used as a shield*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_511/*A normal human cannot lift this weapon.*/, //tr - rarity = 6, - minLevel = 50, - maxLevel = 52, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Weapon, - subtype = ItemDefinition.ItemSubtype.GreatSword, - icon = Res.ResourceLoader.GetTexture(88), - }; - new BaseItem(new Stat[][] - { - new [] {ARMOR_PIERCING,MELEE_ARMOR_PIERCING}, - new [] {BLOCK,NONE}, - new [] {ARMOR,MAX_LIFE,MAX_HEALTH_FROM_VITALITY,DAMAGE_REDUCTION,ELITE_DAMAGE_REDUCTION,DODGE_CHANCE}, - new [] {ARMOR,MAX_LIFE,MAX_HEALTH_FROM_VITALITY,DAMAGE_REDUCTION,VITALITY,STRENGTH,ALL_ATTRIBUTES}, - new [] {ARMOR,MAX_LIFE,MAX_HEALTH_FROM_VITALITY,DAMAGE_REDUCTION,VITALITY,STRENGTH,ALL_ATTRIBUTES,THORNS}, - new [] {THORNS,MELEE_DAMAGE_INCREASE,VITALITY,STRENGTH}, - new [] {STRENGTH,ARMOR,MELEE_ARMOR_PIERCING}, - new [] {MELEE_DAMAGE_INCREASE,MELEE_DMG_FROM_STR,BASE_MELEE_DAMAGE}, - new [] {MELEE_DAMAGE_INCREASE,ATTACKSPEED,BASE_MELEE_DAMAGE,MELEE_WEAPON_RANGE}, - new [] {ALL}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_512/*Blunt Blade for Bashing Skulls*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_510/*So large can be used as a shield*/, //tr - lore = Translations.ItemDatabase_ItemDefinitions_511/*A normal human cannot lift this weapon.*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_513("200%")/*Bash damage debuff on enemies is increased by 200%*/, //tr - rarity = 7, - minLevel = 50, - maxLevel = 52, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Weapon, - subtype = ItemDefinition.ItemSubtype.GreatSword, - icon = Res.ResourceLoader.GetTexture(88), - onEquipCallback = () => ModdedPlayer.Stats.spell_bashDamageDebuffAmount.Add(2.00f), - onUnequipCallback = () => ModdedPlayer.Stats.spell_bashDamageDebuffAmount.Sub(2.00f), - }; - - new BaseItem(new Stat[][] - { - new[] { ARMOR_PIERCING, MELEE_ARMOR_PIERCING }, - new[] { BLOCK,STRENGTH}, - new[] { ARMOR, MAX_LIFE, MAX_HEALTH_FROM_VITALITY, DAMAGE_REDUCTION, ELITE_DAMAGE_REDUCTION, DODGE_CHANCE }, - new[] { ARMOR, MAX_LIFE , DAMAGE_REDUCTION, VITALITY, STRENGTH, ALL_ATTRIBUTES }, - new[] { ARMOR, MAX_LIFE, DAMAGE_REDUCTION, VITALITY, STRENGTH, ALL_ATTRIBUTES, THORNS }, - new[] { THORNS, MELEE_DAMAGE_INCREASE, VITALITY, STRENGTH }, - new[] { STRENGTH, ARMOR, MELEE_ARMOR_PIERCING }, - new[] { MELEE_DAMAGE_INCREASE, MELEE_DMG_FROM_STR, BASE_MELEE_DAMAGE }, - new[] { MELEE_DAMAGE_INCREASE, ATTACKSPEED, BASE_MELEE_DAMAGE, MELEE_WEAPON_RANGE }, - new[] { ALL }, - new[] { ALL }, - new[] { ALL }, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_514/*Madman's Legacy*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_515("69%")/*Frenzy damage per stack is increased by 50%*/, //tr - rarity = 7, - minLevel = 1, - maxLevel = 2, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Shield, - icon = Res.ResourceLoader.GetTexture(99), - onEquipCallback = () => ModdedPlayer.Stats.spell_frenzyDmg.Add(0.69f), - onUnequipCallback = () => ModdedPlayer.Stats.spell_frenzyDmg.Add(0.69f), - }; - new BaseItem(new Stat[][] - { - new[] { ARMOR,BASE_MELEE_DAMAGE }, - new[] { BLOCK}, - new[] { ARMOR, MAX_LIFE,MAX_ENERGY,STAMINA_AND_ENERGY_REGEN_MULT, DAMAGE_REDUCTION, ELITE_DAMAGE_REDUCTION, DODGE_CHANCE }, - new[] { ARMOR, MAX_LIFE, MAX_ENERGY, DAMAGE_REDUCTION, VITALITY, STRENGTH, ALL_ATTRIBUTES,CHANCE_ON_HIT_TO_BLEED,CHANCE_ON_HIT_TO_SLOW,CHANCE_ON_HIT_TO_WEAKEN }, - new[] { ARMOR, MAX_LIFE, MAX_HEALTH_FROM_VITALITY, DAMAGE_REDUCTION, VITALITY, STRENGTH, ALL_ATTRIBUTES, THORNS }, - new[] { THORNS, MELEE_DAMAGE_INCREASE, VITALITY, STRENGTH }, - new[] { MELEE_DAMAGE_INCREASE, ATTACKSPEED, BASE_MELEE_DAMAGE, MELEE_WEAPON_RANGE,MAX_LIFE_MULT,MAX_ENERGY_MULT,ALL_RECOVERY }, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_516/*Buckler*/, //tr - rarity = 5, - minLevel = 1, - maxLevel = 2, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Shield, - icon = Res.ResourceLoader.GetTexture(99), - }; - new BaseItem(new Stat[][] - { - new [] {FIRE_DAMAGE}, - new [] {MAX_ENERGY,MAX_LIFE,MAX_ENERGY_MULT,MAX_LIFE_MULT}, - new [] {STRENGTH,INTELLIGENCE,AGILITY,SPELL_COST_REDUCTION}, - new [] {SPELL_DAMAGE_MULTIPLIER,BASE_SPELL_DAMAGE, INTELLIGENCE ,ALL_ATTRIBUTES}, - new [] {SPELL_DAMAGE_MULTIPLIER,BASE_SPELL_DAMAGE, INTELLIGENCE ,ALL_ATTRIBUTES}, - new [] {ARMOR,DAMAGE_REDUCTION}, - new [] {ELITE_DAMAGE_REDUCTION,LOOT_QUANTITY,MOVEMENT_SPEED,ARMOR}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_517/*Pyromancy Mask*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_518("200%")/*Ignited enemies burn for 200% extended perioid of time.*/, //tr - rarity = 5, - minLevel = 2, - maxLevel = 6, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Helmet, - icon = Res.ResourceLoader.GetTexture(91), - onEquipCallback = () => ModdedPlayer.Stats.fireDuration.Add(2f), - onUnequipCallback = () => ModdedPlayer.Stats.fireDuration.Sub(2f), - }.statSlots[0][0].multipier = 2; - - new BaseItem(new Stat[][] - { - new [] {FIRE_DAMAGE}, - new [] {SPELL_DMG_FROM_INT,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI}, - new [] {MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY}, - new [] {MAX_ENERGY,MAX_LIFE,MAX_ENERGY_MULT,MAX_LIFE_MULT}, - new [] {STRENGTH,INTELLIGENCE,AGILITY,SPELL_COST_REDUCTION}, - new [] {SPELL_DAMAGE_MULTIPLIER,BASE_SPELL_DAMAGE, INTELLIGENCE ,ALL_ATTRIBUTES}, - new [] {SPELL_DAMAGE_MULTIPLIER,BASE_SPELL_DAMAGE, INTELLIGENCE ,ALL_ATTRIBUTES}, - new [] {ALL}, - new [] {ALL}, - new [] {ARMOR,DAMAGE_REDUCTION}, - new [] {ELITE_DAMAGE_REDUCTION,LOOT_QUANTITY,MOVEMENT_SPEED,ARMOR}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_519/*Ember Mask*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_520("700%")/*Ignited enemies burn for 300% extended perioid of time and fire ticks thrice as fast.*/, //tr - rarity = 7, - minLevel = 2, - maxLevel = 6, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Helmet, - icon = Res.ResourceLoader.GetTexture(91), - onEquipCallback = () => { ModdedPlayer.Stats.fireDuration.Add(7f); ModdedPlayer.Stats.fireTickRate.Add(3f); }, - onUnequipCallback = () => { ModdedPlayer.Stats.fireDuration.Sub(7f); ModdedPlayer.Stats.fireTickRate.Sub(3f); }, - }.statSlots[0][0].multipier = 5; - - - new BaseItem(new Stat[][] - { - new [] {FIRE_DAMAGE}, - new [] {ARMOR,DODGE_CHANCE}, - new [] {MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI}, - new [] {MAX_ENERGY,MAX_LIFE,MAX_ENERGY_MULT,MAX_LIFE_MULT}, - new [] {STRENGTH,INTELLIGENCE,AGILITY,SPELL_COST_REDUCTION,PROJECTILE_SPEED,PROJECTILE_SIZE}, - new [] {SPELL_DAMAGE_MULTIPLIER,BASE_SPELL_DAMAGE, INTELLIGENCE ,ALL_ATTRIBUTES}, - new [] {SPELL_DAMAGE_MULTIPLIER,BASE_SPELL_DAMAGE, INTELLIGENCE ,ALL_ATTRIBUTES}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ARMOR,DAMAGE_REDUCTION}, - new [] {ELITE_DAMAGE_REDUCTION,LOOT_QUANTITY,MOVEMENT_SPEED,ARMOR}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_521/*Flame Pauldrons*/, //tr - description = "", //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_522(10, "750%")/*Firebolt costs 30 additional energy to cast and its damage scaling is increased by 250%*/, //tr - rarity = 7, - minLevel = 5, - maxLevel = 8, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.ShoulderArmor, - icon = Res.ResourceLoader.GetTexture(95), - onEquipCallback = () => - { - ModdedPlayer.Stats.spell_fireboltEnergyCost.Add(5); - ModdedPlayer.Stats.spell_fireboltDamageScaling.Add(7.5f); - }, - onUnequipCallback = () => - { - ModdedPlayer.Stats.spell_fireboltEnergyCost.Sub(5); - ModdedPlayer.Stats.spell_fireboltDamageScaling.Sub(7.5f); - }, - }; - new BaseItem(new Stat[][] - { - new [] {SPELL_DMG_FROM_INT}, - new [] {MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY}, - new [] {MAX_ENERGY,MAX_LIFE,MAX_ENERGY_MULT,MAX_LIFE_MULT}, - new [] {STRENGTH,INTELLIGENCE,AGILITY,SPELL_COST_REDUCTION,COOLDOWN_REDUCTION,SPELL_COST_TO_STAMINA}, - new [] {SPELL_DAMAGE_MULTIPLIER,BASE_SPELL_DAMAGE, INTELLIGENCE ,ALL_ATTRIBUTES}, - new [] {SPELL_DAMAGE_MULTIPLIER,BASE_SPELL_DAMAGE, INTELLIGENCE ,ALL_ATTRIBUTES}, - new [] {ALL}, - new [] {ALL}, - new [] {ELITE_DAMAGE_REDUCTION,ENERGY_ON_HIT,ENERGY_REGEN_BASE,STAMINA_AND_ENERGY_REGEN_MULT,STAMINA_REGEN_BASE}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_523/*Ancient Scroll*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_607/*Firebolt deals increased damage*/, //tr - rarity = 6, - minLevel = 1, - maxLevel = 1, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.SpellScroll, - icon = Res.ResourceLoader.GetTexture(110), - onEquipCallback = () => ModdedPlayer.Stats.spell_fireboltDamageScaling.Add(8), - onUnequipCallback = () => ModdedPlayer.Stats.spell_fireboltDamageScaling.Sub(8), - }; - new BaseItem(new Stat[][] - { - new [] {SPELL_DMG_FROM_INT}, - new [] {MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY}, - new [] {MAX_ENERGY,MAX_LIFE,MAX_ENERGY_MULT,MAX_LIFE_MULT}, - new [] {STRENGTH,INTELLIGENCE,AGILITY,SPELL_COST_REDUCTION,COOLDOWN_REDUCTION,SPELL_COST_TO_STAMINA}, - new [] {SPELL_DAMAGE_MULTIPLIER,BASE_SPELL_DAMAGE, INTELLIGENCE ,ALL_ATTRIBUTES}, - new [] {SPELL_DAMAGE_MULTIPLIER,BASE_SPELL_DAMAGE, INTELLIGENCE ,ALL_ATTRIBUTES}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ELITE_DAMAGE_REDUCTION,ENERGY_ON_HIT,ENERGY_REGEN_BASE,STAMINA_AND_ENERGY_REGEN_MULT,STAMINA_REGEN_BASE}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_524/*Guide on Tearing Spacetime*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_525/*Blink creates an explosion at the exit point, and the damage of the explosion is increased by velocity and the radius is increased by the distance of blink*/, //tr - rarity = 7, - minLevel = 1, - maxLevel = 1, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.SpellScroll, - icon = Res.ResourceLoader.GetTexture(110), - onEquipCallback = () => ModdedPlayer.Stats.spell_blinkDoExplosion.value = true, - onUnequipCallback = () => ModdedPlayer.Stats.spell_blinkDoExplosion.value = false, - }; - new BaseItem(new Stat[][] - { - new [] {STRENGTH}, - new [] {MELEE_DAMAGE_INCREASE}, - new [] {ATTACKSPEED}, - new [] {MELEE_DMG_FROM_STR}, - new [] {BLOCK,ARMOR,DAMAGE_REDUCTION}, - new [] {BASE_MELEE_DAMAGE,NONE}, - new [] {BASE_MELEE_DAMAGE,MELEE_DAMAGE_INCREASE,STRENGTH}, - new [] {MELEE_ARMOR_PIERCING,ARMOR_PIERCING,ALL_ATTRIBUTES}, - new [] {ATTACK_COST_REDUCTION,ATTACKSPEED}, - new [] {ALL_ATTRIBUTES,MELEE_WEAPON_RANGE,VITALITY,MAX_LIFE}, - new [] {ENERGY_ON_HIT,VITALITY,LIFE_ON_HIT } - }) - { - name = Translations.ItemDatabase_ItemDefinitions_526/*300th Spear*/, //tr - rarity = 6, - minLevel = 30, - maxLevel = 34, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Weapon, - subtype = ItemDefinition.ItemSubtype.Polearm, - icon = Res.ResourceLoader.GetTexture(181), - }.statSlots[0][0].multipier = 6; - - - - new BaseItem(new Stat[][] - { - new [] {MOVEMENT_SPEED,ATTACKSPEED}, - new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, - new [] {ALL}, - new [] {ALL,NONE}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_527/*Stone Pauldrons*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr - onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.03f), - onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.03f), - rarity = 2, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.ShoulderArmor, - icon = Res.ResourceLoader.GetTexture(95), - }.statSlots[0][0].multipier = -0.3f; - new BaseItem(new Stat[][] - { - new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, - new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, - new [] {ALL,NONE}, - new [] {ALL}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_529/*Iron Shoulder Pads*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr - onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.04f), - onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.04f), - rarity = 3, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.ShoulderArmor, - icon = Res.ResourceLoader.GetTexture(95), - }; - new BaseItem(new Stat[][] - { - new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, - new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, - new [] {ALL,NONE}, - new [] {ALL}, - new [] {ALL}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_531/*Steel Shoulder Pads*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr - onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.05f), - onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.05f), - rarity = 4, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.ShoulderArmor, - icon = Res.ResourceLoader.GetTexture(95), - }; - new BaseItem(new Stat[][] - { - new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, - new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, - new [] {ALL,NONE}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_533/*Battle scarred Shoulder Pads*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr - onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.06f), - onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.06f), - rarity = 5, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.ShoulderArmor, - icon = Res.ResourceLoader.GetTexture(95), - }; - - new BaseItem(new Stat[][] - { - new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, - new [] {MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, - new [] {ALL,NONE}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_535/*Mystery Shoulder Pads*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr - onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.1f), - onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.1f), - rarity = 6, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.ShoulderArmor, - icon = Res.ResourceLoader.GetTexture(95), - }; - - new BaseItem(new Stat[][] - { - new [] {MOVEMENT_SPEED,ATTACKSPEED}, - new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, - new [] {ALL}, - new [] {ALL,NONE}, - new [] {BLOCK}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_537/*Stone Shield*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr - onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.03f), - onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.03f), - rarity = 2, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Shield, - icon = Res.ResourceLoader.GetTexture(99), - }.statSlots[0][0].multipier = -0.3f; - new BaseItem(new Stat[][] - { - new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, - new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, - new [] {ALL,NONE}, - new [] {ALL,NONE}, - new [] {ALL}, - new [] {BLOCK}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_538/*Iron Shield*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr - onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.04f), - onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.04f), - rarity = 3, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Shield, - icon = Res.ResourceLoader.GetTexture(99), - }; - new BaseItem(new Stat[][] - { - new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, - new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, - new [] {ALL,NONE}, - new [] {ALL,NONE}, - new [] {ALL}, - new [] {ALL,ARMOR}, - new [] {BLOCK}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_539/*Steel Tower Shield*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr - onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.05f), - onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.05f), - rarity = 4, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Shield, - icon = Res.ResourceLoader.GetTexture(99), - }; - new BaseItem(new Stat[][] - { - - new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, - new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, - new [] {ALL,NONE}, - new [] {ALL,NONE}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {BLOCK}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_540/*Guardian*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr - onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.06f), - onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.06f), - rarity = 5, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Shield, - icon = Res.ResourceLoader.GetTexture(99), - }; - - new BaseItem(new Stat[][] - { - new [] {BLOCK}, - new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, - new [] {MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, - new [] {ALL,NONE}, - new [] {ALL,NONE}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_541/*Mystery Shield*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr - onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.1f), - onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.1f), - rarity = 6, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Shield, - icon = Res.ResourceLoader.GetTexture(99), - }.statSlots[0][0].multipier = 2f; - - - new BaseItem(new Stat[][] - { - new [] {MOVEMENT_SPEED}, - new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, - new [] {ALL}, - new [] {ALL,NONE}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_542/*Light Boot*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr - onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.03f), - onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.03f), - rarity = 2, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Boot, - icon = Res.ResourceLoader.GetTexture(85), - }.statSlots[0][0].multipier = 1.3f; - new BaseItem(new Stat[][] - { - new [] {MOVEMENT_SPEED}, - new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, - new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, - new [] {ALL,NONE}, - new [] {ALL,NONE}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_543/*Iron Boots*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr - onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.04f), - onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.04f), - rarity = 3, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Boot, - icon = Res.ResourceLoader.GetTexture(85), - }; - new BaseItem(new Stat[][] - { - new [] {MOVEMENT_SPEED}, - new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, - new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, - new [] {ALL,NONE}, - new [] {ALL}, - new [] {ALL,ARMOR}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_544/*Steel Boots*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr - onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.05f), - onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.05f), - rarity = 4, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Boot, - icon = Res.ResourceLoader.GetTexture(85), - }; - new BaseItem(new Stat[][] - { - new [] {MOVEMENT_SPEED}, - new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, - new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, - new [] {ALL,NONE}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_545/*Threads*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr - onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.06f), - onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.06f), - rarity = 5, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Boot, - icon = Res.ResourceLoader.GetTexture(85), - }; - - new BaseItem(new Stat[][] - { - new [] {MOVEMENT_SPEED}, - new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, - new [] {MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, - new [] {ALL,NONE}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_546/*Mystery Boots*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr - onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.1f), - onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.1f), - rarity = 6, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Boot, - icon = Res.ResourceLoader.GetTexture(85), - }; - - - - - new BaseItem(new Stat[][] - { - new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, - new [] {ALL}, - new [] {ALL,NONE}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_547/*Wraps*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr - onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.03f), - onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.03f), - rarity = 2, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Glove, - icon = Res.ResourceLoader.GetTexture(86), - }.statSlots[0][0].multipier = -0.3f; - new BaseItem(new Stat[][] - { - new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, - new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, - new [] {ALL,NONE}, - new [] {ALL}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_301/*Iron Gauntlet*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr - onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.04f), - onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.04f), - rarity = 3, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Glove, - icon = Res.ResourceLoader.GetTexture(86), - }; - new BaseItem(new Stat[][] - { - new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, - new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, - new [] {ALL,NONE}, - new [] {ALL}, - new [] {ALL}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_548/*Steel Gauntlet*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr - onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.05f), - onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.05f), - rarity = 4, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Glove, - icon = Res.ResourceLoader.GetTexture(86), - }; - new BaseItem(new Stat[][] - { - new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, - new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, - new [] {ALL,NONE}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_549/*Titanium Gauntlet*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr - onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.06f), - onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.06f), - rarity = 5, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Glove, - icon = Res.ResourceLoader.GetTexture(86), - }; - - new BaseItem(new Stat[][] - { - new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, - new [] {MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, - new [] {ALL,NONE}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_550/*Mystery Gauntlet*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr - onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.1f), - onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.1f), - rarity = 6, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Glove, - icon = Res.ResourceLoader.GetTexture(86), - }; - - - - new BaseItem(new Stat[][] - { - new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, - new [] {ALL}, - new [] {ALL,NONE}, - new [] {ALL,NONE}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_551/*Leather Tasset*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr - onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.03f), - onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.03f), - rarity = 2, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Pants, - icon = Res.ResourceLoader.GetTexture(87), - }.statSlots[0][0].multipier = -0.3f; - new BaseItem(new Stat[][] - { - new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, - new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, - new [] {ALL,NONE}, - new [] {ALL,NONE}, - new [] {ALL}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_552/*Iron Tasset*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr - onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.04f), - onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.04f), - rarity = 3, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Pants, - icon = Res.ResourceLoader.GetTexture(87), - }; - new BaseItem(new Stat[][] - { - new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, - new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, - new [] {ALL,NONE}, - new [] {ALL,NONE}, - new [] {ALL}, - new [] {ALL}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_553/*Steel Tasset*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr - onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.05f), - onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.05f), - rarity = 4, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Pants, - icon = Res.ResourceLoader.GetTexture(87), - }; - new BaseItem(new Stat[][] - { - new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, - new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, - new [] {ALL,NONE}, - new [] {ALL,NONE}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_554/*Black Steel Leggins*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr - onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.06f), - onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.06f), - rarity = 5, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Pants, - icon = Res.ResourceLoader.GetTexture(87), - }; - - new BaseItem(new Stat[][] - { - new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, - new [] {MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, - new [] {ALL,NONE}, - new [] {ALL,NONE}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_555/*Mystery Leggins*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr - onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.1f), - onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.1f), - rarity = 6, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Pants, - icon = Res.ResourceLoader.GetTexture(87), - }; - - new BaseItem(new Stat[][] - { - new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, - new [] {ALL}, - new [] {ALL,NONE}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_556/*Leather Vest*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr - onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.03f), - onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.03f), - rarity = 2, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.ChestArmor, - icon = Res.ResourceLoader.GetTexture(96), - }.statSlots[0][0].multipier = -0.3f; - new BaseItem(new Stat[][] - { - new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, - new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, - new [] {ALL,NONE}, - new [] {ALL}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_557/*Iron Breastplate*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr - onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.04f), - onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.04f), - rarity = 3, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.ChestArmor, - icon = Res.ResourceLoader.GetTexture(96), - }; - new BaseItem(new Stat[][] - { - new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, - new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, - new [] {ALL,NONE}, - new [] {ALL}, - new [] {ALL}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_558/*Steel Breastplate*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr - onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.05f), - onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.05f), - rarity = 4, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.ChestArmor, - icon = Res.ResourceLoader.GetTexture(96), - }; - new BaseItem(new Stat[][] - { - new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, - new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, - new [] {ALL,NONE}, - new [] {ALL,NONE}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_559/*Silver Armor*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr - onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.06f), - onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.06f), - rarity = 5, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.ChestArmor, - icon = Res.ResourceLoader.GetTexture(96), - }; - - new BaseItem(new Stat[][] - { - new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, - new [] {MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, - new [] {ALL,NONE}, - new [] {ALL,NONE}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_560/*Mystery Breastplate*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr - onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.1f), - onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.1f), - rarity = 6, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.ChestArmor, - icon = Res.ResourceLoader.GetTexture(96), - }; - - new BaseItem(new Stat[][] - { - new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, - new [] {ALL}, - new [] {ALL,NONE}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_561/*Cloth Band*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr - onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.03f), - onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.03f), - rarity = 2, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Bracer, - icon = Res.ResourceLoader.GetTexture(93), - }.statSlots[0][0].multipier = -0.3f; - new BaseItem(new Stat[][] - { - new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, - new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, - new [] {ALL,NONE}, - new [] {ALL}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_562/*Iron Wristguard*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr - onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.04f), - onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.04f), - rarity = 3, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Bracer, - icon = Res.ResourceLoader.GetTexture(93), - }; - new BaseItem(new Stat[][] - { - new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, - new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, - new [] {ALL,NONE}, - new [] {ALL}, - new [] {ALL}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_563/*Steel Wristguard*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr - onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.05f), - onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.05f), - rarity = 4, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Bracer, - icon = Res.ResourceLoader.GetTexture(93), - }; - new BaseItem(new Stat[][] - { - new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, - new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, - new [] {ALL,NONE}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_564/*Baron Wristguards*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr - onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.06f), - onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.06f), - rarity = 5, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Bracer, - icon = Res.ResourceLoader.GetTexture(93), - }; - - new BaseItem(new Stat[][] - { - new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, - new [] {MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, - new [] {ALL,NONE}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_565/*Mystery Wristguards*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr - onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.1f), - onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.1f), - rarity = 6, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Bracer, - icon = Res.ResourceLoader.GetTexture(93), - }; - - - new BaseItem(new Stat[][] - { - new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, - new [] {ALL}, - new [] {ALL,NONE}, - new [] {ALL,NONE}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_218/*Horned Helmet*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr - onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.03f), - onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.03f), - rarity = 2, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Helmet, - icon = Res.ResourceLoader.GetTexture(91), - }.statSlots[0][0].multipier = -0.3f; - new BaseItem(new Stat[][] - { - new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, - new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, - new [] {ALL,NONE}, - new [] {ALL,NONE}, - new [] {ALL}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_566/*Iron Helmet*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr - onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.04f), - onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.04f), - rarity = 3, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Helmet, - icon = Res.ResourceLoader.GetTexture(91), - }; - new BaseItem(new Stat[][] - { - new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, - new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, - new [] {ALL,NONE}, - new [] {ALL,NONE}, - new [] {ALL}, - new [] {ALL}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_567/*Steel Helmet*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr - onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.05f), - onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.05f), - rarity = 4, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Helmet, - icon = Res.ResourceLoader.GetTexture(91), - }; - new BaseItem(new Stat[][] - { - new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, - new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, - new [] {ALL,NONE}, - new [] {ALL,NONE}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_568/*Armored Hood*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr - onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.06f), - onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.06f), - rarity = 5, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Helmet, - icon = Res.ResourceLoader.GetTexture(91), - }; - - new BaseItem(new Stat[][] - { - new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, - new [] {MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, - new [] {ALL,NONE}, - new [] {ALL,NONE}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_569/*Mystery Helmet*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr - onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.1f), - onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.1f), - rarity = 6, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Helmet, - icon = Res.ResourceLoader.GetTexture(91), - }; - - new BaseItem(new Stat[][] - { - new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, - new [] {MELEE_DMG_FROM_STR,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, - new [] {MELEE_DAMAGE_INCREASE,MELEE_WEAPON_RANGE,BASE_MELEE_DAMAGE,STRENGTH}, - new [] {MELEE_DAMAGE_INCREASE,ATTACKSPEED,BASE_MELEE_DAMAGE,STRENGTH}, - new [] {CRIT_CHANCE,CRIT_DAMAGE,}, - new [] {MELEE_DAMAGE_INCREASE,NONE,MAX_LIFE,MAX_LIFE_MULT}, - new [] {STRENGTH,VITALITY,INTELLIGENCE,ATTACKSPEED,ATTACK_COST_REDUCTION,COOLDOWN_REDUCTION}, - new [] {ALL}, - new [] {ALL,NONE}, - new [] {ALL,NONE}, - new [] {ALL}, - new [] {ARMOR,DAMAGE_REDUCTION}, - new [] {EMPTYSOCKET,NONE}, - new [] {EMPTYSOCKET,NONE}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_570/*Yorium's Gaze*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_571("30%")/*SET PIECE. Melee weapon range is increased by 30%, attack cost in stamina is halved.*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_572(15, "35%", 15, "5%")/*Set Piece:\n2 Pieces- Berserk does not apply exhaustion when it ends\n3 Pieces - Berserk duration is increased by 15 seconds\n4 Pieces - Each second of berserk being in effect increases damage by 35%.\n5 Pieces - For the first 15 seconds of Berserk attack speed increases by 30% per second, and lasts till the end of the spell's duration.*/, //tr - onEquipCallback = () => BerserkSet.Equip(), - onUnequipCallback = () => BerserkSet.Unequip(), - rarity = 7, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Helmet, - icon = Res.ResourceLoader.GetTexture(91), - }; - new BaseItem(new Stat[][] - { - new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, - new [] {MELEE_DMG_FROM_STR,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, - new [] {MELEE_DAMAGE_INCREASE,MELEE_WEAPON_RANGE,BASE_MELEE_DAMAGE,STRENGTH}, - new [] {MELEE_DAMAGE_INCREASE,ATTACKSPEED,BASE_MELEE_DAMAGE,STRENGTH}, - new [] {MAX_LIFE}, - new [] {MELEE_DAMAGE_INCREASE,MAX_LIFE,MAX_LIFE_MULT}, - new [] {STRENGTH,VITALITY,INTELLIGENCE,ATTACKSPEED,ATTACK_COST_REDUCTION,COOLDOWN_REDUCTION}, - new [] {ALL}, - new [] {ALL,NONE}, - new [] {ALL,NONE}, - new [] {ALL}, - new [] {ALL}, - new [] {ARMOR,DAMAGE_REDUCTION,ALL_ATTRIBUTES}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_573/*Yorium's Ruthlessness*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_571("30%")/*SET PIECE. Melee weapon range is increased by 30%, attack cost in stamina is halved.*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_572(15, "35%", 15, "5%")/*Set Piece:\n2 Pieces- Berserk does not apply exhaustion when it ends\n3 Pieces - Berserk duration is increased by 15 seconds\n4 Pieces - Each second of berserk being in effect increases damage by 35%.\n5 Pieces - For the first 15 seconds of Berserk attack speed increases by 30% per second, and lasts till the end of the spell's duration.*/, //tr - onEquipCallback = () => BerserkSet.Equip(), - onUnequipCallback = () => BerserkSet.Unequip(), - rarity = 7, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.ChestArmor, - icon = Res.ResourceLoader.GetTexture(96), - }; - - new BaseItem(new Stat[][] - { - new [] {ALL,}, - new [] {MELEE_DMG_FROM_STR,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, - new [] {MELEE_DAMAGE_INCREASE,MELEE_WEAPON_RANGE,BASE_MELEE_DAMAGE,STRENGTH}, - new [] {MELEE_DAMAGE_INCREASE,ATTACKSPEED,BASE_MELEE_DAMAGE,STRENGTH}, - new [] {MAX_LIFE}, - new [] {MELEE_DAMAGE_INCREASE,MAX_LIFE,MAX_LIFE_MULT}, - new [] {STRENGTH,VITALITY,INTELLIGENCE,ATTACKSPEED,ATTACK_COST_REDUCTION,COOLDOWN_REDUCTION}, - new [] {ALL}, - new [] {ALL,NONE}, - new [] {ALL,NONE}, - new [] {ALL}, - new [] {ALL}, - new [] {ARMOR,DAMAGE_REDUCTION,ALL_ATTRIBUTES}, - new [] {EMPTYSOCKET,NONE}, - new [] {EMPTYSOCKET,NONE}, - new [] {EMPTYSOCKET,NONE}, - - }) - { - name = Translations.ItemDatabase_ItemDefinitions_574/*Yorium's Burden*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_571("30%")/*SET PIECE. Melee weapon range is increased by 30%, attack cost in stamina is halved.*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_572(15, "35%", 15, "5%")/*Set Piece:\n2 Pieces- Berserk does not apply exhaustion when it ends\n3 Pieces - Berserk duration is increased by 15 seconds\n4 Pieces - Each second of berserk being in effect increases damage by 35%.\n5 Pieces - For the first 15 seconds of Berserk attack speed increases by 30% per second, and lasts till the end of the spell's duration.*/, //tr - onEquipCallback = () => BerserkSet.Equip(), - onUnequipCallback = () => BerserkSet.Unequip(), - rarity = 7, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.ShoulderArmor, - icon = Res.ResourceLoader.GetTexture(95), - }; - new BaseItem(new Stat[][] - { - new [] {ALL,}, - new [] {MELEE_DMG_FROM_STR,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, - new [] {MELEE_DAMAGE_INCREASE,MELEE_WEAPON_RANGE,BASE_MELEE_DAMAGE,STRENGTH}, - new [] {MELEE_DAMAGE_INCREASE,ATTACKSPEED,BASE_MELEE_DAMAGE,STRENGTH}, - new [] {MAX_LIFE}, - new [] {MELEE_DAMAGE_INCREASE,MAX_LIFE,MAX_LIFE_MULT}, - new [] {STRENGTH,VITALITY,INTELLIGENCE,ATTACKSPEED,ATTACK_COST_REDUCTION,COOLDOWN_REDUCTION}, - new [] {ALL}, - new [] {ALL,NONE}, - new [] {ALL,NONE}, - new [] {ALL}, - new [] {ALL}, - new [] {ARMOR,DAMAGE_REDUCTION,ALL_ATTRIBUTES}, - new [] {EMPTYSOCKET,NONE}, - new [] {EMPTYSOCKET,NONE}, - new [] {EMPTYSOCKET,NONE}, - - }) - { - name = Translations.ItemDatabase_ItemDefinitions_575/*Yorium's Resolve*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_571("30%")/*SET PIECE. Melee weapon range is increased by 30%, attack cost in stamina is halved.*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_572(15, "35%", 15, "5%")/*Set Piece:\n2 Pieces- Berserk does not apply exhaustion when it ends\n3 Pieces - Berserk duration is increased by 15 seconds\n4 Pieces - Each second of berserk being in effect increases damage by 35%.\n5 Pieces - For the first 15 seconds of Berserk attack speed increases by 30% per second, and lasts till the end of the spell's duration.*/, //tr - onEquipCallback = () => BerserkSet.Equip(), - onUnequipCallback = () => BerserkSet.Unequip(), - rarity = 7, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Bracer, - icon = Res.ResourceLoader.GetTexture(93), - }; - new BaseItem(new Stat[][] - { - new [] {MOVEMENT_SPEED}, - new [] {MELEE_DMG_FROM_STR,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, - new [] {MELEE_DAMAGE_INCREASE,MELEE_WEAPON_RANGE,BASE_MELEE_DAMAGE,STRENGTH}, - new [] {MELEE_DAMAGE_INCREASE,ATTACKSPEED,BASE_MELEE_DAMAGE,STRENGTH}, - new [] {MAX_LIFE}, - new [] {MELEE_DAMAGE_INCREASE,MAX_LIFE,MAX_LIFE_MULT}, - new [] {STRENGTH,VITALITY,INTELLIGENCE,ATTACKSPEED,ATTACK_COST_REDUCTION,COOLDOWN_REDUCTION}, - new [] {ALL}, - new [] {ALL,NONE}, - new [] {ALL,NONE}, - new [] {ALL}, - new [] {ALL}, - new [] {ARMOR,DAMAGE_REDUCTION,ALL_ATTRIBUTES}, - new [] {EMPTYSOCKET,NONE}, - new [] {EMPTYSOCKET,NONE}, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_576/*Atomic Augmentation*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_571("30%")/*SET PIECE. Melee weapon range is increased by 30%, attack cost in stamina is halved.*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_572(15, "35%", 15, "5%")/*Set Piece:\n2 Pieces- Berserk does not apply exhaustion when it ends\n3 Pieces - Berserk duration is increased by 15 seconds\n4 Pieces - Each second of berserk being in effect increases damage by 35%.\n5 Pieces - For the first 15 seconds of Berserk attack speed increases by 30% per second, and lasts till the end of the spell's duration.*/, //tr - onEquipCallback = () => BerserkSet.Equip(), - onUnequipCallback = () => BerserkSet.Unequip(), - rarity = 7, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Boot, - icon = Res.ResourceLoader.GetTexture(85), - }; - new BaseItem(new Stat[][] - { - new [] {ALL,}, - new [] {MELEE_DMG_FROM_STR,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, - new [] {MELEE_DAMAGE_INCREASE,MELEE_WEAPON_RANGE,BASE_MELEE_DAMAGE,STRENGTH}, - new [] {MELEE_DAMAGE_INCREASE,ATTACKSPEED,BASE_MELEE_DAMAGE,STRENGTH}, - new [] {MAX_LIFE}, - new [] {MELEE_DAMAGE_INCREASE,MAX_LIFE,MAX_LIFE_MULT}, - new [] {STRENGTH,VITALITY,INTELLIGENCE,ATTACKSPEED,ATTACK_COST_REDUCTION,COOLDOWN_REDUCTION}, - new [] {ALL}, - new [] {ALL,NONE}, - new [] {ALL,NONE}, - new [] {ALL}, - new [] {ALL}, - new [] {ARMOR,DAMAGE_REDUCTION,ALL_ATTRIBUTES}, - new [] {EMPTYSOCKET,NONE}, - new [] {EMPTYSOCKET,NONE}, - new [] {EMPTYSOCKET,NONE}, - - }) - { - name = Translations.ItemDatabase_ItemDefinitions_577/*Yorium's Assault*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_571("30%")/*SET PIECE. Melee weapon range is increased by 30%, attack cost in stamina is halved.*/, //tr - description = Translations.ItemDatabase_ItemDefinitions_572(15, "35%", 15, "5%")/*Set Piece:\n2 Pieces- Berserk does not apply exhaustion when it ends\n3 Pieces - Berserk duration is increased by 15 seconds\n4 Pieces - Each second of berserk being in effect increases damage by 35%.\n5 Pieces - For the first 15 seconds of Berserk attack speed increases by 30% per second, and lasts till the end of the spell's duration.*/, //tr - onEquipCallback = () => BerserkSet.Equip(), - onUnequipCallback = () => BerserkSet.Unequip(), - rarity = 7, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Glove, - icon = Res.ResourceLoader.GetTexture(86), - }; - new BaseItem(new Stat[][] - { - new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, - new [] {MELEE_DMG_FROM_STR,MAX_ENERGY_FROM_AGILITY,RANGED_DMG_FROM_AGI,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, - new [] {MELEE_DAMAGE_INCREASE,BASE_MELEE_DAMAGE,STRENGTH}, - new [] {RANGED_DAMAGE_INCREASE,BASE_RANGED_DAMAGE,AGILITY}, - new [] {SPELL_DAMAGE_MULTIPLIER,BASE_SPELL_DAMAGE,INTELLIGENCE}, - new [] {ALL}, - new [] {MAX_LIFE}, - new [] {MAX_LIFE,MAX_LIFE_MULT,MAX_ENERGY,MAX_ENERGY_MULT}, - new [] {STRENGTH,VITALITY,INTELLIGENCE,AGILITY,ALL_ATTRIBUTES,ATTACKSPEED,ATTACK_COST_REDUCTION,SPELL_COST_REDUCTION,COOLDOWN_REDUCTION}, - new [] {ALL}, - new [] {ALL,NONE}, - new [] {ALL,NONE}, - new [] {ALL}, - new [] {ALL}, - new [] {ARMOR,DAMAGE_REDUCTION,ALL_ATTRIBUTES,NONE}, - - }) - { - name = Translations.ItemDatabase_ItemDefinitions_578/*Undying Promise*/, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_579(1)/*Resist lethal damage on a 1 minute cooldown*/, //tr - onEquipCallback = () => COTFEvents.Instance.OnTakeLethalDamage.AddListener(UniqueItemFunctions.ResistDeath), - onUnequipCallback = () => COTFEvents.Instance.OnTakeLethalDamage.RemoveListener(UniqueItemFunctions.ResistDeath), - rarity = 7, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Pants, - icon = Res.ResourceLoader.GetTexture(87), - }; - new BaseItem(new Stat[][] - { - new [] {CRIT_DAMAGE}, - new [] {STRENGTH,VITALITY,INTELLIGENCE,AGILITY }, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ARMOR,DAMAGE_REDUCTION }, - new [] {MAX_LIFE}, - - }) - { - name = Translations.ItemDatabase_ItemDefinitions_609, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_610, //tr - rarity = 7, - minLevel = 20, - maxLevel = 28, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Pants, - icon = Res.ResourceLoader.GetTexture(87), - onEquipCallback = () => { ModdedPlayer.Stats.spell_frenzy_active_critChance.Add(0.05f); ModdedPlayer.Stats.spell_frenzyAtkSpeed.Add(0.03f); }, - onUnequipCallback = () => { ModdedPlayer.Stats.spell_frenzy_active_critChance.Sub(0.05f); ModdedPlayer.Stats.spell_frenzyAtkSpeed.Add(0.03f); }, - }; - - - - new BaseItem(new Stat[][] - { - new [] {BASE_MELEE_DAMAGE,BASE_SPELL_DAMAGE}, - new [] {BASE_MELEE_DAMAGE,BASE_SPELL_DAMAGE}, - new [] {STRENGTH,VITALITY,INTELLIGENCE,AGILITY }, - new [] {MELEE_DAMAGE_INCREASE, SPELL_DAMAGE_MULTIPLIER }, - new [] {ATTACKSPEED}, - new [] {CRIT_CHANCE}, - new [] {CRIT_DAMAGE}, - new [] {MELEE_DMG_FROM_STR}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {BLOCK, NONE}, - new [] {MAX_LIFE}, - - }) - { - name = Translations.ItemDatabase_ItemDefinitions_611, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_612("300%"), //tr - rarity = 7, - minLevel = 6, - maxLevel = 9, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Weapon, - subtype = ItemDefinition.ItemSubtype.GreatSword, - icon = Res.ResourceLoader.GetTexture(88), - onEquipCallback = () => ModdedPlayer.Stats.spell_berserkDamage.Add(3f), - onUnequipCallback = () => ModdedPlayer.Stats.spell_berserkDamage.Sub(3f), - }.statSlots[0][0].multipier = 5; - new BaseItem(new Stat[][] - { - new [] {BASE_MELEE_DAMAGE,BASE_SPELL_DAMAGE}, - new [] {BASE_MELEE_DAMAGE, NONE}, - new [] {STRENGTH,VITALITY,INTELLIGENCE,AGILITY }, - new [] {MELEE_DAMAGE_INCREASE, SPELL_DAMAGE_MULTIPLIER }, - new [] {ATTACKSPEED}, - new [] {CRIT_CHANCE}, - new [] {CRIT_DAMAGE}, - new [] {MELEE_DMG_FROM_STR}, - new [] {STRENGTH}, - new [] {ALL}, - new [] {ALL}, - - }) - { - name = Translations.ItemDatabase_ItemDefinitions_613, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_612("100%"), //tr - rarity = 6, - minLevel = 6, - maxLevel = 9, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Weapon, - subtype = ItemDefinition.ItemSubtype.GreatSword, - icon = Res.ResourceLoader.GetTexture(88), - onEquipCallback = () => ModdedPlayer.Stats.spell_berserkDamage.Add(1f), - onUnequipCallback = () => ModdedPlayer.Stats.spell_berserkDamage.Sub(1f), - }.statSlots[0][0].multipier = 2; - - new BaseItem(new Stat[][] - { - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {BASE_SPELL_DAMAGE,BASE_RANGED_DAMAGE,BASE_MELEE_DAMAGE, NONE}, - new [] {SPELL_DMG_FROM_INT,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,DAMAGE_REDUCTION}, - new [] {ALL_ATTRIBUTES,AGILITY,STRENGTH,INTELLIGENCE,VITALITY}, - - }) - { - name = Translations.ItemDatabase_ItemDefinitions_614, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_615("10%"), //tr - rarity = 5, - minLevel = 6, - maxLevel = 9, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(100), - onEquipCallback = () => - { - ModdedPlayer.Stats.spell_berserkAttackSpeed.Add(0.1f); - ModdedPlayer.Stats.spell_berserkMovementSpeed.Add(0.1f); - }, - onUnequipCallback = () => - { - ModdedPlayer.Stats.spell_berserkAttackSpeed.Sub(0.1f); - ModdedPlayer.Stats.spell_berserkMovementSpeed.Sub(0.1f); - }, - }; - new BaseItem(new Stat[][] - { - new [] {STRENGTH,VITALITY,AGILITY,ALL_ATTRIBUTES,INTELLIGENCE}, - new [] {MAX_ENERGY_FROM_AGILITY,MELEE_DMG_FROM_STR,SPELL_DMG_FROM_INT,RANGED_DMG_FROM_AGI,MAX_HEALTH_FROM_VITALITY}, - new [] {ARMOR,DAMAGE_REDUCTION}, - new [] { CRIT_CHANCE, CRIT_DAMAGE}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {ALL}, - new [] {BASE_SPELL_DAMAGE,BASE_RANGED_DAMAGE,BASE_MELEE_DAMAGE, NONE}, - new [] {SPELL_DMG_FROM_INT,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,DAMAGE_REDUCTION}, - - }) - { - name = Translations.ItemDatabase_ItemDefinitions_616, //tr - uniqueStat = $"Berserk increases melee and ranged damage by 100%, increases movement speed by 30% and attack speed by 15%", //tr - rarity = 7, - minLevel = 60, - maxLevel = 62, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Amulet, - icon = Res.ResourceLoader.GetTexture(100), - onEquipCallback = () => - { - ModdedPlayer.Stats.meleeIncreasedDmg.Multiply(2f); - ModdedPlayer.Stats.rangedIncreasedDmg.Multiply(2f); - ModdedPlayer.Stats.spell_berserkAttackSpeed.Add(0.15f); - ModdedPlayer.Stats.spell_berserkMovementSpeed.Add(0.3f); - }, - onUnequipCallback = () => - { - ModdedPlayer.Stats.meleeIncreasedDmg.Divide(2f); - ModdedPlayer.Stats.rangedIncreasedDmg.Divide(2f); - ModdedPlayer.Stats.spell_berserkAttackSpeed.Sub(0.15f); - ModdedPlayer.Stats.spell_berserkMovementSpeed.Sub(0.3f); - }, - }; - new BaseItem(new Stat[][] - { - new[] { LIFE_REGEN_BASE }, - new[] { ARMOR, NONE, ALL_RECOVERY }, - new[] { ALL}, - new[] { SPELL_DMG_FROM_INT }, - new[] { SPELL_COST_REDUCTION,SPELL_COST_TO_STAMINA,ARMOR,ALL_ATTRIBUTES}, - new[] { BASE_SPELL_DAMAGE, SPELL_DAMAGE_MULTIPLIER, INTELLIGENCE, ALL_ATTRIBUTES }, - new[] { BASE_SPELL_DAMAGE, SPELL_DAMAGE_MULTIPLIER, INTELLIGENCE, DAMAGE_REDUCTION }, - new[] { VITALITY, MAX_HEALTH_FROM_VITALITY, MAX_LIFE, MAX_LIFE_MULT, LIFE_REGEN_BASE, LIFE_ON_HIT }, - new[] { SPELL_COST_REDUCTION, COOLDOWN_REDUCTION, CRIT_CHANCE, CRIT_DAMAGE, ARMOR,MAX_HEALTH_FROM_VITALITY }, - new[] { DAMAGE_REDUCTION, MAX_ENERGY_MULT, LIFE_REGEN_MULT }, - new[] { ENERGY_REGEN_BASE, MAX_ENERGY_MULT, MAX_ENERGY_FROM_AGILITY }, - new[] { INTELLIGENCE, STAMINA_REGEN_BASE, STAMINA_AND_ENERGY_REGEN_MULT, ALL_ATTRIBUTES, ALL_RECOVERY }, - new[] { ENERGY_ON_HIT, ENERGY_REGEN_BASE, MAX_LIFE, MASSACRE_DURATION, LOOT_QUANTITY, EXPLOSION_DAMAGE }, - }) - { - name = Translations.ItemDatabase_ItemDefinitions_617, //tr - uniqueStat = Translations.ItemDatabase_ItemDefinitions_618("100%", "40%"),//tr - rarity = 7, - minLevel = 1, - maxLevel = 3, - canConsume = false, - stackSize = 1, - type = ItemDefinition.ItemType.Bracer, - icon = Res.ResourceLoader.GetTexture(93), - onEquipCallback = () => - { - ModdedPlayer.Stats.spell_healingDomeCooldownRate.Add(1.0f); - ModdedPlayer.Stats.spell_healingDomeSpellCostReduction.Sub(0.4f); - }, - onUnequipCallback = () => - { - ModdedPlayer.Stats.spell_healingDomeCooldownRate.Sub(1.0f); - ModdedPlayer.Stats.spell_healingDomeSpellCostReduction.Add(0.4f); - }, - }; - } +// public static void PopulateOldItems() +// { +// new BaseItem(new int[][] +// { +// new int[] { 34 }, +// new int[] {43,0,39,59,67 }, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_1/*Broken Flip-Flops*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_2/*A pair of damaged shoes. Judging by their condition, i can imagine what happened to their owner.*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_3/*Worn by one of the passengers of the plane that Eric also flew in.*/, //tr +// rarity = 0, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Boot, +// icon = Res.ResourceLoader.GetTexture(85), +// }; +// new BaseItem(new int[][] +// { +// new int[] {34 }, +// new int[] {34,0,40,41 }, +// new int[] {43 }, +// new int[] {43,0 ,67 }, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_4/*Old Boots*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_5/*A pair of old boots. They must have been lying here for ages.*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_6/*Found on the Peninsula, but judging by their condition, they belong neither to a plane passenger nor a cannibal.*/, //tr +// rarity = 0, +// minLevel = 1, +// maxLevel = 2, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Boot, +// icon = Res.ResourceLoader.GetTexture(85), +// }; +// new BaseItem(new int[][] +// { +// new int[] {34 }, +// new int[] {34,40,41 }, +// new int[] {43,3,2 }, +// new int[] {43,65,67 }, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_7/*Damaged Leather Boots*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_8/*A pair of leather boots. They look good and have only some scratches.*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_9/*They arrived to the Peninsula the same way Eric did. Since they were in a baggage, they avoided a lot of damage.*/, //tr +// rarity = 1, +// minLevel = 1, +// maxLevel = 6, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Boot, +// icon = Res.ResourceLoader.GetTexture(85), +// }; +// new BaseItem(new int[][] +// { +// new int[] {34 }, +// new int[] {3,2 }, +// new int[] {43,3,2,1,4 }, +// new int[] {43,65,67 }, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_10/*Sturdy Leather Boots*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_11/*A pair of leather boots. They are in a very good condition.*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_12/*They arrived to the Peninsula the same way Eric did. Eric found them undamaged in their original box. They still had a pricetag - $419,99.*/, //tr +// rarity = 2, +// minLevel = 7, +// maxLevel = 12, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Boot, +// icon = Res.ResourceLoader.GetTexture(85), +// }; +// new BaseItem(new int[][] +// { +// new int[] {34 }, +// new int[] {34,39,41,11,57 }, +// new int[] {-1}, +// new int[] {16,7,8 }, +// new int[] {43,65,67 }, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_13/*Damaged Army Boots*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_14/*Sturdy, hard, resistant but damaged boots.*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_15/*They look modern, almost too modern for everything here.*/, //tr +// rarity = 3, +// minLevel = 4, +// maxLevel = 9, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Boot, +// icon = Res.ResourceLoader.GetTexture(85), +// }; +// new BaseItem(new int[][] +// { +// new int[] {34 }, +// new int[] {34,3,2,11 }, +// new int[] {-1}, +// new int[] {16,7,8 }, +// new int[] {43,65,67 }, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_16/*Army Boots*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_17/*Sturdy, hard, resistant boots.*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_15/*They look modern, almost too modern for everything here.*/, //tr +// rarity = 4, +// minLevel = 10, +// maxLevel = 14, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Boot, +// icon = Res.ResourceLoader.GetTexture(85), +// }; +// new BaseItem(new int[][] +// { +// new int[] {25,22 }, +// new int[] {11,1,3,17 }, +// new int[] {22,1,3,17 }, +// new int[] {28,1,65 }, +// new int[] {-1 }, +// new int[] {5,6,16,31,7,8,9,10 }, +// new int[] {5,6,16,31,7,8,9,10 }, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_18/*Armsy Skin Footwear*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_19/*Severed armsy legs, with all of their insides removed. All thats left is dried mutated skin.*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_20/*Armsy, the second heaviest of the mutants needs very resistant skin. It often drags its legs on the ground when it moves. The skin on their legs grew very thick, and has bone tissue mixed with skin tissue.*/, //tr +// rarity = 6, +// minLevel = 5, +// maxLevel = 8, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Boot, +// icon = Res.ResourceLoader.GetTexture(85), +// }.SetDropOnlyArmsy(); +// new BaseItem(new int[][] +// { +// new int[] {42,0 }, +// new int[] {40,41,26,25,67 }, +// new int[] {43,65,0 }, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_21/*Finger Warmer*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_22/*A little glove to keep your fingers warm and cozy.*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_23/*Made of wool.*/, //tr +// rarity = 0, +// minLevel = 1, +// maxLevel = 2, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Glove, +// icon = Res.ResourceLoader.GetTexture(86), +// }; +// new BaseItem(new int[][] +// { +// new int[] {39,40,41,42,43,24,25,26 }, +// new int[] {39,40,41,42,43,24,25,26,44 }, +// new int[] {43,0,7,0,5,6,8,0,21,22,23,16,67 }, +// new int[] {43,0,7,0,5,6,8,0,0,0,0,21,22,23,65,66,67 }, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_24/*Thick Rubber Glove*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_25/*A glove that helps get a better grip.*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_23/*Made of wool.*/, //tr +// rarity = 1, +// minLevel = 1, +// maxLevel = 2, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Glove, +// icon = Res.ResourceLoader.GetTexture(86), +// }; +// new BaseItem(new int[][] +// { +// new int[] {39,40,41,42}, +// new int[] {39,40,41,42}, +// new int[] {1,2,3,4,5,6,7}, +// new int[] {0,18,14}, +// new int[] {-1 }, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_26/*Tribal Glove*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_27/*Offers medicore protection.*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_28/*Glove made out of thin bones, some may possibly be from a human.*/, //tr +// rarity = 3, +// minLevel = 1, +// maxLevel = 2, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Glove, +// icon = Res.ResourceLoader.GetTexture(86), +// }; +// new BaseItem(new int[][] +// { +// new int[] {1,2,4,6,8,9}, +// new int[] {1,11,65}, +// new int[] {21,22,23}, +// new int[] {12,13,15}, +// new int[] {12,13,24,25,26}, +// new int[] {24,25,26,44,35}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_29/*Tribe Leader Glove*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_30/*A glove that offers little protection but a lot of offensive stats.*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_31/*A glove made of bones, some have engravings of crosses.*/, //tr +// rarity = 4, +// minLevel = 1, +// maxLevel = 4, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Glove, +// icon = Res.ResourceLoader.GetTexture(86), +// }; +// new BaseItem(new int[][] +// { +// new int[] {43,0 }, +// new int[] {43,39,40,41,42 }, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_32/*Worn Shorts*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_33/*Some protection for legs.*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_34/*Short, made out of cheap thin fabric, and on top of that they are damaged. But its better than nothing.*/, //tr +// rarity = 0, +// minLevel = 1, +// maxLevel = 4, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Pants, +// icon = Res.ResourceLoader.GetTexture(87), +// }; +// new BaseItem(new int[][] +// { +// new int[] {1000,1001,1002}, +// new int[] {1000,1001,1002,1003,1004,0,0,0,0}, +// new int[] {8,9,0,0,0,0 }, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_35/*Cargo Shorts*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_36/*No protection at all but they allow to carry more items.*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_37/*They are ugly as hell tho*/, //tr +// rarity = 1, +// minLevel = 1, +// maxLevel = 4, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Pants, +// icon = Res.ResourceLoader.GetTexture(87), +// }; +// new BaseItem(new int[][] +// { +// new int[] {5 }, +// new int[] {43,16,0,41 }, +// new int[] {39,40,41,42,43,44,0,0,0,0,0,0,1003,1004}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_38/*Passenger's Jacket*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_39/*It's a little torn. */, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_40/*This jacket was worn by Preston A. the 34th passenger on the plane. Eric talked to him at the airport. Guy was odd, and now he's dead.*/, //tr +// rarity = 0, +// minLevel = 1, +// maxLevel = 4, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.ChestArmor, +// icon = Res.ResourceLoader.GetTexture(96), +// }; +// new BaseItem(new int[][] +// { +// new int[] {5 }, +// new int[] {1,2,3,4,5,6,65}, +// new int[] {43,16,0,41,3,2,1 }, +// new int[] {6,7,8,9,10,16,17,31, }, +// new int[] {39,40,41,42,43,44,0,0,0,0,0,0,1003,1004}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_41/*Leather Jacket*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_42/*Offers little protection*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_43/*This jacket was in a baggage of one of the plane passengers*/, //tr +// rarity = 1, +// minLevel = 4, +// maxLevel = 7, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.ChestArmor, +// icon = Res.ResourceLoader.GetTexture(96), +// }; +// new BaseItem(new int[][] +// { +// new int[] {5,3,1 }, +// new int[] {5 }, +// new int[] {16}, +// new int[] {7,11 }, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_44/*Boar Skin Armor*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_45/*It's made from a skin of a huge individual. It's heavy and thick, and surely can protect from attacks of weaker enemies.*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_46/*Boar, one of the animals on the peninsula, is rather rare and it's skin is very durable.*/, //tr +// rarity = 1, +// minLevel = 4, +// maxLevel = 8, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.ChestArmor, +// icon = Res.ResourceLoader.GetTexture(96), +// }; +// new BaseItem(new int[][] +// { +// new int[] {5 }, +// new int[] {5,3,4,2,1 }, +// new int[] {14,0,0,0 }, +// new int[] {6,8,9}, +// new int[] {6,8,9}, +// new int[] {12,13,0,65,66 }, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_47/*Crocodile Skin Armor*/, //tr +// rarity = 2, +// minLevel = 7, +// maxLevel = 9, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.ChestArmor, +// icon = Res.ResourceLoader.GetTexture(96), +// }; +// ItemDefinition baseItem1 = new BaseItem(new int[][] +// { +// new int[] {5 }, +// new int[] {16 }, +// new int[] {18,17,16}, +// new int[] {11}, +// new int[] {65,0}, +// new int[] {12,13,1,2,3,4}, +// new int[] {25,22,0}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_48/*Plate armour*/, //tr +// rarity = 4, +// minLevel = 1, +// maxLevel = 5, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.ChestArmor, +// icon = Res.ResourceLoader.GetTexture(96), +// }; +// baseItem1.statSlots[1][0].multipier = 2.5f; +// new BaseItem(new int[][] +// { +// new int[] {5 }, +// new int[] {65 }, +// new int[] {16}, +// new int[] {16,43}, +// new int[] {16,0,43}, +// new int[] {6,8,9}, +// new int[] {45,43,39,42}, +// new int[] {7,10,11,17,18,31,66}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_49/*Bear Skin Armor*/, //tr +// rarity = 3, +// minLevel = 7, +// maxLevel = 8, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.ChestArmor, +// icon = Res.ResourceLoader.GetTexture(96), +// }; +// new BaseItem(new int[][] +// { +// new int[] {5 }, +// new int[] {12,13}, +// new int[] {13,23,26}, +// new int[] {23,26}, +// new int[] {34,2,2}, +// new int[] {15,14}, +// new int[] {16,23,4,5,6,66}, +// new int[] {16,23,4,5,6,0,0,0,0}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_50/*Archer's Gear*/, //tr +// rarity = 5, +// minLevel = 7, +// maxLevel = 9, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.ChestArmor, +// icon = Res.ResourceLoader.GetTexture(96), +// }; +// new BaseItem(new int[][] +// { +// new int[] {5 }, +// new int[] {23,26,2 }, +// new int[] {23,26 }, +// new int[] {12,13}, +// new int[] {13,23,26}, +// new int[] {23,26}, +// new int[] {34,2,2}, +// new int[] {15,14}, +// new int[] {16,23,4,5,6}, +// new int[] {45,46,66}, +// new int[] {27,48}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_51/*Hazard's Gear*/, //tr +// rarity = 6, +// minLevel = 5, +// maxLevel = 6, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.ChestArmor, +// icon = Res.ResourceLoader.GetTexture(96), +// }; +// new BaseItem(new int[][] +// { +// new int[] {47 }, +// new int[] {4,29 }, +// new int[] {4,29 }, +// new int[] {4,29 }, +// new int[] {4,17,6,44,38,21,24,8,9}, +// new int[] {4,17,6,44,38,21,24,8,9}, +// new int[] {4,17,6,44,38,21,24,8,9}, +// new int[] {4,17,6,44,38,21,24,8,9}, +// new int[] {4,17,6,44,38,21,24,8,9}, +// new int[] {4,17,6,44,38,21,24,8,9}, +// new int[] {4,17,6,44,38,21,24,8,9}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_52/*Mysterious robe*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_53/*Magic flows through the entirety of this object. It's made out of unknown material*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_54/*Robe looks like it was created yesterday, but its older than the oldest of mankinds' civilizations. Simply looking at it sends chills down the spine.*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_55/*Empowers cataclysm. The vortex turns blue, damage is increased, freezes enemies */, //tr +// rarity = 7, +// minLevel = 15, +// maxLevel = 20, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.ChestArmor, +// icon = Res.ResourceLoader.GetTexture(96), +// onEquipCallback = () => ModdedPlayer.Stats.spell_cataclysmArcane.value = true, +// onUnequipCallback = () => ModdedPlayer.Stats.spell_cataclysmArcane.value = false +// }; +// new BaseItem(new int[][] +// { +// new int[] {39,40,41,42,44,8,14,49 }, +// new int[] {39,40,41,42,44,8,14,49 }, +// new int[] {0,62,63,64}, +// new int[] {1,0,65}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_56/*Rusty Longsword*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_57/*A long, very heavy sword. Edge got dull over time. Still, it's in a condition that allows me to slice some enemies in half.*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_58/*The sword appears to be from medieval ages, through it's not. It was made a lot later. It never was used as a weapon in battles, because it was merely a decoration.*/, //tr +// rarity = 3, +// minLevel = 13, +// maxLevel = 15, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Weapon, +// subtype = ItemDefinition.ItemSubtype.LongSword, +// icon = Res.ResourceLoader.GetTexture(89), +// }; +// new BaseItem(new int[][] +// { +// new int[] {25 }, +// new int[] {25 ,62,63,64}, +// new int[] {6,49}, +// new int[] {22,0,25,1,2,3,4}, +// new int[] {1,2,3,4}, +// new int[] {39,40,41,42,44,8,18,65 }, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_59/*Longsword*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_60/*Sharp and long*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_61/*The sword is in perfect contidion.*/, //tr +// rarity = 4, +// minLevel = 20, +// maxLevel = 27, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Weapon, +// subtype = ItemDefinition.ItemSubtype.LongSword, +// icon = Res.ResourceLoader.GetTexture(89), +// }; +// new BaseItem(new int[][] +// { +// new int[] {25 }, +// new int[] {6,49}, +// new int[] {22,0,25,1,2,3,4}, +// new int[] {1,2,3,4,8}, +// new int[] {1,2,3,4,8}, +// new int[] {5,6,45,46,16,8}, +// new int[] {39,40,41,42,44,8 }, +// new int[] {39,40,41,42,44,8,62,63,64 }, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_62/*Full Metal Sword*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_63/*It's sooo big...*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_64/*A normal human cannot lift this.*/, //tr +// rarity = 6, +// minLevel = 50, +// maxLevel = 52, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Weapon, +// subtype = ItemDefinition.ItemSubtype.GreatSword, +// icon = Res.ResourceLoader.GetTexture(88), +// }; +// new BaseItem(new int[][] +// { +// new int[] {25,1,3 }, +// new int[] {25,22,1,3 }, +// new int[] {25,22,0,0,0,0 }, +// new int[] {49 }, +// new int[] {14 }, +// new int[] {14,1 }, +// new int[] {14,31,49 }, +// new int[] {14,18,49 }, +// new int[] {38,36,1,3,4,5,6,16 ,62,63,64}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_65/*The Leech*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_66/*Hey where did my health g- oh it's back...*/, //tr +// rarity = 6, +// minLevel = 60, +// maxLevel = 61, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Weapon, +// subtype = ItemDefinition.ItemSubtype.GreatSword, +// icon = Res.ResourceLoader.GetTexture(88), +// }; +// new BaseItem(new int[][] +// { +// new int[] {1,2,3,4 }, +// new int[] {1,2,3,15,4,0,0,0 }, +// new int[] {12,13,1,2,3,4,5, }, +// new int[] {18,16,23,26,19 }, +// new int[] {18,16,23,26 }, +// new int[] {34,44,45,46 }, +// new int[] {2,23,26}, +// new int[] {2,23,26,51}, +// new int[] {2,23,26,20,16,15,60}, +// new int[] {52,66,60,0,0}, +// new int[] {66}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_67/*Smokey's Sacred Quiver*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_68/*SmokeyTheBear died because he never used this item.*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_69/*Smokey was the friend of allmighty Hazard, who can materialize any kind of weapon at the snap of his fingers. Hazard remebered Smokey's favourite playstyle and he gave him this as a gift to purge the sh** out of mutants.*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_70("250%", "500%")/*Crossbows operate at 250% speed and deal 400% increased damage*/, //tr +// rarity = 7, +// minLevel = 5, +// maxLevel = 8, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Quiver, +// icon = Res.ResourceLoader.GetTexture(98), +// onEquipCallback = () => { ModdedPlayer.Stats.i_SmokeyCrossbowQuiver.value = true; ModdedPlayer.Stats.perk_crossbowDamageMult.Multiply(5); }, +// onUnequipCallback = () => +// { +// ModdedPlayer.Stats.i_SmokeyCrossbowQuiver.value = false; +// ModdedPlayer.Stats.perk_crossbowDamageMult.Divide(5); +// }, +// }; +// new BaseItem(new int[][] +// { +// new int[] {0,42 }, +// new int[] {50 }, +// new int[] {43,16 }, +// new int[] {1,0 }, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_71/*Broken shield*/, //tr +// rarity = 0, +// minLevel = 1, +// maxLevel = 2, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Shield, +// icon = Res.ResourceLoader.GetTexture(99), +// }; +// new BaseItem(new int[][] +// { +// new int[] {1,2,3,4,0,42 }, +// new int[] {0,42 }, +// new int[] {50 }, +// new int[] {1,0 }, +// new int[] {43,16 }, +// new int[] {43,16,0,0 }, +// }) +// { +// name = Translations.Item_1/*Shield*/, //tr +// rarity = 1, +// minLevel = 3, +// maxLevel = 6, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Shield, +// icon = Res.ResourceLoader.GetTexture(99), +// }; +// new BaseItem(new int[][] +// { +// new int[] {16}, +// new int[] {16}, +// new int[] {16}, +// new int[] {16,0}, +// new int[] {16,0,45,46}, +// new int[] {0,42,11 }, +// new int[] {50 }, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_72/*Tower Shield*/, //tr +// rarity = 3, +// minLevel = 5, +// maxLevel = 8, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Shield, +// icon = Res.ResourceLoader.GetTexture(99), +// }; +// new BaseItem(new int[][] +// { +// new int[] {5,6,7,8,0,0,0}, +// new int[] {43}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_73/*Broken Leather Shoulder Armor*/, //tr +// rarity = 0, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.ShoulderArmor, +// icon = Res.ResourceLoader.GetTexture(95), +// }; +// new BaseItem(new int[][] +// { +// new int[] {5,6,7,8}, +// new int[] {43}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_74/*Leather Shoulder Armor*/, //tr +// rarity = 1, +// minLevel = 2, +// maxLevel = 5, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.ShoulderArmor, +// icon = Res.ResourceLoader.GetTexture(95), +// }; +// new BaseItem(new int[][] +// { +// new int[] {16}, +// new int[] {1,2,3,4}, +// new int[] {17}, +// new int[] {17}, +// new int[] {8,9,49,47}, +// new int[] {8,9,49,47}, +// new int[] {16,18,11,34}, +// new int[] {37,34}, +// new int[] {-1}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_75/*Phase Pauldrons*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_76/*The distance of blink is increased by 40 meters, and blink now hits everything that you teleported through*/, //tr +// rarity = 7, +// minLevel = 5, +// maxLevel = 9, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.ShoulderArmor, +// icon = Res.ResourceLoader.GetTexture(95), +// onEquipCallback = () => { ModdedPlayer.Stats.spell_blinkRange.Add(40); ModdedPlayer.Stats.spell_blinkDamage.Add(60); }, +// onUnequipCallback = () => { ModdedPlayer.Stats.spell_blinkRange.Sub(40); ModdedPlayer.Stats.spell_blinkDamage.Sub(60); }, +// }; +// new BaseItem(new int[][] +// { +// new int[] {39,49,5,6,7,8,0,0,0}, +// new int[] {43,0}, +// new int[] {43}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_77/*MAGA Cap*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_78/*Wearing this item channels the power of D.Trump to you*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_79/*... or does it?*/, //tr +// rarity = 1, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Helmet, +// icon = Res.ResourceLoader.GetTexture(91), +// }; +// new BaseItem(new int[][] +// { +// new int[] {2000}, +// new int[] {2001}, +// new int[] {2002}, +// new int[] {2003}, +// new int[] {16}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {1,2,3,4}, +// new int[] {21,6}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_80/*Hubble's Vision*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_81/*Wearing this item empowers your black hole spell*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_82/*Man, fuck gravity.*/, //tr +// rarity = 6, +// minLevel = 10, +// maxLevel = 11, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Helmet, +// icon = Res.ResourceLoader.GetTexture(91), +// }; +// new BaseItem(new int[][] +// { +// new int[] {39,40,41,42,43,12,13}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_83/*Broken Loop*/, //tr +// rarity = 0, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Ring, +// icon = Res.ResourceLoader.GetTexture(90), +// }; +// new BaseItem(new int[][] +// { +// new int[] {-1}, +// new int[] {39,40,41,42,43,12,13}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_84/*Loop*/, //tr +// rarity = 1, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Ring, +// icon = Res.ResourceLoader.GetTexture(90), +// }; +// new BaseItem(new int[][] +// { +// new int[] {63}, +// new int[] {-1}, +// new int[] {39,40,41,42,43,12,13,5,6,7,8,9,12,13,15,16,17,18,10,11}, +// new int[] {1,2,3,4,21,22,23,24,25,26,43,12,13}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_85/*Toxic Ring*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_87/*What the fuck did you just fucking say about me, you little bitch? I'll have you know I graduated top of my class in the Navy Seals, and I've been involved in numerous secret raids on Al-Quaeda, and I have over 300 confirmed kills. I am trained in gorilla warfare and I'm the top sniper in the entire US armed forces. You are nothing to me but just another target. I will wipe you the fuck out with precision the likes of which has never been seen before on this Earth, mark my fucking words. You think you can get away with saying that shit to me over the Internet? Think again, fucker. As we speak I am contacting my secret network of spies across the USA and your IP is being traced right now so you better prepare for the storm, maggot. The storm that wipes out the pathetic little thing you call your life. You're fucking dead, kid. I can be anywhere, anytime, and I can kill you in over seven hundred ways, and that's just with my bare hands. Not only am I extensively trained in unarmed combat, but I have access to the entire arsenal of the United States Marine Corps and I will use it to its full extent to wipe your miserable ass off the face of the continent, you little shit. If only you could have known what unholy retribution your little /'clever\' comment was about to bring down upon you, maybe you would have held your fucking tongue. But you couldn't, you didn't, and now you're paying the price, you goddamn idiot. I will shit fury all over you and you will drown in it. You're fucking dead, kiddo."*/, //tr +// rarity = 3, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Ring, +// icon = Res.ResourceLoader.GetTexture(90), +// }; +// new BaseItem(new int[][] +// { +// new int[] {39,40,41,42,43}, +// new int[] {-1}, +// new int[] {-1}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_88/*Scarf*/, //tr +// rarity = 1, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Amulet, +// icon = Res.ResourceLoader.GetTexture(100), +// }; +// new BaseItem(new int[][] +// { +// new int[] {39,40,41,42,43}, +// new int[] {43}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_89/*Damaged Bracer*/, //tr +// rarity = 0, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Bracer, +// icon = Res.ResourceLoader.GetTexture(93), +// }; +// new BaseItem(new int[][] +// { +// new int[] {39,40,41,42,43}, +// new int[] {43}, +// new int[] {16}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_90/*Worn Bracer*/, //tr +// rarity = 1, +// minLevel = 3, +// maxLevel = 10, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Bracer, +// icon = Res.ResourceLoader.GetTexture(93), +// }; +// new BaseItem(new int[][] +// { +// new int[] {39,40,41,42,43}, +// new int[] {16}, +// new int[] {-1}, +// new int[] {5,6,7,8,9,10}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_91/*Leather Bracer*/, //tr +// rarity = 2, +// minLevel = 4, +// maxLevel = 10, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Bracer, +// icon = Res.ResourceLoader.GetTexture(94), +// }; +// new BaseItem(new int[][] +// { +// new int[] {32}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_92/*Greater Mutated Heart*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_93/*Can be consumed by right clicking it*/, //tr +// rarity = 7, +// minLevel = 1, +// maxLevel = 3, +// canConsume = true, +// stackSize = 100, +// type = ItemDefinition.ItemType.Other, +// icon = Res.ResourceLoader.GetTexture(105), +// }; +// new BaseItem(new int[][] +// { +// new int[] {33}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_94/*Lesser Mutated Heart*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_93/*Can be consumed by right clicking it*/, //tr +// rarity = 5, +// minLevel = 1, +// maxLevel = 6, +// canConsume = true, +// stackSize = 1, +// type = ItemDefinition.ItemType.Other, +// icon = Res.ResourceLoader.GetTexture(105), +// }; +// new BaseItem(new int[][] +// { +// new int[] {1,2}, +// new int[] {1,2,3,5,6}, +// new int[] {65}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {53,54}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_95/*Spiked ring*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_96/*Armor piercing for either melee or ranged weapons*/, //tr +// rarity = 4, +// minLevel = 10, +// maxLevel = 16, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Ring, +// icon = Res.ResourceLoader.GetTexture(90), +// }; + +// new BaseItem(new int[][] +// { +// new int[] {1,2,3,4,5,6}, +// new int[] {1,2,3,4,5,6,65}, +// new int[] {-1}, +// new int[] {-1 }, +// new int[] {1,2,3,4,21,22,23,24,25,26,18,16}, +// new int[] {55}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_97/*Piercer*/, //tr +// rarity = 4, +// minLevel = 11, +// maxLevel = 15, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Amulet, +// icon = Res.ResourceLoader.GetTexture(101), +// }; +// new BaseItem(new int[][] +// { +// new int[] {59 }, +// new int[] {21 }, +// new int[] {34,0,40,41 }, +// new int[] {16,34}, +// new int[] {12 }, +// new int[] {-1 }, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_98/*Moon Boots*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_99/*A pair of boots from the moon.*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_100/*It is said that the wearer will not take fall damage while wearing these boots and will jump like on the moon, I wouldn't trust it tough.*/, //tr +// rarity = 4, //range 0-7, 0 is most common, 7 is ultra rare +// minLevel = 10, +// maxLevel = 14, +// canConsume = false, +// stackSize = 1, //stacking in inventory like in mc, one means single item +// type = ItemDefinition.ItemType.Boot, +// icon = Res.ResourceLoader.GetTexture(85), //icon ids, don't worry about that +// }; +// new BaseItem(new int[][] +// { +// new int[] {1}, +// new int[] {1,57,18,36}, +// new int[] {12,13,1}, +// new int[] {22,25,1}, +// new int[] {22,25,1}, +// new int[] {50,53,35}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_101/*Golden Ring of Strength*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_103/*A Golden Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr +// rarity = 5, //range 0-7, 0 is most common, 7 is ultra rare +// minLevel = 10, +// maxLevel = 14, +// canConsume = false, +// stackSize = 1, //stacking in inventory like in mc, one means single item +// type = ItemDefinition.ItemType.Ring, +// icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that +// }; +// new BaseItem(new int[][] +// { +// new int[] {3}, +// new int[] {3,31,6,7,8,9}, +// new int[] {5,3,41,45}, +// new int[] {7,10,31,14}, +// new int[] {14,16,11,17}, +// new int[] {65,57,45,46}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_104/*Golden Ring of Vitality*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_103/*A Golden Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr +// rarity = 5, //range 0-7, 0 is most common, 7 is ultra rare +// minLevel = 10, +// maxLevel = 14, +// canConsume = false, +// stackSize = 1, //stacking in inventory like in mc, one means single item +// type = ItemDefinition.ItemType.Ring, +// icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that +// }; + +// new BaseItem(new int[][] +// { +// new int[] {2}, +// new int[] {12,13,8,9, }, +// new int[] {15,18,34,36}, +// new int[] {23,48,54,26,59,55,16}, +// new int[] {6,57,2,34,}, +// new int[] {52,66,51,2,23} +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_105/*Golden Ring of Agility*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_103/*A Golden Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr +// rarity = 5, //range 0-7, 0 is most common, 7 is ultra rare +// minLevel = 10, +// maxLevel = 20, +// canConsume = false, +// stackSize = 1, //stacking in inventory like in mc, one means single item +// type = ItemDefinition.ItemType.Ring, +// icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that +// }; +// new BaseItem(new int[][] +// { +// new int[] {4}, +// new int[] {12,13,21,24,6}, +// new int[] {12,13,21,24}, +// new int[] {19,47,49}, +// new int[] { 37,38,4,24,61,44}, +// new int[] { 57,44,6,24,21,47} +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_106/*Golden Ring of Intelligence*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_103/*A Golden Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr +// rarity = 5, //range 0-7, 0 is most common, 7 is ultra rare +// minLevel = 10, +// maxLevel = 20, +// canConsume = false, +// stackSize = 1, //stacking in inventory like in mc, one means single item +// type = ItemDefinition.ItemType.Ring, +// icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that +// }; +// //Silver Rings--------------------------------------------------------------------------- +// new BaseItem(new int[][] +// { +// new int[] {1}, +// new int[] {22,25,12,13}, +// new int[] {35,50,53}, +// new int[] {20,0,0,0} +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_107/*Silver Ring of Strength*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_108/*A Silver Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr +// rarity = 4, //range 0-7, 0 is most common, 7 is ultra rare +// minLevel = 5, +// maxLevel = 20, +// canConsume = false, +// stackSize = 1, //stacking in inventory like in mc, one means single item +// type = ItemDefinition.ItemType.Ring, +// icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that +// }; + +// new BaseItem(new int[][] +// { +// new int[] {3}, +// new int[] {7,10,31,5, }, +// new int[] {11,17,0}, +// new int[] {14,16,45}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_109/*Silver Ring of Vitality*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_108/*A Silver Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr +// rarity = 4, //range 0-7, 0 is most common, 7 is ultra rare +// minLevel = 5, +// maxLevel = 8, +// canConsume = false, +// stackSize = 1, //stacking in inventory like in mc, one means single item +// type = ItemDefinition.ItemType.Ring, +// icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that +// }; + +// new BaseItem(new int[][] +// { +// new int[] {2}, +// new int[] {12,13,51,8,9, }, +// new int[] {15,18,34,36,0}, +// new int[] {23,48,54,26,6,57,0,0,0 } +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_110/*Silver Ring of Agility*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_108/*A Silver Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr +// rarity = 4, //range 0-7, 0 is most common, 7 is ultra rare +// minLevel = 5, +// maxLevel = 20, +// canConsume = false, +// stackSize = 1, //stacking in inventory like in mc, one means single item +// type = ItemDefinition.ItemType.Ring, +// icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that +// }; + +// new BaseItem(new int[][] +// { +// new int[] {4}, +// new int[] { 12, 13, 21, 24,12, 13,21,24,0}, +// new int[] {19,47,49,6}, +// new int[] { 57,37,38,0}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_111/*Silver Ring of Intelligence*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_108/*A Silver Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr +// rarity = 4, //range 0-7, 0 is most common, 7 is ultra rare +// minLevel = 5, +// maxLevel = 20, +// canConsume = false, +// stackSize = 1, //stacking in inventory like in mc, one means single item +// type = ItemDefinition.ItemType.Ring, +// icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that +// }; + +// //Steel Rings------------------------------------------------------------------- +// new BaseItem(new int[][] +// { +// new int[] {1}, +// new int[] {12,13,65}, +// new int[] {22,25, 57,35,50,53,20}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_112/*Steel Ring of Strength*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_113/*A Steel Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr +// rarity = 2, //range 0-7, 0 is most common, 7 is ultra rare +// minLevel = 1, +// maxLevel = 6, +// canConsume = false, +// stackSize = 1, //stacking in inventory like in mc, one means single item +// type = ItemDefinition.ItemType.Ring, +// icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that +// }; + +// new BaseItem(new int[][] +// { +// new int[] {3}, +// new int[] {7,10,31,5,65}, +// new int[] {14,16, 45,11,17,0}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_114/*Steel Ring of Vitality*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_113/*A Steel Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr +// rarity = 2, //range 0-7, 0 is most common, 7 is ultra rare +// minLevel = 1, +// maxLevel = 6, +// canConsume = false, +// stackSize = 1, //stacking in inventory like in mc, one means single item +// type = ItemDefinition.ItemType.Ring, +// icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that +// }; + +// new BaseItem(new int[][] +// { +// new int[] {2}, +// new int[] {8,9, 12,13,51,57}, +// new int[] {23,54,26,59,18,34}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_115/*Steel Ring of Agility*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_113/*A Steel Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr +// rarity = 2, //range 0-7, 0 is most common, 7 is ultra rare +// minLevel = 1, +// maxLevel = 10, +// canConsume = false, +// stackSize = 1, //stacking in inventory like in mc, one means single item +// type = ItemDefinition.ItemType.Ring, +// icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that +// }; + +// new BaseItem(new int[][] +// { +// new int[] {4}, +// new int[] {12,13,21,24,6}, +// new int[] {19,47,49,57,37,38,21,24}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_116/*Steel Ring of Intelligence*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_113/*A Steel Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr +// rarity = 2, //range 0-7, 0 is most common, 7 is ultra rare +// minLevel = 1, +// maxLevel = 6, +// canConsume = false, +// stackSize = 1, //stacking in inventory like in mc, one means single item +// type = ItemDefinition.ItemType.Ring, +// icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that +// }; + +// //One Ring to rule them all---------------------------------------------------------- + +// new BaseItem(new int[][] +// { +// new int[] {1,3,2,4}, +// new int[] {12,13}, +// new int[] {22,25,30,}, +// new int[] {35,50,53,20}, +// new int[] {5,28}, +// new int[] {7,10,31}, +// new int[] {11,17,14,16 }, +// new int[] {8,9,27,45}, +// new int[] {51,52,66}, +// new int[] {15,18,34,36,57}, +// new int[] {23,48,54,26}, +// new int[] {21,24}, +// new int[] {19,47,49,57,6}, +// new int[] {29,37,38,57}, +// new int[] {65}, +// new int[] {-1}, +// new int[] {-1}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_117/*The One Ring To Rule Them All*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_118/*An Ancient magical Ring of great power.*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_119/*It looks like and ordinay ring, but a strange energy is surrounding it. The Ring is said to have been found inside a volcanic rock by an archeologist, who went mad and isolated himself on the peninsula many years ago. But that's just a fairy tale, ring?*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_120/*Attracts unwanted attention of an unknown entity.*/, //tr +// rarity = 7, //range 0-7, 0 is most common, 7 is ultra rare +// minLevel = 20, +// maxLevel = 30, +// canConsume = false, +// stackSize = 1, //stacking in inventory like in mc, one means single item +// type = ItemDefinition.ItemType.Ring, +// icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that +// }; + +// //Golden Lockets--------------------------------------------------------------------- + +// new BaseItem(new int[][] +// { +// new int[] {1}, +// new int[] {12,13}, +// new int[] {22,25,57,}, +// new int[] {35,50,53}, +// new int[] {65,1,57,47,34,36,18} +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_121/*Golden Locket of Strength*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_122/*A Locket of ancient times.*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_123/*A Golden Locket that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr +// rarity = 3, //range 0-7, 0 is most common, 7 is ultra rare +// minLevel = 15, +// maxLevel = 20, +// canConsume = false, +// stackSize = 1, //stacking in inventory like in mc, one means single item +// type = ItemDefinition.ItemType.Amulet, +// icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that +// }; + +// new BaseItem(new int[][] +// { +// new int[] {3}, +// new int[] {5,6,7}, +// new int[] {7,10,31}, +// new int[] {11,17}, +// new int[] {14,16,45}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_124/*Golden Locket of Vitality*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_122/*A Locket of ancient times.*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_123/*A Golden Locket that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr +// rarity = 3, //range 0-7, 0 is most common, 7 is ultra rare +// minLevel = 15, +// maxLevel = 20, +// canConsume = false, +// stackSize = 1, //stacking in inventory like in mc, one means single item +// type = ItemDefinition.ItemType.Amulet, +// icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that +// }; + +// new BaseItem(new int[][] +// { +// new int[] {2}, +// new int[] {12,13,51,52,66,8,9,}, +// new int[] {12,13,51,52,66}, +// new int[] {23,48,54,26}, +// new int[] {57,18,47} +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_125/*Golden Locket of Agility*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_122/*A Locket of ancient times.*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_123/*A Golden Locket that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr +// rarity = 3, //range 0-7, 0 is most common, 7 is ultra rare +// minLevel = 15, +// maxLevel = 20, +// canConsume = false, +// stackSize = 1, //stacking in inventory like in mc, one means single item +// type = ItemDefinition.ItemType.Amulet, +// icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that +// }; + +// new BaseItem(new int[][] +// { +// new int[] {4}, +// new int[] {12,13,21,24}, +// new int[] {12,13,21,24,19,47,49,}, +// new int[] {57,37,38,6}, +// new int[] {4,37,38,} +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_126/*Golden Locket of Intelligence*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_122/*A Locket of ancient times.*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_123/*A Golden Locket that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr +// rarity = 3, //range 0-7, 0 is most common, 7 is ultra rare +// minLevel = 15, +// maxLevel = 20, +// canConsume = false, +// stackSize = 1, //stacking in inventory like in mc, one means single item +// type = ItemDefinition.ItemType.Amulet, +// icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that +// }; + +// //Silver Lockets--------------------------------------------------------------------------- + +// new BaseItem(new int[][] +// { +// new int[] {1}, +// new int[] {12,13}, +// new int[] {22,25,57,}, +// new int[] {35,50,53,0}, +// new int[] {20,0,0,0} +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_127/*Silver Locket of Strength*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_122/*A Locket of ancient times.*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_128/*A Silver Locket that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr +// rarity = 2, //range 0-7, 0 is most common, 7 is ultra rare +// minLevel = 5, +// maxLevel = 20, +// canConsume = false, +// stackSize = 1, //stacking in inventory like in mc, one means single item +// type = ItemDefinition.ItemType.Amulet, +// icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that +// }; + +// new BaseItem(new int[][] +// { +// new int[] {3}, +// new int[] {7,10,31,5,}, +// new int[] {11,17,0}, +// new int[] {14,16,0}, +// new int[] {45,0,0,0} +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_129/*Silver Locket of Vitality*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_122/*A Locket of ancient times.*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_128/*A Silver Locket that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr +// rarity = 2, //range 0-7, 0 is most common, 7 is ultra rare +// minLevel = 5, +// maxLevel = 20, +// canConsume = false, +// stackSize = 1, //stacking in inventory like in mc, one means single item +// type = ItemDefinition.ItemType.Amulet, +// icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that +// }; + +// new BaseItem(new int[][] +// { +// new int[] {2}, +// new int[] {12,13,51,52,66,8,9,6,}, +// new int[] {12,13,51,52,66,0}, +// new int[] {15,18,34,36,0}, +// new int[] {23,48,54,26}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_130/*Silver Locket of Agility*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_122/*A Locket of ancient times.*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_128/*A Silver Locket that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr +// rarity = 2, //range 0-7, 0 is most common, 7 is ultra rare +// minLevel = 5, +// maxLevel = 8, +// canConsume = false, +// stackSize = 1, //stacking in inventory like in mc, one means single item +// type = ItemDefinition.ItemType.Amulet, +// icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that +// }; + +// new BaseItem(new int[][] +// { +// new int[] {4}, +// new int[] {12,13,21,24}, +// new int[] {12,13,21,24,6}, +// new int[] {19,47,49,0}, +// new int[] {57,37,38,0}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_131/*Silver Locket of Intelligence*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_122/*A Locket of ancient times.*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_128/*A Silver Locket that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr +// rarity = 2, //range 0-7, 0 is most common, 7 is ultra rare +// minLevel = 5, +// maxLevel = 8, +// canConsume = false, +// stackSize = 1, //stacking in inventory like in mc, one means single item +// type = ItemDefinition.ItemType.Amulet, +// icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that +// }; + +// // Emerald Pendant----------------------------------------------------------- + +// new BaseItem(new int[][] +// { +// new int[] {1}, +// new int[] {12,13}, +// new int[] {22,25,57,1}, +// new int[] {35,50,53}, +// new int[] {36,65,22,25}, +// new int[] {11,18,37,6,8}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_132/*Emerald Pendant of Strength*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_133/*A Pendant of ancient times.*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_134/*An Emerald Pendant that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr +// rarity = 5, //range 0-7, 0 is most common, 7 is ultra rare +// minLevel = 10, +// maxLevel = 12, +// canConsume = false, +// stackSize = 1, //stacking in inventory like in mc, one means single item +// type = ItemDefinition.ItemType.Amulet, +// icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that +// }; + +// new BaseItem(new int[][] +// { +// new int[] {3}, +// new int[] {7,10,31,5}, +// new int[] {11,17}, +// new int[] {14,16,57,55}, +// new int[] {5,7,10,3,31}, +// new int[] {57,65}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_135/*Emerald Pendant of Vitality*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_133/*A Pendant of ancient times.*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_134/*An Emerald Pendant that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr +// rarity = 5, //range 0-7, 0 is most common, 7 is ultra rare +// minLevel = 10, +// maxLevel = 12, +// canConsume = false, +// stackSize = 1, //stacking in inventory like in mc, one means single item +// type = ItemDefinition.ItemType.Amulet, +// icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that +// }; + +// new BaseItem(new int[][] +// { +// new int[] {2}, +// new int[] {8,9,12,13,51,52,66}, +// new int[] {12,13,51,52,66}, +// new int[] {15,18,34,36}, +// new int[] {23,48,54,26}, +// new int[] {52,66,23,26,2}, +// new int[] {-1}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_136/*Emerald Pendant of Agility*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_133/*A Pendant of ancient times.*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_134/*An Emerald Pendant that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr +// rarity = 5, //range 0-7, 0 is most common, 7 is ultra rare +// minLevel = 10, +// maxLevel = 12, +// canConsume = false, +// stackSize = 1, //stacking in inventory like in mc, one means single item +// type = ItemDefinition.ItemType.Amulet, +// icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that +// }; + +// new BaseItem(new int[][] +// { +// new int[] {4}, +// new int[] {29,37,21,24,46,56,19}, +// new int[] {12,13,21,24,6}, +// new int[] {21,4,47,49}, +// new int[] {4,57,47,24}, +// new int[] {-1}, +// new int[] {-1}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_137/*Emerald Pendant of Intelligence*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_133/*A Pendant of ancient times.*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_134/*An Emerald Pendant that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr +// rarity = 5, //range 0-7, 0 is most common, 7 is ultra rare +// minLevel = 10, +// maxLevel = 12, +// canConsume = false, +// stackSize = 1, //stacking in inventory like in mc, one means single item +// type = ItemDefinition.ItemType.Amulet, +// icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that +// }; + +// // Diamond Pendant----------------------------------------------------------- + +// new BaseItem(new int[][] +// { +// new int[] {1}, +// new int[] {12,13}, +// new int[] {22,25,1,}, +// new int[] {35,50,53, }, +// new int[] {65,30}, +// new int[] {-1}, +// new int[] {-1}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_138/*Diamond Pendant of Strength*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_133/*A Pendant of ancient times.*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_139/*A Diamond Pendant that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr +// rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare +// minLevel = 12, +// maxLevel = 14, +// canConsume = false, +// stackSize = 1, //stacking in inventory like in mc, one means single item +// type = ItemDefinition.ItemType.Amulet, +// icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that +// }; + +// new BaseItem(new int[][] +// { +// new int[] {3}, +// new int[] {5,6,7,8,9,10}, +// new int[] {7,10,31}, +// new int[] {11,17}, +// new int[] {14,16}, +// new int[] {28,11}, +// new int[] {-1}, +// new int[] {-1}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_140/*Diamond Pendant of Vitality*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_133/*A Pendant of ancient times.*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_139/*A Diamond Pendant that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr +// rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare +// minLevel = 12, +// maxLevel = 14, +// canConsume = false, +// stackSize = 1, //stacking in inventory like in mc, one means single item +// type = ItemDefinition.ItemType.Amulet, +// icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that +// }; + +// new BaseItem(new int[][] +// { +// new int[] {2}, +// new int[] {8,9,12,13,51,52,66}, +// new int[] {12,13,51,52,66,15,18,34,36 }, +// new int[] {23,48,54,26}, +// new int[] {54,52,66,2}, +// new int[] {2,18,38}, +// new int[] {57,2,6}, +// new int[] {-1}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_141/*Diamond Pendant of Agility*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_133/*A Pendant of ancient times.*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_139/*A Diamond Pendant that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr +// rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare +// minLevel = 12, +// maxLevel = 14, +// canConsume = false, +// stackSize = 1, //stacking in inventory like in mc, one means single item +// type = ItemDefinition.ItemType.Amulet, +// icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that +// }; + +// new BaseItem(new int[][] +// { +// new int[] {4}, +// new int[] {12,13,21,24}, +// new int[] {12,13,21,24,6,65}, +// new int[] {19,47,49,11,5,6,7,8,46,34}, +// new int[] {29,4}, +// new int[] {21,4,47,49}, +// new int[] {4,57,47,24}, +// new int[] {-1}, +// new int[] {-1}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_142/*Diamond Pendant of Intelligence*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_133/*A Pendant of ancient times.*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_139/*A Diamond Pendant that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr +// rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare +// minLevel = 12, +// maxLevel = 14, +// canConsume = false, +// stackSize = 1, //stacking in inventory like in mc, one means single item +// type = ItemDefinition.ItemType.Amulet, +// icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that +// }; + +// //Rare Amulets ----------------------------------------------------------------------------------------- + +// var armsyFingerNecklace = new BaseItem(new int[][] +// { +// new int[] {1}, +// new int[] {65}, +// new int[] {18,11}, +// new int[] {-1}, +// new int[] {12,13}, +// new int[] {22,25,30,}, +// new int[] {35,50,53,57}, +// new int[] {20,57} +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_143/*Armsy Finger Necklace*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_144/*A Necklace decorated with armsy fingertips.*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_145/*A Necklace made from the fingertips of an armsy, yeilding it's raw power and strentgh.*/, //tr +// rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare +// minLevel = 1, +// maxLevel = 5, +// canConsume = false, +// stackSize = 1, //stacking in inventory like in mc, one means single item +// type = ItemDefinition.ItemType.Amulet, +// icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that + +// }; +// armsyFingerNecklace.SetDropOnlyArmsy(); +// armsyFingerNecklace.statSlots[0][0].multipier = 2; +// armsyFingerNecklace.statSlots[1][0].multipier = 2; +// var virginiaHeartPedant = new BaseItem(new int[][] +// { +// new int[] {2}, +// new int[] {23}, +// new int[] {48}, +// new int[] {-1}, +// new int[] {5,28}, +// new int[] {7,10,31}, +// new int[] {11,17,57}, +// new int[] {14,16,57}, +// new int[] {45,57} +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_146/*Virginia Heart Pendant*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_147/*A Pendant of a petrified Virginia heart.*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_148/*A Pendant made from a petrified Virginia heart, yeilding it's love and Vitality.*/, //tr +// rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare +// minLevel = 1, +// maxLevel = 5, +// canConsume = false, +// stackSize = 1, //stacking in inventory like in mc, one means single item +// type = ItemDefinition.ItemType.Amulet, +// icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that +// }; +// virginiaHeartPedant.SetDropOnlyVags(); +// virginiaHeartPedant.statSlots[0][0].multipier = 2; +// virginiaHeartPedant.statSlots[1][0].multipier = 2.25f; + +// var cowmanToeNecklace = new BaseItem(new int[][] +// { +// new int[] {3}, +// new int[] {31,6}, +// new int[] {28}, +// new int[] {8,9,27}, +// new int[] {12,13,51,52,66}, +// new int[] {12,13,51,52,66,57}, +// new int[] {15,18,34,36,57}, +// new int[] {23,48,54,26}, +// new int[] {65,57} +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_149/*Cowman Toe Necklace*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_150/*A Necklace decorated with cowman toes.*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_151/*A Necklace made from the fingertips of an armsy, yeilding it's speed and agility.*/, //tr +// rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare +// minLevel = 20, +// maxLevel = 40, +// canConsume = false, +// stackSize = 1, //stacking in inventory like in mc, one means single item +// type = ItemDefinition.ItemType.Amulet, +// icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that +// }; +// cowmanToeNecklace.SetDropOnlyCow(); +// cowmanToeNecklace.statSlots[0][0].multipier = 3; +// cowmanToeNecklace.statSlots[1][0].multipier = 2; +// new BaseItem(new int[][] +// { +// new int[] {47}, +// new int[] {4,0}, +// new int[] {21,0}, +// new int[] {38,31,49,14}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {12,13,21,24,6}, +// new int[] {19,47,49,6}, +// new int[] {29,37,38}, +// new int[] {29,37,38,}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_152/*Pendant of Perpetual Rebirth*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_153/*A Pendant of a shrunken babyhead.*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_154/*A pedant of great power. Obtainable only from babies or crafting*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_155(1)/*decrease a random cooldown by 1 second whenever you hit something with melee or ranged attack.*/, //tr +// rarity = 7, //range 0-7, 0 is most common, 7 is ultra rare +// minLevel = 30, +// maxLevel = 40, +// canConsume = false, +// stackSize = 1, //stacking in inventory like in mc, one means single item +// type = ItemDefinition.ItemType.Amulet, +// icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that +// onEquipCallback = () => ModdedPlayer.Stats.i_infinityLoop.value = true, +// onUnequipCallback = () => ModdedPlayer.Stats.i_infinityLoop.value = false, +// }.SetDropOnlyBaby(); + +// //Boss drop Amulet---------------------------------------------------------------------------------------- + +// new BaseItem(new int[][] +// { +// new int[] {1,2,4}, +// new int[] {12,13}, +// new int[] {22,25,30,18,5,28}, +// new int[] {35,50,53,57,56,20,57,19,18}, +// new int[] {7,10,31}, +// new int[] {45,16,10,11,9,8, 14, 16, 57,11, 17,57}, +// new int[] { 51, 52,66,8, 9,27}, +// new int[] {15,18,34,36,57}, +// new int[] {23,48,54,26}, +// new int[] {6,55,46,54,53}, +// new int[] {19,47,49,57, 21,24,29,37,38,57}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_156/*Megan's Locket*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_157/*The Locket Megan wore.*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_158/*Megan wore this Locket, it has a picture of her mom in it.*/, //tr +// rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare +// minLevel = 1, +// maxLevel = 4, +// canConsume = false, +// stackSize = 1, //stacking in inventory like in mc, one means single item +// type = ItemDefinition.ItemType.Amulet, +// icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that +// }.SetDropOnlyMegan(); + +// ItemDefinition RelicHammer = new BaseItem(new int[][] +// { +// new int[] {25 }, +// new int[] {18 }, +// new int[] {2004 }, +// new int[] {1,62,63,64 }, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_159/*Relic Hammer*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_160/*It's slow and weak.*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_161/*Slows on hit*/, //tr +// rarity = 2, +// minLevel = 20, +// maxLevel = 22, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Weapon, +// subtype = ItemDefinition.ItemSubtype.Hammer, +// icon = Res.ResourceLoader.GetTexture(109), +// }; +// RelicHammer.statSlots[1][0].multipier = -4; + +// ItemDefinition GreaterHammer = new BaseItem(new int[][] +// { +// new int[] {25 }, +// new int[] {18 }, +// new int[] {2004 }, +// new int[] {1,3,62,63,64}, +// new int[] {53,16}, +// new int[] {39,31,43,0,0}, +// new int[] {25 ,22,1,12,13,5,6}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_162/*Black Hammer*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_163/*It's slow but with enough strength i can make it a very deadly tool*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_161/*Slows on hit*/, //tr +// rarity = 4, +// minLevel = 30, +// maxLevel = 35, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Weapon, +// subtype = ItemDefinition.ItemSubtype.Hammer, +// icon = Res.ResourceLoader.GetTexture(109), +// }; +// GreaterHammer.statSlots[1][0].multipier = -3; +// //Item 0/6 +// new BaseItem(new int[][] +// { +// new int[] {23,26}, +// new int[] {2,6,4}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_164/*Potato Sack*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_165/*Can be used as a quiver*/, //tr +// rarity = 0, +// minLevel = 1, +// maxLevel = 4, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Quiver, +// icon = Res.ResourceLoader.GetTexture(98), +// }; + +// //Item 1/6 +// new BaseItem(new int[][] +// { +// new int[] {23,26}, +// new int[] {40,41,42}, +// new int[] {40,16,60}, +// new int[] {2}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_166/*Rabbit Skin Quiver*/, //tr +// rarity = 1, +// minLevel = 2, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Quiver, +// icon = Res.ResourceLoader.GetTexture(98), +// }; + +// //Item 2/6 +// new BaseItem(new int[][] +// { +// new int[] {26}, +// new int[] {23,2,54}, +// new int[] {18,60,61}, +// new int[] {40,41,16,5,6,40}, +// new int[] {-1}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_167/*Hollow Log*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_168/*It allows for faster drawing of arrow than a cloth quiver*/, //tr +// rarity = 2, +// minLevel = 6, +// maxLevel = 9, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Quiver, +// icon = Res.ResourceLoader.GetTexture(98), +// }; + +// //Item 3/6 +// new BaseItem(new int[][] +// { +// new int[] {26,23}, +// new int[] {24,21}, +// new int[] {17,16,18,54,51,52,66}, +// new int[] {2,3,4,15,14,13,12,11,10}, +// new int[] {5,6,47,60,61}, +// new int[] {2,3,4,5,6,7,8,11,12,16,18,37}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_169/*Spellbound Quiver*/, //tr +// rarity = 3, +// minLevel = 6, +// maxLevel = 11, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Quiver, +// icon = Res.ResourceLoader.GetTexture(98), +// }; + +// //Item 4/6 +// new BaseItem(new int[][] +// { +// new int[] {23,26}, +// new int[] {23}, +// new int[] {2,3,4}, +// new int[] {34,18,17,16,15,14,60,61,55,}, +// new int[] {16,19,23,31,54,51,52,66,57}, +// new int[] {2,0}, +// new int[] {2,3,4,5,6,7,8,9,10}, +// new int[] {2,1,5,6}, +// new int[] {-1}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_170/*Long Lost Quiver*/, //tr +// rarity = 5, +// minLevel = 12, +// maxLevel = 20, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Quiver, +// icon = Res.ResourceLoader.GetTexture(98), +// }; + +// //Item 5/6 +// new BaseItem(new int[][] +// { +// new int[] {37, 24,47}, +// new int[] {42,6,17,61}, +// new int[] {-1}, +// new int[] {4,0}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_171/*Spell Scroll*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_172/*Contains a lot of information on how to properly cast spells to achieve better results*/, //tr +// rarity = 1, +// minLevel = 1, +// maxLevel = 1, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.SpellScroll, +// icon = Res.ResourceLoader.GetTexture(110), +// }; + +// new BaseItem(new int[][] +// { +// new int[] {16,43}, +// new int[] {43,39,40,41,42}, +// new int[] {43,39,40,41,42}, +// new int[] {43,0,0,0}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_173/*Cloth Pants*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_174/*Offer little protction*/, //tr +// rarity = 1, +// minLevel = 2, +// maxLevel = 5, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Pants, +// icon = Res.ResourceLoader.GetTexture(87), +// }; + +// //Item 1/7 +// new BaseItem(new int[][] +// { +// new int[] {16}, +// new int[] {1,2,3,4}, +// new int[] {5,6}, +// new int[] {16,43,39,40,41,42}, +// new int[] {1000,1001,1002,1003,1004,43,0,0,0}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_175/*Rough Hide Leggins*/, //tr +// rarity = 3, +// minLevel = 1, +// maxLevel = 1, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Pants, +// icon = Res.ResourceLoader.GetTexture(87), +// }; + +// //Item 2/7 +// new BaseItem(new int[][] +// { +// new int[] {16,}, +// new int[] {1,2,3,4}, +// new int[] {5,44,7,8}, +// new int[] {6,16,3}, +// new int[] {1,2,3,4,11}, +// new int[] {17,16,10,9}, +// new int[] {16,43}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_176/*Plate Leggins*/, //tr +// rarity = 4, +// minLevel = 4, +// maxLevel = 10, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Pants, +// icon = Res.ResourceLoader.GetTexture(87), +// }; + +// //Item 3/7 +// new BaseItem(new int[][] +// { +// new int[] {16}, +// new int[] {19}, +// new int[] {1,2,3,4,5,6,7,8}, +// new int[] {39,40,41,42,43}, +// new int[] {4}, +// new int[] {-1}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_177/*Sage's Robes*/, //tr +// rarity = 3, +// minLevel = 1, +// maxLevel = 6, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Pants, +// icon = Res.ResourceLoader.GetTexture(87), +// }; + +// //Item 4/7 +// new BaseItem(new int[][] +// { +// new int[] {1,2,3,4}, +// new int[] {1,5}, +// new int[] {16}, +// new int[] {22,25}, +// new int[] {11,12,13,14,5,6,1,2,3,4}, +// new int[] {7,8,9,10,44,45,46,49}, +// new int[] {31,1,3,}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_178/*Hammer Jammers*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_179("450%")/*Damage of your smash attack is increased by 450%, hammer stun duration is doubled*/, //tr +// rarity = 7, +// minLevel = 20, +// maxLevel = 28, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Pants, +// icon = Res.ResourceLoader.GetTexture(87), +// onEquipCallback = () => { ModdedPlayer.Stats.smashDamage.Multiply(4.5f); ModdedPlayer.Stats.i_HammerStunAmount.Multiply(2); }, +// onUnequipCallback = () => { ModdedPlayer.Stats.smashDamage.Divide(4.5f); ModdedPlayer.Stats.i_HammerStunAmount.Divide(2); }, +// }; + +// //Item 5/7 +// new BaseItem(new int[][] +// { +// new int[] {16}, +// new int[] {34}, +// new int[] {1,2,4,6,7,8}, +// new int[] {-1}, +// new int[] {26,23,24,21}, +// new int[] {1000, 1001,1002, 1003, 1004, 0,0,0,1,2,4}, +// new int[] {51,1,2,3,4,55}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_180/*Pirate Pants*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_181/*Those pants are ligh and comfortable. They offer plenty of mobility but lack in protection.*/, //tr +// rarity = 5, +// minLevel = 1, +// maxLevel = 1, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Pants, +// icon = Res.ResourceLoader.GetTexture(87), +// }; + +// //Item 6/7 +// new BaseItem(new int[][] +// { +// new int[] {16}, +// new int[] {1,2,3,4,16,17}, +// new int[] {18,34}, +// new int[] {1,2,3,4}, +// new int[] {5,6,15,16,13,12,11}, +// new int[] {8,4,2,9}, +// new int[] {22,21,23}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_182/*Hexed Pants of Mr M.*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_183/*They look like yoga pants but for a man the size of a wardrobe*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_184/*Once upon a time there was a man who was in a basement and fed himself with nothing but nuggets. He got so obese that friends and family started worrying. Hazard noticed this man and cursed his pants to force him to excercise.*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_185("60%", "1%")/*While moving, energy regeneration and damage is increased by 40%. While standing still for longer than a second, you loose 1% of max health per second.*/, //tr +// rarity = 7, +// minLevel = 14, +// maxLevel = 15, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Pants, +// icon = Res.ResourceLoader.GetTexture(87), +// onEquipCallback = () => ModdedPlayer.Stats.i_HexedPantsOfMrM_Enabled.value = true, +// onUnequipCallback = () => ModdedPlayer.Stats.i_HexedPantsOfMrM_Enabled.value = false, +// }; +// new BaseItem(new int[][] +// { +//new int[] {39,40,41,42,43}, +//new int[] {39,40,41,42,43}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_186/*Leather Mantle*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_187/*A piece of cloth to give protection from */, //tr +// rarity = 1, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.ShoulderArmor, +// icon = Res.ResourceLoader.GetTexture(95), +// }; + +// //Item 1/6 +// new BaseItem(new int[][] +// { +//new int[] {16}, +//new int[] {16}, +//new int[] {1,2,3,4,5,6}, +//new int[] {39,40,41,42,43}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_188/*Shoulder Guards*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_189/*Medium armor piece.*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_190/*Heavy armor*/, //tr +// rarity = 2, +// minLevel = 4, +// maxLevel = 7, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.ShoulderArmor, +// icon = Res.ResourceLoader.GetTexture(95), +// }; + +// //Item 2/6 +// ItemDefinition Heavy_Shoulder_Plates = new BaseItem(new int[][] +// { +// new int[] {34}, +// new int[] {18}, +// new int[] {16}, +// new int[] {16,65}, +// new int[] {1,2,3,4}, +// new int[] {1,2,3,4,5,8,9,7,10}, +// new int[] {17,10,5,8,9,7,10}, +// new int[] {5,45,3}, +// new int[] {11}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_191/*Heavy Shoulder Plates*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_192/*Heavy armor piece. They offer great protection at the cost of attack speed and movement speed decrease*/, //tr +// rarity = 4, +// minLevel = 15, +// maxLevel = 20, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.ShoulderArmor, +// icon = Res.ResourceLoader.GetTexture(95), +// }; +// Heavy_Shoulder_Plates.statSlots[0][0].multipier = -1; +// Heavy_Shoulder_Plates.statSlots[1][0].multipier = -1; +// Heavy_Shoulder_Plates.statSlots[2][0].multipier = 3; + +// //Item 3/6 +// new BaseItem(new int[][] +// { +// new int[] {21,22,23,24,25,26}, +// new int[] {16}, +// new int[] {1,2,3,4}, +// new int[] {1,2,3,4,16,39,40,41,42,43}, +// new int[] {1,2,3,4,16,39,40,41,42,43}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_193/*Etched Mantle*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_194/*Those pauldrons empower wearer's combat skill*/, //tr +// rarity = 3, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.ShoulderArmor, +// icon = Res.ResourceLoader.GetTexture(95), +// }; + +// //Item 4/6 +// new BaseItem(new int[][] +// { +// new int[] {22,25}, +// new int[] {1,2,3,4}, +// new int[] {16}, +// new int[] {12,11,13,14}, +// new int[] {5,6}, +// new int[] {10,15,16,17,18,19,31,35,36,44,45,46,47,49,50,53,55}, +// new int[] {10,15,16,17,18,19,31,35,36,44,45,46,47,49,50,53,55}, +// new int[] {53,55}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_195/*Assassins Pauldrons*/, //tr +// rarity = 5, +// minLevel = 4, +// maxLevel = 6, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.ShoulderArmor, +// icon = Res.ResourceLoader.GetTexture(95), +// }; + +// //Item 5/6 +// new BaseItem(new int[][] +// { +// new int[] {11}, +// new int[] {1,2,3,4}, +// new int[] {16}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {21,22,23,24,25,26}, +// new int[] {5,14,7,10,45}, +// new int[] {1,2,3,4}, +// new int[] {12,13,15,16,18}, +// new int[] {17,19,21,22,23}, +// new int[] {37,35,36,38,44,45,47}, +// new int[] {1,2,4}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_196/*Death Pact*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_197/*Find the greatest strength on the border of life and death.*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_198("6%", "5%")/*Every attack you make decreases your health by 7% of max health. For every percent of missing health you gain 5% damage amplification. This damage cannot kill you.*/, //tr +// rarity = 7, +// minLevel = 5, +// maxLevel = 8, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.ShoulderArmor, +// icon = Res.ResourceLoader.GetTexture(95), +// onEquipCallback = () => ModdedPlayer.Stats.i_DeathPact_Enabled.value = true, +// onUnequipCallback = () => ModdedPlayer.Stats.i_DeathPact_Enabled.value = false, +// }; +// new BaseItem(new int[][] +// { +// new int[] {56}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {1,2,3,4}, +// new int[] {11,12,13,14,15,16,17,18}, +// new int[] {11,12,13,14,15,16,17,18}, +// new int[] {5,6,7,8,9,10,31}, +// new int[] {55,54,53,50}, +// new int[] {1,2,3,4,21,22,23,24,25,26}, +// new int[] {16,0,0,0,1,2,3,4,0,0,0,0}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_199/*Maximale Qualitöt*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_200/*A platinum ring with the most expensive jewels engraved on it. It's quality is uncomparable.*/, //tr +// rarity = 6, +// minLevel = 1, +// maxLevel = 4, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Ring, +// icon = Res.ResourceLoader.GetTexture(90), +// }; +// new BaseItem(new int[][] +// { +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_201/*Heart of Purity*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_202/*A object filled with both destructive and creative energy. Allows to re-assign all spent mutation points*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_203/*This powerful relic contains so much power, that it can kill anything and force it to come back to life, resulting in it's rebirth.*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_204/*Can be consumed by right clicking it. */, //tr +// rarity = 4, +// minLevel = 1, +// maxLevel = 2, +// canConsume = true, +// stackSize = 100, +// type = ItemDefinition.ItemType.Other, +// icon = Res.ResourceLoader.GetTexture(105), +// onEquipCallback = ModdedPlayer.Respec +// }; + +// new BaseItem(new int[][] +// { +//new int[] {1,2,3,4,57}, +//new int[] {16,17,14}, +//new int[] {50,11}, +//new int[] {49,39,40,41,42,45,44}, +//new int[] {5,6,9,8,10,12,13,14,}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_205/*Round Shield*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_206/*A sturdy shield made of wood and reinforced with iron.*/, //tr +// rarity = 2, +// minLevel = 5, +// maxLevel = 8, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Shield, +// icon = Res.ResourceLoader.GetTexture(99), +// }; + +// //Item 1/5 +// new BaseItem(new int[][] +// { +//new int[] {1,11,5,7}, +//new int[] {57,2,3,4,5,6,7,8,10,11}, +//new int[] {39,40,41,42,43,44,45,46}, +//new int[] {50}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_207/*Old Buckler*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_208/*An old shield.*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_209/*This item has a lot of scratches that look like they were made by something with sharp claws.*/, //tr +// rarity = 1, +// minLevel = 4, +// maxLevel = 12, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Shield, +// icon = Res.ResourceLoader.GetTexture(99), +// }; + +// //Item 2/5 +// new BaseItem(new int[][] +// { +//new int[] {16}, +//new int[] {16,50}, +//new int[] {-1}, +//new int[] {-1}, +//new int[] {-1}, +//new int[] {11}, +//new int[] {39,40,41,42,43,50,57}, +//new int[] {39,40,41,42,43,50,57}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_210/*Dark Oak Shield*/, //tr +// rarity = 4, +// minLevel = 1, +// maxLevel = 1, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Shield, +// icon = Res.ResourceLoader.GetTexture(99), +// }; + +// //Item 3/5 +// new BaseItem(new int[][] +// { +//new int[] {15,14}, +//new int[] {2,3,4,1,41,42,57}, +//new int[] {-1}, +//new int[] {-1}, +//new int[] {-1}, +//new int[] {65,1,16,25}, +//new int[] {2,4,5,6}, +//new int[] {16,7,8,22,23,25,26}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_211/*Bone Shield*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_212/*A shield made of bones, held together by thick steel wire.*/, //tr +// rarity = 3, +// minLevel = 1, +// maxLevel = 1, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Shield, +// icon = Res.ResourceLoader.GetTexture(99), +// }; + +// new BaseItem(new int[][] +// { +//new int[] {18}, +//new int[] {0,0,0,0,62,63,64}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_213/*Dull Longsword*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_214/*It's round on the edges*/, //tr +// rarity = 0, +// minLevel = 15, +// maxLevel = 20, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Weapon, +// subtype = ItemDefinition.ItemSubtype.LongSword, +// icon = Res.ResourceLoader.GetTexture(89), +// }.statSlots[0][0].multipier = -3; + +// new BaseItem(new int[][] +// { +// new int[] {16}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {65}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_215/*Iron Horn*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_216("10%")/*When using Warcry, you and all allies recieve armor bonus equal to 10% of your armor*/, //tr +// rarity = 4, +// minLevel = 1, +// maxLevel = 2, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Amulet, +// icon = Res.ResourceLoader.GetTexture(101), +// onEquipCallback = () => ModdedPlayer.Stats.spell_warCryGiveArmor.value = true, +// onUnequipCallback = () => ModdedPlayer.Stats.spell_warCryGiveArmor.value = false, +// }.statSlots[0][0].multipier = 2; + +// //Item 1/5 +// new BaseItem(new int[][] +// { +// new int[] {16}, +// new int[] {31,7,8,9,10}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_217/*The Great Iron Horn*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_216("10%") + Translations.ItemDatabase_ItemDefinitions_608/*When using Warcry, you and all allies recieve armor bonus equal to 10% of your armor*/, //tr +// rarity = 7, +// minLevel = 1, +// maxLevel = 2, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Amulet, +// icon = Res.ResourceLoader.GetTexture(101), +// onEquipCallback = () => +// { +// ModdedPlayer.Stats.spell_warCryGiveArmor.value = true; +// ModdedPlayer.Stats.spell_warCryGiveDamageResistance.value = true; +// }, +// onUnequipCallback = () => +// { +// ModdedPlayer.Stats.spell_warCryGiveArmor.value = false; +// ModdedPlayer.Stats.spell_warCryGiveDamageResistance.value = true; +// }, +// }.statSlots[0][0].multipier = 5; + +// //Item 2/5 +// new BaseItem(new int[][] +// { +// new int[] {16}, +// new int[] {1}, +// new int[] {65,0}, +// new int[] {5,16,18}, +// new int[] {21,22,23,0,0,0}, +// new int[] {24,25,26,0,0,0}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_218/*Horned Helmet*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_219/*A viking helmet*/, //tr +// rarity = 2, +// minLevel = 2, +// maxLevel = 8, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Helmet, +// icon = Res.ResourceLoader.GetTexture(91), +// }; + +// //Item 3/5 +// new BaseItem(new int[][] +// { +// new int[] {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,31,36,37,38,43,44,45,46,47,49,50,53,54,55,57}, +// new int[] {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,31,36,37,38,43,44,45,46,47,49,50,53,54,55,57}, +// new int[] {-1}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_220/*Mask*/, //tr +// rarity = 2, +// minLevel = 1, +// maxLevel = 5, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Helmet, +// icon = Res.ResourceLoader.GetTexture(91), +// }; + +// //Item 4/5 +// ItemDefinition mask = new BaseItem(new int[][] +// { +// new int[] {18}, +// new int[] {22,23,21}, +// new int[] {11}, +// new int[] {1,2,3,4,5,6,7,8,9,10,12,13,14,15,16,17,18,31,36,37,38,43,44,45,46,47,49,50,53,54,55,57}, +// new int[] {1,2,3,4,5,6,7,8,9,10,12,13,14,15,16,17,18,31,36,37,38,43,44,45,46,47,49,50,53,54,55,57}, +// new int[] {1,2,3,4,5,6,7,8,9,10,12,13,14,15,16,17,18,31,36,37,38,43,44,45,46,47,49,50,53,54,55,57}, +// new int[] {24,25,26,0,0,0}, +// new int[] {29,30,48}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_221/*Mask of Madness*/, //tr +// rarity = 5, +// minLevel = 2, +// maxLevel = 6, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Helmet, +// icon = Res.ResourceLoader.GetTexture(91), +// }; +// mask.statSlots[2][0].multipier = -4; +// mask.statSlots[0][0].multipier = 1.5f; +// mask.statSlots[1][0].multipier = 2.5f; +// mask.statSlots[1][1].multipier = 2.5f; +// mask.statSlots[1][2].multipier = 2.5f; + +// new BaseItem(new int[][] +// { +// new int[] {47,49,37,38}, +// new int[] {42,4}, +// new int[] {44}, +// new int[] {21}, +// new int[] {-1}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_222/*Old Scroll*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_172/*Contains a lot of information on how to properly cast spells to achieve better results*/, //tr +// rarity = 3, +// minLevel = 1, +// maxLevel = 1, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.SpellScroll, +// icon = Res.ResourceLoader.GetTexture(110), +// }; +// new BaseItem(new int[][] +// { +// new int[] {57}, +// new int[] {1,2,3,4}, +// new int[] {5,46}, +// new int[] {6,45}, +// new int[] {21,24,11,12,13,14,15,16}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {4,18,7,8,19}, +// new int[] {27,28,29,30,48,47}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_223/*Wormhole Stabilizators*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_224/*High-tech gear*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_225/*Hazard remember to put some fucking lore in here, don't leave it like this!*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_226("570")/*Increases the duration of a portal by 570 seconds*/, //tr +// rarity = 7, +// minLevel = 4, +// maxLevel = 6, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Bracer, +// icon = Res.ResourceLoader.GetTexture(94), +// onEquipCallback = () => ModdedPlayer.Stats.spell_portalDuration.Add(570), +// onUnequipCallback = () => ModdedPlayer.Stats.spell_portalDuration.Sub(570), +// }; +// new BaseItem(new int[][] +// { +// new int[] {57}, +// new int[] {1,2,3,4}, +// new int[] {5,46}, +// new int[] {6,45}, +// new int[] {21,24,11,12,13,14,15,16}, +// new int[] {16}, +// new int[] {17}, +// new int[] {4,18,7,8,19}, +// new int[] {27,28,29,30,48,47}, +// new int[] {-1}, +// new int[] {-1}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_227/*Cripplers*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_228(15)/*Increases the duration of a magic arrow's negative effect by 10 seconds*/, //tr +// rarity = 7, +// minLevel = 3, +// maxLevel = 6, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Glove, +// icon = Res.ResourceLoader.GetTexture(86), +// onEquipCallback = () => ModdedPlayer.Stats.spell_magicArrowDuration.Add(15), +// onUnequipCallback = () => ModdedPlayer.Stats.spell_magicArrowDuration.Sub(15), +// }; + +// new BaseItem(new int[][] +// { +// new int[] {24,4}, +// new int[] {26,4}, +// new int[] {21,2}, +// new int[] {23,2,0,0,0,0}, +// new int[] {2,4,57,16}, +// new int[] {6,8,9,44,46}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {12,13,14,15,16,18}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_229/*Crossfire*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_230/*Infused with powerful magic. This item is a dangerous tool of destruction.*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_231/*When hitting an enemy with a projectile, create a magic arrow pointed at the enemy and shoot it without using in energy. This effect may occur once every seconds, but can be interval can be shortened with cooldown reduction.*/, //tr +// rarity = 7, +// minLevel = 1, +// maxLevel = 6, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Quiver, +// icon = Res.ResourceLoader.GetTexture(98), +// onEquipCallback = () => ModdedPlayer.Stats.i_CrossfireQuiver.value = true, +// onUnequipCallback = () => ModdedPlayer.Stats.i_CrossfireQuiver.value = false, +// }; + +// new BaseItem(new int[][] +// { +// new int[] {44}, +// new int[] {44,8}, +// new int[] {44,4,6,9,4}, +// new int[] {49,7,0}, +// new int[] {-1}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_232/*Scroll of Recovery*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_233/*Recovers health and stamina*/, //tr +// rarity = 1, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.SpellScroll, +// icon = Res.ResourceLoader.GetTexture(110), +// }; + +// new BaseItem(new int[][] +// { +// new int[] {11}, +// new int[] {-1}, +// new int[] {16,15}, +// new int[] {37,38}, +// new int[] {42,24}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_234/*Tiara*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_235/*A beautiful tiara */, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_236/*This tiara may not provide much protection, but it sure is pretty*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_237/*Shiny*/, //tr +// rarity = 2, +// minLevel = 5, +// maxLevel = 10, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Helmet, +// icon = Res.ResourceLoader.GetTexture(91), +// }; + +// //Item 1/2 +// new BaseItem(new int[][] +// { +// new int[] {-1}, +// new int[] {15}, +// new int[] {15}, +// new int[] {17,16}, +// new int[] {17,16}, +// new int[] {0,65}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_238/*Chastity belt*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_239/*Dodge those fukbois*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_240/*This belt will stop those cheeky cannibals and armsies from getting into your pants*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_241("99%")/* 100% damage reduction while sleeping*/, //tr +// rarity = 2, +// minLevel = 1, +// maxLevel = 2, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Pants, +// icon = Res.ResourceLoader.GetTexture(87), +// }; +// new BaseItem(new int[][] +// { +// new int[] {2005}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {42,43}, +// new int[] {44,0,49,}, +// new int[] {21,24,0,0,0,0}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_242/*Ice Scroll*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_243/*A spell surrounded by flying shards of ice, contains tramendous power of cold.*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_244/*Created at the top of the mountain.*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_581("250", 2)/*Snap freeze damage is increased and the slow duration is increased by 1 second*/, //tr +// rarity = 4, +// minLevel = 30, +// maxLevel = 40, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.SpellScroll, +// icon = Res.ResourceLoader.GetTexture(110), +// onEquipCallback = () => { ModdedPlayer.Stats.spell_snapDamageScaling.Add(250f); ModdedPlayer.Stats.spell_snapFreezeDuration.Add(2); }, +// onUnequipCallback = () => { ModdedPlayer.Stats.spell_snapDamageScaling.Sub(250f); ModdedPlayer.Stats.spell_snapFreezeDuration.Add(2); } +// }; +// new BaseItem(new int[][] +// { +// new int[] {2006}, +// new int[] {57,1,2,3,4}, +// new int[] {34,45,46,15,1,2,3,4,57,11,14,7,10,59}, +// new int[] {8,1,2,3,4,9,5,6}, +// new int[] {1000,1001,1002}, +// new int[] {1000,1001,1002, 1003, 1004, 0,0,0,0,0,0,0}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_245/*Motorboat Modification Blueprints*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_246/*Sheet of paper that allows to turn any raft into a high speed. Increases carry amount and increases speed of rafts.*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_247/*Who did this lmao.*/, //tr +// rarity = 4, +// minLevel = 1, +// maxLevel = 4, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.SpellScroll, +// icon = Res.ResourceLoader.GetTexture(110), +// }; +// new BaseItem(new int[][] +// { +// new int[]{1,2,3,4}, +// new int[]{18}, +// new int[]{18,0,0,62,63,64}, +// new int[] {1,2,3,4,6,55}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_248/*Axe of Swiftness*/, //tr +// rarity = 3, +// minLevel = 15, +// maxLevel = 17, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Weapon, +// subtype = ItemDefinition.ItemSubtype.Axe, +// icon = Res.ResourceLoader.GetTexture(138), +// }.statSlots[1][0].multipier = 1.6f; +// new BaseItem(new int[][] +// { +// new int[]{1,26,22}, +// new int[]{18}, +// new int[]{18,62,63,64}, +// new int[] {1,2,3,4,6,55,59,57,34,35,36,14,44,49}, +// new int[] {53,22,25,12,13}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_249/*Severer*/, //tr +// rarity = 4, +// minLevel = 25, +// maxLevel = 25, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Weapon, +// subtype = ItemDefinition.ItemSubtype.Axe, +// icon = Res.ResourceLoader.GetTexture(138), +// }.statSlots[1][0].multipier = 2.5f; + +// new BaseItem(new int[][] +// { +// new int[]{1,26,22}, +// new int[]{18}, +// new int[]{1,2,3,4,5,6,7,8,9,10,12,13,14,15,16,17,18,20,34,35,36,37,38,44,45,46,47,49,53,54,55,}, +// new int[]{62,63,64,0,0,0}, +// new int[]{19,56}, +// new int[] {1,2,3,4,6,55,59,57,34,35,36,14,44,49}, +// new int[] {53,22,25,12,13,1,2,3,4,39,40,41,42,43}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_250/*Golden Axe of Fortune*/, //tr +// rarity = 5, +// minLevel = 35, +// maxLevel = 36, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Weapon, +// subtype = ItemDefinition.ItemSubtype.Axe, +// icon = Res.ResourceLoader.GetTexture(138), +// }.statSlots[1][0].multipier = 2.5f; +// new BaseItem(new int[][] +// { +// new int[]{26,22}, +// new int[]{63}, +// new int[]{1,2,3,4,5,6,7,8,9,10,12,13,14,15,16,17,18,20,34,35,36,37,38,44,45,46,47,49,53,54,55,}, +// new int[]{62,63,64,65}, +// new int[]{19,56}, +// new int[] {26}, +// new int[] {53,22,25,12,13,1,2,3,4,39,40,41,42,43}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_251/*Axe of Misfortune*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_252/*Misfortunate are the ones on the recieving end. They will bleed a lot*/, //tr +// rarity = 5, +// minLevel = 6, +// maxLevel = 9, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Weapon, +// subtype = ItemDefinition.ItemSubtype.Axe, +// icon = Res.ResourceLoader.GetTexture(138), +// }.statSlots[1][0].multipier = 3; + +// new BaseItem(new int[][] +// { +// new int[] {1,2,3,4}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_253/*Golden Ring*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_102/*A Ring of ancient times.*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_103/*A Golden Ring that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr +// rarity = 4, //range 0-7, 0 is most common, 7 is ultra rare +// minLevel = 1, +// maxLevel = 4, +// canConsume = false, +// stackSize = 1, //stacking in inventory like in mc, one means single item +// type = ItemDefinition.ItemType.Ring, +// icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that +// }; +// new BaseItem(new int[][] +// { +// new int[] {1,2,3,4}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_254/*Golden Locket*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_122/*A Locket of ancient times.*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_123/*A Golden Locket that looks simple and elegant, yet it feels powerfull to the touch.*/, //tr +// rarity = 3, //range 0-7, 0 is most common, 7 is ultra rare +// minLevel = 1, +// maxLevel = 4, +// canConsume = false, +// stackSize = 1, //stacking in inventory like in mc, one means single item +// type = ItemDefinition.ItemType.Amulet, +// icon = Res.ResourceLoader.GetTexture(101), //icon ids, don't worry about that +// }; +// new BaseItem(new int[][] +// { +// new int[]{0,39} +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_255/*Dull Axe*/, //tr +// rarity = 0, +// minLevel = 15, +// maxLevel = 24, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Weapon, +// subtype = ItemDefinition.ItemSubtype.Axe, +// icon = Res.ResourceLoader.GetTexture(138), +// }; +// new BaseItem(new int[][] +// { +// new int[] {1,2,3,4 }, +// new int[] {1,2,3,15,4,0,0,0 }, +// new int[] {12,13,1,2,3,4,5, }, +// new int[] {18,16,23,26,19 }, +// new int[] {18,16,23,26 }, +// new int[] {34,44,45,46 }, +// new int[] {2,23,26}, +// new int[] {2,23,26,51}, +// new int[] {2,23,26,20,16,15,60}, +// new int[] {52,66,60,0,0}, +// new int[] {-1}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_256/*Precise Adjustments*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_257(15)/*Focus attack speed buff duration is increased by 16 seconds*/, //tr +// rarity = 7, +// minLevel = 5, +// maxLevel = 8, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Quiver, +// icon = Res.ResourceLoader.GetTexture(98), +// onEquipCallback = () => ModdedPlayer.Stats.spell_focusOnAtkSpeedDuration.Add(16), +// onUnequipCallback = () => ModdedPlayer.Stats.spell_focusOnAtkSpeedDuration.Sub(16), +// }; +// new BaseItem(new int[][] +// { +// new int[] {25 }, +// new int[] {22,1,18,}, +// new int[] {1,2,3,4,57,}, +// new int[] {27,28,30}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {15,14,45,7,35,10}, +// new int[] {62,63,64, }, +// new int[] {53,61 }, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_258/*Rage*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_259(15)/*Increases maximum stacks of frenzy by 10*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_260/*Swords go brrrrrrttt*/, //tr +// rarity = 7, +// minLevel = 6, +// maxLevel = 9, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Weapon, +// subtype = ItemDefinition.ItemSubtype.GreatSword, +// icon = Res.ResourceLoader.GetTexture(88), +// onEquipCallback = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Add(15), +// onUnequipCallback = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Sub(15), +// }.statSlots[0][0].multipier = 5; + +// ItemDefinition jaggedRipper = new BaseItem(new int[][] +// { +// new int[] {1,2,3,4,57,}, +// new int[]{18}, +// new int[] {25 }, +// new int[] {62,63,64, }, +// new int[] {53, }, +// new int[] {49,14, }, +// new int[] {35,36,15,12, }, +// new int[] {27,28,30}, +// new int[]{18,62,63,64}, +// new int[] {65}, +// new int[] {-1}, +// new int[] {-1}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_261/*Jagged Edge*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_262("30%", "30%")/*Bash has 30% a chance to make enemies to bleed for 30% of damage dealt per second for duration of slow*/, //tr +// rarity = 7, +// minLevel = 1, +// maxLevel = 5, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Weapon, +// subtype = ItemDefinition.ItemSubtype.Axe, +// icon = Res.ResourceLoader.GetTexture(138), +// onEquipCallback = () => ModdedPlayer.Stats.spell_bashBleedChance.Add(0.3f), +// onUnequipCallback = () => ModdedPlayer.Stats.spell_bashBleedChance.Sub(0.3f), +// }; +// jaggedRipper.statSlots[1][0].multipier = 2; + +// new BaseItem(new int[][] +// { +// new int[] {25 }, +// new int[] {22,}, +// new int[] {1,2,3,4,57,}, +// new int[] {27,28,30}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {15,14,45,7,35,10}, +// new int[] {62,63,64, }, +// new int[] {53,61 }, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_263/*Bloodthirster*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_264/*Drenched in blood of many unfortunate foes.*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_265("2%")/*Bash lifesteals 2% of damage dealt into energy and health*/, //tr +// rarity = 7, +// minLevel = 1, +// maxLevel = 5, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Weapon, +// subtype = ItemDefinition.ItemSubtype.LongSword, +// icon = Res.ResourceLoader.GetTexture(89), +// onEquipCallback = () => ModdedPlayer.Stats.spell_bashLifesteal.Add(0.02f), +// onUnequipCallback = () => ModdedPlayer.Stats.spell_bashLifesteal.Sub(0.02f), +// }.statSlots[0][0].multipier = 3; +// new BaseItem(new int[][] +// { +// new int[] {25 }, +// new int[] {22 }, +// new int[] {2004 }, +// new int[] {62,63,64 }, +// new int[] {27,28,30,29,48}, +// new int[] {1}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_266/*Frost Giant*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_267/*Melee hits freeze enemies*/, //tr +// rarity = 7, +// minLevel = 1, +// maxLevel = 2, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Weapon, +// subtype = ItemDefinition.ItemSubtype.Hammer, +// icon = Res.ResourceLoader.GetTexture(109), +// onEquipCallback = () => +// { +// ModdedPlayer.Stats.i_HammerStunDuration.Multiply(2); +// ModdedPlayer.Stats.i_HammerStunAmount.Multiply(0); +// }, +// onUnequipCallback = () => +// { +// ModdedPlayer.Stats.i_HammerStunDuration.Divide(2); +// ModdedPlayer.Stats.i_HammerStunAmount.Reset(); +// }, +// }.statSlots[0][0].multipier = 3.25f; + +// new BaseItem(new int[][] +// { +// new int[] {11}, +// new int[] {65}, +// new int[] {16,17}, +// new int[] {1,11,45}, +// new int[] {15}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_268/*Alexander's Shield*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_269/*Parry has a chance to be casted when getting it. Requires parry to be equipped*/, //tr +// rarity = 7, +// minLevel = 1, +// maxLevel = 2, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Shield, +// icon = Res.ResourceLoader.GetTexture(99), +// onEquipCallback = () => ModdedPlayer.Stats.spell_chanceToParryOnHit.value = true, +// onUnequipCallback = () => ModdedPlayer.Stats.spell_chanceToParryOnHit.value = false, +// }; + +// new BaseItem(new int[][] +// { +// new int[] {1}, +// new int[] {12,3,16,45,46}, +// new int[] {13,4,62,64}, +// new int[] {22}, +// new int[] {25,22}, +// new int[] {25}, +// new int[] {11,1}, +// new int[] {30,1,57}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_270/*King Qruies*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_271/*A mighty sword seeking for it's owner*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_272/*Gain additional melee damage equal to the last instance of physical damage taken.*/, //tr +// rarity = 7, +// minLevel = 10, +// maxLevel = 12, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Weapon, +// subtype = ItemDefinition.ItemSubtype.LongSword, +// icon = Res.ResourceLoader.GetTexture(89), +// onEquipCallback = () => ModdedPlayer.Stats.i_KingQruiesSword.value = true, +// onUnequipCallback = () => ModdedPlayer.Stats.i_KingQruiesSword.value = false, +// }; + +// new BaseItem(new int[][] +// { +// new int[] {2,3,4,5,6,11,12,13,15,23,26,51,60,44,49,48}, +// new int[] {2,3,4,5,6,11,12,13,15,23,26,51,60,44,49,48}, +// new int[] {13,4,62,64}, +// new int[] {26,2,34,57,55}, +// new int[] {26,23}, +// new int[] {18,16}, +// new int[] {48,2,55}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_273/*Grip of Sora*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_274/*Look, a porcupine! -Sora*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_275("20%", "+4")/*Multishot drains 20% less energy and shoots +4 projectiles. Additional projectiles do not increase the cost of multishot*/, //tr +// rarity = 7, +// minLevel = 10, +// maxLevel = 12, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Bracer, +// icon = Res.ResourceLoader.GetTexture(93), +// onEquipCallback = () => ModdedPlayer.Stats.i_SoraBracers.value = true, +// onUnequipCallback = () => ModdedPlayer.Stats.i_SoraBracers.value = false, +// }; +// new BaseItem(new int[][] +// { +// new int[] {18}, +// new int[] {60,0}, +// new int[] {2,40}, +// new int[] {12,13,2,40,16,66}, +// new int[] {39,40,41,42,43,0,0}, +// new int[] {23,26}, +// new int[] {-1,0}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_276/*Ancient Greatbow*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_277/*A massive and slow bow, deals extra damage*/, //tr +// rarity = 4, +// minLevel = 10, +// maxLevel = 12, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Weapon, +// subtype = ItemDefinition.ItemSubtype.Greatbow, +// icon = Res.ResourceLoader.GetTexture(170), +// }.statSlots[0][0].multipier = -1.55f; + +// new BaseItem(new int[][] +// { +// new int[] {18}, +// new int[] {61}, +// new int[] {2,0,0,0}, +// new int[] {12,13,2,40,16}, +// new int[] {39,40,41,42,43,0,0}, +// new int[] {23,26,2,66}, +// new int[] {23,26}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {2,3,4,5,6,11,12,13,15,23,26,51,60,44,49,48}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_278/*Phoenix's Death*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_279/*Ignites enemies on hit*/, //tr +// rarity = 6, +// minLevel = 10, +// maxLevel = 12, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Weapon, +// subtype = ItemDefinition.ItemSubtype.Greatbow, +// icon = Res.ResourceLoader.GetTexture(170), +// onEquipCallback = () => ModdedPlayer.Stats.i_greatBowIgnites.value = true, +// onUnequipCallback = () => ModdedPlayer.Stats.i_greatBowIgnites.value = false, +// }.statSlots[0][0].multipier = -1.7f; + +// new BaseItem(new int[][] +// { +// new int[] {18}, +// new int[] {61,48}, +// new int[] {2,3,5}, +// new int[] {12,13,2,40,16}, +// new int[] {39,40,41,42,43,66}, +// new int[] {23,26}, +// new int[] {23,26}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {2,3,4,5,6,11,12,13,15,23,26,51,60,44,49,48}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_280/*Soulstring*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_281/*A massive and slow bow*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_282(100)/*Blood infused arrow now deals additional 20 points of damage per health consumed*/, //tr +// rarity = 7, +// minLevel = 10, +// maxLevel = 12, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Weapon, +// subtype = ItemDefinition.ItemSubtype.Greatbow, +// icon = Res.ResourceLoader.GetTexture(170), +// onEquipCallback = () => ModdedPlayer.Stats.spell_bia_HealthDmMult.Add(100), +// onUnequipCallback = () => ModdedPlayer.Stats.spell_bia_HealthDmMult.Sub(100), +// }.statSlots[0][0].multipier = -1.7f; + +// new BaseItem(new int[][] +// { +// new int[] {18}, + +// new int[] {2,40,0}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_283/*Greatbow*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_277/*A massive and slow bow, deals extra damage*/, //tr +// rarity = 2, +// minLevel = 25, +// maxLevel = 28, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Weapon, +// subtype = ItemDefinition.ItemSubtype.Greatbow, +// icon = Res.ResourceLoader.GetTexture(170), +// }.statSlots[0][0].multipier = -2.7f; + +// new BaseItem(new int[][] +// { +// new int[] {2,3,4,5,6,11,12,13,15,23,26,51,60,44,49,48}, +// new int[] {2,3,4,5,6,11,12,13,15,23,26,51,60,44,49,48}, +// new int[] {13,4,62,64}, +// new int[] {26,2,34,57,55}, +// new int[] {26,23}, +// new int[] {26,0,0}, +// new int[] {18,16}, +// new int[] {30,1,57}, +// new int[] {5}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_284/*Withered Crown*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_285/*Worn by Hazard.*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_286("4")/*A single cast of blood infused arrow affects 4 more projectiles*/, //tr +// rarity = 7, +// minLevel = 10, +// maxLevel = 12, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Helmet, +// icon = Res.ResourceLoader.GetTexture(91), +// onEquipCallback = () => ModdedPlayer.Stats.i_HazardCrown.value = true, +// onUnequipCallback = () => ModdedPlayer.Stats.i_HazardCrown.value = false, +// }; +// new BaseItem(new int[][] +// { +// new int[] {39,40,41,42,43,4}, +// new int[] {4,6,24,21,16,3,42,43,49}, +// new int[] {0,6,24,21,16,3,47,49,38,17,10,11,9,8,7,6}, +// new int[] {37,4}, +// new int[] {43,16,17,37,47 }, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_287/*Novice Magic Caster's Bracers*/, //tr +// rarity = 4, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Bracer, +// icon = Res.ResourceLoader.GetTexture(93), +// }; +// new BaseItem(new int[][] +// { +// new int[] {2,12,13,23,26,40,43,54}, +// new int[] {2,12,13,23,26,40,43,60,62,63,51,52,66}, +// new int[] {5,6,7,8,9,10,16,17,26}, +// new int[] {37,0,0,0}, +// new int[] {43,16,2 }, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_288/*Ranger's Bracers*/, //tr +// rarity = 4, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Bracer, +// icon = Res.ResourceLoader.GetTexture(93), +// }; +// new BaseItem(new int[][] +// { +// new int[] {1,16,5,6,18,39,14,22,25,53,62,63,57,45}, +// new int[] {2,12,13,22,25,40,43,54}, +// new int[] {5,6,7,8,9,10,16,17,26}, +// new int[] {37,1,17,18,16}, +// new int[] {43,1,65 }, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_289/*Swordsman's Bracers*/, //tr +// rarity = 4, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Bracer, +// icon = Res.ResourceLoader.GetTexture(93), +// }; +// new BaseItem(new int[][] +// { +// new int[] {3,5,6,7,8,9,10,11,14,15,16}, +// new int[] {7,16,18,0,0}, +// new int[] {39,40,41,42,43,31,16}, +// new int[] {1,2,3,4,5,57,39,40,41,42,43,31,16}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_290/*Healer's Bracers*/, //tr +// rarity = 5, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Bracer, +// icon = Res.ResourceLoader.GetTexture(93), +// }; +// new BaseItem(new int[][] +// { +// new int[] {39,40,41,42,43,4}, +// new int[] {4,6,24,21,16,3,42,43,49}, +// new int[] {0,6,24,21,16,3,47,49,38,17,10,11,9,8,7,6}, +// new int[] {37,0,0,0}, +// new int[] {43,4 }, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_291/*Novice Magic Caster's Gloves*/, //tr +// rarity = 4, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Glove, +// icon = Res.ResourceLoader.GetTexture(86), +// }; +// new BaseItem(new int[][] +// { +// new int[] {2,12,13,23,26,40,43,54}, +// new int[] {2,12,13,23,26,40,43,60,62,63,51,52,66}, +// new int[] {5,6,7,8,9,10,16,17,26}, +// new int[] {37,68}, +// new int[] {43,2 }, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_292/*Ranger's Gloves*/, //tr +// rarity = 4, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Glove, +// icon = Res.ResourceLoader.GetTexture(86), +// }; +// new BaseItem(new int[][] +// { +// new int[] {1,16,5,6,18,39,14,22,25,53,62,63,57,45}, +// new int[] {2,12,13,23,26,40,43,54}, +// new int[] {5,6,7,8,9,10,16,17,26}, +// new int[] {37,18,7,0}, +// new int[] {43,1,65 }, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_293/*Swordsman's Gloves*/, //tr +// rarity = 4, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Glove, +// icon = Res.ResourceLoader.GetTexture(86), +// }; +// new BaseItem(new int[][] +// { +// new int[] {3,5,6,7,8,9,10,11,14,15,16}, +// new int[] {7,16,18,0,0}, +// new int[] {39,40,41,42,43,31,16}, +// new int[] {1,2,3,4,5,57,39,40,41,42,43,31,16}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_294/*Healer's Gloves*/, //tr +// rarity = 5, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Glove, +// icon = Res.ResourceLoader.GetTexture(86), +// }; +// new BaseItem(new int[][] +// { +// new int[] {62,63,64,55,54,53,48,30,29,28,27}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_295/*Fate Gloves*/, //tr +// rarity = 6, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Glove, +// icon = Res.ResourceLoader.GetTexture(86), +// }; +// new BaseItem(new int[][] +// { +// new int[] {62,63,64,55,54,53,48,30,29,28,27}, +// new int[] {34}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_296/*Fate Boots*/, //tr +// rarity = 6, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Boot, +// icon = Res.ResourceLoader.GetTexture(85), +// }; +// new BaseItem(new int[][] +// { +// new int[] {62,63,64,55,54,53,48,30,29,28,27}, +// new int[] {34}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_297/*Greed*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_298/*Automatically casts wide reach every second*/, //tr +// rarity = 7, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Boot, +// icon = Res.ResourceLoader.GetTexture(85), +// onEquipCallback = () => ModdedPlayer.Stats.i_isGreed.value = true, +// onUnequipCallback = () => ModdedPlayer.Stats.i_isGreed.value = false, +// }; +// ItemDefinition titaniumleggins = new BaseItem(new int[][] +// { +// new int[] { 16}, +// new int[] {31}, +// new int[] {1,2,3,4}, +// new int[] {5,}, +// new int[] {-1,65}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_299/*Titanium Leggins*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_300/*Heavily armored leg protection. Suffers from the same weaknesses as spartan armor.*/, //tr +// rarity = 6, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Pants, +// icon = Res.ResourceLoader.GetTexture(87), +// }; +// titaniumleggins.statSlots[0][0].multipier = 3; +// titaniumleggins.statSlots[1][0].multipier = 1.5f; +// new BaseItem(new int[][] +// { +// new int[] {42,39,40,41,43,0,0 }, +// new int[] {16,24,25,26,5,6,7,8,9,10,11,12,13,14,15,17,18,55,60,61,62,63,64,0,0,0 }, +// new int[] {16,24,25,26,5,6,7,8,9,10,11,12,13,14,15,17,18,55,60,61,62,63,64 }, +// new int[] {43,0,0,0,16 }, +// new int[] {65,0}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_301/*Iron Gauntlet*/, //tr +// rarity = 2, +// minLevel = 1, +// maxLevel = 2, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Glove, +// icon = Res.ResourceLoader.GetTexture(86), +// }; + +// new BaseItem(new int[][] +// { +// new int[] {4,3,6}, +// new int[] {21,24,16 }, +// new int[] {29,4 }, +// new int[] {16,15,17 }, +// new int[] {47,49,44,45,46 }, +// new int[] {-1 }, +// new int[] {-1 }, +// new int[] {-1 }, +// new int[] {-1 }, +// new int[] {-1 }, +// new int[] {-1 }, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_302/*Magefist*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_303/*Gloves that amplify magic*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_304/*Spells deal double damage but have double the energy cost*/, //tr +// rarity = 7, +// minLevel = 1, +// maxLevel = 2, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Glove, +// icon = Res.ResourceLoader.GetTexture(86), +// onEquipCallback = () => { ModdedPlayer.Stats.spellDamageMult.valueMultiplicative *= 2f; ModdedPlayer.Stats.spellCost.valueMultiplicative *= 2f; }, +// onUnequipCallback = () => { ModdedPlayer.Stats.spellDamageMult.valueMultiplicative /= 2f; ModdedPlayer.Stats.spellCost.valueMultiplicative /= 2f; } +// }; +// new BaseItem(new int[][] +// { +// new int[] {34 }, +// new int[] {34,5,1,2,4,3,2,11 }, +// new int[] {16,3,2,1,4 }, +// new int[] {16,7,8 }, +// new int[] {16, }, +// new int[] {-1 }, +// new int[] {43 }, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_305/*Armored Boots*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_306/*Heavily armored, resistant to damage boots.*/, //tr +// rarity = 5, +// minLevel = 10, +// maxLevel = 14, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Boot, +// icon = Res.ResourceLoader.GetTexture(85), +// }; +// new BaseItem(new int[][] +// { +// new int[] {16}, +// new int[] {16,18,57,53}, +// new int[] {16,1,2,3,4,21,22,23,24,25,26,31,15,5,6,7,8,9}, +// new int[] {1,2,3,4,57}, +// new int[] {16,45,46,0,0,0}, +// new int[] {-1 }, +// new int[] {-1 }, +// new int[] {-1 }, +// new int[] {-1 }, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_307/*Broken Protector*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_308/*This shield failed to protect those behind it.*/, //tr +// rarity = 6, +// minLevel = 5, +// maxLevel = 8, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Shield, +// icon = Res.ResourceLoader.GetTexture(99), +// }.statSlots[0][0].multipier = 2; + +// new BaseItem(new int[][] +// { +// new int[] {4}, +// new int[] {6,4,3,44}, +// new int[] {21,24}, +// new int[] {21,24}, +// new int[] {-1,}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {47,4,5,6,7,61,17,0,0,0,0,2,56,57,49,64}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_309/*Forbidden Scroll*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_310/*Too powerful to be kept.*/, //tr +// rarity = 6, +// minLevel = 1, +// maxLevel = 1, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.SpellScroll, +// icon = Res.ResourceLoader.GetTexture(110), +// }; + +// new BaseItem(new int[][] +// { +// new int[] {16}, +// new int[] {1,2,3,4}, +// new int[] {17}, +// new int[] {8,9,49,47}, +// new int[] {16,18,11,34}, +// new int[] {37,34}, +// new int[] {-1}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_311/*Doom Pauldrons*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_312/*Despite the cool name, they are completely normal pair of shoulder armor.*/, //tr +// rarity = 6, +// minLevel = 5, +// maxLevel = 9, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.ShoulderArmor, +// icon = Res.ResourceLoader.GetTexture(95), +// }; +// new BaseItem(new int[][] +// { +// new int[] {16}, +// new int[] {1,2,3,4,57,53,54,55}, +// new int[] {17,18,11,15}, +// new int[] {15}, +// new int[] {34}, +// new int[] {16,5,6,7,8,9,10,11,12,13,14,15,17,18,59,47,45,46,60}, +// new int[] {23,22,30,27,34,44,48,59}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_313/*Wind armor*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_314/*Run fast like the wind*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_315("20%", "35%", "2000", "5%")/*Upon dodging an attack, gain 20% movement speed, 35% damage, 2000 armor, and heal for 5% of your maximum health*/, //tr +// rarity = 7, +// minLevel = 5, +// maxLevel = 9, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.ChestArmor, +// icon = Res.ResourceLoader.GetTexture(96), +// onEquipCallback = () => ModdedPlayer.Stats.i_isWindArmor.value = true, +// onUnequipCallback = () => ModdedPlayer.Stats.i_isWindArmor.value = false, +// }; +// new BaseItem(new int[][] +// { +// new int[] {11}, +// new int[] {22,23,21}, +// new int[] {16}, +// new int[] {1,2,3,4,5,6,7,8,9,10,12,13,14,15,16,17,18,31,36,37,38,43,44,45,46,47,49,50,53,54,55,57}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {24,25,26,0,0,0}, +// //new int[] {29,30,48}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_316/*Crusader Helmet*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_317/*You're talking mad shit for someone within crusading distance*/, //tr +// rarity = 5, +// minLevel = 2, +// maxLevel = 6, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Helmet, +// icon = Res.ResourceLoader.GetTexture(91), +// }; + +// new BaseItem(new int[][] +// { +// new int[] {1,2,3,4,5,6,57}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {24,25,26,10,47,0,0,0}, +// //new int[] {29,30,48}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_318/*Hood*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_319/*Hats provide usefull stat bonuses*/, //tr +// rarity = 3, +// minLevel = 2, +// maxLevel = 6, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Helmet, +// icon = Res.ResourceLoader.GetTexture(91), +// }; +// new BaseItem(new int[][] +// { +// new int[] {47 }, +// new int[] {4,29 }, +// new int[] {4,29 }, +// new int[] {4,17,6,44,38,21,24,8,9}, +// new int[] {4,17,6,44,38,21,24,8,9}, +// new int[] {4,17,6,44,38,21,24,8,9}, +// new int[] {4,17,6,44,38,21,24,8,9}, +// new int[] {4,17,6,44,38,21,24,8,9}, +// new int[] {2000,2002,49}, +// new int[] {2001,4,29,24,21}, +// new int[] {2002,4}, +// new int[] {2003,-1}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_320/*The Spark of Light in The Darkness*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_321/*Magic Scroll of great quality*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_322/*Written in a language i canno't understand. Decyphering this text is impossible, so is the full utilization of the scroll.*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_323("5")/*If a black hole hits 5 or more enemies during it's lifetime, a ball lightning is summoned after it ends.*/, //tr +// rarity = 7, +// minLevel = 15, +// maxLevel = 20, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.SpellScroll, +// icon = Res.ResourceLoader.GetTexture(110), +// onEquipCallback = () => ModdedPlayer.Stats.i_sparkOfLightAfterDark.value = true, +// onUnequipCallback = () => ModdedPlayer.Stats.i_sparkOfLightAfterDark.value = false +// }; +// new BaseItem(new int[][] +// { +// new int[] {21,22,23,24,25,26,1,2,4}, +// new int[] {12,13,11,47}, +// new int[] {62,63,64,1000,1001,1002,1003,1004}, +// new int[] {61}, +// new int[] {5,57}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_324/*Purgatory*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_325/*Golden ring with a bone chilling feel about it. This thing will only bring harm, but not to the wearer*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_326/*Ring made of Netherrite*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_327("300%")/*Purge increases all of your damage based on missing health. Up to 300%*/, //tr +// rarity = 7, +// minLevel = 20, +// maxLevel = 26, +// canConsume = false, +// stackSize = 1, +// onEquipCallback = () => ModdedPlayer.Stats.spell_purgeDamageBonus.value = true, +// onUnequipCallback = () => ModdedPlayer.Stats.spell_purgeDamageBonus.value = false, +// type = ItemDefinition.ItemType.Ring, +// icon = Res.ResourceLoader.GetTexture(90), +// }.SetDropOnlyCannibals(); + +// new BaseItem(new int[][] +// { +// new int[] {18}, +// new int[] {61,48}, +// new int[] {2,3,5}, +// new int[] {12,13,2,40,16}, +// new int[] {39,40,41,42,43,0,0}, +// new int[] {23,26}, +// new int[] {23,26}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {2,3,4,5,6,11,12,13,15,23,26,51,60,44,49,48}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_328/*Eruption*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_329/*Incarnation of devastation*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_330/*Headshots cause explosions*/, //tr +// rarity = 7, +// minLevel = 10, +// maxLevel = 12, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Weapon, +// subtype = ItemDefinition.ItemSubtype.Greatbow, +// icon = Res.ResourceLoader.GetTexture(170), +// onEquipCallback = () => ModdedPlayer.Stats.i_EruptionBow.value = true, +// onUnequipCallback = () => ModdedPlayer.Stats.i_EruptionBow.value = false, +// }.statSlots[0][0].multipier = -1.6f; + +// new BaseItem(new int[][] +// { +// new int[] {18}, +// new int[] {61,48}, +// new int[] {2,3,5}, +// new int[] {12,13,2,40,16}, +// new int[] {39,40,41,42,43,0,0}, +// new int[] {23,26}, +// new int[] {23,26}, +// new int[] {31}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {2,3,4,5,6,11,12,13,15,23,26,51,60,44,49,48}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_331/*Archangel*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_332/*Spread the goodness*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_333("30")/*Shooting another player causes them to be greatly empowered for 30 seconds*/, //tr +// rarity = 7, +// minLevel = 10, +// maxLevel = 12, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Weapon, +// subtype = ItemDefinition.ItemSubtype.Greatbow, +// icon = Res.ResourceLoader.GetTexture(170), +// onEquipCallback = () => ModdedPlayer.Stats.i_ArchangelBow.value = true, +// onUnequipCallback = () => ModdedPlayer.Stats.i_ArchangelBow.value = false, +// }.statSlots[0][0].multipier = -2f; +// new BaseItem(new int[][] +// { +// new int[] {1,4 }, +// new int[] {1,3,5,6,49 }, +// new int[] {22}, +// new int[] {25}, +// new int[] {12}, +// new int[] {13}, +// new int[] {1,12,13,22,25,30,53,57,65 }, +// new int[] {-1 }, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_334/*The Executioner*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_335/*A sword for decapitating*/, //tr +// rarity = 4, +// minLevel = 25, +// maxLevel = 27, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Weapon, +// subtype = ItemDefinition.ItemSubtype.LongSword, +// icon = Res.ResourceLoader.GetTexture(89), +// }; +// new BaseItem(new int[][] +// { +// new int[] {48 }, +// new int[] {23,26,2 }, +// new int[] {23,26 }, +// new int[] {12,13}, +// new int[] {60}, +// new int[] {13,23,26}, +// new int[] {23,26}, +// new int[] {34,2,2,54}, +// new int[] {15,14}, +// new int[] {16,23,2,4,5,6}, +// new int[] {45,46}, +// new int[] {27,49}, +// new int[] {-1}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_336/*Moon Cuirass*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_337/*A piece of armor designed for an archer. */, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_338("120")/*Landing a headshot with an arrow without the homing effect of seeking arrow at a distance greater than 120 feet deals five-fold damage, and hits the enemy two extra times*/, //tr +// rarity = 7, +// minLevel = 20, +// maxLevel = 22, +// canConsume = false, +// stackSize = 1, +// onEquipCallback = () => ModdedPlayer.Stats.perk_trueAimUpgrade.value = true, +// onUnequipCallback = () => ModdedPlayer.Stats.perk_trueAimUpgrade.value = false, +// type = ItemDefinition.ItemType.ChestArmor, +// icon = Res.ResourceLoader.GetTexture(96), +// }; +// new BaseItem(new int[][] +// { +// new int[] {65 }, +// new int[] {1 }, +// new int[] {3}, +// new int[] {5,65}, +// new int[] {5,6,11,10,7,45}, +// new int[] {53}, +// new int[] {22}, +// new int[] {1,3,4,5,31}, +// new int[] {28}, +// new int[] {63}, +// new int[] {16}, +// new int[] {-1}, +// new int[] {-1}, +// new int[] {-1}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_339/*Thornmail*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_340/*Spiked death on the outside, really comfy on the inside*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_341/*Thorns deal double damage*/, //tr +// rarity = 7, +// minLevel = 20, +// maxLevel = 22, +// canConsume = false, +// stackSize = 1, +// onEquipCallback = () => ModdedPlayer.Stats.thornsDmgMult.valueMultiplicative *= 2, +// onUnequipCallback = () => ModdedPlayer.Stats.thornsDmgMult.valueMultiplicative /= 2, +// type = ItemDefinition.ItemType.ChestArmor, +// icon = Res.ResourceLoader.GetTexture(96), +// }; + +// new BaseItem(new int[][] +// { +// new int[] {1 }, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_342/*Rusty Polearm*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_343/*Used by the Ubersreik Five*/, //tr +// rarity = 1, +// minLevel = 10, +// maxLevel = 16, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Weapon, +// subtype = ItemDefinition.ItemSubtype.Polearm, +// icon = Res.ResourceLoader.GetTexture(181), +// }; +// new BaseItem(new int[][] +// { +// new int[] {1 }, +// new int[] {25,0 }, +// new int[] {25 ,62,63,64}, +// new int[] {6,49}, +// new int[] {39,40,41,42,44,8,18,65 }, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_344/*Giant Polearm*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_345/*Used by the Sir Kruber*/, //tr +// rarity = 4, +// minLevel = 20, +// maxLevel = 24, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Weapon, +// subtype = ItemDefinition.ItemSubtype.Polearm, +// icon = Res.ResourceLoader.GetTexture(181), +// }; + +// //Feathers +// new BaseItem(new int[][] { }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_346/*Crude Feather*/, //tr +// description = +// Translations.ItemDatabase_ItemDefinitions_582/*If equipped on a weapon, increases ranged damage by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.Weapon, 1).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_583/*If equipped on boots, increases movement speed by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.Boot, 1).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_584/*If equipped on a helmet, increases critical hit chance by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.Helmet, 1).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_585/*If equipped on accessories, increases ranged armor piercing by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.Amulet, 1).ToString("N") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_586/*If equipped in other slots, increases agility by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.ChestArmor, 1).ToString("N"), //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr +// rarity = 3, +// minLevel = 20, +// maxLevel = 21, +// canConsume = false, +// stackSize = 100, +// subtype = 1, +// type = ItemDefinition.ItemType.Material, +// icon = Res.ResourceLoader.GetTexture(185), +// }; +// new BaseItem(new int[][] { }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_348/*Soft Feather*/, //tr +// description = +// Translations.ItemDatabase_ItemDefinitions_582/*If equipped on a weapon, increases ranged damage by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.Weapon, 1).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_583/*If equipped on boots, increases movement speed by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.Boot, 1).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_584/*If equipped on a helmet, increases critical hit chance by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.Helmet, 1).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_585/*If equipped on accessories, increases ranged armor piercing by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.Amulet, 1).ToString("N") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_586/*If equipped in other slots, increases agility by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.ChestArmor, 1).ToString("N"), //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr +// rarity = 4, +// minLevel = 20, +// maxLevel = 21, +// canConsume = false, +// stackSize = 100, +// subtype = 1, +// type = ItemDefinition.ItemType.Material, +// icon = Res.ResourceLoader.GetTexture(185), +// }; +// new BaseItem(new int[][] { }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_349/*Ornate Feather*/, //tr +// description = +// Translations.ItemDatabase_ItemDefinitions_582/*If equipped on a weapon, increases ranged damage by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.Weapon, 1).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_583/*If equipped on boots, increases movement speed by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.Boot, 1).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_584/*If equipped on a helmet, increases critical hit chance by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.Helmet, 1).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_585/*If equipped on accessories, increases ranged armor piercing by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.Amulet, 1).ToString("N") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_586/*If equipped in other slots, increases agility by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.ChestArmor, 1).ToString("N"), //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr +// rarity = 5, +// minLevel = 20, +// maxLevel = 21, +// canConsume = false, +// stackSize = 100, +// subtype = 1, +// type = ItemDefinition.ItemType.Material, +// icon = Res.ResourceLoader.GetTexture(185), +// }; + +// new BaseItem(new int[][] { }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_350/*Wonderful Feather*/, //tr +// description = +// Translations.ItemDatabase_ItemDefinitions_582/*If equipped on a weapon, increases ranged damage by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.Weapon, 1).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_583/*If equipped on boots, increases movement speed by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.Boot, 1).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_584/*If equipped on a helmet, increases critical hit chance by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.Helmet, 1).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_585/*If equipped on accessories, increases ranged armor piercing by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.Amulet, 1).ToString("N") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_586/*If equipped in other slots, increases agility by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.ChestArmor, 1).ToString("N"), //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr +// rarity = 6, +// minLevel = 20, +// maxLevel = 21, +// canConsume = false, +// stackSize = 100, +// subtype = 1, +// type = ItemDefinition.ItemType.Material, +// icon = Res.ResourceLoader.GetTexture(185), +// }; +// new BaseItem(new int[][] { }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_351/*White Crow's Feather*/, //tr +// description = +// Translations.ItemDatabase_ItemDefinitions_582/*If equipped on a weapon, increases ranged damage by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.Weapon, 1).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_583/*If equipped on boots, increases movement speed by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.Boot, 1).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_584/*If equipped on a helmet, increases critical hit chance by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.Helmet, 1).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_585/*If equipped on accessories, increases ranged armor piercing by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.Amulet, 1).ToString("N") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_586/*If equipped in other slots, increases agility by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.ChestArmor, 1).ToString("N"), //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr +// rarity = 7, +// minLevel = 20, +// maxLevel = 21, +// canConsume = false, +// stackSize = 100, +// subtype = 1, +// type = ItemDefinition.ItemType.Material, +// icon = Res.ResourceLoader.GetTexture(185), +// }; + +// //-------------- Shark teeth + +// new BaseItem(new int[][] { }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_352/*Reef Shark*/, //tr +// description = +// Translations.ItemDatabase_ItemDefinitions_587/*If equipped on a weapon, increases melee damage by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.Weapon, 2).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_588/*If equipped on boots, decreases damage taken by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.Boot, 2).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_589/*If equipped on a helmet, increases cattack speed by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.Helmet, 2).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_590/*If equipped on accessories, increases melee armor piercing by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.Amulet, 2).ToString("N") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_591/*If equipped in other slots, increases strength by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.ChestArmor, 2).ToString("N"), //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr +// rarity = 3, +// minLevel = 20, +// maxLevel = 21, +// canConsume = false, +// stackSize = 100, +// subtype = 2, +// type = ItemDefinition.ItemType.Material, +// icon = Res.ResourceLoader.GetTexture(186), +// }; +// new BaseItem(new int[][] { }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_353/*Tiger Shark Tooth*/, //tr +// description = +// Translations.ItemDatabase_ItemDefinitions_587/*If equipped on a weapon, increases melee damage by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.Weapon, 2).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_588/*If equipped on boots, decreases damage taken by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.Boot, 2).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_589/*If equipped on a helmet, increases cattack speed by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.Helmet, 2).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_590/*If equipped on accessories, increases melee armor piercing by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.Amulet, 2).ToString("N") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_591/*If equipped in other slots, increases strength by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.ChestArmor, 2).ToString("N"), //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr +// rarity = 4, +// minLevel = 20, +// maxLevel = 21, +// canConsume = false, +// stackSize = 100, +// subtype = 2, +// type = ItemDefinition.ItemType.Material, +// icon = Res.ResourceLoader.GetTexture(186), +// }; +// new BaseItem(new int[][] { }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_354/*Whale Shark Tooth*/, //tr +// description = +// Translations.ItemDatabase_ItemDefinitions_587/*If equipped on a weapon, increases melee damage by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.Weapon, 2).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_588/*If equipped on boots, decreases damage taken by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.Boot, 2).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_589/*If equipped on a helmet, increases cattack speed by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.Helmet, 2).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_590/*If equipped on accessories, increases melee armor piercing by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.Amulet, 2).ToString("N") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_591/*If equipped in other slots, increases strength by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.ChestArmor, 2).ToString("N"), //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr +// rarity = 5, +// minLevel = 20, +// maxLevel = 21, +// canConsume = false, +// stackSize = 100, +// subtype = 2, +// type = ItemDefinition.ItemType.Material, +// icon = Res.ResourceLoader.GetTexture(186), +// }; + +// new BaseItem(new int[][] { }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_355/*Great White Shark Tooth*/, //tr +// description = +// Translations.ItemDatabase_ItemDefinitions_587/*If equipped on a weapon, increases melee damage by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.Weapon, 2).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_588/*If equipped on boots, decreases damage taken by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.Boot, 2).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_589/*If equipped on a helmet, increases cattack speed by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.Helmet, 2).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_590/*If equipped on accessories, increases melee armor piercing by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.Amulet, 2).ToString("N") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_591/*If equipped in other slots, increases strength by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.ChestArmor, 2).ToString("N"), //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr +// rarity = 6, +// minLevel = 20, +// maxLevel = 21, +// canConsume = false, +// stackSize = 100, +// subtype = 2, +// type = ItemDefinition.ItemType.Material, +// icon = Res.ResourceLoader.GetTexture(186), +// }; +// new BaseItem(new int[][] { }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_356/*Megalodon's Tooth*/, //tr +// description = +// Translations.ItemDatabase_ItemDefinitions_587/*If equipped on a weapon, increases melee damage by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.Weapon, 2).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_588/*If equipped on boots, decreases damage taken by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.Boot, 2).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_589/*If equipped on a helmet, increases cattack speed by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.Helmet, 2).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_590/*If equipped on accessories, increases melee armor piercing by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.Amulet, 2).ToString("N") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_591/*If equipped in other slots, increases strength by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.ChestArmor, 2).ToString("N"), //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr +// rarity = 7, +// minLevel = 20, +// maxLevel = 21, +// canConsume = false, +// stackSize = 100, +// subtype = 2, +// type = ItemDefinition.ItemType.Material, +// icon = Res.ResourceLoader.GetTexture(186), +// }; + +// //------------- Sapphires + +// new BaseItem(new int[][] { }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_357/*Uncut Sapphire*/, //tr +// description = +// Translations.ItemDatabase_ItemDefinitions_592/*If equipped on a weapon, increases magic damage by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.Weapon, 3).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_593/*If equipped on boots, decreases spell cost by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.Boot, 3).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_594/*If equipped on a helmet, decreases spell cooldown by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.Helmet, 3).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_595/*If equipped on accessories, increases energy on hit by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.Amulet, 3).ToString("N") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_596/*If equipped in other slots, increases intelligence by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.ChestArmor, 3).ToString("N"), //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr +// rarity = 3, +// minLevel = 20, +// maxLevel = 21, +// canConsume = false, +// stackSize = 100, +// subtype = 3, +// type = ItemDefinition.ItemType.Material, +// icon = Res.ResourceLoader.GetTexture(187), +// }; +// new BaseItem(new int[][] { }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_358/*Clear Sapphire*/, //tr +// description = +// Translations.ItemDatabase_ItemDefinitions_592/*If equipped on a weapon, increases magic damage by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.Weapon, 3).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_593/*If equipped on boots, decreases spell cost by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.Boot, 3).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_594/*If equipped on a helmet, decreases spell cooldown by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.Helmet, 3).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_595/*If equipped on accessories, increases energy on hit by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.Amulet, 3).ToString("N") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_596/*If equipped in other slots, increases intelligence by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.ChestArmor, 3).ToString("N"), //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr +// rarity = 4, +// minLevel = 20, +// maxLevel = 21, +// canConsume = false, +// stackSize = 100, +// subtype = 3, +// type = ItemDefinition.ItemType.Material, +// icon = Res.ResourceLoader.GetTexture(187), +// }; +// new BaseItem(new int[][] { }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_359/*Shiny Sapphire*/, //tr +// description = +// Translations.ItemDatabase_ItemDefinitions_592/*If equipped on a weapon, increases magic damage by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.Weapon, 3).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_593/*If equipped on boots, decreases spell cost by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.Boot, 3).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_594/*If equipped on a helmet, decreases spell cooldown by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.Helmet, 3).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_595/*If equipped on accessories, increases energy on hit by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.Amulet, 3).ToString("N") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_596/*If equipped in other slots, increases intelligence by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.ChestArmor, 3).ToString("N"), //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr +// rarity = 5, +// minLevel = 20, +// maxLevel = 21, +// canConsume = false, +// stackSize = 100, +// subtype = 3, +// type = ItemDefinition.ItemType.Material, +// icon = Res.ResourceLoader.GetTexture(187), +// }; + +// new BaseItem(new int[][] { }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_360/*Enchanted Sapphire*/, //tr +// description = +// Translations.ItemDatabase_ItemDefinitions_592/*If equipped on a weapon, increases magic damage by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.Weapon, 3).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_593/*If equipped on boots, decreases spell cost by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.Boot, 3).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_594/*If equipped on a helmet, decreases spell cooldown by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.Helmet, 3).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_595/*If equipped on accessories, increases energy on hit by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.Amulet, 3).ToString("N") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_596/*If equipped in other slots, increases intelligence by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.ChestArmor, 3).ToString("N"), //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr +// rarity = 6, +// minLevel = 20, +// maxLevel = 21, +// canConsume = false, +// stackSize = 100, +// subtype = 3, +// type = ItemDefinition.ItemType.Material, +// icon = Res.ResourceLoader.GetTexture(187), +// }; +// new BaseItem(new int[][] { }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_361/*Celestial Sapphire*/, //tr +// description = +// Translations.ItemDatabase_ItemDefinitions_592/*If equipped on a weapon, increases magic damage by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.Weapon, 3).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_593/*If equipped on boots, decreases spell cost by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.Boot, 3).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_594/*If equipped on a helmet, decreases spell cooldown by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.Helmet, 3).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_595/*If equipped on accessories, increases energy on hit by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.Amulet, 3).ToString("N") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_596/*If equipped in other slots, increases intelligence by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.ChestArmor, 3).ToString("N"), //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr +// rarity = 7, +// minLevel = 20, +// maxLevel = 21, +// canConsume = false, +// stackSize = 100, +// subtype = 3, +// type = ItemDefinition.ItemType.Material, +// icon = Res.ResourceLoader.GetTexture(187), +// }; + +// // -------- Moonstones +// new BaseItem(new int[][] { }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_362/*Uncut Moonstone*/, //tr +// description = +// Translations.ItemDatabase_ItemDefinitions_597/*If equipped on a weapon, increases all healing by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.Weapon, 4).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_598/*If equipped on boots, increases magic find by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.Boot, 4).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_599/*If equipped on a helmet, increases experience gained by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.Helmet, 4).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_600/*If equipped on accessories, increases life per second by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.Amulet, 4).ToString("N") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_601/*If equipped in other slots, increases vitality by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.ChestArmor, 4).ToString("N"), //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr +// rarity = 3, +// minLevel = 20, +// maxLevel = 21, +// canConsume = false, +// stackSize = 100, +// subtype = 4, +// type = ItemDefinition.ItemType.Material, +// icon = Res.ResourceLoader.GetTexture(188), +// }; +// new BaseItem(new int[][] { }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_363/*Clear Moonstone*/, //tr +// description = +// Translations.ItemDatabase_ItemDefinitions_597/*If equipped on a weapon, increases all healing by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.Weapon, 4).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_598/*If equipped on boots, increases magic find by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.Boot, 4).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_599/*If equipped on a helmet, increases experience gained by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.Helmet, 4).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_600/*If equipped on accessories, increases life per second by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.Amulet, 4).ToString("N") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_601/*If equipped in other slots, increases vitality by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.ChestArmor, 4).ToString("N"), //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr +// rarity = 4, +// minLevel = 20, +// maxLevel = 21, +// canConsume = false, +// stackSize = 100, +// subtype = 4, +// type = ItemDefinition.ItemType.Material, +// icon = Res.ResourceLoader.GetTexture(188), +// }; +// new BaseItem(new int[][] { }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_364/*Shiny Moonstone*/, //tr +// description = +// Translations.ItemDatabase_ItemDefinitions_597/*If equipped on a weapon, increases all healing by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.Weapon, 4).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_598/*If equipped on boots, increases magic find by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.Boot, 4).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_599/*If equipped on a helmet, increases experience gained by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.Helmet, 4).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_600/*If equipped on accessories, increases life per second by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.Amulet, 4).ToString("N") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_601/*If equipped in other slots, increases vitality by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.ChestArmor, 4).ToString("N"), //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr +// rarity = 5, +// minLevel = 20, +// maxLevel = 21, +// canConsume = false, +// stackSize = 100, +// subtype = 4, +// type = ItemDefinition.ItemType.Material, +// icon = Res.ResourceLoader.GetTexture(188), +// }; + +// new BaseItem(new int[][] { }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_365/*Enchanted Moonstone*/, //tr +// description = +// Translations.ItemDatabase_ItemDefinitions_597/*If equipped on a weapon, increases all healing by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.Weapon, 4).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_598/*If equipped on boots, increases magic find by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.Boot, 4).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_599/*If equipped on a helmet, increases experience gained by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.Helmet, 4).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_600/*If equipped on accessories, increases life per second by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.Amulet, 4).ToString("N") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_601/*If equipped in other slots, increases vitality by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.ChestArmor, 4).ToString("N"), //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr +// rarity = 6, +// minLevel = 20, +// maxLevel = 21, +// canConsume = false, +// stackSize = 100, +// subtype = 4, +// type = ItemDefinition.ItemType.Material, +// icon = Res.ResourceLoader.GetTexture(188), +// }; +// new BaseItem(new int[][] { }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_366/*Celestial Moonstone*/, //tr +// description = +// Translations.ItemDatabase_ItemDefinitions_597/*If equipped on a weapon, increases all healing by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.Weapon, 4).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_598/*If equipped on boots, increases magic find by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.Boot, 4).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_599/*If equipped on a helmet, increases experience gained by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.Helmet, 4).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_600/*If equipped on accessories, increases life per second by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.Amulet, 4).ToString("N") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_601/*If equipped in other slots, increases vitality by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.ChestArmor, 4).ToString("N"), //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr +// rarity = 7, +// minLevel = 20, +// maxLevel = 21, +// canConsume = false, +// stackSize = 100, +// subtype = 4, +// type = ItemDefinition.ItemType.Material, +// icon = Res.ResourceLoader.GetTexture(188), +// }; + +// // ----------------- Ores + +// new BaseItem(new int[][] { }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_367/*Lead Ore*/, //tr +// description = +// Translations.ItemDatabase_ItemDefinitions_602/*If equipped on a weapon, increases crit damage by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.Weapon, 5).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_603/*If equipped on boots, increases resistance to magic by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.Boot, 5).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_604/*If equipped on a helmet, increases health by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.Helmet, 5).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_605/*If equipped on accessories, increases thorns by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.Amulet, 5).ToString("N") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_606/*If equipped in other slots, increases armor by */ + StatActions.GetSocketedStatAmount(3, ItemDefinition.ItemType.ChestArmor, 5).ToString("N"), //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr +// rarity = 3, +// minLevel = 20, +// maxLevel = 21, +// canConsume = false, +// stackSize = 100, +// subtype = 5, +// type = ItemDefinition.ItemType.Material, +// icon = Res.ResourceLoader.GetTexture(184), +// }; +// new BaseItem(new int[][] { }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_368/*Vanadium Ore*/, //tr +// description = +// Translations.ItemDatabase_ItemDefinitions_602/*If equipped on a weapon, increases crit damage by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.Weapon, 5).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_603/*If equipped on boots, increases resistance to magic by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.Boot, 5).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_604/*If equipped on a helmet, increases health by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.Helmet, 5).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_605/*If equipped on accessories, increases thorns by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.Amulet, 5).ToString("N") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_606/*If equipped in other slots, increases armor by */ + StatActions.GetSocketedStatAmount(4, ItemDefinition.ItemType.ChestArmor, 5).ToString("N"), //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr +// rarity = 4, +// minLevel = 20, +// maxLevel = 21, +// canConsume = false, +// stackSize = 100, +// subtype = 5, +// type = ItemDefinition.ItemType.Material, +// icon = Res.ResourceLoader.GetTexture(184), +// }; +// new BaseItem(new int[][] { }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_369/*Titanium Ore*/, //tr +// description = +// Translations.ItemDatabase_ItemDefinitions_602/*If equipped on a weapon, increases crit damage by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.Weapon, 5).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_603/*If equipped on boots, increases resistance to magic by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.Boot, 5).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_604/*If equipped on a helmet, increases health by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.Helmet, 5).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_605/*If equipped on accessories, increases thorns by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.Amulet, 5).ToString("N") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_606/*If equipped in other slots, increases armor by */ + StatActions.GetSocketedStatAmount(5, ItemDefinition.ItemType.ChestArmor, 5).ToString("N"), //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr +// rarity = 5, + +// minLevel = 20, +// maxLevel = 21, +// canConsume = false, +// stackSize = 100, +// subtype = 5, +// type = ItemDefinition.ItemType.Material, +// icon = Res.ResourceLoader.GetTexture(184), +// }; + +// new BaseItem(new int[][] { }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_370/*Chromium Ore*/, //tr +// description = +// Translations.ItemDatabase_ItemDefinitions_602/*If equipped on a weapon, increases crit damage by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.Weapon, 5).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_603/*If equipped on boots, increases resistance to magic by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.Boot, 5).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_604/*If equipped on a helmet, increases health by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.Helmet, 5).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_605/*If equipped on accessories, increases thorns by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.Amulet, 5).ToString("N") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_606/*If equipped in other slots, increases armor by */ + StatActions.GetSocketedStatAmount(6, ItemDefinition.ItemType.ChestArmor, 5).ToString("N"), //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr +// rarity = 6, +// minLevel = 20, +// maxLevel = 21, +// canConsume = false, +// stackSize = 100, +// subtype = 5, +// type = ItemDefinition.ItemType.Material, +// icon = Res.ResourceLoader.GetTexture(184), +// }; +// new BaseItem(new int[][] { }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_371/*Tungsten Ore*/, //tr +// description = +// Translations.ItemDatabase_ItemDefinitions_602/*If equipped on a weapon, increases crit damage by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.Weapon, 5).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_603/*If equipped on boots, increases resistance to magic by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.Boot, 5).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_604/*If equipped on a helmet, increases health by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.Helmet, 5).ToString("P") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_605/*If equipped on accessories, increases thorns by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.Amulet, 5).ToString("N") + "\n" + //tr +// Translations.ItemDatabase_ItemDefinitions_606/*If equipped in other slots, increases armor by */ + StatActions.GetSocketedStatAmount(7, ItemDefinition.ItemType.ChestArmor, 5).ToString("N"), //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_347/*Materials can be put inside empty sockets to add stats to items*/, //tr +// rarity = 7, +// minLevel = 20, +// maxLevel = 21, +// canConsume = false, +// stackSize = 100, +// subtype = 5, +// type = ItemDefinition.ItemType.Material, +// icon = Res.ResourceLoader.GetTexture(184), +// }; + +// //This is the new better way of defining items, no longer uses item ids, now uses enum like in C++, the enum is Stats, you can find it in ItemDatabase_StatDefinitons.cs +// new BaseItem(new Stat[][] +// { +// new [] {MELEE_DMG_FROM_STR}, +// new [] {STRENGTH}, +// new [] {BASE_MELEE_DAMAGE,MELEE_DAMAGE_INCREASE}, +// new [] {MELEE_ARMOR_PIERCING,ARMOR_PIERCING,ALL_ATTRIBUTES}, +// new [] {ATTACK_COST_REDUCTION,ATTACKSPEED}, +// new [] {ATTACKSPEED}, +// new [] {ALL_ATTRIBUTES,MELEE_WEAPON_RANGE,VITALITY,MAX_LIFE}, +// new [] {ENERGY_ON_HIT,VITALITY,LIFE_ON_HIT } +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_372/*Knife on a stick*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_373/*Kasper named this item, his fault*/, //tr +// rarity = 5, +// minLevel = 30, +// maxLevel = 34, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Weapon, +// subtype = ItemDefinition.ItemSubtype.Polearm, +// icon = Res.ResourceLoader.GetTexture(181), +// }; +// new BaseItem(new Stat[][] +// { +// new [] {STRENGTH}, +// new [] {STRENGTH,ALL_ATTRIBUTES,MELEE_ARMOR_PIERCING,MELEE_DAMAGE_INCREASE,COOLDOWN_REDUCTION,SPELL_DAMAGE_MULTIPLIER}, +// new [] {MAX_LIFE,VITALITY,MAX_LIFE_MULT,ALL_ATTRIBUTES}, +// new [] {MELEE_DAMAGE_INCREASE,DAMAGE_REDUCTION}, +// new [] {THORNS}, +// new [] {VITALITY,LIFE_REGEN_BASE,LIFE_REGEN_MULT}, +// new [] {VITALITY,LIFE_REGEN_BASE,LIFE_REGEN_MULT,THORNS}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ENERGY_REGEN_BASE,MAX_ENERGY,DODGE_CHANCE,ARMOR,}, +// new [] {STRENGTH,INTELLIGENCE,ARMOR,ARMOR_PIERCING,THORNS,} +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_374/*Fists of Nails*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_375/*Swiss sheese makers*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_376("900%")/*Gain 5 thorns per vitality*/, //tr +// rarity = 7, +// minLevel = 20, +// maxLevel = 22, +// canConsume = false, +// stackSize = 1, +// onEquipCallback = () => ModdedPlayer.Stats.thornsPerVit.Add(9), +// onUnequipCallback = () => ModdedPlayer.Stats.thornsPerVit.Sub(9), +// type = ItemDefinition.ItemType.Glove, +// icon = Res.ResourceLoader.GetTexture(86), +// }; +// new BaseItem(new int[][] +// { +// new int[] {1000}, +// new int[] {1001}, +// new int[] {1002}, +// new int[] {1003}, +// new int[] {1004}, +// new int[] {1,2,3,4,5,6 }, +// new int[] {-1 }, +// new int[] {-1 }, +// new int[] {-1 }, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_377/*Cargo Shorts MK2*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_378/*Deepest pockets out there*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_379/*Improved cargo pants. Twice as many pockets, and since they didnt fit on the outside, they are inside. They are still ugly as hell tho*/, //tr +// rarity = 4, +// minLevel = 30, +// maxLevel = 33, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Pants, +// icon = Res.ResourceLoader.GetTexture(87), +// }; +// new BaseItem(new Stat[][] +// { +// new [] {INTELLIGENCE,AGILITY}, +// new [] {LOOT_QUANTITY,SPELL_DAMAGE_MULTIPLIER,BASE_SPELL_DAMAGE}, +// new [] {SPELL_DAMAGE_MULTIPLIER,BASE_SPELL_DAMAGE}, +// new [] {MAX_ENERGY_FROM_AGILITY,SPELL_DMG_FROM_INT,RANGED_DMG_FROM_AGI}, +// new [] {ARMOR}, +// new [] {VITALITY,LIFE_REGEN_BASE,LIFE_REGEN_MULT,INTELLIGENCE,AGILITY,STRENGTH,ALL_ATTRIBUTES}, +// new [] {COOLDOWN_REDUCTION,SPELL_COST_REDUCTION,SPELL_COST_TO_STAMINA,MOVEMENT_SPEED,DAMAGE_REDUCTION}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {DODGE_CHANCE,ARMOR,BASE_SPELL_DAMAGE,BASE_RANGED_DAMAGE}, +// new [] {BASE_RANGED_DAMAGE,RANGED_ARMOR_PIERCING,RANGED_DAMAGE_INCREASE} +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_380/*Aezyn*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_381/*Enchanted with magic as strong as power swing. It's purpose? Hit harder.*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_382("1666%")/*Magic arrow damage scaling is increased by 666%*/, //tr +// rarity = 7, +// minLevel = 20, +// maxLevel = 22, +// canConsume = false, +// stackSize = 1, +// onEquipCallback = () => ModdedPlayer.Stats.spell_magicArrowDamageScaling.Add(16.66f), +// onUnequipCallback = () => ModdedPlayer.Stats.spell_magicArrowDamageScaling.Sub(16.66f), +// type = ItemDefinition.ItemType.Bracer, +// icon = Res.ResourceLoader.GetTexture(93), +// }; +// new BaseItem(new Stat[][] +// { +// new [] {INTELLIGENCE,AGILITY}, +// new [] {CRIT_CHANCE}, +// new [] {CRIT_DAMAGE}, +// new [] {VITALITY,LIFE_REGEN_BASE,LIFE_REGEN_MULT,INTELLIGENCE,AGILITY,STRENGTH,ALL_ATTRIBUTES}, +// new [] {COOLDOWN_REDUCTION,SPELL_COST_REDUCTION,SPELL_COST_TO_STAMINA,MOVEMENT_SPEED,DAMAGE_REDUCTION}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {DODGE_CHANCE,ARMOR,BASE_SPELL_DAMAGE,BASE_RANGED_DAMAGE}, +// new [] {BASE_RANGED_DAMAGE,RANGED_ARMOR_PIERCING,RANGED_DAMAGE_INCREASE} +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_383/*Punny's Reflective Ring*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_381/*Enchanted with magic as strong as power swing. It's purpose? Hit harder.*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_384/*Magic arrow is shot in volleys. This effect can stack.*/, //tr +// rarity = 7, +// minLevel = 20, +// maxLevel = 22, +// canConsume = false, +// stackSize = 1, +// onEquipCallback = () => ModdedPlayer.Stats.spell_magicArrowVolleyCount.Add(3), +// onUnequipCallback = () => ModdedPlayer.Stats.spell_magicArrowVolleyCount.Sub(3), +// type = ItemDefinition.ItemType.Ring, +// icon = Res.ResourceLoader.GetTexture(90), +// }; +// new BaseItem(new int[][] +// { +// new int[] {39,0}, +// new int[] {43,0}, +// new int[] {67}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_385/*Eyepatch*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_386/*A wise man once said:*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_387/*Everyone thinks I'm just a one-eyed bloody monster, god damnit... (sobbing)*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_388/*Explosion damage is also applied when performing jump attacks*/, //tr +// rarity = 0, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Helmet, +// icon = Res.ResourceLoader.GetTexture(91), +// }; +// new BaseItem(new Stat[][] +// { +// new [] {RANGED_ARMOR_PIERCING}, +// new [] {AGILITY}, +// new [] {BASE_RANGED_DAMAGE,RANGED_DAMAGE_INCREASE}, +// new [] {THROWN_SPEAR_DAMAGE}, +// new [] {PROJECTILE_SPEED}, +// new [] {ALL_ATTRIBUTES,PROJECTILE_SIZE,LESSERAGILITY}, +// new [] {ENERGY_ON_HIT,VITALITY,LIFE_ON_HIT } +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_389/*Javelin*/, //tr +// rarity = 5, +// minLevel = 30, +// maxLevel = 34, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Weapon, +// subtype = ItemDefinition.ItemSubtype.Polearm, +// icon = Res.ResourceLoader.GetTexture(181), +// }; +// new BaseItem(new Stat[][] +// { +// new [] {STRENGTH}, +// new [] {MAX_LIFE, VITALITY,MAX_LIFE_MULT}, +// new [] {MELEE_ARMOR_PIERCING, MELEE_DAMAGE_INCREASE,BASE_MELEE_DAMAGE}, +// new [] {MELEE_DAMAGE_INCREASE,BASE_MELEE_DAMAGE}, +// new [] {ATTACKSPEED, CRIT_DAMAGE,CRIT_CHANCE}, +// new [] {MAX_ENERGY_FROM_AGILITY,MAX_ENERGY_MULT,ENERGY_ON_HIT,LIFE_ON_HIT,LIFE_REGEN_BASE,LIFE_REGEN_MULT,STAMINA_REGEN_BASE,STAMINA_AND_ENERGY_REGEN_MULT}, +// new [] {ARMOR,THORNS,DAMAGE_REDUCTION,MAX_LIFE_MULT}, +// new [] {ALL}, +// new [] {ALL}, + +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_390/*Warplate*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_391/*Enchanted with the power of the GOD's armor. It's purpose? Hit harder, daddy.*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_392/*Strength comes from the power of will, the stronger the will the stronger you are*/, //tr +// rarity = 6, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.ChestArmor, +// icon = Res.ResourceLoader.GetTexture(96), +// }; +// { +// var SomeItem = new BaseItem(new Stat[][] +// { +// new [] {STRENGTH}, +// new [] {MAX_LIFE, VITALITY,MAX_HEALTH_FROM_VITALITY,MAX_LIFE_MULT}, +// new [] {MELEE_ARMOR_PIERCING, MELEE_DAMAGE_INCREASE,BASE_MELEE_DAMAGE,ATTACKSPEED}, +// new [] {SPELL_COST_REDUCTION, CRIT_DAMAGE,CRIT_CHANCE}, +// new [] {ALL}, +// new [] {STRENGTH, THORNS}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_393/*Torso of Strength*/, //tr + +// rarity = 4, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.ChestArmor, +// icon = Res.ResourceLoader.GetTexture(96), +// }; +// SomeItem.statSlots[0][0].multipier = 2; +// } +// { +// var demoVestItem = new BaseItem(new Stat[][] +// { +// new [] {EXPLOSION_DAMAGE}, +// new [] {AGILITY,INTELLIGENCE, ALL_ATTRIBUTES}, +// new [] {MAX_LIFE, VITALITY, LIFE_ON_HIT}, +// new [] {ALL_RECOVERY}, +// new [] {ALL}, +// new [] {MELEE_WEAPON_RANGE,ENERGY_ON_HIT,ARMOR_PIERCING, DODGE_CHANCE}, +// new [] {MOVEMENT_SPEED,BLOCK,LOOT_QUANTITY}, + +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_394/*Demoman's Vest*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_395/*What makes me a good demoman? If I were a bad demoman, I wouldn't be sittin' here discussin' it with you, now would I?! LET'S DO IT! Not one of you's gonna survive this! One crossed wire, one wayward pinch of potassium chlorate, one errant twitch, and KA-BLOOIE! I got a manky eye. I'm a black Scottish cyclops. They got more fecking sea monsters in the great Lochett Ness than they got the likes of me. So! T'all you fine dandies, so proud, so cocksure, prancin' about with your heads full of eyeballs... come and get me, I say! I'll be waitin' on you with a whiff of the old brimstone! I'm a Grimm bloody fable with an unhappy bloody end! Oh, they're going to have to glue you back together...IN HELL!*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_392/*Strength comes from the power of will, the stronger the will the stronger you are*/, //tr +// rarity = 5, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.ChestArmor, +// icon = Res.ResourceLoader.GetTexture(96), +// }; +// demoVestItem.statSlots[0][0].multipier = 7; + +// } +// new BaseItem(new Stat[][] +// { +// new [] {STRENGTH,ALL_ATTRIBUTES,BASE_MELEE_DAMAGE}, +// new [] {MAX_LIFE, VITALITY,DAMAGE_REDUCTION,MELEE_WEAPON_RANGE}, +// new [] {MELEE_ARMOR_PIERCING, MELEE_DAMAGE_INCREASE}, +// new [] {MELEE_DAMAGE_INCREASE,MELEE_DMG_FROM_STR}, +// new [] {SPELL_COST_REDUCTION, CRIT_DAMAGE}, +// new [] {ALL}, +// new [] {STRENGTH,THORNS,BASE_MELEE_DAMAGE,CRIT_CHANCE,ATTACKSPEED,MELEE_WEAPON_RANGE}, +// new [] {ARMOR}, + +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_396/*Brawler's Gloves*/, //tr +// rarity = 6, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Glove, +// icon = Res.ResourceLoader.GetTexture(86), +// }; +// new BaseItem(new Stat[][] +// { +// new [] {ALL_ATTRIBUTES,STRENGTH,AGILITY,INTELLIGENCE}, +// new [] {MAX_LIFE, VITALITY,STRENGTH,INTELLIGENCE}, +// new [] {MELEE_ARMOR_PIERCING, MELEE_DAMAGE_INCREASE,RANGED_DAMAGE_INCREASE,BASE_RANGED_DAMAGE,RANGED_ARMOR_PIERCING}, +// new [] {SPELL_COST_REDUCTION, CRIT_DAMAGE,CRIT_CHANCE,SPELL_DAMAGE_MULTIPLIER,COOLDOWN_REDUCTION}, +// new [] {ARMOR_PIERCING}, +// new [] {ALL}, +// new [] {ARMOR,DAMAGE_REDUCTION,ELITE_DAMAGE_REDUCTION,VITALITY,LESSERVITALITY}, + +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_397/*Nail Gloves*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_398/*Enchanted with the power of penetration. It's purpose? Hit harder.*/, //tr +// rarity = 3, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Glove, +// icon = Res.ResourceLoader.GetTexture(86), +// }; + +// new BaseItem(new Stat[][] +// { +// new [] {ATTACKSPEED}, +// new [] {RANGED_DAMAGE_INCREASE,RANGED_DMG_FROM_AGI}, +// new [] {BASE_RANGED_DAMAGE}, +// new [] {BASE_RANGED_DAMAGE,NONE}, +// new [] {PROJECTILE_SIZE,LESSERAGILITY,AGILITY}, +// new [] {PROJECTILE_SPEED,CRIT_CHANCE,CRIT_DAMAGE}, +// new [] {AGILITY,NONE}, +// new [] {RANGED_ARMOR_PIERCING, ARMOR_PIERCING,ENERGY_ON_HIT}, +// new [] {ALL}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_399/*Hand-held Ballista*/, //tr +// rarity = 5, +// minLevel = 10, +// maxLevel = 12, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Weapon, +// subtype = ItemDefinition.ItemSubtype.Greatbow, +// icon = Res.ResourceLoader.GetTexture(170), + +// }.statSlots[0][0].multipier = -2f; + +// new BaseItem(new Stat[][] +// { +// new [] {STRENGTH,LESSERSTRENGTH}, +// new [] {MAX_LIFE, VITALITY,MELEE_DMG_FROM_STR,ARMOR}, +// new [] {MELEE_ARMOR_PIERCING, MELEE_DAMAGE_INCREASE}, + +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_400/*Kuldars's Scarf*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_401/*Strength comes from the power of will*/, //tr +// rarity = 2, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Amulet, +// icon = Res.ResourceLoader.GetTexture(100), +// }; +// new BaseItem(new Stat[][] +// { +// new [] {MELEE_DAMAGE_INCREASE,MELEE_DMG_FROM_STR}, +// new [] {MAX_LIFE, VITALITY,MELEE_DAMAGE_INCREASE,BASE_MELEE_DAMAGE}, +// new [] {MELEE_ARMOR_PIERCING, MELEE_DAMAGE_INCREASE,MELEE_WEAPON_RANGE,ARMOR}, +// new [] {SPELL_COST_REDUCTION, CRIT_DAMAGE,CRIT_CHANCE}, +// new [] {ALL}, +// new [] {STRENGTH,LESSERSTRENGTH}, + +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_402/*Sword Devil's Scarf*/, //tr +// rarity = 4, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Amulet, +// icon = Res.ResourceLoader.GetTexture(100), +// }; +// new BaseItem(new Stat[][] +// { +// new [] {STRENGTH}, +// new [] {MAX_LIFE, VITALITY}, +// new [] {MELEE_ARMOR_PIERCING, MELEE_DAMAGE_INCREASE}, +// new [] {SPELL_COST_REDUCTION, CRIT_DAMAGE}, +// new [] {STRENGTH}, + +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_403/*Peasant's Scarf*/, //tr +// rarity = 3, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Amulet, +// icon = Res.ResourceLoader.GetTexture(100), +// }; +// new BaseItem(new Stat[][] +// { +// new [] {EXPLOSION_DAMAGE}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {EXPLOSION_DAMAGE}, +// new [] {EXPLOSION_DAMAGE}, +// new [] {EXPLOSION_DAMAGE,NONE}, + +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_404/*Bombastinc Choker*/, //tr +// rarity = 6, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Amulet, +// icon = Res.ResourceLoader.GetTexture(100), +// }.statSlots[0][0].multipier = 7f; +// new BaseItem(new Stat[][] +// { +// new [] {STRENGTH,VITALITY,AGILITY,ALL_ATTRIBUTES,INTELLIGENCE}, +// new [] {MAX_ENERGY_FROM_AGILITY,MELEE_DMG_FROM_STR,SPELL_DMG_FROM_INT,RANGED_DMG_FROM_AGI,MAX_HEALTH_FROM_VITALITY}, +// new [] {ARMOR,DAMAGE_REDUCTION}, +// new [] { CRIT_CHANCE, CRIT_DAMAGE}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {EXPLOSION_DAMAGE}, +// new [] {EXPLOSION_DAMAGE,NONE}, +// new [] {EXPLOSION_DAMAGE,NONE}, + +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_405/*Explosive Touch*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_406/*Enchanted with the power of the explosions armor. It's purpose? Become the true explosion master*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_407/*Strength comes from the power of will, the stronger the will the stronger the explosion*/, //tr +// rarity = 6, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Glove, +// icon = Res.ResourceLoader.GetTexture(86), +// }; +// new BaseItem(new Stat[][] +// { +// new [] {ARMOR}, +// new [] {MAX_LIFE, VITALITY}, +// new [] {CRIT_CHANCE, CRIT_DAMAGE,ATTACKSPEED,BASE_SPELL_DAMAGE,STAMINA_REGEN_BASE}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL_ATTRIBUTES}, +// new [] {EXPLOSION_DAMAGE}, +// new [] {EXPLOSION_DAMAGE}, + +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_408/*Volatile Bracers*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_406/*Enchanted with the power of the explosions armor. It's purpose? Become the true explosion master*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_407/*Strength comes from the power of will, the stronger the will the stronger the explosion*/, //tr +// rarity = 6, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Bracer, +// icon = Res.ResourceLoader.GetTexture(93), +// }; +// new BaseItem(new Stat[][] +// { +// new [] {ARMOR}, +// new [] {MAX_LIFE, VITALITY}, +// new [] {CRIT_CHANCE, CRIT_DAMAGE,ATTACKSPEED,BASE_SPELL_DAMAGE,STAMINA_REGEN_BASE}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {EMPTYSOCKET}, +// new [] {EMPTYSOCKET}, +// new [] {EXPLOSION_DAMAGE}, +// new [] {EXPLOSION_DAMAGE}, + +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_409/*Volatile Helmet*/, //tr + +// rarity = 6, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Helmet, +// icon = Res.ResourceLoader.GetTexture(91), +// }; +// new BaseItem(new Stat[][] +// { +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {MAX_LIFE, VITALITY,ARMOR,MAX_LIFE_MULT,MAX_ENERGY_MULT,MAX_HEALTH_FROM_VITALITY,THORNS,ELITE_DAMAGE_REDUCTION}, +// new [] {JUMP_POWER}, +// new [] {MOVEMENT_SPEED}, +// new [] {EMPTYSOCKET}, +// new [] {EMPTYSOCKET}, +// new [] {EXPLOSION_DAMAGE}, +// new [] {EXPLOSION_DAMAGE}, + +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_410/*Gunpowder filled socks*/, //tr +// rarity = 6, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Boot, +// icon = Res.ResourceLoader.GetTexture(85), +// }; +// new BaseItem(new Stat[][] +// { +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {MAX_LIFE, VITALITY,ARMOR,MAX_LIFE_MULT,MAX_ENERGY_MULT,MAX_HEALTH_FROM_VITALITY,THORNS,ELITE_DAMAGE_REDUCTION}, +// new [] {EMPTYSOCKET}, +// new [] {EMPTYSOCKET}, +// new [] {EXPLOSION_DAMAGE}, +// new [] {EXPLOSION_DAMAGE}, + +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_411/*Red Skirt*/, //tr +// rarity = 5, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Pants, +// icon = Res.ResourceLoader.GetTexture(87), +// }; +// new BaseItem(new Stat[][] +// { +// new [] {ALL}, +// new [] {MAX_LIFE, VITALITY,ARMOR}, +// new [] {MELEE_ARMOR_PIERCING, RANGED_ARMOR_PIERCING}, +// new [] {ARMOR, ALL_ATTRIBUTES,VITALITY,LESSERVITALITY}, +// new [] {EXTRA_CARRIED_STICKS,EXTRA_CARRIED_ROCKS,EXTRA_CARRIED_ROPES}, +// new [] {EXPLOSION_DAMAGE}, +// new [] {EXPLOSION_DAMAGE}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_412/*Gunpowder Boxers*/, //tr +// rarity = 4, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Pants, +// icon = Res.ResourceLoader.GetTexture(87), +// }; + +// new BaseItem(new Stat[][] +// { +// new [] {EXPLOSION_DAMAGE}, +// new [] {EXPLOSION_DAMAGE}, +// new [] {EXPLOSION_DAMAGE}, +// new [] {EXPLOSION_DAMAGE}, +// new [] {EXPLOSION_DAMAGE}, +// new [] {EXPLOSION_DAMAGE}, +// new [] {EXPLOSION_DAMAGE,NONE}, +// new [] {EXPLOSION_DAMAGE,NONE}, +// new [] {ARMOR}, +// new [] {MAX_LIFE_MULT}, + +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_413/*Jihad Vest*/, //tr +// rarity = 5, +// minLevel = 1, +// maxLevel = 4, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.ChestArmor, +// icon = Res.ResourceLoader.GetTexture(96), +// }; + +// new BaseItem(new Stat[][] +// { +// new [] {CRIT_CHANCE}, +// new [] {LOOT_QUANTITY,NONE,EXP_GAIN_MULT}, +// new [] {RANGED_DAMAGE_INCREASE,MELEE_DAMAGE_INCREASE}, +// new [] {STRENGTH,AGILITY}, +// new [] {ALL}, +// new [] {CHANCE_ON_HIT_TO_BLEED}, +// new [] {CHANCE_ON_HIT_TO_SLOW}, +// new [] {CHANCE_ON_HIT_TO_WEAKEN}, +// new [] {MAX_ENERGY_FROM_AGILITY,FIRE_DAMAGE,CRIT_DAMAGE,RANGED_DMG_FROM_AGI,MELEE_DMG_FROM_STR}, + + +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_414/*Ring of Fortune*/, //tr +// rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare +// minLevel = 10, +// maxLevel = 14, +// canConsume = false, +// stackSize = 1, //stacking in inventory like in mc, one means single item +// type = ItemDefinition.ItemType.Ring, +// icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that +// }; +// new BaseItem(new Stat[][] +// { +// new [] {SPELL_DAMAGE_MULTIPLIER}, +// new [] {INTELLIGENCE}, +// new [] {COOLDOWN_REDUCTION}, +// new [] {ALL_ATTRIBUTES, INTELLIGENCE,SPELL_DAMAGE_MULTIPLIER}, +// new [] {SPELL_DMG_FROM_INT,MAX_ENERGY_FROM_AGILITY}, +// new [] {BASE_SPELL_DAMAGE}, +// new [] {MAX_ENERGY_MULT,ENERGY_ON_HIT,ENERGY_REGEN_BASE}, +// new [] {FIRE_DAMAGE,SPELL_COST_REDUCTION,SPELL_COST_TO_STAMINA}, + + +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_415/*Mana Ring*/, //tr +// rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare +// minLevel = 10, +// maxLevel = 14, +// canConsume = false, +// stackSize = 1, //stacking in inventory like in mc, one means single item +// type = ItemDefinition.ItemType.Ring, +// icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that +// }; +// new BaseItem(new Stat[][] +// { +// new [] {MELEE_DMG_FROM_STR,ALL_ATTRIBUTES,STAMINA_REGEN_BASE,STAMINA_AND_ENERGY_REGEN_MULT,DODGE_CHANCE}, +// new [] {STRENGTH,LESSERSTRENGTH,VITALITY,ARMOR}, +// new [] {MELEE_WEAPON_RANGE,BASE_RANGED_DAMAGE,BASE_MELEE_DAMAGE}, +// new [] {VITALITY}, +// new [] {MAX_HEALTH_FROM_VITALITY,MAX_ENERGY_FROM_AGILITY}, +// new [] {LIFE_REGEN_BASE}, +// new [] {LIFE_ON_HIT}, +// new [] {ENERGY_ON_HIT,ENERGY_REGEN_BASE,INTELLIGENCE,AGILITY}, +// new [] {MAX_LIFE}, +// new [] {MAX_LIFE_MULT,CRIT_CHANCE}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_416/*Life Ring*/, //tr +// rarity = 6, //range 0-7, 0 is most common, 7 is ultra rare +// minLevel = 10, +// maxLevel = 14, +// canConsume = false, +// stackSize = 1, //stacking in inventory like in mc, one means single item +// type = ItemDefinition.ItemType.Ring, +// icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that +// }; +// new BaseItem(new Stat[][] +// { +// new [] {STRENGTH}, +// new [] {MOVEMENT_SPEED,DODGE_CHANCE,DAMAGE_REDUCTION}, +// new [] {VITALITY,MAX_HEALTH_FROM_VITALITY,MAX_LIFE,MAX_LIFE_MULT,ARMOR}, +// new [] {INTELLIGENCE,MAX_ENERGY_FROM_AGILITY,MAX_ENERGY_MULT,MAX_ENERGY,BASE_MELEE_DAMAGE,MELEE_DAMAGE_INCREASE,ARMOR,DAMAGE_REDUCTION}, +// new [] {MELEE_ARMOR_PIERCING,MELEE_DAMAGE_INCREASE}, +// new [] {ARMOR,ATTACKSPEED,STRENGTH}, +// new [] {BASE_MELEE_DAMAGE}, +// new [] {BASE_MELEE_DAMAGE,MELEE_DAMAGE_INCREASE}, +// new [] {MELEE_DAMAGE_INCREASE,MELEE_DMG_FROM_STR}, +// new [] {CRIT_CHANCE,MELEE_WEAPON_RANGE,ATTACKSPEED}, +// new [] {CRIT_DAMAGE, MELEE_DAMAGE_INCREASE, STRENGTH}, +// new [] {ENERGY_ON_HIT,ENERGY_REGEN_BASE,MAX_LIFE}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_417/*Moritz's Gear*/, //tr +// rarity = 6, +// minLevel = 5, +// maxLevel = 6, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.ChestArmor, +// icon = Res.ResourceLoader.GetTexture(96), +// }; +// new BaseItem(new Stat[][] +// { +// new [] {STRENGTH,BASE_MELEE_DAMAGE,MELEE_DAMAGE_INCREASE,ATTACKSPEED}, +// new [] {MOVEMENT_SPEED,DODGE_CHANCE,DAMAGE_REDUCTION}, +// new [] {VITALITY,MAX_HEALTH_FROM_VITALITY,MAX_LIFE,MAX_LIFE_MULT,MELEE_ARMOR_PIERCING}, +// new [] {INTELLIGENCE,STRENGTH,CRIT_DAMAGE,MAX_ENERGY_MULT,MAX_ENERGY}, +// new [] {BASE_MELEE_DAMAGE}, +// new [] {BASE_MELEE_DAMAGE,MELEE_DAMAGE_INCREASE}, +// new [] {MELEE_DAMAGE_INCREASE,MELEE_DMG_FROM_STR}, +// new [] {CRIT_CHANCE,MELEE_WEAPON_RANGE}, +// new [] {CRIT_DAMAGE, MELEE_DAMAGE_INCREASE, STRENGTH}, +// new [] {ENERGY_ON_HIT,ENERGY_REGEN_BASE,MAX_LIFE}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_418/*Band of Hurting*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_419/*A ring for a warrior*/, //tr +// rarity = 6, +// minLevel = 5, +// maxLevel = 6, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Ring, +// icon = Res.ResourceLoader.GetTexture(90), //icon ids, don't worry about that +// }; + +// new BaseItem(new Stat[][] +// { +// new [] {AGILITY,RANGED_DAMAGE_INCREASE}, +// new [] {ALL_ATTRIBUTES, ARMOR,MAX_LIFE_MULT}, +// new [] {CRIT_CHANCE}, +// new [] {CRIT_DAMAGE,NONE}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_420/*Straw Hat*/, //tr +// rarity = 2, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Helmet, +// icon = Res.ResourceLoader.GetTexture(91), +// }; +// new BaseItem(new Stat[][] +// { +// new [] {INTELLIGENCE}, +// new [] {ALL_ATTRIBUTES, ARMOR,ENERGY_ON_HIT}, +// new [] {BASE_SPELL_DAMAGE}, +// new [] {FIRE_DAMAGE,SPELL_DAMAGE_MULTIPLIER,SPELL_COST_REDUCTION}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_318/*Hood*/, //tr +// rarity = 2, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Helmet, +// icon = Res.ResourceLoader.GetTexture(91), +// }; +// new BaseItem(new Stat[][] +// { +// new [] {THROWN_SPEAR_DAMAGE}, +// new [] {AGILITY}, +// new [] {STAMINA_REGEN_BASE}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_421/*Rusty Javelin*/, //tr +// rarity = 3, +// minLevel = 10, +// maxLevel = 16, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Weapon, +// subtype = ItemDefinition.ItemSubtype.Polearm, +// icon = Res.ResourceLoader.GetTexture(181), +// }; +// new BaseItem(new Stat[][] +// { +// new [] {INTELLIGENCE}, +// new [] {DODGE_CHANCE,DAMAGE_REDUCTION}, +// new [] {VITALITY,MAX_HEALTH_FROM_VITALITY,MAX_LIFE,MAX_LIFE_MULT}, +// new [] {SPELL_DMG_FROM_INT}, +// new [] {SPELL_COST_REDUCTION,COOLDOWN_REDUCTION}, +// new [] {SPELL_COST_REDUCTION,COOLDOWN_REDUCTION}, +// new [] {ENERGY_REGEN_BASE,MAX_ENERGY_MULT,MAX_ENERGY_FROM_AGILITY}, +// new [] {BASE_SPELL_DAMAGE,SPELL_DAMAGE_MULTIPLIER,INTELLIGENCE}, +// new [] {BASE_SPELL_DAMAGE,SPELL_DAMAGE_MULTIPLIER,INTELLIGENCE}, +// new [] {BASE_SPELL_DAMAGE,SPELL_DAMAGE_MULTIPLIER,INTELLIGENCE}, +// new [] {BASE_SPELL_DAMAGE,SPELL_DAMAGE_MULTIPLIER,INTELLIGENCE}, +// new [] {ENERGY_ON_HIT,ENERGY_REGEN_BASE,MAX_LIFE}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_422/*Star Robe*/, //tr +// rarity = 6, +// minLevel = 5, +// maxLevel = 6, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.ChestArmor, +// icon = Res.ResourceLoader.GetTexture(96), +// }; +// new BaseItem(new Stat[][] +// { +// new [] {ATTACKSPEED}, +// new [] {BASE_SPELL_DAMAGE}, +// new [] {DODGE_CHANCE,DAMAGE_REDUCTION,MELEE_WEAPON_RANGE,ARMOR_PIERCING,FIRE_DAMAGE,CRIT_CHANCE}, +// new [] {VITALITY,MAX_HEALTH_FROM_VITALITY,MAX_LIFE,MAX_LIFE_MULT,LIFE_REGEN_BASE,LIFE_ON_HIT}, +// new [] {SPELL_DMG_FROM_INT}, +// new [] {SPELL_COST_REDUCTION,COOLDOWN_REDUCTION,CRIT_CHANCE,CRIT_DAMAGE}, +// new [] {SPELL_COST_REDUCTION,COOLDOWN_REDUCTION,SPELL_COST_TO_STAMINA,MAX_ENERGY_MULT,LIFE_REGEN_MULT}, +// new [] {ENERGY_REGEN_BASE,MAX_ENERGY_MULT,MAX_ENERGY_FROM_AGILITY}, +// new [] {INTELLIGENCE,STAMINA_REGEN_BASE,STAMINA_AND_ENERGY_REGEN_MULT}, +// new [] {BASE_SPELL_DAMAGE,SPELL_DAMAGE_MULTIPLIER,INTELLIGENCE,BASE_MELEE_DAMAGE,ALL_ATTRIBUTES}, +// new [] {BASE_SPELL_DAMAGE,SPELL_DAMAGE_MULTIPLIER,INTELLIGENCE,DAMAGE_REDUCTION}, +// new [] {ENERGY_ON_HIT,ENERGY_REGEN_BASE,MAX_LIFE,MASSACRE_DURATION,LOOT_QUANTITY,EXPLOSION_DAMAGE}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_423/*Anger*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_424/*Downscaled version of Greatsword Rage, made to be wielded by flimsy wizards*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_425(15)/*Increases maximum stacks of frenzy by 10*/, //tr +// rarity = 7, +// minLevel = 6, +// maxLevel = 9, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Weapon, +// subtype = ItemDefinition.ItemSubtype.LongSword, +// icon = Res.ResourceLoader.GetTexture(88), +// onEquipCallback = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Add(15), +// onUnequipCallback = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Sub(15), +// }.statSlots[0][0].multipier = 1.5f; + + +// new BaseItem(new Stat[][] +// { +// new[] { ARMOR }, +// new[] { MOVEMENT_SPEED}, +// new[] { SPELL_DMG_FROM_INT }, +// new[] { SPELL_COST_REDUCTION,SPELL_COST_TO_STAMINA,ARMOR,ALL_ATTRIBUTES}, +// new[] { BASE_SPELL_DAMAGE, SPELL_DAMAGE_MULTIPLIER, INTELLIGENCE, ALL_ATTRIBUTES }, +// new[] { BASE_SPELL_DAMAGE, SPELL_DAMAGE_MULTIPLIER, INTELLIGENCE, DAMAGE_REDUCTION }, +// new[] { VITALITY, MAX_HEALTH_FROM_VITALITY, MAX_LIFE, MAX_LIFE_MULT, LIFE_REGEN_BASE, LIFE_ON_HIT }, +// new[] { SPELL_COST_REDUCTION, COOLDOWN_REDUCTION, CRIT_CHANCE, CRIT_DAMAGE, ARMOR,MAX_HEALTH_FROM_VITALITY }, +// new[] { SPELL_COST_REDUCTION, COOLDOWN_REDUCTION, SPELL_COST_TO_STAMINA, MAX_ENERGY_MULT, LIFE_REGEN_MULT }, +// new[] { ENERGY_REGEN_BASE, MAX_ENERGY_MULT, MAX_ENERGY_FROM_AGILITY }, +// new[] { INTELLIGENCE, STAMINA_REGEN_BASE, STAMINA_AND_ENERGY_REGEN_MULT, ALL_ATTRIBUTES, ALL_RECOVERY }, +// new[] { ENERGY_ON_HIT, ENERGY_REGEN_BASE, MAX_LIFE, MASSACRE_DURATION, LOOT_QUANTITY, EXPLOSION_DAMAGE }, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_426/*Yuki-Onna Strides*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_433("50%", "300%")/*Set Piece:\n2 Pieces- Snow Storm pulls enemies towards you\n3 Pieces - Snow Storm radius, maximum damage, spell cost is doubled, but charge rate is slower\n4 Pieces - Snow storm hit frequency is increased by 50%*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_428/*Boots looted off a snow demon*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_429("50%")/*Increses snowstorm damage by 50%*/, //tr +// rarity = 7, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Boot, +// icon = Res.ResourceLoader.GetTexture(85), +// onEquipCallback = () => AkagiSet.Equip(), +// onUnequipCallback = () => AkagiSet.Unequip(), +// }; + +// new BaseItem(new Stat[][] +// { +// new[] { INTELLIGENCE,NONE }, +// new[] { ARMOR }, +// new[] { ALL_RECOVERY,DODGE_CHANCE,SPELL_DAMAGE_MULTIPLIER,BASE_SPELL_DAMAGE}, +// new[] { SPELL_DMG_FROM_INT,DAMAGE_REDUCTION }, +// new[] { SPELL_COST_REDUCTION,SPELL_COST_TO_STAMINA,ARMOR,ALL_ATTRIBUTES}, +// new[] { ARMOR,DAMAGE_REDUCTION ,ELITE_DAMAGE_REDUCTION}, +// new[] { INTELLIGENCE, MAX_LIFE,LIFE_REGEN_BASE,SPELL_DAMAGE_MULTIPLIER,BASE_SPELL_DAMAGE }, +// new[] { VITALITY, MAX_LIFE, MAX_LIFE_MULT, LIFE_REGEN_BASE, LIFE_ON_HIT }, +// new[] { SPELL_COST_REDUCTION, COOLDOWN_REDUCTION, CRIT_CHANCE, CRIT_DAMAGE, ARMOR }, +// new[] { SPELL_COST_REDUCTION, COOLDOWN_REDUCTION, SPELL_COST_TO_STAMINA, MAX_ENERGY_MULT, LIFE_REGEN_MULT,ELITE_DAMAGE_REDUCTION }, +// new[] { ENERGY_REGEN_BASE, MAX_ENERGY_MULT, MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY }, +// new[] { INTELLIGENCE, STAMINA_REGEN_BASE, STAMINA_AND_ENERGY_REGEN_MULT, ALL_ATTRIBUTES, ALL_RECOVERY }, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_430/*Yuki-Onna Greaves*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_433("50%", "300%")/*Set Piece:\n2 Pieces- Snow Storm pulls enemies towards you\n3 Pieces - Snow Storm radius, maximum damage, spell cost is doubled, but charge rate is slower\n4 Pieces - Snow storm hit frequency is increased by 50%*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_429("50%")/*Increses snowstorm damage by 50%*/, //tr +// rarity = 7, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Pants, +// icon = Res.ResourceLoader.GetTexture(87), +// onEquipCallback = () => AkagiSet.Equip(), +// onUnequipCallback = () => AkagiSet.Unequip(), +// }; + +// new BaseItem(new Stat[][] +// { +// new[] { INTELLIGENCE,NONE }, +// new[] { ARMOR }, +// new[] { ALL_RECOVERY,DODGE_CHANCE}, +// new[] { SPELL_DMG_FROM_INT,DAMAGE_REDUCTION }, +// new[] { SPELL_COST_REDUCTION,SPELL_COST_TO_STAMINA,ARMOR,ALL_ATTRIBUTES}, +// new[] { ARMOR,DAMAGE_REDUCTION ,ELITE_DAMAGE_REDUCTION,SPELL_DAMAGE_MULTIPLIER,BASE_SPELL_DAMAGE}, +// new[] { INTELLIGENCE, MAX_LIFE,LIFE_REGEN_BASE,SPELL_DAMAGE_MULTIPLIER,BASE_SPELL_DAMAGE }, +// new[] { VITALITY, MAX_LIFE, MAX_LIFE_MULT, LIFE_REGEN_BASE, LIFE_ON_HIT }, +// new[] { SPELL_COST_REDUCTION, COOLDOWN_REDUCTION, CRIT_CHANCE, CRIT_DAMAGE, ARMOR }, +// new[] { SPELL_COST_REDUCTION, COOLDOWN_REDUCTION, SPELL_COST_TO_STAMINA, MAX_ENERGY_MULT, LIFE_REGEN_MULT,ELITE_DAMAGE_REDUCTION }, +// new[] { ENERGY_REGEN_BASE, MAX_ENERGY_MULT, MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY }, +// new[] { INTELLIGENCE, STAMINA_REGEN_BASE, STAMINA_AND_ENERGY_REGEN_MULT, ALL_ATTRIBUTES, ALL_RECOVERY }, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_431/*Yuki-Onna Kimono*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_433("50%", "300%")/*Set Piece:\n2 Pieces- Snow Storm pulls enemies towards you\n3 Pieces - Snow Storm radius, maximum damage, spell cost is doubled, but charge rate is slower\n4 Pieces - Snow storm hit frequency is increased by 50%*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_429("50%")/*Increses snowstorm damage by 50%*/, //tr +// rarity = 7, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.ChestArmor, +// icon = Res.ResourceLoader.GetTexture(96), +// onEquipCallback = () => AkagiSet.Equip(), +// onUnequipCallback = () => AkagiSet.Unequip(), +// }; + +// new BaseItem(new Stat[][] +// { +// new[] { INTELLIGENCE,NONE }, +// new[] { ARMOR }, +// new[] { CRIT_CHANCE,CRIT_DAMAGE}, +// new[] { SPELL_DMG_FROM_INT }, +// new[] { SPELL_COST_REDUCTION,SPELL_COST_TO_STAMINA,ARMOR,ALL_ATTRIBUTES}, +// new[] { ARMOR, SPELL_DAMAGE_MULTIPLIER, BASE_SPELL_DAMAGE, ELITE_DAMAGE_REDUCTION}, +// new[] { INTELLIGENCE, MAX_LIFE,LIFE_REGEN_BASE }, +// new[] { SPELL_DAMAGE_MULTIPLIER,BASE_SPELL_DAMAGE, MAX_LIFE, MAX_LIFE_MULT, LIFE_REGEN_BASE, LIFE_ON_HIT }, +// new[] { SPELL_COST_REDUCTION, COOLDOWN_REDUCTION, CRIT_CHANCE, CRIT_DAMAGE, ARMOR }, +// new[] { SPELL_COST_REDUCTION, COOLDOWN_REDUCTION, SPELL_COST_TO_STAMINA, MAX_ENERGY_MULT, LIFE_REGEN_MULT,ELITE_DAMAGE_REDUCTION }, +// new[] { ENERGY_REGEN_BASE, MAX_ENERGY_MULT, MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY }, +// new[] { INTELLIGENCE, STAMINA_REGEN_BASE, STAMINA_AND_ENERGY_REGEN_MULT, ALL_ATTRIBUTES, ALL_RECOVERY }, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_432/*Yuki-Onna's Headdress*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_433("50%", "300%")/*Set Piece:\n2 Pieces- Snow Storm pulls enemies towards you\n3 Pieces - Snow Storm radius, maximum damage, spell cost is doubled, but charge rate is slower\n4 Pieces - Snow storm hit frequency is increased by 50% and damage is increased by 300%*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_429("50%")/*Increses snowstorm damage by 50%*/, //tr +// rarity = 7, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Helmet, +// icon = Res.ResourceLoader.GetTexture(91), +// onEquipCallback = () => AkagiSet.Equip(), +// onUnequipCallback = () => AkagiSet.Unequip(), +// }; + +// new BaseItem(new Stat[][] +// { +// new[] { INTELLIGENCE,NONE }, +// new[] { ARMOR }, +// new[] { CRIT_CHANCE,CRIT_DAMAGE}, +// new[] { SPELL_DMG_FROM_INT }, +// new[] { SPELL_COST_REDUCTION,SPELL_COST_TO_STAMINA,ARMOR,ALL_ATTRIBUTES}, +// new[] { ARMOR, SPELL_DAMAGE_MULTIPLIER, BASE_SPELL_DAMAGE, ELITE_DAMAGE_REDUCTION}, +// new[] { INTELLIGENCE, MAX_LIFE,LIFE_REGEN_BASE }, +// new[] { SPELL_DAMAGE_MULTIPLIER,BASE_SPELL_DAMAGE, MAX_LIFE, MAX_LIFE_MULT, LIFE_REGEN_BASE, LIFE_ON_HIT }, +// new[] { SPELL_COST_REDUCTION, COOLDOWN_REDUCTION, CRIT_CHANCE, CRIT_DAMAGE, ARMOR }, +// new[] { SPELL_COST_REDUCTION, COOLDOWN_REDUCTION, SPELL_COST_TO_STAMINA, MAX_ENERGY_MULT, LIFE_REGEN_MULT,ELITE_DAMAGE_REDUCTION }, +// new[] { ENERGY_REGEN_BASE, MAX_ENERGY_MULT, MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY }, +// new[] { INTELLIGENCE, STAMINA_REGEN_BASE, STAMINA_AND_ENERGY_REGEN_MULT, ALL_ATTRIBUTES, ALL_RECOVERY }, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_434/*Lama Mega's Blood Bag*/, //tr +// description = "", //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_435("15 000%", 15)/*Melee hits cause enemies to bleed for 100% of your health as damage for 15 seconds*/, //tr +// rarity = 7, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Amulet, +// icon = Res.ResourceLoader.GetTexture(100), +// onEquipCallback = () => COTFEvents.Instance.OnHitMelee.AddListener(UniqueItemFunctions.EnemyBleedForPlayerHP), +// onUnequipCallback = () => COTFEvents.Instance.OnHitMelee.RemoveListener(UniqueItemFunctions.EnemyBleedForPlayerHP), +// }; +// new BaseItem(new int[][] { }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_436/*Socket Drill*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_437/*A convienient one use tool*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_438/*What's a drill doing here in a place full of primitive tribes?*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_439/*Adds one socket to an item, unless the item can't have any more sockets.*/, //tr +// rarity = 6, +// minLevel = 1, +// maxLevel = 2, +// canConsume = false, +// stackSize = 100, +// type = ItemDefinition.ItemType.Material, +// icon = Res.ResourceLoader.GetTexture(190), +// onConsumeCallback = x => +// { +// int socketMax = StatActions.GetMaxSocketAmountOnItem(in x.type); +// int socketCurrent = x.stats.Count(y => y.id >= 3000); +// if (socketCurrent < socketMax) +// { +// x.stats.Add(new ItemStat(ItemDatabase.StatByID(3000))); +// return true; +// } +// return false; +// } +// }; +// new BaseItem(new Stat[][] +// { +// new[] { MOVEMENT_SPEED}, +// new[] { INTELLIGENCE,STRENGTH,AGILITY }, +// new[] { ALL_ATTRIBUTES,VITALITY }, +// new[] { ARMOR }, +// new[] { NONE,JUMP_POWER}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_440/*Moonwalkers*/, //tr +// description = "", //tr +// lore = Translations.ItemDatabase_ItemDefinitions_441/*Cha cha real smooth.*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_442/*Inverts movement*/, //tr +// rarity = 3, +// minLevel = 16, +// maxLevel = 18, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Boot, +// icon = Res.ResourceLoader.GetTexture(85), +// onEquipCallback = () => ModdedPlayer.Stats.mOVEMENT_SPEED.Multiply(-1.2f), +// onUnequipCallback = () => ModdedPlayer.Stats.mOVEMENT_SPEED.Divide(-1.2f) +// }.statSlots[0][0].multipier = 3; + +// new BaseItem(new Stat[][] +// { +// new[] { JUMP_POWER}, +// new[] { LESSERAGILITY}, +// new[] { LESSERARMOR}, +// new[] { PROJECTILE_SIZE,PROJECTILE_SIZE,ALL_ATTRIBUTES,LIFE_REGEN_MULT,LIFE_REGEN_BASE,LESSERVITALITY,AGILITY}, +// new[] { RANGED_ARMOR_PIERCING,RANGED_DAMAGE_INCREASE,BASE_RANGED_DAMAGE,ATTACKSPEED}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_443/*Rabbit Ears Hairband*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_444/*Cute*/, //tr +// lore = "", //tr +// rarity = 3, +// minLevel = 1, +// maxLevel = 2, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Helmet, +// icon = Res.ResourceLoader.GetTexture(91), +// }; +// new BaseItem(new Stat[][] +// { +// new[] { JUMP_POWER}, +// new[] { AGILITY}, +// new[] { ARMOR}, +// new[] { PROJECTILE_SIZE,PROJECTILE_SIZE,ALL_ATTRIBUTES,LIFE_REGEN_MULT,LIFE_REGEN_BASE,VITALITY,INTELLIGENCE,AGILITY}, +// new[] { RANGED_ARMOR_PIERCING,RANGED_DAMAGE_INCREASE,BASE_RANGED_DAMAGE,ATTACKSPEED}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_445/*Bunny Ears Hairband*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_444/*Cute*/, //tr +// lore = "", //tr +// rarity = 4, +// minLevel = 1, +// maxLevel = 2, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Helmet, +// icon = Res.ResourceLoader.GetTexture(91), +// }; +// new BaseItem(new int[][] +// { +// new int[] {11}, +// new int[] {16}, +// new int[] {3000}, +// new int[] {3000}, +// new int[] {3000}, +// new int[] {3000}, +// new int[] {3000}, +// new int[] {3000}, +// new int[] {3000}, +// new int[] {3000}, +// new int[] {3000}, +// new int[] {3000}, +// new int[] {3000}, +// new int[] {3000}, +// new int[] {3000}, +// new int[] {3000}, +// new int[] {3000}, +// new int[] {3000}, +// new int[] {3000}, +// new int[] {3000}, +// new int[] {3000}, +// new int[] {3000}, +// new int[] {3000}, +// new int[] {3000,0}, +// new int[] {3000,0}, +// new int[] {3000,0}, +// new int[] {3000,0}, +// new int[] {3000,0}, + +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_446/*Iron plate full of holes*/, //tr +// description = "", //tr +// lore = Translations.ItemDatabase_ItemDefinitions_447/*The integrity of this item is questionable*/, //tr +// rarity = 3, +// minLevel = 50, +// maxLevel = 60, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.ChestArmor, +// icon = Res.ResourceLoader.GetTexture(96), +// }; +// new BaseItem(new Stat[][] +// { +// new [] {ALL}, +// new [] {BASE_SPELL_DAMAGE,BASE_RANGED_DAMAGE,BASE_MELEE_DAMAGE}, +// new [] {SPELL_DMG_FROM_INT,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,DAMAGE_REDUCTION}, +// new [] {ALL_ATTRIBUTES,AGILITY,STRENGTH,INTELLIGENCE,VITALITY}, + +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_448/*Small Tribal Necklace*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_449(2)/*Increases maximum stacks of frenzy by 2*/, //tr +// rarity = 4, +// minLevel = 6, +// maxLevel = 9, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Amulet, +// icon = Res.ResourceLoader.GetTexture(100), +// onEquipCallback = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Add(2), +// onUnequipCallback = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Sub(2), +// }; +// new BaseItem(new Stat[][] +// { +// new [] {ALL}, +// new [] {ALL}, +// new [] {BASE_SPELL_DAMAGE,BASE_RANGED_DAMAGE,BASE_MELEE_DAMAGE}, +// new [] {SPELL_DMG_FROM_INT,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,DAMAGE_REDUCTION}, +// new [] {ALL_ATTRIBUTES,AGILITY,STRENGTH,INTELLIGENCE,VITALITY}, + +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_450/*Tribal Necklace*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_451(3)/*Increases maximum stacks of frenzy by 3*/, //tr +// rarity = 4, +// minLevel = 6, +// maxLevel = 9, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Amulet, +// icon = Res.ResourceLoader.GetTexture(100), +// onEquipCallback = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Add(3), +// onUnequipCallback = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Sub(3), +// }; +// new BaseItem(new Stat[][] +// { +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {BASE_SPELL_DAMAGE,BASE_RANGED_DAMAGE,BASE_MELEE_DAMAGE}, +// new [] {SPELL_DMG_FROM_INT,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,DAMAGE_REDUCTION}, +// new [] {ALL_ATTRIBUTES,AGILITY,STRENGTH,INTELLIGENCE,VITALITY}, + +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_452/*Warlord Necklace*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_453(4)/*Increases maximum stacks of frenzy by 4*/, //tr +// rarity = 5, +// minLevel = 6, +// maxLevel = 9, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Amulet, +// icon = Res.ResourceLoader.GetTexture(100), +// onEquipCallback = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Add(4), +// onUnequipCallback = () => ModdedPlayer.Stats.spell_frenzyMaxStacks.Sub(4), +// }; +// new BaseItem(new Stat[][] +// { +// new [] {ALL}, +// new [] {ALL}, +// new [] {MOVEMENT_SPEED,COOLDOWN_REDUCTION}, +// new [] {JUMP_POWER,ATTACKSPEED,MOVEMENT_SPEED,ENERGY_REGEN_BASE}, +// new [] {BASE_SPELL_DAMAGE,BASE_RANGED_DAMAGE,BASE_MELEE_DAMAGE,CRIT_CHANCE,CRIT_DAMAGE}, +// new [] {ALL_ATTRIBUTES,AGILITY,STRENGTH,INTELLIGENCE,VITALITY}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_454/*Travel Band*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_455(25)/*The distance of blink is increased by 20 feet*/, //tr +// rarity = 5, +// minLevel = 5, +// maxLevel = 9, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Ring, +// icon = Res.ResourceLoader.GetTexture(90), +// onEquipCallback = () => { ModdedPlayer.Stats.spell_blinkRange.Add(25); }, +// onUnequipCallback = () => { ModdedPlayer.Stats.spell_blinkRange.Sub(25); }, +// }; + +// new BaseItem(new Stat[][] +// { +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {COOLDOWN_REDUCTION,NONE}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_456/*Destroyed Void Shard*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_457/*Only a fraction of its previous might remains*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_154/*A pedant of great power. Obtainable only from babies or crafting*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_458(1)/*Decrease the cooldown of one ability by 1 second whenever you hit something with melee or ranged attack.*/, //tr +// rarity = 6, +// minLevel = 80, +// maxLevel = 90, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Amulet, +// icon = Res.ResourceLoader.GetTexture(101), +// onEquipCallback = () => ModdedPlayer.Stats.i_infinityLoop.value = true, +// onUnequipCallback = () => ModdedPlayer.Stats.i_infinityLoop.value = false, +// }; +// new BaseItem(new int[][] +// { +// new int[] {25 }, +// new int[] {18 }, +// new int[] {2004 }, +// new int[] {1,3,62,63,64}, +// new int[] {53,16}, +// new int[] {25 ,22,1,12,13,5,6}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_459/*Famine Hammer*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_163/*It's slow but with enough strength i can make it a very deadly tool*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_460("30%")/*Chance to weaken enemies, causing them to take more damage from all attacks, is increased by 30%*/, //tr +// rarity = 4, +// minLevel = 30, +// maxLevel = 35, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Weapon, +// subtype = ItemDefinition.ItemSubtype.Hammer, +// icon = Res.ResourceLoader.GetTexture(109), +// onEquipCallback = () => ModdedPlayer.Stats.chanceToWeaken.Add(0.3f), +// onUnequipCallback = () => ModdedPlayer.Stats.chanceToWeaken.Sub(0.3f), +// }; + +// new BaseItem(new int[][] +// { +// new int[] {25 }, +// new int[] {18 }, +// new int[] {-1 }, +// new int[] {2004 }, +// new int[] {1,3,62,63,64}, +// new int[] {53,16}, +// new int[] {25 ,22,1,12,13,5,6}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_461/*Curse Hammer*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_462/*Omnious Weapon*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_463("45%")/*Chance to weaken enemies, causing them to take more damage from all attacks, is increased by 40%*/, //tr +// rarity = 5, +// minLevel = 30, +// maxLevel = 35, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Weapon, +// subtype = ItemDefinition.ItemSubtype.Hammer, +// icon = Res.ResourceLoader.GetTexture(109), +// onEquipCallback = () => ModdedPlayer.Stats.chanceToWeaken.Add(0.45f), +// onUnequipCallback = () => ModdedPlayer.Stats.chanceToWeaken.Sub(0.45f), +// }; +// new BaseItem(new Stat[][] +// { +// new [] {ALL}, +// new [] {ALL}, +// new [] {MELEE_DAMAGE_INCREASE,MELEE_DMG_FROM_STR}, +// new [] {STRENGTH}, +// new [] {BASE_MELEE_DAMAGE}, +// new [] {ATTACK_COST_REDUCTION,ATTACKSPEED,LIFE_ON_HIT,ENERGY_ON_HIT,NONE,NONE,NONE}, +// new [] {ALL_ATTRIBUTES,VITALITY,MELEE_DAMAGE_INCREASE,MELEE_ARMOR_PIERCING}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_464/*Smasher*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_163/*It's slow but with enough strength i can make it a very deadly tool*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_465/*Smash damage is increased tripled*/, //tr +// rarity = 5, +// minLevel = 30, +// maxLevel = 35, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Weapon, +// subtype = ItemDefinition.ItemSubtype.Hammer, +// icon = Res.ResourceLoader.GetTexture(109), +// onEquipCallback = () => { ModdedPlayer.Stats.smashDamage.Multiply(3f); }, +// onUnequipCallback = () => { ModdedPlayer.Stats.smashDamage.Divide(3f); }, +// }; +// new BaseItem(new Stat[][] +// { +// new [] {ALL}, +// new [] {LIFE_ON_HIT}, +// new [] {ENERGY_ON_HIT}, +// new [] {STAMINA_AND_ENERGY_REGEN_MULT,MAX_ENERGY_MULT,MAX_LIFE_MULT}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_466/*Vampiric Band*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_467(1)/*Gain 1 stamina on ranged and melee hit or double that amount on critical hits*/, //tr +// rarity = 3, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Ring, +// icon = Res.ResourceLoader.GetTexture(90), +// onEquipCallback = () => COTFEvents.Instance.OnHitEnemy.AddListener(UniqueItemFunctions.Gain1EnergyOnHit), +// onUnequipCallback = () => COTFEvents.Instance.OnHitEnemy.RemoveListener(UniqueItemFunctions.Gain1EnergyOnHit), +// }; +// new BaseItem(new Stat[][] +// { +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {LIFE_ON_HIT}, +// new [] {CRIT_CHANCE,CRIT_DAMAGE}, +// new [] {MELEE_DAMAGE_INCREASE,RANGED_DAMAGE_INCREASE,SPELL_DAMAGE_MULTIPLIER}, +// new [] {ENERGY_ON_HIT}, +// new [] {STAMINA_AND_ENERGY_REGEN_MULT,MAX_ENERGY_MULT,MAX_LIFE_MULT}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_468/*Vampire Ring*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_469(10)/*Gain 10 stamina on ranged and melee hit or double that amount on critical hits*/, //tr +// rarity = 6, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Ring, +// icon = Res.ResourceLoader.GetTexture(90), +// onEquipCallback = () => COTFEvents.Instance.OnHitEnemy.AddListener(UniqueItemFunctions.Gain10EnergyOnHit), +// onUnequipCallback = () => COTFEvents.Instance.OnHitEnemy.RemoveListener(UniqueItemFunctions.Gain10EnergyOnHit), +// }; +// new BaseItem(new Stat[][] +// { +// new [] {SPELL_DAMAGE_MULTIPLIER,INTELLIGENCE,BASE_SPELL_DAMAGE}, +// new [] {SPELL_DAMAGE_MULTIPLIER,INTELLIGENCE,BASE_SPELL_DAMAGE}, +// new [] {VITALITY,LIFE_REGEN_BASE,LIFE_REGEN_MULT,INTELLIGENCE,AGILITY,STRENGTH,ALL_ATTRIBUTES}, +// new [] {COOLDOWN_REDUCTION,SPELL_COST_REDUCTION,SPELL_COST_TO_STAMINA,INTELLIGENCE,DAMAGE_REDUCTION}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_470/*Tricksters Scarf*/, //tr +// description = "", //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_471(1)/*Magic arrow shoots 1 additional arrow.*/, //tr +// rarity = 4, +// minLevel = 20, +// maxLevel = 22, +// canConsume = false, +// stackSize = 1, +// onEquipCallback = () => ModdedPlayer.Stats.spell_magicArrowVolleyCount.Add(1), +// onUnequipCallback = () => ModdedPlayer.Stats.spell_magicArrowVolleyCount.Sub(1), +// type = ItemDefinition.ItemType.Amulet, +// icon = Res.ResourceLoader.GetTexture(100) +// }; +// new BaseItem(new Stat[][] +// { +// new [] {SPELL_DAMAGE_MULTIPLIER,INTELLIGENCE,BASE_SPELL_DAMAGE}, +// new [] {SPELL_DAMAGE_MULTIPLIER,INTELLIGENCE,BASE_SPELL_DAMAGE}, +// new [] {VITALITY,LIFE_REGEN_BASE,LIFE_REGEN_MULT,INTELLIGENCE,AGILITY,STRENGTH,ALL_ATTRIBUTES}, +// new [] {COOLDOWN_REDUCTION,SPELL_COST_REDUCTION,SPELL_COST_TO_STAMINA,INTELLIGENCE,DAMAGE_REDUCTION}, +// new [] {INTELLIGENCE}, +// new [] {ALL}, + +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_472/*Magus' Necktie*/, //tr +// description = "", //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_473(2)/*Magic arrow shoots 2 additional arrows.*/, //tr +// rarity = 5, +// minLevel = 50, +// maxLevel = 52, +// canConsume = false, +// stackSize = 1, +// onEquipCallback = () => ModdedPlayer.Stats.spell_magicArrowVolleyCount.Add(2), +// onUnequipCallback = () => ModdedPlayer.Stats.spell_magicArrowVolleyCount.Sub(2), +// type = ItemDefinition.ItemType.Amulet, +// icon = Res.ResourceLoader.GetTexture(100) +// }; +// new BaseItem(new int[][] +// { +// new int[] {23,26}, +// new int[] {34,18,17,16,15,14,60,61,55,}, +// new int[] {16,19,23,31,54,51,52,66,57}, +// new int[] {2,3,4,5,6,7,8,9,10}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_474/*Discounted Knockoff Magic Quiver*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_475("15%")/*There's a 15% increased chance to not consume ammo when firing a projectile.*/, //tr +// rarity = 3, +// minLevel = 2, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Quiver, +// icon = Res.ResourceLoader.GetTexture(98), +// onEquipCallback = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Add(0.15f), +// onUnequipCallback = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Sub(0.15f), +// }; +// new BaseItem(new int[][] +// { +// new int[] {23,26}, +// new int[] {34,18,17,16,15,14,60,61,55,}, +// new int[] {16,19,23,31,54,51,52,66,57}, +// new int[] {2,48,0,0}, +// new int[] {2,3,4,5,6,7,8,9,10}, +// new int[] {2,1,5,6,0}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_476/*Magic Quiver*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_477("20%")/*There's a 20% increased chance to not consume ammo when firing a projectile.*/, //tr +// rarity = 4, +// minLevel = 2, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Quiver, +// icon = Res.ResourceLoader.GetTexture(98), +// onEquipCallback = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Add(0.2f), +// onUnequipCallback = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Sub(0.2f), +// }; +// new BaseItem(new int[][] +// { +// new int[] {23,26}, +// new int[] {23}, +// new int[] {34,18,17,16,15,14,60,61,55,}, +// new int[] {16,19,23,31,54,51,52,66,57}, +// new int[] {2,48}, +// new int[] {2,3,4,5,6,7,8,9,10}, +// new int[] {2,1,5,6}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_478/*Improved Magic Quiver*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_479("25%")/*There's a 25% increased chance to not consume ammo when firing a projectile.*/, //tr +// rarity = 5, +// minLevel = 2, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Quiver, +// icon = Res.ResourceLoader.GetTexture(98), +// onEquipCallback = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Add(0.25f), +// onUnequipCallback = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Sub(0.25f), +// }; +// new BaseItem(new int[][] +// { +// new int[] {23,26}, +// new int[] {23}, +// new int[] {34,18,17,16,15,14,60,61,55,}, +// new int[] {16,19,23,31,54,51,52,66,57}, +// new int[] {2,16,14}, +// new int[] {2,3,4,5,6,7,8,9,10}, +// new int[] {48}, +// new int[] {-1}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_480/*Factory Quiver*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_481("40%")/*There's a 40% increased chance to not consume ammo when firing a projectile.*/, //tr +// rarity = 6, +// minLevel = 12, +// maxLevel = 20, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Quiver, +// icon = Res.ResourceLoader.GetTexture(98), +// onEquipCallback = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Add(0.4f), +// onUnequipCallback = () => ModdedPlayer.Stats.perk_projectileNoConsumeChance.Sub(0.4f), +// }; + +// new BaseItem(new int[][] { }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_482/*Enzyme STR/34*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_484/*Changes Vitality, Agility or Intelligence stat on an item to Strength or changes Ranged or Spell damage stat to Melee Damage*/, //tr +// rarity = 6, +// minLevel = 1, +// maxLevel = 2, +// canConsume = false, +// stackSize = 100, +// type = ItemDefinition.ItemType.Material, +// icon = Res.ResourceLoader.GetTexture(193), +// onConsumeCallback = x => +// { +// if (x.isEquipped) +// return false; + +// var stats = x.stats.Where(y => y.id == (int)VITALITY || y.id == (int)INTELLIGENCE || y.id == (int)AGILITY +// || y.id == (int)LESSERVITALITY || y.id == (int)LESSERINTELLIGENCE || y.id == (int)LESSERAGILITY +// || y.id == (int)BASE_RANGED_DAMAGE || y.id == (int)BASE_SPELL_DAMAGE +// || y.id == (int)RANGED_DAMAGE_INCREASE || y.id == (int)SPELL_DAMAGE_MULTIPLIER).ToArray(); + +// int c = stats.Count(); + + +// if (c == 0) +// return false; +// int i = UnityEngine.Random.Range(0, c); +// ItemStat stat = stats[i]; +// int index = x.stats.IndexOf(stat); + +// ItemStat newStat; +// Stat statID = (Stat)stat.id; +// switch (statID) +// { +// case VITALITY: +// case INTELLIGENCE: +// case AGILITY: +// newStat = new ItemStat(StatByID((int)STRENGTH)); +// break; +// case LESSERVITALITY: +// case LESSERINTELLIGENCE: +// case LESSERAGILITY: +// newStat = new ItemStat(StatByID((int)LESSERSTRENGTH)); +// break; +// case BASE_RANGED_DAMAGE: +// case BASE_SPELL_DAMAGE: +// newStat = new ItemStat(StatByID((int)BASE_MELEE_DAMAGE)); +// break; +// case RANGED_DAMAGE_INCREASE: +// case SPELL_DAMAGE_MULTIPLIER: +// newStat = new ItemStat(StatByID((int)MELEE_DAMAGE_INCREASE)); +// break; +// default: +// return false; +// } +// newStat.amount = stat.amount; +// newStat.possibleStatsIndex = stat.possibleStatsIndex; +// x.stats[index] = newStat; +// return true; +// } +// }; +// new BaseItem(new int[][] { }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_485/*Enzyme INT/33*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_486/*Changes Vitality, Agility or Strength stat on an item to Intelligence or changes Ranged or Melee damage stat to Spell Damage*/, //tr +// rarity = 6, +// minLevel = 1, +// maxLevel = 2, +// canConsume = false, +// stackSize = 100, +// type = ItemDefinition.ItemType.Material, +// icon = Res.ResourceLoader.GetTexture(191), +// onConsumeCallback = x => +// { +// if (x.isEquipped) +// return false; + +// var stats = x.stats.Where(y => y.id == (int)VITALITY || y.id == (int)STRENGTH || y.id == (int)AGILITY +// || y.id == (int)LESSERVITALITY || y.id == (int)LESSERSTRENGTH || y.id == (int)LESSERAGILITY +// || y.id == (int)BASE_RANGED_DAMAGE || y.id == (int)BASE_MELEE_DAMAGE +// || y.id == (int)RANGED_DAMAGE_INCREASE || y.id == (int)MELEE_DAMAGE_INCREASE).ToArray(); + +// int c = stats.Count(); + + +// if (c == 0) +// return false; +// int i = UnityEngine.Random.Range(0, c); +// ItemStat stat = stats[i]; +// int index = x.stats.IndexOf(stat); + +// ItemStat newStat; +// Stat statID = (Stat)stat.id; +// switch (statID) +// { +// case VITALITY: +// case STRENGTH: +// case AGILITY: +// newStat = new ItemStat(StatByID((int)INTELLIGENCE)); +// break; +// case LESSERVITALITY: +// case LESSERSTRENGTH: +// case LESSERAGILITY: +// newStat = new ItemStat(StatByID((int)LESSERINTELLIGENCE)); +// break; +// case BASE_RANGED_DAMAGE: +// case BASE_MELEE_DAMAGE: +// newStat = new ItemStat(StatByID((int)BASE_SPELL_DAMAGE)); +// break; +// case RANGED_DAMAGE_INCREASE: +// case MELEE_DAMAGE_INCREASE: +// newStat = new ItemStat(StatByID((int)SPELL_DAMAGE_MULTIPLIER)); +// break; +// default: +// return false; +// } +// newStat.amount = stat.amount; +// newStat.possibleStatsIndex = stat.possibleStatsIndex; +// x.stats[index] = newStat; +// return true; +// } +// }; +// new BaseItem(new int[][] { }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_487/*Enzyme AGI/39*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_488/*Changes Vitality, Intelligence or Strength stat on an item to Agility or changes Melee or Spell damage stat to Ranged Damage*/, //tr +// rarity = 6, +// minLevel = 1, +// maxLevel = 2, +// canConsume = false, +// stackSize = 100, +// type = ItemDefinition.ItemType.Material, +// icon = Res.ResourceLoader.GetTexture(192), +// onConsumeCallback = x => +// { +// if (x.isEquipped) +// return false; + +// var stats = x.stats.Where(y => y.id == (int)VITALITY || y.id == (int)STRENGTH || y.id == (int)INTELLIGENCE +// || y.id == (int)LESSERVITALITY || y.id == (int)LESSERSTRENGTH || y.id == (int)LESSERINTELLIGENCE +// || y.id == (int)BASE_SPELL_DAMAGE || y.id == (int)BASE_MELEE_DAMAGE +// || y.id == (int)SPELL_DAMAGE_MULTIPLIER || y.id == (int)MELEE_DAMAGE_INCREASE).ToArray(); + +// int c = stats.Count(); + + +// if (c == 0) +// return false; +// int i = UnityEngine.Random.Range(0, c); +// ItemStat stat = stats[i]; +// int index = x.stats.IndexOf(stat); + +// ItemStat newStat; +// Stat statID = (Stat)stat.id; +// switch (statID) +// { +// case VITALITY: +// case INTELLIGENCE: +// case STRENGTH: +// newStat = new ItemStat(StatByID((int)AGILITY)); +// break; +// case LESSERVITALITY: +// case LESSERINTELLIGENCE: +// case LESSERSTRENGTH: +// newStat = new ItemStat(StatByID((int)LESSERAGILITY)); +// break; +// case BASE_MELEE_DAMAGE: +// case BASE_SPELL_DAMAGE: +// newStat = new ItemStat(StatByID((int)BASE_RANGED_DAMAGE)); +// break; +// case MELEE_DAMAGE_INCREASE: +// case SPELL_DAMAGE_MULTIPLIER: +// newStat = new ItemStat(StatByID((int)RANGED_DAMAGE_INCREASE)); +// break; +// default: +// return false; +// } +// newStat.amount = stat.amount; +// newStat.possibleStatsIndex = stat.possibleStatsIndex; +// x.stats[index] = newStat; +// return true; +// } +// }; + +// new BaseItem(new int[][] { }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_489/*Enzyme VIT/449*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_490/*Changes Agility, Intelligence or Strength stat on an item to Vitality*/, //tr +// rarity = 6, +// minLevel = 1, +// maxLevel = 2, +// canConsume = false, +// stackSize = 100, +// type = ItemDefinition.ItemType.Material, +// icon = Res.ResourceLoader.GetTexture(199), +// onConsumeCallback = x => +// { +// if (x.isEquipped) +// return false; + +// var stats = x.stats.Where(y => y.id == (int)VITALITY || y.id == (int)STRENGTH || y.id == (int)INTELLIGENCE +// || y.id == (int)LESSERAGILITY || y.id == (int)LESSERSTRENGTH || y.id == (int)LESSERINTELLIGENCE).ToArray(); + +// int c = stats.Count(); + + +// if (c == 0) +// return false; +// int i = UnityEngine.Random.Range(0, c); +// ItemStat stat = stats[i]; +// int index = x.stats.IndexOf(stat); + +// ItemStat newStat; +// Stat statID = (Stat)stat.id; +// switch (statID) +// { +// case AGILITY: +// case INTELLIGENCE: +// case STRENGTH: +// newStat = new ItemStat(StatByID((int)VITALITY)); +// break; +// case LESSERAGILITY: +// case LESSERINTELLIGENCE: +// case LESSERSTRENGTH: +// newStat = new ItemStat(StatByID((int)LESSERVITALITY)); +// break; +// default: +// return false; +// } +// newStat.amount = stat.amount; +// newStat.possibleStatsIndex = stat.possibleStatsIndex; +// x.stats[index] = newStat; +// return true; +// } +// }; +// new BaseItem(new int[][] { }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_491/*Stomach Acid*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_492/*Removes all stats with negative values from an item*/, //tr +// rarity = 4, +// minLevel = 1, +// maxLevel = 2, +// canConsume = false, +// stackSize = 100, +// type = ItemDefinition.ItemType.Material, +// icon = Res.ResourceLoader.GetTexture(198), +// onConsumeCallback = x => +// { +// if (x.isEquipped) +// return false; + +// var stats = x.stats.RemoveAll(y => y.amount < 0); +// if (stats > 0) +// return true; +// return false; +// } +// }; +// new BaseItem(new int[][] { }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_493/*Elite Stomach Acid*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_494/*Changes negative stat values into positive values on an item*/, //tr +// rarity = 6, +// minLevel = 1, +// maxLevel = 2, +// canConsume = false, +// stackSize = 100, +// type = ItemDefinition.ItemType.Material, +// icon = Res.ResourceLoader.GetTexture(198), +// onConsumeCallback = x => +// { +// if (x.isEquipped) +// return false; + +// var stats = x.stats.Where(y => y.amount < 0).ToList(); +// if (stats.Count > 0) +// { +// for (int i = 0; i < stats.Count; i++) +// { +// stats[i].amount *= -1; +// } +// return true; +// } +// return false; +// } +// }; +// new BaseItem(new int[][] { }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_495/*Crimson Solution*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_496/*Upgrades item of any rarity to one of the same type but of Legendary rarity*/, //tr +// rarity = 7, +// minLevel = 1, +// maxLevel = 2, +// canConsume = false, +// stackSize = 100, +// type = ItemDefinition.ItemType.Material, +// icon = Res.ResourceLoader.GetTexture(196), +// onConsumeCallback = x => +// { +// if (x.isEquipped) +// return false; +// var itemType = x.type; +// if (itemType == ItemDefinition.ItemType.Other || itemType == ItemDefinition.ItemType.Material || x.stackedAmount > 1) +// return false; +// if (Player.Inventory.Instance.ItemSlots.ContainsValue(x)) +// { +// for (int slotIndex = 0; slotIndex < Inventory.SlotCount; slotIndex++) +// { +// if (Player.Inventory.Instance.ItemSlots[slotIndex] == x) +// { +// var options = ItemDatabase.itemLookup.Where(y => y.Value.rarity == 7 && y.Value.type == itemType && (itemType != ItemDefinition.ItemType.Weapon || y.Value.subtype == x.subtype)).Select(y => y.Key).ToList(); +// if (options.Count == 0) +// { +// ModAPI.Log.Write("No tier 7 items for type: " + itemType); +// return false; +// } +// var random = options[UnityEngine.Random.Range(0, options.Count)]; +// Item item = new Item(ItemDatabase.itemLookup[random], 1, 0, false) +// { +// level = x.level +// }; +// item.RollStats(); +// Inventory.Instance.ItemSlots[slotIndex] = item; +// return true; +// } +// } +// } +// return false; +// } +// }; + +// new BaseItem(new int[][] { }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_497/*Weak Armor Hardening Mixture*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_498/*Adds Armor Stat to a piece of equipment if the item does not already have it*/, //tr +// rarity = 4, +// minLevel = 1, +// maxLevel = 2, +// canConsume = false, +// stackSize = 100, +// type = ItemDefinition.ItemType.Material, +// icon = Res.ResourceLoader.GetTexture(197), +// onConsumeCallback = x => +// { +// if (x.isEquipped) +// return false; +// var itemType = x.type; +// if (itemType == ItemDefinition.ItemType.Other || itemType == ItemDefinition.ItemType.Material || x.stackedAmount > 1) +// return false; +// if (!x.stats.Any(y => y.id == (int)ARMOR || y.id == (int)LESSERARMOR)) +// { +// ItemStat stat = new ItemStat(StatByID((int)ARMOR), x.level); +// x.stats.Add(stat); +// return true; +// } +// return false; +// } +// }; + +// new BaseItem(new int[][] { }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_499/*Upgraded Armor Hardening Mixture*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_500/*Adds Damage Reduction Stat to a piece of equipment if the item does not already have it*/, //tr +// rarity = 5, +// minLevel = 1, +// maxLevel = 2, +// canConsume = false, +// stackSize = 100, +// type = ItemDefinition.ItemType.Material, +// icon = Res.ResourceLoader.GetTexture(197), +// onConsumeCallback = x => +// { +// if (x.isEquipped) +// return false; +// var itemType = x.type; +// if (itemType == ItemDefinition.ItemType.Other || itemType == ItemDefinition.ItemType.Material || x.stackedAmount > 1) +// return false; +// if (!x.stats.Any(y => y.id == (int)DAMAGE_REDUCTION)) +// { +// ItemStat stat = new ItemStat(StatByID((int)DAMAGE_REDUCTION), x.level); +// x.stats.Add(stat); +// return true; +// } +// return false; +// } +// }; + +// new BaseItem(new int[][] { }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_501/*Chaos Water*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_502/*Rerolls all stats on an item of rarity no higher than orange*/, //tr +// rarity = 4, +// minLevel = 1, +// maxLevel = 2, +// canConsume = false, +// stackSize = 100, +// type = ItemDefinition.ItemType.Material, +// icon = Res.ResourceLoader.GetTexture(195), +// onConsumeCallback = x => +// { +// if (x.isEquipped) +// return false; +// var itemType = x.type; +// if (itemType == ItemDefinition.ItemType.Other || itemType == ItemDefinition.ItemType.Material || x.stackedAmount > 1 || x.rarity > 5) +// return false; +// if (x.stats.Count > 1) +// { +// x.RollStats(); +// return true; +// } +// return false; +// } +// }; +// new BaseItem(new int[][] { }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_503/*Upgraded Chaos Water*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_483/*A substance which results in surprising changes to gear*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_504/*Rerolls all stats on an item of any rarity*/, //tr +// rarity = 6, +// minLevel = 1, +// maxLevel = 2, +// canConsume = false, +// stackSize = 100, +// type = ItemDefinition.ItemType.Material, +// icon = Res.ResourceLoader.GetTexture(194), +// onConsumeCallback = x => +// { +// if (x.isEquipped) +// return false; +// var itemType = x.type; +// if (itemType == ItemDefinition.ItemType.Other || itemType == ItemDefinition.ItemType.Material || x.stackedAmount > 1) +// return false; +// if (x.stats.Count > 1) +// { +// x.RollStats(); +// return true; +// } +// return false; +// } +// }; +// new BaseItem(new Stat[][] +// { +// new [] {SPELL_COST_REDUCTION,MELEE_DAMAGE_INCREASE,SPELL_DAMAGE_MULTIPLIER,COOLDOWN_REDUCTION,DAMAGE_REDUCTION, RANGED_DMG_FROM_AGI, ATTACKSPEED}, +// new [] {AGILITY,LESSERAGILITY}, +// new [] {MELEE_ARMOR_PIERCING,RANGED_ARMOR_PIERCING,ARMOR_PIERCING,ARMOR}, +// new [] {RANGED_DAMAGE_INCREASE,RANGED_DMG_FROM_AGI,BASE_RANGED_DAMAGE,CRIT_CHANCE,CRIT_DAMAGE,ALL_ATTRIBUTES}, +// new [] {INTELLIGENCE,STRENGTH,AGILITY,VITALITY,ALL_ATTRIBUTES,MAX_LIFE,MAX_ENERGY}, +// new [] {INTELLIGENCE,STRENGTH,AGILITY,VITALITY,ALL_ATTRIBUTES,LIFE_ON_HIT,ENERGY_ON_HIT,ENERGY_REGEN_BASE,ALL_RECOVERY}, +// new [] {RANGED_DAMAGE_INCREASE,BASE_RANGED_DAMAGE,AGILITY}, +// new [] {ALL}, +// new [] {ALL}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_505/*Gun Blade*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_506("150%")/*Increases pistol damage by 150%*/, //tr +// rarity = 6, +// minLevel = 35, +// maxLevel = 36, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Weapon, +// subtype = ItemDefinition.ItemSubtype.Axe, +// icon = Res.ResourceLoader.GetTexture(138), +// onEquipCallback = () => ModdedPlayer.Stats.perk_bulletDamageMult.Multiply(2.5f), +// onUnequipCallback = () => ModdedPlayer.Stats.perk_bulletDamageMult.Divide(2.5f), +// }.statSlots[0][0].multipier = -1f; + +// new BaseItem(new Stat[][] +// { +// new [] {SPELL_COST_REDUCTION,BASE_SPELL_DAMAGE,SPELL_DAMAGE_MULTIPLIER,COOLDOWN_REDUCTION,DAMAGE_REDUCTION}, +// new [] {ATTACKSPEED,PROJECTILE_SIZE,PROJECTILE_SPEED}, +// new [] {AGILITY,LESSERAGILITY}, +// new [] {HEADSHOT_DAMAGE_MULT}, +// new [] {MELEE_ARMOR_PIERCING,RANGED_ARMOR_PIERCING,ARMOR_PIERCING,ARMOR,ELITE_DAMAGE_REDUCTION,LOOT_QUANTITY}, +// new [] {RANGED_DAMAGE_INCREASE,RANGED_DMG_FROM_AGI,BASE_RANGED_DAMAGE,CRIT_CHANCE,CRIT_DAMAGE,ALL_ATTRIBUTES,MAX_ENERGY_FROM_AGILITY}, +// new [] {RANGED_DAMAGE_INCREASE,BASE_RANGED_DAMAGE,AGILITY,VITALITY,INTELLIGENCE,CRIT_CHANCE,CRIT_DAMAGE}, +// new [] {RANGED_DAMAGE_INCREASE,BASE_RANGED_DAMAGE,AGILITY,VITALITY,INTELLIGENCE,HEADSHOT_DAMAGE_MULT}, +// new [] {INTELLIGENCE,STRENGTH,AGILITY,VITALITY,ALL_ATTRIBUTES,MAX_LIFE,MAX_ENERGY}, +// new [] {INTELLIGENCE,STRENGTH,AGILITY,VITALITY,ALL_ATTRIBUTES,LIFE_ON_HIT,ENERGY_ON_HIT,ENERGY_REGEN_BASE,ALL_RECOVERY}, +// new [] {ALL}, +// new [] {ALL}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_507/*Sharpshooter's Axe*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_508("50%", "600%")/*Increases pistol headshot chance by 50% and pistol damage by 600%*/, //tr +// rarity = 7, +// minLevel = 35, +// maxLevel = 36, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Weapon, +// subtype = ItemDefinition.ItemSubtype.Axe, +// icon = Res.ResourceLoader.GetTexture(138), +// onEquipCallback = () => { ModdedPlayer.Stats.perk_bulletDamageMult.Multiply(6f); ModdedPlayer.Stats.perk_bulletCritChance.Add(0.5f); }, +// onUnequipCallback = () => { ModdedPlayer.Stats.perk_bulletDamageMult.Divide(6f); ModdedPlayer.Stats.perk_bulletCritChance.Sub(0.5f); }, +// }; +// new BaseItem(new Stat[][] +// { +// new [] {ARMOR_PIERCING,MELEE_ARMOR_PIERCING,NONE}, +// new [] {BLOCK,NONE}, +// new [] {ARMOR,MAX_LIFE,MAX_HEALTH_FROM_VITALITY,DAMAGE_REDUCTION,ELITE_DAMAGE_REDUCTION,DODGE_CHANCE}, +// new [] {ARMOR,MAX_LIFE,MAX_HEALTH_FROM_VITALITY,DAMAGE_REDUCTION,VITALITY,STRENGTH,ALL_ATTRIBUTES}, +// new [] {ARMOR,MAX_LIFE,MAX_HEALTH_FROM_VITALITY,DAMAGE_REDUCTION,VITALITY,STRENGTH,ALL_ATTRIBUTES,THORNS}, +// new [] {THORNS,MELEE_DAMAGE_INCREASE,VITALITY,STRENGTH}, +// new [] {STRENGTH,ARMOR,MELEE_ARMOR_PIERCING}, +// new [] {MELEE_DAMAGE_INCREASE,MELEE_DMG_FROM_STR,BASE_MELEE_DAMAGE}, +// new [] {MELEE_DAMAGE_INCREASE,ATTACKSPEED,BASE_MELEE_DAMAGE,MELEE_WEAPON_RANGE}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_509/*Shield Blade*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_510/*So large can be used as a shield*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_511/*A normal human cannot lift this weapon.*/, //tr +// rarity = 6, +// minLevel = 50, +// maxLevel = 52, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Weapon, +// subtype = ItemDefinition.ItemSubtype.GreatSword, +// icon = Res.ResourceLoader.GetTexture(88), +// }; +// new BaseItem(new Stat[][] +// { +// new [] {ARMOR_PIERCING,MELEE_ARMOR_PIERCING}, +// new [] {BLOCK,NONE}, +// new [] {ARMOR,MAX_LIFE,MAX_HEALTH_FROM_VITALITY,DAMAGE_REDUCTION,ELITE_DAMAGE_REDUCTION,DODGE_CHANCE}, +// new [] {ARMOR,MAX_LIFE,MAX_HEALTH_FROM_VITALITY,DAMAGE_REDUCTION,VITALITY,STRENGTH,ALL_ATTRIBUTES}, +// new [] {ARMOR,MAX_LIFE,MAX_HEALTH_FROM_VITALITY,DAMAGE_REDUCTION,VITALITY,STRENGTH,ALL_ATTRIBUTES,THORNS}, +// new [] {THORNS,MELEE_DAMAGE_INCREASE,VITALITY,STRENGTH}, +// new [] {STRENGTH,ARMOR,MELEE_ARMOR_PIERCING}, +// new [] {MELEE_DAMAGE_INCREASE,MELEE_DMG_FROM_STR,BASE_MELEE_DAMAGE}, +// new [] {MELEE_DAMAGE_INCREASE,ATTACKSPEED,BASE_MELEE_DAMAGE,MELEE_WEAPON_RANGE}, +// new [] {ALL}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_512/*Blunt Blade for Bashing Skulls*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_510/*So large can be used as a shield*/, //tr +// lore = Translations.ItemDatabase_ItemDefinitions_511/*A normal human cannot lift this weapon.*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_513("200%")/*Bash damage debuff on enemies is increased by 200%*/, //tr +// rarity = 7, +// minLevel = 50, +// maxLevel = 52, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Weapon, +// subtype = ItemDefinition.ItemSubtype.GreatSword, +// icon = Res.ResourceLoader.GetTexture(88), +// onEquipCallback = () => ModdedPlayer.Stats.spell_bashDamageDebuffAmount.Add(2.00f), +// onUnequipCallback = () => ModdedPlayer.Stats.spell_bashDamageDebuffAmount.Sub(2.00f), +// }; + +// new BaseItem(new Stat[][] +// { +// new[] { ARMOR_PIERCING, MELEE_ARMOR_PIERCING }, +// new[] { BLOCK,STRENGTH}, +// new[] { ARMOR, MAX_LIFE, MAX_HEALTH_FROM_VITALITY, DAMAGE_REDUCTION, ELITE_DAMAGE_REDUCTION, DODGE_CHANCE }, +// new[] { ARMOR, MAX_LIFE , DAMAGE_REDUCTION, VITALITY, STRENGTH, ALL_ATTRIBUTES }, +// new[] { ARMOR, MAX_LIFE, DAMAGE_REDUCTION, VITALITY, STRENGTH, ALL_ATTRIBUTES, THORNS }, +// new[] { THORNS, MELEE_DAMAGE_INCREASE, VITALITY, STRENGTH }, +// new[] { STRENGTH, ARMOR, MELEE_ARMOR_PIERCING }, +// new[] { MELEE_DAMAGE_INCREASE, MELEE_DMG_FROM_STR, BASE_MELEE_DAMAGE }, +// new[] { MELEE_DAMAGE_INCREASE, ATTACKSPEED, BASE_MELEE_DAMAGE, MELEE_WEAPON_RANGE }, +// new[] { ALL }, +// new[] { ALL }, +// new[] { ALL }, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_514/*Madman's Legacy*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_515("69%")/*Frenzy damage per stack is increased by 50%*/, //tr +// rarity = 7, +// minLevel = 1, +// maxLevel = 2, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Shield, +// icon = Res.ResourceLoader.GetTexture(99), +// onEquipCallback = () => ModdedPlayer.Stats.spell_frenzyDmg.Add(0.69f), +// onUnequipCallback = () => ModdedPlayer.Stats.spell_frenzyDmg.Add(0.69f), +// }; +// new BaseItem(new Stat[][] +// { +// new[] { ARMOR,BASE_MELEE_DAMAGE }, +// new[] { BLOCK}, +// new[] { ARMOR, MAX_LIFE,MAX_ENERGY,STAMINA_AND_ENERGY_REGEN_MULT, DAMAGE_REDUCTION, ELITE_DAMAGE_REDUCTION, DODGE_CHANCE }, +// new[] { ARMOR, MAX_LIFE, MAX_ENERGY, DAMAGE_REDUCTION, VITALITY, STRENGTH, ALL_ATTRIBUTES,CHANCE_ON_HIT_TO_BLEED,CHANCE_ON_HIT_TO_SLOW,CHANCE_ON_HIT_TO_WEAKEN }, +// new[] { ARMOR, MAX_LIFE, MAX_HEALTH_FROM_VITALITY, DAMAGE_REDUCTION, VITALITY, STRENGTH, ALL_ATTRIBUTES, THORNS }, +// new[] { THORNS, MELEE_DAMAGE_INCREASE, VITALITY, STRENGTH }, +// new[] { MELEE_DAMAGE_INCREASE, ATTACKSPEED, BASE_MELEE_DAMAGE, MELEE_WEAPON_RANGE,MAX_LIFE_MULT,MAX_ENERGY_MULT,ALL_RECOVERY }, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_516/*Buckler*/, //tr +// rarity = 5, +// minLevel = 1, +// maxLevel = 2, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Shield, +// icon = Res.ResourceLoader.GetTexture(99), +// }; +// new BaseItem(new Stat[][] +// { +// new [] {FIRE_DAMAGE}, +// new [] {MAX_ENERGY,MAX_LIFE,MAX_ENERGY_MULT,MAX_LIFE_MULT}, +// new [] {STRENGTH,INTELLIGENCE,AGILITY,SPELL_COST_REDUCTION}, +// new [] {SPELL_DAMAGE_MULTIPLIER,BASE_SPELL_DAMAGE, INTELLIGENCE ,ALL_ATTRIBUTES}, +// new [] {SPELL_DAMAGE_MULTIPLIER,BASE_SPELL_DAMAGE, INTELLIGENCE ,ALL_ATTRIBUTES}, +// new [] {ARMOR,DAMAGE_REDUCTION}, +// new [] {ELITE_DAMAGE_REDUCTION,LOOT_QUANTITY,MOVEMENT_SPEED,ARMOR}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_517/*Pyromancy Mask*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_518("200%")/*Ignited enemies burn for 200% extended perioid of time.*/, //tr +// rarity = 5, +// minLevel = 2, +// maxLevel = 6, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Helmet, +// icon = Res.ResourceLoader.GetTexture(91), +// onEquipCallback = () => ModdedPlayer.Stats.fireDuration.Add(2f), +// onUnequipCallback = () => ModdedPlayer.Stats.fireDuration.Sub(2f), +// }.statSlots[0][0].multipier = 2; + +// new BaseItem(new Stat[][] +// { +// new [] {FIRE_DAMAGE}, +// new [] {SPELL_DMG_FROM_INT,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI}, +// new [] {MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY}, +// new [] {MAX_ENERGY,MAX_LIFE,MAX_ENERGY_MULT,MAX_LIFE_MULT}, +// new [] {STRENGTH,INTELLIGENCE,AGILITY,SPELL_COST_REDUCTION}, +// new [] {SPELL_DAMAGE_MULTIPLIER,BASE_SPELL_DAMAGE, INTELLIGENCE ,ALL_ATTRIBUTES}, +// new [] {SPELL_DAMAGE_MULTIPLIER,BASE_SPELL_DAMAGE, INTELLIGENCE ,ALL_ATTRIBUTES}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ARMOR,DAMAGE_REDUCTION}, +// new [] {ELITE_DAMAGE_REDUCTION,LOOT_QUANTITY,MOVEMENT_SPEED,ARMOR}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_519/*Ember Mask*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_520("700%")/*Ignited enemies burn for 300% extended perioid of time and fire ticks thrice as fast.*/, //tr +// rarity = 7, +// minLevel = 2, +// maxLevel = 6, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Helmet, +// icon = Res.ResourceLoader.GetTexture(91), +// onEquipCallback = () => { ModdedPlayer.Stats.fireDuration.Add(7f); ModdedPlayer.Stats.fireTickRate.Add(3f); }, +// onUnequipCallback = () => { ModdedPlayer.Stats.fireDuration.Sub(7f); ModdedPlayer.Stats.fireTickRate.Sub(3f); }, +// }.statSlots[0][0].multipier = 5; + + +// new BaseItem(new Stat[][] +// { +// new [] {FIRE_DAMAGE}, +// new [] {ARMOR,DODGE_CHANCE}, +// new [] {MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI}, +// new [] {MAX_ENERGY,MAX_LIFE,MAX_ENERGY_MULT,MAX_LIFE_MULT}, +// new [] {STRENGTH,INTELLIGENCE,AGILITY,SPELL_COST_REDUCTION,PROJECTILE_SPEED,PROJECTILE_SIZE}, +// new [] {SPELL_DAMAGE_MULTIPLIER,BASE_SPELL_DAMAGE, INTELLIGENCE ,ALL_ATTRIBUTES}, +// new [] {SPELL_DAMAGE_MULTIPLIER,BASE_SPELL_DAMAGE, INTELLIGENCE ,ALL_ATTRIBUTES}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ARMOR,DAMAGE_REDUCTION}, +// new [] {ELITE_DAMAGE_REDUCTION,LOOT_QUANTITY,MOVEMENT_SPEED,ARMOR}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_521/*Flame Pauldrons*/, //tr +// description = "", //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_522(10, "750%")/*Firebolt costs 30 additional energy to cast and its damage scaling is increased by 250%*/, //tr +// rarity = 7, +// minLevel = 5, +// maxLevel = 8, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.ShoulderArmor, +// icon = Res.ResourceLoader.GetTexture(95), +// onEquipCallback = () => +// { +// ModdedPlayer.Stats.spell_fireboltEnergyCost.Add(5); +// ModdedPlayer.Stats.spell_fireboltDamageScaling.Add(7.5f); +// }, +// onUnequipCallback = () => +// { +// ModdedPlayer.Stats.spell_fireboltEnergyCost.Sub(5); +// ModdedPlayer.Stats.spell_fireboltDamageScaling.Sub(7.5f); +// }, +// }; +// new BaseItem(new Stat[][] +// { +// new [] {SPELL_DMG_FROM_INT}, +// new [] {MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY}, +// new [] {MAX_ENERGY,MAX_LIFE,MAX_ENERGY_MULT,MAX_LIFE_MULT}, +// new [] {STRENGTH,INTELLIGENCE,AGILITY,SPELL_COST_REDUCTION,COOLDOWN_REDUCTION,SPELL_COST_TO_STAMINA}, +// new [] {SPELL_DAMAGE_MULTIPLIER,BASE_SPELL_DAMAGE, INTELLIGENCE ,ALL_ATTRIBUTES}, +// new [] {SPELL_DAMAGE_MULTIPLIER,BASE_SPELL_DAMAGE, INTELLIGENCE ,ALL_ATTRIBUTES}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ELITE_DAMAGE_REDUCTION,ENERGY_ON_HIT,ENERGY_REGEN_BASE,STAMINA_AND_ENERGY_REGEN_MULT,STAMINA_REGEN_BASE}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_523/*Ancient Scroll*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_607/*Firebolt deals increased damage*/, //tr +// rarity = 6, +// minLevel = 1, +// maxLevel = 1, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.SpellScroll, +// icon = Res.ResourceLoader.GetTexture(110), +// onEquipCallback = () => ModdedPlayer.Stats.spell_fireboltDamageScaling.Add(8), +// onUnequipCallback = () => ModdedPlayer.Stats.spell_fireboltDamageScaling.Sub(8), +// }; +// new BaseItem(new Stat[][] +// { +// new [] {SPELL_DMG_FROM_INT}, +// new [] {MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY}, +// new [] {MAX_ENERGY,MAX_LIFE,MAX_ENERGY_MULT,MAX_LIFE_MULT}, +// new [] {STRENGTH,INTELLIGENCE,AGILITY,SPELL_COST_REDUCTION,COOLDOWN_REDUCTION,SPELL_COST_TO_STAMINA}, +// new [] {SPELL_DAMAGE_MULTIPLIER,BASE_SPELL_DAMAGE, INTELLIGENCE ,ALL_ATTRIBUTES}, +// new [] {SPELL_DAMAGE_MULTIPLIER,BASE_SPELL_DAMAGE, INTELLIGENCE ,ALL_ATTRIBUTES}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ELITE_DAMAGE_REDUCTION,ENERGY_ON_HIT,ENERGY_REGEN_BASE,STAMINA_AND_ENERGY_REGEN_MULT,STAMINA_REGEN_BASE}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_524/*Guide on Tearing Spacetime*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_525/*Blink creates an explosion at the exit point, and the damage of the explosion is increased by velocity and the radius is increased by the distance of blink*/, //tr +// rarity = 7, +// minLevel = 1, +// maxLevel = 1, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.SpellScroll, +// icon = Res.ResourceLoader.GetTexture(110), +// onEquipCallback = () => ModdedPlayer.Stats.spell_blinkDoExplosion.value = true, +// onUnequipCallback = () => ModdedPlayer.Stats.spell_blinkDoExplosion.value = false, +// }; +// new BaseItem(new Stat[][] +// { +// new [] {STRENGTH}, +// new [] {MELEE_DAMAGE_INCREASE}, +// new [] {ATTACKSPEED}, +// new [] {MELEE_DMG_FROM_STR}, +// new [] {BLOCK,ARMOR,DAMAGE_REDUCTION}, +// new [] {BASE_MELEE_DAMAGE,NONE}, +// new [] {BASE_MELEE_DAMAGE,MELEE_DAMAGE_INCREASE,STRENGTH}, +// new [] {MELEE_ARMOR_PIERCING,ARMOR_PIERCING,ALL_ATTRIBUTES}, +// new [] {ATTACK_COST_REDUCTION,ATTACKSPEED}, +// new [] {ALL_ATTRIBUTES,MELEE_WEAPON_RANGE,VITALITY,MAX_LIFE}, +// new [] {ENERGY_ON_HIT,VITALITY,LIFE_ON_HIT } +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_526/*300th Spear*/, //tr +// rarity = 6, +// minLevel = 30, +// maxLevel = 34, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Weapon, +// subtype = ItemDefinition.ItemSubtype.Polearm, +// icon = Res.ResourceLoader.GetTexture(181), +// }.statSlots[0][0].multipier = 6; + + + +// new BaseItem(new Stat[][] +// { +// new [] {MOVEMENT_SPEED,ATTACKSPEED}, +// new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, +// new [] {ALL}, +// new [] {ALL,NONE}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_527/*Stone Pauldrons*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr +// onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.03f), +// onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.03f), +// rarity = 2, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.ShoulderArmor, +// icon = Res.ResourceLoader.GetTexture(95), +// }.statSlots[0][0].multipier = -0.3f; +// new BaseItem(new Stat[][] +// { +// new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, +// new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, +// new [] {ALL,NONE}, +// new [] {ALL}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_529/*Iron Shoulder Pads*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr +// onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.04f), +// onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.04f), +// rarity = 3, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.ShoulderArmor, +// icon = Res.ResourceLoader.GetTexture(95), +// }; +// new BaseItem(new Stat[][] +// { +// new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, +// new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, +// new [] {ALL,NONE}, +// new [] {ALL}, +// new [] {ALL}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_531/*Steel Shoulder Pads*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr +// onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.05f), +// onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.05f), +// rarity = 4, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.ShoulderArmor, +// icon = Res.ResourceLoader.GetTexture(95), +// }; +// new BaseItem(new Stat[][] +// { +// new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, +// new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, +// new [] {ALL,NONE}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_533/*Battle scarred Shoulder Pads*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr +// onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.06f), +// onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.06f), +// rarity = 5, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.ShoulderArmor, +// icon = Res.ResourceLoader.GetTexture(95), +// }; + +// new BaseItem(new Stat[][] +// { +// new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, +// new [] {MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, +// new [] {ALL,NONE}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_535/*Mystery Shoulder Pads*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr +// onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.1f), +// onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.1f), +// rarity = 6, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.ShoulderArmor, +// icon = Res.ResourceLoader.GetTexture(95), +// }; + +// new BaseItem(new Stat[][] +// { +// new [] {MOVEMENT_SPEED,ATTACKSPEED}, +// new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, +// new [] {ALL}, +// new [] {ALL,NONE}, +// new [] {BLOCK}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_537/*Stone Shield*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr +// onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.03f), +// onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.03f), +// rarity = 2, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Shield, +// icon = Res.ResourceLoader.GetTexture(99), +// }.statSlots[0][0].multipier = -0.3f; +// new BaseItem(new Stat[][] +// { +// new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, +// new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, +// new [] {ALL,NONE}, +// new [] {ALL,NONE}, +// new [] {ALL}, +// new [] {BLOCK}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_538/*Iron Shield*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr +// onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.04f), +// onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.04f), +// rarity = 3, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Shield, +// icon = Res.ResourceLoader.GetTexture(99), +// }; +// new BaseItem(new Stat[][] +// { +// new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, +// new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, +// new [] {ALL,NONE}, +// new [] {ALL,NONE}, +// new [] {ALL}, +// new [] {ALL,ARMOR}, +// new [] {BLOCK}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_539/*Steel Tower Shield*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr +// onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.05f), +// onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.05f), +// rarity = 4, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Shield, +// icon = Res.ResourceLoader.GetTexture(99), +// }; +// new BaseItem(new Stat[][] +// { + +// new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, +// new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, +// new [] {ALL,NONE}, +// new [] {ALL,NONE}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {BLOCK}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_540/*Guardian*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr +// onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.06f), +// onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.06f), +// rarity = 5, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Shield, +// icon = Res.ResourceLoader.GetTexture(99), +// }; + +// new BaseItem(new Stat[][] +// { +// new [] {BLOCK}, +// new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, +// new [] {MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, +// new [] {ALL,NONE}, +// new [] {ALL,NONE}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_541/*Mystery Shield*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr +// onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.1f), +// onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.1f), +// rarity = 6, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Shield, +// icon = Res.ResourceLoader.GetTexture(99), +// }.statSlots[0][0].multipier = 2f; + + +// new BaseItem(new Stat[][] +// { +// new [] {MOVEMENT_SPEED}, +// new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, +// new [] {ALL}, +// new [] {ALL,NONE}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_542/*Light Boot*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr +// onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.03f), +// onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.03f), +// rarity = 2, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Boot, +// icon = Res.ResourceLoader.GetTexture(85), +// }.statSlots[0][0].multipier = 1.3f; +// new BaseItem(new Stat[][] +// { +// new [] {MOVEMENT_SPEED}, +// new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, +// new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, +// new [] {ALL,NONE}, +// new [] {ALL,NONE}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_543/*Iron Boots*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr +// onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.04f), +// onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.04f), +// rarity = 3, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Boot, +// icon = Res.ResourceLoader.GetTexture(85), +// }; +// new BaseItem(new Stat[][] +// { +// new [] {MOVEMENT_SPEED}, +// new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, +// new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, +// new [] {ALL,NONE}, +// new [] {ALL}, +// new [] {ALL,ARMOR}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_544/*Steel Boots*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr +// onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.05f), +// onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.05f), +// rarity = 4, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Boot, +// icon = Res.ResourceLoader.GetTexture(85), +// }; +// new BaseItem(new Stat[][] +// { +// new [] {MOVEMENT_SPEED}, +// new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, +// new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, +// new [] {ALL,NONE}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_545/*Threads*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr +// onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.06f), +// onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.06f), +// rarity = 5, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Boot, +// icon = Res.ResourceLoader.GetTexture(85), +// }; + +// new BaseItem(new Stat[][] +// { +// new [] {MOVEMENT_SPEED}, +// new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, +// new [] {MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, +// new [] {ALL,NONE}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_546/*Mystery Boots*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr +// onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.1f), +// onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.1f), +// rarity = 6, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Boot, +// icon = Res.ResourceLoader.GetTexture(85), +// }; + + + + +// new BaseItem(new Stat[][] +// { +// new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, +// new [] {ALL}, +// new [] {ALL,NONE}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_547/*Wraps*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr +// onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.03f), +// onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.03f), +// rarity = 2, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Glove, +// icon = Res.ResourceLoader.GetTexture(86), +// }.statSlots[0][0].multipier = -0.3f; +// new BaseItem(new Stat[][] +// { +// new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, +// new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, +// new [] {ALL,NONE}, +// new [] {ALL}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_301/*Iron Gauntlet*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr +// onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.04f), +// onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.04f), +// rarity = 3, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Glove, +// icon = Res.ResourceLoader.GetTexture(86), +// }; +// new BaseItem(new Stat[][] +// { +// new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, +// new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, +// new [] {ALL,NONE}, +// new [] {ALL}, +// new [] {ALL}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_548/*Steel Gauntlet*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr +// onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.05f), +// onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.05f), +// rarity = 4, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Glove, +// icon = Res.ResourceLoader.GetTexture(86), +// }; +// new BaseItem(new Stat[][] +// { +// new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, +// new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, +// new [] {ALL,NONE}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_549/*Titanium Gauntlet*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr +// onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.06f), +// onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.06f), +// rarity = 5, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Glove, +// icon = Res.ResourceLoader.GetTexture(86), +// }; + +// new BaseItem(new Stat[][] +// { +// new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, +// new [] {MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, +// new [] {ALL,NONE}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_550/*Mystery Gauntlet*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr +// onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.1f), +// onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.1f), +// rarity = 6, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Glove, +// icon = Res.ResourceLoader.GetTexture(86), +// }; + + + +// new BaseItem(new Stat[][] +// { +// new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, +// new [] {ALL}, +// new [] {ALL,NONE}, +// new [] {ALL,NONE}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_551/*Leather Tasset*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr +// onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.03f), +// onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.03f), +// rarity = 2, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Pants, +// icon = Res.ResourceLoader.GetTexture(87), +// }.statSlots[0][0].multipier = -0.3f; +// new BaseItem(new Stat[][] +// { +// new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, +// new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, +// new [] {ALL,NONE}, +// new [] {ALL,NONE}, +// new [] {ALL}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_552/*Iron Tasset*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr +// onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.04f), +// onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.04f), +// rarity = 3, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Pants, +// icon = Res.ResourceLoader.GetTexture(87), +// }; +// new BaseItem(new Stat[][] +// { +// new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, +// new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, +// new [] {ALL,NONE}, +// new [] {ALL,NONE}, +// new [] {ALL}, +// new [] {ALL}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_553/*Steel Tasset*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr +// onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.05f), +// onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.05f), +// rarity = 4, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Pants, +// icon = Res.ResourceLoader.GetTexture(87), +// }; +// new BaseItem(new Stat[][] +// { +// new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, +// new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, +// new [] {ALL,NONE}, +// new [] {ALL,NONE}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_554/*Black Steel Leggins*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr +// onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.06f), +// onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.06f), +// rarity = 5, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Pants, +// icon = Res.ResourceLoader.GetTexture(87), +// }; + +// new BaseItem(new Stat[][] +// { +// new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, +// new [] {MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, +// new [] {ALL,NONE}, +// new [] {ALL,NONE}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_555/*Mystery Leggins*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr +// onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.1f), +// onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.1f), +// rarity = 6, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Pants, +// icon = Res.ResourceLoader.GetTexture(87), +// }; + +// new BaseItem(new Stat[][] +// { +// new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, +// new [] {ALL}, +// new [] {ALL,NONE}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_556/*Leather Vest*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr +// onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.03f), +// onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.03f), +// rarity = 2, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.ChestArmor, +// icon = Res.ResourceLoader.GetTexture(96), +// }.statSlots[0][0].multipier = -0.3f; +// new BaseItem(new Stat[][] +// { +// new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, +// new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, +// new [] {ALL,NONE}, +// new [] {ALL}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_557/*Iron Breastplate*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr +// onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.04f), +// onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.04f), +// rarity = 3, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.ChestArmor, +// icon = Res.ResourceLoader.GetTexture(96), +// }; +// new BaseItem(new Stat[][] +// { +// new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, +// new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, +// new [] {ALL,NONE}, +// new [] {ALL}, +// new [] {ALL}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_558/*Steel Breastplate*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr +// onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.05f), +// onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.05f), +// rarity = 4, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.ChestArmor, +// icon = Res.ResourceLoader.GetTexture(96), +// }; +// new BaseItem(new Stat[][] +// { +// new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, +// new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, +// new [] {ALL,NONE}, +// new [] {ALL,NONE}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_559/*Silver Armor*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr +// onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.06f), +// onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.06f), +// rarity = 5, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.ChestArmor, +// icon = Res.ResourceLoader.GetTexture(96), +// }; + +// new BaseItem(new Stat[][] +// { +// new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, +// new [] {MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, +// new [] {ALL,NONE}, +// new [] {ALL,NONE}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_560/*Mystery Breastplate*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr +// onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.1f), +// onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.1f), +// rarity = 6, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.ChestArmor, +// icon = Res.ResourceLoader.GetTexture(96), +// }; + +// new BaseItem(new Stat[][] +// { +// new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, +// new [] {ALL}, +// new [] {ALL,NONE}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_561/*Cloth Band*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr +// onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.03f), +// onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.03f), +// rarity = 2, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Bracer, +// icon = Res.ResourceLoader.GetTexture(93), +// }.statSlots[0][0].multipier = -0.3f; +// new BaseItem(new Stat[][] +// { +// new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, +// new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, +// new [] {ALL,NONE}, +// new [] {ALL}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_562/*Iron Wristguard*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr +// onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.04f), +// onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.04f), +// rarity = 3, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Bracer, +// icon = Res.ResourceLoader.GetTexture(93), +// }; +// new BaseItem(new Stat[][] +// { +// new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, +// new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, +// new [] {ALL,NONE}, +// new [] {ALL}, +// new [] {ALL}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_563/*Steel Wristguard*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr +// onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.05f), +// onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.05f), +// rarity = 4, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Bracer, +// icon = Res.ResourceLoader.GetTexture(93), +// }; +// new BaseItem(new Stat[][] +// { +// new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, +// new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, +// new [] {ALL,NONE}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_564/*Baron Wristguards*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr +// onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.06f), +// onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.06f), +// rarity = 5, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Bracer, +// icon = Res.ResourceLoader.GetTexture(93), +// }; + +// new BaseItem(new Stat[][] +// { +// new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, +// new [] {MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, +// new [] {ALL,NONE}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_565/*Mystery Wristguards*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr +// onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.1f), +// onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.1f), +// rarity = 6, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Bracer, +// icon = Res.ResourceLoader.GetTexture(93), +// }; + + +// new BaseItem(new Stat[][] +// { +// new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, +// new [] {ALL}, +// new [] {ALL,NONE}, +// new [] {ALL,NONE}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_218/*Horned Helmet*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_528("3%")/*All damage increased by 3%*/, //tr +// onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.03f), +// onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.03f), +// rarity = 2, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Helmet, +// icon = Res.ResourceLoader.GetTexture(91), +// }.statSlots[0][0].multipier = -0.3f; +// new BaseItem(new Stat[][] +// { +// new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, +// new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, +// new [] {ALL,NONE}, +// new [] {ALL,NONE}, +// new [] {ALL}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_566/*Iron Helmet*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_530("4%")/*All damage increased by 4%*/, //tr +// onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.04f), +// onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.04f), +// rarity = 3, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Helmet, +// icon = Res.ResourceLoader.GetTexture(91), +// }; +// new BaseItem(new Stat[][] +// { +// new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, +// new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, +// new [] {ALL,NONE}, +// new [] {ALL,NONE}, +// new [] {ALL}, +// new [] {ALL}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_567/*Steel Helmet*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_532("5%")/*All damage increased by 5%*/, //tr +// onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.05f), +// onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.05f), +// rarity = 4, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Helmet, +// icon = Res.ResourceLoader.GetTexture(91), +// }; +// new BaseItem(new Stat[][] +// { +// new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, +// new [] {ALL,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, +// new [] {ALL,NONE}, +// new [] {ALL,NONE}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_568/*Armored Hood*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_534("6%")/*All damage increased by 6%*/, //tr +// onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.06f), +// onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.06f), +// rarity = 5, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Helmet, +// icon = Res.ResourceLoader.GetTexture(91), +// }; + +// new BaseItem(new Stat[][] +// { +// new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, +// new [] {MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, +// new [] {ALL,NONE}, +// new [] {ALL,NONE}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_569/*Mystery Helmet*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_536("10%")/*All damage increased by 10%*/, //tr +// onEquipCallback = () => ModdedPlayer.Stats.allDamage.Add(0.1f), +// onUnequipCallback = () => ModdedPlayer.Stats.allDamage.Sub(0.1f), +// rarity = 6, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Helmet, +// icon = Res.ResourceLoader.GetTexture(91), +// }; + +// new BaseItem(new Stat[][] +// { +// new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, +// new [] {MELEE_DMG_FROM_STR,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, +// new [] {MELEE_DAMAGE_INCREASE,MELEE_WEAPON_RANGE,BASE_MELEE_DAMAGE,STRENGTH}, +// new [] {MELEE_DAMAGE_INCREASE,ATTACKSPEED,BASE_MELEE_DAMAGE,STRENGTH}, +// new [] {CRIT_CHANCE,CRIT_DAMAGE,}, +// new [] {MELEE_DAMAGE_INCREASE,NONE,MAX_LIFE,MAX_LIFE_MULT}, +// new [] {STRENGTH,VITALITY,INTELLIGENCE,ATTACKSPEED,ATTACK_COST_REDUCTION,COOLDOWN_REDUCTION}, +// new [] {ALL}, +// new [] {ALL,NONE}, +// new [] {ALL,NONE}, +// new [] {ALL}, +// new [] {ARMOR,DAMAGE_REDUCTION}, +// new [] {EMPTYSOCKET,NONE}, +// new [] {EMPTYSOCKET,NONE}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_570/*Yorium's Gaze*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_571("30%")/*SET PIECE. Melee weapon range is increased by 30%, attack cost in stamina is halved.*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_572(15, "35%", 15, "5%")/*Set Piece:\n2 Pieces- Berserk does not apply exhaustion when it ends\n3 Pieces - Berserk duration is increased by 15 seconds\n4 Pieces - Each second of berserk being in effect increases damage by 35%.\n5 Pieces - For the first 15 seconds of Berserk attack speed increases by 30% per second, and lasts till the end of the spell's duration.*/, //tr +// onEquipCallback = () => BerserkSet.Equip(), +// onUnequipCallback = () => BerserkSet.Unequip(), +// rarity = 7, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Helmet, +// icon = Res.ResourceLoader.GetTexture(91), +// }; +// new BaseItem(new Stat[][] +// { +// new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, +// new [] {MELEE_DMG_FROM_STR,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, +// new [] {MELEE_DAMAGE_INCREASE,MELEE_WEAPON_RANGE,BASE_MELEE_DAMAGE,STRENGTH}, +// new [] {MELEE_DAMAGE_INCREASE,ATTACKSPEED,BASE_MELEE_DAMAGE,STRENGTH}, +// new [] {MAX_LIFE}, +// new [] {MELEE_DAMAGE_INCREASE,MAX_LIFE,MAX_LIFE_MULT}, +// new [] {STRENGTH,VITALITY,INTELLIGENCE,ATTACKSPEED,ATTACK_COST_REDUCTION,COOLDOWN_REDUCTION}, +// new [] {ALL}, +// new [] {ALL,NONE}, +// new [] {ALL,NONE}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ARMOR,DAMAGE_REDUCTION,ALL_ATTRIBUTES}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_573/*Yorium's Ruthlessness*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_571("30%")/*SET PIECE. Melee weapon range is increased by 30%, attack cost in stamina is halved.*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_572(15, "35%", 15, "5%")/*Set Piece:\n2 Pieces- Berserk does not apply exhaustion when it ends\n3 Pieces - Berserk duration is increased by 15 seconds\n4 Pieces - Each second of berserk being in effect increases damage by 35%.\n5 Pieces - For the first 15 seconds of Berserk attack speed increases by 30% per second, and lasts till the end of the spell's duration.*/, //tr +// onEquipCallback = () => BerserkSet.Equip(), +// onUnequipCallback = () => BerserkSet.Unequip(), +// rarity = 7, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.ChestArmor, +// icon = Res.ResourceLoader.GetTexture(96), +// }; + +// new BaseItem(new Stat[][] +// { +// new [] {ALL,}, +// new [] {MELEE_DMG_FROM_STR,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, +// new [] {MELEE_DAMAGE_INCREASE,MELEE_WEAPON_RANGE,BASE_MELEE_DAMAGE,STRENGTH}, +// new [] {MELEE_DAMAGE_INCREASE,ATTACKSPEED,BASE_MELEE_DAMAGE,STRENGTH}, +// new [] {MAX_LIFE}, +// new [] {MELEE_DAMAGE_INCREASE,MAX_LIFE,MAX_LIFE_MULT}, +// new [] {STRENGTH,VITALITY,INTELLIGENCE,ATTACKSPEED,ATTACK_COST_REDUCTION,COOLDOWN_REDUCTION}, +// new [] {ALL}, +// new [] {ALL,NONE}, +// new [] {ALL,NONE}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ARMOR,DAMAGE_REDUCTION,ALL_ATTRIBUTES}, +// new [] {EMPTYSOCKET,NONE}, +// new [] {EMPTYSOCKET,NONE}, +// new [] {EMPTYSOCKET,NONE}, + +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_574/*Yorium's Burden*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_571("30%")/*SET PIECE. Melee weapon range is increased by 30%, attack cost in stamina is halved.*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_572(15, "35%", 15, "5%")/*Set Piece:\n2 Pieces- Berserk does not apply exhaustion when it ends\n3 Pieces - Berserk duration is increased by 15 seconds\n4 Pieces - Each second of berserk being in effect increases damage by 35%.\n5 Pieces - For the first 15 seconds of Berserk attack speed increases by 30% per second, and lasts till the end of the spell's duration.*/, //tr +// onEquipCallback = () => BerserkSet.Equip(), +// onUnequipCallback = () => BerserkSet.Unequip(), +// rarity = 7, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.ShoulderArmor, +// icon = Res.ResourceLoader.GetTexture(95), +// }; +// new BaseItem(new Stat[][] +// { +// new [] {ALL,}, +// new [] {MELEE_DMG_FROM_STR,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, +// new [] {MELEE_DAMAGE_INCREASE,MELEE_WEAPON_RANGE,BASE_MELEE_DAMAGE,STRENGTH}, +// new [] {MELEE_DAMAGE_INCREASE,ATTACKSPEED,BASE_MELEE_DAMAGE,STRENGTH}, +// new [] {MAX_LIFE}, +// new [] {MELEE_DAMAGE_INCREASE,MAX_LIFE,MAX_LIFE_MULT}, +// new [] {STRENGTH,VITALITY,INTELLIGENCE,ATTACKSPEED,ATTACK_COST_REDUCTION,COOLDOWN_REDUCTION}, +// new [] {ALL}, +// new [] {ALL,NONE}, +// new [] {ALL,NONE}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ARMOR,DAMAGE_REDUCTION,ALL_ATTRIBUTES}, +// new [] {EMPTYSOCKET,NONE}, +// new [] {EMPTYSOCKET,NONE}, +// new [] {EMPTYSOCKET,NONE}, + +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_575/*Yorium's Resolve*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_571("30%")/*SET PIECE. Melee weapon range is increased by 30%, attack cost in stamina is halved.*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_572(15, "35%", 15, "5%")/*Set Piece:\n2 Pieces- Berserk does not apply exhaustion when it ends\n3 Pieces - Berserk duration is increased by 15 seconds\n4 Pieces - Each second of berserk being in effect increases damage by 35%.\n5 Pieces - For the first 15 seconds of Berserk attack speed increases by 30% per second, and lasts till the end of the spell's duration.*/, //tr +// onEquipCallback = () => BerserkSet.Equip(), +// onUnequipCallback = () => BerserkSet.Unequip(), +// rarity = 7, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Bracer, +// icon = Res.ResourceLoader.GetTexture(93), +// }; +// new BaseItem(new Stat[][] +// { +// new [] {MOVEMENT_SPEED}, +// new [] {MELEE_DMG_FROM_STR,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, +// new [] {MELEE_DAMAGE_INCREASE,MELEE_WEAPON_RANGE,BASE_MELEE_DAMAGE,STRENGTH}, +// new [] {MELEE_DAMAGE_INCREASE,ATTACKSPEED,BASE_MELEE_DAMAGE,STRENGTH}, +// new [] {MAX_LIFE}, +// new [] {MELEE_DAMAGE_INCREASE,MAX_LIFE,MAX_LIFE_MULT}, +// new [] {STRENGTH,VITALITY,INTELLIGENCE,ATTACKSPEED,ATTACK_COST_REDUCTION,COOLDOWN_REDUCTION}, +// new [] {ALL}, +// new [] {ALL,NONE}, +// new [] {ALL,NONE}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ARMOR,DAMAGE_REDUCTION,ALL_ATTRIBUTES}, +// new [] {EMPTYSOCKET,NONE}, +// new [] {EMPTYSOCKET,NONE}, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_576/*Atomic Augmentation*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_571("30%")/*SET PIECE. Melee weapon range is increased by 30%, attack cost in stamina is halved.*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_572(15, "35%", 15, "5%")/*Set Piece:\n2 Pieces- Berserk does not apply exhaustion when it ends\n3 Pieces - Berserk duration is increased by 15 seconds\n4 Pieces - Each second of berserk being in effect increases damage by 35%.\n5 Pieces - For the first 15 seconds of Berserk attack speed increases by 30% per second, and lasts till the end of the spell's duration.*/, //tr +// onEquipCallback = () => BerserkSet.Equip(), +// onUnequipCallback = () => BerserkSet.Unequip(), +// rarity = 7, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Boot, +// icon = Res.ResourceLoader.GetTexture(85), +// }; +// new BaseItem(new Stat[][] +// { +// new [] {ALL,}, +// new [] {MELEE_DMG_FROM_STR,MAX_ENERGY_FROM_AGILITY,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, +// new [] {MELEE_DAMAGE_INCREASE,MELEE_WEAPON_RANGE,BASE_MELEE_DAMAGE,STRENGTH}, +// new [] {MELEE_DAMAGE_INCREASE,ATTACKSPEED,BASE_MELEE_DAMAGE,STRENGTH}, +// new [] {MAX_LIFE}, +// new [] {MELEE_DAMAGE_INCREASE,MAX_LIFE,MAX_LIFE_MULT}, +// new [] {STRENGTH,VITALITY,INTELLIGENCE,ATTACKSPEED,ATTACK_COST_REDUCTION,COOLDOWN_REDUCTION}, +// new [] {ALL}, +// new [] {ALL,NONE}, +// new [] {ALL,NONE}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ARMOR,DAMAGE_REDUCTION,ALL_ATTRIBUTES}, +// new [] {EMPTYSOCKET,NONE}, +// new [] {EMPTYSOCKET,NONE}, +// new [] {EMPTYSOCKET,NONE}, + +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_577/*Yorium's Assault*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_571("30%")/*SET PIECE. Melee weapon range is increased by 30%, attack cost in stamina is halved.*/, //tr +// description = Translations.ItemDatabase_ItemDefinitions_572(15, "35%", 15, "5%")/*Set Piece:\n2 Pieces- Berserk does not apply exhaustion when it ends\n3 Pieces - Berserk duration is increased by 15 seconds\n4 Pieces - Each second of berserk being in effect increases damage by 35%.\n5 Pieces - For the first 15 seconds of Berserk attack speed increases by 30% per second, and lasts till the end of the spell's duration.*/, //tr +// onEquipCallback = () => BerserkSet.Equip(), +// onUnequipCallback = () => BerserkSet.Unequip(), +// rarity = 7, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Glove, +// icon = Res.ResourceLoader.GetTexture(86), +// }; +// new BaseItem(new Stat[][] +// { +// new [] {ALL,EXP_GAIN_MULT,LOOT_QUANTITY}, +// new [] {MELEE_DMG_FROM_STR,MAX_ENERGY_FROM_AGILITY,RANGED_DMG_FROM_AGI,MAX_HEALTH_FROM_VITALITY,SPELL_DMG_FROM_INT}, +// new [] {MELEE_DAMAGE_INCREASE,BASE_MELEE_DAMAGE,STRENGTH}, +// new [] {RANGED_DAMAGE_INCREASE,BASE_RANGED_DAMAGE,AGILITY}, +// new [] {SPELL_DAMAGE_MULTIPLIER,BASE_SPELL_DAMAGE,INTELLIGENCE}, +// new [] {ALL}, +// new [] {MAX_LIFE}, +// new [] {MAX_LIFE,MAX_LIFE_MULT,MAX_ENERGY,MAX_ENERGY_MULT}, +// new [] {STRENGTH,VITALITY,INTELLIGENCE,AGILITY,ALL_ATTRIBUTES,ATTACKSPEED,ATTACK_COST_REDUCTION,SPELL_COST_REDUCTION,COOLDOWN_REDUCTION}, +// new [] {ALL}, +// new [] {ALL,NONE}, +// new [] {ALL,NONE}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ARMOR,DAMAGE_REDUCTION,ALL_ATTRIBUTES,NONE}, + +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_578/*Undying Promise*/, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_579(1)/*Resist lethal damage on a 1 minute cooldown*/, //tr +// onEquipCallback = () => COTFEvents.Instance.OnTakeLethalDamage.AddListener(UniqueItemFunctions.ResistDeath), +// onUnequipCallback = () => COTFEvents.Instance.OnTakeLethalDamage.RemoveListener(UniqueItemFunctions.ResistDeath), +// rarity = 7, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Pants, +// icon = Res.ResourceLoader.GetTexture(87), +// }; +// new BaseItem(new Stat[][] +// { +// new [] {CRIT_DAMAGE}, +// new [] {STRENGTH,VITALITY,INTELLIGENCE,AGILITY }, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ARMOR,DAMAGE_REDUCTION }, +// new [] {MAX_LIFE}, + +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_609, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_610, //tr +// rarity = 7, +// minLevel = 20, +// maxLevel = 28, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Pants, +// icon = Res.ResourceLoader.GetTexture(87), +// onEquipCallback = () => { ModdedPlayer.Stats.spell_frenzy_active_critChance.Add(0.05f); ModdedPlayer.Stats.spell_frenzyAtkSpeed.Add(0.03f); }, +// onUnequipCallback = () => { ModdedPlayer.Stats.spell_frenzy_active_critChance.Sub(0.05f); ModdedPlayer.Stats.spell_frenzyAtkSpeed.Add(0.03f); }, +// }; + + + +// new BaseItem(new Stat[][] +// { +// new [] {BASE_MELEE_DAMAGE,BASE_SPELL_DAMAGE}, +// new [] {BASE_MELEE_DAMAGE,BASE_SPELL_DAMAGE}, +// new [] {STRENGTH,VITALITY,INTELLIGENCE,AGILITY }, +// new [] {MELEE_DAMAGE_INCREASE, SPELL_DAMAGE_MULTIPLIER }, +// new [] {ATTACKSPEED}, +// new [] {CRIT_CHANCE}, +// new [] {CRIT_DAMAGE}, +// new [] {MELEE_DMG_FROM_STR}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {BLOCK, NONE}, +// new [] {MAX_LIFE}, + +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_611, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_612("300%"), //tr +// rarity = 7, +// minLevel = 6, +// maxLevel = 9, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Weapon, +// subtype = ItemDefinition.ItemSubtype.GreatSword, +// icon = Res.ResourceLoader.GetTexture(88), +// onEquipCallback = () => ModdedPlayer.Stats.spell_berserkDamage.Add(3f), +// onUnequipCallback = () => ModdedPlayer.Stats.spell_berserkDamage.Sub(3f), +// }.statSlots[0][0].multipier = 5; +// new BaseItem(new Stat[][] +// { +// new [] {BASE_MELEE_DAMAGE,BASE_SPELL_DAMAGE}, +// new [] {BASE_MELEE_DAMAGE, NONE}, +// new [] {STRENGTH,VITALITY,INTELLIGENCE,AGILITY }, +// new [] {MELEE_DAMAGE_INCREASE, SPELL_DAMAGE_MULTIPLIER }, +// new [] {ATTACKSPEED}, +// new [] {CRIT_CHANCE}, +// new [] {CRIT_DAMAGE}, +// new [] {MELEE_DMG_FROM_STR}, +// new [] {STRENGTH}, +// new [] {ALL}, +// new [] {ALL}, + +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_613, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_612("100%"), //tr +// rarity = 6, +// minLevel = 6, +// maxLevel = 9, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Weapon, +// subtype = ItemDefinition.ItemSubtype.GreatSword, +// icon = Res.ResourceLoader.GetTexture(88), +// onEquipCallback = () => ModdedPlayer.Stats.spell_berserkDamage.Add(1f), +// onUnequipCallback = () => ModdedPlayer.Stats.spell_berserkDamage.Sub(1f), +// }.statSlots[0][0].multipier = 2; + +// new BaseItem(new Stat[][] +// { +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {BASE_SPELL_DAMAGE,BASE_RANGED_DAMAGE,BASE_MELEE_DAMAGE, NONE}, +// new [] {SPELL_DMG_FROM_INT,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,DAMAGE_REDUCTION}, +// new [] {ALL_ATTRIBUTES,AGILITY,STRENGTH,INTELLIGENCE,VITALITY}, + +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_614, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_615("10%"), //tr +// rarity = 5, +// minLevel = 6, +// maxLevel = 9, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Amulet, +// icon = Res.ResourceLoader.GetTexture(100), +// onEquipCallback = () => +// { +// ModdedPlayer.Stats.spell_berserkAttackSpeed.Add(0.1f); +// ModdedPlayer.Stats.spell_berserkMOVEMENT_SPEED.Add(0.1f); +// }, +// onUnequipCallback = () => +// { +// ModdedPlayer.Stats.spell_berserkAttackSpeed.Sub(0.1f); +// ModdedPlayer.Stats.spell_berserkMOVEMENT_SPEED.Sub(0.1f); +// }, +// }; +// new BaseItem(new Stat[][] +// { +// new [] {STRENGTH,VITALITY,AGILITY,ALL_ATTRIBUTES,INTELLIGENCE}, +// new [] {MAX_ENERGY_FROM_AGILITY,MELEE_DMG_FROM_STR,SPELL_DMG_FROM_INT,RANGED_DMG_FROM_AGI,MAX_HEALTH_FROM_VITALITY}, +// new [] {ARMOR,DAMAGE_REDUCTION}, +// new [] { CRIT_CHANCE, CRIT_DAMAGE}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {ALL}, +// new [] {BASE_SPELL_DAMAGE,BASE_RANGED_DAMAGE,BASE_MELEE_DAMAGE, NONE}, +// new [] {SPELL_DMG_FROM_INT,MELEE_DMG_FROM_STR,RANGED_DMG_FROM_AGI,DAMAGE_REDUCTION}, + +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_616, //tr +// uniqueStat = $"Berserk increases melee and ranged damage by 100%, increases movement speed by 30% and attack speed by 15%", //tr +// rarity = 7, +// minLevel = 60, +// maxLevel = 62, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Amulet, +// icon = Res.ResourceLoader.GetTexture(100), +// onEquipCallback = () => +// { +// ModdedPlayer.Stats.meleeIncreasedDmg.Multiply(2f); +// ModdedPlayer.Stats.rangedIncreasedDmg.Multiply(2f); +// ModdedPlayer.Stats.spell_berserkAttackSpeed.Add(0.15f); +// ModdedPlayer.Stats.spell_berserkMOVEMENT_SPEED.Add(0.3f); +// }, +// onUnequipCallback = () => +// { +// ModdedPlayer.Stats.meleeIncreasedDmg.Divide(2f); +// ModdedPlayer.Stats.rangedIncreasedDmg.Divide(2f); +// ModdedPlayer.Stats.spell_berserkAttackSpeed.Sub(0.15f); +// ModdedPlayer.Stats.spell_berserkMOVEMENT_SPEED.Sub(0.3f); +// }, +// }; +// new BaseItem(new Stat[][] +// { +// new[] { LIFE_REGEN_BASE }, +// new[] { ARMOR, NONE, ALL_RECOVERY }, +// new[] { ALL}, +// new[] { SPELL_DMG_FROM_INT }, +// new[] { SPELL_COST_REDUCTION,SPELL_COST_TO_STAMINA,ARMOR,ALL_ATTRIBUTES}, +// new[] { BASE_SPELL_DAMAGE, SPELL_DAMAGE_MULTIPLIER, INTELLIGENCE, ALL_ATTRIBUTES }, +// new[] { BASE_SPELL_DAMAGE, SPELL_DAMAGE_MULTIPLIER, INTELLIGENCE, DAMAGE_REDUCTION }, +// new[] { VITALITY, MAX_HEALTH_FROM_VITALITY, MAX_LIFE, MAX_LIFE_MULT, LIFE_REGEN_BASE, LIFE_ON_HIT }, +// new[] { SPELL_COST_REDUCTION, COOLDOWN_REDUCTION, CRIT_CHANCE, CRIT_DAMAGE, ARMOR,MAX_HEALTH_FROM_VITALITY }, +// new[] { DAMAGE_REDUCTION, MAX_ENERGY_MULT, LIFE_REGEN_MULT }, +// new[] { ENERGY_REGEN_BASE, MAX_ENERGY_MULT, MAX_ENERGY_FROM_AGILITY }, +// new[] { INTELLIGENCE, STAMINA_REGEN_BASE, STAMINA_AND_ENERGY_REGEN_MULT, ALL_ATTRIBUTES, ALL_RECOVERY }, +// new[] { ENERGY_ON_HIT, ENERGY_REGEN_BASE, MAX_LIFE, MASSACRE_DURATION, LOOT_QUANTITY, EXPLOSION_DAMAGE }, +// }) +// { +// name = Translations.ItemDatabase_ItemDefinitions_617, //tr +// uniqueStat = Translations.ItemDatabase_ItemDefinitions_618("100%", "40%"),//tr +// rarity = 7, +// minLevel = 1, +// maxLevel = 3, +// canConsume = false, +// stackSize = 1, +// type = ItemDefinition.ItemType.Bracer, +// icon = Res.ResourceLoader.GetTexture(93), +// onEquipCallback = () => +// { +// ModdedPlayer.Stats.spell_healingDomeCooldownRate.Add(1.0f); +// ModdedPlayer.Stats.spell_healingDomeSpellCostReduction.Sub(0.4f); +// }, +// onUnequipCallback = () => +// { +// ModdedPlayer.Stats.spell_healingDomeCooldownRate.Sub(1.0f); +// ModdedPlayer.Stats.spell_healingDomeSpellCostReduction.Add(0.4f); +// }, +// }; +// } } } \ No newline at end of file diff --git a/Items/ItemDefinitions/ItemDefinition.cs b/Items/ItemDefinitions/ItemDefinition.cs index 90999a9..23b3b14 100644 --- a/Items/ItemDefinitions/ItemDefinition.cs +++ b/Items/ItemDefinitions/ItemDefinition.cs @@ -72,50 +72,6 @@ public ItemDefinition() } - - private void SetDropFromEverything() - { - //Lootable from everything - lootTable = (EnemyProgression.Enemy)0b1111111111111111111111; - } - - //Sets the item to drop from only a specyfic group of enemies - public void SetDropOnlyArmsy() - { - lootTable = EnemyProgression.Enemy.RegularArmsy | EnemyProgression.Enemy.PaleArmsy; - } - - public void SetDropOnlyVags() - { - lootTable = EnemyProgression.Enemy.PaleVags | EnemyProgression.Enemy.RegularVags; - } - - public void SetDropOnlyCow() - { - lootTable = EnemyProgression.Enemy.Cowman; - } - - public void SetDropOnlyBaby() - { - lootTable = EnemyProgression.Enemy.Baby; - } - - public void SetDropOnlyMegan() - { - lootTable = EnemyProgression.Enemy.Megan; - } - - public void SetDropOnlyCreepy() - { - lootTable = EnemyProgression.Enemy.RegularArmsy | EnemyProgression.Enemy.PaleArmsy | EnemyProgression.Enemy.RegularVags | EnemyProgression.Enemy.PaleVags | EnemyProgression.Enemy.Cowman | EnemyProgression.Enemy.Baby | EnemyProgression.Enemy.Girl | EnemyProgression.Enemy.Worm | EnemyProgression.Enemy.Megan; - } - - public void SetDropOnlyCannibals() - { - lootTable = - EnemyProgression.Enemy.NormalMale | EnemyProgression.Enemy.NormalLeaderMale | EnemyProgression.Enemy.NormalFemale | EnemyProgression.Enemy.NormalSkinnyMale | EnemyProgression.Enemy.NormalSkinnyFemale | EnemyProgression.Enemy.PaleMale | EnemyProgression.Enemy.PaleSkinnyMale | EnemyProgression.Enemy.PaleSkinnedMale | EnemyProgression.Enemy.PaleSkinnedSkinnyMale | EnemyProgression.Enemy.PaintedMale | EnemyProgression.Enemy.PaintedLeaderMale | EnemyProgression.Enemy.PaintedFemale | EnemyProgression.Enemy.Fireman; - } - public GlobalSFX.SFX GetInvSound() { switch (type) diff --git a/Items/ItemDefinitions/Materials.cs b/Items/ItemDefinitions/Materials.cs new file mode 100644 index 0000000..eb158de --- /dev/null +++ b/Items/ItemDefinitions/Materials.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Security.Policy; +using System.Text; + +using ChampionsOfForest.Items.ItemTemplates; + +using static ChampionsOfForest.Items.ItemDatabase.Stat; + +namespace ChampionsOfForest.Items +{ + + public static partial class ItemDatabase + { + + public static void AddMaterials() + { + + } + } +} diff --git a/Items/ItemDefinitions/Other.cs b/Items/ItemDefinitions/Other.cs index 3a7b402..9ee33d7 100644 --- a/Items/ItemDefinitions/Other.cs +++ b/Items/ItemDefinitions/Other.cs @@ -21,7 +21,7 @@ public static void AddConsumables() //Rarity 0 (White) //------------------------------------------------------ - new Consumables() + new Consumable(); diff --git a/Items/ItemDefinitions/Quivers.cs b/Items/ItemDefinitions/Quivers.cs index 59cce50..f5fff52 100644 --- a/Items/ItemDefinitions/Quivers.cs +++ b/Items/ItemDefinitions/Quivers.cs @@ -21,7 +21,6 @@ public static void AddQuivers() new Quiver() .RangedStatSlot(1) - //.StatSlot(new Stat[] {}) .Name("") .Description("") .Rarity(0); @@ -32,7 +31,6 @@ public static void AddQuivers() new Quiver() .RangedStatSlot(1) - //.StatSlot(new Stat[] {}) .DefaultStatSlot(1) .Name("") .Description("") @@ -44,7 +42,6 @@ public static void AddQuivers() new Quiver() .RangedStatSlot(2) - //.StatSlot(new Stat[] {}) .DefaultStatSlot(1) .Name("") .Description("") @@ -56,7 +53,6 @@ public static void AddQuivers() new Quiver() .RangedStatSlot(2) - //.StatSlot(new Stat[] {}) .DefaultStatSlot(2) .Name("") .Description("") @@ -68,7 +64,6 @@ public static void AddQuivers() new Quiver() .RangedStatSlot(3) - //.StatSlot(new Stat[] {}) .DefaultStatSlot(2) .Name("") .Description("") diff --git a/Items/ItemDefinitions/Rings.cs b/Items/ItemDefinitions/Rings.cs index c122476..f0d842d 100644 --- a/Items/ItemDefinitions/Rings.cs +++ b/Items/ItemDefinitions/Rings.cs @@ -23,8 +23,7 @@ public static void AddRings() new Ring() .RingStatSlot(1) - //.StatSlot(new Stat[] {}) - .DefaultStatSlot(0) + //.DefaultStatSlot(0) .Name("") .Description("") .Rarity(0); @@ -36,7 +35,6 @@ public static void AddRings() new Ring() .RingStatSlot(1) - //.StatSlot(new Stat[] {}) .DefaultStatSlot(1) .Name("") .Description("") @@ -47,8 +45,7 @@ public static void AddRings() //------------------------------------------------------ new Ring() - .RingStatSlot(1) - //.StatSlot(new Stat[] {}) + .RingStatSlot(2) .DefaultStatSlot(1) .Name("") .Description("") @@ -59,9 +56,8 @@ public static void AddRings() //------------------------------------------------------ new Ring() - .RingStatSlot(2) - //.StatSlot(new Stat[] {}) - .DefaultStatSlot(2) + .RingStatSlot(3) + .DefaultStatSlot(1) .Name("") .Description("") .Rarity(3); @@ -71,9 +67,8 @@ public static void AddRings() //------------------------------------------------------ new Ring() - .RingStatSlot(3) - //.StatSlot(new Stat[] {}) - .DefaultStatSlot(3) + .RingStatSlot(4) + .DefaultStatSlot(1) .Name("") .Description("") .Rarity(4); diff --git a/Items/ItemDefinitions/SpellScroll.cs b/Items/ItemDefinitions/SpellScrolls.cs similarity index 97% rename from Items/ItemDefinitions/SpellScroll.cs rename to Items/ItemDefinitions/SpellScrolls.cs index 512ce74..0324772 100644 --- a/Items/ItemDefinitions/SpellScroll.cs +++ b/Items/ItemDefinitions/SpellScrolls.cs @@ -13,7 +13,7 @@ namespace ChampionsOfForest.Items public static partial class ItemDatabase { - public static void AddSpellScroll() + public static void AddSpellScrolls() { //------------------------------------------------------ diff --git a/Items/ItemTemplates.cs b/Items/ItemTemplates.cs index 6e79d4d..56d1fd9 100644 --- a/Items/ItemTemplates.cs +++ b/Items/ItemTemplates.cs @@ -189,10 +189,10 @@ public ItemTemplateBuilder Rarity(Rarity r) } public ItemTemplateBuilder Icon(int iconid) - { + { icon = Res.ResourceLoader.GetTexture(iconid); // Texture2D <- int - return this; - } + return this; + } private readonly Stat[] magicStatIds = new Stat[] { @@ -290,8 +290,64 @@ public ItemTemplateBuilder RecoveryStatSlot(int n = 1, float probability = 1) statSlots.Add(new StatSlot(recoveryStats, probability)); return this; } - } + + public ItemTemplateBuilder SetDropFromEverything() + { + //Lootable from everything + lootTable = (EnemyProgression.Enemy)0b11111111111111111111111; + return this; + } + + //Sets the item to drop from only a specyfic group of enemies + public ItemTemplateBuilder SetDropArmsy() + { + lootTable = EnemyProgression.Enemy.RegularArmsy | EnemyProgression.Enemy.PaleArmsy; + return this; + } + + public ItemTemplateBuilder SetDropVags() + { + lootTable = EnemyProgression.Enemy.PaleVags | EnemyProgression.Enemy.RegularVags; + return this; + } + + public ItemTemplateBuilder SetDropCow() + { + lootTable |= EnemyProgression.Enemy.Cowman; + return this; + } + + public ItemTemplateBuilder SetDropBaby() + { + lootTable |= EnemyProgression.Enemy.Baby; + return this; + } + + public ItemTemplateBuilder SetDropMegan() + { + lootTable |= EnemyProgression.Enemy.Megan; + return this; + } + + public ItemTemplateBuilder SetDropCreepy() + { + lootTable |= EnemyProgression.Enemy.RegularArmsy | EnemyProgression.Enemy.PaleArmsy | EnemyProgression.Enemy.RegularVags | EnemyProgression.Enemy.PaleVags | EnemyProgression.Enemy.Cowman | EnemyProgression.Enemy.Baby | EnemyProgression.Enemy.Girl | EnemyProgression.Enemy.Worm | EnemyProgression.Enemy.Megan; + return this; + } + + public ItemTemplateBuilder SetDropCannibals() + { + lootTable |= + EnemyProgression.Enemy.NormalMale | EnemyProgression.Enemy.NormalLeaderMale | EnemyProgression.Enemy.NormalFemale | EnemyProgression.Enemy.NormalSkinnyMale | EnemyProgression.Enemy.NormalSkinnyFemale | EnemyProgression.Enemy.PaleMale | EnemyProgression.Enemy.PaleSkinnyMale | EnemyProgression.Enemy.PaleSkinnedMale | EnemyProgression.Enemy.PaleSkinnedSkinnyMale | EnemyProgression.Enemy.PaintedMale | EnemyProgression.Enemy.PaintedLeaderMale | EnemyProgression.Enemy.PaintedFemale | EnemyProgression.Enemy.Fireman; + return this; + } + public ItemTemplateBuilder Weight(int w) + { + lootWeight = w; + return this; + } + } public class Greatsword : ItemTemplateBuilder { public Greatsword() @@ -625,7 +681,7 @@ public Amulet() Register(); } - public Amulet RingStatSlot(int n = 1, float probability = 1) + public Amulet AmuletStatSlot(int n = 1, float probability = 1) { for (int i = 0; i < n; i++) statSlots.Add(new StatSlot(amuletStats, probability)); @@ -705,9 +761,9 @@ public SpellScroll() } } - public class Consumables : ItemTemplateBuilder + public class Consumable : ItemTemplateBuilder { - public Consumables() + public Consumable() { type = ItemType.Other; LevelRequirement(10); diff --git a/Items/StatActions.cs b/Items/StatActions.cs index 667c7f2..c8855fc 100644 --- a/Items/StatActions.cs +++ b/Items/StatActions.cs @@ -327,12 +327,12 @@ public static void RemoveHealingMultipier(float f) public static void AddMoveSpeed(float f) { - ModdedPlayer.Stats.movementSpeed.Add(f); + ModdedPlayer.Stats.mOVEMENT_SPEED.Add(f); } public static void RemoveMoveSpeed(float f) { - ModdedPlayer.Stats.movementSpeed.Sub(f); + ModdedPlayer.Stats.mOVEMENT_SPEED.Sub(f); } public static void AddJump(float f) diff --git a/Player/BuffDataBase.cs b/Player/BuffDataBase.cs index ee72975..9329fe3 100644 --- a/Player/BuffDataBase.cs +++ b/Player/BuffDataBase.cs @@ -171,7 +171,7 @@ public static void FillBuffList() ModdedPlayer.Stats.attackSpeed.valueMultiplicative /= 1 + f * ModdedPlayer.Stats.spell_frenzyAtkSpeed; ModdedPlayer.Stats.allDamage.valueMultiplicative /= 1 + f * ModdedPlayer.Stats.spell_frenzyDmg; if (ModdedPlayer.Stats.spell_frenzyMS) - ModdedPlayer.Stats.movementSpeed.valueMultiplicative /= 1 + f * 0.05f; + ModdedPlayer.Stats.mOVEMENT_SPEED.valueMultiplicative /= 1 + f * 0.05f; ModdedPlayer.Stats.spell_frenzyStacks.valueAdditive = 0; }, f => @@ -179,7 +179,7 @@ public static void FillBuffList() ModdedPlayer.Stats.attackSpeed.valueMultiplicative *= 1 + f * ModdedPlayer.Stats.spell_frenzyAtkSpeed; ModdedPlayer.Stats.allDamage.valueMultiplicative *= 1 + f * ModdedPlayer.Stats.spell_frenzyDmg; if (ModdedPlayer.Stats.spell_frenzyMS) - ModdedPlayer.Stats.movementSpeed.valueMultiplicative *= 1 + f * 0.05f; + ModdedPlayer.Stats.mOVEMENT_SPEED.valueMultiplicative *= 1 + f * 0.05f; }) { DisplayAsPercent = false diff --git a/Player/Main Menu/MainMenu_Guide.cs b/Player/Main Menu/MainMenu_Guide.cs index d781085..60c127f 100644 --- a/Player/Main Menu/MainMenu_Guide.cs +++ b/Player/Main Menu/MainMenu_Guide.cs @@ -459,7 +459,7 @@ private void DrawGuide() Header(Translations.MainMenu_Guide_107); Space(10); - Stat(Translations.MainMenu_Guide_109, ModdedPlayer.Stats.movementSpeed.ToString(), Translations.MainMenu_Guide_108(FPCharacterMod.basewalkSpeed, FPCharacterMod.basewalkSpeed * ModdedPlayer.Stats.movementSpeed)); + Stat(Translations.MainMenu_Guide_109, ModdedPlayer.Stats.mOVEMENT_SPEED.ToString(), Translations.MainMenu_Guide_108(FPCharacterMod.basewalkSpeed, FPCharacterMod.basewalkSpeed * ModdedPlayer.Stats.mOVEMENT_SPEED)); Stat(Translations.MainMenu_Guide_111, ModdedPlayer.Stats.jumpPower.ToString(), Translations.MainMenu_Guide_111); Stat(Translations.MainMenu_Guide_113, (1 / ModdedPlayer.Stats.perk_hungerRate).ToString("P"), Translations.MainMenu_Guide_113); Stat(Translations.MainMenu_Guide_115, (1 / ModdedPlayer.Stats.perk_thirstRate).ToString("P"), Translations.MainMenu_Guide_115); diff --git a/Player/ModdedPlayer/ModdedPlayer.ModdedPlayerStats.cs b/Player/ModdedPlayer/ModdedPlayer.ModdedPlayerStats.cs index 855793e..b4748bb 100644 --- a/Player/ModdedPlayer/ModdedPlayer.ModdedPlayerStats.cs +++ b/Player/ModdedPlayer/ModdedPlayer.ModdedPlayerStats.cs @@ -30,7 +30,7 @@ public class ModdedPlayerStats public readonly MultiplicativePlayerStat cooldown, cooldownRate; public readonly MultiOperationPlayerStat allDamage; public readonly MultiOperationPlayerStat attackSpeed; - public readonly MultiOperationPlayerStat movementSpeed; + public readonly MultiOperationPlayerStat mOVEMENT_SPEED; public readonly AdditivePlayerStat critChance; public readonly AdditivePlayerStat critDamage; @@ -248,7 +248,7 @@ public class ModdedPlayerStats public readonly AdditivePlayerStat spell_berserkDuration; public readonly AdditivePlayerStat spell_berserkDamage; - public readonly AdditivePlayerStat spell_berserkMovementSpeed; + public readonly AdditivePlayerStat spell_berserkMOVEMENT_SPEED; public readonly AdditivePlayerStat spell_berserkAttackSpeed; public readonly AdditivePlayerStat spell_berserkMaxHP; @@ -349,7 +349,7 @@ public ModdedPlayerStats() this.cooldownRate = new MultiplicativePlayerStat(1, multfloat, dividefloat, "P1"); this.allDamage = new MultiOperationPlayerStat(1, 1, addfloat, substractfloat, multfloat, dividefloat, "P0"); this.attackSpeed = new MultiOperationPlayerStat(1, 1, addfloat, substractfloat, multfloat, dividefloat, "P0"); - this.movementSpeed = new MultiOperationPlayerStat(1, 1, addfloat, substractfloat, multfloat, dividefloat, "P1"); + this.mOVEMENT_SPEED = new MultiOperationPlayerStat(1, 1, addfloat, substractfloat, multfloat, dividefloat, "P1"); this.critChance = new AdditivePlayerStat(0.05f, addfloat, substractfloat, "P1"); this.critDamage = new AdditivePlayerStat(0.5f, addfloat, substractfloat, "P0"); @@ -568,7 +568,7 @@ public ModdedPlayerStats() this.spell_berserkDuration = new AdditivePlayerStat(30, addfloat, substractfloat); this.spell_berserkDamage = new AdditivePlayerStat(1.3f, addfloat, substractfloat); - this.spell_berserkMovementSpeed = new AdditivePlayerStat(1.35f, addfloat, substractfloat); + this.spell_berserkMOVEMENT_SPEED = new AdditivePlayerStat(1.35f, addfloat, substractfloat); this.spell_berserkAttackSpeed = new AdditivePlayerStat(1.25f, addfloat, substractfloat); this.spell_berserkMaxHP = new AdditivePlayerStat(1f, addfloat, substractfloat); diff --git a/Player/Overrides/FPCharacterMod.cs b/Player/Overrides/FPCharacterMod.cs index 8237793..31ac1a9 100644 --- a/Player/Overrides/FPCharacterMod.cs +++ b/Player/Overrides/FPCharacterMod.cs @@ -50,13 +50,13 @@ protected override void Update() protected override void HandleWalkingSpeedOptions() { base.HandleWalkingSpeedOptions(); - speed *= ModdedPlayer.Stats.movementSpeed; + speed *= ModdedPlayer.Stats.mOVEMENT_SPEED; } protected override void HandleRunningStaminaAndSpeed() { base.HandleRunningStaminaAndSpeed(); - speed *= ModdedPlayer.Stats.movementSpeed; + speed *= ModdedPlayer.Stats.mOVEMENT_SPEED; COTFEvents.Instance.OnSprint.Invoke(); } diff --git a/Player/Perks/PerkDatabase.cs b/Player/Perks/PerkDatabase.cs index 2a9c8d3..95d9812 100644 --- a/Player/Perks/PerkDatabase.cs +++ b/Player/Perks/PerkDatabase.cs @@ -544,7 +544,7 @@ public static void FillPerkList() }; new Perk() { - onApply = () => ModdedPlayer.Stats.movementSpeed.valueAdditive += 0.1f, + onApply = () => ModdedPlayer.Stats.mOVEMENT_SPEED.valueAdditive += 0.1f, category = PerkCategory.Utility, unlockPath = new int[] { 27 }, @@ -2391,7 +2391,7 @@ public static void FillPerkList() }; new Perk() { - onApply = () => { ModdedPlayer.Stats.rangedIncreasedDmg.valueAdditive += 2.0f; ModdedPlayer.Stats.movementSpeed.valueMultiplicative *= 0.75f; ModdedPlayer.Stats.jumpPower.valueAdditive -= 0.65f; }, + onApply = () => { ModdedPlayer.Stats.rangedIncreasedDmg.valueAdditive += 2.0f; ModdedPlayer.Stats.mOVEMENT_SPEED.valueMultiplicative *= 0.75f; ModdedPlayer.Stats.jumpPower.valueAdditive -= 0.65f; }, category = PerkCategory.RangedOffense, texture = null, unlockPath = new int[] { 89 }, diff --git a/Player/Spells/SpellActions.cs b/Player/Spells/SpellActions.cs index dd8a49f..0ffa240 100644 --- a/Player/Spells/SpellActions.cs +++ b/Player/Spells/SpellActions.cs @@ -187,12 +187,12 @@ public static void CreateHealingDome() public static void BUFF_MultMS(float f) { - ModdedPlayer.Stats.movementSpeed.Multiply(f); + ModdedPlayer.Stats.mOVEMENT_SPEED.Multiply(f); } public static void BUFF_DivideMS(float f) { - ModdedPlayer.Stats.movementSpeed.Divide(f); + ModdedPlayer.Stats.mOVEMENT_SPEED.Divide(f); } public static void BUFF_MultAS(float f) diff --git a/Player/Spells/SpellDataBase.cs b/Player/Spells/SpellDataBase.cs index 7fa37fb..42bd8e4 100644 --- a/Player/Spells/SpellDataBase.cs +++ b/Player/Spells/SpellDataBase.cs @@ -143,7 +143,7 @@ public static void FillSpells() ModdedPlayer.Stats.attackSpeed.valueMultiplicative /= 1 + f * ModdedPlayer.Stats.spell_frenzyAtkSpeed; ModdedPlayer.Stats.allDamage.valueMultiplicative /= 1 + f * ModdedPlayer.Stats.spell_frenzyDmg; if (ModdedPlayer.Stats.spell_frenzyMS) - ModdedPlayer.Stats.movementSpeed.valueMultiplicative /= 1 + f * 0.05f; + ModdedPlayer.Stats.mOVEMENT_SPEED.valueMultiplicative /= 1 + f * 0.05f; ModdedPlayer.Stats.spell_frenzyStacks.valueAdditive = 0; } From 64d98280e9f192b77233a60089ea37916ec14697 Mon Sep 17 00:00:00 2001 From: "Hazard (Cyprian Skrzypczak)" Date: Fri, 18 Apr 2025 19:58:59 +0200 Subject: [PATCH 16/27] Updated Mod Settings --- ChampionsOfForest.csproj | 2 +- Configuration/Initializer.cs | 1 + DedicatedServer/COTFDS.cs | 2 +- Effects/Cataclysm.cs | 16 +- Effects/RealisticBlackHoleEffect.cs | 2 +- Enemies/EnemyHitTriggerMod.cs | 4 +- Enemies/EnemyProgression/EnemyProgression.cs | 4 +- .../EnemyProgression_Setup.cs | 2 +- Enemies/SpawnMutantsMod.cs | 4 +- Fun/Cheats.cs | 4 +- Items/ItemDataBase.cs | 8 +- Items/ItemDataBase_Loot.cs | 8 +- Items/ItemDefinitions/Amulets.cs | 2 + Items/ItemTemplates.cs | 2 + Items/MoreCraftingReceipes.cs | 2 +- ModReferences.cs | 2 +- ModSettings.cs | 239 ++++++++++-------- Network/COTFCommand.cs | 29 +-- Network/CommandInitializer.cs | 33 +-- Network/CommandReader.cs | 6 +- Network/Commands/GetPlayerStateParams.cs | 11 +- Network/CoopServerCallbacksMod.cs | 14 +- .../Main Menu/MainMenu_DifficultySelection.cs | 20 +- Player/ModdedPlayer/ModdedPlayer.cs | 4 +- Player/Overrides/PlayerStatsEx.cs | 8 +- Player/Overrides/WeaponInfoMod.cs | 6 +- Player/Overrides/XBArrowDamageMod.cs | 8 +- Player/RCoroutines.cs | 2 +- Player/Spells/ActiveSpellManager.cs | 8 +- Player/Spells/SpellActions.cs | 8 +- Serializer.cs | 2 +- ServerPlayerState.cs | 32 ++- CotfUtils.cs => Utils.cs | 31 ++- 33 files changed, 291 insertions(+), 235 deletions(-) rename CotfUtils.cs => Utils.cs (67%) diff --git a/ChampionsOfForest.csproj b/ChampionsOfForest.csproj index 24bc96a..573738c 100644 --- a/ChampionsOfForest.csproj +++ b/ChampionsOfForest.csproj @@ -164,7 +164,7 @@ - + diff --git a/Configuration/Initializer.cs b/Configuration/Initializer.cs index 9099cb7..92469e1 100644 --- a/Configuration/Initializer.cs +++ b/Configuration/Initializer.cs @@ -4,6 +4,7 @@ using ChampionsOfForest.Effects.Sound_Effects; using ChampionsOfForest.Enemies.EnemyAbilities; using ChampionsOfForest.ExpSources; +using ChampionsOfForest.Items; using ChampionsOfForest.Localization; using ChampionsOfForest.Player; using ChampionsOfForest.Player.Crafting; diff --git a/DedicatedServer/COTFDS.cs b/DedicatedServer/COTFDS.cs index 38b94a2..5a71a4a 100644 --- a/DedicatedServer/COTFDS.cs +++ b/DedicatedServer/COTFDS.cs @@ -16,7 +16,7 @@ public static void ReadDediServerConfig() var difficultyRegex = new Regex(@"(?<=Difficulty=)\d+"); var friendlyFireRegex = new Regex(@"(?<=FriendlyFire=)\d+"); - ModSettings.difficulty = (ModSettings.Difficulty)(int.Parse(difficultyRegex.Match(content).Value)); + ModSettings.difficulty = (ModSettings.GameDifficulty)(int.Parse(difficultyRegex.Match(content).Value)); ModSettings.FriendlyFire = difficultyRegex.Match(content).Value == "1"; ModSettings.DifficultyChosen = true; } diff --git a/Effects/Cataclysm.cs b/Effects/Cataclysm.cs index f22938a..d042eca 100644 --- a/Effects/Cataclysm.cs +++ b/Effects/Cataclysm.cs @@ -31,7 +31,7 @@ public static void AssignPrefabs() } catch (Exception e) { - CotfUtils.Log("Assign Prefabs error " + e.Message); + Utils.Log("Assign Prefabs error " + e.Message); } } @@ -50,11 +50,11 @@ public static void Create(Vector3 position, float radius, float damage, float du c.duration = duration; c.isFromEnemy = isFromEnemy; c.isArcane = tornadoType == TornadoType.Arcane; - CotfUtils.Log("Created cataclysm"); + Utils.Log("Created cataclysm"); } catch (Exception e) { - CotfUtils.Log("Creating cataclysm error " + e.Message); + Utils.Log("Creating cataclysm error " + e.Message); } } @@ -82,12 +82,12 @@ private void Start() particleParent = transform.GetChild(1).gameObject; particleParent.SetActive(false); Invoke("EnableParticles", 2); - CotfUtils.Log("start cataclysm"); + Utils.Log("start cataclysm"); dmg = (int)damage; } catch (Exception e) { - CotfUtils.Log("Start cataclysm error " + e.Message); + Utils.Log("Start cataclysm error " + e.Message); } } @@ -98,11 +98,11 @@ private void EnableParticles() particleParent.SetActive(true); warmUpDone = true; Invoke("End", duration); - CotfUtils.Log("enabled particles cataclysm"); + Utils.Log("enabled particles cataclysm"); } catch (Exception e) { - CotfUtils.Log("Enabling particles cataclysm error " + e.Message); + Utils.Log("Enabling particles cataclysm error " + e.Message); } } @@ -210,7 +210,7 @@ private void End() } catch (Exception e) { - CotfUtils.Log("End cataclysm error " + e.Message); + Utils.Log("End cataclysm error " + e.Message); } } } diff --git a/Effects/RealisticBlackHoleEffect.cs b/Effects/RealisticBlackHoleEffect.cs index d310356..1b03f6b 100644 --- a/Effects/RealisticBlackHoleEffect.cs +++ b/Effects/RealisticBlackHoleEffect.cs @@ -46,7 +46,7 @@ public void Awake() } catch (System.Exception e) { - CotfUtils.Log(e.ToString()); + Utils.Log(e.ToString()); } } diff --git a/Enemies/EnemyHitTriggerMod.cs b/Enemies/EnemyHitTriggerMod.cs index eed16bd..4686bfb 100644 --- a/Enemies/EnemyHitTriggerMod.cs +++ b/Enemies/EnemyHitTriggerMod.cs @@ -269,7 +269,7 @@ protected override void OnTriggerEnter(Collider other) playerHitEnemy.Target = entity; //this integer make the attack not stagger the enemy playerHitEnemy.getAttackerType = 2000000; - playerHitEnemy.Hit = DamageMath.GetSendableDamage(ModdedPlayer.Stats.TotalThornsDamage); + playerHitEnemy.Hit = DamageUtils.GetSendableDamage(ModdedPlayer.Stats.TotalThornsDamage); playerHitEnemy.Send(); } } @@ -285,7 +285,7 @@ protected override void OnTriggerEnter(Collider other) num = EnemyProg.DamageAmp * EnemyProg.DebuffDmgMult + num - 20f; hitDamage = num; - CotfUtils.Log($"Damage dealt to player: d{hitDamage} amp{EnemyProg.DamageAmp} lv{EnemyProg.level} php{hitDamage*100 / ModdedPlayer.Stats.TotalMaxHealth}%", true); + Utils.Log($"Damage dealt to player: d{hitDamage} amp{EnemyProg.DamageAmp} lv{EnemyProg.level} php{hitDamage*100 / ModdedPlayer.Stats.TotalMaxHealth}%", true); //POISON ATTACKS if (EnemyProg.abilities.Contains(EnemyProgression.Abilities.Poisonous)) diff --git a/Enemies/EnemyProgression/EnemyProgression.cs b/Enemies/EnemyProgression/EnemyProgression.cs index a14ea2a..4090c19 100644 --- a/Enemies/EnemyProgression/EnemyProgression.cs +++ b/Enemies/EnemyProgression/EnemyProgression.cs @@ -91,7 +91,7 @@ public enum EnemyRarity public Avenger avengerability; private float timeOfDeath; private Color normalColor; - private ModSettings.Difficulty setupDifficulty; + private ModSettings.GameDifficulty setupDifficulty; public enum Abilities { Steadfast, BossSteadfast, EliteSteadfast, Blizzard, Radiance, Chains, BlackHole, Trapper, Juggernaut, Gargantuan, Tiny, ExtraDamage, ExtraHealth, Basher, Warp, RainEmpowerment, Shielding, Meteor, Flare, Undead, Laser, Poisonous, Sacrifice, Avenger, FireCataclysm, ArcaneCataclysm @@ -390,7 +390,7 @@ public bool OnDie() } catch (Exception ex) { - ModAPI.Log.Write("DIEING ENEMY EXCEPTION " + ex); + ModAPI.Log.Write("DYING ENEMY EXCEPTION " + ex); } return true; diff --git a/Enemies/EnemyProgression/EnemyProgression_Setup.cs b/Enemies/EnemyProgression/EnemyProgression_Setup.cs index ad13559..f2fd2f3 100644 --- a/Enemies/EnemyProgression/EnemyProgression_Setup.cs +++ b/Enemies/EnemyProgression/EnemyProgression_Setup.cs @@ -318,7 +318,7 @@ private void Setup() } catch (Exception e) { - CotfUtils.Log(e.Message); + Utils.Log(e.Message); } { diff --git a/Enemies/SpawnMutantsMod.cs b/Enemies/SpawnMutantsMod.cs index f0d9d17..403cd7c 100644 --- a/Enemies/SpawnMutantsMod.cs +++ b/Enemies/SpawnMutantsMod.cs @@ -34,8 +34,8 @@ protected override void OnDestroy() if ((spawnInCave || sinkholeSpawn) && ModSettings.AllowCaveRespawn) { copy.gameObject.SetActive(true); - copy.InvokeRepeating("checkSpawn", 60f * ModSettings.CaveRespawnDelay, 4f); - CotfUtils.Log("Destroying spawner", true); + copy.InvokeRepeating("checkSpawn", ModSettings.CaveRespawnDelay, ModSettings.CaveRespawnDelay); + Utils.Log("Destroying spawner", true); } else if (copy != null) { diff --git a/Fun/Cheats.cs b/Fun/Cheats.cs index da3e9ce..09b40fe 100644 --- a/Fun/Cheats.cs +++ b/Fun/Cheats.cs @@ -180,8 +180,8 @@ private void _cotfliststats(string param) private void _cotfsetdifficulty(string param) { int i = int.Parse(param); - ModSettings.difficulty = (ModSettings.Difficulty)i; - Debug.LogWarning("Difficulty changed to: " + (ModSettings.Difficulty)i); + ModSettings.difficulty = (ModSettings.GameDifficulty)i; + Debug.LogWarning("Difficulty changed to: " + (ModSettings.GameDifficulty)i); } private void _cotfspawnitem(string param) diff --git a/Items/ItemDataBase.cs b/Items/ItemDataBase.cs index b9283a0..dc9571c 100644 --- a/Items/ItemDataBase.cs +++ b/Items/ItemDataBase.cs @@ -36,7 +36,7 @@ public static void Initialize() AddAmulets(); AddBoots(); AddBracers(); - AddChestArmor(); + AddChestArmors(); AddConsumables(); AddGloves(); AddHelmets(); @@ -46,11 +46,13 @@ public static void Initialize() AddRings(); AddShields(); AddShoulderArmor(); - AddSpellScrolls + AddSpellScrolls(); + + SanitizeItems(); } catch (System.Exception ex) { - CotfUtils.Log("Error with item " + ex.ToString()); + Utils.Log("Error with item " + ex.ToString()); } itemLookup.Clear(); for (int i = 0; i < ItemTemplateStorage.Count; i++) diff --git a/Items/ItemDataBase_Loot.cs b/Items/ItemDataBase_Loot.cs index ef2bd88..59058e3 100644 --- a/Items/ItemDataBase_Loot.cs +++ b/Items/ItemDataBase_Loot.cs @@ -23,7 +23,7 @@ public static partial class ItemDatabase 3, // Common 10, // Magic 25, // Rare - 100, // Legendary + 200, // Legendary }; static System.Random rng = new System.Random(); @@ -36,7 +36,7 @@ private static int GetLevel(Vector3 pos) if (GameSetup.IsMultiplayer) { var states = ModReferences.PlayerStates.All; - switch (ModSettings.lootLevelPolicy) + switch (ModSettings.m_lootLevelRule) { case ModSettings.LootLevelPolicy.HighestPlayerLevel: level = states.Max(x => x.level); @@ -125,7 +125,7 @@ static List GetPool(int level, int rarity, EnemyProgression.Enem } // returns a list of random items that meet the criteria of the enemy type and level of players - public static Item[] GetRandomItems(EnemyProgression.Enemy killedEnemyType, ModSettings.Difficulty difficulty, Vector3 pos, int count) + public static Item[] GetRandomItems(EnemyProgression.Enemy killedEnemyType, ModSettings.GameDifficulty difficulty, Vector3 pos, int count) { int level = GetLevel(pos); ItemDefinition.Rarity rarity = GetRandomRarity(level, ModdedPlayer.Stats.magicFind_quality.Value, difficulty); @@ -146,7 +146,7 @@ public static Item[] GetRandomItems(EnemyProgression.Enemy killedEnemyType, ModS } - public static ItemDefinition.Rarity GetRandomRarity(int level, float qualitymult, ModSettings.Difficulty difficulty) + public static ItemDefinition.Rarity GetRandomRarity(int level, float qualitymult, ModSettings.GameDifficulty difficulty) { qualitymult += (int)difficulty * ModSettings.MagicFindPerDifficultyLevel; diff --git a/Items/ItemDefinitions/Amulets.cs b/Items/ItemDefinitions/Amulets.cs index e48e1b8..b67ed07 100644 --- a/Items/ItemDefinitions/Amulets.cs +++ b/Items/ItemDefinitions/Amulets.cs @@ -84,6 +84,8 @@ public static void AddAmulets() .Description("") .Rarity(3); + + new Amulet() .AmuletStatSlot(3) .DefenseStatSlot(1) diff --git a/Items/ItemTemplates.cs b/Items/ItemTemplates.cs index 56d1fd9..ee2d526 100644 --- a/Items/ItemTemplates.cs +++ b/Items/ItemTemplates.cs @@ -347,6 +347,8 @@ public ItemTemplateBuilder Weight(int w) lootWeight = w; return this; } + + //TODO add a method to set the loot table to drop only from caves } public class Greatsword : ItemTemplateBuilder { diff --git a/Items/MoreCraftingReceipes.cs b/Items/MoreCraftingReceipes.cs index 755225b..6ed4641 100644 --- a/Items/MoreCraftingReceipes.cs +++ b/Items/MoreCraftingReceipes.cs @@ -147,7 +147,7 @@ public static void AddReceipes() } catch { - CotfUtils.Log("Crafting: Merging Failed"); + Utils.Log("Crafting: Merging Failed"); } foreach (var item in customReceipes) { diff --git a/ModReferences.cs b/ModReferences.cs index 2cefa6e..9b23387 100644 --- a/ModReferences.cs +++ b/ModReferences.cs @@ -37,7 +37,7 @@ private void Start() } } - public static void SendRandomItemDrops(int count, EnemyProgression.Enemy type, long value, ModSettings.Difficulty difficulty, Vector3 position) + public static void SendRandomItemDrops(int count, EnemyProgression.Enemy type, long value, ModSettings.GameDifficulty difficulty, Vector3 position) { instance.StartCoroutine(Player.RCoroutines.i.AsyncSendRandomItemDrops(count, type, value, difficulty, position)); } diff --git a/ModSettings.cs b/ModSettings.cs index 9a065fc..cafb8b7 100644 --- a/ModSettings.cs +++ b/ModSettings.cs @@ -1,35 +1,94 @@ using System.Collections.Generic; using System.IO; +using ChampionsOfForest.Network; +using ChampionsOfForest.Network.Commands; + using TheForest.Utils; namespace ChampionsOfForest { public class ModSettings { - public enum Difficulty + private static ModSettings instance; + public enum GameDifficulty { Easy, Veteran, Elite, Master, Challenge1, Challenge2, Challenge3, Challenge4, Challenge5, Challenge6, Hell } - - public enum DropsOnDeathMode + public enum DropsOnDeathModes { All, Equipped, Disabled, NonEquipped } - public enum LootLevelPolicy + public enum LootLevelRules { HighestPlayerLevel, AverageLevel, LowestLevel, ClosestPlayer, HostLevel } - public static Difficulty difficulty = Difficulty.Easy; - public static DropsOnDeathMode dropsOnDeath = DropsOnDeathMode.Disabled; - public static bool DifficultyChosen = false; - public static bool FriendlyFire = true; - public static bool IsDedicated = false; - public static bool killOnDowned = false; - public static bool AllowRandomCaveSpawn = true; - public static bool AllowCaveRespawn = true; - public static int CaveMaxAdditionalEnemies = 1; - public static float CaveRespawnDelay = 1; + + GameDifficulty m_difficulty = GameDifficulty.Easy; + public static GameDifficulty Difficulty => instance.m_difficulty; + + // non static properties + // these are saved + DropsOnDeathModes m_dropsOnDeathMode = DropsOnDeathModes.Disabled; + LootLevelRules m_lootLevelRule = LootLevelRules.HighestPlayerLevel; + bool m_friendlyFire = false; + bool m_isDedicated = false; + bool m_killOnDowned = false; + bool m_allowRandomCaveSpawn = true; + bool m_allowCaveRespawn = true; + int m_caveMaxAdditionalEnemies = 2; + float m_caveRespawnDelay = 120.0f; + int m_minimumLevelForSocketsToAppear = 20; + float m_chanceForFirstSocketToAppear = 0.25f; + float m_chanceForSubsequentSocketsToAppear = 0.35f; + + float m_magicFindPerDifficultyLevel = 0.25f; + bool m_privateLoot = false; + float m_dropQuantityMultiplier = 1; + float m_dropQualityMultiplier = 1; + float m_dropChanceMultiplier = 1; + float m_expMultiplier = 1; + int m_enemyLevelIncreaseGlobal = 0; + int m_enemyLevelIncreaseCaves = 0; + float m_enemyDamageMultiplier = 1; + float m_enemyHealthMultiplier = 1; + float m_enemyArmorMultiplier = 1; + float m_enemySpeedMultiplier = 1; + bool m_allowElites = true; + int m_lootFilterMinRarity = -1; + + // getters + public static DropsOnDeathModes DropsOnDeath => instance.m_dropsOnDeathMode; + public static LootLevelRules LootLevelRule => instance.m_lootLevelRule; + public static bool FriendlyFire => instance.m_friendlyFire; + public static bool IsDedicated => instance.m_isDedicated; + public static bool KillOnDowned => instance.m_killOnDowned; + public static bool AllowRandomCaveSpawn => instance.m_allowRandomCaveSpawn; + public static bool AllowCaveRespawn => instance.m_allowCaveRespawn; + public static int CaveMaxAdditionalEnemies => instance.m_caveMaxAdditionalEnemies; + public static float CaveRespawnDelay => instance.m_caveRespawnDelay; + public static int MinimumLevelForSocketsToAppear => instance.m_minimumLevelForSocketsToAppear; + public static float ChanceForFirstSocketToAppear => instance.m_chanceForFirstSocketToAppear; + public static float ChanceForSubsequentSocketsToAppear => instance.m_chanceForSubsequentSocketsToAppear; + public static float MagicFindPerDifficultyLevel => instance.m_magicFindPerDifficultyLevel; + public static bool PrivateLoot => instance.m_privateLoot; + public static float DropQuantityMultiplier => instance.m_dropQuantityMultiplier; + public static float DropQualityMultiplier => instance.m_dropQualityMultiplier; + public static float DropChanceMultiplier => instance.m_dropChanceMultiplier; + public static float ExpMultiplier => instance.m_expMultiplier; + public static int EnemyLevelIncreaseGlobal => instance.m_enemyLevelIncreaseGlobal; + public static int EnemyLevelIncreaseCaves => instance.m_enemyLevelIncreaseCaves; + public static float EnemyDamageMultiplier => instance.m_enemyDamageMultiplier; + public static float EnemyHealthMultiplier => instance.m_enemyHealthMultiplier; + public static float EnemyArmorMultiplier => instance.m_enemyArmorMultiplier; + public static float EnemySpeedMultiplier => instance.m_enemySpeedMultiplier; + public static bool AllowElites => instance.m_allowElites; + public static int LootFilterMinRarity => instance.m_lootFilterMinRarity; + + + // static properties + // these are not saved + static bool DifficultyChosen = false; public static string Version; public const bool RequiresNewFiles = false; @@ -37,46 +96,37 @@ public enum LootLevelPolicy public const bool RequiresNewSave = true; public const string RequiresNewSaveVersion = "1.6.0.2"; - public const int MinimumLevelForSocketsToAppear = 20; - public const float ChanceForFirstSocketToAppear = 0.25f; - public const float ChanceForSubsequentSocketsToAppear = 0.35f; - - public const float MagicFindPerDifficultyLevel = 0.25f; - - // TODO use this - // TODO Add gui toggle for this - public static bool PrivateLoot = false; // new, if true, drops from enemies are private to each player. No more racing for items - - public static readonly List outdatedFiles = new List(); - - public static float DropQuantityMultiplier = 1; - public static float DropChanceMultiplier = 1; - public static float ExpMultiplier = 1; - public static int EnemyLevelIncrease = 0; - public static float EnemyDamageMultiplier = 1; - public static float EnemyHealthMultiplier = 1; - public static float EnemyArmorMultiplier = 1; - public static float EnemySpeedMultiplier = 1; - public static bool AllowElites = true; - public static LootLevelPolicy lootLevelPolicy = LootLevelPolicy.HighestPlayerLevel; - public static int LootFilterMinRarity = 0; - public static void Reset() + public static readonly List outdatedFiles = new List(); // files to remove from disk + + + public void Reset() { - DropQuantityMultiplier = 1; - DropChanceMultiplier = 1; - ExpMultiplier = 1; - EnemyLevelIncrease = 0; - EnemyDamageMultiplier = 1; - EnemyHealthMultiplier = 1; - EnemyArmorMultiplier = 1; - EnemySpeedMultiplier = 1; - AllowElites = true; - lootLevelPolicy = LootLevelPolicy.HighestPlayerLevel; - AllowRandomCaveSpawn = true; - AllowCaveRespawn = true; - CaveMaxAdditionalEnemies = 1; - CaveRespawnDelay = 1; - LootFilterMinRarity = 0; + m_dropsOnDeathMode = DropsOnDeathModes.Disabled; + m_lootLevelRule = LootLevelRules.HighestPlayerLevel; + m_friendlyFire = false; + m_isDedicated = false; + m_killOnDowned = false; + m_allowRandomCaveSpawn = true; + m_allowCaveRespawn = true; + m_caveMaxAdditionalEnemies = 2; + m_caveRespawnDelay = 120.0f; + m_minimumLevelForSocketsToAppear = 20; + m_chanceForFirstSocketToAppear = 0.25f; + m_chanceForSubsequentSocketsToAppear = 0.35f; + m_magicFindPerDifficultyLevel = 0.25f; + m_privateLoot = false; + m_dropQuantityMultiplier = 1; + m_dropQualityMultiplier = 1; + m_dropChanceMultiplier = 1; + m_expMultiplier = 1; + m_enemyLevelIncreaseGlobal = 0; + m_enemyLevelIncreaseCaves = 0; + m_enemyDamageMultiplier = 1; + m_enemyHealthMultiplier = 1; + m_enemyArmorMultiplier = 1; + m_enemySpeedMultiplier = 1; + m_allowElites = true; + m_lootFilterMinRarity = -1; } @@ -84,22 +134,33 @@ public static void BroadCastSettingsToClients() { if (GameSetup.IsMpServer) { - using (MemoryStream answerStream = new MemoryStream()) + COTFCommand.Send(NetworkManager.Target.Clients, new BroadcastModSettings() { - using (BinaryWriter w = new BinaryWriter(answerStream)) - { - w.Write(2); - w.Write((int)ModSettings.difficulty); - w.Write(ModSettings.FriendlyFire); - w.Write((int)ModSettings.dropsOnDeath); - w.Write(ModSettings.killOnDowned); - w.Close(); - } - Network.NetworkManager.SendLine(answerStream.ToArray(), Network.NetworkManager.Target.Clients); - answerStream.Close(); - } + dieOnDowned = instance.m_killOnDowned, + dropsOnDeath = instance.m_dropsOnDeathMode, + difficulty = instance.m_difficulty, + friendlyFire = instance.m_friendlyFire, + }); } } + public static void ReceivedSettingsFromServer(BroadcastModSettings receivedSettings) + { + if (!GameSetup.IsMpClient || ModSettings.IsDedicated) + return; + instance.m_difficulty = receivedSettings.difficulty; + instance.m_dropsOnDeathMode = receivedSettings.dropsOnDeath; + instance.m_killOnDowned = receivedSettings.dieOnDowned; + instance.m_friendlyFire = receivedSettings.friendlyFire; + + if (!ModSettings.DifficultyChosen) + { + LocalPlayer.FpCharacter.UnLockView(); + LocalPlayer.FpCharacter.MovementLocked = false; + Cheats.GodMode = false; + MainMenu.Instance.ClearDiffSelectionObjects(); + } + ModSettings.DifficultyChosen = true; + } const string PATH = "Mods/Champions of the Forest/Settings.save"; public static void SaveSettings() @@ -108,26 +169,9 @@ public static void SaveSettings() { using (BinaryWriter buf = new BinaryWriter(stream)) { - buf.Write(FriendlyFire); - buf.Write(killOnDowned); - buf.Write(DropQuantityMultiplier); - buf.Write(DropChanceMultiplier); - buf.Write(ExpMultiplier); - buf.Write(EnemyLevelIncrease); - buf.Write(EnemyDamageMultiplier); - buf.Write(EnemyHealthMultiplier); - buf.Write(EnemyArmorMultiplier); - buf.Write(EnemySpeedMultiplier); - buf.Write(AllowElites); - buf.Write((int)dropsOnDeath); - buf.Write((int)lootLevelPolicy); - buf.Write(AllowRandomCaveSpawn); - buf.Write(AllowCaveRespawn); - buf.Write(CaveMaxAdditionalEnemies); - buf.Write(CaveRespawnDelay); - buf.Write(LootFilterMinRarity); - File.WriteAllBytes(PATH, stream.ToArray()); + buf.Write(Utils.GetBytesFromObject(instance)); } + File.WriteAllBytes(PATH, stream.ToArray()); } } public static void LoadSettings() @@ -137,35 +181,16 @@ public static void LoadSettings() { using (FileStream stream = new FileStream(PATH, FileMode.Open)) { - using (BinaryReader buf = new BinaryReader(stream)) + using (BinaryReader reader = new BinaryReader(stream)) { - FriendlyFire = buf.ReadBoolean(); - killOnDowned = buf.ReadBoolean(); - DropQuantityMultiplier = buf.ReadSingle(); - DropChanceMultiplier = buf.ReadSingle(); - ExpMultiplier = buf.ReadSingle(); - EnemyLevelIncrease = buf.ReadInt32(); - EnemyDamageMultiplier = buf.ReadSingle(); - EnemyHealthMultiplier = buf.ReadSingle(); - EnemyArmorMultiplier = buf.ReadSingle(); - EnemySpeedMultiplier = buf.ReadSingle(); - AllowElites = buf.ReadBoolean(); - dropsOnDeath = (DropsOnDeathMode)buf.ReadInt32(); - lootLevelPolicy = (LootLevelPolicy)buf.ReadInt32(); - AllowRandomCaveSpawn = buf.ReadBoolean(); - AllowCaveRespawn = buf.ReadBoolean(); - CaveMaxAdditionalEnemies = buf.ReadInt32(); - CaveRespawnDelay = buf.ReadSingle(); - LootFilterMinRarity = buf.ReadInt32(); + instance = Utils.GetObjectFromBytes(reader); } } } catch (System.Exception) { - - CotfUtils.Log("Failed loading settings"); + Utils.Log("Failed loading settings"); } - } } } \ No newline at end of file diff --git a/Network/COTFCommand.cs b/Network/COTFCommand.cs index 16eafef..db2791d 100644 --- a/Network/COTFCommand.cs +++ b/Network/COTFCommand.cs @@ -24,31 +24,12 @@ public static void Initialize(ReceivedDelegate receivedDelegate) CommandReader.callbacks.Add(instance.commandIndex, COTFCommand.Received); instance.receivedDelegate = receivedDelegate; - var type = typeof(COTFCommand); + Type type = typeof(COTFCommand); ModAPI.Log.Write($"command {instance.commandIndex} registered: {type.Name}"); } } - static byte[] GetBytes(ParamT p) - { - int size = Marshal.SizeOf(p); - byte[] arr = new byte[size]; - IntPtr ptr = Marshal.AllocHGlobal(size); - Marshal.StructureToPtr(p, ptr, true); - Marshal.Copy(ptr, arr, 0, size); - Marshal.FreeHGlobal(ptr); - return arr; - } - static ParamT GetParam(BinaryReader reader) - { - int size = Marshal.SizeOf(default(ParamT)); - IntPtr ptr = Marshal.AllocHGlobal(size); - byte[] arr = reader.ReadBytes(size); - Marshal.Copy(arr, 0, ptr, size); - var param = (ParamT)Marshal.PtrToStructure(ptr, typeof(ParamT)); - Marshal.FreeHGlobal(ptr); - return param; - } + public static void Send(NetworkManager.Target target, in ParamT param) { @@ -57,7 +38,7 @@ public static void Send(NetworkManager.Target target, in ParamT param) using (BinaryWriter w = new BinaryWriter(answerStream)) { w.Write(instance.commandIndex); - w.Write(GetBytes(param)); + w.Write(Utils.GetBytesFromObject(param)); w.Close(); } NetworkManager.SendLine(answerStream.ToArray(), target); @@ -71,7 +52,7 @@ public static void Send(BoltConnection target_connection, ParamT param) using (BinaryWriter w = new BinaryWriter(answerStream)) { w.Write(instance.commandIndex); - w.Write(GetBytes(param)); + w.Write(Utils.GetBytesFromObject(param)); w.Close(); } NetworkManager.SendLine(answerStream.ToArray(), target_connection); @@ -80,7 +61,7 @@ public static void Send(BoltConnection target_connection, ParamT param) } public static void Received(BinaryReader r) { - var p = GetParam(r); + ParamT p = Utils.GetObjectFromBytes(r); instance.receivedDelegate.Invoke(p); r.Close(); } diff --git a/Network/CommandInitializer.cs b/Network/CommandInitializer.cs index 1f8c5db..fa4bfba 100644 --- a/Network/CommandInitializer.cs +++ b/Network/CommandInitializer.cs @@ -5,39 +5,22 @@ using ChampionsOfForest.Network.Commands; +using TheForest.Utils; + namespace ChampionsOfForest.Network { - public class CommandInitializer + public static class CommandInitializer { - //public static void Init() - //{ - // CommandReader.curr_cmd_index = 100; - // CommandReader.callbacks.Clear(); - // var types = GetTypesInNamespace(Assembly.GetExecutingAssembly(), "ChampionsOfForest.Network.Commands"); - // foreach (var t in types) - // { - // var initMethod = t.GetMethod("Initialize"); - // if (initMethod != null) - // initMethod.Invoke(null, new object[0]); - // } - //} - //private static IEnumerable GetTypesInNamespace(Assembly assembly, string nameSpace) - //{ - // return - // assembly.GetTypes() - // .Where(t => String.Equals(t.Namespace, nameSpace, StringComparison.Ordinal) && t.IsClass); - //} - public void Init() + public static void Init() { CommandReader.curr_cmd_index = 100; COTFCommand.Initialize( - param => - { - ModReferences.PlayerStates. - }); - + param =>ModReferences.PlayerStates.UpdateOrAddPlayerState(param)); + + COTFCommand.Initialize( + param => ModSettings.ReceivedSettingsFromServer(param)); } } diff --git a/Network/CommandReader.cs b/Network/CommandReader.cs index aa932d1..503e691 100644 --- a/Network/CommandReader.cs +++ b/Network/CommandReader.cs @@ -65,9 +65,9 @@ public static void OnCommand(byte[] bytes) int index = r.ReadInt32(); ModSettings.FriendlyFire = r.ReadBoolean(); - ModSettings.dropsOnDeath = (ModSettings.DropsOnDeathMode)r.ReadInt32(); + ModSettings.dropsOnDeath = (ModSettings.DropsOnDeathModes)r.ReadInt32(); ModSettings.killOnDowned = r.ReadBoolean(); - ModSettings.difficulty = (ModSettings.Difficulty)index; + ModSettings.difficulty = (ModSettings.GameDifficulty)index; if (!ModSettings.DifficultyChosen) { LocalPlayer.FpCharacter.UnLockView(); @@ -335,7 +335,7 @@ public static void OnCommand(byte[] bytes) } else { - CotfUtils.Log("no enemy in host's dictionary"); + Utils.Log("no enemy in host's dictionary"); } } diff --git a/Network/Commands/GetPlayerStateParams.cs b/Network/Commands/GetPlayerStateParams.cs index f722cd5..0350bfd 100644 --- a/Network/Commands/GetPlayerStateParams.cs +++ b/Network/Commands/GetPlayerStateParams.cs @@ -7,12 +7,21 @@ namespace ChampionsOfForest.Network.Commands { public struct GetPlayerStateParams { + public ulong entityNetworkID; public string playerID; public int level; public float health; public float maxHealth; public int xp; - public ulong entityNetworkID; + } + + public struct BroadcastModSettings + { + public ModSettings.DropsOnDeathModes dropsOnDeath; + public ModSettings.GameDifficulty difficulty; + public bool dieOnDowned; + public bool friendlyFire; + } } diff --git a/Network/CoopServerCallbacksMod.cs b/Network/CoopServerCallbacksMod.cs index 495431e..51d4d0a 100644 --- a/Network/CoopServerCallbacksMod.cs +++ b/Network/CoopServerCallbacksMod.cs @@ -49,19 +49,19 @@ public override void OnEvent(PlayerHitEnemy ev) { enemy.HealthScript.Burn(); } - if (ev.getAttackerType == DamageMath.SILENTattackerType) + if (ev.getAttackerType == DamageUtils.SILENTattackerType) { //ghost hit float damage = BitConverter.ToSingle(BitConverter.GetBytes(ev.Hit), 0); enemy.HitPhysicalSilent(damage); } - else if (ev.getAttackerType == DamageMath.SILENTattackerTypeMagic) + else if (ev.getAttackerType == DamageUtils.SILENTattackerTypeMagic) { //ghost hit float damage = BitConverter.ToSingle(BitConverter.GetBytes(ev.Hit), 0); enemy.HitMagic(damage); } - else if (ev.getAttackerType == DamageMath.PURE) + else if (ev.getAttackerType == DamageUtils.PURE) { float damage = BitConverter.ToSingle(BitConverter.GetBytes(ev.Hit), 0); enemy.HitPure(damage); @@ -71,9 +71,9 @@ public override void OnEvent(PlayerHitEnemy ev) if (ev.Hit > 0) { - float damage = ev.getAttackerType >= DamageMath.CONVERTEDFLOATattackerType ? BitConverter.ToSingle(BitConverter.GetBytes(ev.Hit), 0) : ev.Hit; - if (ev.getAttackerType >= DamageMath.CONVERTEDFLOATattackerType) - ev.getAttackerType -= DamageMath.CONVERTEDFLOATattackerType; + float damage = ev.getAttackerType >= DamageUtils.CONVERTEDFLOATattackerType ? BitConverter.ToSingle(BitConverter.GetBytes(ev.Hit), 0) : ev.Hit; + if (ev.getAttackerType >= DamageUtils.CONVERTEDFLOATattackerType) + ev.getAttackerType -= DamageUtils.CONVERTEDFLOATattackerType; //just in case i ever need this //this is how to get the player object which raised the event (ev.RaisedBy.UserData as BoltEntity) enemy.HealthScript.getAttackDirection(ev.getAttackerType); @@ -142,7 +142,7 @@ public override void OnEvent(PlayerHitEnemy ev) { transform.SendMessage("getStealthAttack", SendMessageOptions.DontRequireReceiver); } - float dmg = ev.getAttackerType >= DamageMath.CONVERTEDFLOATattackerType ? BitConverter.ToSingle(BitConverter.GetBytes(ev.Hit), 0) : ev.Hit; + float dmg = ev.getAttackerType >= DamageUtils.CONVERTEDFLOATattackerType ? BitConverter.ToSingle(BitConverter.GetBytes(ev.Hit), 0) : ev.Hit; if (ev.hitFallDown) { mutantHitReceiver componentInChildren5 = transform.GetComponentInChildren(); diff --git a/Player/Main Menu/MainMenu_DifficultySelection.cs b/Player/Main Menu/MainMenu_DifficultySelection.cs index 93deb75..6471d73 100644 --- a/Player/Main Menu/MainMenu_DifficultySelection.cs +++ b/Player/Main Menu/MainMenu_DifficultySelection.cs @@ -186,8 +186,8 @@ private void DrawDifficultyTabs() if (GUI.Button(r, "", ButtonStyle)) { ModSettings.DifficultyChosen = true; - Array values = Enum.GetValues(typeof(ModSettings.Difficulty)); - ModSettings.difficulty = (ModSettings.Difficulty)values.GetValue(ii); + Array values = Enum.GetValues(typeof(ModSettings.GameDifficulty)); + ModSettings.difficulty = (ModSettings.GameDifficulty)values.GetValue(ii); LocalPlayer.FpCharacter.UnLockView(); LocalPlayer.FpCharacter.MovementLocked = false; Cheats.GodMode = false; @@ -301,19 +301,19 @@ private void DrawSettings() //Drops on death switch (ModSettings.dropsOnDeath) { - case ModSettings.DropsOnDeathMode.All: + case ModSettings.DropsOnDeathModes.All: GUI.color = Color.red; break; - case ModSettings.DropsOnDeathMode.Equipped: + case ModSettings.DropsOnDeathModes.Equipped: GUI.color = Color.yellow; break; - case ModSettings.DropsOnDeathMode.NonEquipped: + case ModSettings.DropsOnDeathModes.NonEquipped: GUI.color = Color.cyan; break; - case ModSettings.DropsOnDeathMode.Disabled: + case ModSettings.DropsOnDeathModes.Disabled: GUI.color = Color.gray; break; @@ -328,22 +328,22 @@ private void DrawSettings() { int i = (int)ModSettings.dropsOnDeath + 1; i %= 4; - ModSettings.dropsOnDeath = (ModSettings.DropsOnDeathMode)i; + ModSettings.dropsOnDeath = (ModSettings.DropsOnDeathModes)i; } GUI.color = Color.white; - if (GUI.Button(new Rect(Screen.width / 2 - 300 * screenScale, 220 * screenScale, 600 * screenScale, 50 * screenScale), Translations.MainMenu_DifficultySelection_26 + ModSettings.lootLevelPolicy, new GUIStyle(GUI.skin.button) //tr + if (GUI.Button(new Rect(Screen.width / 2 - 300 * screenScale, 220 * screenScale, 600 * screenScale, 50 * screenScale), Translations.MainMenu_DifficultySelection_26 + ModSettings.m_lootLevelRule, new GUIStyle(GUI.skin.button) //tr { font = mainFont, fontSize = Mathf.FloorToInt(20 * screenScale) })) { - int i = (int)ModSettings.lootLevelPolicy + 1; + int i = (int)ModSettings.m_lootLevelRule + 1; i %= 5; - ModSettings.lootLevelPolicy = (ModSettings.LootLevelPolicy)i; + ModSettings.m_lootLevelRule = (ModSettings.LootLevelRules)i; } float y = 350; diff --git a/Player/ModdedPlayer/ModdedPlayer.cs b/Player/ModdedPlayer/ModdedPlayer.cs index ec1e364..d5700f8 100644 --- a/Player/ModdedPlayer/ModdedPlayer.cs +++ b/Player/ModdedPlayer/ModdedPlayer.cs @@ -913,8 +913,8 @@ public void DoGuaranteedAreaDamage(Transform rootTR, float damage) if (entity != null) { PlayerHitEnemy playerHitEnemy = PlayerHitEnemy.Create(GlobalTargets.OnlyServer); - playerHitEnemy.Hit = DamageMath.GetSendableDamage( d); - playerHitEnemy.getAttackerType = DamageMath.SILENTattackerType; //silent hit + playerHitEnemy.Hit = DamageUtils.GetSendableDamage( d); + playerHitEnemy.getAttackerType = DamageUtils.SILENTattackerType; //silent hit playerHitEnemy.Target = entity; playerHitEnemy.Send(); } diff --git a/Player/Overrides/PlayerStatsEx.cs b/Player/Overrides/PlayerStatsEx.cs index ea1f1f9..9bdcf2c 100644 --- a/Player/Overrides/PlayerStatsEx.cs +++ b/Player/Overrides/PlayerStatsEx.cs @@ -794,7 +794,7 @@ public override void Hit(int damage, bool ignoreArmor, DamageType type) } if (ModdedPlayer.Stats.i_KingQruiesSword) BuffDB.AddBuff(22, 80, f, 1); - CotfUtils.Log("Tanked damage: " + f, true); + Utils.Log("Tanked damage: " + f, true); base.Hit(damage, ignoreArmor, type); } @@ -940,15 +940,15 @@ protected override void CheckDeath() COTFEvents.Instance.OnDeath.Invoke(); switch (ModSettings.dropsOnDeath) { - case ModSettings.DropsOnDeathMode.All: + case ModSettings.DropsOnDeathModes.All: Inventory.Instance.DropAll(); break; - case ModSettings.DropsOnDeathMode.Equipped: + case ModSettings.DropsOnDeathModes.Equipped: Inventory.Instance.DropEquipped(); break; - case ModSettings.DropsOnDeathMode.NonEquipped: + case ModSettings.DropsOnDeathModes.NonEquipped: Inventory.Instance.DropNonEquipped(); break; } diff --git a/Player/Overrides/WeaponInfoMod.cs b/Player/Overrides/WeaponInfoMod.cs index 5b133fe..22c943e 100644 --- a/Player/Overrides/WeaponInfoMod.cs +++ b/Player/Overrides/WeaponInfoMod.cs @@ -151,8 +151,8 @@ private bool COTFHit(Collider other) } var phe = PlayerHitEnemy.Create(GlobalTargets.OnlyServer); phe.Target = entity; - phe.getAttackerType = 4 + DamageMath.CONVERTEDFLOATattackerType; - phe.Hit = DamageMath.GetSendableDamage(outputdmg); + phe.getAttackerType = 4 + DamageUtils.CONVERTEDFLOATattackerType; + phe.Hit = DamageUtils.GetSendableDamage(outputdmg); phe.HitAxe = axe; phe.hitFallDown = fsmHeavyAttackBool.Value && axe; phe.getAttackDirection = animator.GetInteger("hitDirection"); @@ -356,7 +356,7 @@ private bool COTFHit(Collider other) ModdedPlayer.instance.OnHit(); ModdedPlayer.instance.OnHit_Melee(other.transform); - DamageMath.ReduceDamageToSendOverNet(2f * (WeaponDamage + ModdedPlayer.Stats.baseMeleeDamage + SpellActions.GetParryCounterStrikeDmg()) * ModdedPlayer.Stats.MeleeDamageMult * ModdedPlayer.Stats.RandomCritDamage, out int dmg, out int repetitions); + DamageUtils.ReduceDamageToSendOverNet(2f * (WeaponDamage + ModdedPlayer.Stats.baseMeleeDamage + SpellActions.GetParryCounterStrikeDmg()) * ModdedPlayer.Stats.MeleeDamageMult * ModdedPlayer.Stats.RandomCritDamage, out int dmg, out int repetitions); HitPlayer hitPlayer = HitPlayer.Create(component3, EntityTargets.Everyone); hitPlayer.damage = dmg; diff --git a/Player/Overrides/XBArrowDamageMod.cs b/Player/Overrides/XBArrowDamageMod.cs index b7fe63d..06ffce4 100644 --- a/Player/Overrides/XBArrowDamageMod.cs +++ b/Player/Overrides/XBArrowDamageMod.cs @@ -485,7 +485,7 @@ public override void CheckHit(Vector3 position, Transform target, bool isTrigger dmgUnclamped *= SpellActions.FocusOnBodyShot(); } - DamageMath.ReduceDamageToSendOverNet(dmgUnclamped, out int sendDamage, out int reps); + DamageUtils.ReduceDamageToSendOverNet(dmgUnclamped, out int sendDamage, out int reps); HitPlayer HP = HitPlayer.Create(be, EntityTargets.Everyone); HP.damage = sendDamage; @@ -800,7 +800,7 @@ public void NewHitAi(Transform target, bool hitDelay, bool headDamage) playerHitEnemy.getAttackDirection = 3; } playerHitEnemy.getAttackerType = 4; - playerHitEnemy.Hit = DamageMath.GetSendableDamage(dmgUnclamped); + playerHitEnemy.Hit = DamageUtils.GetSendableDamage(dmgUnclamped); if ((GreatBow.isEnabled && ModdedPlayer.Stats.i_greatBowIgnites) || (ignite && Random.value < 0.5f)) { COTFEvents.Instance.OnIgniteRanged.Invoke(); @@ -830,8 +830,8 @@ public void NewHitAi(Transform target, bool hitDelay, bool headDamage) playerHitEnemy2.Burn = true; } - playerHitEnemy2.Hit = DamageMath.GetSendableDamage(dmgUnclamped); - playerHitEnemy2.getAttackerType += DamageMath.CONVERTEDFLOATattackerType; + playerHitEnemy2.Hit = DamageUtils.GetSendableDamage(dmgUnclamped); + playerHitEnemy2.getAttackerType += DamageUtils.CONVERTEDFLOATattackerType; playerHitEnemy2.Send(); } goto afterdamage; diff --git a/Player/RCoroutines.cs b/Player/RCoroutines.cs index e870e8f..3c591ab 100644 --- a/Player/RCoroutines.cs +++ b/Player/RCoroutines.cs @@ -27,7 +27,7 @@ private void Start() // } //} - public IEnumerator AsyncSendRandomItemDrops(int count, EnemyProgression.Enemy type, long bounty,ModSettings.Difficulty difficulty, Vector3 position) + public IEnumerator AsyncSendRandomItemDrops(int count, EnemyProgression.Enemy type, long bounty,ModSettings.GameDifficulty difficulty, Vector3 position) { for (int i = 0; i < count; i++) { diff --git a/Player/Spells/ActiveSpellManager.cs b/Player/Spells/ActiveSpellManager.cs index 8be963c..6fb5ab2 100644 --- a/Player/Spells/ActiveSpellManager.cs +++ b/Player/Spells/ActiveSpellManager.cs @@ -182,8 +182,8 @@ IEnumerator DealDamage() var phe = PlayerHitEnemy.Create(GlobalTargets.OnlyServer); phe.Target = entity; - phe.getAttackerType = DamageMath.SILENTattackerTypeMagic; - phe.Hit = DamageMath.GetSendableDamage(dmg); + phe.getAttackerType = DamageUtils.SILENTattackerTypeMagic; + phe.Hit = DamageUtils.GetSendableDamage(dmg); phe.Send(); if (onHitEffectProcs < 6) @@ -485,8 +485,8 @@ void OnTriggerEnter(Collider other) } var phe = PlayerHitEnemy.Create(GlobalTargets.OnlyServer); phe.Target = entity; - phe.getAttackerType = DamageMath.SILENTattackerTypeMagic; - phe.Hit = DamageMath.GetSendableDamage(dmgOutput); + phe.getAttackerType = DamageUtils.SILENTattackerTypeMagic; + phe.Hit = DamageUtils.GetSendableDamage(dmgOutput); ModdedPlayer.instance.OnHitEffectsClient(entity, dmgOutput); if (crit > 1) diff --git a/Player/Spells/SpellActions.cs b/Player/Spells/SpellActions.cs index 0ffa240..73715e3 100644 --- a/Player/Spells/SpellActions.cs +++ b/Player/Spells/SpellActions.cs @@ -72,8 +72,8 @@ public static void DoBlink() { PlayerHitEnemy playerHitEnemy = PlayerHitEnemy.Create(enemyEntity); playerHitEnemy.hitFallDown = true; - playerHitEnemy.getAttackerType = DamageMath.CONVERTEDFLOATattackerType; - playerHitEnemy.Hit = DamageMath.GetSendableDamage(dmg); + playerHitEnemy.getAttackerType = DamageUtils.CONVERTEDFLOATattackerType; + playerHitEnemy.Hit = DamageUtils.GetSendableDamage(dmg); playerHitEnemy.Send(); } } @@ -111,8 +111,8 @@ public static void DoBlink() { PlayerHitEnemy playerHitEnemy = PlayerHitEnemy.Create(enemyEntity); playerHitEnemy.hitFallDown = true; - playerHitEnemy.getAttackerType = DamageMath.CONVERTEDFLOATattackerType; - playerHitEnemy.Hit = DamageMath.GetSendableDamage(dmg); + playerHitEnemy.getAttackerType = DamageUtils.CONVERTEDFLOATattackerType; + playerHitEnemy.Hit = DamageUtils.GetSendableDamage(dmg); playerHitEnemy.Send(); } } diff --git a/Serializer.cs b/Serializer.cs index dea2d48..828d86d 100644 --- a/Serializer.cs +++ b/Serializer.cs @@ -51,7 +51,7 @@ private void DoLoad(string path, out float HealthPercentage, out Dictionary(T obj) + { + int size = Marshal.SizeOf(obj); + byte[] arr = new byte[size]; + IntPtr ptr = Marshal.AllocHGlobal(size); + Marshal.StructureToPtr(obj, ptr, true); + Marshal.Copy(ptr, arr, 0, size); + Marshal.FreeHGlobal(ptr); + return arr; + } + + public static ParamT GetObjectFromBytes(BinaryReader reader) + { + int size = Marshal.SizeOf(default(ParamT)); + IntPtr ptr = Marshal.AllocHGlobal(size); + byte[] arr = reader.ReadBytes(size); + Marshal.Copy(arr, 0, ptr, size); + var param = (ParamT)Marshal.PtrToStructure(ptr, typeof(ParamT)); + Marshal.FreeHGlobal(ptr); + return param; + } } - public static class DamageMath + public static class DamageUtils { public const int SILENTattackerType = 2000000; public const int SILENTattackerTypeMagic = 2000001; From 771f81f958e40059b8ee6ca8d0bf62e4d930dc2e Mon Sep 17 00:00:00 2001 From: LamaMega Date: Sat, 19 Apr 2025 15:20:32 +0200 Subject: [PATCH 17/27] WIP Removed Armor Reduction From Fire --- Enemies/EnemyHealthMod.cs | 1 - Items/ItemDefinitions/ChestArmor.cs | 5 +++-- Items/ItemDefinitions/ItemDataBase_ItemDefinitions.cs | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Enemies/EnemyHealthMod.cs b/Enemies/EnemyHealthMod.cs index 230178e..0be32c0 100644 --- a/Enemies/EnemyHealthMod.cs +++ b/Enemies/EnemyHealthMod.cs @@ -139,7 +139,6 @@ protected override void HitFire() base.HitReal(i); } - progression.armorReduction += i; } } diff --git a/Items/ItemDefinitions/ChestArmor.cs b/Items/ItemDefinitions/ChestArmor.cs index 4cb8f61..a46abf9 100644 --- a/Items/ItemDefinitions/ChestArmor.cs +++ b/Items/ItemDefinitions/ChestArmor.cs @@ -62,8 +62,9 @@ public static void AddChestArmor() new ChestArmor() .DefaultStatSlot(5) - .Name("") - .Description("") + .Name("Mysterious Robe") + .Description("Magic flows through the entirety of this object. It's made out of unknown material.") + .UniqueStat() .Rarity(4); } diff --git a/Items/ItemDefinitions/ItemDataBase_ItemDefinitions.cs b/Items/ItemDefinitions/ItemDataBase_ItemDefinitions.cs index 6ef5901..5e36a6f 100644 --- a/Items/ItemDefinitions/ItemDataBase_ItemDefinitions.cs +++ b/Items/ItemDefinitions/ItemDataBase_ItemDefinitions.cs @@ -443,7 +443,7 @@ public static void PopulateItems() new int[] {4,17,6,44,38,21,24,8,9}, new int[] {4,17,6,44,38,21,24,8,9}, }) - { + { //WIP name = Translations.ItemDataBase_ItemDefinitions_52/*Mysterious robe*/, //tr description = Translations.ItemDataBase_ItemDefinitions_53/*Magic flows through the entirety of this object. It's made out of unknown material*/, //tr lore = Translations.ItemDataBase_ItemDefinitions_54/*Robe looks like it was created yesterday, but its older than the oldest of mankinds' civilizations. Simply looking at it sends chills down the spine.*/, //tr From 2c55c8824a134436f2abc9d42ed7ae5270c75a69 Mon Sep 17 00:00:00 2001 From: "Hazard (Cyprian Skrzypczak)" Date: Sat, 19 Apr 2025 16:32:01 +0200 Subject: [PATCH 18/27] Fixed namespaces, changed how rarity colors are stored --- ChampionsOfForest.csproj | 1 + Items/Item.cs | 17 +- Items/ItemDefinitions/ItemDefinition.cs | 2 +- Items/ItemPickUp.cs | 13 +- Items/ItemPicker.cs | 2 +- Items/ItemStat.cs | 6 +- Items/ItemTemplates.cs | 1 - Items/MoreCraftingReceipes.cs | 783 ++++++++++++------------ Items/PickUpManager.cs | 22 +- Items/RarityDisplayInfo.cs | 19 + Network/NetworkManager.cs | 3 + Player/Inventory.cs | 1 + Player/Main Menu/MainMenu.cs | 12 +- 13 files changed, 453 insertions(+), 429 deletions(-) create mode 100644 Items/RarityDisplayInfo.cs diff --git a/ChampionsOfForest.csproj b/ChampionsOfForest.csproj index 573738c..8fcd519 100644 --- a/ChampionsOfForest.csproj +++ b/ChampionsOfForest.csproj @@ -164,6 +164,7 @@ + diff --git a/Items/Item.cs b/Items/Item.cs index 03221c5..331712e 100644 --- a/Items/Item.cs +++ b/Items/Item.cs @@ -2,7 +2,6 @@ using System.Collections.Generic; using System.Linq; -using ChampionsOfForest.Items; using ChampionsOfForest.Localization; using ChampionsOfForest.Player; @@ -12,7 +11,7 @@ using Random = UnityEngine.Random; -namespace ChampionsOfForest +namespace ChampionsOfForest.Items { public class Item : ItemDefinition { @@ -387,5 +386,19 @@ public bool OnConsume() } return false; } + + + + private readonly static RarityDisplayInfo[] rarityInfos = new RarityDisplayInfo[] + { + new RarityDisplayInfo(Rarity.Common, Color.white, Color.white, 0), + new RarityDisplayInfo(Rarity.Uncommon, new Color(0.1f,1f,0.1f), new Color(0.1f,1f,0.1f), 0.2f), + new RarityDisplayInfo(Rarity.Magic, new Color(0.1f,0.5f,1f), new Color(0.1f,0.5f,1f), 0.4f), + new RarityDisplayInfo(Rarity.Rare, new Color(1f,1f,0.0f), new Color(1f,1f,0.0f), 0.6f), + new RarityDisplayInfo(Rarity.Legendary, new Color(0.74f,0.05f,0.05f), new Color(0.74f,0.05f,0.05f), 1f), + }; + public Color RarityColor => rarityInfos[(int)rarity].color; + public Color GlowColor => rarityInfos[(int)rarity].glowColor; + public float GlowIntensity => rarityInfos[(int)rarity].glowIntensity; } } \ No newline at end of file diff --git a/Items/ItemDefinitions/ItemDefinition.cs b/Items/ItemDefinitions/ItemDefinition.cs index 23b3b14..26e4920 100644 --- a/Items/ItemDefinitions/ItemDefinition.cs +++ b/Items/ItemDefinitions/ItemDefinition.cs @@ -38,7 +38,7 @@ public enum ItemSubtype public int id = 0; - public Rarity rarity = 0; + public Rarity rarity = 0; public ItemType type = ItemType.Other; public ItemSubtype subtype = ItemSubtype.None; diff --git a/Items/ItemPickUp.cs b/Items/ItemPickUp.cs index 15cc93c..5b2c577 100644 --- a/Items/ItemPickUp.cs +++ b/Items/ItemPickUp.cs @@ -8,7 +8,7 @@ using Random = UnityEngine.Random; -namespace ChampionsOfForest +namespace ChampionsOfForest.Items { public class ItemPickUp : MonoBehaviour { @@ -27,7 +27,7 @@ public enum DropSource { EnemyOnDeath = 120, PlayerInventory = 60, - PlayerDeath = 900, + PlayerDeath = 2000, Effigy = 30, } private void Start() @@ -53,10 +53,11 @@ private void Start() Invoke("UnlockPhysics", 0.5f + Random.value); src = gameObject.AddComponent(); src.spatialBlend = 1f; - src.maxDistance = 150f; + src.maxDistance = 100f; src.volume = 3; src.clip = Res.ResourceLoader.instance.LoadedAudio[item.GetDropSoundID()]; - src.Play(100UL); + src.pitch = item.GetInvSoundPitch(); + src.Play(10UL); } public void EnableDisplay() @@ -109,7 +110,7 @@ private void OnGUI() } } - GUI.color = new Color(MainMenu.RarityColors[item.rarity].r, MainMenu.RarityColors[item.rarity].g, MainMenu.RarityColors[item.rarity].b, displayTime); + GUI.color = new Color(item.RarityColor.r, item.RarityColor.g, item.RarityColor.b, displayTime); GUIStyle style = new GUIStyle(GUI.skin.label) { alignment = TextAnchor.UpperCenter, font = MainMenu.Instance.mainFont, fontSize = Mathf.RoundToInt(40 * MainMenu.Instance.screenScale) }; float titleHeight = style.CalcHeight(new GUIContent(label), r.width); @@ -148,7 +149,7 @@ private void OnGUI() { statsvalue = amount.ToString("N" + stat.roundingCount) + " "; } - GUI.color = MainMenu.RarityColors[stat.rarity]; + GUI.color = Color.white; //Name statStyle.alignment = TextAnchor.UpperLeft; diff --git a/Items/ItemPicker.cs b/Items/ItemPicker.cs index 6789d13..3c1fcbc 100644 --- a/Items/ItemPicker.cs +++ b/Items/ItemPicker.cs @@ -2,7 +2,7 @@ using UnityEngine; -namespace ChampionsOfForest +namespace ChampionsOfForest.Items { public class ClientItemPicker : MonoBehaviour { diff --git a/Items/ItemStat.cs b/Items/ItemStat.cs index 1f22acf..9373b68 100644 --- a/Items/ItemStat.cs +++ b/Items/ItemStat.cs @@ -6,10 +6,10 @@ using UnityEngine; -using static ChampionsOfForest.ItemDatabase; -using static ChampionsOfForest.ItemStatBuilder; +using static ChampionsOfForest.Items.ItemDatabase; +using static ChampionsOfForest.Items.ItemStatBuilder; -namespace ChampionsOfForest +namespace ChampionsOfForest.Items { public class ItemStatBuilder : ItemStat diff --git a/Items/ItemTemplates.cs b/Items/ItemTemplates.cs index ee2d526..e2407d4 100644 --- a/Items/ItemTemplates.cs +++ b/Items/ItemTemplates.cs @@ -6,7 +6,6 @@ using ChampionsOfForest.Player; using static ChampionsOfForest.Items.ItemDatabase.Stat; -using static ChampionsOfForest.ItemDatabase; using static ChampionsOfForest.Items.ItemDatabase; namespace ChampionsOfForest.Items.ItemTemplates diff --git a/Items/MoreCraftingReceipes.cs b/Items/MoreCraftingReceipes.cs index 6ed4641..63c495f 100644 --- a/Items/MoreCraftingReceipes.cs +++ b/Items/MoreCraftingReceipes.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; + using ChampionsOfForest; using TheForest.Items; @@ -9,440 +10,444 @@ using UnityEngine; -using static MoreCraftingReceipes.VanillaItemIDs; +using static ChampionsOfForest.Items.MoreCraftingReceipes.VanillaItemIDs; //based off code from another mod RMoreCrafting https://modapi.survivetheforest.net/mod/118/more-crafting by Rurido -public static class MoreCraftingReceipes +namespace ChampionsOfForest.Items { - public class COTFCustomReceipe + + public static class MoreCraftingReceipes { - public Receipe receipe; - public bool unlocked; + public class COTFCustomReceipe + { + public Receipe receipe; + public bool unlocked; - public COTFCustomReceipe(Receipe receipe, bool unlocked = false) + public COTFCustomReceipe(Receipe receipe, bool unlocked = false) + { + this.receipe = receipe; + this.unlocked = unlocked; + } + } + public enum CustomReceipe { - this.receipe = receipe; - this.unlocked = unlocked; + ModernArrows, + FlintlockAmmo, + CrossbowAmmo, + ClothFromDeer, + ClothFromRabbit, + ClothFromRacoon, + ClothFromBoar, + PlaneAxe, } - } - public enum CustomReceipe - { - ModernArrows, - FlintlockAmmo, - CrossbowAmmo, - ClothFromDeer, - ClothFromRabbit, - ClothFromRacoon, - ClothFromBoar, - PlaneAxe, - } - private static List baseReceipes; - private static List customReceipeList = new List(); - public static void SetCustomReceipeUnlockState(CustomReceipe customReceipe, in bool b) - { - customReceipeList[(int)customReceipe].unlocked = b; - } - public static bool BlockUpdating = false; - private const int IdStartIndex = 600; - public static void LockAll() - { - foreach (var item in customReceipeList) + private static List baseReceipes; + private static List customReceipeList = new List(); + public static void SetCustomReceipeUnlockState(CustomReceipe customReceipe, in bool b) { - item.unlocked = false; + customReceipeList[(int)customReceipe].unlocked = b; } - } - - /// - /// Populate the list that contains custom receipes - /// - public static void Initialize() - { - try + public static bool BlockUpdating = false; + private const int IdStartIndex = 600; + public static void LockAll() { - BlockUpdating = false; - baseReceipes = null; - customReceipeList.Clear(); - _NextReceipeId = IdStartIndex; - try + foreach (var item in customReceipeList) { - Receipe poisonArrowsCopy = ReceipeDatabase._instance._receipes.FirstOrDefault(x => x._productItemID == 83 && x._ingredients.Any(y => y._itemID == 112)).CopyReceipe(); - poisonArrowsCopy._weaponStatUpgrades[0]._type = WeaponStatUpgrade.Types.ModernAmmo; - poisonArrowsCopy._ingredients[1] = CreateReceipeIngredient(COINS, 5); - poisonArrowsCopy._name = "Modern Arrows"; - customReceipeList.Add(new COTFCustomReceipe(poisonArrowsCopy)); + item.unlocked = false; } - catch (Exception e) + } + + /// + /// Populate the list that contains custom receipes + /// + public static void Initialize() + { + try { - ModAPI.Log.Write("Exception copying receipe " + e); - } - CreateRecipe(FLINTLOCKAMMO, 10, - CreateReceipeIngredient(COINS, 15), - CreateReceipeIngredient(ROCK, 1))._name = "Flintlock ammo"; + BlockUpdating = false; + baseReceipes = null; + customReceipeList.Clear(); + _NextReceipeId = IdStartIndex; + try + { + Receipe poisonArrowsCopy = ReceipeDatabase._instance._receipes.FirstOrDefault(x => x._productItemID == 83 && x._ingredients.Any(y => y._itemID == 112)).CopyReceipe(); + poisonArrowsCopy._weaponStatUpgrades[0]._type = WeaponStatUpgrade.Types.ModernAmmo; + poisonArrowsCopy._ingredients[1] = CreateReceipeIngredient(COINS, 5); + poisonArrowsCopy._name = "Modern Arrows"; + customReceipeList.Add(new COTFCustomReceipe(poisonArrowsCopy)); + } + catch (Exception e) + { + ModAPI.Log.Write("Exception copying receipe " + e); + } + CreateRecipe(FLINTLOCKAMMO, 10, + CreateReceipeIngredient(COINS, 15), + CreateReceipeIngredient(ROCK, 1))._name = "Flintlock ammo"; - CreateRecipe(CROSSBOWAMMO, 9, - CreateReceipeIngredient(ROCK, 3), - CreateReceipeIngredient(STICK, 3))._name = "Crossbow bolts"; + CreateRecipe(CROSSBOWAMMO, 9, + CreateReceipeIngredient(ROCK, 3), + CreateReceipeIngredient(STICK, 3))._name = "Crossbow bolts"; - CreateRecipe(CLOTH, 30, - CreateReceipeIngredient(DEERSKIN, 3))._name = "Cloth"; + CreateRecipe(CLOTH, 30, + CreateReceipeIngredient(DEERSKIN, 3))._name = "Cloth"; - CreateRecipe(CLOTH, 50, - CreateReceipeIngredient(RABBITSKIN, 5))._name = "Cloth"; + CreateRecipe(CLOTH, 50, + CreateReceipeIngredient(RABBITSKIN, 5))._name = "Cloth"; - CreateRecipe(CLOTH, 20, - CreateReceipeIngredient(RACOONSKIN, 2))._name = "Cloth"; + CreateRecipe(CLOTH, 20, + CreateReceipeIngredient(RACOONSKIN, 2))._name = "Cloth"; - CreateRecipe(CLOTH, 40, - CreateReceipeIngredient(BOARSKIN,4))._name = "Cloth"; + CreateRecipe(CLOTH, 40, + CreateReceipeIngredient(BOARSKIN, 4))._name = "Cloth"; - CreateRecipe(AXEPLANE, 1, - CreateReceipeIngredient(AXECRAFTED, 1), - CreateReceipeIngredient(ROPE, 1), - CreateReceipeIngredient(STICK, 2) - )._name = "Plane Axe"; + CreateRecipe(AXEPLANE, 1, + CreateReceipeIngredient(AXECRAFTED, 1), + CreateReceipeIngredient(ROPE, 1), + CreateReceipeIngredient(STICK, 2) + )._name = "Plane Axe"; - } - catch (Exception ex) - { + } + catch (Exception ex) + { - ModAPI.Log.Write("Custom crafting recipes exception: " + ex); - } + ModAPI.Log.Write("Custom crafting recipes exception: " + ex); + } - } + } - private static int _NextReceipeId = IdStartIndex; + private static int _NextReceipeId = IdStartIndex; - public static int NextReceipeId - { - get + public static int NextReceipeId { - return _NextReceipeId++; + get + { + return _NextReceipeId++; + } } - } - - public static void AddReceipes() - { - if (BlockUpdating) - return; - if (baseReceipes == null) - baseReceipes = ReceipeDatabase._instance._receipes.ToList(); - foreach (var item in customReceipeList) - { - LocalPlayer.ReceipeBook.RemoveReceipe(item.receipe._id); - } - var customReceipes = customReceipeList.Where(x => x.unlocked).Select(x => x.receipe); - List addedIDs = new List(); - if (customReceipes.Count() > 0) + public static void AddReceipes() { - try + if (BlockUpdating) + return; + if (baseReceipes == null) + baseReceipes = ReceipeDatabase._instance._receipes.ToList(); + foreach (var item in customReceipeList) { - var receipes2 = new List(baseReceipes); - receipes2.AddRange(customReceipes); - ReceipeDatabase._instance._receipes = receipes2.ToArray(); + LocalPlayer.ReceipeBook.RemoveReceipe(item.receipe._id); + } - catch + var customReceipes = customReceipeList.Where(x => x.unlocked).Select(x => x.receipe); + List addedIDs = new List(); + if (customReceipes.Count() > 0) { - Utils.Log("Crafting: Merging Failed"); + try + { + var receipes2 = new List(baseReceipes); + receipes2.AddRange(customReceipes); + ReceipeDatabase._instance._receipes = receipes2.ToArray(); + } + catch + { + Utils.Log("Crafting: Merging Failed"); + } + foreach (var item in customReceipes) + { + LocalPlayer.ReceipeBook.AddReceipe(item._id); + + } } - foreach (var item in customReceipes) + else { - LocalPlayer.ReceipeBook.AddReceipe(item._id); - + ReceipeDatabase._instance._receipes = baseReceipes.ToArray(); } } - else - { - ReceipeDatabase._instance._receipes = baseReceipes.ToArray(); - } - } - public static ReceipeIngredient CreateReceipeIngredient(VanillaItemIDs itemId, int amount) - { - return new ReceipeIngredient + public static ReceipeIngredient CreateReceipeIngredient(VanillaItemIDs itemId, int amount) { - _amount = amount, - _itemID = (int)itemId - }; - } - public static Receipe CopyReceipe(this Receipe r) - { - return new Receipe() + return new ReceipeIngredient + { + _amount = amount, + _itemID = (int)itemId + }; + } + public static Receipe CopyReceipe(this Receipe r) { - _id = NextReceipeId, - _batchUpgrade = r._batchUpgrade, - _forceUnique = r._forceUnique, - _hidden = r._hidden, - _ingredients = r._ingredients, - _name = r._name, - _productItemAmount = r._productItemAmount, - _productItemID = r._productItemID, - _productItemType = r._productItemType, - _type = r._type, - _weaponStatUpgrades = r._weaponStatUpgrades - }; - } - public static Receipe CreateRecipe(VanillaItemIDs productItemId, int productItemAmout, params ReceipeIngredient[] receipeIngredients) - { - var r = new Receipe + return new Receipe() + { + _id = NextReceipeId, + _batchUpgrade = r._batchUpgrade, + _forceUnique = r._forceUnique, + _hidden = r._hidden, + _ingredients = r._ingredients, + _name = r._name, + _productItemAmount = r._productItemAmount, + _productItemID = r._productItemID, + _productItemType = r._productItemType, + _type = r._type, + _weaponStatUpgrades = r._weaponStatUpgrades + }; + } + public static Receipe CreateRecipe(VanillaItemIDs productItemId, int productItemAmout, params ReceipeIngredient[] receipeIngredients) { - _id = NextReceipeId, - _hidden = false, - _ingredients = receipeIngredients, - _productItemAmount = new RandomRange + var r = new Receipe { - _max = productItemAmout, - _min = productItemAmout - }, - _productItemID = (int)productItemId, - _productItemType = ItemDatabase.ItemById((int)productItemId)._type, - _type = Receipe.Types.Craft, - _weaponStatUpgrades = new WeaponStatUpgrade[0] - }; - customReceipeList.Add(new COTFCustomReceipe(r)); + _id = NextReceipeId, + _hidden = false, + _ingredients = receipeIngredients, + _productItemAmount = new RandomRange + { + _max = productItemAmout, + _min = productItemAmout + }, + _productItemID = (int)productItemId, + _productItemType = ItemDatabase.ItemById((int)productItemId)._type, + _type = Receipe.Types.Craft, + _weaponStatUpgrades = new WeaponStatUpgrade[0] + }; + customReceipeList.Add(new COTFCustomReceipe(r)); - return r; - } - // --------------------------ITEM IDs-------------------------- + return r; + } + // --------------------------ITEM IDs-------------------------- - public enum VanillaItemIDs - { - BOMBTIMED = 29, - CBOARD = 31, - CLOTH = 33, - LEAF = 34, - TAPESTICKY = 280, - LIZARD = 35, - BATTERY = 36, - FUEL = 262, - BOOZE = 37, - CASH = 38, - WATCH = 41, - FEATHER = 42, - FLARE = 43, - FLAREGUN = 44, - FLINTLOCK = 230, - FLINTLOCKPART1 = 232, - FLINTLOCKPART2 = 233, - FLINTLOCKPART3 = 234, - FLINTLOCKPART4 = 235, - FLINTLOCKPART5 = 236, - FLINTLOCKPART6 = 237, - FLINTLOCKPART7 = 238, - FLINTLOCKPART8 = 241, - HEAD = 46, - LEG = 47, - LIGHTER = 48, - MEDS = 49, - PLASTICTORCH = 51, - PLASTICTORCH_BOW = 283, - PLASTICTORCH_MODERNBOW = 287, - PLASTICTORCH_CHAINSAW = 288, - PLASTICTORCH_FLINTLOCK = 289, - ROCK = 53, - ROPE = 54, - SPEAR = 56, - STICK = 57, - TOOTH = 60, - WALKMAN = 61, - PEDOMETER = 63, - MARIGOLD = 67, - MEDICINECRAFTED = 68, - MEDICINECRAFTEDPLUS = 212, - CASSETTE1 = 69, - MOLOTOV = 71, - SURVIVALBOOK = 74, - FIRESTICK = 75, - HAIRSPRAY = 291, - RABBITDEAD = 76, - RABBITALIVE = 77, - LOG = 78, - BOW = 79, - BOWCROSS = 306, - SLINGSHOT = 281, - RECURVEBOW = 279, - AXEPLANE = 80, - CHAINSAW = 261, - TENNISBALL = 81, - ARTIFACTBALL = 294, - SMALLROCK = 82, - ARROWS = 83, - AXERUSTY = 86, - AXECRAFTED = 87, - REPAIRTOOL = 257, - AXEMODERN = 88, - CHOCOLATEBAR = 89, - ARM = 90, - COINS = 91, - LIZARDSKIN = 92, - SKULL = 94, - CLUBCRAFTED = 95, - CLUB = 96, - CONEFLOWER = 97, - CHICORY = 98, - ALOE = 99, - ENERGYMIX = 100, - ENERGYMIXPLUS = 213, - HEADBOMB = 101, - SEED_ALOE = 103, - TREESAP = 104, - STICKUPGRADED = 105, - ROCKUPGRADED = 106, - FLAREGUNAMMO = 107, - FLINTLOCKAMMO = 231, - CROSSBOWAMMO = 307, - GLASS = 108, - SODA = 109, - PLANEFOOD = 110, - TWINBERRY = 112, - SNOWBERRY = 113, - BLUEBERRY = 114, - MUSHROOMAMANITA = 115, - MUSHROOMJACK = 277, - MUSHROOMCHANTERELLE = 116, - MUSHROOMDEERMUSH = 278, - MUSHROOMLIBERTYCAP = 276, - MUSHROOMPUFFMUSH = 275, - CASSETTE2 = 117, - CASSETTE4 = 118, - CASSETTE3 = 119, - CASSETTE5 = 120, - CAMCORDERTAPE1 = 269, - CAMCORDERTAPE2 = 272, - CAMCORDERTAPE4 = 271, - CAMCORDERTAPE5 = 274, - CAMCORDERTAPE6 = 273, - CAMCORDERTAPE3 = 270, - WALKYTALKY = 122, - GENERICMEAT = 123, - DEERSKIN = 126, - WARMSUIT = 299, - BOARSKIN = 292, - RACOONSKIN = 293, - COD = 127, - RABBITSKIN = 129, - POUCH = 130, - BLUEPAINT = 131, - ORANGEPAINT = 132, - TOY_HEAD = 133, - TOY_ARM = 134, - TOY_LEG = 135, - TOY_TORSO = 136, - STEALTHARMOR = 137, - AXECLIMBING = 138, - MAP_CAVE2 = 139, - CROSS = 140, - PAINTBRUSH = 240, - TURTLESHELL = 141, - POT = 142, - REBREATHER = 143, - AIRCANISTER = 144, - WATERSKIN = 145, - MAGAZINECAVER = 147, - MAGAZINE = 148, - MAGAZINELIMESTONE = 149, - BIBLE = 150, - POLAROIDYACHT = 152, - POLAROIDKEYCARD1 = 258, - POLAROIDKEYCARD2 = 259, - POLAROIDKEYCARD3 = 260, - PAGECHURCH = 308, - PAGEGLIDER = 309, - PAGEROLLERCOASTER = 310, - PAGETOWER = 311, - PHOTOCACHE1 = 220, - PHOTOCACHE2 = 226, - PHOTOCACHE3 = 225, - PHOTOCACHE8 = 224, - PHOTOCACHE9 = 227, - PHOTOTIMMY = 302, - PHOTOCACHE6 = 223, - PHOTOCACHE5 = 222, - SHIPPINGMANIFEST = 229, - RESTRAININGORDER = 243, - TERMINATIONLETTER = 244, - MORGUEREPORT = 245, - BIBLEPAGE1 = 246, - MEGANDRAWINGFLOWER = 251, - MEGANDRAWINGUNICORN = 253, - MEGANDRAWINGDADDY = 252, - MEGANDRAWINGDINO = 254, - MEGANCRAYONS = 248, - CAMCORDER = 267, - ARTIFACTPHOTO = 249, - EMAILPLANE = 255, - EMAILPHOTO = 256, - BIBLEPAGE2 = 247, - BIBLEPAGE3 = 303, - PHOTOCACHE4 = 221, - POLAROIDMEGAN = 219, - POLAROIDVAGZ = 153, - SKETCHSINKHOLE = 154, - SKETCHVAGZ = 155, - MAPPIECE_1 = 156, - MAPPIECE_2 = 157, - MAPPIECE_4 = 159, - MAPPIECE_3 = 165, - MAPFULL = 169, - COMPASS = 173, - DYNAMITE = 175, - MILKCARTON = 176, - SPEARUPGRADED = 177, - BONE = 178, - TOYFULL = 179, - KATANA = 180, - MACHETE = 265, - OYSTER = 181, - POLAROIDTEDDY = 182, - NEWSPAPERSTRIPPER = 183, - TENNISRAQUET = 184, - ANIMALHEAD_RABBIT = 185, - ANIMALHEAD_BOAR = 186, - ANIMALHEAD_DEER = 187, - ANIMALHEAD_CROCODILE = 188, - ANIMALHEAD_RACOON = 189, - ANIMALHEAD_LIZARD = 190, - ANIMALHEAD_SEAGUL = 191, - ANIMALHEAD_SQUIRREL = 192, - ANIMALHEAD_TORTOISE = 193, - CREEPYHEAD_ARMSY = 295, - CREEPYHEAD_BABY = 296, - CREEPYHEAD_FAT = 297, - CREEPYHEAD_VAG = 298, - ANIMALHEAD_GOOSE = 194, - ANIMALHEAD_SHARK = 195, - CAVEMAP = 196, - PASSENGERMANIFEST = 197, - METALTINTRAY = 198, - SNOWSHOES = 199, - QUIVER = 200, - ROCKBAG = 214, - STICKBAG = 215, - SMALLROCKBAG = 282, - SPEARBAG = 290, - RABBITFURBOOTS = 201, - FORTUNE = 202, - BOOKDARKHAIRED = 203, - BONEARMOR = 204, - CREEPYSKIN = 301, - SEED_CONEFLOWER = 205, - SEED_BLUEBERRY = 206, - SMALLGENERICMEAT = 207, - TIMMYDRAWING = 208, - MAGAZINE_REALITY = 209, - CHAINSAWAD = 263, - MAGAZINE_SCIENCE = 218, - KEYCARD = 210, - ARTIFACTKEY = 305, - KEYCARDELEVATOR = 242, - SKETCHARTIFACT = 217, - SKETCHARTIFACT4 = 250, - BLACKBERRY = 211 - } - // ------------------------------------------------------------1 + public enum VanillaItemIDs + { + BOMBTIMED = 29, + CBOARD = 31, + CLOTH = 33, + LEAF = 34, + TAPESTICKY = 280, + LIZARD = 35, + BATTERY = 36, + FUEL = 262, + BOOZE = 37, + CASH = 38, + WATCH = 41, + FEATHER = 42, + FLARE = 43, + FLAREGUN = 44, + FLINTLOCK = 230, + FLINTLOCKPART1 = 232, + FLINTLOCKPART2 = 233, + FLINTLOCKPART3 = 234, + FLINTLOCKPART4 = 235, + FLINTLOCKPART5 = 236, + FLINTLOCKPART6 = 237, + FLINTLOCKPART7 = 238, + FLINTLOCKPART8 = 241, + HEAD = 46, + LEG = 47, + LIGHTER = 48, + MEDS = 49, + PLASTICTORCH = 51, + PLASTICTORCH_BOW = 283, + PLASTICTORCH_MODERNBOW = 287, + PLASTICTORCH_CHAINSAW = 288, + PLASTICTORCH_FLINTLOCK = 289, + ROCK = 53, + ROPE = 54, + SPEAR = 56, + STICK = 57, + TOOTH = 60, + WALKMAN = 61, + PEDOMETER = 63, + MARIGOLD = 67, + MEDICINECRAFTED = 68, + MEDICINECRAFTEDPLUS = 212, + CASSETTE1 = 69, + MOLOTOV = 71, + SURVIVALBOOK = 74, + FIRESTICK = 75, + HAIRSPRAY = 291, + RABBITDEAD = 76, + RABBITALIVE = 77, + LOG = 78, + BOW = 79, + BOWCROSS = 306, + SLINGSHOT = 281, + RECURVEBOW = 279, + AXEPLANE = 80, + CHAINSAW = 261, + TENNISBALL = 81, + ARTIFACTBALL = 294, + SMALLROCK = 82, + ARROWS = 83, + AXERUSTY = 86, + AXECRAFTED = 87, + REPAIRTOOL = 257, + AXEMODERN = 88, + CHOCOLATEBAR = 89, + ARM = 90, + COINS = 91, + LIZARDSKIN = 92, + SKULL = 94, + CLUBCRAFTED = 95, + CLUB = 96, + CONEFLOWER = 97, + CHICORY = 98, + ALOE = 99, + ENERGYMIX = 100, + ENERGYMIXPLUS = 213, + HEADBOMB = 101, + SEED_ALOE = 103, + TREESAP = 104, + STICKUPGRADED = 105, + ROCKUPGRADED = 106, + FLAREGUNAMMO = 107, + FLINTLOCKAMMO = 231, + CROSSBOWAMMO = 307, + GLASS = 108, + SODA = 109, + PLANEFOOD = 110, + TWINBERRY = 112, + SNOWBERRY = 113, + BLUEBERRY = 114, + MUSHROOMAMANITA = 115, + MUSHROOMJACK = 277, + MUSHROOMCHANTERELLE = 116, + MUSHROOMDEERMUSH = 278, + MUSHROOMLIBERTYCAP = 276, + MUSHROOMPUFFMUSH = 275, + CASSETTE2 = 117, + CASSETTE4 = 118, + CASSETTE3 = 119, + CASSETTE5 = 120, + CAMCORDERTAPE1 = 269, + CAMCORDERTAPE2 = 272, + CAMCORDERTAPE4 = 271, + CAMCORDERTAPE5 = 274, + CAMCORDERTAPE6 = 273, + CAMCORDERTAPE3 = 270, + WALKYTALKY = 122, + GENERICMEAT = 123, + DEERSKIN = 126, + WARMSUIT = 299, + BOARSKIN = 292, + RACOONSKIN = 293, + COD = 127, + RABBITSKIN = 129, + POUCH = 130, + BLUEPAINT = 131, + ORANGEPAINT = 132, + TOY_HEAD = 133, + TOY_ARM = 134, + TOY_LEG = 135, + TOY_TORSO = 136, + STEALTHARMOR = 137, + AXECLIMBING = 138, + MAP_CAVE2 = 139, + CROSS = 140, + PAINTBRUSH = 240, + TURTLESHELL = 141, + POT = 142, + REBREATHER = 143, + AIRCANISTER = 144, + WATERSKIN = 145, + MAGAZINECAVER = 147, + MAGAZINE = 148, + MAGAZINELIMESTONE = 149, + BIBLE = 150, + POLAROIDYACHT = 152, + POLAROIDKEYCARD1 = 258, + POLAROIDKEYCARD2 = 259, + POLAROIDKEYCARD3 = 260, + PAGECHURCH = 308, + PAGEGLIDER = 309, + PAGEROLLERCOASTER = 310, + PAGETOWER = 311, + PHOTOCACHE1 = 220, + PHOTOCACHE2 = 226, + PHOTOCACHE3 = 225, + PHOTOCACHE8 = 224, + PHOTOCACHE9 = 227, + PHOTOTIMMY = 302, + PHOTOCACHE6 = 223, + PHOTOCACHE5 = 222, + SHIPPINGMANIFEST = 229, + RESTRAININGORDER = 243, + TERMINATIONLETTER = 244, + MORGUEREPORT = 245, + BIBLEPAGE1 = 246, + MEGANDRAWINGFLOWER = 251, + MEGANDRAWINGUNICORN = 253, + MEGANDRAWINGDADDY = 252, + MEGANDRAWINGDINO = 254, + MEGANCRAYONS = 248, + CAMCORDER = 267, + ARTIFACTPHOTO = 249, + EMAILPLANE = 255, + EMAILPHOTO = 256, + BIBLEPAGE2 = 247, + BIBLEPAGE3 = 303, + PHOTOCACHE4 = 221, + POLAROIDMEGAN = 219, + POLAROIDVAGZ = 153, + SKETCHSINKHOLE = 154, + SKETCHVAGZ = 155, + MAPPIECE_1 = 156, + MAPPIECE_2 = 157, + MAPPIECE_4 = 159, + MAPPIECE_3 = 165, + MAPFULL = 169, + COMPASS = 173, + DYNAMITE = 175, + MILKCARTON = 176, + SPEARUPGRADED = 177, + BONE = 178, + TOYFULL = 179, + KATANA = 180, + MACHETE = 265, + OYSTER = 181, + POLAROIDTEDDY = 182, + NEWSPAPERSTRIPPER = 183, + TENNISRAQUET = 184, + ANIMALHEAD_RABBIT = 185, + ANIMALHEAD_BOAR = 186, + ANIMALHEAD_DEER = 187, + ANIMALHEAD_CROCODILE = 188, + ANIMALHEAD_RACOON = 189, + ANIMALHEAD_LIZARD = 190, + ANIMALHEAD_SEAGUL = 191, + ANIMALHEAD_SQUIRREL = 192, + ANIMALHEAD_TORTOISE = 193, + CREEPYHEAD_ARMSY = 295, + CREEPYHEAD_BABY = 296, + CREEPYHEAD_FAT = 297, + CREEPYHEAD_VAG = 298, + ANIMALHEAD_GOOSE = 194, + ANIMALHEAD_SHARK = 195, + CAVEMAP = 196, + PASSENGERMANIFEST = 197, + METALTINTRAY = 198, + SNOWSHOES = 199, + QUIVER = 200, + ROCKBAG = 214, + STICKBAG = 215, + SMALLROCKBAG = 282, + SPEARBAG = 290, + RABBITFURBOOTS = 201, + FORTUNE = 202, + BOOKDARKHAIRED = 203, + BONEARMOR = 204, + CREEPYSKIN = 301, + SEED_CONEFLOWER = 205, + SEED_BLUEBERRY = 206, + SMALLGENERICMEAT = 207, + TIMMYDRAWING = 208, + MAGAZINE_REALITY = 209, + CHAINSAWAD = 263, + MAGAZINE_SCIENCE = 218, + KEYCARD = 210, + ARTIFACTKEY = 305, + KEYCARDELEVATOR = 242, + SKETCHARTIFACT = 217, + SKETCHARTIFACT4 = 250, + BLACKBERRY = 211 + } + // ------------------------------------------------------------1 + } } \ No newline at end of file diff --git a/Items/PickUpManager.cs b/Items/PickUpManager.cs index 8a1915d..e1d89c7 100644 --- a/Items/PickUpManager.cs +++ b/Items/PickUpManager.cs @@ -2,6 +2,8 @@ using BuilderCore; +using ChampionsOfForest.Items; + using UnityEngine; namespace ChampionsOfForest @@ -136,27 +138,17 @@ public static void SpawnPickUp(Item item, Vector3 pos, int amount, ulong id, Ite foreach (var rend in meshRenderes) { - rend.material.color = MainMenu.RarityColors[item.rarity]; + rend.material.color = item.RarityColor; } - if (item.rarity > 2) + if (item.GlowIntensity > 0) { Light l = spawn.AddComponent(); l.type = LightType.Point; l.shadowStrength = 1; - l.color = MainMenu.RarityColors[item.rarity]; - l.intensity = 1f; + l.color = item.GlowColor; + l.intensity = item.GlowIntensity; l.range = 4f; - if (item.rarity > 5) - { - l.range = 7f; - l.intensity = 1.7f; - l.cookieSize = 5f; - if (item.rarity == 7) - { - l.range = 12f; - l.intensity = 4f; - } - } + } goto aftercolorsetup; diff --git a/Items/RarityDisplayInfo.cs b/Items/RarityDisplayInfo.cs new file mode 100644 index 0000000..4c17d96 --- /dev/null +++ b/Items/RarityDisplayInfo.cs @@ -0,0 +1,19 @@ +using UnityEngine; + +namespace ChampionsOfForest.Items +{ + public struct RarityDisplayInfo + { + public Color color; + public string name; + public Color glowColor; + public float glowIntensity; + public RarityDisplayInfo(Item.Rarity rarity, Color color, Color glowColor, float glowIntensity) + { + this.name = rarity.ToString(); //TODO change to localized string + this.color = color; + this.glowColor = glowColor; + this.glowIntensity = glowIntensity; + } + } +} \ No newline at end of file diff --git a/Network/NetworkManager.cs b/Network/NetworkManager.cs index 48bdf4b..86cea85 100644 --- a/Network/NetworkManager.cs +++ b/Network/NetworkManager.cs @@ -2,6 +2,9 @@ using System.Collections.Generic; using Bolt; + +using ChampionsOfForest.Items; + using TheForest.Utils; using UnityEngine; diff --git a/Player/Inventory.cs b/Player/Inventory.cs index 1a42fa6..a4a2161 100644 --- a/Player/Inventory.cs +++ b/Player/Inventory.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Linq; +using ChampionsOfForest.Items; using ChampionsOfForest.Player.Crafting; using TheForest.Utils; diff --git a/Player/Main Menu/MainMenu.cs b/Player/Main Menu/MainMenu.cs index 73c4251..890be33 100644 --- a/Player/Main Menu/MainMenu.cs +++ b/Player/Main Menu/MainMenu.cs @@ -95,17 +95,7 @@ private Transform MainCamera //a static variable for colors of items with different rarities //affects item border in inventory, text color in pickup, particle effect color - public readonly static Color[] RarityColors = new Color[] - { - new Color(0.4f,0.4f,0.4f), - new Color(0.6f,0.6f,0.6f), - new Color(0.1f,0.1f,0.75f), - new Color(0.1f,0.5f,1f), - new Color(1,0.95f,0.1f), - new Color(1,0.5f,0f), - new Color(0.1f,1,0.3f), - new Color(0.74f,0.05f,0.05f), - }; + public enum OpenedMenuMode { From bb2fd7304f4c0731d43fdb9eed54dff9ba0022d1 Mon Sep 17 00:00:00 2001 From: "Hazard (Cyprian Skrzypczak)" Date: Sat, 19 Apr 2025 18:20:49 +0200 Subject: [PATCH 19/27] New loot explosion physics animation --- Items/ItemPickUp.cs | 213 ++++++++++++++++++++++++++++++++++---------- 1 file changed, 164 insertions(+), 49 deletions(-) diff --git a/Items/ItemPickUp.cs b/Items/ItemPickUp.cs index 5b2c577..b1c8b98 100644 --- a/Items/ItemPickUp.cs +++ b/Items/ItemPickUp.cs @@ -1,11 +1,16 @@ using System; +using System.Collections; using ChampionsOfForest.Effects.Sound_Effects; +using ChampionsOfForest.Network; +using ChampionsOfForest.Network.Commands; using TheForest.Utils; using UnityEngine; +using static ChampionsOfForest.Items.ItemDefinition; + using Random = UnityEngine.Random; namespace ChampionsOfForest.Items @@ -16,13 +21,14 @@ public class ItemPickUp : MonoBehaviour public int amount; public Item item; public float lifetime = 900; //in seconds - + private int rarity => (int) item.rarity; private string label; private Rigidbody rb; private float displayTime; private static Camera mainCam; private float constantViewTime; private AudioSource src; + public enum DropSource { EnemyOnDeath = 120, @@ -30,7 +36,11 @@ public enum DropSource PlayerDeath = 2000, Effigy = 30, } - private void Start() + + private Vector3 randomAxis; + + + private IEnumerator Start() { if (mainCam == null) { @@ -45,33 +55,168 @@ private void Start() item.stackedAmount = 1; if (ModSettings.IsDedicated) - return; + yield break; + rb = GetComponent(); - rb.drag = 2.1f; - rb.angularDrag = 0.01f; - rb.isKinematic = true; - Invoke("UnlockPhysics", 0.5f + Random.value); + src = gameObject.AddComponent(); src.spatialBlend = 1f; src.maxDistance = 100f; - src.volume = 3; + src.volume = 1; src.clip = Res.ResourceLoader.instance.LoadedAudio[item.GetDropSoundID()]; src.pitch = item.GetInvSoundPitch(); src.Play(10UL); - } - public void EnableDisplay() + + switch (rarity) + { + case 0: + case 1: + case 2: + yield return CommonAnimation(); + break; + case 3: + yield return RareAnimation(); + break; + case 4: + yield return LegendaryAnimation(); + break; + default: + break; + } + } + private IEnumerator CommonAnimation() { - displayTime = 1.5f; + const float delayForStrongDrag = 2f; + const float strongDrag = 15; + const float delayForKinematic = 0.5f; + const float initalLaunchForce = 2f; + const float upwardLaunchForce = 4; + + rb.mass = 0.25f; + rb.drag = 0.15f; + rb.angularDrag = 0.03f; + rb.isKinematic = false; + float scale = rarity * 0.1f + 0.7f; + transform.localScale = Vector3.one * scale; + //wait one frame + yield return null; + + Vector3 randomDirection = new Vector3(Random.value * 2 - 1, 0.25f, Random.value * 2 - 1).normalized; + rb.AddTorque(randomDirection * 200, ForceMode.VelocityChange); + rb.AddForce(Vector3.up * upwardLaunchForce + randomDirection * initalLaunchForce, ForceMode.VelocityChange); + + yield return null; + + while (rb.velocity.y > 0f) + { + yield return null; + } + yield return new WaitForSeconds(delayForStrongDrag); + while (rb.velocity.y < 0f) + { + yield return null; + } + rb.drag = strongDrag; + rb.angularDrag = strongDrag; + yield return new WaitForSeconds(delayForKinematic); + rb.isKinematic = true; + } + private IEnumerator RareAnimation() + { + const float delayForStrongDrag = 2f; + const float strongDrag = 10; + const float delayForKinematic = 1; + const float initalLaunchForce = 2.5f; + const float upwardLaunchForce = 5; + + rb.mass = 0.25f; + rb.drag = 0.1f; + rb.angularDrag = 0.01f; + rb.isKinematic = false; - public void UnlockPhysics() + //wait one frame + yield return null; + + Vector3 randomDirection = new Vector3(Random.value * 2 - 1, 0.25f, Random.value * 2 - 1).normalized; + rb.AddTorque(randomDirection * 300, ForceMode.VelocityChange); + rb.AddForce(Vector3.up * upwardLaunchForce + randomDirection * initalLaunchForce, ForceMode.VelocityChange); + + yield return null; + + while (rb.velocity.y > 0f) + { + yield return null; + } + + yield return new WaitForSeconds(delayForStrongDrag); + while (rb.velocity.y < 0f) + { + yield return null; + } + rb.drag = strongDrag; + rb.angularDrag = strongDrag; + yield return new WaitForSeconds(delayForKinematic); + rb.isKinematic = true; + + } + private IEnumerator LegendaryAnimation() { + const float delayForStrongDrag = 1.7f; + const float strongDrag = 8; + const float delayForKinematic = 0.5f; + const float initalLaunchForce = 4; + const float upwardLaunchForce = 12; + const float downwardLaunchForce = 25; + const float bumpForce = 4; + + rb.mass = 0.25f; + rb.drag = 0.1f; + rb.angularDrag = 0.01f; rb.isKinematic = false; - Vector3 randomv3 = new Vector3(Random.value, 0, Random.value); - rb.AddTorque(randomv3 * 100, ForceMode.VelocityChange); - rb.AddForce(randomv3 * 2, ForceMode.VelocityChange); + //wait one frame + yield return null; + + Vector3 randomDirection = new Vector3(Random.value * 2 - 1, 0.25f, Random.value * 2 - 1).normalized; + randomAxis = new Vector3(Random.value * 2 - 1, Random.value * 2 - 1, Random.value * 2 - 1).normalized; + rb.AddTorque(randomDirection * 400, ForceMode.VelocityChange); + rb.AddForce(Vector3.up * upwardLaunchForce + randomDirection * initalLaunchForce, ForceMode.VelocityChange); + + yield return null; + + while (rb.velocity.y > 0f) + { + yield return null; + } + + rb.AddForce(Vector3.down * downwardLaunchForce, ForceMode.VelocityChange); + + yield return new WaitForSeconds(delayForStrongDrag); + + while (rb.velocity.y < 0f) + { + yield return null; + } + rb.drag = strongDrag; + rb.angularDrag = strongDrag; + yield return new WaitForSeconds(delayForKinematic); + rb.drag = 0.1f; + rb.angularDrag = 0.01f; + rb.AddForce(Vector3.up * bumpForce, ForceMode.VelocityChange); + yield return null; + while (rb.velocity.y > 0f) + { + yield return null; + } + rb.isKinematic = true; + } + + + public void EnableDisplay() + { + displayTime = 1.5f; } private void OnGUI() @@ -174,7 +319,7 @@ public void Remove() public void OnDestroy() { - if((LocalPlayer.Transform.position-transform.position).sqrMagnitude < 250f) + if((LocalPlayer.Transform.position-transform.position).sqrMagnitude < 150f) GlobalSFX.Play(GlobalSFX.SFX.Pickup); } @@ -191,17 +336,7 @@ private void Update() lifetime -= Time.deltaTime; else { - using (System.IO.MemoryStream answerStream = new System.IO.MemoryStream()) - { - using (System.IO.BinaryWriter w = new System.IO.BinaryWriter(answerStream)) - { - w.Write(4); - w.Write(ID); - w.Close(); - } - Network.NetworkManager.SendLine(answerStream.ToArray(), Network.NetworkManager.Target.Everyone); - answerStream.Close(); - } + COTFCommand.Send(NetworkManager.Target.Others, new DestroyItemPickup(ID)); PickUpManager.RemovePickup(ID); Destroy(gameObject); } @@ -217,17 +352,7 @@ public bool PickUp() { if (Player.Inventory.Instance.AddItem(item, amount)) { - using (System.IO.MemoryStream answerStream = new System.IO.MemoryStream()) - { - using (System.IO.BinaryWriter w = new System.IO.BinaryWriter(answerStream)) - { - w.Write(4); - w.Write(ID); - w.Close(); - } - Network.NetworkManager.SendLine(answerStream.ToArray(), Network.NetworkManager.Target.Others); - answerStream.Close(); - } + COTFCommand.Send(NetworkManager.Target.Others, new DestroyItemPickup(ID)); PickUpManager.RemovePickup(ID); Destroy(gameObject); return true; @@ -259,17 +384,7 @@ public bool PickUp() amount--; if (amount <= 0) { - using (System.IO.MemoryStream answerStream = new System.IO.MemoryStream()) - { - using (System.IO.BinaryWriter w = new System.IO.BinaryWriter(answerStream)) - { - w.Write(4); - w.Write(ID); - w.Close(); - } - Network.NetworkManager.SendLine(answerStream.ToArray(), Network.NetworkManager.Target.Everyone); - answerStream.Close(); - } + COTFCommand.Send(NetworkManager.Target.Others, new DestroyItemPickup(ID)); PickUpManager.RemovePickup(ID); Destroy(gameObject); } From 24cfa9e3b81560b5ce0a9489a95dac3caab4b777 Mon Sep 17 00:00:00 2001 From: "Hazard (Cyprian Skrzypczak)" Date: Sat, 19 Apr 2025 18:21:07 +0200 Subject: [PATCH 20/27] Added new options for damage numbers --- ModSettings.cs | 6 +++ Network/CommandInitializer.cs | 6 +++ Network/CommandReader.cs | 37 ++------------ Network/Commands/GetPlayerStateParams.cs | 40 ++++++++++++++++ Network/NetworkManager.cs | 37 ++------------ Player/Main Menu/MainMenu_HUD.cs | 61 ++++++++++++++---------- Player/Overrides/PlayerStatsEx.cs | 2 +- Player/Spells/SpellActions.cs | 2 +- 8 files changed, 97 insertions(+), 94 deletions(-) diff --git a/ModSettings.cs b/ModSettings.cs index cafb8b7..6f417eb 100644 --- a/ModSettings.cs +++ b/ModSettings.cs @@ -56,6 +56,8 @@ public enum LootLevelRules float m_enemySpeedMultiplier = 1; bool m_allowElites = true; int m_lootFilterMinRarity = -1; + bool m_combineHitMarkers = false; + bool m_fullNumberHitMarkers = false; // getters public static DropsOnDeathModes DropsOnDeath => instance.m_dropsOnDeathMode; @@ -84,6 +86,8 @@ public enum LootLevelRules public static float EnemySpeedMultiplier => instance.m_enemySpeedMultiplier; public static bool AllowElites => instance.m_allowElites; public static int LootFilterMinRarity => instance.m_lootFilterMinRarity; + public static bool CombineHitMarkers => instance.m_combineHitMarkers; + public static bool FullNumberHitMarkers => instance.m_fullNumberHitMarkers; // static properties @@ -127,6 +131,8 @@ public void Reset() m_enemySpeedMultiplier = 1; m_allowElites = true; m_lootFilterMinRarity = -1; + m_combineHitMarkers = false; + m_fullNumberHitMarkers = false; } diff --git a/Network/CommandInitializer.cs b/Network/CommandInitializer.cs index fa4bfba..e083cb1 100644 --- a/Network/CommandInitializer.cs +++ b/Network/CommandInitializer.cs @@ -22,6 +22,12 @@ public static void Init() COTFCommand.Initialize( param => ModSettings.ReceivedSettingsFromServer(param)); + COTFCommand.Initialize( + param => PickUpManager.RemovePickup(param.pickupID)); + + COTFCommand.Initialize( + param => MainMenu.CreateHitMarker(param.damage, param.GetPosition(), param.GetColor())); + } } } diff --git a/Network/CommandReader.cs b/Network/CommandReader.cs index 503e691..ab0ba24 100644 --- a/Network/CommandReader.cs +++ b/Network/CommandReader.cs @@ -13,6 +13,7 @@ using TheForest.Utils; using UnityEngine; +using ChampionsOfForest.Network.Commands; namespace ChampionsOfForest.Network { @@ -273,7 +274,7 @@ public static void OnCommand(byte[] bytes) } case 4: - PickUpManager.RemovePickup(r.ReadUInt64()); + //PickUpManager.RemovePickup(r.ReadUInt64()); break; case 5: @@ -544,28 +545,6 @@ public static void OnCommand(byte[] bytes) break; } - case 20: - { - if (ModSettings.IsDedicated) - return; - - float amount = r.ReadSingle(); - Vector3 pos = new Vector3(r.ReadSingle(), r.ReadSingle(), r.ReadSingle()); - Color c = new Color(r.ReadSingle(), r.ReadSingle(), r.ReadSingle(), r.ReadSingle()); - MainMenu.CreateHitMarker(amount, pos, c); - break; - } - - case 21: - { - if (ModSettings.IsDedicated) - return; - - int amount = r.ReadInt32(); - Vector3 pos = new Vector3(r.ReadSingle(), r.ReadSingle(), r.ReadSingle()); - new MainMenu.HitMarker(amount, pos, true); - break; - } case 22: //slow enemy by id { @@ -613,17 +592,7 @@ public static void OnCommand(byte[] bytes) } } } - using (MemoryStream answerStream = new MemoryStream()) - { - using (BinaryWriter w = new BinaryWriter(answerStream)) - { - w.Write(4); - w.Write(itemID); - w.Close(); - } - NetworkManager.SendLine(answerStream.ToArray(), NetworkManager.Target.Clients); - answerStream.Close(); - } + COTFCommand.Send(NetworkManager.Target.Others, new DestroyItemPickup(itemID)); } break; diff --git a/Network/Commands/GetPlayerStateParams.cs b/Network/Commands/GetPlayerStateParams.cs index 0350bfd..8a5734f 100644 --- a/Network/Commands/GetPlayerStateParams.cs +++ b/Network/Commands/GetPlayerStateParams.cs @@ -3,6 +3,8 @@ using System.Linq; using System.Text; +using UnityEngine; + namespace ChampionsOfForest.Network.Commands { public struct GetPlayerStateParams @@ -24,4 +26,42 @@ public struct BroadcastModSettings } + public struct DestroyItemPickup + { + public ulong pickupID; + + public DestroyItemPickup(ulong pickupID) + { + this.pickupID = pickupID; + } + } + + public struct CreateHitMarker + { + public float damage; + public float x, y, z; + public float r, g, b, a; + + public CreateHitMarker(float damage, Vector3 pos, Color color) + { + this.damage = damage; + this.x = pos.x; + this.y = pos.y; + this.z = pos.z; + this.r = color.r; + this.g = color.g; + this.b = color.b; + this.a = color.a; + } + + public Color GetColor() + { + return new Color(r, g, b, a); + } + public Vector3 GetPosition() + { + return new Vector3(x, y, z); + } + } + } diff --git a/Network/NetworkManager.cs b/Network/NetworkManager.cs index 86cea85..1d76c86 100644 --- a/Network/NetworkManager.cs +++ b/Network/NetworkManager.cs @@ -4,6 +4,7 @@ using Bolt; using ChampionsOfForest.Items; +using ChampionsOfForest.Network.Commands; using TheForest.Utils; using UnityEngine; @@ -243,42 +244,12 @@ public static void HitEnemyMagic() } public static void SendHitmarker(Vector3 pos, float amount, Color c) { - using (System.IO.MemoryStream answerStream = new System.IO.MemoryStream()) - { - using (System.IO.BinaryWriter w = new System.IO.BinaryWriter(answerStream)) - { - w.Write(20); - w.Write(amount); - w.Write(pos.x); - w.Write(pos.y); - w.Write(pos.z); - w.Write(c.r); - w.Write(c.g); - w.Write(c.b); - w.Write(c.a); - w.Close(); - } - SendLine(answerStream.ToArray(), Target.Everyone); - answerStream.Close(); - } + COTFCommand.Send(Target.Everyone, new CreateHitMarker(amount,pos,c)) } - public static void SendPlayerHitmarker(Vector3 pos, int amount) + public static void SendPlayerHitmarker(Vector3 pos, float amount) { - using (System.IO.MemoryStream answerStream = new System.IO.MemoryStream()) - { - using (System.IO.BinaryWriter w = new System.IO.BinaryWriter(answerStream)) - { - w.Write(21); - w.Write(amount); - w.Write(pos.x); - w.Write(pos.y); - w.Write(pos.z); - w.Close(); - } - SendLine(answerStream.ToArray(), Target.Everyone); - answerStream.Close(); - } + SendHitmarker(pos, amount, Color.green); } /// diff --git a/Player/Main Menu/MainMenu_HUD.cs b/Player/Main Menu/MainMenu_HUD.cs index dccdab0..556c77d 100644 --- a/Player/Main Menu/MainMenu_HUD.cs +++ b/Player/Main Menu/MainMenu_HUD.cs @@ -73,19 +73,20 @@ private void DrawBuff(float x, float y, Texture2D tex, string amount, string tim //Hit markers public static void CreateHitMarker(float dmg, Vector3 p, Color color) { - var marker = Instance.hitMarkers.Where(x => x.Player == false && (x.worldPosition - p).sqrMagnitude < 4 && x.color == color); - if (marker.Count() > 0) + if (ModSettings.CombineHitMarkers) { - var m = marker.First(); - m.lifetime = 4; - m.dmg += dmg; - m.txt = m.dmg.ToString("N0"); - m.worldPosition = p; - } - else - { - new HitMarker(dmg, p, color); + var marker = Instance.hitMarkers.Where(x => x.Player == false && (x.worldPosition - p).sqrMagnitude < 4 && x.color == color); + if (marker.Count() > 0) + { + var m = marker.First(); + m.lifetime = 4; + m.dmg += dmg; + m.txt = m.dmg.ToString("N0"); + m.worldPosition = p; + return; + } } + new HitMarker(dmg, p, color); } public readonly List hitMarkers = new List(); @@ -109,21 +110,31 @@ public HitMarker(float t, Vector3 p, Color c) { color = c; dmg = t; - txt = t.ToString("N0"); + txt = DamageToString(); worldPosition = p; lifetime = StartLifetime; Instance.hitMarkers.Add(this); } - public HitMarker(int t, Vector3 p, bool Player) + + private static readonly string[] unitNames = { "", "K", "M", "B", "T", "Qa", "Qi", "Sx", "Sp", "Oc" }; + private string DamageToString() { - txt = t.ToString("N0"); - worldPosition = p; - lifetime = StartLifetime; - this.Player = Player; - if (Player) - color = new Color(0, 0.75f, 0, 0.75f); - Instance.hitMarkers.Add(this); + if(ModSettings.FullNumberHitMarkers) + { + return dmg.ToString("N0"); + } + + double damage = (double) dmg; + int unitIndex = 0; + int decCount = 0; + while (damage >= 1000 && unitIndex < unitNames.Length - 1) + { + damage /= 1000.0; + unitIndex++; + decCount = 3; + } + return damage.ToString("N" + decCount) + unitNames[unitIndex]; } } @@ -139,7 +150,7 @@ private float SmoothSlideIn(float timeAppearStart) t = 1.0f - t; if (t < 0) return 0f; - t = t * t * t*t; + t = t * t * t * t; return t * -250f * screenScale; } @@ -185,8 +196,8 @@ private void DrawHUD() continue; } GUI.Label(r, hitMarkers[i].txt, new GUIStyle(HitmarkerStyle) { fontSize = Mathf.RoundToInt(size) }); - - + + } } GUI.color = Color.white; @@ -661,7 +672,7 @@ private void DrawHUD() GUI.DrawTexture(scanRect, ResourceLoader.instance.LoadedTextures[24]); } } - catch (Exception ex) + catch (Exception ex) { Debug.LogWarning(ex.ToString()); } @@ -1075,7 +1086,7 @@ void DrawPingPreview() { Vector3 pos = Camera.main.WorldToScreenPoint(previewPingPos); pos.y = Screen.height - pos.y; - float size = Mathf.Clamp(700 / previewPingDist, 10, 40)/2; + float size = Mathf.Clamp(700 / previewPingDist, 10, 40) / 2; size *= screenScale; Rect r = previewPingType != MarkObject.PingType.Item ? new Rect(0, 0, size * 3.34f, size) diff --git a/Player/Overrides/PlayerStatsEx.cs b/Player/Overrides/PlayerStatsEx.cs index 9bdcf2c..990737a 100644 --- a/Player/Overrides/PlayerStatsEx.cs +++ b/Player/Overrides/PlayerStatsEx.cs @@ -735,7 +735,7 @@ public override void HealthChange(float amount) amount = ModdedPlayer.instance.DealDamageToShield(-amount); Health -= amount; HealthTarget -= amount * 3; - Network.NetworkManager.SendPlayerHitmarker(transform.position, (int)amount); + Network.NetworkManager.SendPlayerHitmarker(transform.position, amount); } else { diff --git a/Player/Spells/SpellActions.cs b/Player/Spells/SpellActions.cs index 73715e3..2ba2018 100644 --- a/Player/Spells/SpellActions.cs +++ b/Player/Spells/SpellActions.cs @@ -1069,7 +1069,7 @@ public static void CastBloodInfArr() if (ModdedPlayer.Stats.i_HazardCrown) ModdedPlayer.Stats.i_HazardCrownBonus.valueAdditive = 5; Effects.Sound_Effects.GlobalSFX.Play(Effects.Sound_Effects.GlobalSFX.SFX.BloodInfusedArrow); - NetworkManager.SendPlayerHitmarker(LocalPlayer.Transform.position + Vector3.up, (int)takenHP); + NetworkManager.SendPlayerHitmarker(LocalPlayer.Transform.position + Vector3.up, takenHP); } #endregion Blood Infused Arrow From deea7fb3bcb0cf32617a5e12be19d95928886477 Mon Sep 17 00:00:00 2001 From: "Hazard (Cyprian Skrzypczak)" Date: Sat, 19 Apr 2025 18:25:40 +0200 Subject: [PATCH 21/27] Removed obsolete code for black flames --- Effects/BlackFlame.cs | 118 +++++++++++++++++++-------------------- Network/CommandReader.cs | 35 ------------ 2 files changed, 58 insertions(+), 95 deletions(-) diff --git a/Effects/BlackFlame.cs b/Effects/BlackFlame.cs index fe1ad51..2f5ff0b 100644 --- a/Effects/BlackFlame.cs +++ b/Effects/BlackFlame.cs @@ -21,11 +21,66 @@ public class BlackFlame : MonoBehaviour public static GameObject instanceLocalPlayer; public static Component[] particleSystems; + public static bool IsOn = false; + public static float Cost = 20; + public static bool GiveDamageBuff; public static bool GiveAfterburn; public const float afterburn_duration = 20f, afterburn_debuff_amount = 1.8f, afterburn_chance = 0.10f; + + private static Dictionary blackFlamesClients = new Dictionary(); + + + + public void Start() + { + StartCoroutine(StartCoroutine()); + if (instance == null) + instance = this; + } + + public IEnumerator StartCoroutine() + { + yield return null; + yield return null; + while (ModReferences.rightHandTransform == null) + { + yield return null; + LocalPlayer.Inventory?.SendMessage("GetRightHand"); + } + yield return null; + if (instanceLocalPlayer == null) + { + var created = Create(); + instanceLocalPlayer = created.item0; + particleSystems = created.item1; + instanceLocalPlayer.transform.position = ModReferences.rightHandTransform.position; + instanceLocalPlayer.transform.rotation = ModReferences.rightHandTransform.rotation; + instanceLocalPlayer.transform.parent = ModReferences.rightHandTransform; + instanceLocalPlayer.SetActive(false); + } + } + + private void Update() + { + if (IsOn) + { + if (ModdedPlayer.Stats.perk_danceOfFiregod.value) + SpellCaster.RemoveStamina(Cost * 0.75f * Math.Max(LocalPlayer.Rigidbody.velocity.magnitude, 0.5f) * Time.deltaTime); + else + SpellCaster.RemoveStamina(Cost * Time.deltaTime); + if (LocalPlayer.Stats.Stamina < 5) + { + Toggle(); + } + if (GiveDamageBuff) + { + BuffDB.AddBuff(9, 44, 1.33f, 1f); + } + } + } public static STuple Create() { AnimationCurve sizecurve = new AnimationCurve(new Keyframe(0, 0, 5.129462f, 5.129462f), new Keyframe(0.2449522f, 1, 0, 0), new Keyframe(1, 0, -1.242162f, -1.242162f)); @@ -100,57 +155,6 @@ public static STuple Create() return new STuple(go, comps); } - public static bool IsOn = false; - public static float Cost = 20; - - public void Start() - { - StartCoroutine(StartCoroutine()); - if (instance == null) - instance = this; - } - - public IEnumerator StartCoroutine() - { - yield return null; - yield return null; - while (ModReferences.rightHandTransform == null) - { - yield return null; - LocalPlayer.Inventory?.SendMessage("GetRightHand"); - } - yield return null; - if (instanceLocalPlayer == null) - { - var created = Create(); - instanceLocalPlayer = created.item0; - particleSystems = created.item1; - instanceLocalPlayer.transform.position = ModReferences.rightHandTransform.position; - instanceLocalPlayer.transform.rotation = ModReferences.rightHandTransform.rotation; - instanceLocalPlayer.transform.parent = ModReferences.rightHandTransform; - instanceLocalPlayer.SetActive(false); - } - } - - private void Update() - { - if (IsOn) - { - if (ModdedPlayer.Stats.perk_danceOfFiregod.value) - SpellCaster.RemoveStamina(Cost * 0.75f * Math.Max(LocalPlayer.Rigidbody.velocity.magnitude,0.5f) * Time.deltaTime); - else - SpellCaster.RemoveStamina(Cost * Time.deltaTime); - if (LocalPlayer.Stats.Stamina < 5) - { - Toggle(); - } - if (GiveDamageBuff) - { - BuffDB.AddBuff(9, 44, 1.33f, 1f); - } - } - } - public static void Toggle() { IsOn = !IsOn; @@ -187,18 +191,12 @@ public static void Toggle() } } - private static Dictionary blackFlamesClients = new Dictionary(); - public static void ToggleOtherPlayer(string playerName, bool isOn) { - //ModAPI.Console.Write("Toggling black flames for client " + playerName + isOn); - if (!ModReferences.PlayerHands.ContainsKey(playerName)) - { - ModReferences.FindHands(); - } - if (ModReferences.PlayerHands.ContainsKey(playerName)) + var playerState = ModReferences.PlayerStates.GetPlayerState(playerName); + if (playerState.hand != null) { - Transform t = ModReferences.PlayerHands[playerName]; + Transform t = playerState.hand; if (blackFlamesClients.ContainsKey(t)) { blackFlamesClients[t].SetActive(isOn); diff --git a/Network/CommandReader.cs b/Network/CommandReader.cs index ab0ba24..214deba 100644 --- a/Network/CommandReader.cs +++ b/Network/CommandReader.cs @@ -510,41 +510,6 @@ public static void OnCommand(byte[] bytes) break; } - case 18: - { - using (MemoryStream answerStream = new MemoryStream()) - { - using (BinaryWriter w = new BinaryWriter(answerStream)) - { - w.Write(19); - w.Write(ModReferences.ThisPlayerID); - w.Write(ModdedPlayer.instance.level); - } - NetworkManager.SendLine(answerStream.ToArray(), NetworkManager.Target.Others); - } - - break; - } - - case 19: - { - string packed = r.ReadString(); - int level = r.ReadInt32(); - if (ModReferences.PlayerLevels.ContainsKey(packed)) - { - ModReferences.PlayerLevels[packed] = level; - ModReferences.UpdatePlayerLevel(packed, level); - } - else - { - ModReferences.PlayerLevels.Add(packed, level); - ModReferences.UpdatePlayerLevel(packed, level); - - } - - break; - } - case 22: //slow enemy by id { From 1f084c2a1979a4887e4262fefd0b7dcddc15ebec Mon Sep 17 00:00:00 2001 From: "Hazard (Cyprian Skrzypczak)" Date: Sat, 19 Apr 2025 18:59:18 +0200 Subject: [PATCH 22/27] Added Settings for keeping experience after death --- Items/StatActions.cs | 6 +---- ModSettings.cs | 6 +++++ Network/Commands/GetPlayerStateParams.cs | 2 +- Player/ModdedPlayer/ModdedPlayer.cs | 34 ++++++++++++++---------- Player/Overrides/PlayerRespawnMod.cs | 24 +++++++---------- 5 files changed, 37 insertions(+), 35 deletions(-) diff --git a/Items/StatActions.cs b/Items/StatActions.cs index c8855fc..b242dc6 100644 --- a/Items/StatActions.cs +++ b/Items/StatActions.cs @@ -354,11 +354,7 @@ public static void RemoveJump(float f) // ModdedPlayer.Stats. .Substract( f; //} - public static void PERMANENT_perkPointIncrease(float f) - { - ModdedPlayer.instance.PermanentBonusPerkPoints += Mathf.RoundToInt(f); - ModdedPlayer.instance.MutationPoints += Mathf.RoundToInt(f); - } + public static void PERMANENT_expIncrease(float f) { diff --git a/ModSettings.cs b/ModSettings.cs index 6f417eb..6b0719a 100644 --- a/ModSettings.cs +++ b/ModSettings.cs @@ -58,6 +58,8 @@ public enum LootLevelRules int m_lootFilterMinRarity = -1; bool m_combineHitMarkers = false; bool m_fullNumberHitMarkers = false; + float m_keptExperienceAfterDeath = 0; + bool m_endMassacreAfterDeath = true; // getters public static DropsOnDeathModes DropsOnDeath => instance.m_dropsOnDeathMode; @@ -88,6 +90,8 @@ public enum LootLevelRules public static int LootFilterMinRarity => instance.m_lootFilterMinRarity; public static bool CombineHitMarkers => instance.m_combineHitMarkers; public static bool FullNumberHitMarkers => instance.m_fullNumberHitMarkers; + public static float KeptExperienceAfterDeath => instance.m_keptExperienceAfterDeath; + public static bool EndMassacreAfterDeath => instance.m_endMassacreAfterDeath; // static properties @@ -133,6 +137,8 @@ public void Reset() m_lootFilterMinRarity = -1; m_combineHitMarkers = false; m_fullNumberHitMarkers = false; + m_keptExperienceAfterDeath = 0; + m_endMassacreAfterDeath = true; } diff --git a/Network/Commands/GetPlayerStateParams.cs b/Network/Commands/GetPlayerStateParams.cs index 8a5734f..47e42ad 100644 --- a/Network/Commands/GetPlayerStateParams.cs +++ b/Network/Commands/GetPlayerStateParams.cs @@ -14,7 +14,7 @@ public struct GetPlayerStateParams public int level; public float health; public float maxHealth; - public int xp; + public long xp; } public struct BroadcastModSettings diff --git a/Player/ModdedPlayer/ModdedPlayer.cs b/Player/ModdedPlayer/ModdedPlayer.cs index d5700f8..fb40b02 100644 --- a/Player/ModdedPlayer/ModdedPlayer.cs +++ b/Player/ModdedPlayer/ModdedPlayer.cs @@ -4,8 +4,11 @@ using System.IO; using Bolt; using ChampionsOfForest.Effects; +using ChampionsOfForest.Items; using ChampionsOfForest.Localization; using ChampionsOfForest.Network; +using ChampionsOfForest.Network.Commands; + using TheForest.Utils; using UnityEngine; using static ChampionsOfForest.Player.BuffDB; @@ -700,22 +703,25 @@ public void AddFinalExperience(long Amount) if (GameSetup.IsMultiplayer) { - using (MemoryStream answerStream = new MemoryStream()) - { - using (BinaryWriter w = new BinaryWriter(answerStream)) - { - w.Write(19); - w.Write(ModReferences.ThisPlayerID); - w.Write(instance.level); - w.Close(); - } - NetworkManager.SendLine(answerStream.ToArray(), NetworkManager.Target.Others); - answerStream.Close(); - } + SendPlayerState(); } } } + public void SendPlayerState() + { + COTFCommand.Send(NetworkManager.Target.Others, new GetPlayerStateParams() + { + entityNetworkID = LocalPlayer.Entity.networkId.PackedValue, + health = LocalPlayer.Stats.Health, + maxHealth = ModdedPlayer.Stats.TotalMaxHealth, + level = level, + playerID = ModReferences.ThisPlayerID, + xp = ExpCurrent + + }); + } + public void OnGetHit() { if (stats.spell_chanceToParryOnHit.value&& Random.value < 0.15f) @@ -950,7 +956,7 @@ public void GiveSpecialItems() { if ((level % 10) == 0 && level > 1) { - var item = new Item(ItemDatabase.ItemBaseByName("Heart of Purity")); + var item = new Item(ItemDatabase.ItemBaseByName("Heart of Purity"), 1); item.level = 1; if (!Inventory.Instance.AddItem(item)) { @@ -959,7 +965,7 @@ public void GiveSpecialItems() } else if (level >= 10 && level % 20 == 5 ) { - var item = new Item(ItemDatabase.ItemBaseByName("Greater Mutated Heart")); + var item = new Item(ItemDatabase.ItemBaseByName("Greater Mutated Heart"), 1); item.level = 1; if (!Inventory.Instance.AddItem(item)) { diff --git a/Player/Overrides/PlayerRespawnMod.cs b/Player/Overrides/PlayerRespawnMod.cs index 0f4614b..d6613df 100644 --- a/Player/Overrides/PlayerRespawnMod.cs +++ b/Player/Overrides/PlayerRespawnMod.cs @@ -28,25 +28,19 @@ protected override void Respawn() ModReferences.rightHandTransform = null; - ModdedPlayer.instance.ExpCurrent = 0; - ModdedPlayer.instance.NewlyGainedExp = 0; - ModdedPlayer.instance.MassacreKills = 0; - ModdedPlayer.instance.MassacreMultiplier = 1; - ModdedPlayer.instance.TimeUntillMassacreReset = 0; + ModdedPlayer.instance.ExpCurrent = (long)((double)ModdedPlayer.instance.ExpCurrent * (double)ModSettings.KeptExperienceAfterDeath); + ModdedPlayer.instance.NewlyGainedExp = (long)((double)ModdedPlayer.instance.ExpCurrent * (double)ModSettings.KeptExperienceAfterDeath); + if (ModSettings.EndMassacreAfterDeath) + { + ModdedPlayer.instance.MassacreKills = 0; + ModdedPlayer.instance.MassacreMultiplier = 1; + ModdedPlayer.instance.TimeUntillMassacreReset = 0; + } ModdedPlayer.instance.AfterRespawn(); BlackFlame.instance.Start(); if (GameSetup.IsMultiplayer) { - using (MemoryStream answerStream = new MemoryStream()) - { - using (BinaryWriter w = new BinaryWriter(answerStream)) - { - w.Write(19); - w.Write(ModReferences.ThisPlayerID); - w.Write(ModdedPlayer.instance.level); - } - NetworkManager.SendLine(answerStream.ToArray(), NetworkManager.Target.Others); - } + ModdedPlayer.instance.SendPlayerState(); } } } From 9ee0918fb2b535d47fb3a5f5379465a7dbf8daeb Mon Sep 17 00:00:00 2001 From: "Hazard (Cyprian Skrzypczak)" Date: Sat, 19 Apr 2025 19:03:33 +0200 Subject: [PATCH 23/27] Fixed syncing of new settings to clients --- ModSettings.cs | 4 ++++ Network/Commands/GetPlayerStateParams.cs | 2 ++ 2 files changed, 6 insertions(+) diff --git a/ModSettings.cs b/ModSettings.cs index 6b0719a..0f7c6ff 100644 --- a/ModSettings.cs +++ b/ModSettings.cs @@ -152,6 +152,8 @@ public static void BroadCastSettingsToClients() dropsOnDeath = instance.m_dropsOnDeathMode, difficulty = instance.m_difficulty, friendlyFire = instance.m_friendlyFire, + endMassacreAfterDeath = instance.m_endMassacreAfterDeath, + expKeptAfterDeath = instance.m_keptExperienceAfterDeath }); } } @@ -163,6 +165,8 @@ public static void ReceivedSettingsFromServer(BroadcastModSettings receivedSetti instance.m_dropsOnDeathMode = receivedSettings.dropsOnDeath; instance.m_killOnDowned = receivedSettings.dieOnDowned; instance.m_friendlyFire = receivedSettings.friendlyFire; + instance.m_endMassacreAfterDeath = receivedSettings.endMassacreAfterDeath; + instance.m_keptExperienceAfterDeath = receivedSettings.expKeptAfterDeath; if (!ModSettings.DifficultyChosen) { diff --git a/Network/Commands/GetPlayerStateParams.cs b/Network/Commands/GetPlayerStateParams.cs index 47e42ad..a90f0e1 100644 --- a/Network/Commands/GetPlayerStateParams.cs +++ b/Network/Commands/GetPlayerStateParams.cs @@ -23,6 +23,8 @@ public struct BroadcastModSettings public ModSettings.GameDifficulty difficulty; public bool dieOnDowned; public bool friendlyFire; + public bool endMassacreAfterDeath; + public float expKeptAfterDeath; } From 02588626e74e4378446328d33702c060cd1f64da Mon Sep 17 00:00:00 2001 From: "Hazard (Cyprian Skrzypczak)" Date: Sat, 19 Apr 2025 19:04:01 +0200 Subject: [PATCH 24/27] Removed obsolete isConsumable bool from items, now added consumable item type instead --- Items/Item.cs | 31 +++++++------------------ Items/ItemDefinitions/ItemDefinition.cs | 9 ++++--- Items/ItemDefinitions/Other.cs | 4 +++- Items/ItemTemplates.cs | 15 ++++++------ 4 files changed, 22 insertions(+), 37 deletions(-) diff --git a/Items/Item.cs b/Items/Item.cs index 331712e..fb0ed2c 100644 --- a/Items/Item.cs +++ b/Items/Item.cs @@ -59,7 +59,7 @@ public bool PlaceItemInSocket(Item other) if (other.type == ItemType.SocketableGem && HasEmptySocket) { - if (other.onConsumeCallback.Invoke(this)) + if (other.onUsedOnAnotherItemCallback.Invoke(this)) { //item was successfully socketed currentEmptySockets--; @@ -76,12 +76,12 @@ public bool CombineItems(Item other) // materials can be used to upgrade items, reroll their values, etc if (other.type == ItemType.Material) { - if (other.onConsumeCallback != null) + if (other.onUsedOnAnotherItemCallback != null) { if (isEquipped) OnUnequip(); - bool returnval = other.onConsumeCallback.Invoke(this); + bool returnval = other.onUsedOnAnotherItemCallback.Invoke(this); OnEquip(); return returnval; @@ -184,12 +184,6 @@ public int destinationSlotID case ItemType.Weapon: return -12; - case ItemType.Other: - return -1; - - case ItemType.Material: - return -1; - case ItemType.Helmet: return -2; @@ -259,6 +253,8 @@ public string TypeName() return Translations.Item_14/*Ring*/; //tr case ItemDefinition.ItemType.SpellScroll: return Translations.Item_15/*Scroll*/; //tr + case ItemDefinition.ItemType.Consumable: + return "Consumable"; //tr default: return type.ToString(); } @@ -290,10 +286,10 @@ public Item(ItemDefinition itemDefinition, int level) this.type = itemDefinition.type; this.stackSize = itemDefinition.stackSize; this.icon = itemDefinition.icon; - this.onConsumeCallback = itemDefinition.onConsumeCallback; - this.canConsume = itemDefinition.canConsume; + this.onUsedOnAnotherItemCallback = itemDefinition.onUsedOnAnotherItemCallback; this.subtype = itemDefinition.subtype; this.lootTable = itemDefinition.lootTable; + this.lootWeight = itemDefinition.lootWeight; isEquipped = false; stats = new List(); } @@ -378,24 +374,13 @@ public void OnUnequip() onUnequipCallback?.Invoke(); } - public bool OnConsume() - { - if (canConsume) - { - return onConsumeCallback.Invoke(this); - } - return false; - } - - - private readonly static RarityDisplayInfo[] rarityInfos = new RarityDisplayInfo[] { new RarityDisplayInfo(Rarity.Common, Color.white, Color.white, 0), new RarityDisplayInfo(Rarity.Uncommon, new Color(0.1f,1f,0.1f), new Color(0.1f,1f,0.1f), 0.2f), new RarityDisplayInfo(Rarity.Magic, new Color(0.1f,0.5f,1f), new Color(0.1f,0.5f,1f), 0.4f), new RarityDisplayInfo(Rarity.Rare, new Color(1f,1f,0.0f), new Color(1f,1f,0.0f), 0.6f), - new RarityDisplayInfo(Rarity.Legendary, new Color(0.74f,0.05f,0.05f), new Color(0.74f,0.05f,0.05f), 1f), + new RarityDisplayInfo(Rarity.Legendary, new Color(0.94f,0.05f,0.05f), new Color(0.94f,0.05f,0.05f), 1f), }; public Color RarityColor => rarityInfos[(int)rarity].color; public Color GlowColor => rarityInfos[(int)rarity].glowColor; diff --git a/Items/ItemDefinitions/ItemDefinition.cs b/Items/ItemDefinitions/ItemDefinition.cs index 26e4920..c457797 100644 --- a/Items/ItemDefinitions/ItemDefinition.cs +++ b/Items/ItemDefinitions/ItemDefinition.cs @@ -21,7 +21,7 @@ public StatSlot(List options, float chance = 1) public enum ItemType { - Other, Shield, Quiver, Weapon, Material, Helmet, Boot, Pants, ChestArmor, ShoulderArmor, Glove, Bracer, Amulet, Ring, SpellScroll, SocketableGem + Other, Shield, Quiver, Weapon, Material, Helmet, Boot, Pants, ChestArmor, ShoulderArmor, Glove, Bracer, Amulet, Ring, SpellScroll, SocketableGem, Consumable } public enum Rarity { @@ -34,7 +34,7 @@ public enum ItemSubtype }; public delegate void OnItemUsed(); - public delegate bool OnItemConsume(Item other); + public delegate bool OnItemUsedOnAnother(Item other); // what happens when you drag and drop this item onto another public int id = 0; @@ -42,8 +42,7 @@ public enum ItemSubtype public ItemType type = ItemType.Other; public ItemSubtype subtype = ItemSubtype.None; - public bool canConsume = false; - public OnItemConsume onConsumeCallback; + public OnItemUsedOnAnother onUsedOnAnotherItemCallback; public OnItemUsed onEquipCallback, onUnequipCallback; public List statSlots; public int maximumSocketSlots; @@ -64,7 +63,7 @@ public enum ItemSubtype //Drop settings public EnemyProgression.Enemy lootTable = EnemyProgression.Enemy.All; - public int lootWeight = 1; //weight of the item in loot table, used to calculate drop chance + public int lootWeight = 100; //weight of the item in loot table, used to calculate drop chance public ItemDefinition() { diff --git a/Items/ItemDefinitions/Other.cs b/Items/ItemDefinitions/Other.cs index 9ee33d7..9066d18 100644 --- a/Items/ItemDefinitions/Other.cs +++ b/Items/ItemDefinitions/Other.cs @@ -21,7 +21,9 @@ public static void AddConsumables() //Rarity 0 (White) //------------------------------------------------------ - new Consumable(); + new Heart() + .Name("Greater Mutated Heart") + .Consumable("Grants 1 additional perk point", () => ); diff --git a/Items/ItemTemplates.cs b/Items/ItemTemplates.cs index e2407d4..2c90274 100644 --- a/Items/ItemTemplates.cs +++ b/Items/ItemTemplates.cs @@ -167,12 +167,11 @@ public ItemTemplateBuilder LevelRequirement(int minimumLevel) return this; } - public ItemTemplateBuilder Consumable(string consumableDescriptiuon, OnItemConsume _onConsume) + public ItemTemplateBuilder Consumable(string consumableDescription, OnItemUsedOnAnother _onConsume) { - onConsumeCallback = _onConsume; - uniqueStat = consumableDescriptiuon; + onUsedOnAnotherItemCallback = _onConsume; + uniqueStat = consumableDescription; stackSize = 100; - canConsume = true; return this; } @@ -762,14 +761,14 @@ public SpellScroll() } } - public class Consumable : ItemTemplateBuilder + public class Heart : ItemTemplateBuilder { - public Consumable() + public Heart() { type = ItemType.Other; - LevelRequirement(10); + LevelRequirement(1); + canConsume = true; Icon(105); - Register(); } } From 90cddfdf58a5044db5daf79d20d3fa8bbaefc1f6 Mon Sep 17 00:00:00 2001 From: "Hazard (Cyprian Skrzypczak)" Date: Sat, 19 Apr 2025 19:13:32 +0200 Subject: [PATCH 25/27] Removed obsolete code --- Items/StatActions.cs | 612 +---------------------------------- Player/Perks/PerkDatabase.cs | 29 +- 2 files changed, 15 insertions(+), 626 deletions(-) diff --git a/Items/StatActions.cs b/Items/StatActions.cs index b242dc6..2786bd3 100644 --- a/Items/StatActions.cs +++ b/Items/StatActions.cs @@ -5,624 +5,14 @@ namespace ChampionsOfForest.Items { internal class StatActions { - public static void AddVitality(float f) - { - ModdedPlayer.Stats.vitality.Add(Mathf.RoundToInt(f)); - } - public static void RemoveVitality(float f) - { - ModdedPlayer.Stats.vitality.Add(-Mathf.RoundToInt(f)); - } - public static void AddStrength(float f) - { - ModdedPlayer.Stats.strength.Add(Mathf.RoundToInt(f)); - } - - public static void RemoveStrength(float f) - { - ModdedPlayer.Stats.strength.Add(-Mathf.RoundToInt(f)); - } - - public static void AddAgility(float f) - { - ModdedPlayer.Stats.agility.Add(Mathf.RoundToInt(f)); - } - - public static void RemoveAgility(float f) - { - ModdedPlayer.Stats.agility.Substract(Mathf.RoundToInt(f)); - } - - public static void AddIntelligence(float f) - { - ModdedPlayer.Stats.intelligence.Add(Mathf.RoundToInt(f)); - } - - public static void RemoveIntelligence(float f) - { - ModdedPlayer.Stats.intelligence.Substract(Mathf.RoundToInt(f)); - } - - public static void AddHealth(float f) - { - ModdedPlayer.Stats.maxLife.Add(Mathf.RoundToInt(f)); - } - - public static void RemoveHealth(float f) - { - ModdedPlayer.Stats.maxLife.Substract(Mathf.RoundToInt(f)); - } - - public static void AddEnergy(float f) - { - ModdedPlayer.Stats.maxEnergy.Add(Mathf.RoundToInt(f)); - } - - public static void RemoveEnergy(float f) - { - ModdedPlayer.Stats.maxEnergy.Substract(Mathf.RoundToInt(f)); - } - - public static void AddHPRegen(float f) - { - ModdedPlayer.Stats.lifeRegenBase.Add(f); - } - - public static void RemoveHPRegen(float f) - { - ModdedPlayer.Stats.lifeRegenBase.Sub(f); - } - - public static void AddStaminaRegen(float f) - { - ModdedPlayer.Stats.energyRegenMult.Add(f); - } - - public static void RemoveStaminaRegen(float f) - { - ModdedPlayer.Stats.energyRegenMult.Sub(f); - } - - public static void AddEnergyRegen(float f) - { - ModdedPlayer.Stats.energyRecoveryBase.Add(f); - } - - public static void RemoveEnergyRegen(float f) - { - ModdedPlayer.Stats.energyRecoveryBase.Sub(f); - } - - public static void AddStaminaRegenPercent(float f) - { - ModdedPlayer.Stats.staminaRegenBase.Add(f); - } - - public static void RemoveStaminaRegenPercent(float f) - { - ModdedPlayer.Stats.staminaRegenBase.Sub(f); - } - - public static void AddHealthRegenPercent(float f) - { - ModdedPlayer.Stats.lifeRegenMult.Add(f); - } - - public static void RemoveHealthRegenPercent(float f) - { - ModdedPlayer.Stats.lifeRegenMult.Sub(f); - } - - public static void AddDamageReduction(float f) - { - ModdedPlayer.Stats.allDamageTaken.Multiply(1 - f); - } - - public static void RemoveDamageReduction(float f) - { - ModdedPlayer.Stats.allDamageTaken.Divide(1 - f); - } - - public static void AddCritChance(float f) - { - ModdedPlayer.Stats.critChance.Add(f); - } - - public static void RemoveCritChance(float f) - { - ModdedPlayer.Stats.critChance.Sub(f); - } - - public static void AddCritDamage(float f) - { - ModdedPlayer.Stats.critDamage.Add(f); - } - - public static void RemoveCritDamage(float f) - { - ModdedPlayer.Stats.critDamage.Sub(f); - } - - public static void AddLifeOnHit(float f) - { - ModdedPlayer.Stats.lifeOnHit.Add(f); - } - - public static void RemoveLifeOnHit(float f) - { - ModdedPlayer.Stats.lifeOnHit.Sub(f); - } - - public static void AddDodgeChance(float f) - { - ModdedPlayer.Stats.getHitChance.valueMultiplicative *= 1 - f; - } - - public static void RemoveDodgeChance(float f) - { - ModdedPlayer.Stats.getHitChance.valueMultiplicative /= 1 - f; - } - - public static void AddArmor(float f) - { - ModdedPlayer.Stats.armor.Add(Mathf.RoundToInt(f)); - } - - public static void RemoveArmor(float f) - { - ModdedPlayer.Stats.armor.Substract(Mathf.RoundToInt(f)); - } - - public static void AddEliteDamageReduction(float f) - { - ModdedPlayer.Stats.damageFromElites.valueMultiplicative *= 1 - f; - } - - public static void RemoveEliteDamageReduction(float f) - { - ModdedPlayer.Stats.damageFromElites.valueMultiplicative /= 1 - f; - } - - public static void AddAttackSpeed(float f) - { - ModdedPlayer.Stats.attackSpeed.Add(f); - } - - public static void RemoveAttackSpeed(float f) - { - ModdedPlayer.Stats.attackSpeed.Sub(f); - } - - public static void AddExpFactor(float f) - { - ModdedPlayer.Stats.expGain.Add(f); - } - - public static void RemoveExpFactor(float f) - { - ModdedPlayer.Stats.expGain.Sub(f); - } - - public static void AddMaxMassacreTime(float f) - { - ModdedPlayer.Stats.maxMassacreTime.Add(f); - } - - public static void RemoveMaxMassacreTime(float f) - { - ModdedPlayer.Stats.maxMassacreTime.Sub(f); - } - - public static void AddSpellDamageAmplifier(float f) - { - ModdedPlayer.Stats.spellDamageMult.Add(f); - } - - public static void RemoveSpellDamageAmplifier(float f) - { - ModdedPlayer.Stats.spellDamageMult.Sub(f); - } - - public static void AddMeleeDamageAmplifier(float f) - { - ModdedPlayer.Stats.meleeIncreasedDmg.Add(f); - } - - public static void RemoveMeleeDamageAmplifier(float f) - { - ModdedPlayer.Stats.meleeIncreasedDmg.Sub(f); - } - - public static void AddRangedDamageAmplifier(float f) - { - ModdedPlayer.Stats.rangedIncreasedDmg.Add(f); - } - - public static void RemoveRangedDamageAmplifier(float f) - { - ModdedPlayer.Stats.rangedIncreasedDmg.Sub(f); - } - - public static void AddspellFlatDmg(float f) - { - ModdedPlayer.Stats.baseSpellDamage.Add(f); - } - - public static void RemovespellFlatDmg(float f) - { - ModdedPlayer.Stats.baseSpellDamage.Sub(f); - } - - public static void AddMeleeDamageBonus(float f) - { - ModdedPlayer.Stats.baseMeleeDamage.Add(f); - } - - public static void RemoveMeleeDamageBonus(float f) - { - ModdedPlayer.Stats.baseMeleeDamage.Sub(f); - } - - public static void AddRangedDamageBonus(float f) - { - ModdedPlayer.Stats.baseRangedDamage.Add(f); - } - - public static void RemoveRangedDamageBonus(float f) - { - ModdedPlayer.Stats.baseRangedDamage.Sub(f); - } - - public static void AddmaxEnergyFromAgi(float f) - { - ModdedPlayer.Stats.maxEnergyFromAgi.Add(f); - } - - public static void RemovemaxEnergyFromAgi(float f) - { - ModdedPlayer.Stats.maxEnergyFromAgi.Sub(f); - } - - public static void AddmaxHealthFromVit(float f) - { - ModdedPlayer.Stats.maxHealthFromVit.Add(f); - } - - public static void RemovemaxHealthFromVit(float f) - { - ModdedPlayer.Stats.maxHealthFromVit.Sub(f); - } - - public static void AddspellDmgFromInt(float f) - { - ModdedPlayer.Stats.spellDmgFromInt.Add(f); - } - - public static void RemovespellDmgFromInt(float f) - { - ModdedPlayer.Stats.spellDmgFromInt.Sub(f); - } - - public static void AddmeleeDmgFromStr(float f) - { - ModdedPlayer.Stats.meleeDmgFromStr.Add(f); - } - - public static void RemovemeleeDmgFromStr(float f) - { - ModdedPlayer.Stats.meleeDmgFromStr.Sub(f); - } - - public static void AddHealingMultipier(float f) - { - ModdedPlayer.Stats.allRecoveryMult.Add(f); - } - - public static void RemoveHealingMultipier(float f) - { - ModdedPlayer.Stats.allRecoveryMult.Sub(f); - } - - public static void AddMoveSpeed(float f) - { - ModdedPlayer.Stats.mOVEMENT_SPEED.Add(f); - } - - public static void RemoveMoveSpeed(float f) - { - ModdedPlayer.Stats.mOVEMENT_SPEED.Sub(f); - } - - public static void AddJump(float f) - { - ModdedPlayer.Stats.jumpPower.Add(f); - } - - public static void RemoveJump(float f) - { - ModdedPlayer.Stats.jumpPower.Sub(f); - } - - // public static void Add( float f) - //{ - // ModdedPlayer.Stats..Add( f; - //} - //public static void Remove( float f) - //{ - // ModdedPlayer.Stats. .Substract( f; - //} - - - - public static void PERMANENT_expIncrease(float f) - { - ModdedPlayer.instance.AddFinalExperience((long)f); - } - - public static void AddMagicFind(float f) - { - ModdedPlayer.Stats.magicFind_quantity.Add(f); - } - - public static void RemoveMagicFind(float f) - { - ModdedPlayer.Stats.magicFind_quantity.Sub(f); - - } - - public static void AddAllStats(float f) + public static void AddAllAttributes(float f) { ModdedPlayer.Stats.strength.Add(Mathf.RoundToInt(f)); ModdedPlayer.Stats.vitality.Add(Mathf.RoundToInt(f)); ModdedPlayer.Stats.agility.Add(Mathf.RoundToInt(f)); ModdedPlayer.Stats.intelligence.Add(Mathf.RoundToInt(f)); } - - public static void RemoveAllStats(float f) - { - ModdedPlayer.Stats.strength.Add(-Mathf.RoundToInt(f)); - ModdedPlayer.Stats.vitality.Add(-Mathf.RoundToInt(f)); - ModdedPlayer.Stats.agility.Add(-Mathf.RoundToInt(f)); - ModdedPlayer.Stats.intelligence.Add(-Mathf.RoundToInt(f)); - } - - public static int GetMaxSocketAmountOnItem(in ItemDefinition.ItemType type) - { - switch (type) - { - case ItemDefinition.ItemType.Other: - case ItemDefinition.ItemType.Material: - return 0; - - case ItemDefinition.ItemType.ShoulderArmor: - case ItemDefinition.ItemType.Weapon: - case ItemDefinition.ItemType.Helmet: - case ItemDefinition.ItemType.Glove: - case ItemDefinition.ItemType.Boot: - case ItemDefinition.ItemType.Amulet: - case ItemDefinition.ItemType.Ring: - return 1; - - case ItemDefinition.ItemType.Bracer: - case ItemDefinition.ItemType.Pants: - case ItemDefinition.ItemType.SpellScroll: - case ItemDefinition.ItemType.Shield: - case ItemDefinition.ItemType.Quiver: - return 2; - - case ItemDefinition.ItemType.ChestArmor: - return 3; - - default: - return 0; - } - } - public static ItemStat GetSocketedStat(in int rarity, ItemDefinition.ItemType type, int subtypeOffset) - { - float value = 1; - int statid = 0; - switch (type) - { - case ItemDefinition.ItemType.Shield: - case ItemDefinition.ItemType.Quiver: - case ItemDefinition.ItemType.Pants: - case ItemDefinition.ItemType.ChestArmor: - case ItemDefinition.ItemType.ShoulderArmor: - case ItemDefinition.ItemType.Glove: - case ItemDefinition.ItemType.Bracer: - case ItemDefinition.ItemType.SpellScroll: - value = GetSocketStatAmount_Other(in rarity); - statid = 1; - break; - - case ItemDefinition.ItemType.Weapon: - value = GetSocketStatAmount_Weapon(in rarity) - 1; - statid = 3; - break; - - case ItemDefinition.ItemType.Helmet: - value = GetSocketStatAmount_Helmet(in rarity) - 1; - statid = 0; - break; - - case ItemDefinition.ItemType.Boot: - value = GetSocketStatAmount_Boots(in rarity) - 1; - statid = 2; - break; - - case ItemDefinition.ItemType.Ring: - case ItemDefinition.ItemType.Amulet: - value = GetSocketStatAmount_Amulet(in rarity); - statid = 4; - break; - } - statid = 5 * (subtypeOffset - 1) + 3001 + statid; - ItemStat stat = new ItemStat(ItemDatabase.StatByID(statid)); - stat.amount = value * stat.multipier; - return stat; - } - public static float GetSocketedStatAmount(in int rarity, ItemDefinition.ItemType type, int subtypeOffset) - { - float value = 1; - int statid = 0; - switch (type) - { - case ItemDefinition.ItemType.Shield: - case ItemDefinition.ItemType.Quiver: - case ItemDefinition.ItemType.Pants: - case ItemDefinition.ItemType.ChestArmor: - case ItemDefinition.ItemType.ShoulderArmor: - case ItemDefinition.ItemType.Glove: - case ItemDefinition.ItemType.Bracer: - case ItemDefinition.ItemType.SpellScroll: - value = GetSocketStatAmount_Other(in rarity); - statid = 1; - break; - - case ItemDefinition.ItemType.Weapon: - value = GetSocketStatAmount_Weapon(in rarity) - 1; - statid = 3; - break; - - case ItemDefinition.ItemType.Helmet: - value = GetSocketStatAmount_Helmet(in rarity) - 1; - statid = 0; - break; - - case ItemDefinition.ItemType.Boot: - value = GetSocketStatAmount_Boots(in rarity) - 1; - statid = 2; - break; - - case ItemDefinition.ItemType.Ring: - case ItemDefinition.ItemType.Amulet: - value = GetSocketStatAmount_Amulet(in rarity); - statid = 4; - break; - } - int stat = 5 * (subtypeOffset - 1) + 3001 + statid; - return value * ItemDatabase.StatByID(stat).multipier; - } - public static float GetSocketStatAmount_Amulet(in int rarity) - { - switch (rarity) - { - case 3: - return 50f; - - case 4: - return 100f ; - - case 5: - return 200f ; - - case 6: - return 500f ; - - case 7: - return 3000f ; - - default: - return 20f ; - } - } - - public static float GetSocketStatAmount_Weapon(in int rarity) - { - switch (rarity) - { - case 3: - return 1.1f; - - case 4: - return 1.2f; - - case 5: - return 1.35f; - - case 6: - return 1.70f; - - case 7: - return 3.5f; - - default: - return 1.05f; - } - } - - public static float GetSocketStatAmount_Boots(in int rarity) - { - switch (rarity) - { - case 3: - return 1.065f; - - case 4: - return 1.125f; - - case 5: - return 1.18f; - - case 6: - return 1.33f; - - case 7: - return 1.50f; - - default: - return 1.04f; - } - } - - public static float GetSocketStatAmount_Helmet(in int rarity) - { - switch (rarity) - { - case 3: - return 1.075f; - - case 4: - return 1.125f; - - case 5: - return 1.2f; - - case 6: - return 1.33f; - - case 7: - return 1.50f; - - default: - return 1.04f; - } - } - - public static float GetSocketStatAmount_Other(in int rarity) - { - switch (rarity) - { - case 3: - return 25f; - - case 4: - return 60f; - - case 5: - return 200f; - - case 6: - return 500f; - - case 7: - return 1500f; - - default: - return 10f; - } - } } } \ No newline at end of file diff --git a/Player/Perks/PerkDatabase.cs b/Player/Perks/PerkDatabase.cs index 95d9812..089d0d5 100644 --- a/Player/Perks/PerkDatabase.cs +++ b/Player/Perks/PerkDatabase.cs @@ -400,7 +400,7 @@ public static void FillPerkList() new Perk() { - onApply = () => StatActions.AddAllStats(5), + onApply = () => StatActions.AddAllAttributes(5), category = PerkCategory.Utility, unlockPath = new int[] { 3 }, levelReq = 1, @@ -416,7 +416,7 @@ public static void FillPerkList() new Perk() { - onApply = () => StatActions.AddAllStats(15), + onApply = () => StatActions.AddAllAttributes(15), category = PerkCategory.Utility, unlockPath = new int[] { 20 }, @@ -433,7 +433,7 @@ public static void FillPerkList() new Perk() { - onApply = () => StatActions.AddAttackSpeed(0.02f), + onApply = () => ModdedPlayer.Stats.attackSpeed.Add(0.02f), category = PerkCategory.MeleeOffense, unlockPath = new int[] { 11 }, @@ -508,7 +508,7 @@ public static void FillPerkList() new Perk() { - onApply = () => StatActions.AddAllStats(10), + onApply = () => StatActions.AddAllAttributes(10), category = PerkCategory.Utility, unlockPath = new int[] { 21 }, @@ -1902,8 +1902,7 @@ public static void FillPerkList() }; new Perk() { - onApply = () => StatActions.AddMagicFind(0.13f), - + onApply = () => ModdedPlayer.Stats.magicFind_quantity.Add(0.1f), category = PerkCategory.Utility, unlockPath = new int[] { -1 }, levelReq = 5, @@ -1911,14 +1910,14 @@ public static void FillPerkList() scale = 1f, posX = -0.75f, posY = -1.1f, - name = Translations.PerkDatabase_217, - originalDescription = Translations.PerkDatabase_218("13%"), + name = "Loot Quantity", + originalDescription = "Increases the quantity of loot by 10%", textureVariation = 0, stackable = false, }; new Perk() { - onApply = () => StatActions.AddMagicFind(0.15f), + onApply = () => ModdedPlayer.Stats.magicFind_quality.Add(0.1f), category = PerkCategory.Utility, unlockPath = new int[] { 109 }, @@ -1927,8 +1926,8 @@ public static void FillPerkList() scale = 1f, posX = -1.25f, posY = -1.85f, - name = Translations.PerkDatabase_219, - originalDescription = Translations.PerkDatabase_220("15%"), + name = "Looting Quality", + originalDescription = "Increases the quality of loot by 10%", textureVariation = 0, stackable = false, }; @@ -3090,17 +3089,17 @@ public static void FillPerkList() }; new Perk() { - onApply = () => StatActions.AddMagicFind(0.15f), + onApply = () => ModdedPlayer.Stats.magicFind_quality.Add(0.15f), category = PerkCategory.Utility, unlockPath = new int[] { 110 }, levelReq = 55, - cost = 2, + cost = 1, scale = 1f, posX = -1.75f, posY = -2.6f, - name = Translations.PerkDatabase_366, - originalDescription = Translations.PerkDatabase_367("15%"), + name = "Loot Quality II", + originalDescription = "Increases the quality of looted items by 15%", textureVariation = 0, stackable = false, }; From b4707f632cde8c53993f363af19de8d938bf122c Mon Sep 17 00:00:00 2001 From: "Hazard (Cyprian Skrzypczak)" Date: Sat, 19 Apr 2025 19:31:06 +0200 Subject: [PATCH 26/27] Increased default item weight to 1000, so its possible to make rarer items --- Items/ItemDataBase.cs | 2 +- Items/ItemDefinitions/Amulets.cs | 6 +-- .../ItemDataBase_ItemDefinitions.cs | 1 - Items/ItemDefinitions/Other.cs | 44 +++++++------------ Items/ItemTemplates.cs | 15 +++---- 5 files changed, 25 insertions(+), 43 deletions(-) diff --git a/Items/ItemDataBase.cs b/Items/ItemDataBase.cs index dc9571c..f5e6454 100644 --- a/Items/ItemDataBase.cs +++ b/Items/ItemDataBase.cs @@ -98,7 +98,7 @@ private static void SanitizeItems() } if (itemDef.lootWeight <= 0) { - itemDef.lootWeight = 1; + itemDef.lootWeight = ItemDefinition.DefaultLootWeight; } } } diff --git a/Items/ItemDefinitions/Amulets.cs b/Items/ItemDefinitions/Amulets.cs index b67ed07..6ac48c7 100644 --- a/Items/ItemDefinitions/Amulets.cs +++ b/Items/ItemDefinitions/Amulets.cs @@ -33,7 +33,7 @@ public static void AddAmulets() .Name("Bronze Locket") .Description("") .Rarity(0) - .Weight(5); + .Weight(5000); new Amulet() .AmuletStatSlot(1) @@ -53,7 +53,7 @@ public static void AddAmulets() .Name("Enchanted Golden Chain") .Description("") .Rarity(1) - .Weight(5); + .Weight(5000); new Amulet() .AmuletStatSlot(2) @@ -72,7 +72,7 @@ public static void AddAmulets() .Name("Champion's Chain") .Description("") .Rarity(2) - .Weight(5); + .Weight(5000); //------------------------------------------------------ //Rarity 3 (Yellow) diff --git a/Items/ItemDefinitions/ItemDataBase_ItemDefinitions.cs b/Items/ItemDefinitions/ItemDataBase_ItemDefinitions.cs index 9c136d6..d11df29 100644 --- a/Items/ItemDefinitions/ItemDataBase_ItemDefinitions.cs +++ b/Items/ItemDefinitions/ItemDataBase_ItemDefinitions.cs @@ -7,7 +7,6 @@ using ChampionsOfForest.Player; using static ChampionsOfForest.Items.ItemDatabase.Stat; -using static ChampionsOfForest.ItemDatabase; namespace ChampionsOfForest.Items { diff --git a/Items/ItemDefinitions/Other.cs b/Items/ItemDefinitions/Other.cs index 9066d18..14f79a1 100644 --- a/Items/ItemDefinitions/Other.cs +++ b/Items/ItemDefinitions/Other.cs @@ -5,6 +5,9 @@ using System.Text; using ChampionsOfForest.Items.ItemTemplates; +using ChampionsOfForest.Player; + +using UnityEngine; using static ChampionsOfForest.Items.ItemDatabase.Stat; @@ -17,37 +20,22 @@ public static partial class ItemDatabase public static void AddConsumables() { - //------------------------------------------------------ - //Rarity 0 (White) - //------------------------------------------------------ - - new Heart() + new Heart("Grants 1 additional perk point", () => + { + ModdedPlayer.instance.PermanentBonusPerkPoints += 1; + ModdedPlayer.instance.MutationPoints += 1; + }) .Name("Greater Mutated Heart") - .Consumable("Grants 1 additional perk point", () => ); - - - - //------------------------------------------------------ - //Rarity 1 (Green) - //------------------------------------------------------ - - - - //------------------------------------------------------ - //Rarity 2 (Blue) - //------------------------------------------------------ - - - - //------------------------------------------------------ - //Rarity 3 (Yellow) - //------------------------------------------------------ - + .Description("This heart is finally still. Before, it used to pump blood brimming with strength into the largest, most grotesque mutants creeping on this peninsula.") + .SetDropCreepy() + .Rarity(4) + .Weight(100); + new Heart("Grants 1 additional perk point", ModdedPlayer.Respec) + .Name("Heart of Purity") + .Description("A mysterious heart of the most innocent creature. Sometimes, the cannibals carry these intact hearts for unknown reasons. According to their strict diet, they don't eat anything that isn't human, so this heart must belong to something else.") + .Rarity(2); - //------------------------------------------------------ - //Rarity 4 (Red) - //------------------------------------------------------ } diff --git a/Items/ItemTemplates.cs b/Items/ItemTemplates.cs index 2c90274..559175e 100644 --- a/Items/ItemTemplates.cs +++ b/Items/ItemTemplates.cs @@ -167,14 +167,6 @@ public ItemTemplateBuilder LevelRequirement(int minimumLevel) return this; } - public ItemTemplateBuilder Consumable(string consumableDescription, OnItemUsedOnAnother _onConsume) - { - onUsedOnAnotherItemCallback = _onConsume; - uniqueStat = consumableDescription; - stackSize = 100; - return this; - } - public ItemTemplateBuilder Rarity(int r) { base.rarity = (Rarity)r; @@ -763,13 +755,16 @@ public SpellScroll() public class Heart : ItemTemplateBuilder { - public Heart() + public Heart(string effectDescription, OnItemUsed consumeEvent) { type = ItemType.Other; LevelRequirement(1); - canConsume = true; + Icon(105); Register(); + + onEquipCallback= consumeEvent; + uniqueStat = effectDescription; } } From 96cf98121920d99fe2f00b82fb3f13f632f6e1bf Mon Sep 17 00:00:00 2001 From: "Hazard (Cyprian Skrzypczak)" Date: Sat, 19 Apr 2025 20:48:49 +0200 Subject: [PATCH 27/27] Fixed some compile errors --- DedicatedServer/COTFDS.cs | 6 +- Enemies/EnemyAbilities/EnemyLaser.cs | 22 +- Enemies/EnemyAbilities/MeteorSpawner.cs | 24 +-- .../EnemyProgression_Damage.cs | 40 ++-- .../EnemyProgression_Setup.cs | 37 ++-- Enemies/WormHealthMod.cs | 45 ++-- Fun/Cheats.cs | 6 +- Items/Item.cs | 1 + Items/ItemDataBase.cs | 34 ++- Items/ItemDataBase_Loot.cs | 14 +- Items/ItemDefinitions/ItemDefinition.cs | 4 +- Items/PickUpManager.cs | 22 +- ModSettings.cs | 196 ++++++++++++++---- Network/CommandReader.cs | 64 ++---- Network/NetworkManager.cs | 2 +- Player/CoopCustomWeapons.cs | 2 + Player/Crafting/CraftingIngredient.cs | 4 +- Player/Crafting/Empowering.cs | 22 +- Player/Crafting/IndividualRerolling.cs | 11 +- Player/CustomWeapon.cs | 4 +- Player/Main Menu/MainMenu.cs | 11 +- .../Main Menu/MainMenu_DifficultySelection.cs | 39 ++-- Player/Main Menu/MainMenu_Inventory.cs | 25 ++- Player/ModdedPlayer/ModdedPlayer.cs | 2 +- .../Stats/AdditiveNetworkSyncedPlayerStat.cs | 4 +- .../Stats/BaseClasses/NetworkPlayerStats.cs | 1 + Player/Overrides/PlayerInventoryMod.cs | 1 + Player/Overrides/PlayerStatsEx.cs | 2 +- Player/RCoroutines.cs | 5 +- Serializer.cs | 7 +- ServerPlayerState.cs | 1 - 31 files changed, 375 insertions(+), 283 deletions(-) diff --git a/DedicatedServer/COTFDS.cs b/DedicatedServer/COTFDS.cs index 5a71a4a..52831c9 100644 --- a/DedicatedServer/COTFDS.cs +++ b/DedicatedServer/COTFDS.cs @@ -16,9 +16,9 @@ public static void ReadDediServerConfig() var difficultyRegex = new Regex(@"(?<=Difficulty=)\d+"); var friendlyFireRegex = new Regex(@"(?<=FriendlyFire=)\d+"); - ModSettings.difficulty = (ModSettings.GameDifficulty)(int.Parse(difficultyRegex.Match(content).Value)); - ModSettings.FriendlyFire = difficultyRegex.Match(content).Value == "1"; - ModSettings.DifficultyChosen = true; + //ModSettings.difficulty = (ModSettings.GameDifficulty)(int.Parse(difficultyRegex.Match(content).Value)); + //ModSettings.FriendlyFire = difficultyRegex.Match(content).Value == "1"; + //ModSettings.DifficultyChosen = true; } else { diff --git a/Enemies/EnemyAbilities/EnemyLaser.cs b/Enemies/EnemyAbilities/EnemyLaser.cs index 4c7d9e6..5b430d2 100644 --- a/Enemies/EnemyAbilities/EnemyLaser.cs +++ b/Enemies/EnemyAbilities/EnemyLaser.cs @@ -71,45 +71,45 @@ private IEnumerator Shoot(int index) go.transform.LookAt(Direction); int dmg = Random.Range(30, 40); - switch (ModSettings.difficulty) + switch (ModSettings.Difficulty) { - case ModSettings.Difficulty.Veteran: + case ModSettings.GameDifficulty.Veteran: dmg = Random.Range(85, 105); break; - case ModSettings.Difficulty.Elite: + case ModSettings.GameDifficulty.Elite: dmg = Random.Range(221, 234); break; - case ModSettings.Difficulty.Master: + case ModSettings.GameDifficulty.Master: dmg = Random.Range(444, 470); break; - case ModSettings.Difficulty.Challenge1: + case ModSettings.GameDifficulty.Challenge1: dmg = 4124; break; - case ModSettings.Difficulty.Challenge2: + case ModSettings.GameDifficulty.Challenge2: dmg = 15653; break; - case ModSettings.Difficulty.Challenge3: + case ModSettings.GameDifficulty.Challenge3: dmg = 72346; break; - case ModSettings.Difficulty.Challenge4: + case ModSettings.GameDifficulty.Challenge4: dmg = 85932; break; - case ModSettings.Difficulty.Challenge5: + case ModSettings.GameDifficulty.Challenge5: dmg = 124636; break; - case ModSettings.Difficulty.Challenge6: + case ModSettings.GameDifficulty.Challenge6: dmg = 164636; break; - case ModSettings.Difficulty.Hell: + case ModSettings.GameDifficulty.Hell: dmg = 224636; break; } diff --git a/Enemies/EnemyAbilities/MeteorSpawner.cs b/Enemies/EnemyAbilities/MeteorSpawner.cs index c1f8a52..512387c 100644 --- a/Enemies/EnemyAbilities/MeteorSpawner.cs +++ b/Enemies/EnemyAbilities/MeteorSpawner.cs @@ -36,49 +36,49 @@ private IEnumerator DoSpawnCoroutine(Vector3 position, int seed) { System.Random random = new System.Random(seed); int Damage = 10; - switch (ModSettings.difficulty) + switch (ModSettings.Difficulty) //todo make this a function dependent on enemy level instead of difficulty { - case ModSettings.Difficulty.Easy: + case ModSettings.GameDifficulty.Easy: Damage = Random.Range(40, 50); break; - case ModSettings.Difficulty.Veteran: + case ModSettings.GameDifficulty.Veteran: Damage = Random.Range(100, 150); break; - case ModSettings.Difficulty.Elite: + case ModSettings.GameDifficulty.Elite: Damage = Random.Range(300, 355); break; - case ModSettings.Difficulty.Master: + case ModSettings.GameDifficulty.Master: Damage = Random.Range(660, 700); break; - case ModSettings.Difficulty.Challenge1: + case ModSettings.GameDifficulty.Challenge1: Damage = 3000; break; - case ModSettings.Difficulty.Challenge2: + case ModSettings.GameDifficulty.Challenge2: Damage = 9000; break; - case ModSettings.Difficulty.Challenge3: + case ModSettings.GameDifficulty.Challenge3: Damage = 14000; break; - case ModSettings.Difficulty.Challenge4: + case ModSettings.GameDifficulty.Challenge4: Damage = 25000; break; - case ModSettings.Difficulty.Challenge5: + case ModSettings.GameDifficulty.Challenge5: Damage = 50000; break; - case ModSettings.Difficulty.Challenge6: + case ModSettings.GameDifficulty.Challenge6: Damage = 65000; break; - case ModSettings.Difficulty.Hell: + case ModSettings.GameDifficulty.Hell: Damage = 75000; break; } diff --git a/Enemies/EnemyProgression/EnemyProgression_Damage.cs b/Enemies/EnemyProgression/EnemyProgression_Damage.cs index 8ec0f07..06dcce0 100644 --- a/Enemies/EnemyProgression/EnemyProgression_Damage.cs +++ b/Enemies/EnemyProgression/EnemyProgression_Damage.cs @@ -71,47 +71,47 @@ public float ClampDamage(bool pure, float damage, bool magic) } else if (shieldingCD <= 0) { - switch (ModSettings.difficulty) + switch (ModSettings.Difficulty) { - case ModSettings.Difficulty.Easy: + case ModSettings.GameDifficulty.Easy: shieldingCD = 60; break; - case ModSettings.Difficulty.Veteran: + case ModSettings.GameDifficulty.Veteran: shieldingCD = 55; break; - case ModSettings.Difficulty.Elite: + case ModSettings.GameDifficulty.Elite: shieldingCD = 50; break; - case ModSettings.Difficulty.Master: + case ModSettings.GameDifficulty.Master: shieldingCD = 45; break; - case ModSettings.Difficulty.Challenge1: + case ModSettings.GameDifficulty.Challenge1: shieldingCD = 40; break; - case ModSettings.Difficulty.Challenge2: + case ModSettings.GameDifficulty.Challenge2: shieldingCD = 35; break; - case ModSettings.Difficulty.Challenge3: + case ModSettings.GameDifficulty.Challenge3: shieldingCD = 30; break; - case ModSettings.Difficulty.Challenge4: + case ModSettings.GameDifficulty.Challenge4: shieldingCD = 25; break; - case ModSettings.Difficulty.Challenge5: + case ModSettings.GameDifficulty.Challenge5: shieldingCD = 20; break; @@ -173,47 +173,47 @@ public int ClampDamage(bool pure, int damage) } else if (shieldingCD <= 0) { - switch (ModSettings.difficulty) + switch (ModSettings.Difficulty) { - case ModSettings.Difficulty.Easy: + case ModSettings.GameDifficulty.Easy: shieldingCD = 60; break; - case ModSettings.Difficulty.Veteran: + case ModSettings.GameDifficulty.Veteran: shieldingCD = 55; break; - case ModSettings.Difficulty.Elite: + case ModSettings.GameDifficulty.Elite: shieldingCD = 50; break; - case ModSettings.Difficulty.Master: + case ModSettings.GameDifficulty.Master: shieldingCD = 45; break; - case ModSettings.Difficulty.Challenge1: + case ModSettings.GameDifficulty.Challenge1: shieldingCD = 40; break; - case ModSettings.Difficulty.Challenge2: + case ModSettings.GameDifficulty.Challenge2: shieldingCD = 35; break; - case ModSettings.Difficulty.Challenge3: + case ModSettings.GameDifficulty.Challenge3: shieldingCD = 30; break; - case ModSettings.Difficulty.Challenge4: + case ModSettings.GameDifficulty.Challenge4: shieldingCD = 25; break; - case ModSettings.Difficulty.Challenge5: + case ModSettings.GameDifficulty.Challenge5: shieldingCD = 20; break; diff --git a/Enemies/EnemyProgression/EnemyProgression_Setup.cs b/Enemies/EnemyProgression/EnemyProgression_Setup.cs index f2fd2f3..2cf00c3 100644 --- a/Enemies/EnemyProgression/EnemyProgression_Setup.cs +++ b/Enemies/EnemyProgression/EnemyProgression_Setup.cs @@ -59,14 +59,14 @@ private void Setup() DamageOverTimeList = new List(); abilities = new List(); - bool isElite = (Random.value < 0.1 || (AIScript.creepy_boss && !AIScript.girlFullyTransformed) || ModSettings.difficulty == ModSettings.Difficulty.Hell) && ModSettings.AllowElites; + bool isElite = (Random.value < 0.1 || (AIScript.creepy_boss && !AIScript.girlFullyTransformed) || ModSettings.Difficulty == ModSettings.GameDifficulty.Hell) && ModSettings.AllowElites; SetType(ref isElite); //picking abilities if (isElite) { - int abilityAmount = (int)ModSettings.difficulty > (int)ModSettings.Difficulty.Veteran ? Random.Range(3, 7) : 2; + int abilityAmount = (int)ModSettings.Difficulty > (int)ModSettings.GameDifficulty.Veteran ? Random.Range(3, 7) : 2; if (AIScript.creepy_boss) { abilityAmount = 10; @@ -127,7 +127,7 @@ private void Setup() } else if (ab == Abilities.ArcaneCataclysm || ab == Abilities.BlackHole || ab == Abilities.FireCataclysm || ab == Abilities.Meteor) { - if ((int)ModSettings.difficulty < (int)ModSettings.Difficulty.Master) + if ((int)ModSettings.Difficulty < (int)ModSettings.GameDifficulty.Master) canAdd = false; } if (abilities.Contains(ab)) @@ -148,7 +148,7 @@ private void Setup() SetLevel(); RollName(isElite); - setupDifficulty = ModSettings.difficulty; + setupDifficulty = ModSettings.Difficulty; //Assigning rest of stats DamageMult = level < 65 ? (Mathf.Pow(2.7182818284f,level/6) + level) //e^(x/6) + x @@ -372,7 +372,7 @@ private void RollName(bool isElite) { if (AIScript.creepy_boss) { - enemyName = "Megan Cross"; + enemyName = "Ultimate Champion Megan Cross"; return; } if (!isElite) @@ -571,63 +571,64 @@ private void SetLevel() } } - switch (ModSettings.difficulty) + switch (ModSettings.Difficulty) { - case ModSettings.Difficulty.Easy: + case ModSettings.GameDifficulty.Easy: level = Random.Range(1, 4); break; - case ModSettings.Difficulty.Veteran: + case ModSettings.GameDifficulty.Veteran: level = Random.Range(10, 14); break; - case ModSettings.Difficulty.Elite: + case ModSettings.GameDifficulty.Elite: level = Random.Range(20, 25); break; - case ModSettings.Difficulty.Master: + case ModSettings.GameDifficulty.Master: level = Random.Range(30, 40); break; - case ModSettings.Difficulty.Challenge1: + case ModSettings.GameDifficulty.Challenge1: level = Random.Range(50, 60); break; - case ModSettings.Difficulty.Challenge2: + case ModSettings.GameDifficulty.Challenge2: level = Random.Range(89, 92); break; - case ModSettings.Difficulty.Challenge3: + case ModSettings.GameDifficulty.Challenge3: level = Random.Range(100, 101); break; - case ModSettings.Difficulty.Challenge4: + case ModSettings.GameDifficulty.Challenge4: level = Random.Range(130, 133); break; - case ModSettings.Difficulty.Challenge5: + case ModSettings.GameDifficulty.Challenge5: level = Random.Range(160, 165); break; - case ModSettings.Difficulty.Challenge6: + case ModSettings.GameDifficulty.Challenge6: level = 200; break; - case ModSettings.Difficulty.Hell: + case ModSettings.GameDifficulty.Hell: level = 300; break; } - level = Mathf.CeilToInt(level + extraLevels + ModSettings.EnemyLevelIncrease); + level = Mathf.CeilToInt(level + extraLevels + ModSettings.EnemyLevelIncreaseGlobal); + } diff --git a/Enemies/WormHealthMod.cs b/Enemies/WormHealthMod.cs index 301fff2..18b6667 100644 --- a/Enemies/WormHealthMod.cs +++ b/Enemies/WormHealthMod.cs @@ -1,4 +1,5 @@ -using ChampionsOfForest.Player; +using ChampionsOfForest.Items; +using ChampionsOfForest.Player; using TheForest.Utils; @@ -50,41 +51,41 @@ protected override void Update() if (GameSetup.IsMpServer || GameSetup.IsSinglePlayer) { long Exp; - switch (ModSettings.difficulty) + switch (ModSettings.Difficulty) { - case ModSettings.Difficulty.Easy: + case ModSettings.GameDifficulty.Easy: Exp = 5000; break; - case ModSettings.Difficulty.Veteran: + case ModSettings.GameDifficulty.Veteran: Exp = 20000; break; - case ModSettings.Difficulty.Elite: + case ModSettings.GameDifficulty.Elite: Exp = 100000; break; - case ModSettings.Difficulty.Master: + case ModSettings.GameDifficulty.Master: Exp = 3000000; break; - case ModSettings.Difficulty.Challenge1: + case ModSettings.GameDifficulty.Challenge1: Exp = 50000000; break; - case ModSettings.Difficulty.Challenge2: + case ModSettings.GameDifficulty.Challenge2: Exp = 100000000; break; - case ModSettings.Difficulty.Challenge3: + case ModSettings.GameDifficulty.Challenge3: Exp = 500000000; break; - case ModSettings.Difficulty.Challenge4: + case ModSettings.GameDifficulty.Challenge4: Exp = 1000000000; break; - case ModSettings.Difficulty.Challenge5: + case ModSettings.GameDifficulty.Challenge5: Exp = 5000000000; break; @@ -147,42 +148,42 @@ protected override void RunExplode() if (collider.transform.root == LocalPlayer.Transform.root) { int damage = 85; - switch (ModSettings.difficulty) + switch (ModSettings.Difficulty) { - case ModSettings.Difficulty.Veteran: + case ModSettings.GameDifficulty.Veteran: damage = 150; break; - case ModSettings.Difficulty.Elite: + case ModSettings.GameDifficulty.Elite: damage = 230; break; - case ModSettings.Difficulty.Master: + case ModSettings.GameDifficulty.Master: damage = 360; break; - case ModSettings.Difficulty.Challenge1: + case ModSettings.GameDifficulty.Challenge1: damage = 1500; break; - case ModSettings.Difficulty.Challenge2: + case ModSettings.GameDifficulty.Challenge2: damage = 5000; break; - case ModSettings.Difficulty.Challenge3: + case ModSettings.GameDifficulty.Challenge3: damage = 12000; break; - case ModSettings.Difficulty.Challenge4: + case ModSettings.GameDifficulty.Challenge4: damage = 20000; break; - case ModSettings.Difficulty.Challenge5: + case ModSettings.GameDifficulty.Challenge5: damage = 30000; break; - case ModSettings.Difficulty.Challenge6: - case ModSettings.Difficulty.Hell: + case ModSettings.GameDifficulty.Challenge6: + case ModSettings.GameDifficulty.Hell: damage = 40000; break; } diff --git a/Fun/Cheats.cs b/Fun/Cheats.cs index 09b40fe..7f9af93 100644 --- a/Fun/Cheats.cs +++ b/Fun/Cheats.cs @@ -1,5 +1,6 @@ using System.Linq; +using ChampionsOfForest.Items; using ChampionsOfForest.Player; using TheForest; @@ -37,10 +38,7 @@ public static void Respec() public static void CotfItem(int id, int level) { - Item item = new Item(ItemDatabase.itemLookup[id], 1, 0, false) - { - level = level - }; + Item item = new Item(ItemDatabase.itemLookup[id], level); item.RollStats(); Inventory.Instance.AddItem(item); } diff --git a/Items/Item.cs b/Items/Item.cs index fb0ed2c..c9e7afe 100644 --- a/Items/Item.cs +++ b/Items/Item.cs @@ -290,6 +290,7 @@ public Item(ItemDefinition itemDefinition, int level) this.subtype = itemDefinition.subtype; this.lootTable = itemDefinition.lootTable; this.lootWeight = itemDefinition.lootWeight; + this.stackedAmount = 1; isEquipped = false; stats = new List(); } diff --git a/Items/ItemDataBase.cs b/Items/ItemDataBase.cs index f5e6454..2a89476 100644 --- a/Items/ItemDataBase.cs +++ b/Items/ItemDataBase.cs @@ -3,7 +3,7 @@ using System.IO; using System.Linq; -using static ChampionsOfForest.ItemDefinition; +using static ChampionsOfForest.Items.ItemDefinition; using static TheForest.Items.World.PickUp; namespace ChampionsOfForest.Items @@ -14,7 +14,7 @@ public static partial class ItemDatabase public static Dictionary itemLookup; public static Dictionary Stats; - private static Dictionary> ItemRarityGroups; + private static Dictionary> ItemRarityGroups; //Called from Initializer @@ -27,7 +27,7 @@ public static void Initialize() itemLookup = new Dictionary(); Stats = new Dictionary(); - ItemRarityGroups = new Dictionary>(); + ItemRarityGroups = new Dictionary>(); PopulateStats(); @@ -55,26 +55,22 @@ public static void Initialize() Utils.Log("Error with item " + ex.ToString()); } itemLookup.Clear(); - for (int i = 0; i < ItemTemplateStorage.Count; i++) + + for (int i = 0; i < (int) Rarity.Max; i++) { - try - { - itemLookup.Add(ItemTemplateStorage[i].id, ItemTemplateStorage[i]); - if (ItemRarityGroups.ContainsKey(ItemTemplateStorage[i].rarity)) - { - ItemRarityGroups[ItemTemplateStorage[i].rarity].Add(ItemTemplateStorage[i].id); - } - else - { - ItemRarityGroups.Add(ItemTemplateStorage[i].rarity, new List() { ItemTemplateStorage[i].id }); - } - } - catch (System.Exception ex) + ItemRarityGroups.Add(i, new List()); + + } + foreach (KeyValuePair> kvPair in ItemTemplateStorage) + { + List items = kvPair.Value; + foreach (ItemDefinition item in items) { - ModAPI.Log.Write("Error with adding an item " + ex.ToString()); + ItemRarityGroups[(int)item.rarity].Add(item); + itemLookup.Add(item.id, item); } - } + } } public static ItemStat StatByID(int id) diff --git a/Items/ItemDataBase_Loot.cs b/Items/ItemDataBase_Loot.cs index 59058e3..fb152a1 100644 --- a/Items/ItemDataBase_Loot.cs +++ b/Items/ItemDataBase_Loot.cs @@ -36,18 +36,18 @@ private static int GetLevel(Vector3 pos) if (GameSetup.IsMultiplayer) { var states = ModReferences.PlayerStates.All; - switch (ModSettings.m_lootLevelRule) + switch (ModSettings.LootLevelRule) { - case ModSettings.LootLevelPolicy.HighestPlayerLevel: + case ModSettings.LootLevelRules.HighestPlayerLevel: level = states.Max(x => x.level); break; - case ModSettings.LootLevelPolicy.AverageLevel: + case ModSettings.LootLevelRules.AverageLevel: level = (int)states.Average(x => (double)x.level); break; - case ModSettings.LootLevelPolicy.LowestLevel: + case ModSettings.LootLevelRules.LowestLevel: level = states.Min(x => x.level); break; - case ModSettings.LootLevelPolicy.ClosestPlayer: + case ModSettings.LootLevelRules.ClosestPlayer: { level = ModdedPlayer.instance.level; float dist = (LocalPlayer.Transform.position - pos).sqrMagnitude; @@ -84,9 +84,9 @@ public RandomItemPoolEntry(int level, int rarity) items = new List(); foreach (var item in ItemRarityGroups[rarity]) { - if (itemLookup[item].minLevel <= level && itemLookup[item].lootTable != 0) + if (item.minLevel <= level) { - items.Add(itemLookup[item]); + items.Add(item); } } } diff --git a/Items/ItemDefinitions/ItemDefinition.cs b/Items/ItemDefinitions/ItemDefinition.cs index c457797..3a82558 100644 --- a/Items/ItemDefinitions/ItemDefinition.cs +++ b/Items/ItemDefinitions/ItemDefinition.cs @@ -63,8 +63,8 @@ public enum ItemSubtype //Drop settings public EnemyProgression.Enemy lootTable = EnemyProgression.Enemy.All; - public int lootWeight = 100; //weight of the item in loot table, used to calculate drop chance - + public int lootWeight = DefaultLootWeight; //weight of the item in loot table, used to calculate drop chance + public const int DefaultLootWeight = 1000; public ItemDefinition() { statSlots = new List(); diff --git a/Items/PickUpManager.cs b/Items/PickUpManager.cs index e1d89c7..24af5d7 100644 --- a/Items/PickUpManager.cs +++ b/Items/PickUpManager.cs @@ -201,26 +201,16 @@ public static void SpawnPickUp(Item item, Vector3 pos, int amount, ulong id, Ite break; } - if (item.rarity > 2) + if ((int)item.rarity > 0) { Light l = spawn.AddComponent(); l.type = LightType.Point; l.shadowStrength = 1; - l.color = MainMenu.RarityColors[item.rarity]; - l.intensity = 1f; + l.color = item.GlowColor; + l.intensity = item.GlowIntensity; l.range = 4f; - renderer.material.color = MainMenu.RarityColors[item.rarity]; - if (item.rarity > 5) - { - l.range = 7f; - l.intensity = 1.7f; - l.cookieSize = 5f; - if (item.rarity == 7) - { - l.range = 12f; - l.intensity = 4f; - } - } + renderer.material.color = item.RarityColor; + } aftercolorsetup: @@ -230,7 +220,7 @@ public static void SpawnPickUp(Item item, Vector3 pos, int amount, ulong id, Ite } ItemPickUp pickup = spawn.AddComponent(); - pickup.lifetime = (int)dropSource + item.rarity * item.rarity * 2; + pickup.lifetime = (int)dropSource; pickup.item = item; pickup.amount = amount; pickup.ID = id; diff --git a/ModSettings.cs b/ModSettings.cs index 0f7c6ff..775f3ee 100644 --- a/ModSettings.cs +++ b/ModSettings.cs @@ -10,29 +10,27 @@ namespace ChampionsOfForest { public class ModSettings { - private static ModSettings instance; + internal static ModSettings instance; public enum GameDifficulty { - Easy, Veteran, Elite, Master, Challenge1, Challenge2, Challenge3, Challenge4, Challenge5, Challenge6, Hell + Easy = 0, Veteran, Elite, Master, Challenge1, Challenge2, Challenge3, Challenge4, Challenge5, Challenge6, Hell } public enum DropsOnDeathModes { - All, Equipped, Disabled, NonEquipped + All = 0, Equipped, Disabled, Inventory, Max } public enum LootLevelRules { - HighestPlayerLevel, AverageLevel, LowestLevel, ClosestPlayer, HostLevel + HighestPlayerLevel = 0 , AverageLevel, LowestLevel, ClosestPlayer, HostLevel, Max } GameDifficulty m_difficulty = GameDifficulty.Easy; - public static GameDifficulty Difficulty => instance.m_difficulty; // non static properties // these are saved DropsOnDeathModes m_dropsOnDeathMode = DropsOnDeathModes.Disabled; LootLevelRules m_lootLevelRule = LootLevelRules.HighestPlayerLevel; bool m_friendlyFire = false; - bool m_isDedicated = false; bool m_killOnDowned = false; bool m_allowRandomCaveSpawn = true; bool m_allowCaveRespawn = true; @@ -61,42 +59,163 @@ public enum LootLevelRules float m_keptExperienceAfterDeath = 0; bool m_endMassacreAfterDeath = true; - // getters - public static DropsOnDeathModes DropsOnDeath => instance.m_dropsOnDeathMode; - public static LootLevelRules LootLevelRule => instance.m_lootLevelRule; - public static bool FriendlyFire => instance.m_friendlyFire; - public static bool IsDedicated => instance.m_isDedicated; - public static bool KillOnDowned => instance.m_killOnDowned; - public static bool AllowRandomCaveSpawn => instance.m_allowRandomCaveSpawn; - public static bool AllowCaveRespawn => instance.m_allowCaveRespawn; - public static int CaveMaxAdditionalEnemies => instance.m_caveMaxAdditionalEnemies; - public static float CaveRespawnDelay => instance.m_caveRespawnDelay; - public static int MinimumLevelForSocketsToAppear => instance.m_minimumLevelForSocketsToAppear; - public static float ChanceForFirstSocketToAppear => instance.m_chanceForFirstSocketToAppear; - public static float ChanceForSubsequentSocketsToAppear => instance.m_chanceForSubsequentSocketsToAppear; - public static float MagicFindPerDifficultyLevel => instance.m_magicFindPerDifficultyLevel; - public static bool PrivateLoot => instance.m_privateLoot; - public static float DropQuantityMultiplier => instance.m_dropQuantityMultiplier; - public static float DropQualityMultiplier => instance.m_dropQualityMultiplier; - public static float DropChanceMultiplier => instance.m_dropChanceMultiplier; - public static float ExpMultiplier => instance.m_expMultiplier; - public static int EnemyLevelIncreaseGlobal => instance.m_enemyLevelIncreaseGlobal; - public static int EnemyLevelIncreaseCaves => instance.m_enemyLevelIncreaseCaves; - public static float EnemyDamageMultiplier => instance.m_enemyDamageMultiplier; - public static float EnemyHealthMultiplier => instance.m_enemyHealthMultiplier; - public static float EnemyArmorMultiplier => instance.m_enemyArmorMultiplier; - public static float EnemySpeedMultiplier => instance.m_enemySpeedMultiplier; - public static bool AllowElites => instance.m_allowElites; - public static int LootFilterMinRarity => instance.m_lootFilterMinRarity; - public static bool CombineHitMarkers => instance.m_combineHitMarkers; - public static bool FullNumberHitMarkers => instance.m_fullNumberHitMarkers; - public static float KeptExperienceAfterDeath => instance.m_keptExperienceAfterDeath; - public static bool EndMassacreAfterDeath => instance.m_endMassacreAfterDeath; + // getters and setters + public static GameDifficulty Difficulty + { + get => instance.m_difficulty; + set => instance.m_difficulty = value; + } + public static DropsOnDeathModes DropsOnDeath + { + get => instance.m_dropsOnDeathMode; + set => instance.m_dropsOnDeathMode = value; + } + public static LootLevelRules LootLevelRule + { + get => instance.m_lootLevelRule; + set => instance.m_lootLevelRule = value; + } + public static bool FriendlyFire + { + get => instance.m_friendlyFire; + set => instance.m_friendlyFire = value; + } + public static bool KillOnDowned + { + get => instance.m_killOnDowned; + set => instance.m_killOnDowned = value; + } + public static bool AllowRandomCaveSpawn + { + get => instance.m_allowRandomCaveSpawn; + set => instance.m_allowRandomCaveSpawn = value; + } + public static bool AllowCaveRespawn + { + get => instance.m_allowCaveRespawn; + set => instance.m_allowCaveRespawn = value; + } + public static int CaveMaxAdditionalEnemies + { + get => instance.m_caveMaxAdditionalEnemies; + set => instance.m_caveMaxAdditionalEnemies = value; + } + public static float CaveRespawnDelay + { + get => instance.m_caveRespawnDelay; + set => instance.m_caveRespawnDelay = value; + } + public static int MinimumLevelForSocketsToAppear + { + get => instance.m_minimumLevelForSocketsToAppear; + set => instance.m_minimumLevelForSocketsToAppear = value; + } + public static float ChanceForFirstSocketToAppear + { + get => instance.m_chanceForFirstSocketToAppear; + set => instance.m_chanceForFirstSocketToAppear = value; + } + public static float ChanceForSubsequentSocketsToAppear + { + get => instance.m_chanceForSubsequentSocketsToAppear; + set => instance.m_chanceForSubsequentSocketsToAppear = value; + } + public static float MagicFindPerDifficultyLevel + { + get => instance.m_magicFindPerDifficultyLevel; + set => instance.m_magicFindPerDifficultyLevel = value; + } + public static bool PrivateLoot + { + get => instance.m_privateLoot; + set => instance.m_privateLoot = value; + } + public static float DropQuantityMultiplier + { + get => instance.m_dropQuantityMultiplier; + set => instance.m_dropQuantityMultiplier = value; + } + public static float DropQualityMultiplier + { + get => instance.m_dropQualityMultiplier; + set => instance.m_dropQualityMultiplier = value; + } + public static float DropChanceMultiplier + { + get => instance.m_dropChanceMultiplier; + set => instance.m_dropChanceMultiplier = value; + } + public static float ExpMultiplier + { + get => instance.m_expMultiplier; + set => instance.m_expMultiplier = value; + } + public static int EnemyLevelIncreaseGlobal + { + get => instance.m_enemyLevelIncreaseGlobal; + set => instance.m_enemyLevelIncreaseGlobal = value; + } + public static int EnemyLevelIncreaseCaves + { + get => instance.m_enemyLevelIncreaseCaves; + set => instance.m_enemyLevelIncreaseCaves = value; + } + public static float EnemyDamageMultiplier + { + get => instance.m_enemyDamageMultiplier; + set => instance.m_enemyDamageMultiplier = value; + } + public static float EnemyHealthMultiplier + { + get => instance.m_enemyHealthMultiplier; + set => instance.m_enemyHealthMultiplier = value; + } + public static float EnemyArmorMultiplier + { + get => instance.m_enemyArmorMultiplier; + set => instance.m_enemyArmorMultiplier = value; + } + public static float EnemySpeedMultiplier + { + get => instance.m_enemySpeedMultiplier; + set => instance.m_enemySpeedMultiplier = value; + } + public static bool AllowElites + { + get => instance.m_allowElites; + set => instance.m_allowElites = value; + } + public static int LootFilterMinRarity + { + get => instance.m_lootFilterMinRarity; + set => instance.m_lootFilterMinRarity = value; + } + public static bool CombineHitMarkers + { + get => instance.m_combineHitMarkers; + set => instance.m_combineHitMarkers = value; + } + public static bool FullNumberHitMarkers + { + get => instance.m_fullNumberHitMarkers; + set => instance.m_fullNumberHitMarkers = value; + } + public static float KeptExperienceAfterDeath + { + get => instance.m_keptExperienceAfterDeath; + set => instance.m_keptExperienceAfterDeath = value; + } + public static bool EndMassacreAfterDeath + { + get => instance.m_endMassacreAfterDeath; + set => instance.m_endMassacreAfterDeath = value; + } // static properties // these are not saved - static bool DifficultyChosen = false; + public static bool DifficultyChosen = false; + public static bool IsDedicated; public static string Version; public const bool RequiresNewFiles = false; @@ -112,7 +231,6 @@ public void Reset() m_dropsOnDeathMode = DropsOnDeathModes.Disabled; m_lootLevelRule = LootLevelRules.HighestPlayerLevel; m_friendlyFire = false; - m_isDedicated = false; m_killOnDowned = false; m_allowRandomCaveSpawn = true; m_allowCaveRespawn = true; diff --git a/Network/CommandReader.cs b/Network/CommandReader.cs index 214deba..f9b6aac 100644 --- a/Network/CommandReader.cs +++ b/Network/CommandReader.cs @@ -14,10 +14,11 @@ using UnityEngine; using ChampionsOfForest.Network.Commands; +using ChampionsOfForest.Items; namespace ChampionsOfForest.Network { - + public class CommandReader { public delegate void CommandDelegate(BinaryReader r); @@ -59,26 +60,7 @@ public static void OnCommand(byte[] bytes) break; } - case 2: - { - if (!GameSetup.IsMpClient || ModSettings.IsDedicated) - return; - int index = r.ReadInt32(); - ModSettings.FriendlyFire = r.ReadBoolean(); - ModSettings.dropsOnDeath = (ModSettings.DropsOnDeathModes)r.ReadInt32(); - ModSettings.killOnDowned = r.ReadBoolean(); - ModSettings.difficulty = (ModSettings.GameDifficulty)index; - if (!ModSettings.DifficultyChosen) - { - LocalPlayer.FpCharacter.UnLockView(); - LocalPlayer.FpCharacter.MovementLocked = false; - Cheats.GodMode = false; - MainMenu.Instance.ClearDiffSelectionObjects(); - } - ModSettings.DifficultyChosen = true; - break; - } case 3: { @@ -91,7 +73,7 @@ public static void OnCommand(byte[] bytes) else if (spellid == 2) { Vector3 pos = new Vector3(r.ReadSingle(), r.ReadSingle(), r.ReadSingle()); - HealingDome.CreateHealingDome(pos, + HealingDome.CreateHealingDome(pos, r.ReadSingle(), r.ReadSingle(), r.ReadBoolean(), @@ -262,7 +244,7 @@ public static void OnCommand(byte[] bytes) float slow = r.ReadSingle(); bool pullIn = r.ReadBoolean(); string playerID = r.ReadString(); - var player = ModReferences.AllPlayerEntities.First(x => x.GetState().name == playerID); + var player = ModReferences.PlayerStates.GetPlayerState(playerID).entity; if (player) { Taunt.Cast(pos, radius, player.gameObject, duration, slow, pullIn); @@ -280,16 +262,15 @@ public static void OnCommand(byte[] bytes) case 5: { var baseItem = ItemDatabase.itemLookup[r.ReadInt32()]; - Item item = new Item(baseItem, 1, 0, false); //reading first value, id ulong id = r.ReadUInt64(); int itemLvl = r.ReadInt32(); - item.level = itemLvl; int amount = r.ReadInt32(); Vector3 pos = new Vector3(r.ReadSingle(), r.ReadSingle(), r.ReadSingle()); int dropSource = r.ReadInt32(); + Item item = new Item(baseItem, itemLvl); while (r.BaseStream.Position != r.BaseStream.Length) { - ItemStat stat = new ItemStat(ItemDatabase.Stats[r.ReadInt32()], itemLvl, r.ReadInt32()) + ItemStat stat = new ItemStat(ItemDatabase.Stats[r.ReadInt32()], itemLvl, r.ReadInt32(), 0) { amount = r.ReadSingle() }; @@ -569,9 +550,12 @@ public static void OnCommand(byte[] bytes) if (ModReferences.ThisPlayerID == playerID) { //creating the item. - Item item = new Item(ItemDatabase.itemLookup[r.ReadInt32()], r.ReadInt32(), 0, false) + int itemID = r.ReadInt32(); + int amount = r.ReadInt32(); + int level = r.ReadInt32(); + Item item = new Item(ItemDatabase.itemLookup[itemID], level) { - level = r.ReadInt32() + stackedAmount = amount }; //adding stats to the item @@ -579,7 +563,7 @@ public static void OnCommand(byte[] bytes) { int statId = r.ReadInt32(); int statPoolIdx = r.ReadInt32(); - ItemStat stat = new ItemStat(ItemDatabase.Stats[statId], 1, statPoolIdx) + ItemStat stat = new ItemStat(ItemDatabase.Stats[statId], 1, statPoolIdx, 0) { amount = r.ReadSingle() }; @@ -613,21 +597,11 @@ public static void OnCommand(byte[] bytes) { string id = r.ReadString(); int weaponID = r.ReadInt32(); - if (!ModReferences.PlayerHands.ContainsKey(id) || ModReferences.PlayerHands[id] == null) + var state = ModReferences.PlayerStates.GetPlayerState(id); + if (state != null) { - ModReferences.FindHands(); + CoopCustomWeapons.SetWeaponOn(state.hand, weaponID); } - - if (ModReferences.PlayerHands.ContainsKey(id)) - { - CoopCustomWeapons.SetWeaponOn(ModReferences.PlayerHands[id], weaponID); - Console.WriteLine(ModReferences.PlayerHands[id].name); - } - else - { - Debug.LogWarning("NO HAND IN COMMAND READER"); - } - break; } @@ -795,17 +769,17 @@ public static void OnCommand(byte[] bytes) var pu = PickUpManager.PickUps[PickupID]; if (PlayerID == ModReferences.ThisPlayerID) { - MainMenu.Instance.localPlayerPing = new MarkPickup(pu.transform, pu.item.name, pu.item.rarity); + MainMenu.Instance.localPlayerPing = new MarkPickup(pu.transform, pu.item.name, (int) pu.item.rarity); } else { if (MainMenu.Instance.otherPlayerPings.ContainsKey(PlayerID)) { - MainMenu.Instance.otherPlayerPings[PlayerID] = new MarkPickup(pu.transform, pu.item.name, pu.item.rarity); + MainMenu.Instance.otherPlayerPings[PlayerID] = new MarkPickup(pu.transform, pu.item.name, (int)pu.item.rarity); } else { - MainMenu.Instance.otherPlayerPings.Add(PlayerID, new MarkPickup(pu.transform, pu.item.name, pu.item.rarity)); + MainMenu.Instance.otherPlayerPings.Add(PlayerID, new MarkPickup(pu.transform, pu.item.name, (int)pu.item.rarity)); } } } @@ -950,7 +924,7 @@ public static void OnCommand(byte[] bytes) NetworkManager.SendLine(answerStream.ToArray(), NetworkManager.Target.Clients); answerStream.Close(); } - UnityEngine.Debug.Log("CP request sent"); + UnityEngine.Debug.Log("CP request sent"); } else { diff --git a/Network/NetworkManager.cs b/Network/NetworkManager.cs index 1d76c86..c77ddf3 100644 --- a/Network/NetworkManager.cs +++ b/Network/NetworkManager.cs @@ -244,7 +244,7 @@ public static void HitEnemyMagic() } public static void SendHitmarker(Vector3 pos, float amount, Color c) { - COTFCommand.Send(Target.Everyone, new CreateHitMarker(amount,pos,c)) + COTFCommand.Send(Target.Everyone, new CreateHitMarker(amount, pos, c)); } public static void SendPlayerHitmarker(Vector3 pos, float amount) diff --git a/Player/CoopCustomWeapons.cs b/Player/CoopCustomWeapons.cs index a69cde6..769a643 100644 --- a/Player/CoopCustomWeapons.cs +++ b/Player/CoopCustomWeapons.cs @@ -3,6 +3,8 @@ using BuilderCore; +using ChampionsOfForest.Items; + using UnityEngine; namespace ChampionsOfForest.Player diff --git a/Player/Crafting/CraftingIngredient.cs b/Player/Crafting/CraftingIngredient.cs index 3060b46..2fd7c62 100644 --- a/Player/Crafting/CraftingIngredient.cs +++ b/Player/Crafting/CraftingIngredient.cs @@ -1,4 +1,6 @@ -namespace ChampionsOfForest.Player.Crafting +using ChampionsOfForest.Items; + +namespace ChampionsOfForest.Player.Crafting { public partial class CustomCrafting { diff --git a/Player/Crafting/Empowering.cs b/Player/Crafting/Empowering.cs index 549f575..37ac3da 100644 --- a/Player/Crafting/Empowering.cs +++ b/Player/Crafting/Empowering.cs @@ -1,5 +1,7 @@ using System; +using ChampionsOfForest.Items; + using UnityEngine; namespace ChampionsOfForest.Player.Crafting @@ -15,12 +17,12 @@ public bool validRecipe if (CraftingHandler.changedItem.i == null || CraftingHandler.changedItem.i.destinationSlotID > -2) return false; int itemCount = 0; - int rarity = CraftingHandler.changedItem.i.rarity; + int rarity = (int)CraftingHandler.changedItem.i.rarity; for (int i = 0; i < CraftingHandler.ingredients.Length; i++) { if (CraftingHandler.ingredients[i].i != null) { - if (CraftingHandler.ingredients[i].i.rarity >= rarity) + if ((int)CraftingHandler.ingredients[i].i.rarity >= rarity) { itemCount++; } @@ -45,7 +47,7 @@ public void Craft() { if (stat.id >= 3000) continue; - stat.amount = stat.RollValue(CraftingHandler.changedItem.i.level) * CustomCrafting.instance.changedItem.i.GetRarityMultiplier(); + stat.amount = stat.RollValue(CraftingHandler.changedItem.i.level, CustomCrafting.instance.changedItem.i.GetRarityMultiplier()); if (stat.valueCap != 0) stat.amount = Mathf.Min(stat.amount, stat.valueCap); stat.amount *= stat.multipier; @@ -80,17 +82,15 @@ public void DrawUI(in float x, in float w, in float screenScale, in GUIStyle[] s Rect statRect = new Rect(x + 10 * screenScale, ypos, w - 20 * screenScale, 26 * screenScale); Rect valueMinMaxRect = new Rect(statRect.xMax + 15 * screenScale, ypos, statRect.width, statRect.height); ypos += 26 * screenScale; - string maxAmount = stat.GetMaxValue(CraftingHandler.changedItem.i.level,mult) ; - string minAmount = stat.GetMinValue(CraftingHandler.changedItem.i.level, mult) ; + string maxAmount = stat.GetMaxValue(CraftingHandler.changedItem.i.level, mult); + string minAmount = stat.GetMinValue(CraftingHandler.changedItem.i.level, mult); string amount = stat.amount.ToString((stat.displayAsPercent ? "P" : "N") + stat.roundingCount); - GUI.color = MainMenu.RarityColors[stat.rarity]; GUI.Label(statRect, ind + ". " + stat.name, styles[0]); - GUI.color = Color.white; ind++; - - GUI.Label(statRect, amount, styles[1]); - GUI.Label(valueMinMaxRect, "[ " + minAmount+ " - " + maxAmount+" ]", styles[4]); - + + GUI.Label(statRect, amount, styles[1]); + GUI.Label(valueMinMaxRect, "[" + minAmount + " - " + maxAmount + "]", styles[4]); + } } catch (Exception e) diff --git a/Player/Crafting/IndividualRerolling.cs b/Player/Crafting/IndividualRerolling.cs index c3cdded..abedd1b 100644 --- a/Player/Crafting/IndividualRerolling.cs +++ b/Player/Crafting/IndividualRerolling.cs @@ -1,5 +1,6 @@ using System; +using ChampionsOfForest.Items; using ChampionsOfForest.Localization; using UnityEngine; @@ -23,15 +24,15 @@ public bool validRecipe var stat = CraftingHandler.changedItem.i.stats[selectedStat]; if (stat.possibleStatsIndex == -1) return false; - if (CraftingHandler.changedItem.i.statSlots[stat.possibleStatsIndex].Count < 2) + if (CraftingHandler.changedItem.i.statSlots[stat.possibleStatsIndex].options.Count < 2) return false; int itemCount = 0; - int rarity = CraftingHandler.changedItem.i.rarity; + int rarity = (int) CraftingHandler.changedItem.i.rarity; for (int i = 0; i < CraftingHandler.ingredients.Length; i++) { if (CraftingHandler.ingredients[i].i != null) { - if (CraftingHandler.ingredients[i].i.rarity >= rarity) + if ((int)CraftingHandler.ingredients[i].i.rarity >= rarity) { itemCount++; } @@ -58,9 +59,9 @@ public void Craft() else { var options = CraftingHandler.changedItem.i.statSlots[stat.possibleStatsIndex]; - int random = UnityEngine.Random.Range(0, options.Count); + int random = UnityEngine.Random.Range(0, options.options.Count); { - ItemStat newStat = new ItemStat(options[random], CraftingHandler.changedItem.i.level); + ItemStat newStat = new ItemStat(options.options[random], CraftingHandler.changedItem.i.level, stat.possibleStatsIndex, CraftingHandler.changedItem.i.GetRarityMultiplier()); newStat.amount *= CraftingHandler.changedItem.i.GetRarityMultiplier(); newStat.possibleStatsIndex = stat.possibleStatsIndex; if (newStat.valueCap != 0) diff --git a/Player/CustomWeapon.cs b/Player/CustomWeapon.cs index f5f4767..68e8d92 100644 --- a/Player/CustomWeapon.cs +++ b/Player/CustomWeapon.cs @@ -1,4 +1,6 @@ -using UnityEngine; +using ChampionsOfForest.Items; + +using UnityEngine; namespace ChampionsOfForest.Player { diff --git a/Player/Main Menu/MainMenu.cs b/Player/Main Menu/MainMenu.cs index 890be33..8f01c01 100644 --- a/Player/Main Menu/MainMenu.cs +++ b/Player/Main Menu/MainMenu.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Linq; +using ChampionsOfForest.Items; using ChampionsOfForest.Localization; using ChampionsOfForest.Player; using ChampionsOfForest.Player.Crafting; @@ -562,22 +563,22 @@ private void DrawMain() center = center }; - GUI.Label(new Rect(10 * screenScale, 10 * screenScale, 300, 100), Translations.MainMenu_23/*Difficulty: */ + DiffSel_Names[(int)ModSettings.difficulty](), chgDiffLabelStyle); //tr + GUI.Label(new Rect(10 * screenScale, 10 * screenScale, 300, 100), Translations.MainMenu_23/*Difficulty: */ + DiffSel_Names[(int)ModSettings.Difficulty](), chgDiffLabelStyle); //tr //drawing difficulty raise lower buttons if (difficultyCooldown <= 0 && !GameSetup.IsMpClient) { - if ((int)ModSettings.difficulty < (int)ModSettings.Difficulty.Hell && GUI.Button(new Rect(10 * screenScale, 90 * screenScale, 200 * screenScale, 40 * screenScale), Translations.MainMenu_24/*Raise Difficulty*/, chgDiffBtnStyle)) //tr + if ((int)ModSettings.Difficulty < (int)ModSettings.GameDifficulty.Hell && GUI.Button(new Rect(10 * screenScale, 90 * screenScale, 200 * screenScale, 40 * screenScale), Translations.MainMenu_24/*Raise Difficulty*/, chgDiffBtnStyle)) //tr { //raise difficulty difficultyCooldown = 30; - ModSettings.difficulty++; + ModSettings.Difficulty++; ModSettings.BroadCastSettingsToClients(); } - if (ModSettings.difficulty > (int)ModSettings.Difficulty.Easy && GUI.Button(new Rect(10 * screenScale, 130 * screenScale, 200 * screenScale, 40 * screenScale), Translations.MainMenu_25/*Lower Difficulty*/, chgDiffBtnStyle)) //tr + if (ModSettings.Difficulty > (int)ModSettings.GameDifficulty.Easy && GUI.Button(new Rect(10 * screenScale, 130 * screenScale, 200 * screenScale, 40 * screenScale), Translations.MainMenu_25/*Lower Difficulty*/, chgDiffBtnStyle)) //tr { //lower difficulty difficultyCooldown = 30; - ModSettings.difficulty--; + ModSettings.Difficulty--; ModSettings.BroadCastSettingsToClients(); } if (GUI.Button(new Rect(10 * screenScale, 170 * screenScale, 200 * screenScale, 40 * screenScale), Translations.MainMenu_26/*Change Options*/, chgDiffBtnStyle)) //tr diff --git a/Player/Main Menu/MainMenu_DifficultySelection.cs b/Player/Main Menu/MainMenu_DifficultySelection.cs index 6471d73..f2591f6 100644 --- a/Player/Main Menu/MainMenu_DifficultySelection.cs +++ b/Player/Main Menu/MainMenu_DifficultySelection.cs @@ -171,7 +171,6 @@ private void InitStyles() }; } - private readonly int[] highestObtainableLootTierPerLevel = { 2, 3, 4, 5, 6, 7, 7, 7, 7, 7, 7 }; private void DrawDifficultyTabs() { @@ -187,7 +186,7 @@ private void DrawDifficultyTabs() { ModSettings.DifficultyChosen = true; Array values = Enum.GetValues(typeof(ModSettings.GameDifficulty)); - ModSettings.difficulty = (ModSettings.GameDifficulty)values.GetValue(ii); + ModSettings.Difficulty = (ModSettings.GameDifficulty)values.GetValue(ii); LocalPlayer.FpCharacter.UnLockView(); LocalPlayer.FpCharacter.MovementLocked = false; Cheats.GodMode = false; @@ -204,7 +203,8 @@ private void DrawDifficultyTabs() desc.height = 400 * screenScale; desc.y = icon.yMax; - GUI.color = RarityColors[highestObtainableLootTierPerLevel[ii]]; + //TODO - add colors for each difficulty + //GUI.color = RarityColors[highestObtainableLootTierPerLevel[ii]]; GUI.Label(name, DiffSel_Names[ii](), DiffNameStyle); GUI.color = Color.white; if (ii < 4) @@ -263,7 +263,7 @@ private void DrawSettings() } //Bleeding out - if (ModSettings.killOnDowned) + if (ModSettings.KillOnDowned) { GUI.color = Color.red; var r = new Rect(Screen.width / 2 - 300 * screenScale, 170 * screenScale, 600 * screenScale, 50 * screenScale); @@ -273,12 +273,13 @@ private void DrawSettings() fontSize = Mathf.FloorToInt(20 * screenScale) })) { - ModSettings.killOnDowned = !ModSettings.killOnDowned; + ModSettings.KillOnDowned = !ModSettings.KillOnDowned; } else if (r.Contains(Instance.mousePos)) { GUI.Label(new Rect(r.xMax, r.y, 600 * screenScale, 100f), Translations.MainMenu_DifficultySelection_9/*Instead of being downed, players instantly die*/); //tr } + GUI.color = Color.white; } else { @@ -290,7 +291,7 @@ private void DrawSettings() fontSize = Mathf.FloorToInt(20 * screenScale) })) { - ModSettings.killOnDowned = !ModSettings.killOnDowned; + ModSettings.KillOnDowned = !ModSettings.KillOnDowned; } else if (r.Contains(Instance.mousePos)) { @@ -299,7 +300,7 @@ private void DrawSettings() } //Drops on death - switch (ModSettings.dropsOnDeath) + switch (ModSettings.DropsOnDeath) { case ModSettings.DropsOnDeathModes.All: GUI.color = Color.red; @@ -309,7 +310,7 @@ private void DrawSettings() GUI.color = Color.yellow; break; - case ModSettings.DropsOnDeathModes.NonEquipped: + case ModSettings.DropsOnDeathModes.Inventory: GUI.color = Color.cyan; break; @@ -320,30 +321,30 @@ private void DrawSettings() default: break; } - if (GUI.Button(new Rect(Screen.width / 2 - 300 * screenScale, 70 * screenScale, 600 * screenScale, 50 * screenScale), Translations.MainMenu_DifficultySelection_12/*Item drops on death: */ + ModSettings.dropsOnDeath, new GUIStyle(GUI.skin.button) //tr + if (GUI.Button(new Rect(Screen.width / 2 - 300 * screenScale, 70 * screenScale, 600 * screenScale, 50 * screenScale), Translations.MainMenu_DifficultySelection_12/*Item drops on death: */ + ModSettings.DropsOnDeath, new GUIStyle(GUI.skin.button) //tr { font = mainFont, fontSize = Mathf.FloorToInt(20 * screenScale) })) { - int i = (int)ModSettings.dropsOnDeath + 1; - i %= 4; - ModSettings.dropsOnDeath = (ModSettings.DropsOnDeathModes)i; + int i = (int)ModSettings.DropsOnDeath + 1; + i %= (int)ModSettings.DropsOnDeathModes.Max; + ModSettings.DropsOnDeath = (ModSettings.DropsOnDeathModes)i; } GUI.color = Color.white; - if (GUI.Button(new Rect(Screen.width / 2 - 300 * screenScale, 220 * screenScale, 600 * screenScale, 50 * screenScale), Translations.MainMenu_DifficultySelection_26 + ModSettings.m_lootLevelRule, new GUIStyle(GUI.skin.button) //tr + if (GUI.Button(new Rect(Screen.width / 2 - 300 * screenScale, 220 * screenScale, 600 * screenScale, 50 * screenScale), Translations.MainMenu_DifficultySelection_26 + ModSettings.LootLevelRule, new GUIStyle(GUI.skin.button) //tr { font = mainFont, fontSize = Mathf.FloorToInt(20 * screenScale) })) { - int i = (int)ModSettings.m_lootLevelRule + 1; - i %= 5; - ModSettings.m_lootLevelRule = (ModSettings.LootLevelRules)i; + int i = (int)ModSettings.LootLevelRule + 1; + i %= (int)ModSettings.LootLevelRules.Max; + ModSettings.LootLevelRule = (ModSettings.LootLevelRules)i; } float y = 350; @@ -360,15 +361,15 @@ private void DrawSettings() if (ModSettings.AllowCaveRespawn) DrawCheatOption(ref ModSettings.AllowRandomCaveSpawn, Translations.MainMenu_DifficultySelection_28, ref y); //tr if (ModSettings.AllowRandomCaveSpawn && ModSettings.AllowCaveRespawn) - DrawCheatOption(ref ModSettings.CaveMaxAdditionalEnemies, Translations.MainMenu_DifficultySelection_29, ref y,0,20); //tr + DrawCheatOption(ref ModSettings.CaveMaxAdditionalEnemies, Translations.MainMenu_DifficultySelection_29, ref y, 0, 20); //tr if (ModSettings.AllowCaveRespawn) DrawCheatOption(ref ModSettings.CaveRespawnDelay, Translations.MainMenu_DifficultySelection_30, ref y); //tr DrawCheatOptionLootFilter(ref ModSettings.LootFilterMinRarity, "Remove loot below rarirty (except materials)", ref y); //tr - if (GUI.Button(new Rect(Screen.width*0.5f - 250 * screenScale, y * screenScale, 500 * screenScale, 40 * screenScale), Translations.MainMenu_DifficultySelection_31)) //tr + if (GUI.Button(new Rect(Screen.width * 0.5f - 250 * screenScale, y * screenScale, 500 * screenScale, 40 * screenScale), Translations.MainMenu_DifficultySelection_31)) //tr { - ModSettings.Reset(); + ModSettings.instance.Reset(); } } diff --git a/Player/Main Menu/MainMenu_Inventory.cs b/Player/Main Menu/MainMenu_Inventory.cs index 1f2a7c6..bce30eb 100644 --- a/Player/Main Menu/MainMenu_Inventory.cs +++ b/Player/Main Menu/MainMenu_Inventory.cs @@ -1,6 +1,7 @@ using System; using System.Linq; +using ChampionsOfForest.Items; using ChampionsOfForest.Localization; using ChampionsOfForest.Player; using ChampionsOfForest.Player.Crafting; @@ -35,7 +36,7 @@ public ItemContextMenu(Rect r, int itemIndex) this.itemIndex = itemIndex; this.i = Inventory.Instance.ItemSlots[itemIndex]; buttons = AvailableContextMenuButtons.drop | - (i.canConsume ? AvailableContextMenuButtons.consume : AvailableContextMenuButtons.none) | + (i.type == ItemDefinition.ItemType.Consumable ? AvailableContextMenuButtons.consume : AvailableContextMenuButtons.none) | (i.stackedAmount > 1 ? AvailableContextMenuButtons.splitStack : AvailableContextMenuButtons.none); buttonCount = buttons == (AvailableContextMenuButtons)0b111 ? 3 : (buttons != (AvailableContextMenuButtons)0b100 ? 2 : 1); @@ -264,7 +265,7 @@ private void DrawCrafting(float x) public void CraftingIngredientBox(Rect r, CustomCrafting.CraftingIngredient ingredient) { - GUI.color = ingredient.i != null ? RarityColors[ingredient.i.rarity] : Color.white; + GUI.color = ingredient.i != null ? ingredient.i.RarityColor : Color.white; GUI.DrawTexture(r, Res.ResourceLoader.instance.LoadedTextures[12]); GUI.color = new Color(1, 1, 1, 1); @@ -377,11 +378,11 @@ private void DrawItemInfo(Vector2 pos, Item item, bool drawCompare = false, Item } GUI.color = new Color(1, 1, 1, 0.8f); GUI.DrawTexture(descriptionBox, blackSquareTex); - GUI.color = RarityColors[item.rarity]; + GUI.color = item.RarityColor; GUI.Label(ItemNameRect, item.name, ItemNameStyle); for (int i = 0; i < StatRects.Length; i++) { - GUI.color = RarityColors[item.stats[i].rarity]; + GUI.color = Color.white; GUI.Label(StatRects[i], item.stats[i].name, StatNameStyle); double amount = item.stats[i].amount; if (item.stats[i].displayAsPercent) @@ -619,7 +620,7 @@ private void DrawInvSlot(Rect r, int index) if (Inventory.Instance.ItemSlots[index] != null) { - frameColor = RarityColors[Inventory.Instance.ItemSlots[index].rarity]; + frameColor = Inventory.Instance.ItemSlots[index].RarityColor; if (Inventory.Instance.ItemSlots[index].icon != null) { Rect itemRect = new Rect(r); @@ -797,13 +798,11 @@ private void DrawInvContextMenu() if (!consumedsomething) { consumedsomething = true; - if (itemContextMenu.Value.i.OnConsume()) + itemContextMenu.Value.i.OnEquip(); + itemContextMenu.Value.i.stackedAmount--; + if (itemContextMenu.Value.i.stackedAmount <= 0) { - itemContextMenu.Value.i.stackedAmount--; - if (itemContextMenu.Value.i.stackedAmount <= 0) - { - Inventory.Instance.ItemSlots[itemContextMenu.Value.itemIndex] = null; - } + Inventory.Instance.ItemSlots[itemContextMenu.Value.itemIndex] = null; } CloseItemContextMenu(); return; @@ -832,8 +831,8 @@ private void DrawInvContextMenu() if (emptySlot != -1) { int amount = itemContextMenu.Value.i.stackedAmount / 2; - var itemClone = new Item(itemContextMenu.Value.i, amount, 0, false); - itemClone.level = itemContextMenu.Value.i.level; + var itemClone = new Item(itemContextMenu.Value.i, itemContextMenu.Value.i.level); + itemClone.stackedAmount = amount; if (itemContextMenu.Value.i.stats != null) itemClone.stats = new System.Collections.Generic.List(itemContextMenu.Value.i.stats); diff --git a/Player/ModdedPlayer/ModdedPlayer.cs b/Player/ModdedPlayer/ModdedPlayer.cs index fb40b02..ec6a9a0 100644 --- a/Player/ModdedPlayer/ModdedPlayer.cs +++ b/Player/ModdedPlayer/ModdedPlayer.cs @@ -710,7 +710,7 @@ public void AddFinalExperience(long Amount) public void SendPlayerState() { - COTFCommand.Send(NetworkManager.Target.Others, new GetPlayerStateParams() + COTFCommand.Send(NetworkManager.Target.Everyone, new GetPlayerStateParams() { entityNetworkID = LocalPlayer.Entity.networkId.PackedValue, health = LocalPlayer.Stats.Health, diff --git a/Player/ModdedPlayer/Stats/AdditiveNetworkSyncedPlayerStat.cs b/Player/ModdedPlayer/Stats/AdditiveNetworkSyncedPlayerStat.cs index a77aefd..10a3f1a 100644 --- a/Player/ModdedPlayer/Stats/AdditiveNetworkSyncedPlayerStat.cs +++ b/Player/ModdedPlayer/Stats/AdditiveNetworkSyncedPlayerStat.cs @@ -73,10 +73,10 @@ public Dictionary OtherPlayerValues public void PlayerDisconnected() { var keys = OtherPlayerValues.Keys; - var names = ModReferences.PlayerStates.Select(x => x.name).ToList(); + var states = ModReferences.PlayerStates.All; foreach (var key in keys) { - if (!names.Contains(key)) + if (!states.Any(x=> x.playerID == key)) { OtherPlayerValues.Remove(key); } diff --git a/Player/ModdedPlayer/Stats/BaseClasses/NetworkPlayerStats.cs b/Player/ModdedPlayer/Stats/BaseClasses/NetworkPlayerStats.cs index 58e2ac4..ac7729e 100644 --- a/Player/ModdedPlayer/Stats/BaseClasses/NetworkPlayerStats.cs +++ b/Player/ModdedPlayer/Stats/BaseClasses/NetworkPlayerStats.cs @@ -33,6 +33,7 @@ public static void SendUpdate(int nID) } public static void PlayerLeft() { + //todo call this function somewhere foreach (var stat in syncedStats) { stat.PlayerDisconnected(); diff --git a/Player/Overrides/PlayerInventoryMod.cs b/Player/Overrides/PlayerInventoryMod.cs index 622a7ed..974199a 100644 --- a/Player/Overrides/PlayerInventoryMod.cs +++ b/Player/Overrides/PlayerInventoryMod.cs @@ -1,6 +1,7 @@ using System.Collections.Generic; using ChampionsOfForest.Effects; +using ChampionsOfForest.Items; using TheForest.Items.Inventory; using TheForest.Utils; diff --git a/Player/Overrides/PlayerStatsEx.cs b/Player/Overrides/PlayerStatsEx.cs index 990737a..baeceed 100644 --- a/Player/Overrides/PlayerStatsEx.cs +++ b/Player/Overrides/PlayerStatsEx.cs @@ -948,7 +948,7 @@ protected override void CheckDeath() Inventory.Instance.DropEquipped(); break; - case ModSettings.DropsOnDeathModes.NonEquipped: + case ModSettings.DropsOnDeathModes.Inventory: Inventory.Instance.DropNonEquipped(); break; } diff --git a/Player/RCoroutines.cs b/Player/RCoroutines.cs index 3c591ab..1260d7e 100644 --- a/Player/RCoroutines.cs +++ b/Player/RCoroutines.cs @@ -1,4 +1,7 @@ using System.Collections; + +using ChampionsOfForest.Items; + using TheForest.Items.Inventory; using TheForest.Items.World; using TheForest.Utils; @@ -32,7 +35,7 @@ public IEnumerator AsyncSendRandomItemDrops(int count, EnemyProgression.Enemy ty for (int i = 0; i < count; i++) { Item randomItem = ItemDatabase.GetRandomItem(bounty, type, difficulty, position); - if (randomItem.rarity >= ModSettings.LootFilterMinRarity || randomItem.type == ItemDefinition.ItemType.Material || randomItem.type == ItemDefinition.ItemType.Other) + if (randomItem.type == ItemDefinition.ItemType.Material || randomItem.type == ItemDefinition.ItemType.Other) { yield return null; Network.NetworkManager.SendItemDrop(randomItem, position + Vector3.up * (2f + i / 10) + Random.Range(-1, 1) * Vector3.forward + Random.Range(-1, 1) * Vector3.right, ItemPickUp.DropSource.EnemyOnDeath); diff --git a/Serializer.cs b/Serializer.cs index 828d86d..e1138cb 100644 --- a/Serializer.cs +++ b/Serializer.cs @@ -3,6 +3,7 @@ using System.IO; using System.Threading; +using ChampionsOfForest.Items; using ChampionsOfForest.Player; using TheForest.Save; @@ -86,9 +87,9 @@ private void DoLoad(string path, out float HealthPercentage, out Dictionary