summaryrefslogtreecommitdiff |
diff options
author | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2020-04-07 04:18:47 +0200 |
---|---|---|
committer | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2020-04-07 04:18:47 +0200 |
commit | 10a0fb62557c0a39056aa546ae338a489d19e280 (patch) | |
tree | aa3a0feab9a6f56084a4ad14c29a25e8e73e4ef4 | |
parent | dbae105aedf8ae8f58be235f31bb3c5e00a6e248 (diff) |
...
-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 ) |