summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/battlemap')
-rw-r--r--src/battlemap/query/bm_load_state.erl58
-rw-r--r--src/battlemap/reply/bm_add_char.erl3
2 files changed, 42 insertions, 19 deletions
diff --git a/src/battlemap/query/bm_load_state.erl b/src/battlemap/query/bm_load_state.erl
index 4af2385..9234dff 100644
--- a/src/battlemap/query/bm_load_state.erl
+++ b/src/battlemap/query/bm_load_state.erl
@@ -64,27 +64,49 @@ fetch_data (Input) ->
generate_reply (QueryState, Input) ->
PlayerID = Input#input.player_id,
Battle = QueryState#query_state.battle,
+ SetTimeline =
+ bm_set_timeline:generate
+ (
+ bm_battle:get_encoded_last_turns_effects(Battle)
+ ),
- jiffy:encode
- (
- [
- bm_set_timeline:generate
- (
- bm_battle:get_encoded_last_turns_effects(Battle)
- ),
- bm_set_map:generate(bm_battle:get_battlemap(Battle))
- |
- array:sparse_to_list
+ SetMap = bm_set_map:generate(bm_battle:get_battlemap(Battle)),
+
+ AddCharList =
+ array:sparse_to_list
+ (
+ array:map
(
- array:map
- (
- fun (IX, Character) ->
- bm_add_char:generate(IX, Character, PlayerID)
- end,
- bm_battle:get_characters(Battle)
- )
+ fun (IX, Character) ->
+ bm_add_char:generate(IX, Character, PlayerID)
+ end,
+ bm_battle:get_characters(Battle)
)
- ]
+ ),
+
+ AddWeaponList =
+ lists:map
+ (
+ fun (WeaponID) ->
+ bm_add_weapon:generate(sh_weapon:from_id(WeaponID))
+ end,
+ bm_battle:get_used_weapon_ids(Battle)
+ ),
+
+ AddArmorList =
+ lists:map
+ (
+ fun (ArmorID) ->
+ bm_add_armor:generate(sh_armor:from_id(ArmorID))
+ end,
+ bm_battle:get_used_armor_ids(Battle)
+ ),
+
+ jiffy:encode
+ (
+ [SetTimeline, SetMap | AddWeaponList]
+ ++ AddArmorList
+ ++ AddCharList
).
-spec handle (binary()) -> binary().
diff --git a/src/battlemap/reply/bm_add_char.erl b/src/battlemap/reply/bm_add_char.erl
index d6f5965..227c93a 100644
--- a/src/battlemap/reply/bm_add_char.erl
+++ b/src/battlemap/reply/bm_add_char.erl
@@ -73,6 +73,7 @@ generate (IX, Character, PlayerID) ->
},
{<<"att">>, attributes_as_json(Attributes)},
{<<"awp">>, ActiveWeapon},
- {<<"swp">>, SecondaryWeapon}
+ {<<"swp">>, SecondaryWeapon},
+ {<<"ar">>, bm_character:get_armor_id(Character)}
]
}.