summaryrefslogtreecommitdiff |
diff options
Diffstat (limited to 'src/battle/query/btl_join.erl')
-rw-r--r-- | src/battle/query/btl_join.erl | 34 |
1 files changed, 28 insertions, 6 deletions
diff --git a/src/battle/query/btl_join.erl b/src/battle/query/btl_join.erl index c38cfde..385770d 100644 --- a/src/battle/query/btl_join.erl +++ b/src/battle/query/btl_join.erl @@ -5,15 +5,14 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -include("../../../include/yaws_api.hrl"). --type mode() :: (attack | defend | {invalid, binary()}). - -record ( input, { player_id :: shr_player:id(), session_token :: binary(), - mode :: mode(), + mode :: shr_battle_summary:mode(), + category :: shr_battle_summary:category(), summary_ix :: non_neg_integer(), size :: non_neg_integer(), roster_ixs :: list(non_neg_integer()), @@ -45,10 +44,15 @@ parse_input (Req) -> case maps:get(<<"m">>, JSONReqMap) of <<"a">> -> attack; <<"d">> -> defend; - V -> {invalid, V} + _ -> none end, - true = ((Mode == attack) or (Mode == defend)), + Category = + case maps:get(<<"c">>, JSONReqMap) of + <<"e">> -> event; + <<"i">> -> invasion; + _ -> quest + end, Size = case maps:get(<<"s">>, JSONReqMap) of @@ -58,7 +62,10 @@ parse_input (Req) -> _ -> 0 end, + true = (Size > 0), + Roster = maps:get(<<"r">>, JSONReqMap), + MapID = maps:get(<<"map_id">>, JSONReqMap), #input @@ -66,6 +73,7 @@ parse_input (Req) -> player_id = PlayerID, session_token = SessionToken, mode = Mode, + category = Category, size = Size, summary_ix = SummaryIX, roster_ixs = Roster, @@ -88,6 +96,8 @@ authenticate_user (Input) -> handle_attack (Input) -> PlayerID = Input#input.player_id, SelectedCharacterIXs = Input#input.roster_ixs, + Mode = Input#input.mode, + Category = Input#input.category, SummaryIX = Input#input.summary_ix, PlayerDBUser = ataxia_security:user_from_id(PlayerID), PartySize = length(SelectedCharacterIXs), @@ -149,6 +159,8 @@ handle_attack (Input) -> bnt_join_battle:attempt ( PlayerID, + Mode, + Category, SummaryIX, SelectedCharacterIXs, AvailablePendingBattleID, @@ -160,10 +172,20 @@ handle_attack (Input) -> handle_defend (Input) -> PlayerID = Input#input.player_id, SelectedCharacterIXs = Input#input.roster_ixs, + Mode = Input#input.mode, + Category = Input#input.category, SummaryIX = Input#input.summary_ix, MapID = Input#input.map_id, - bnt_join_battle:generate(PlayerID, SummaryIX, MapID, SelectedCharacterIXs), + bnt_join_battle:generate + ( + PlayerID, + Mode, + Category, + SummaryIX, + MapID, + SelectedCharacterIXs + ), ok. |