From fd4d031ab5b31763d376c663cc049f62ee389243 Mon Sep 17 00:00:00 2001 From: nsensfel Date: Mon, 26 Feb 2018 13:52:29 +0100 Subject: Got it to run, at last. --- src/struct/weapon.erl | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) (limited to 'src/struct/weapon.erl') diff --git a/src/struct/weapon.erl b/src/struct/weapon.erl index add445a..ca74ada 100644 --- a/src/struct/weapon.erl +++ b/src/struct/weapon.erl @@ -23,7 +23,8 @@ -export ( [ - get_id/1 + get_id/1, + random_id/0 ] ). @@ -32,7 +33,8 @@ [ from_id/1, get_ranges/1, - get_damages/1 + get_damages/1, + apply_to_attributes/2 ] ). @@ -285,3 +287,24 @@ from_id (24) -> damage_type = pierce, damage_mod = heavy }. + +random_id () -> + roll:between(0, 24). + +apply_to_attributes (Attributes, Weapon) -> + Dexterity = attributes:get_dexterity(Attributes), + Speed = attributes:get_dexterity(Attributes), + RangeModifier = Weapon#weapon.range_mod, + DamageModifier = Weapon#weapon.damage_mod, + WithRangeModifier = + case RangeModifier of + long -> + attributes:set_dexterity(max(0, (Dexterity - 20)), Attributes); + _ -> Attributes + end, + case DamageModifier of + heavy -> + attributes:set_speed(max(0, (Speed - 20)), WithRangeModifier); + _ -> WithRangeModifier + end. + -- cgit v1.2.3-70-g09d2