summaryrefslogtreecommitdiff |
diff options
author | nsensfel <SpamShield0@noot-noot.org> | 2018-07-10 12:50:47 +0200 |
---|---|---|
committer | nsensfel <SpamShield0@noot-noot.org> | 2018-07-10 12:50:47 +0200 |
commit | cc7e5d48a82eac5d6643702e84a4ed9ac2bb15d3 (patch) | |
tree | b297412dc87b2feb8378517e95b7d804feeeb9f0 | |
parent | f716016b5a6fd774fa49640f3dec9b67280853b0 (diff) |
Uses the JS flags.
-rw-r--r-- | src/battlemap/src/Comm/CharacterTurn.elm | 4 | ||||
-rw-r--r-- | src/battlemap/src/Comm/LoadBattlemap.elm | 4 | ||||
-rw-r--r-- | src/battlemap/src/ElmModule/Init.elm | 2 | ||||
-rw-r--r-- | src/battlemap/src/Struct/Flags.elm | 18 | ||||
-rw-r--r-- | src/battlemap/src/Struct/Model.elm | 63 | ||||
-rw-r--r-- | src/battlemap/src/Util/List.elm | 6 | ||||
-rw-r--r-- | www/index.html.m4 | 2 |
7 files changed, 71 insertions, 28 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)) diff --git a/www/index.html.m4 b/www/index.html.m4 index a52d002..a0bbdde 100644 --- a/www/index.html.m4 +++ b/www/index.html.m4 @@ -18,7 +18,7 @@ <p>This website lets you play the game, even during its development phase. As a result, there is a lot missing.</p> <p> Having accounts at that stage would needlessly slow us down, so access to - <a href="/battlemap/">the game's battle system</a> is done without login in. + <a href="/battlemap/?id=0">the game's battle system</a> is done without login in. </p> <p>You can access the source code for the game this website is running, under the Apache 2.0 License:</p> <ul> |