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
parent1f8d07d0ce1573c995f4d554ce0c78218398d1ab (diff)
...
-rw-r--r--src/battle/query/btl_join.erl34
-rw-r--r--src/bounty/bnt_join_battle.erl43
-rw-r--r--src/bounty/struct/bnt_bounty.erl2
-rw-r--r--src/shared/struct/shr_battle_summary.erl2
4 files changed, 65 insertions, 16 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.
diff --git a/src/bounty/bnt_join_battle.erl b/src/bounty/bnt_join_battle.erl
index 7880938..89de5f7 100644
--- a/src/bounty/bnt_join_battle.erl
+++ b/src/bounty/bnt_join_battle.erl
@@ -7,7 +7,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% EXPORTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
--export([generate/4, attempt/5]).
+-export([generate/6, attempt/7]).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -511,7 +511,14 @@ generate_pending_battle
btl_pending_battle:type()
)
-> {ok, btl_pending_battle:type()}.
-repair_join_battle (PlayerID, PlayerSumIX, RosterCharIXs, PBattleID, PBattle) ->
+repair_join_battle
+(
+ PlayerID,
+ PlayerSumIX,
+ RosterCharIXs,
+ PBattleID,
+ PBattle
+) ->
PlayerUser = ataxia_security:user_from_id(PlayerID),
{S0PBattle, AtaxicUpdate} =
@@ -561,14 +568,22 @@ repair_create_battle (PlayerID, PlayerSumIX, RosterCharIXs, PBattleID, MapID) ->
-spec repair_user_link
(
shr_player:id(),
+ shr_battle_summary:mode(),
+ shr_battle_summary:category(),
non_neg_integer(),
btl_pending_battle:id()
)
-> ok.
-repair_user_link (PlayerID, PBattleUserIX, PBattleID) ->
+repair_user_link (PlayerID, Mode, Category, PBattleUserIX, PBattleID) ->
PlayerUser = ataxia_security:user_from_id(PlayerID),
BattleSummary =
- shr_battle_summary:new(PBattleID, <<"Test Battle">>, <<"">>, false),
+ shr_battle_summary:new
+ (
+ PBattleID,
+ <<"Test Battle">>,
+ Mode,
+ Category
+ ),
ok =
ataxia_client:update
@@ -579,7 +594,13 @@ repair_user_link (PlayerID, PBattleUserIX, PBattleID) ->
(
ataxic:update_field
(
- shr_player:get_invasion_summaries_field(),
+ (
+ case Category of
+ invasion -> shr_player:get_invasion_summaries_field();
+ event -> shr_player:get_event_summaries_field();
+ campaign -> shr_player:get_campaign_summaries_field()
+ end
+ ),
ataxic:apply_function
(
orddict,
@@ -661,12 +682,14 @@ repair_generate_battle (PBattleID, PBattle) ->
-spec generate
(
shr_player:id(),
+ shr_battle_summary:mode(),
+ shr_battle_summary:category(),
non_neg_integer(),
map_map:id(),
list(non_neg_integer())
)
-> 'ok'.
-generate (PlayerID, SummaryIX, MapID, RosterCharIXs) ->
+generate (PlayerID, Mode, Category, SummaryIX, MapID, RosterCharIXs) ->
PlayerUser = ataxia_security:user_from_id(PlayerID),
AnyoneAndMeAllowed =
ataxia_security:add_access(PlayerUser, ataxia_security:allow_any()),
@@ -700,7 +723,7 @@ generate (PlayerID, SummaryIX, MapID, RosterCharIXs) ->
MapID
),
- repair_user_link(PlayerID, SummaryIX, NewPBattleID),
+ repair_user_link(PlayerID, Mode, Category, SummaryIX, NewPBattleID),
ok.
@@ -708,6 +731,8 @@ generate (PlayerID, SummaryIX, MapID, RosterCharIXs) ->
-spec attempt
(
shr_player:id(),
+ shr_battle_summary:mode(),
+ shr_battle_summary:category(),
non_neg_integer(),
list(non_neg_integer()),
btl_pending_battle:id(),
@@ -717,6 +742,8 @@ generate (PlayerID, SummaryIX, MapID, RosterCharIXs) ->
attempt
(
PlayerID,
+ Mode,
+ Category,
SummaryIX,
SelectedRosterCharacterIXs,
PendingBattleID,
@@ -755,7 +782,7 @@ attempt
PendingBattleID
),
- repair_user_link(PlayerID, SummaryIX, PendingBattleID),
+ repair_user_link(PlayerID, Mode, Category, SummaryIX, PendingBattleID),
case btl_pending_battle:get_free_slots(S0PendingBattle) of
0 -> repair_generate_battle(PendingBattleID, S0PendingBattle);
diff --git a/src/bounty/struct/bnt_bounty.erl b/src/bounty/struct/bnt_bounty.erl
index c6aa450..d91cdc2 100644
--- a/src/bounty/struct/bnt_bounty.erl
+++ b/src/bounty/struct/bnt_bounty.erl
@@ -82,7 +82,7 @@ generate (User, NotBefore, Deadline, Job) ->
-spec resolve () -> type().
resolve () ->
- Lock = ataxia_lock:locked(ataxia_security:admin(), ataxia_time:now()),
+ Lock = ataxia_lock:locked(ataxia_security:admin(), ataxia_time:in(60)),
{ok, Bounty, BountyID} =
ataxia_client:update_and_fetch_any
diff --git a/src/shared/struct/shr_battle_summary.erl b/src/shared/struct/shr_battle_summary.erl
index fa1a458..f9fd412 100644
--- a/src/shared/struct/shr_battle_summary.erl
+++ b/src/shared/struct/shr_battle_summary.erl
@@ -99,7 +99,7 @@ new (ID, Name, Mode, Category) ->
category = Category,
deadline = ataxia_time:never(),
is_players_turn = false,
- is_pending = false
+ is_pending = true
}.
-spec none () -> type().