| summaryrefslogtreecommitdiff | 
diff options
Diffstat (limited to 'www')
| -rw-r--r-- | www/handler/battlemap/character_turn.yaws | 182 | ||||
| -rw-r--r-- | www/handler/battlemap/load_state.yaws | 123 | 
2 files changed, 0 insertions, 305 deletions
diff --git a/www/handler/battlemap/character_turn.yaws b/www/handler/battlemap/character_turn.yaws deleted file mode 100644 index 2b3f818..0000000 --- a/www/handler/battlemap/character_turn.yaws +++ /dev/null @@ -1,182 +0,0 @@ -<erl> --record -( -   input, -   { -      session_token, -      player_id, -      battlemap_id, -      instance_id, -      char_id, -      path, -      target_id -   } -). --record -( -   query_state, -   { -      input, -      battlemap, -      battlemap_inst, -      main_char, -      main_char_inst, -      main_char_new_loc, -      target_char, -      target_char_inst -   } -). - - --include("/my/src/tacticians-server/src/timed_cache_data.hrl"). - -parse_input (Req) -> -   JSONReqMap = jiffy:decode(Req, [return_maps]), -   #input -   { -      session_token = maps:get(<<"session_token">>, JSONReqMap), -      player_id = maps:get(<<"player_id">>, JSONReqMap), -      battlemap_id = maps:get(<<"battlemap_id">>, JSONReqMap), -      instance_id = maps:get(<<"instance_id">>, JSONReqMap), -      char_id = maps:get(<<"char_id">>, JSONReqMap), -      path = maps:get(<<"path">>, JSONReqMap), -      target_id = maps:get(<<"target_id">>, JSONReqMap) -   }. - -fetch_data (Input) -> -   Battlemap = timed_cache:fetch(battlemap_db, Input#input.battlemap_id), -   BattlemapInst = -      timed_cache:fetch -      ( -         battlemap_instance_db, -         <<"0">> -      ), -   MainChar = timed_cache:fetch(character_db, Input#input.char_id), -   MainCharInst = -      battlemap_instance:get_char_instance -      ( -         BattlemapInst, -         Input#input.char_id -      ), -   case Input#input.target_id of -      <<"">> -> -         TargetChar = nothing, -         TargetCharInst = nothing; - -      TargetID -> -         TargetChar = timed_cache:fetch(character_db, TargetID), -         TargetCharInst = -            battlemap_instance:get_char_instance -            ( -               BattlemapInst, -               TargetID -            ) -   end, -   #query_state -   { -      input = Input, -      battlemap = Battlemap, -      battlemap_inst = BattlemapInst, -      main_char = MainChar, -      main_char_inst = MainCharInst, -      main_char_new_loc = nothing, -      target_char = TargetChar, -      target_char_inst = TargetCharInst -   }. - -assert_main_char_can_be_used (QueryState) -> -   false = character_instance:is_dead(QueryState#query_state.main_char_inst), -   true = -      battlemap_instance:can_play_char_instance -      ( -         QueryState#query_state.battlemap_inst, -         QueryState#query_state.input#input.player_id, -         QueryState#query_state.input#input.char_id -      ). - -handle_main_char_movement (QueryState) -> -   {X, Y} = -      battlemap:cross -      ( -         QueryState#query_state.battlemap, -         character_instance:get_location(QueryState#query_state.main_char_inst), -         character:get_movement_points(QueryState#query_state.main_char), -         QueryState#query_state.input#input.path, -         battlemap_instance:get_char_instances -         ( -            QueryState#query_state.battlemap_inst -         ) -      ), -   QueryState#query_state -   { -      battlemap_inst = -         battlemap_instance:set_char_instance -         ( -            battlemap_instance:post_play_char_instance -            ( -               QueryState#query_state.battlemap_inst, -               QueryState#query_state.input#input.char_id -            ), -            QueryState#query_state.input#input.char_id, -            character_instance:set_location -            ( -               QueryState#query_state.main_char_inst, -               X, -               Y -            ) -         ), -      main_char_new_loc = {X, Y} -   }. - -handle_target (QueryState) -   when (QueryState#query_state.target_char_inst == nothing) -> -   QueryState; -handle_target (QueryState) -> -   TargetLoc = -      character_instance:get_location(QueryState#query_state.main_char_inst), -   Dist = -      battlemap:dist(QueryState#query_state.main_char_new_loc, TargetLoc), -   true = -      (Dist =< character:get_attack_range(QueryState#query_state.main_char)), -   %% TODO: test for (and handle) riposte. -   QueryState#query_state -   { -      battlemap_inst = -         battlemap_instance:set_char_instance -         ( -            QueryState#query_state.battlemap_inst, -            QueryState#query_state.input#input.target_id, -            character_instance:mod_health -            ( -               QueryState#query_state.target_char_inst, -               -1, -               character:get_max_health(QueryState#query_state.main_char) -            ) -         ) -   }. - -handle (Req) -> -   %%%% Parse -   Input = parse_input(Req), -   %%%% Fetch -   QueryState = fetch_data(Input), -   %%%% Calc -   assert_main_char_can_be_used(QueryState), -   NQueryState = handle_target(handle_main_char_movement(QueryState)), -   %%%% Commit -   database_shim:commit -   ( -      battlemap_instance_db, -      <<"0">>, -      NQueryState#query_state.battlemap_inst -   ), -   %%%% Reply -   jiffy:encode([[<<"okay">>]]). - -out(A) -> -   { -      content, -      "application/json; charset=UTF-8", -      handle(A#arg.clidata) -   }. -</erl> diff --git a/www/handler/battlemap/load_state.yaws b/www/handler/battlemap/load_state.yaws deleted file mode 100644 index e04fd96..0000000 --- a/www/handler/battlemap/load_state.yaws +++ /dev/null @@ -1,123 +0,0 @@ -<erl> --record(input, {session_token, player_id, battlemap_id, instance_id}). - --include("/my/src/tacticians-server/src/timed_cache_data.hrl"). - -parse_input (Req) -> -   JSONReqMap = jiffy:decode(Req, [return_maps]), -   #input -   { -      session_token = maps:get(<<"session_token">>, JSONReqMap), -      player_id = maps:get(<<"player_id">>, JSONReqMap), -      battlemap_id = maps:get(<<"battlemap_id">>, JSONReqMap), -      instance_id = maps:get(<<"instance_id">>, JSONReqMap) -   }. - -generate_set_map (Battlemap) -> -   jiffy:encode -   ( -      { -         [ -            {<<"width">>, Battlemap#battlemap.width}, -            {<<"height">>, Battlemap#battlemap.height}, -            {<<"content">>, array:sparse_to_list(Battlemap#battlemap.content)} -         ] -      } -   ). - -generate_add_char (Char, CharInstance, BattlemapInstance, PlayerID) -> -   jiffy:encode -   ( -      { -         [ -            {<<"id">>, Char#character.id}, -            {<<"name">>, Char#character.name}, -            {<<"icon">>, Char#character.icon}, -            {<<"portrait">>, Char#character.portrait}, -            {<<"loc_x">>, CharInstance#character_instance.x}, -            {<<"loc_y">>, CharInstance#character_instance.y}, -            {<<"team">>, CharInstance#character_instance.team}, -            {<<"mov_pts">>, Char#character.mov_pts}, -            {<<"atk_rg">>, Char#character.atk_rg}, -            { -               <<"enabled">>, -               battlemap_instance:can_play_char_instance -               ( -                  BattlemapInstance, -                  PlayerID, -                  Char#character.id -               ) -            } -         ] -      } -   ). - -generate_reply (Battlemap, BattlemapInstance, Characters, PlayerID) -> -   jiffy:encode -   ( -      [ -         [ -            <<"set_map">>, -            generate_set_map(Battlemap) -         ] -         | -         lists:map -         ( -            fun ({CharID, CharInstance}) -> -               [ -                  <<"add_char">>, -                  generate_add_char -                  ( -                     CharID, -                     CharInstance, -                     BattlemapInstance, -                     PlayerID -                  ) -               ] -            end, -            Characters -         ) -      ] -   ). - -handle (Req) -> -   %%%% Parse -   Input = parse_input(Req), -   %%%% Fetch -   Battlemap = timed_cache:fetch(battlemap_db, Input#input.battlemap_id), -   BattlemapInstance = -      timed_cache:fetch -      ( -         battlemap_instance_db, -         <<"0">> -%         {Input#input.battlemap_id, Input#input.battlemap_instance_id} -      ), -   Characters = -      lists:map -      ( -         fun ({CharID, CharInst}) -> -            { -               timed_cache:fetch(character_db, CharID), -               CharInst -            } -         end, -         dict:to_list(BattlemapInstance#battlemap_instance.chars) -      ), -   %%%% Calc -   %%%% Commit -   %%%% Reply -   generate_reply -   ( -      Battlemap, -      BattlemapInstance, -      Characters, -      Input#input.player_id -   ). - -out(A) -> -   { -      content, -      "application/json; charset=UTF-8", -      handle(A#arg.clidata) -   }. -</erl>  | 


