about summary refs log tree commit diff
path: root/src/Xanthous/Game/Draw.hs
diff options
context:
space:
mode:
authorGriffin Smith <root@gws.fyi>2019-08-25T17·28-0400
committerGriffin Smith <root@gws.fyi>2019-08-25T17·28-0400
commitd3f3890dc5408581eb6181125c871d1cf2c0e18f (patch)
treeed6d9e396e6c732b1bce27ea6962ce408b59f218 /src/Xanthous/Game/Draw.hs
parentfb0d1b3e66251aa56a3df1d05fd4b82b33380a31 (diff)
An @-sign in a box, in haskell
Initial commit of a Haskell version of Xanthous, written using Brick and
built with Nix.

This is so much nicer and so much easier
Diffstat (limited to 'src/Xanthous/Game/Draw.hs')
-rw-r--r--src/Xanthous/Game/Draw.hs28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/Xanthous/Game/Draw.hs b/src/Xanthous/Game/Draw.hs
new file mode 100644
index 0000000000..2d793ba27b
--- /dev/null
+++ b/src/Xanthous/Game/Draw.hs
@@ -0,0 +1,28 @@
+module Xanthous.Game.Draw
+  ( drawGame
+  ) where
+
+import Xanthous.Prelude
+import Brick
+import Brick.Widgets.Border
+import Brick.Widgets.Border.Style
+
+import Xanthous.Game (GameState(..))
+import Xanthous.Resource (Name(..))
+
+drawMessages :: GameState -> Widget Name
+drawMessages _ = str "Welcome to Xanthous! It's dangerous out there, why not stay inside?"
+
+drawMap :: GameState -> Widget Name
+drawMap _game
+  = viewport MapViewport Both
+  $ vBox mapRows
+  where
+    -- TODO
+    firstRow = [str "@"] <> replicate 79 (str " ")
+    mapRows = firstRow <> (replicate 20 . hBox . replicate 80 $ str " ")
+
+drawGame :: GameState -> [Widget Name]
+drawGame game = pure . withBorderStyle unicode
+  $   drawMessages game
+  <=> border (drawMap game)