| summaryrefslogtreecommitdiff | 
diff options
| author | nsensfel <SpamShield0@noot-noot.org> | 2018-06-18 18:37:28 +0200 | 
|---|---|---|
| committer | nsensfel <SpamShield0@noot-noot.org> | 2018-06-18 18:37:28 +0200 | 
| commit | 5c8422c9a14ccb6b50ccbbbcea6d1f1110bdb0cd (patch) | |
| tree | d465db4ad7ff96f2498ce44f712d2645889b0b75 | |
| parent | 0f7844c09e8e8e0a8d907992ec9597e18f51a41f (diff) | |
[BROKEN] Updating Tiles system to match the server's.
| -rw-r--r-- | src/battlemap/src/Comm/AddTile.elm | 25 | ||||
| -rw-r--r-- | src/battlemap/src/Comm/Send.elm | 2 | ||||
| -rw-r--r-- | src/battlemap/src/Struct/Model.elm | 30 | ||||
| -rw-r--r-- | src/battlemap/src/Struct/ServerReply.elm | 1 | ||||
| -rw-r--r-- | src/battlemap/src/Struct/Tile.elm | 3 | ||||
| -rw-r--r-- | src/battlemap/src/Update/HandleServerReply.elm | 13 | 
6 files changed, 73 insertions, 1 deletions
| diff --git a/src/battlemap/src/Comm/AddTile.elm b/src/battlemap/src/Comm/AddTile.elm new file mode 100644 index 0000000..ff184fd --- /dev/null +++ b/src/battlemap/src/Comm/AddTile.elm @@ -0,0 +1,25 @@ +module Comm.AddTile exposing (decode) + +-- Elm ------------------------------------------------------------------------- +import Json.Decode + +-- Battlemap ------------------------------------------------------------------- +import Struct.Tile +import Struct.Model +import Struct.ServerReply + +-------------------------------------------------------------------------------- +-- TYPES ----------------------------------------------------------------------- +-------------------------------------------------------------------------------- + +-------------------------------------------------------------------------------- +-- LOCAL ----------------------------------------------------------------------- +-------------------------------------------------------------------------------- +internal_decoder : Struct.Tile.Type -> Struct.ServerReply.Type +internal_decoder wp = (Struct.ServerReply.AddTile wp) + +-------------------------------------------------------------------------------- +-- EXPORTED -------------------------------------------------------------------- +-------------------------------------------------------------------------------- +decode : (Struct.Model.Type -> (Json.Decode.Decoder Struct.ServerReply.Type)) +decode model = (Json.Decode.map (internal_decoder) (Struct.Tile.decoder)) diff --git a/src/battlemap/src/Comm/Send.elm b/src/battlemap/src/Comm/Send.elm index 1b83073..45be5d0 100644 --- a/src/battlemap/src/Comm/Send.elm +++ b/src/battlemap/src/Comm/Send.elm @@ -9,6 +9,7 @@ import Json.Encode  -- Battlemap -------------------------------------------------------------------  import Comm.AddArmor  import Comm.AddChar +import Comm.AddTile  import Comm.AddWeapon  import Comm.SetMap  import Comm.SetTimeline @@ -32,6 +33,7 @@ internal_decoder : (     )  internal_decoder model reply_type =     case reply_type of +      "add_tile" -> (Comm.AddTile.decode model)        "add_armor" -> (Comm.AddArmor.decode model)        "add_char" -> (Comm.AddChar.decode model)        "add_weapon" -> (Comm.AddWeapon.decode model) diff --git a/src/battlemap/src/Struct/Model.elm b/src/battlemap/src/Struct/Model.elm index 6cf5368..63474d2 100644 --- a/src/battlemap/src/Struct/Model.elm +++ b/src/battlemap/src/Struct/Model.elm @@ -6,8 +6,10 @@ module Struct.Model exposing        update_character,        add_weapon,        add_armor, +      add_tile,        invalidate,        reset, +      full_debug_reset,        clear_error     ) @@ -34,6 +36,7 @@ type alias Type =        characters: (Array.Array Struct.Character.Type),        weapons: (Dict.Dict Struct.Weapon.Ref Struct.Weapon.Type),        armors: (Dict.Dict Struct.Armor.Ref Struct.Armor.Type), +      tiles: (Dict.Dict Struct.Tile.Ref Struct.Tile.Type),        error: (Maybe Struct.Error.Type),        player_id: String,        ui: Struct.UI.Type, @@ -55,6 +58,7 @@ new =        characters = (Array.empty),        weapons = (Dict.empty),        armors = (Dict.empty), +      tiles = (Dict.empty),        error = Nothing,        player_id = "0",        ui = (Struct.UI.default), @@ -94,6 +98,17 @@ add_armor ar model =           )     } +add_tile : Struct.Tile.Type -> Type -> Type +add_tile tl model = +   {model | +      tiles = +         (Dict.insert +            (Struct.Tile.get_id tl) +            tl +            model.tiles +         ) +   } +  reset : Type -> Type  reset model =     {model | @@ -105,6 +120,21 @@ reset model =        char_turn = (Struct.CharacterTurn.new)     } +full_debug_reset : Type -> Type +full_debug_reset model = +   {model | +      battlemap = (Struct.Battlemap.empty), +      characters = (Array.empty), +      weapons = (Dict.empty), +      armors = (Dict.empty), +      tiles = (Dict.empty), +      error = Nothing, +      -- player_id remains +      ui = (Struct.UI.default), +      char_turn = (Struct.CharacterTurn.new), +      timeline = (Array.empty) +   } +  update_character : Int -> Struct.Character.Type -> Type -> Type  update_character ix new_val model =     {model | diff --git a/src/battlemap/src/Struct/ServerReply.elm b/src/battlemap/src/Struct/ServerReply.elm index ed9014e..64eade1 100644 --- a/src/battlemap/src/Struct/ServerReply.elm +++ b/src/battlemap/src/Struct/ServerReply.elm @@ -18,6 +18,7 @@ type Type =     | AddArmor Struct.Armor.Type     | AddWeapon Struct.Weapon.Type     | AddCharacter (Struct.Character.Type, Int, Int, Int) +   | AddTile Struct.Tile.Type     | SetMap Struct.Battlemap.Type     | TurnResults (List Struct.TurnResult.Type)     | SetTimeline (List Struct.TurnResult.Type) diff --git a/src/battlemap/src/Struct/Tile.elm b/src/battlemap/src/Struct/Tile.elm index 944c561..cf23339 100644 --- a/src/battlemap/src/Struct/Tile.elm +++ b/src/battlemap/src/Struct/Tile.elm @@ -6,7 +6,8 @@ module Struct.Tile exposing        get_location,        get_icon_id,        get_cost, -      get_variant_id +      get_variant_id, +      decoder     )  -- Battlemap ------------------------------------------------------------------- diff --git a/src/battlemap/src/Update/HandleServerReply.elm b/src/battlemap/src/Update/HandleServerReply.elm index ec388ee..8f5a066 100644 --- a/src/battlemap/src/Update/HandleServerReply.elm +++ b/src/battlemap/src/Update/HandleServerReply.elm @@ -50,6 +50,16 @@ add_armor ar current_state =        (_, (Just _)) -> current_state        (model, _) -> ((Struct.Model.add_armor ar model), Nothing) +add_tile : ( +      Struct.Tile.Type -> +      (Struct.Model.Type, (Maybe Struct.Error.Type)) -> +      (Struct.Model.Type, (Maybe Struct.Error.Type)) +   ) +add_tile tl current_state = +   case current_state of +      (_, (Just _)) -> current_state +      (model, _) -> ((Struct.Model.add_tile tl model), Nothing) +  add_weapon : (        Struct.Weapon.Type ->        (Struct.Model.Type, (Maybe Struct.Error.Type)) -> @@ -160,6 +170,9 @@ apply_command command current_state =        (Struct.ServerReply.AddArmor ar) ->           (add_armor ar current_state) +      (Struct.ServerReply.AddTile tl) -> +         (add_tile tl current_state) +        (Struct.ServerReply.AddCharacter char) ->           (add_character char current_state) | 


