summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2018-07-01 22:19:58 +0200
committerNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2018-07-01 22:19:58 +0200
commit5f8694f2ecae5084f9ad1332e69403f3f79de4bc (patch)
treea4357e1a871c79099f44c46a457dd8e03d3892de /src/battlemap/struct/bm_player.erl
parent47ff1d1dc4eb3d7fb7434ec0c27ea2272e1f00fe (diff)
Preparing for player defeats...
Diffstat (limited to 'src/battlemap/struct/bm_player.erl')
-rw-r--r--src/battlemap/struct/bm_player.erl32
1 files changed, 27 insertions, 5 deletions
diff --git a/src/battlemap/struct/bm_player.erl b/src/battlemap/struct/bm_player.erl
index 9be2a95..6e5338d 100644
--- a/src/battlemap/struct/bm_player.erl
+++ b/src/battlemap/struct/bm_player.erl
@@ -11,7 +11,9 @@
{
ix :: non_neg_integer(),
id :: id(),
- timeline :: list(any())
+ character_ix :: non_neg_integer(),
+ timeline :: list(any()),
+ is_active :: boolean()
}
).
@@ -26,18 +28,24 @@
[
get_id/1,
get_index/1,
+ get_character_index/1,
get_timeline/1,
+
+ get_is_active/1,
+ set_is_active/2,
+
add_to_timeline/2,
reset_timeline/1,
- get_timeline_field/0
+ get_timeline_field/0,
+ get_is_active_field/0
]
).
-export
(
[
- new/2
+ new/3
]
).
@@ -54,9 +62,18 @@ get_id (Player) -> Player#player.id.
-spec get_index (type()) -> non_neg_integer().
get_index (Player) -> Player#player.ix.
+-spec get_character_index (type()) -> non_neg_integer().
+get_character_index (Player) -> Player#player.character_ix.
+
-spec get_timeline (type()) -> list(any()).
get_timeline (Player) -> Player#player.timeline.
+-spec get_is_active (type()) -> boolean().
+get_is_active (Player) -> Player#player.is_active.
+
+-spec set_is_active (boolean(), type()) -> type().
+set_is_active (Val, Player) -> Player#player{ is_active = Val }.
+
-spec add_to_timeline (list(any()), type()) -> type().
add_to_timeline (NewEvents, Player) ->
OldTimeline = Player#player.timeline,
@@ -69,14 +86,19 @@ add_to_timeline (NewEvents, Player) ->
-spec reset_timeline (type()) -> type().
reset_timeline (Player) -> Player#player{ timeline = [] }.
--spec new (non_neg_integer(), id()) -> type().
-new (IX, ID) ->
+-spec new (non_neg_integer(), non_neg_integer(), id()) -> type().
+new (IX, CharacterIX, ID) ->
#player
{
ix = IX,
+ character_ix = CharacterIX,
id = ID,
+ is_active = true,
timeline = []
}.
-spec get_timeline_field () -> non_neg_integer().
get_timeline_field () -> #player.timeline.
+
+-spec get_is_active_field () -> non_neg_integer().
+get_is_active_field () -> #player.is_active.