summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/character_instance.erl')
-rw-r--r--src/character_instance.erl17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/character_instance.erl b/src/character_instance.erl
index a38be5d..e1cf7fe 100644
--- a/src/character_instance.erl
+++ b/src/character_instance.erl
@@ -3,6 +3,8 @@
(
[
set_location/3,
+ mod_health/3,
+ is_dead/1, % is_alive is reserved.
get_location/1,
get_owner/1
]
@@ -17,6 +19,21 @@ set_location (CharInst, X, Y) ->
y = Y
}.
+mod_health (CharInst, MaxHealth, HealthMod) ->
+ NewHealth = (CharInst#character_instance.health + HealthMod),
+ if
+ (NewHealth < 0) ->
+ CharInst#character_instance{ health = 0 };
+
+ (NewHealth > MaxHealth) ->
+ CharInst#character_instance{ health = MaxHealth };
+
+ true ->
+ CharInst#character_instance{ health = NewHealth }
+ end.
+
+is_dead (CharInst) -> (CharInst#character_instance.health == 0).
+
get_location (CharInst) ->
{CharInst#character_instance.x, CharInst#character_instance.y}.