From 2cfd9c671d7de73d81356fd5b423cd020c83863c Mon Sep 17 00:00:00 2001 From: nsensfel Date: Mon, 18 Nov 2019 18:24:17 +0100 Subject: ... --- src/battle/struct/btl_battle.erl | 58 +++++++++++++++++++++++++++-- src/battle/struct/btl_conditions.erl | 4 +- src/battle/struct/btl_status_indicators.erl | 10 ++--- 3 files changed, 62 insertions(+), 10 deletions(-) diff --git a/src/battle/struct/btl_battle.erl b/src/battle/struct/btl_battle.erl index 09298e6..e914626 100644 --- a/src/battle/struct/btl_battle.erl +++ b/src/battle/struct/btl_battle.erl @@ -15,7 +15,8 @@ characters :: orddict:orddict(non_neg_integer(), btl_character:either()), players :: orddict:orddict(non_neg_integer(), btl_player:type()), current_player_turn :: btl_player_turn:type(), - conditions :: btl_conditions:type() + conditions :: btl_conditions:type(), + status_indicators :: btl_status_indicators:type() } ). @@ -80,12 +81,18 @@ ataxia_set_conditions/2, ataxia_set_conditions/3, + get_status_indicators/1, + set_status_indicators/2, + ataxia_set_status_indicators/2, + ataxia_set_status_indicators/3, + get_characters_field/0, get_players_field/0, get_related_inventory_field/0, get_related_tile_ids_field/0, get_current_player_turn_field/0, - get_conditions_field/0 + get_conditions_field/0, + get_status_indicators_field/0 ] ). @@ -624,6 +631,50 @@ ataxia_set_conditions (Conditions, Battle) -> Battle ). +%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%% Status Indicators %%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%% +-spec get_status_indicators_field() -> non_neg_integer(). +get_status_indicators_field () -> #battle.status_indicators. + +-spec get_status_indicators (type()) -> btl_status_indicators:type(). +get_status_indicators (#battle{ status_indicators = R }) -> R. + +-spec set_status_indicators (btl_status_indicators:type(), type()) -> type(). +set_status_indicators (StatusIndicators, Battle) -> + Battle#battle{ status_indicators = StatusIndicators }. + +-spec ataxia_set_status_indicators + ( + btl_status_indicators:type(), + ataxic:basic(), + type() + ) + -> {type(), ataxic:basic()}. +ataxia_set_status_indicators (StatusIndicators, Update, Battle) -> + { + set_status_indicators(StatusIndicators, Battle), + ataxic:update_field + ( + get_status_indicators_field(), + Update + ) + }. + +-spec ataxia_set_status_indicators + ( + btl_status_indicators:type(), + type() + ) + -> {type(), ataxic:basic()}. +ataxia_set_status_indicators (StatusIndicators, Battle) -> + ataxia_set_status_indicators + ( + StatusIndicators, + ataxic:constant(StatusIndicators), + Battle + ). + %%%% Constructor %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -spec new (shr_map:type()) -> type(). new (Map) -> @@ -637,5 +688,6 @@ new (Map) -> characters = EmptyDict, players = EmptyDict, current_player_turn = btl_player_turn:new(0, 0), - conditions = btl_conditions:new() + conditions = btl_conditions:new(), + status_indicators = btl_status_indicators:new() }. diff --git a/src/battle/struct/btl_conditions.erl b/src/battle/struct/btl_conditions.erl index aa5aefc..d60055d 100644 --- a/src/battle/struct/btl_conditions.erl +++ b/src/battle/struct/btl_conditions.erl @@ -551,7 +551,7 @@ add (CondID, Triggers, Params, Conditions) -> Collection = Conditions#btl_conds.collection, NewConditionIX = - shr_util_orddict:compute_next_non_neg_integer_index(Collection), + shr_orddict_util:compute_next_non_neg_integer_index(Collection), UpdatedCollection = orddict:store(NewConditionIX, NewCondition, Collection), @@ -599,7 +599,7 @@ ataxia_add (CondID, Triggers, Params, Conditions) -> Collection = Conditions#btl_conds.collection, NewConditionIX = - shr_util_orddict:compute_next_non_neg_integer_index(Collection), + shr_orddict_util:compute_next_non_neg_integer_index(Collection), AtaxicNewConditionIX = ataxic:constant(NewConditionIX), diff --git a/src/battle/struct/btl_status_indicators.erl b/src/battle/struct/btl_status_indicators.erl index ec0b2d5..9ffa5ea 100644 --- a/src/battle/struct/btl_status_indicators.erl +++ b/src/battle/struct/btl_status_indicators.erl @@ -211,7 +211,7 @@ ataxia_set_category (IX, NewValue, StatusIndicators) -> ataxic:update_field ( #btl_sti.category, - ataxic:const(NewValue) + ataxic:constant(NewValue) ) ) }. @@ -250,7 +250,7 @@ ataxia_set_parameter (IX, NewValue, StatusIndicators) -> ataxic:update_field ( #btl_sti.parameter, - ataxic:const(NewValue) + ataxic:constant(NewValue) ) ) }. @@ -278,7 +278,7 @@ add (Category, Parameter, Visibility, S0StatusIndicators) -> }, NewStatusIndicatorIX = - shr_orddict_util:compute_next_non_neg_integer(S0StatusIndicators), + shr_orddict_util:compute_next_non_neg_integer_index(S0StatusIndicators), S1StatusIndicators = orddict:store @@ -288,7 +288,7 @@ add (Category, Parameter, Visibility, S0StatusIndicators) -> S0StatusIndicators ), - S1StatusIndicators. + {S1StatusIndicators, NewStatusIndicatorIX}. -spec ataxia_add ( @@ -308,7 +308,7 @@ ataxia_add (Category, Parameter, Visibility, S0StatusIndicators) -> }, NewStatusIndicatorIX = - shr_orddict_util:compute_next_non_neg_integer(S0StatusIndicators), + shr_orddict_util:compute_next_non_neg_integer_index(S0StatusIndicators), S1StatusIndicators = orddict:store -- cgit v1.2.3-70-g09d2