| summaryrefslogtreecommitdiff | 
diff options
| -rw-r--r-- | src/handler.erl | 2 | ||||
| -rw-r--r-- | src/io/security.erl | 14 | ||||
| -rw-r--r-- | src/query/character_turn.erl | 30 | ||||
| -rw-r--r-- | src/query/load_state.erl | 61 | ||||
| -rw-r--r-- | src/reply/add_char.erl | 6 | ||||
| -rw-r--r-- | src/shim/database_shim.erl (renamed from src/io/database_shim.erl) | 0 | 
6 files changed, 64 insertions, 49 deletions
| diff --git a/src/handler.erl b/src/handler.erl index ed14801..f1cc1a0 100644 --- a/src/handler.erl +++ b/src/handler.erl @@ -19,7 +19,5 @@  start (_YawsParams) ->     {ok, Pid} = timed_caches_manager:start(),     database_shim:generate_db(Pid), -   timed_caches_manager:new_cache(Pid, battlemap_db, none),     timed_caches_manager:new_cache(Pid, battlemap_instance_db, none), -   timed_caches_manager:new_cache(Pid, character_db, none),     ok. diff --git a/src/io/security.erl b/src/io/security.erl index fb7be8d..34b6df2 100644 --- a/src/io/security.erl +++ b/src/io/security.erl @@ -7,7 +7,14 @@  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %% EXPORTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --export([assert_identity/2]). +-export +( +   [ +      assert_identity/2, +      lock_queries/1, +      unlock_queries/1 +   ] +).  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -16,4 +23,7 @@  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -assert_identity (_PlayerID, _SessionToken) -> true. +assert_identity (_PlayerID, _SessionToken) -> unimplemented. + +lock_queries (_PlayerID) -> unimplemented. +unlock_queries (_PlayerID) -> unimplemented. 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 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/src/reply/add_char.erl b/src/reply/add_char.erl index 94ea370..5e2bf56 100644 --- a/src/reply/add_char.erl +++ b/src/reply/add_char.erl @@ -7,7 +7,7 @@  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %% EXPORTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --export([generate/3]). +-export([generate/2]).  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -27,8 +27,8 @@ attributes_as_json (Attributes) ->  encode (IX, CharacterInstance) ->     Character = character_instance:get_character(CharacterInstance),     {X, Y} = character_instance:get_location(CharacterInstance), -   Attributes = character:get_attributes(Char), -   {ActiveWeapon, SecondaryWeapon} = character:get_weapons(Char), +   Attributes = character:get_attributes(Character), +   {ActiveWeapon, SecondaryWeapon} = character:get_weapons(Character),     jiffy:encode     ( diff --git a/src/io/database_shim.erl b/src/shim/database_shim.erl index d55d848..d55d848 100644 --- a/src/io/database_shim.erl +++ b/src/shim/database_shim.erl | 


