From 68cfa3b73e6f7def9641b08c4acf2f0f96685843 Mon Sep 17 00:00:00 2001 From: nsensfel Date: Mon, 12 Mar 2018 17:55:25 +0100 Subject: Stores and sends entire turn timelines. --- src/query/character_turn.erl | 26 +++++++++++--------------- src/query/load_state.erl | 3 +-- 2 files changed, 12 insertions(+), 17 deletions(-) (limited to 'src/query') diff --git a/src/query/character_turn.erl b/src/query/character_turn.erl index e796493..e2b6165 100644 --- a/src/query/character_turn.erl +++ b/src/query/character_turn.erl @@ -145,27 +145,18 @@ update_cache (Battle, Input) -> Battle ). --spec generate_reply - ( - list(turn_result:struct()) - ) - -> binary(). -generate_reply (ClientUpdate) -> +-spec generate_reply ( list(any())) -> binary(). +generate_reply (EncodedClientUpdate) -> jiffy:encode ( [ - { - [ - {<<"msg">>, <<"turn_results">>}, - {<<"cnt">>, lists:map(fun turn_result:encode/1, ClientUpdate)} - ] - } + turn_results:generate(EncodedClientUpdate) ] ). handle_actions (RData, Input) -> Battle = RData#relevant_data.battle, - CharacterInstance= RData#relevant_data.played_character_instance, + CharacterInstance = RData#relevant_data.played_character_instance, CharacterInstanceIX = Input#input.character_instance_ix, Actions = Input#input.actions, @@ -236,10 +227,15 @@ handle (Req) -> {ActionsDiffUpdate, ClientUpdate, UpdatedRData} = handle_actions(RData, Input), + EncodedClientUpdate = lists:map(fun turn_result:encode/1, ClientUpdate), + UpdatedBattle = finalize_and_fuse_relevant_data(UpdatedRData, Input), + UpdatedBattle2 = + battle_turn:store_timeline(EncodedClientUpdate, UpdatedBattle), + {TurnDiffUpdate, FinalizedBattle} = - battle_turn:handle_post_play(UpdatedBattle), + battle_turn:handle_post_play(UpdatedBattle2), DiffUpdate = (TurnDiffUpdate ++ ActionsDiffUpdate), @@ -251,7 +247,7 @@ handle (Req) -> security:unlock_queries(PlayerID), - generate_reply(ClientUpdate). + generate_reply(EncodedClientUpdate). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/src/query/load_state.erl b/src/query/load_state.erl index cc8f28f..d92c091 100644 --- a/src/query/load_state.erl +++ b/src/query/load_state.erl @@ -74,6 +74,7 @@ generate_reply (QueryState, Input) -> jiffy:encode ( [ + turn_results:generate(battle:get_encoded_last_turns_effects(Battle)), set_map:generate(battle:get_battlemap(Battle)) | array:sparse_to_list @@ -87,8 +88,6 @@ generate_reply (QueryState, Input) -> ) ) ] - ++ - battle:get_encoded_last_turns_effects(Battle) ). -spec handle (binary()) -> binary(). -- cgit v1.2.3-70-g09d2