summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/battle/mechanic/skill')
-rw-r--r--src/battle/mechanic/skill/blt_skill_attack_anywhere.erl52
-rw-r--r--src/battle/mechanic/skill/blt_skill_shields_up.erl40
2 files changed, 92 insertions, 0 deletions
diff --git a/src/battle/mechanic/skill/blt_skill_attack_anywhere.erl b/src/battle/mechanic/skill/blt_skill_attack_anywhere.erl
new file mode 100644
index 0000000..bcc8519
--- /dev/null
+++ b/src/battle/mechanic/skill/blt_skill_attack_anywhere.erl
@@ -0,0 +1,52 @@
+-module(btl_skill_attack_anywhere).
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% EXPORTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+-export
+(
+ [
+ cast/5
+ ]
+).
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+-spec cast
+ (
+ shr_skill:variant(),
+ non_neg_integer(),
+ list(non_neg_integer()),
+ list(shr_location:type()),
+ btl_character_turn_update:type()
+ ) -> btl_character_turn_update:type().
+cast (_Variant, UserIX, TargetIXs, _Locations, Update) ->
+ TargetIX =
+ case TargetIXs of
+ [ValTargetIX] -> ValTargetIX;
+ _ -> error({skill, target, TargetIXs})
+ end,
+
+ % TODO: Add condition to Character[UserIX]:
+ % {
+ % Effect: Attack Range Increase
+ % Trigger: Start of Own Attack
+ % Duration: -1 (Infinite)
+ % Uses: 1
+ % Parameter: Max Value.
+
+ % TODO: Add cast event to Update.
+
+ btl_actions_management:handle
+ (
+ [btl_action:new_attack(UserIX, TargetIX)],
+ Update
+ ).
diff --git a/src/battle/mechanic/skill/blt_skill_shields_up.erl b/src/battle/mechanic/skill/blt_skill_shields_up.erl
new file mode 100644
index 0000000..32af8c2
--- /dev/null
+++ b/src/battle/mechanic/skill/blt_skill_shields_up.erl
@@ -0,0 +1,40 @@
+-module(btl_skill_shields_up).
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+-include("tacticians/skills.hrl")
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% EXPORTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+-export
+(
+ [
+ cast/5
+ ]
+).
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+-spec cast
+ (
+ shr_skill:variant(),
+ non_neg_integer(),
+ list(non_neg_integer()),
+ list(shr_location:type()),
+ btl_character_turn_update:type()
+ ) -> btl_character_turn_update:type().
+cast (Variant, _UserIX, TargetIXs, _Locations, Update) ->
+ % TODO: Add condition to TargetIXs:
+ % {
+ % Effect: Defense Percentage Increase
+ % Trigger: Start of Own Attack, Start of Target Attack
+ % Duration: {Beta} Turns
+ % Uses: -1 (Infinite)
+ % Parameter: {Alpha}.
+ Update.