summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/shared')
-rw-r--r--src/shared/struct/shr_battle_summary.erl134
-rw-r--r--src/shared/struct/shr_map_summary.erl102
-rw-r--r--src/shared/struct/shr_player.erl92
3 files changed, 317 insertions, 11 deletions
diff --git a/src/shared/struct/shr_battle_summary.erl b/src/shared/struct/shr_battle_summary.erl
new file mode 100644
index 0000000..3470575
--- /dev/null
+++ b/src/shared/struct/shr_battle_summary.erl
@@ -0,0 +1,134 @@
+-module(shr_battle_summary).
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+-record
+(
+ battle_summary,
+ {
+ id :: binary(),
+ name :: binary(),
+ last_edit :: binary(),
+ is_players_turn :: boolean()
+ }
+).
+
+-opaque type() :: #battle_summary{}.
+
+-export_type([type/0]).
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% EXPORTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+-export
+(
+ [
+ new/4
+ ]
+).
+
+%%%% Accessors
+-export
+(
+ [
+ get_id/1,
+ get_name/1,
+ get_last_edit/1,
+ is_players_turn/1
+ ]
+).
+-export
+(
+ [
+ set_id/2,
+ set_name/2,
+ set_last_edit/2,
+ set_is_players_turn/2
+ ]
+).
+
+-export
+(
+ [
+ get_id_field/0,
+ get_name_field/0,
+ get_last_edit_field/0,
+ get_is_players_turn_field/0
+ ]
+).
+
+%%%% Export
+-export
+(
+ [
+ encode/1
+ ]
+).
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+-spec new (binary(), binary(), binary(), boolean()) -> type().
+new (ID, Name, Time, IsPlayersTurn) ->
+ #battle_summary
+ {
+ id = ID,
+ name = Name,
+ last_edit = Time,
+ is_players_turn = IsPlayersTurn
+ }.
+
+%%%% Accessors
+-spec get_id (type()) -> binary().
+get_id (BattleSummary) -> BattleSummary#battle_summary.id.
+
+-spec get_name (type()) -> binary().
+get_name (BattleSummary) -> BattleSummary#battle_summary.name.
+
+-spec get_last_edit (type()) -> binary().
+get_last_edit (BattleSummary) -> BattleSummary#battle_summary.last_edit.
+
+-spec is_players_turn (type()) -> boolean().
+is_players_turn (BattleSummary) -> BattleSummary#battle_summary.is_players_turn.
+
+-spec set_id (binary(), type()) -> type().
+set_id (Val, BattleSummary) -> BattleSummary#battle_summary{ id = Val }.
+
+-spec set_name (binary(), type()) -> type().
+set_name (Val, BattleSummary) -> BattleSummary#battle_summary{ name = Val }.
+
+-spec set_last_edit (binary(), type()) -> type().
+set_last_edit (Val, BattleSummary) ->
+ BattleSummary#battle_summary{ last_edit = Val }.
+
+-spec set_is_players_turn (boolean(), type()) -> type().
+set_is_players_turn (Val, BattleSummary) ->
+ BattleSummary#battle_summary{ is_players_turn = Val }.
+
+-spec get_id_field () -> non_neg_integer().
+get_id_field () -> #battle_summary.id.
+
+-spec get_name_field () -> non_neg_integer().
+get_name_field () -> #battle_summary.name.
+
+-spec get_last_edit_field () -> non_neg_integer().
+get_last_edit_field () -> #battle_summary.last_edit.
+
+-spec get_is_players_turn_field () -> non_neg_integer().
+get_is_players_turn_field () -> #battle_summary.is_players_turn.
+
+-spec encode (type()) -> {list(any())}.
+encode (BattleSummary) ->
+ {
+ [
+ {<<"id">>, BattleSummary#battle_summary.id},
+ {<<"nme">>, BattleSummary#battle_summary.name},
+ {<<"ldt">>, BattleSummary#battle_summary.last_edit},
+ {<<"ipt">>, BattleSummary#battle_summary.is_players_turn}
+ ]
+ }.
diff --git a/src/shared/struct/shr_map_summary.erl b/src/shared/struct/shr_map_summary.erl
new file mode 100644
index 0000000..a7a1283
--- /dev/null
+++ b/src/shared/struct/shr_map_summary.erl
@@ -0,0 +1,102 @@
+-module(shr_map_summary).
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+-record
+(
+ map_summary,
+ {
+ id :: binary(),
+ name :: binary()
+ }
+).
+
+-opaque type() :: #map_summary{}.
+
+-export_type([type/0]).
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% EXPORTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+-export
+(
+ [
+ new/2
+ ]
+).
+
+%%%% Accessors
+-export
+(
+ [
+ get_id/1,
+ get_name/1
+ ]
+).
+-export
+(
+ [
+ set_id/2,
+ set_name/2
+ ]
+).
+
+-export
+(
+ [
+ get_id_field/0,
+ get_name_field/0
+ ]
+).
+
+%%%% Export
+-export
+(
+ [
+ encode/1
+ ]
+).
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+-spec new (binary(), binary()) -> type().
+new (ID, Name) ->
+ #map_summary
+ {
+ id = ID,
+ name = Name
+ }.
+
+%%%% Accessors
+-spec get_id (type()) -> binary().
+get_id (MapSummary) -> MapSummary#map_summary.id.
+
+-spec get_name (type()) -> binary().
+get_name (MapSummary) -> MapSummary#map_summary.name.
+
+-spec set_id (binary(), type()) -> type().
+set_id (Val, MapSummary) -> MapSummary#map_summary{ id = Val }.
+
+-spec set_name (binary(), type()) -> type().
+set_name (Val, MapSummary) -> MapSummary#map_summary{ name = Val }.
+
+-spec get_id_field () -> non_neg_integer().
+get_id_field () -> #map_summary.id.
+
+-spec get_name_field () -> non_neg_integer().
+get_name_field () -> #map_summary.name.
+
+-spec encode (type()) -> {list(any())}.
+encode (MapSummary) ->
+ {
+ [
+ {<<"id">>, MapSummary#map_summary.id},
+ {<<"nme">>, MapSummary#map_summary.name}
+ ]
+ }.
diff --git a/src/shared/struct/shr_player.erl b/src/shared/struct/shr_player.erl
index 0843e87..7cd60d7 100644
--- a/src/shared/struct/shr_player.erl
+++ b/src/shared/struct/shr_player.erl
@@ -16,7 +16,10 @@
token :: binary(), % salt(crypto:strong_rand_bytes(512))
email :: binary(),
last_active :: integer(),
- maps :: list(binary()),
+ maps :: array:array(shr_map_summary:type()),
+ campaigns :: array:array(shr_battle_summary:type()),
+ invasions :: array:array(shr_battle_summary:type()),
+ events :: array:array(shr_battle_summary:type()),
roster_id :: binary(),
inventory_id :: binary()
}
@@ -46,7 +49,10 @@
get_token/1,
get_email/1,
get_last_active/1,
- get_maps/1,
+ get_map_summaries/1,
+ get_campaign_summaries/1,
+ get_invasion_summaries/1,
+ get_event_summaries/1,
get_inventory_id/1,
get_roster_id/1,
@@ -56,7 +62,10 @@
new_token/1,
set_email/2,
refresh_active/1,
- set_maps/2,
+ set_map_summaries/2,
+ set_campaign_summaries/2,
+ set_invasion_summaries/2,
+ set_event_summaries/2,
set_inventory_id/2,
set_roster_id/2
]
@@ -71,7 +80,10 @@
get_token_field/0,
get_email_field/0,
get_last_active_field/0,
- get_maps_field/0,
+ get_map_summaries_field/0,
+ get_campaign_summaries_field/0,
+ get_invasion_summaries_field/0,
+ get_event_summaries_field/0,
get_inventory_id_field/0,
get_roster_id_field/0
]
@@ -103,6 +115,7 @@ secure_value (Salt, Val) ->
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-spec new (binary(), binary(), binary(), binary()) -> type().
new (ID, Username, Password, Email) ->
+ EmptyArray = array:new(),
Result =
#player
{
@@ -112,7 +125,10 @@ new (ID, Username, Password, Email) ->
token = <<"">>,
email = Email,
last_active = 0,
- maps = [],
+ maps = EmptyArray,
+ campaigns = EmptyArray,
+ invasions = EmptyArray,
+ events = EmptyArray,
inventory_id = <<"0">>,
roster_id = <<"0">>
},
@@ -142,8 +158,17 @@ get_email (Player) -> Player#player.email.
-spec get_last_active (type()) -> integer().
get_last_active (Player) -> Player#player.last_active.
--spec get_maps (type()) -> list(binary()).
-get_maps (Player) -> Player#player.maps.
+-spec get_map_summaries (type()) -> array:array(shr_map_summary:type()).
+get_map_summaries (Player) -> Player#player.maps.
+
+-spec get_campaign_summaries (type()) -> array:array(shr_battle_summary:type()).
+get_campaign_summaries (Player) -> Player#player.campaigns.
+
+-spec get_invasion_summaries (type()) -> array:array(shr_battle_summary:type()).
+get_invasion_summaries (Player) -> Player#player.invasions.
+
+-spec get_event_summaries (type()) -> array:array(shr_battle_summary:type()).
+get_event_summaries (Player) -> Player#player.events.
-spec get_roster_id (type()) -> binary().
get_roster_id (Player) -> Player#player.roster_id.
@@ -184,8 +209,44 @@ refresh_active (Player) ->
last_active = erlang:system_time(second)
}.
--spec set_maps (list(binary()), type()) -> type().
-set_maps (Maps, Player) -> Player#player{ maps = Maps }.
+-spec set_map_summaries (array:array(shr_map_summary:type()), type()) -> type().
+set_map_summaries (Maps, Player) -> Player#player{ maps = Maps }.
+
+-spec set_campaign_summaries
+ (
+ array:array(shr_battle_summary:type()),
+ type()
+ )
+ -> type().
+set_campaign_summaries (Campaigns, Player) ->
+ Player#player
+ {
+ campaigns = Campaigns
+ }.
+
+-spec set_invasion_summaries
+ (
+ array:array(shr_battle_summary:type()),
+ type()
+ )
+ -> type().
+set_invasion_summaries (Invasions, Player) ->
+ Player#player
+ {
+ invasions = Invasions
+ }.
+
+-spec set_event_summaries
+ (
+ array:array(shr_battle_summary:type()),
+ type()
+ )
+ -> type().
+set_event_summaries (Events, Player) ->
+ Player#player
+ {
+ events = Events
+ }.
-spec set_roster_id (binary(), type()) -> type().
set_roster_id (RosterID, Player) -> Player#player{ roster_id = RosterID }.
@@ -211,8 +272,17 @@ get_email_field () -> #player.email.
-spec get_last_active_field () -> non_neg_integer().
get_last_active_field () -> #player.last_active.
--spec get_maps_field () -> non_neg_integer().
-get_maps_field () -> #player.maps.
+-spec get_map_summaries_field () -> non_neg_integer().
+get_map_summaries_field () -> #player.maps.
+
+-spec get_campaign_summaries_field () -> non_neg_integer().
+get_campaign_summaries_field () -> #player.campaigns.
+
+-spec get_invasion_summaries_field () -> non_neg_integer().
+get_invasion_summaries_field () -> #player.invasions.
+
+-spec get_event_summaries_field () -> non_neg_integer().
+get_event_summaries_field () -> #player.events.
-spec get_roster_id_field () -> non_neg_integer().
get_roster_id_field () -> #player.roster_id.