summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2019-01-17 15:08:01 +0100
committerNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2019-01-17 15:08:01 +0100
commit06eaf5b16fb88113a39380b70dd9e0b7d5a8bfca (patch)
tree824c774bf4bc237f6c5d2e432981036f9b1867e5
parente120388a529c1fdeeae40beb9391c86c92c1ac07 (diff)
...
-rw-r--r--src/battle/query/btl_join.erl4
-rw-r--r--src/shared/struct/shr_battle_summary.erl14
-rw-r--r--src/shared/struct/shr_player.erl57
3 files changed, 35 insertions, 40 deletions
diff --git a/src/battle/query/btl_join.erl b/src/battle/query/btl_join.erl
index 2213f1c..62d16fb 100644
--- a/src/battle/query/btl_join.erl
+++ b/src/battle/query/btl_join.erl
@@ -167,6 +167,8 @@ handle_attack (Input) ->
AvailablePendingBattle
),
+ shr_timed_cache:invalidate(player_db, any, PlayerID),
+
ok.
-spec handle_defend (input()) -> 'ok'.
handle_defend (Input) ->
@@ -187,6 +189,8 @@ handle_defend (Input) ->
SelectedCharacterIXs
),
+ shr_timed_cache:invalidate(player_db, any, PlayerID),
+
ok.
-spec fetch_attack_data (input()) -> attack_query_state().
diff --git a/src/shared/struct/shr_battle_summary.erl b/src/shared/struct/shr_battle_summary.erl
index 1d9934a..812211e 100644
--- a/src/shared/struct/shr_battle_summary.erl
+++ b/src/shared/struct/shr_battle_summary.erl
@@ -31,7 +31,8 @@
(
[
new/4,
- none/0
+ none/1,
+ none/2
]
).
@@ -102,14 +103,17 @@ new (ID, Name, Mode, Category) ->
is_pending = true
}.
--spec none () -> type().
-none () ->
+-spec none (category()) -> type().
+none (Category) -> none(none, Category).
+
+-spec none (mode(), category()) -> type().
+none (Mode, Category) ->
#battle_summary
{
id = ataxia_id:null(),
name = <<"">>,
- mode = none,
- category = event,
+ mode = Mode,
+ category = Category,
deadline = ataxia_time:never(),
is_players_turn = false,
is_pending = false
diff --git a/src/shared/struct/shr_player.erl b/src/shared/struct/shr_player.erl
index 6ef6f1f..329f08d 100644
--- a/src/shared/struct/shr_player.erl
+++ b/src/shared/struct/shr_player.erl
@@ -106,43 +106,30 @@ secure_value (Salt, Val) ->
HashedSaltedVal.
+-spec generate_battle_slots
+ (
+ non_neg_integer(),
+ shr_battle_summary:category(),
+ orddict:orddict(non_neg_integer(), shr_battle_summary:type())
+ )
+ -> orddict:orddict(non_neg_integer(), shr_battle_summary:type()).
+generate_battle_slots (0, _, Result) ->
+ Result;
+generate_battle_slots (PrevIX, Category, Result) ->
+ IX = (PrevIX - 1),
+
+ generate_battle_slots
+ (
+ IX,
+ Category,
+ orddict:store(IX, shr_battle_summary:none(Category), Result)
+ ).
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-spec new (binary(), binary(), binary()) -> type().
new (Username, Password, Email) ->
- EmptyBattleSlot = shr_battle_summary:none(),
- SixEmptyBattleSlots =
- orddict:from_list
- (
- [
- {0, EmptyBattleSlot},
- {1, EmptyBattleSlot},
- {2, EmptyBattleSlot},
- {3, EmptyBattleSlot},
- {4, EmptyBattleSlot},
- {5, EmptyBattleSlot}
- ]
- ),
-
- NineEmptyBattleSlots =
- orddict:store
- (
- 6,
- EmptyBattleSlot,
- orddict:store
- (
- 7,
- EmptyBattleSlot,
- orddict:store
- (
- 8,
- EmptyBattleSlot,
- SixEmptyBattleSlots
- )
- )
- ),
-
Result =
#player
{
@@ -152,9 +139,9 @@ new (Username, Password, Email) ->
email = Email,
last_active = 0,
maps = orddict:new(),
- campaigns = SixEmptyBattleSlots,
- invasions = NineEmptyBattleSlots,
- events = SixEmptyBattleSlots,
+ campaigns = generate_battle_slots(6, campaign, orddict:new()),
+ invasions = generate_battle_slots(9, invasion, orddict:new()),
+ events = generate_battle_slots(6, event, orddict:new()),
inventory_id = ataxia_id:null(),
roster_id = ataxia_id:null()
},