diff options
author | Griffin Smith <root@gws.fyi> | 2019-09-29T14·54-0400 |
---|---|---|
committer | Griffin Smith <root@gws.fyi> | 2019-09-29T14·54-0400 |
commit | 05da490185e970b2cfdf6c61f69932fa373993f6 (patch) | |
tree | 0fa9be2182e1359ce39d600089f6937bfdccd3aa /src/Xanthous/Game/Draw.hs | |
parent | ec39dc0a5bed58e0b0b48eeac98e0fd0ceaa65db (diff) |
Gormlaks attack back
When gormlaks see the character, they step towards them and attack dealing 1 damage when adjacent. Characters have hitpoints now, displayed at the bottom of the game screen, and when the game is over they die.
Diffstat (limited to 'src/Xanthous/Game/Draw.hs')
-rw-r--r-- | src/Xanthous/Game/Draw.hs | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/src/Xanthous/Game/Draw.hs b/src/Xanthous/Game/Draw.hs index b3e27f86a693..e1242f2b7a2d 100644 --- a/src/Xanthous/Game/Draw.hs +++ b/src/Xanthous/Game/Draw.hs @@ -14,11 +14,13 @@ import Xanthous.Data (Position(Position), x, y, loc) import Xanthous.Data.EntityMap (EntityMap, atPosition) import qualified Xanthous.Data.EntityMap as EntityMap import Xanthous.Entities +import Xanthous.Entities.Character import Xanthous.Game ( GameState(..) , entities , revealedPositions , characterPosition + , character , MessageHistory(..) , messageHistory , GamePromptState(..) @@ -42,8 +44,8 @@ drawPromptState (WaitingPrompt msg (Prompt _ pt ps _)) = case (pt, ps) of (SStringPrompt, StringPromptState edit) -> txt msg <+> renderEditor (txt . fold) True edit - (SDirectionPrompt, DirectionPromptState) -> - txt msg + (SDirectionPrompt, DirectionPromptState) -> txt msg + (SContinue, _) -> txt msg _ -> undefined drawEntities @@ -79,6 +81,17 @@ drawMap game -- character can't see them (game ^. entities) +drawCharacterInfo :: Character -> Widget Name +drawCharacterInfo ch = txt " " <+> charName <+> charHitpoints + where + charName | Just n <- ch ^. characterName + = txt n <+> txt " " + | otherwise + = emptyWidget + charHitpoints + = txt "Hitpoints: " + <+> txt (tshow $ ch ^. characterHitpoints) + drawGame :: GameState -> [Widget Name] drawGame game = pure @@ -86,3 +99,4 @@ drawGame game $ drawMessages (game ^. messageHistory) <=> drawPromptState (game ^. promptState) <=> border (drawMap game) + <=> drawCharacterInfo (game ^. character) |