summaryrefslogtreecommitdiff |
diff options
Diffstat (limited to 'src/query')
-rw-r--r-- | src/query/character_turn.erl | 30 | ||||
-rw-r--r-- | src/query/load_state.erl | 61 |
2 files changed, 49 insertions, 42 deletions
diff --git a/src/query/character_turn.erl b/src/query/character_turn.erl index 7ea12ad..c71791c 100644 --- a/src/query/character_turn.erl +++ b/src/query/character_turn.erl @@ -53,26 +53,31 @@ parse_input (Req) -> { player_id = maps:get(<<"pid">>, JSONReqMap), session_token = maps:get(<<"stk">>, JSONReqMap), - battlemap_instance_id = maps:get(<<"bmp">>, JSONReqMap), + battlemap_instance_id = maps:get(<<"bmi">>, JSONReqMap), character_instance_ix = CharacterInstanceIX, path = maps:get(<<"p">>, JSONReqMap), target_ix = TargetIX }. fetch_data (Input) -> + PlayerID = Input#input.player_id, + BattlemapInstanceID = Input#input.battlemap_instance_id, + CharacterInstanceIX = Input#input.character_instance_ix, + BattlemapInstance = timed_cache:fetch ( battlemap_instance_db, - Input#input.player_id, - Input#input.battlemap_instance_id + PlayerID, + BattlemapInstanceID ), CharacterInstance = array:get ( - Input#input.character_instance_ix, + CharacterInstanceIX, battlemap_instance:get_character_instances(BattlemapInstance) ), + #query_state { battlemap_instance = BattlemapInstance, @@ -241,7 +246,7 @@ activate_relevant_character_instances (IXs, CharacterInstances, Owner, IX) -> ) end. -start_next_players_turn (QueryState, Input) -> +start_next_players_turn (QueryState) -> BattlemapInstance = QueryState#query_state.battlemap_instance, PlayerIDs = battlemap_instance:get_player_ids(BattlemapInstance), PlayerTurn = battlemap_instance:get_player_turn(BattlemapInstance), @@ -281,7 +286,7 @@ start_next_players_turn (QueryState, Input) -> ), {ActivatedCharacterInstanceIXs, UpdatedBattlemapInstance}. -finalize_character_turn (QueryState, Input) -> +finalize_character_turn (QueryState) -> BattlemapInstance = QueryState#query_state.battlemap_instance, CharacterInstances = battlemap_instance:get_character_instances(BattlemapInstance), @@ -305,7 +310,7 @@ finalize_character_turn (QueryState, Input) -> }; false -> {UpdatedCharacterInstanceIXs, UpdatedBattlemapInstance} = - start_next_players_turn(QueryState, Input), + start_next_players_turn(QueryState), #query_result { is_new_turn = true, @@ -341,14 +346,14 @@ play (QueryState, [attack|Next], Input) -> Input ). -send_to_database (QueryResult, TurnType, Input) -> +send_to_database (_QueryResult, _TurnType, _Input) -> unimplemented. -update_cache (QueryResult, TurnType, Input) -> +update_cache (_QueryResult, _TurnType, _Input) -> unimplemented. -generate_reply (QueryResult, TurnType, Input) -> - jiffy:encode([[<<"ok">>]]). +generate_reply (_QueryResult, _TurnType, _Input) -> + unimplemented. handle (Req) -> Input = parse_input(Req), @@ -364,8 +369,7 @@ handle (Req) -> ( play(QueryState, TurnType, Input), Input - ), - Input + ) ), send_to_database(QueryResult, TurnType, Input), update_cache(QueryResult, TurnType, Input), diff --git a/src/query/load_state.erl b/src/query/load_state.erl index 4f0b484..d17c78d 100644 --- a/src/query/load_state.erl +++ b/src/query/load_state.erl @@ -32,9 +32,9 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% parse_input (Req) -> JSONReqMap = jiffy:decode(Req, [return_maps]), - PlayerID = maps:get(<<"player_id">>, JSONReqMap), - SessionToken = maps:get(<<"session_token">>, JSONReqMap), - BattlemapInstanceID = maps:get(<<"battlemap_id">>, JSONReqMap), + PlayerID = maps:get(<<"pid">>, JSONReqMap), + SessionToken = maps:get(<<"stk">>, JSONReqMap), + BattlemapInstanceID = maps:get(<<"bmi">>, JSONReqMap), #input { @@ -43,32 +43,39 @@ parse_input (Req) -> battlemap_instance_id = BattlemapInstanceID }. -generate_reply (Battlemap, BattlemapInstance, Characters, PlayerID) -> +fetch_data (Input) -> + PlayerID = Input#input.player_id, + BattlemapInstanceID = Input#input.battlemap_instance_id, + + BattlemapInstance = + timed_cache:fetch + ( + battlemap_instance_db, + PlayerID, + BattlemapInstanceID + ), + + #query_state + { + battlemap_instance = BattlemapInstance + }. + +generate_reply (QueryState) -> + BattlemapInstance = QueryState#query_state.battlemap_instance, jiffy:encode ( [ - set_map:generate(Battlemap) + set_map:generate(battlemap_instange:get_battlemap(BattlemapInstance)) | - lists:map + array:to_list ( - fun ({Char, CharInstance}) -> - add_char:generate - ( - Char, - CharInstance, - ( - battlemap_instance:can_play_char_instance - ( - BattlemapInstance, - PlayerID, - character:get_id(Char) - ) - and - (not character_instance:is_dead(CharInstance)) - ) - ) - end, - Characters + array:map + ( + fun (CharacterInstance) -> + add_char:generate(CharacterInstance) + end, + battlemap_instance:get_character_instances(BattlemapInstance) + ) ) ] ). @@ -79,11 +86,7 @@ handle (Req) -> security:lock_queries(Input#input.player_id), QueryState = fetch_data(Input), security:unlock_queries(Input#input.player_id), - generate_reply - ( - QueryState, - Input - ). + generate_reply(QueryState). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |