summaryrefslogtreecommitdiff |
diff options
Diffstat (limited to 'src/battlemap/query')
-rw-r--r-- | src/battlemap/query/bm_load_state.erl | 58 |
1 files changed, 40 insertions, 18 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(). |