From e10b050d9224f52031e3a24521f2c63c33d3b2de Mon Sep 17 00:00:00 2001 From: nsensfel Date: Fri, 8 Jun 2018 16:18:40 +0200 Subject: Takes armor benefits into account. --- src/shared/struct/sh_armor.erl | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) (limited to 'src/shared/struct') diff --git a/src/shared/struct/sh_armor.erl b/src/shared/struct/sh_armor.erl index 04b82d6..f328fdf 100644 --- a/src/shared/struct/sh_armor.erl +++ b/src/shared/struct/sh_armor.erl @@ -42,7 +42,8 @@ [ random_id/0, from_id/1, - apply_to_attributes/2 + apply_to_attributes/2, + get_resistance_to/2 ] ). @@ -142,3 +143,27 @@ apply_to_attributes (Ar, Att) -> ) ) end. + +-spec get_resistance_to (sh_weapon:damage_type(), type()) -> non_neg_integer(). +get_resistance_to (DamageType, Armor) -> + ArmorCategory = Armor#armor.category, + BaseResistance = + case {DamageType, ArmorCategory} of + {slash, kinetic} -> 0.0; + {slash, leather} -> 5.0; + {slash, chain} -> 10.0; + {slash, plate} -> 10.0; + {blunt, kinetic} -> 10.0; + {blunt, leather} -> 5.0; + {blunt, chain} -> 5.0; + {blunt, plate} -> 5.0; + {pierce, kinetic} -> 5.0; + {pierce, leather} -> 5.0; + {pierce, chain} -> 5.0; + {pierce, plate} -> 10.0 + end, + + ArmorCoefficient = Armor#armor.coef, + ActualResistance = (ArmorCoefficient * BaseResistance), + + erlang:ceil(ActualResistance). -- cgit v1.2.3-70-g09d2