summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/battlemap/src/Battlemap.elm7
-rw-r--r--src/battlemap/src/Battlemap/Navigator.elm3
-rw-r--r--src/battlemap/src/Send/CharacterActions.elm93
-rw-r--r--src/battlemap/src/UI.elm2
4 files changed, 81 insertions, 24 deletions
diff --git a/src/battlemap/src/Battlemap.elm b/src/battlemap/src/Battlemap.elm
index 96be086..f0e2b04 100644
--- a/src/battlemap/src/Battlemap.elm
+++ b/src/battlemap/src/Battlemap.elm
@@ -6,6 +6,7 @@ module Battlemap exposing
get_tiles,
set_navigator,
clear_navigator_path,
+ get_navigator_path,
try_getting_tile_at,
try_getting_navigator_location,
try_getting_navigator_path_to,
@@ -108,6 +109,12 @@ clear_navigator_path bmap =
Nothing -> bmap
+get_navigator_path : Type -> (List Battlemap.Direction.Type)
+get_navigator_path bmap =
+ case bmap.navigator of
+ (Just navigator) -> (Battlemap.Navigator.get_path navigator)
+ Nothing -> []
+
try_getting_navigator_location : Type -> (Maybe Battlemap.Location.Type)
try_getting_navigator_location bmap =
case bmap.navigator of
diff --git a/src/battlemap/src/Battlemap/Navigator.elm b/src/battlemap/src/Battlemap/Navigator.elm
index aa664a1..852eb2c 100644
--- a/src/battlemap/src/Battlemap/Navigator.elm
+++ b/src/battlemap/src/Battlemap/Navigator.elm
@@ -94,6 +94,9 @@ get_range_markers : (
)
get_range_markers navigator = (Dict.toList navigator.range_indicators)
+get_path : Type -> (List Battlemap.Direction.Type)
+get_path navigator = (Battlemap.Navigator.Path.get_summary navigator.path)
+
get_summary : Type -> Summary
get_summary navigator =
{
diff --git a/src/battlemap/src/Send/CharacterActions.elm b/src/battlemap/src/Send/CharacterActions.elm
index 7d2f380..e7aee41 100644
--- a/src/battlemap/src/Send/CharacterActions.elm
+++ b/src/battlemap/src/Send/CharacterActions.elm
@@ -10,25 +10,66 @@ import Json.Decode
import Constants.IO
import Event
+
+--------------------------------------------------------------------------------
+-- TYPES ------------------------------------------------------------------------
+--------------------------------------------------------------------------------
+type alias Reply =
+
--------------------------------------------------------------------------------
-- LOCAL -----------------------------------------------------------------------
--------------------------------------------------------------------------------
-encode : Model -> Json.Encode.Value
-encode model =
- (Json.Encode.encode
- 0
- (Json.Encode.object
- [
- ("user_token", Json.Encode.string model.user_token),
- ("char_id", Json.Encode.string ...),
- ("path", Jsong.Encode.string ...),
- ("target_id", Jsong.Encode.string ...)
- ]
- )
- )
+try_encoding : Model -> (Maybe String)
+try_encoding model =
+ case (Model.get_state model) of
+ (Model.ControllingCharacter char_ref) ->
+ (Just
+ (Json.Encode.encode
+ 0
+ (Json.Encode.object
+ [
+ ("user_token", Json.Encode.string model.user_token),
+ ("char_id", Json.Encode.string char_ref),
+ (
+ "path",
+ (Json.Encode.list
+ (List.map
+ (
+ (Json.Encode.string)
+ <<
+ (Battlemap.Direction.to_string)
+ )
+ (Battlemap.get_navigator_path model.battlemap)
+ )
+ )
+ ),
+ (
+ "target_id",
+ (Json.Encode.string
+ (case (UI.get_previous_action model.ui) of
+ (Just (UI.AttackedCharacter id)) -> id
+ _ -> ""
+ )
+ )
+ )
+ ]
+ )
+ )
+ )
+
+ _ ->
+ Nothing
decode : (Json.Decode.Decoder a)
decode =
+-- Reply:
+-- {
+-- TYPES: (list Instr-Type),
+-- DATA: (list Instr-Data)
+-- }
+--
+-- Instr-Type : display-message, move-char, etc...
+-- Instr-Data : {category: int, content: string}, {char_id: string, x: int, y: int}
receive : (Http.Result (Http.Error a)) -> Event
receive reply =
@@ -36,13 +77,19 @@ receive reply =
--------------------------------------------------------------------------------
-- EXPORTED --------------------------------------------------------------------
--------------------------------------------------------------------------------
-send : Model -> (Http.Request String)
-send model =
- (Http.send
- (receive)
- (Http.post
- Constants.IO.battlemap_handler_url
- (Http.jsonBody (encode model))
- (decode)
- )
- )
+try_sending : Model -> (Maybe (Http.Request String))
+try_sending model =
+ case (try_encoding model) of
+ (Just serial) ->
+ (Just
+ (Http.send
+ (receive)
+ (Http.post
+ Constants.IO.battlemap_handler_url
+ (Http.jsonBody serial)
+ (decode)
+ )
+ )
+ )
+
+ Nothing -> Nothing
diff --git a/src/battlemap/src/UI.elm b/src/battlemap/src/UI.elm
index 8ffc8d2..9f432e8 100644
--- a/src/battlemap/src/UI.elm
+++ b/src/battlemap/src/UI.elm
@@ -26,7 +26,6 @@ import Battlemap.Location
import Character
-
--------------------------------------------------------------------------------
-- TYPES -----------------------------------------------------------------------
--------------------------------------------------------------------------------
@@ -39,6 +38,7 @@ type Action =
UsedManualControls
| SelectedLocation Battlemap.Location.Ref
| SelectedCharacter Character.Ref
+ | AttackedCharacter Character.Ref
type alias Type =
{