summaryrefslogtreecommitdiff |
diff options
Diffstat (limited to 'src/shared')
-rw-r--r-- | src/shared/struct/shr_battle_summary.erl | 134 | ||||
-rw-r--r-- | src/shared/struct/shr_map_summary.erl | 102 | ||||
-rw-r--r-- | src/shared/struct/shr_player.erl | 92 |
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. |