summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/battle/src/Update/Puppeteer/DisplayCharacterNavigator.elm')
-rw-r--r--src/battle/src/Update/Puppeteer/DisplayCharacterNavigator.elm72
1 files changed, 72 insertions, 0 deletions
diff --git a/src/battle/src/Update/Puppeteer/DisplayCharacterNavigator.elm b/src/battle/src/Update/Puppeteer/DisplayCharacterNavigator.elm
new file mode 100644
index 0000000..8a253a9
--- /dev/null
+++ b/src/battle/src/Update/Puppeteer/DisplayCharacterNavigator.elm
@@ -0,0 +1,72 @@
+module Update.Puppeteer.DisplayCharacterNavigator exposing
+ (
+ forward,
+ backward
+ )
+
+-- Elm -------------------------------------------------------------------------
+import Task
+
+-- Local Module ----------------------------------------------------------------
+import Struct.Battle
+import Struct.Character
+import Struct.Error
+import Struct.Event
+import Struct.Model
+import Struct.UI
+
+import Util.Navigator
+
+--------------------------------------------------------------------------------
+-- LOCAL -----------------------------------------------------------------------
+--------------------------------------------------------------------------------
+display_character_navigator : (
+ Struct.Character.Type ->
+ Struct.Model.Type ->
+ (Struct.Model.Type, (List (Cmd Struct.Event.Type)))
+ )
+display_character_navigator char model =
+ (
+ {model |
+ ui =
+ (Struct.UI.set_displayed_navigator
+ (Util.Navigator.get_character_attack_navigator
+ model.battle
+ char
+ )
+ model.ui
+ )
+ },
+ []
+ )
+
+--------------------------------------------------------------------------------
+-- EXPORTED --------------------------------------------------------------------
+--------------------------------------------------------------------------------
+forward : (
+ Int ->
+ Struct.Model.Type ->
+ (Struct.Model.Type, (List (Cmd Struct.Event.Type)))
+ )
+forward char_ix model =
+ case (Struct.Battle.get_character char_ix model.battle) of
+ (Just char) -> (display_character_navigator char model)
+ Nothing ->
+ (
+ (Struct.Model.invalidate
+ (Struct.Error.new
+ Struct.Error.Programming
+ "Puppeteer tried displaying navigator of unknown character."
+ )
+ model
+ ),
+ []
+ )
+
+backward : (
+ Int ->
+ Struct.Model.Type ->
+ (Struct.Model.Type, (List (Cmd Struct.Event.Type)))
+ )
+backward char_ix model =
+ ({model | ui = (Struct.UI.clear_displayed_navigator model.ui)}, [])