summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/battlemap/src/Comm/CharacterTurn.elm4
-rw-r--r--src/battlemap/src/Comm/LoadBattlemap.elm4
-rw-r--r--src/battlemap/src/ElmModule/Init.elm2
-rw-r--r--src/battlemap/src/Struct/Flags.elm18
-rw-r--r--src/battlemap/src/Struct/Model.elm63
-rw-r--r--src/battlemap/src/Util/List.elm6
6 files changed, 70 insertions, 27 deletions
diff --git a/src/battlemap/src/Comm/CharacterTurn.elm b/src/battlemap/src/Comm/CharacterTurn.elm
index 9287c45..c0fc96f 100644
--- a/src/battlemap/src/Comm/CharacterTurn.elm
+++ b/src/battlemap/src/Comm/CharacterTurn.elm
@@ -99,9 +99,9 @@ try_encoding model =
(Just
(Json.Encode.object
[
- ("stk", (Json.Encode.string "0")),
+ ("stk", (Json.Encode.string model.session_token)),
("pid", (Json.Encode.string model.player_id)),
- ("bid", (Json.Encode.string "0")),
+ ("bid", (Json.Encode.string model.battlemap_id)),
(
"cix",
(Json.Encode.int (Struct.Character.get_index char))
diff --git a/src/battlemap/src/Comm/LoadBattlemap.elm b/src/battlemap/src/Comm/LoadBattlemap.elm
index 97c2db2..cd29acf 100644
--- a/src/battlemap/src/Comm/LoadBattlemap.elm
+++ b/src/battlemap/src/Comm/LoadBattlemap.elm
@@ -23,9 +23,9 @@ try_encoding model =
(Just
(Json.Encode.object
[
- ("stk", (Json.Encode.string "0")),
+ ("stk", (Json.Encode.string model.session_token)),
("pid", (Json.Encode.string model.player_id)),
- ("bmi", (Json.Encode.string "0"))
+ ("bmi", (Json.Encode.string model.battlemap_id))
]
)
)
diff --git a/src/battlemap/src/ElmModule/Init.elm b/src/battlemap/src/ElmModule/Init.elm
index 3e6cc52..83c2c58 100644
--- a/src/battlemap/src/ElmModule/Init.elm
+++ b/src/battlemap/src/ElmModule/Init.elm
@@ -18,7 +18,7 @@ import Struct.Model
--------------------------------------------------------------------------------
init : Struct.Flags.Type -> (Struct.Model.Type, (Cmd Struct.Event.Type))
init flags =
- let model = (Struct.Model.new) in
+ let model = (Struct.Model.new flags) in
(
model,
(case (Comm.LoadBattlemap.try model) of
diff --git a/src/battlemap/src/Struct/Flags.elm b/src/battlemap/src/Struct/Flags.elm
index d25f432..c0316f0 100644
--- a/src/battlemap/src/Struct/Flags.elm
+++ b/src/battlemap/src/Struct/Flags.elm
@@ -1,11 +1,14 @@
module Struct.Flags exposing
(
- Type
+ Type,
+ maybe_get_param
)
-- Elm -------------------------------------------------------------------------
+import List
-- Battlemap -------------------------------------------------------------------
+import Util.List
--------------------------------------------------------------------------------
-- TYPES -----------------------------------------------------------------------
@@ -24,3 +27,16 @@ type alias Type =
--------------------------------------------------------------------------------
-- EXPORTED --------------------------------------------------------------------
--------------------------------------------------------------------------------
+maybe_get_param : String -> Type -> (Maybe String)
+maybe_get_param param flags =
+ case
+ (Util.List.get_first
+ (\e -> ((List.head e) == (Just param)))
+ flags.url_params
+ )
+ of
+ Nothing -> Nothing
+ (Just a) ->
+ case (List.tail a) of
+ Nothing -> Nothing
+ (Just b) -> (List.head b)
diff --git a/src/battlemap/src/Struct/Model.elm b/src/battlemap/src/Struct/Model.elm
index 7ed6cb3..0095364 100644
--- a/src/battlemap/src/Struct/Model.elm
+++ b/src/battlemap/src/Struct/Model.elm
@@ -28,6 +28,7 @@ import Struct.Battlemap
import Struct.Character
import Struct.CharacterTurn
import Struct.Error
+import Struct.Flags
import Struct.HelpRequest
import Struct.Tile
import Struct.TurnResult
@@ -51,6 +52,8 @@ type alias Type =
tiles: (Dict.Dict Struct.Tile.Ref Struct.Tile.Type),
error: (Maybe Struct.Error.Type),
player_id: String,
+ battlemap_id: String,
+ session_token: String,
player_ix: Int,
ui: Struct.UI.Type,
char_turn: Struct.CharacterTurn.Type,
@@ -64,23 +67,45 @@ type alias Type =
--------------------------------------------------------------------------------
-- EXPORTED --------------------------------------------------------------------
--------------------------------------------------------------------------------
-new : Type
-new =
- {
- help_request = Struct.HelpRequest.None,
- animator = Nothing,
- battlemap = (Struct.Battlemap.empty),
- characters = (Array.empty),
- weapons = (Dict.empty),
- armors = (Dict.empty),
- tiles = (Dict.empty),
- error = Nothing,
- player_id = "0",
- player_ix = 0,
- ui = (Struct.UI.default),
- char_turn = (Struct.CharacterTurn.new),
- timeline = (Array.empty)
- }
+new : Struct.Flags.Type -> Type
+new flags =
+ let
+ maybe_battlemap_id = (Struct.Flags.maybe_get_param "id" flags)
+ model =
+ {
+ help_request = Struct.HelpRequest.None,
+ animator = Nothing,
+ battlemap = (Struct.Battlemap.empty),
+ characters = (Array.empty),
+ weapons = (Dict.empty),
+ armors = (Dict.empty),
+ tiles = (Dict.empty),
+ error = Nothing,
+ battlemap_id = "",
+ player_id =
+ (
+ if (flags.user_id == "")
+ then "0"
+ else flags.user_id
+ ),
+ session_token = flags.token,
+ player_ix = 0,
+ ui = (Struct.UI.default),
+ char_turn = (Struct.CharacterTurn.new),
+ timeline = (Array.empty)
+ }
+ in
+ case maybe_battlemap_id of
+ Nothing ->
+ (invalidate
+ (Struct.Error.new
+ Struct.Error.Failure
+ "Could not find battlemap id."
+ )
+ model
+ )
+
+ (Just id) -> {model | battlemap_id = id}
add_character : Struct.Character.Type -> Type -> Type
add_character char model =
@@ -148,7 +173,6 @@ full_debug_reset model =
armors = (Dict.empty),
tiles = (Dict.empty),
error = Nothing,
- -- player_id remains
ui = (Struct.UI.default),
char_turn = (Struct.CharacterTurn.new),
timeline = (Array.empty)
@@ -223,8 +247,7 @@ update_character_fun ix fun model =
invalidate : Struct.Error.Type -> Type -> Type
invalidate err model =
{model |
- error = (Just err),
- ui = (Struct.UI.set_displayed_tab Struct.UI.StatusTab model.ui)
+ error = (Just err)
}
clear_error : Type -> Type
diff --git a/src/battlemap/src/Util/List.elm b/src/battlemap/src/Util/List.elm
index c4db397..2bc5217 100644
--- a/src/battlemap/src/Util/List.elm
+++ b/src/battlemap/src/Util/List.elm
@@ -1,4 +1,4 @@
-module Util.List exposing (pop)
+module Util.List exposing (..)
import List
@@ -10,3 +10,7 @@ pop l =
(Nothing, _) -> Nothing
(_ , Nothing) -> Nothing
((Just head), (Just tail)) -> (Just (head, tail))
+
+get_first : (a -> Bool) -> (List a) -> (Maybe a)
+get_first fun list =
+ (List.head (List.filter fun list))