summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
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(),