| summaryrefslogtreecommitdiff | 
diff options
| author | nsensfel <SpamShield0@noot-noot.org> | 2018-06-08 16:18:40 +0200 | 
|---|---|---|
| committer | nsensfel <SpamShield0@noot-noot.org> | 2018-06-08 16:18:40 +0200 | 
| commit | e10b050d9224f52031e3a24521f2c63c33d3b2de (patch) | |
| tree | ba4466b8082cc3a1576afe10561e33c859666bdc /src/shared/struct | |
| parent | 0416d506aa9d20f2b65ce0123e9c54798a00411e (diff) | |
Takes armor benefits into account.
Diffstat (limited to 'src/shared/struct')
| -rw-r--r-- | src/shared/struct/sh_armor.erl | 27 | 
1 files changed, 26 insertions, 1 deletions
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).  | 


