summaryrefslogtreecommitdiff |
diff options
author | nsensfel <SpamShield0@noot-noot.org> | 2019-10-07 18:04:53 +0200 |
---|---|---|
committer | nsensfel <SpamShield0@noot-noot.org> | 2019-10-07 18:04:53 +0200 |
commit | 299b1505b138c1ff4f8ad65513672ca35313cea4 (patch) | |
tree | 766b4b147a1a7609e95a3532ce7f6b57dd62e321 | |
parent | af3ccc4ddcb9e13973b8d06283e6bf088f1d8f6a (diff) |
Starting implementation of skills and conditions.
-rw-r--r-- | include/tacticians/conditions.hrl.m4 | 37 | ||||
-rw-r--r-- | src/shared/struct/shr_condition.erl | 35 |
2 files changed, 72 insertions, 0 deletions
diff --git a/include/tacticians/conditions.hrl.m4 b/include/tacticians/conditions.hrl.m4 new file mode 100644 index 0000000..5c3e537 --- /dev/null +++ b/include/tacticians/conditions.hrl.m4 @@ -0,0 +1,37 @@ +m4_include(__MAKEFILE_DATA_DIR/condition/trigger.m4.conf) + +-define(CONDITION_TRIGGER_START_OF_PLAYER_TURN, __COND_TRIG_START_OF_PLAYER_TURN). +-define(CONDITION_TRIGGER_END_OF_PLAYER_TURN, __COND_TRIG_END_OF_PLAYER_TURN). +-define(CONDITION_TRIGGER_START_OF_CHARACTER_TURN, __COND_TRIG_START_OF_CHARACTER_TURN). +-define(CONDITION_TRIGGER_END_OF_CHARACTER_TURN, __COND_TRIG_END_OF_CHARACTER_TURN). + +-define(CONDITION_TRIGGER_START_OF_OWN_ATTACK, __COND_TRIG_START_OF_OWN_ATTACK). +-define(CONDITION_TRIGGER_END_OF_OWN_ATTACK, __COND_TRIG_END_OF_OWN_ATTACK). +-define(CONDITION_TRIGGER_START_OF_OWN_HIT, __COND_TRIG_START_OF_OWN_HIT). +-define(CONDITION_TRIGGER_END_OF_OWN_HIT, __COND_TRIG_END_OF_OWN_HIT). + +-define(CONDITION_TRIGGER_OWN_DODGE, __COND_TRIG_OWN_DODGE). +-define(CONDITION_TRIGGER_OWN_CRITICAL, __COND_TRIG_OWN_CRITICAL). +-define(CONDITION_TRIGGER_OWN_DOUBLE_HIT, __COND_TRIG_OWN_DOUBLE_HIT). +-define(CONDITION_TRIGGER_OWN_DAMAGE, __COND_TRIG_OWN_DAMAGE). + +-define(CONDITION_TRIGGER_START_OF_TARGET_ATTACK, __COND_TRIG_START_OF_TARGET_ATTACK). +-define(CONDITION_TRIGGER_END_OF_TARGET_ATTACK, __COND_TRIG_END_OF_TARGET_ATTACK). +-define(CONDITION_TRIGGER_START_OF_TARGET_HIT, __COND_TRIG_START_OF_TARGET_HIT). +-define(CONDITION_TRIGGER_END_OF_TARGET_HIT, __COND_TRIG_END_OF_TARGET_HIT). + +-define(CONDITION_TRIGGER_TARGET_DODGE, __COND_TRIG_TARGET_DODGE). +-define(CONDITION_TRIGGER_TARGET_CRITICAL, __COND_TRIG_TARGET_CRITICAL). +-define(CONDITION_TRIGGER_TARGET_DOUBLE_HIT, __COND_TRIG_TARGET_DOUBLE_HIT). +-define(CONDITION_TRIGGER_TARGET_DAMAGE, __COND_TRIG_TARGET_DAMAGE). + +-define(CONDITION_TRIGGER_MOVEMENT, __COND_TRIG_MOVEMENT). +-define(CONDITION_TRIGGER_WEAPON_SWITCH, __COND_TRIG_WEAPON_SWITCH). +-define(CONDITION_TRIGGER_SKILL_USE, __COND_TRIG_SKILL_USE). + +-define(CONDITION_TRIGGER_DEATH, __COND_TRIG_DEATH). + +-define(CONDITION_TRIGGER_START_OF_BATTLE, __COND_TRIG_START_OF_BATTLE). +-define(CONDITION_TRIGGER_END_OF_BATTLE, __COND_TRIG_END_OF_BATTLE). + +-define(CONDITION_TRIGGER_IMMEDIATELY, __COND_TRIG_IMMEDIATELY). diff --git a/src/shared/struct/shr_condition.erl b/src/shared/struct/shr_condition.erl new file mode 100644 index 0000000..5b6f0e9 --- /dev/null +++ b/src/shared/struct/shr_condition.erl @@ -0,0 +1,35 @@ +-module(shr_condition). + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% TYPES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +-type id() :: ataxia_id:type(). +-type trigger() :: atom(). + +-record +( + condition, + { + id :: id(), + name :: binary(), + description :: binary(), + triggers :: ordset:ordset(trigger()), + effect :: list() + } +). + +-opaque type() :: #condition{}. + +-export_type([id/0, type/0, trigger/0]). + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% EXPORTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% LOCAL FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |