summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornsensfel <SpamShield0@noot-noot.org>2019-04-23 18:26:09 +0200
committernsensfel <SpamShield0@noot-noot.org>2019-04-23 18:26:09 +0200
commite39c44eabaea7bafa58aa85593b80a6c55f907a3 (patch)
treea358e52c72285351fd099e512176048818df1f4f /src/battle/struct/btl_player.erl
parent459a954c58e1bf9cb7359b617713f2057ceb024f (diff)
...
Diffstat (limited to 'src/battle/struct/btl_player.erl')
-rw-r--r--src/battle/struct/btl_player.erl63
1 files changed, 60 insertions, 3 deletions
diff --git a/src/battle/struct/btl_player.erl b/src/battle/struct/btl_player.erl
index 054666d..3669e00 100644
--- a/src/battle/struct/btl_player.erl
+++ b/src/battle/struct/btl_player.erl
@@ -37,12 +37,18 @@
get_timeline/1,
get_is_active/1,
+
set_is_active/2,
+ ataxia_set_is_active/2,
set_luck/2,
+ ataxia_set_luck/2,
add_to_timeline/2,
+ ataxia_add_to_timeline/2,
+
reset_timeline/1,
+ ataxia_reset_timeline/1,
get_timeline_field/0,
get_luck_field/0,
@@ -88,24 +94,75 @@ 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 ataxia_set_is_active (boolean(), type()) -> {type(), ataxia:basic()}.
+ataxia_set_is_active (Val, Player) ->
+ {
+ Player#player{ is_active = Val },
+ ataxic:update_field
+ (
+ get_is_active_field(),
+ ataxic:constant(Val)
+ )
+ }.
+
-spec set_luck (integer(), type()) -> type().
set_luck (Val, Player) -> Player#player{ luck = Val }.
+-spec ataxia_set_luck (integer(), type()) -> {type(), ataxic:basic()}.
+ataxia_set_luck (Val, Player) ->
+ {
+ Player#player{ luck = Val },
+ ataxic:update_field
+ (
+ get_luck_field(),
+ ataxic:constant(Val)
+ )
+ }.
+
-spec add_to_timeline (list(any()), type()) -> type().
add_to_timeline (NewEvents, Player) ->
- OldTimeline = Player#player.timeline,
-
Player#player
{
- timeline = (NewEvents ++ OldTimeline)
+ timeline = (NewEvents ++ Player#player.timeline)
+ }.
+
+-spec ataxia_add_to_timeline (list(any()), type()) -> {type(), ataxic:basic()}.
+ataxia_add_to_timeline (NewEvents, Player) ->
+ {
+ Player#player{ timeline = (NewEvents ++ Player#player.timeline) },
+ ataxic:update_field
+ (
+ get_timeline_field(),
+ ataxic:apply_function
+ (
+ lists,
+ append,
+ [
+ ataxic:constant(NewEvents),
+ ataxic:current_value()
+ ]
+ )
+ )
}.
-spec reset_timeline (type()) -> type().
reset_timeline (Player) -> Player#player{ timeline = [] }.
+-spec ataxia_reset_timeline (type()) -> {type(), ataxic:basic()}.
+ataxia_reset_timeline (Player) ->
+ {
+ Player#player{ timeline = [] },
+ ataxic:update_field
+ (
+ get_timeline_field(),
+ ataxic:constant([])
+ )
+ }.
+
-spec new
(
non_neg_integer(),