about summary refs log tree commit diff
path: root/src/Xanthous/Entities
diff options
context:
space:
mode:
Diffstat (limited to 'src/Xanthous/Entities')
-rw-r--r--src/Xanthous/Entities/Character.hs5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/Xanthous/Entities/Character.hs b/src/Xanthous/Entities/Character.hs
index 0bb5867ee5e1..84e653e6a09d 100644
--- a/src/Xanthous/Entities/Character.hs
+++ b/src/Xanthous/Entities/Character.hs
@@ -8,6 +8,7 @@ module Xanthous.Entities.Character
   , mkCharacter
   , pickUpItem
   , isDead
+  , damage
   ) where
 --------------------------------------------------------------------------------
 import Xanthous.Prelude
@@ -71,3 +72,7 @@ isDead = (== 0) . view characterHitpoints
 pickUpItem :: Item -> Character -> Character
 pickUpItem item = inventory %~ (item <|)
 
+damage :: Word -> Character -> Character
+damage amount = characterHitpoints %~ \case
+  n | n <= amount -> 0
+    | otherwise  -> n - amount