Removed armor stat hackery.

Added new armor stats to remaining armor items.
Fixed broken tests.
This commit is contained in:
Sam 2021-05-20 22:04:36 -05:00 committed by Marcel Märtens
parent ff66e34be5
commit 2a07fad802
81 changed files with 335 additions and 28 deletions

View File

@ -7,7 +7,11 @@ ItemDef(
stats: (
protection: Normal(0.0),
poise_resilience: Normal(0.0),
),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)
),
quality: Moderate,

View File

@ -7,7 +7,11 @@ ItemDef(
stats: (
protection: Normal(0.0),
poise_resilience: Normal(0.0),
),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)
),
quality: Moderate,

View File

@ -7,7 +7,11 @@ ItemDef(
stats: (
protection: Normal(0.0),
poise_resilience: Normal(0.0),
),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)
),
quality: Moderate,

View File

@ -7,7 +7,11 @@ ItemDef(
stats: (
protection: Normal(0.0),
poise_resilience: Normal(0.0),
),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)
),
quality: Epic,

View File

@ -7,7 +7,11 @@ ItemDef(
stats: (
protection: Normal(0.0),
poise_resilience: Normal(0.0),
),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)
),
quality: High,

View File

@ -7,7 +7,11 @@ ItemDef(
stats: (
protection: Normal(0.0),
poise_resilience: Normal(0.0),
),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)
),
quality: Legendary,

View File

@ -7,7 +7,11 @@ ItemDef(
stats: (
protection: Normal(0.0),
poise_resilience: Normal(0.0),
),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)
),
quality: Legendary,

View File

@ -7,7 +7,11 @@ ItemDef(
stats: (
protection: Normal(0.0),
poise_resilience: Normal(0.0),
),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)
),
quality: High,

View File

@ -7,7 +7,11 @@ ItemDef(
stats: (
protection: Normal(0.0),
poise_resilience: Normal(0.0),
),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)
),
quality: Common,

View File

@ -7,7 +7,11 @@ ItemDef(
stats: (
protection: Normal(0.0),
poise_resilience: Normal(0.0),
),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)
),
quality: Common,

View File

@ -7,7 +7,11 @@ ItemDef(
stats: (
protection: Normal(0.0),
poise_resilience: Normal(0.0),
),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)
),
quality: High,

View File

@ -7,7 +7,11 @@ ItemDef(
stats: (
protection: Normal(0.0),
poise_resilience: Normal(0.0),
),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)
),
quality: Moderate,

View File

@ -6,7 +6,11 @@ ItemDef(
kind: Back("Admin"),
stats: (
protection: Normal(0.0),
poise_resilience: Normal(0.0),
poise_resilience: Normal(0.0),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)
),

View File

@ -6,8 +6,12 @@ ItemDef(
kind: Bag("BlackHole"),
stats: (
protection: Normal(0.0),
poise_resilience: Normal(0.0)
),
poise_resilience: Normal(0.0),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)
),
quality: Debug,

View File

@ -7,6 +7,10 @@ ItemDef(
stats: (
protection: Normal(0.0),
poise_resilience: Normal(0.0),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)
),

View File

@ -7,6 +7,10 @@ ItemDef(
stats: (
protection: Normal(0.0),
poise_resilience: Normal(0.0),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)
),

View File

@ -7,6 +7,10 @@ ItemDef(
stats: (
protection: Normal(0.0),
poise_resilience: Normal(0.0),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)
),

View File

@ -7,6 +7,10 @@ ItemDef(
stats: (
protection: Normal(0.0),
poise_resilience: Normal(0.0),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)
),

View File

@ -7,6 +7,10 @@ ItemDef(
stats: (
protection: Normal(0.0),
poise_resilience: Normal(0.0),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)
),

View File

@ -7,6 +7,10 @@ ItemDef(
stats: (
protection: Normal(0.0),
poise_resilience: Normal(0.0),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)
),

View File

@ -7,6 +7,10 @@ ItemDef(
stats: (
protection: Normal(0.0),
poise_resilience: Normal(0.0),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)
),

View File

@ -7,6 +7,10 @@ ItemDef(
stats: (
protection: Normal(0.0),
poise_resilience: Normal(0.0),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)
),

View File

@ -7,6 +7,10 @@ ItemDef(
stats: (
protection: Normal(1.0),
poise_resilience: Normal(0.0),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)
),

View File

@ -6,6 +6,10 @@ ItemDef(
stats: (
protection: Normal(60.0),
poise_resilience: Normal(1.0),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)),
quality: Legendary,

View File

@ -6,6 +6,10 @@ ItemDef(
stats: (
protection: Normal(12.0),
poise_resilience: Normal(1.0),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)),
quality: Low,

View File

@ -6,6 +6,10 @@ ItemDef(
stats: (
protection: Normal(12.0),
poise_resilience: Normal(1.0),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)),
quality: Low,

View File

@ -6,6 +6,10 @@ ItemDef(
stats: (
protection: Normal(10.0),
poise_resilience: Normal(1.0),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)),
quality: Low,

View File

@ -6,6 +6,10 @@ ItemDef(
stats: (
protection: Normal(10.0),
poise_resilience: Normal(1.0),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)),
quality: Low,

View File

@ -6,6 +6,10 @@ ItemDef(
stats: (
protection: Normal(10.0),
poise_resilience: Normal(1.0),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)),
quality: Low,

View File

@ -6,6 +6,10 @@ ItemDef(
stats: (
protection: Normal(10.0),
poise_resilience: Normal(1.0),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)),
quality: Low,

View File

@ -6,6 +6,10 @@ ItemDef(
stats: (
protection: Normal(10.0),
poise_resilience: Normal(1.0),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)),
quality: Low,

View File

@ -6,6 +6,10 @@ ItemDef(
stats: (
protection: Normal(10.0),
poise_resilience: Normal(1.0),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)),
quality: Low,

View File

@ -6,6 +6,10 @@ ItemDef(
stats: (
protection: Normal(10.0),
poise_resilience: Normal(1.0),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)),
quality: Low,

View File

@ -6,6 +6,10 @@ ItemDef(
stats: (
protection: Normal(10.0),
poise_resilience: Normal(1.0),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)),
quality: Low,

View File

@ -6,6 +6,10 @@ ItemDef(
stats: (
protection: Normal(2.0),
poise_resilience: Normal(1.0),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)),
quality: Low,

View File

@ -6,6 +6,10 @@ ItemDef(
stats: (
protection: Normal(1.0),
poise_resilience: Normal(1.0),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)),
quality: Low,

View File

@ -6,6 +6,10 @@ ItemDef(
stats: (
protection: Normal(1.0),
poise_resilience: Normal(1.0),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)),
quality: Low,

View File

@ -6,6 +6,10 @@ ItemDef(
stats: (
protection: Normal(1.0),
poise_resilience: Normal(1.0),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)),
quality: Low,

View File

@ -6,6 +6,10 @@ ItemDef(
stats: (
protection: Normal(1.0),
poise_resilience: Normal(1.0),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)),
quality: Low,

View File

@ -6,6 +6,10 @@ ItemDef(
stats: (
protection: Normal(1.0),
poise_resilience: Normal(1.0),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)),
quality: Low,

View File

@ -6,6 +6,10 @@ ItemDef(
stats: (
protection: Normal(23.0),
poise_resilience: Normal(1.0),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)),
quality: Low,

View File

@ -6,6 +6,10 @@ ItemDef(
stats: (
protection: Normal(17.0),
poise_resilience: Normal(1.0),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)),
quality: Low,

View File

@ -6,6 +6,10 @@ ItemDef(
stats: (
protection: Normal(17.0),
poise_resilience: Normal(1.0),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)),
quality: Low,

View File

@ -6,6 +6,10 @@ ItemDef(
stats: (
protection: Normal(17.0),
poise_resilience: Normal(1.0),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)),
quality: Low,

View File

@ -6,6 +6,10 @@ ItemDef(
stats: (
protection: Normal(17.0),
poise_resilience: Normal(1.0),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)),
quality: Low,

View File

@ -6,6 +6,10 @@ ItemDef(
stats: (
protection: Normal(18.0),
poise_resilience: Normal(1.0),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)),
quality: Low,

View File

@ -6,6 +6,10 @@ ItemDef(
stats: (
protection: Normal(14.0),
poise_resilience: Normal(1.0),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)),
quality: Low,

View File

@ -6,6 +6,10 @@ ItemDef(
stats: (
protection: Normal(14.0),
poise_resilience: Normal(1.0),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)),
quality: Low,

View File

@ -6,6 +6,10 @@ ItemDef(
stats: (
protection: Normal(14.0),
poise_resilience: Normal(1.0),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)),
quality: Low,

View File

@ -6,6 +6,10 @@ ItemDef(
stats: (
protection: Normal(14.0),
poise_resilience: Normal(1.0),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)),
quality: Low,

View File

@ -6,6 +6,10 @@ ItemDef(
stats: (
protection: Normal(14.0),
poise_resilience: Normal(1.0),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)),
quality: Low,

View File

@ -6,6 +6,10 @@ ItemDef(
stats: (
protection: Normal(2.0),
poise_resilience: Normal(1.0),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)),
quality: Low,

View File

@ -6,6 +6,10 @@ ItemDef(
stats: (
protection: Normal(2.0),
poise_resilience: Normal(1.0),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)),
quality: Low,

View File

@ -6,6 +6,10 @@ ItemDef(
stats: (
protection: Normal(2.0),
poise_resilience: Normal(1.0),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)),
quality: Low,

View File

@ -6,6 +6,10 @@ ItemDef(
stats: (
protection: Normal(2.0),
poise_resilience: Normal(1.0),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)),
quality: Low,

View File

@ -6,6 +6,10 @@ ItemDef(
stats: (
protection: Normal(2.0),
poise_resilience: Normal(1.0),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)),
quality: Low,

View File

@ -6,6 +6,10 @@ ItemDef(
stats: (
protection: Normal(2.0),
poise_resilience: Normal(1.0),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)),
quality: Low,

View File

@ -6,6 +6,10 @@ ItemDef(
stats: (
protection: Normal(36.0),
poise_resilience: Normal(1.0),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)),
quality: Low,

View File

@ -6,6 +6,10 @@ ItemDef(
stats: (
protection: Normal(25.0),
poise_resilience: Normal(1.0),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)),
quality: Low,

View File

@ -6,6 +6,10 @@ ItemDef(
stats: (
protection: Normal(25.0),
poise_resilience: Normal(1.0),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)),
quality: Low,

View File

@ -6,6 +6,10 @@ ItemDef(
stats: (
protection: Normal(25.0),
poise_resilience: Normal(1.0),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)),
quality: Low,

View File

@ -6,6 +6,10 @@ ItemDef(
stats: (
protection: Normal(25.0),
poise_resilience: Normal(1.0),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)),
quality: Low,

View File

@ -6,6 +6,10 @@ ItemDef(
stats: (
protection: Normal(25.0),
poise_resilience: Normal(1.0),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)),
quality: Low,

View File

@ -6,6 +6,10 @@ ItemDef(
stats: (
protection: Normal(18.0),
poise_resilience: Normal(1.0),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)),
quality: Low,

View File

@ -6,6 +6,10 @@ ItemDef(
stats: (
protection: Normal(14.0),
poise_resilience: Normal(1.0),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)),
quality: Low,

View File

@ -6,6 +6,10 @@ ItemDef(
stats: (
protection: Normal(14.0),
poise_resilience: Normal(1.0),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)),
quality: Low,

View File

@ -6,6 +6,10 @@ ItemDef(
stats: (
protection: Normal(14.0),
poise_resilience: Normal(1.0),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)),
quality: Low,

View File

@ -6,6 +6,10 @@ ItemDef(
stats: (
protection: Normal(14.0),
poise_resilience: Normal(1.0),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)),
quality: Low,

View File

@ -6,6 +6,10 @@ ItemDef(
stats: (
protection: Normal(14.0),
poise_resilience: Normal(1.0),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)),
quality: Low,

View File

@ -7,6 +7,10 @@ ItemDef(
stats: (
protection: Normal(5.0),
poise_resilience: Normal(5.0),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)
),

View File

@ -7,6 +7,10 @@ ItemDef(
stats: (
protection: Normal(5.0),
poise_resilience: Normal(5.0),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)
),

View File

@ -6,6 +6,10 @@ ItemDef(
stats: (
protection: Normal(180.0),
poise_resilience: Normal(1.0),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)),
quality: Legendary,

View File

@ -7,6 +7,10 @@ ItemDef(
stats: (
protection: Normal(10.0),
poise_resilience: Normal(10.0),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)
),

View File

@ -7,6 +7,10 @@ ItemDef(
stats: (
protection: Normal(10.0),
poise_resilience: Normal(10.0),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)
),

View File

@ -7,6 +7,10 @@ ItemDef(
stats: (
protection: Normal(0.0),
poise_resilience: Normal(0.0),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)
),

View File

@ -7,6 +7,10 @@ ItemDef(
stats: (
protection: Normal(0.0),
poise_resilience: Normal(0.0),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)
),

View File

@ -7,7 +7,11 @@ ItemDef(
stats: (
protection: Normal(0.0),
poise_resilience: Normal(0.0),
),
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
),
)
),
quality: Low,

View File

@ -2,5 +2,5 @@
(1.0, LootTable("common.loot_tables.food.prepared")),
(1.0, LootTable("common.loot_tables.cave_large")),
(1.0, LootTable("common.loot_tables.weapons.tier-2")),
(5.0, Item("common.items.crafting_ing.leather_troll")),
(5.0, Item("common.items.crafting_ing.hide.leather_troll")),
]

View File

@ -1,6 +1,6 @@
[
(2.0, Item("common.items.crafting_ing.stones")),
(0.5, Item("common.items.ore.veloritefrag")),
(0.25, Item("common.items.ore.velorite")),
(0.5, Item("common.items.mineral.ore.veloritefrag")),
(0.25, Item("common.items.mineral.ore.velorite")),
(0.25, LootTable("common.loot_tables.materials.gems")),
]

View File

@ -28,29 +28,23 @@ impl Armor {
#[derive(Clone, Copy, Debug, PartialEq, Serialize, Deserialize)]
pub struct Stats {
#[serde(default)]
/// Protection is non-linearly transformed to a damage reduction using
/// (prot / (60 + prot))
protection: Protection,
#[serde(default)]
/// Poise protection is non-linearly transformed to a poise damage reduction
/// using (prot / (60 + prot))
poise_resilience: Protection,
#[serde(default)]
/// Energy max is summed, and then applied directly to the max energy stat
/// (multiply values by 10 for expected results, as energy internally is 10x
/// larger to allow smaller changes to occur with an integer)
energy_max: i32,
#[serde(default)]
/// Energy recovery is summed, and then added to 1.0. When attacks reward
/// energy, it is then multiplied by this value before the energy is
/// rewarded.
energy_recovery: f32,
#[serde(default)]
/// Crit power is summed, and then added to the default crit multiplier of
/// 1.25. Damage is multiplied by this value when an attack crits.
crit_power: f32,
#[serde(default)]
stealth: f32,
}
@ -170,6 +164,10 @@ impl Armor {
stats: Stats {
protection,
poise_resilience,
energy_max: 0,
energy_recovery: 0.0,
crit_power: 0.0,
stealth: 0.0,
},
}
}

View File

@ -707,8 +707,8 @@ impl Item {
SpriteKind::Apple => "common.items.food.apple",
SpriteKind::Mushroom => "common.items.food.mushroom",
SpriteKind::CaveMushroom => "common.items.food.mushroom",
SpriteKind::Velorite => "common.items.ore.velorite",
SpriteKind::VeloriteFrag => "common.items.ore.veloritefrag",
SpriteKind::Velorite => "common.items.mineral.ore.velorite",
SpriteKind::VeloriteFrag => "common.items.mineral.ore.veloritefrag",
SpriteKind::BlueFlower => "common.items.flowers.blue",
SpriteKind::PinkFlower => "common.items.flowers.pink",
SpriteKind::PurpleFlower => "common.items.flowers.purple",
@ -956,7 +956,8 @@ mod tests {
Item::new_from_asset_glob("common.items.npc_weapons.*")
.expect("Failed to iterate over npc weapons.");
Item::new_from_asset_glob("common.items.ore.*").expect("Failed to iterate over ores.");
Item::new_from_asset_glob("common.items.mineral.*")
.expect("Failed to iterate over minerals.");
Item::new_from_asset_glob("common.items.tag_examples.*")
.expect("Failed to iterate over tag examples.");