| summaryrefslogtreecommitdiff | 
diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/battle/src/Comm/AddChar.elm | 11 | ||||
| -rw-r--r-- | src/battle/src/Comm/Send.elm | 43 | ||||
| -rw-r--r-- | src/battle/src/Struct/Character.elm | 8 | ||||
| -rw-r--r-- | src/battle/src/Update/HandleServerReply.elm | 2 | 
4 files changed, 37 insertions, 27 deletions
| diff --git a/src/battle/src/Comm/AddChar.elm b/src/battle/src/Comm/AddChar.elm index 9137d17..bf9e45b 100644 --- a/src/battle/src/Comm/AddChar.elm +++ b/src/battle/src/Comm/AddChar.elm @@ -21,4 +21,13 @@ internal_decoder ref = (Struct.ServerReply.AddCharacter ref)  -- EXPORTED --------------------------------------------------------------------  --------------------------------------------------------------------------------  decode : (Json.Decode.Decoder Struct.ServerReply.Type) -decode = (Json.Decode.map (internal_decoder) (Struct.Character.decoder)) +decode = +   (Json.Decode.andThen +      (\ix -> +         (Json.Decode.map +            (internal_decoder) +            (Json.Decode.field "cha" (Struct.Character.decoder ix)) +         ) +      ) +      (Json.Decode.field "ix" (Json.Decode.int)) +   ) diff --git a/src/battle/src/Comm/Send.elm b/src/battle/src/Comm/Send.elm index f67a151..d7d05fc 100644 --- a/src/battle/src/Comm/Send.elm +++ b/src/battle/src/Comm/Send.elm @@ -7,15 +7,10 @@ import Json.Decode  import Json.Encode  -- Battle Characters ----------------------------------------------------------- -import BattleCharacters.Comm.AddArmor -import BattleCharacters.Comm.AddGlyph -import BattleCharacters.Comm.AddGlyphBoard -import BattleCharacters.Comm.AddPortrait -import BattleCharacters.Comm.AddSkill -import BattleCharacters.Comm.AddWeapon +import BattleCharacters.Comm.AddDataSetItem  -- Battle Map ------------------------------------------------------------------ -import BattleMap.Comm.AddTile +import BattleMap.Comm.AddDataSetItem  import BattleMap.Comm.SetMap  -- Local Module ---------------------------------------------------------------- @@ -38,16 +33,8 @@ import Struct.Model  internal_decoder : String -> (Json.Decode.Decoder Struct.ServerReply.Type)  internal_decoder reply_type =     case reply_type of -      "add_tile" -> (BattleMap.Comm.AddTile.decode)        "set_map" -> (BattleMap.Comm.SetMap.decode) -      "add_armor" -> (BattleCharacters.Comm.AddArmor.decode) -      "add_glyph" -> (BattleCharacters.Comm.AddGlyph.decode) -      "add_glyph_board" -> (BattleCharacters.Comm.AddGlyphBoard.decode) -      "add_portrait" -> (BattleCharacters.Comm.AddPortrait.decode) -      "add_skill" -> (BattleCharacters.Comm.AddSkill.decode) -      "add_weapon" -> (BattleCharacters.Comm.AddWeapon.decode) -        "add_char" -> (Comm.AddChar.decode)        "add_player" -> (Comm.AddPlayer.decode)        "set_timeline" -> (Comm.SetTimeline.decode) @@ -57,13 +44,27 @@ internal_decoder reply_type =        "okay" -> (Json.Decode.succeed Struct.ServerReply.Okay)        other -> -         (Json.Decode.fail -            ( -               "Unknown server command \"" -               ++ other -               ++ "\"" -            ) +         if +         (String.startsWith +            (BattleCharacters.Comm.AddDataSetItem.prefix) +            reply_type           ) +         then (BattleCharacters.Comm.AddDataSetItem.get_decoder_for reply_type) +         else +            if +            (String.startsWith +               (BattleMap.Comm.AddDataSetItem.prefix) +               reply_type +            ) +            then (BattleMap.Comm.AddDataSetItem.get_decoder_for reply_type) +            else +               (Json.Decode.fail +                  ( +                     "Unknown server command \"" +                     ++ other +                     ++ "\"" +                  ) +               )  decode : (Json.Decode.Decoder Struct.ServerReply.Type)  decode = diff --git a/src/battle/src/Struct/Character.elm b/src/battle/src/Struct/Character.elm index 254f6a2..37fe798 100644 --- a/src/battle/src/Struct/Character.elm +++ b/src/battle/src/Struct/Character.elm @@ -282,13 +282,13 @@ reset_extra_display_effects viewer_ix char =           )     } -decoder : (Json.Decode.Decoder Unresolved) -decoder = +decoder : Int -> (Json.Decode.Decoder Unresolved) +decoder ix =     (Json.Decode.succeed        Unresolved -      |> (Json.Decode.Pipeline.required "ix" Json.Decode.int) +      |> (Json.Decode.Pipeline.hardcoded ix)        |> (Json.Decode.Pipeline.required "lc" BattleMap.Struct.Location.decoder) -      |> (Json.Decode.Pipeline.required "hea" Json.Decode.int) +      |> (Json.Decode.Pipeline.required "he" Json.Decode.int)        |> (Json.Decode.Pipeline.required "sp" Json.Decode.int)        |>           (Json.Decode.Pipeline.required diff --git a/src/battle/src/Update/HandleServerReply.elm b/src/battle/src/Update/HandleServerReply.elm index 4372257..3bea958 100644 --- a/src/battle/src/Update/HandleServerReply.elm +++ b/src/battle/src/Update/HandleServerReply.elm @@ -168,7 +168,7 @@ set_map map current_state =                 (Struct.Battle.set_map                    (BattleMap.Struct.Map.solve_tiles                       model.map_data_set -                     (Struct.Battle.get_map model.battle) +                     map                    )                    model.battle                 ) | 


