summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2019-10-21 21:50:25 +0200
committerNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2019-10-21 21:50:25 +0200
commit3391371f9979f374e5cb3243e1f71500c6115f90 (patch)
tree4c59b4c03c7837c86fe758f524b6b4b595abdb31 /src/battle
parentc2bff6b098480af6a21bde453494f8ff64219ea7 (diff)
Update for Ataxia.
Diffstat (limited to 'src/battle')
-rw-r--r--src/battle/mechanic/action/btl_action_attack.erl10
-rw-r--r--src/battle/mechanic/btl_turn_progression.erl2
-rw-r--r--src/battle/mechanic/btl_victory_progression.erl2
-rw-r--r--src/battle/mechanic/condition/btl_cond_heal.erl78
-rw-r--r--src/battle/query/btl_character_turn.erl2
-rw-r--r--src/battle/struct/btl_attack.erl2
-rw-r--r--src/battle/struct/btl_condition.erl24
7 files changed, 24 insertions, 96 deletions
diff --git a/src/battle/mechanic/action/btl_action_attack.erl b/src/battle/mechanic/action/btl_action_attack.erl
index d155197..c6cd270 100644
--- a/src/battle/mechanic/action/btl_action_attack.erl
+++ b/src/battle/mechanic/action/btl_action_attack.erl
@@ -61,7 +61,7 @@ apply_mirror_conditions
end,
{S1VolatileContext, S1Update} =
- blt_condition:apply_to_character
+ btl_condition:apply_to_character
(
ActorIX,
OwnTriggerName,
@@ -71,7 +71,7 @@ apply_mirror_conditions
),
{S2VolatileContext, S2Update} =
- blt_condition:apply_to_character
+ btl_condition:apply_to_character
(
TargetIX,
OtherTriggerName,
@@ -81,7 +81,7 @@ apply_mirror_conditions
),
{S3VolatileContext, S3Update} =
- blt_condition:apply_to_battle
+ btl_condition:apply_to_battle
(
GlobalTriggerName,
ReadOnlyContext,
@@ -474,7 +474,7 @@ get_actors (_Category, Action, Update) ->
-spec commit_hit
(
boolean(),
- btl_battle:precision(),
+ btl_attack:precision(),
boolean(),
btl_character:type(),
btl_character:type(),
@@ -645,7 +645,7 @@ commit_hit
btl_attack:category(),
btl_action:type(),
boolean(),
- btl_battle:precision(),
+ btl_attack:precision(),
btl_character_turn_update:type()
)
->
diff --git a/src/battle/mechanic/btl_turn_progression.erl b/src/battle/mechanic/btl_turn_progression.erl
index 5b8d9c8..4507b52 100644
--- a/src/battle/mechanic/btl_turn_progression.erl
+++ b/src/battle/mechanic/btl_turn_progression.erl
@@ -101,7 +101,7 @@ activate_next_players_characters (NextPlayerIX, Battle) ->
AllCharacters
),
- {ResultingBattle, ataxic:optimize(ataxic:sequence(BattleAtaxicUpdates))}.
+ {ResultingBattle, ataxic:sequence(BattleAtaxicUpdates)}.
-spec activate_next_player
(
diff --git a/src/battle/mechanic/btl_victory_progression.erl b/src/battle/mechanic/btl_victory_progression.erl
index cf8b6d3..45a6e89 100644
--- a/src/battle/mechanic/btl_victory_progression.erl
+++ b/src/battle/mechanic/btl_victory_progression.erl
@@ -59,7 +59,7 @@ mark_characters_of_player_as_defeated (PlayerIX, Battle) ->
AllCharacters
),
- {ResultingBattle, ataxic:optimize(ataxic:sequence(BattleAtaxiaUpdates))}.
+ {ResultingBattle, ataxic:sequence(BattleAtaxiaUpdates)}.
-spec mark_player_as_inactive
(
diff --git a/src/battle/mechanic/condition/btl_cond_heal.erl b/src/battle/mechanic/condition/btl_cond_heal.erl
index 897768a..f38de7b 100644
--- a/src/battle/mechanic/condition/btl_cond_heal.erl
+++ b/src/battle/mechanic/condition/btl_cond_heal.erl
@@ -18,84 +18,6 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
--spec apply_to_character
- (
- btl_condition:type(),
- btl_character:type()
- )
- ->
- {
- btl_condition:type(),
- btl_condition:update_action(),
- [{btl_character:type(), ataxic:basic()}]
- }.
-apply_to_character (Condition, S0Character) ->
- {_TargetIX, Amount} = btl_condition:get_parameters(Condition),
-
- case btl_character:get_is_alive(S0Character) of
- false -> {Condition, none, []};
- true ->
- RemainingUses = btl_condition:get_remaining_uses(Condition),
- CurrentHealth = btl_character:get_current_health(S0Character),
- MaxHealth =
- shr_attributes:get_health
- (
- shr_character:get_attributes
- (
- btl_character:get_base_character(S0Character)
- )
- ),
-
- UpdatedHealth = min(MaxHealth, (CurrentHealth + Amount)),
- UpdatedRemainingUses =
-
- {S1Character, CharacterUpdate} =
- btl_character:ataxia_set_current_health(UpdatedHealth, S0Character),
-
- if
- (RemainingUses == -1) ->
- {
- Condition,
- none,
- [{S1Character, CharacterUpdate}]
- };
-
- (RemainingUses == 1) ->
- {
- remove,
- [{S1Character, CharacterUpdate}]
- };
-
- (RemainingUses == 0) ->
- {
- remove,
- [{S1Character, CharacterUpdate}]
- };
-
- true ->
- {UpdatedCondition, ConditionUpdate} =
- btl_condition:ataxia_set_remaining_uses
- (
- UpdatedRemainingUses,
- Condition
- ),
- {
- UpdatedCondition,
- {update, ConditionUpdate},
- [{S1Character, CharacterUpdate}]
- }
- end
- end.
-
--spec handle_context
- (
- shr_condition:context(),
- btl_condition:type()
- )
- -> shr_condition:context().
-handle_context ({Trigger, ReadOnly, VolatileData}, Condition) ->
- {_TargetIX, _Amount} = btl_condition:get_parameters(Condition),
- {Trigger, ReadOnly, VolatileData}.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/src/battle/query/btl_character_turn.erl b/src/battle/query/btl_character_turn.erl
index d0046b2..d34febe 100644
--- a/src/battle/query/btl_character_turn.erl
+++ b/src/battle/query/btl_character_turn.erl
@@ -137,7 +137,7 @@ send_to_database (Update, Request) ->
(
battle_db,
ataxia_security:user_from_id(PlayerID),
- ataxic:update_value(ataxic:optimize(BattleAtaxicUpdate)),
+ ataxic:update_value(ataxic_optimize:aggressive(BattleAtaxicUpdate)),
BattleID
),
diff --git a/src/battle/struct/btl_attack.erl b/src/battle/struct/btl_attack.erl
index e4a516b..27436f2 100644
--- a/src/battle/struct/btl_attack.erl
+++ b/src/battle/struct/btl_attack.erl
@@ -22,7 +22,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% EXPORTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
--export_type([type/0, category/0]).
+-export_type([type/0, category/0, precision/0]).
-export
(
diff --git a/src/battle/struct/btl_condition.erl b/src/battle/struct/btl_condition.erl
index 78ee9b6..60b329a 100644
--- a/src/battle/struct/btl_condition.erl
+++ b/src/battle/struct/btl_condition.erl
@@ -12,12 +12,18 @@
| {update, ataxic:basic()}
).
+-type ref() ::
+ (
+ {char, non_neg_integer(), non_neg_integer()}
+ | {battle, non_neg_integer()}
+ ).
+
-record
(
btl_cond,
{
category :: shr_condition:id(),
- triggers :: ordset:ordset(shr_condition:trigger()),
+ triggers :: ordsets:ordset(shr_condition:trigger()),
occurrences :: (non_neg_integer() | -1),
duration :: (non_neg_integer() | -1),
parameters :: tuple()
@@ -27,7 +33,7 @@
-opaque type() :: #btl_cond{}.
-opaque collection() :: orddict:orddict(non_neg_integer(), type()).
--export_type([type/0, collection/0, update_action/0]).
+-export_type([type/0, ref/0, collection/0, update_action/0]).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% EXPORTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -131,7 +137,7 @@ update_actions_to_ataxic_update (Updates) ->
-spec get_category (type()) -> shr_condition:id().
get_category (Condition) -> Condition#btl_cond.category.
--spec get_triggers (type()) -> ordset:ordset(shr_condition:trigger()).
+-spec get_triggers (type()) -> ordsets:ordset(shr_condition:trigger()).
get_triggers (Condition) -> Condition#btl_cond.triggers.
-spec get_remaining_occurrences (type()) -> (non_neg_integer() | -1).
@@ -143,7 +149,7 @@ get_duration (Condition) -> Condition#btl_cond.duration.
-spec get_parameters (type()) -> tuple().
get_parameters (Condition) -> Condition#btl_cond.parameters.
--spec set_triggers (ordset:ordset(shr_condition:trigger()), type()) -> type().
+-spec set_triggers (ordsets:ordset(shr_condition:trigger()), type()) -> type().
set_triggers (Triggers, Condition) -> Condition#btl_cond{ triggers = Triggers }.
-spec set_remaining_occurrences ((non_neg_integer() | -1), type()) -> type().
@@ -159,7 +165,7 @@ set_parameters (Value, Condition) -> Condition#btl_cond{ parameters = Value }.
-spec ataxia_set_triggers
(
- ordset:ordset(shr_condition:trigger()),
+ ordsets:ordset(shr_condition:trigger()),
type()
)
-> {type(), ataxic:basic()}.
@@ -219,7 +225,7 @@ ataxia_set_parameters (Value, Condition) ->
-spec ataxia_set_triggers
(
- ordset:ordset(shr_condition:trigger()),
+ ordsets:ordset(shr_condition:trigger()),
ataxic:basic(),
type()
)
@@ -253,7 +259,7 @@ ataxia_set_parameters (Value, Update, Condition) ->
-spec triggers_on (shr_condition:trigger(), type()) -> boolean().
triggers_on (Trigger, Type) ->
- ordset:is_element(Trigger, Type#btl_cond.triggers).
+ ordsets:is_element(Trigger, Type#btl_cond.triggers).
-spec get_category_field () -> non_neg_integer().
get_category_field () -> #btl_cond.category.
@@ -375,7 +381,7 @@ apply_to_character
S0Conditions = btl_character:get_conditions(S1Actor),
S1Conditions =
- ataxic:basic_apply_to(ActorConditionsAtaxicUpdate, S0Conditions),
+ ataxic:apply_basic_to(ActorConditionsAtaxicUpdate, S0Conditions),
{S2Actor, ActorAtaxicUpdate} =
btl_character:ataxia_set_conditions
@@ -436,7 +442,7 @@ apply_to_battle
%%%% Battle may have been modified (and very likely has) %%%%%%%%%%%%%%%%%%%%
S1Battle = btl_character_turn_update:get_battle(S1Update),
UpdatedBattleConditions =
- ataxic:basic_apply_to
+ ataxic:apply_basic_to
(
btl_battle:get_conditions(S1Battle),
BattleConditionsAtaxicUpdate