summaryrefslogtreecommitdiff |
diff options
-rw-r--r-- | src/battle/query/btl_join.erl | 34 | ||||
-rw-r--r-- | src/bounty/bnt_join_battle.erl | 43 | ||||
-rw-r--r-- | src/bounty/struct/bnt_bounty.erl | 2 | ||||
-rw-r--r-- | src/shared/struct/shr_battle_summary.erl | 2 |
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(). |