summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/shared/struct/shr_player.erl')
-rw-r--r--src/shared/struct/shr_player.erl124
1 files changed, 75 insertions, 49 deletions
diff --git a/src/shared/struct/shr_player.erl b/src/shared/struct/shr_player.erl
index 076c685..6ef6f1f 100644
--- a/src/shared/struct/shr_player.erl
+++ b/src/shared/struct/shr_player.erl
@@ -15,10 +15,10 @@
token :: binary(), % salt(crypto:strong_rand_bytes(512))
email :: binary(),
last_active :: integer(),
- maps :: list(shr_map_summary:type()),
- campaigns :: list(shr_battle_summary:type()),
- invasions :: list(shr_battle_summary:type()),
- events :: list(shr_battle_summary:type()),
+ maps :: orddict:orddict(non_neg_integer(), shr_map_summary:type()),
+ campaigns :: orddict:orddict(non_neg_integer(), shr_battle_summary:type()),
+ invasions :: orddict:orddict(non_neg_integer(), shr_battle_summary:type()),
+ events :: orddict:orddict(non_neg_integer(), shr_battle_summary:type()),
roster_id :: binary(),
inventory_id :: binary()
}
@@ -112,6 +112,37 @@ secure_value (Salt, Val) ->
-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
{
@@ -120,41 +151,10 @@ new (Username, Password, Email) ->
token = <<"">>,
email = Email,
last_active = 0,
- maps = [],
- campaigns =
- [
- EmptyBattleSlot,
- EmptyBattleSlot,
- EmptyBattleSlot,
-
- EmptyBattleSlot,
- EmptyBattleSlot,
- EmptyBattleSlot
- ],
- invasions =
- [
- EmptyBattleSlot,
- EmptyBattleSlot,
- EmptyBattleSlot,
-
- EmptyBattleSlot,
- EmptyBattleSlot,
- EmptyBattleSlot,
-
- EmptyBattleSlot,
- EmptyBattleSlot,
- EmptyBattleSlot
- ],
- events =
- [
- EmptyBattleSlot,
- EmptyBattleSlot,
- EmptyBattleSlot,
-
- EmptyBattleSlot,
- EmptyBattleSlot,
- EmptyBattleSlot
- ],
+ maps = orddict:new(),
+ campaigns = SixEmptyBattleSlots,
+ invasions = NineEmptyBattleSlots,
+ events = SixEmptyBattleSlots,
inventory_id = ataxia_id:null(),
roster_id = ataxia_id:null()
},
@@ -181,22 +181,38 @@ get_email (Player) -> Player#player.email.
-spec get_last_active (type()) -> integer().
get_last_active (Player) -> Player#player.last_active.
--spec get_map_summaries (type()) -> list(shr_map_summary:type()).
+-spec get_map_summaries
+ (
+ type()
+ )
+ -> orddict:orddict(non_neg_integer(), shr_map_summary:type()).
get_map_summaries (Player) -> Player#player.maps.
--spec get_campaign_summaries (type()) -> list(shr_battle_summary:type()).
+-spec get_campaign_summaries
+ (
+ type()
+ )
+ -> orddict:orddict(non_neg_integer(), shr_battle_summary:type()).
get_campaign_summaries (Player) -> Player#player.campaigns.
--spec get_invasion_summaries (type()) -> list(shr_battle_summary:type()).
+-spec get_invasion_summaries
+ (
+ type()
+ )
+ -> orddict:orddict(non_neg_integer(), shr_battle_summary:type()).
get_invasion_summaries (Player) -> Player#player.invasions.
--spec get_event_summaries (type()) -> list(shr_battle_summary:type()).
+-spec get_event_summaries
+ (
+ type()
+ )
+ -> orddict:orddict(non_neg_integer(), shr_battle_summary:type()).
get_event_summaries (Player) -> Player#player.events.
--spec get_roster_id (type()) -> binary().
+-spec get_roster_id (type()) -> ataxia_id:type().
get_roster_id (Player) -> Player#player.roster_id.
--spec get_inventory_id (type()) -> binary().
+-spec get_inventory_id (type()) -> ataxia_id:type().
get_inventory_id (Player) -> Player#player.inventory_id.
-spec set_username (binary(), type()) -> type().
@@ -229,12 +245,17 @@ refresh_active (Player) ->
last_active = erlang:system_time(second)
}.
--spec set_map_summaries (list(shr_map_summary:type()), type()) -> type().
+-spec set_map_summaries
+ (
+ orddict:orddict(non_neg_integer(), shr_map_summary:type()),
+ type()
+ )
+ -> type().
set_map_summaries (Maps, Player) -> Player#player{ maps = Maps }.
-spec set_campaign_summaries
(
- list(shr_battle_summary:type()),
+ orddict:orddict(non_neg_integer(), shr_battle_summary:type()),
type()
)
-> type().
@@ -246,7 +267,7 @@ set_campaign_summaries (Campaigns, Player) ->
-spec set_invasion_summaries
(
- list(shr_battle_summary:type()),
+ orddict:orddict(non_neg_integer(), shr_battle_summary:type()),
type()
)
-> type().
@@ -256,7 +277,12 @@ set_invasion_summaries (Invasions, Player) ->
invasions = Invasions
}.
--spec set_event_summaries (list(shr_battle_summary:type()), type()) -> type().
+-spec set_event_summaries
+ (
+ orddict:orddict(non_neg_integer(), shr_battle_summary:type()),
+ type()
+ )
+ -> type().
set_event_summaries (Events, Player) ->
Player#player
{