summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2017-09-27 10:31:16 +0200
committerNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2017-09-27 10:31:16 +0200
commit2c9b2af9ac011a871c5c02d3e2258fca73a98880 (patch)
tree653db3959f444f1065f05658650c6ec81863d627 /elm/battlemap/src/View
parent33e57128d48a012533c42635f52037fcdedd4c56 (diff)
Splits client and server into two repositories.
Diffstat (limited to 'elm/battlemap/src/View')
-rw-r--r--elm/battlemap/src/View/Controls.elm36
-rw-r--r--elm/battlemap/src/View/Status.elm42
2 files changed, 78 insertions, 0 deletions
diff --git a/elm/battlemap/src/View/Controls.elm b/elm/battlemap/src/View/Controls.elm
new file mode 100644
index 0000000..be698bf
--- /dev/null
+++ b/elm/battlemap/src/View/Controls.elm
@@ -0,0 +1,36 @@
+module View.Controls exposing (view)
+
+import Html
+import Html.Events
+
+import Battlemap.Direction
+
+import Event
+
+direction_button : Battlemap.Direction.Type -> String -> (Html.Html Event.Type)
+direction_button dir label =
+ (Html.button
+ [
+ (Html.Events.onClick
+ (Event.DirectionRequest dir)
+ )
+ ]
+ [ (Html.text label) ]
+ )
+
+end_turn_button : (Html.Html Event.Type)
+end_turn_button =
+ (Html.button
+ [ (Html.Events.onClick Event.EndTurn) ]
+ [ (Html.text "End Turn") ]
+ )
+
+view : (List (Html.Html Event.Type))
+view =
+ [
+ (direction_button Battlemap.Direction.Left "Left"),
+ (direction_button Battlemap.Direction.Down "Down"),
+ (direction_button Battlemap.Direction.Up "Up"),
+ (direction_button Battlemap.Direction.Right "Right"),
+ (end_turn_button)
+ ]
diff --git a/elm/battlemap/src/View/Status.elm b/elm/battlemap/src/View/Status.elm
new file mode 100644
index 0000000..a7beb28
--- /dev/null
+++ b/elm/battlemap/src/View/Status.elm
@@ -0,0 +1,42 @@
+module View.Status exposing (view)
+
+import Dict
+
+import Html
+
+import Error
+import Event
+import Model
+
+moving_character_text : Model.Type -> String
+moving_character_text model =
+ case model.selection of
+ Nothing -> "Error: no model.selection."
+ (Just selection) ->
+ case (Dict.get selection.character model.characters) of
+ Nothing -> "Error: Unknown character selected."
+ (Just char) ->
+ (
+ "Controlling "
+ ++ char.name
+ ++ ": "
+ ++ (toString selection.navigator.remaining_points)
+ ++ "/"
+ ++ (toString char.movement_points)
+ ++ " movement points remaining."
+ )
+
+view : Model.Type -> (Html.Html Event.Type)
+view model =
+ (Html.text
+ (case model.state of
+ Model.Default -> "Click on a character to control it."
+ Model.MovingCharacterWithButtons -> (moving_character_text model)
+ Model.MovingCharacterWithClick -> (moving_character_text model)
+ Model.FocusingTile -> "Error: Unimplemented."
+ (Model.Error Error.Programming) ->
+ "Error of programming, please report."
+ (Model.Error Error.IllegalAction) ->
+ "This cannot be done while in this state."
+ )
+ )