summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2019-01-16 21:07:19 +0100
committerNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2019-01-16 21:07:19 +0100
commitc1042fca23c3a2a9775047a9c1efee5031ac4a1c (patch)
treeedad64ef56cbd202440dc91d650b8387b18c21b2 /src/battle/query/btl_join.erl
parent1f8d07d0ce1573c995f4d554ce0c78218398d1ab (diff)
...
Diffstat (limited to 'src/battle/query/btl_join.erl')
-rw-r--r--src/battle/query/btl_join.erl34
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.