aboutsummaryrefslogtreecommitdiff
path: root/features/readme.md
diff options
context:
space:
mode:
authorYour Name <you@example.com>2022-02-18 16:47:53 -0500
committerYour Name <you@example.com>2022-02-18 16:47:53 -0500
commit947d83c59ea86615e3a81a2ec122d843b5eceee9 (patch)
tree158f365d2d50b9e4e2b3fbe6a5d8c4cceb6d99cd /features/readme.md
parentd0e356d09e30a11c1e072415a5088f829d5c0a04 (diff)
downloaddmtool-947d83c59ea86615e3a81a2ec122d843b5eceee9.tar.gz
dmtool-947d83c59ea86615e3a81a2ec122d843b5eceee9.tar.bz2
dmtool-947d83c59ea86615e3a81a2ec122d843b5eceee9.zip
More features work
Diffstat (limited to 'features/readme.md')
-rw-r--r--features/readme.md80
1 files changed, 57 insertions, 23 deletions
diff --git a/features/readme.md b/features/readme.md
index ebc16cc..fda276b 100644
--- a/features/readme.md
+++ b/features/readme.md
@@ -19,7 +19,19 @@ Many features are very similar between creatures except for certain variables. W
Certain portions of features accept these as parameters, either inline as in TEXT, or in the place of hardcoded variables for conditions or effects.
-In addition to these, certain attributes of the creature having this feature may be probed such as STR, DEX, CON, INT, WIS, CHA, or PROF.
+In addition to these, certain attributes of the creature having this feature may be probed such as:
+ * STR
+ * DEX
+ * CON
+ * INT
+ * WIS
+ * CHA
+ * PROF
+ * MAXHP
+ * MOVESPEED
+ * SPELLDC
+
+The above attributes by default apply to self (i.e., self.STR), however, they may also be used for another creature (i.e., creature.STR).
Finally, simple math can be provided in postfix notation surounded by parentheses. For example, to set a save DC equal to 8+int+prof: (8,INT,PROF,+,+).
@@ -60,37 +72,44 @@ Where NAME is interpreted by the game as a specific creature or object with a ma
TRIGGER is a list containing any of the following followed by nouns corresponding to instances of N:
- * "on init"
+ * "passive" (evaluated on initialization)
* "action"
* "bonus action"
* "free action"
+ * "legendary action costing X"
* "N start of turn"
* "N end of turn"
- * "N takes damage" (pushes damage amount to variables list)
+ * "N takes damage" (pushes damage amount, damage type to variables list)
* "N moves"
- * "N makes check against N"
- * "N forces N to save"
- * "N rolls a d20"
- * "N targets N by a spell"
+ * "N makes check against N" (pushes ROLLCLASS to variables list)
+ * "N forces N to save" (pushes ROLLCLASS to variables list)
+ * "N rolls a d20" (pushes ROLLCLASS to variables list)
+ * "N targets N by a spell" (pushes spell name to variables list)
* "N attacks N"
* "N hits N"
* "N touches N"
+Where ROLLCLASS is any of:
+ * "attack"
+ * "grapple"
+ * "escape grapple"
+ * "shove"
+...
+
### CONDITIONS
CONDITIONS is a list of lists, all of which must evaluate True for effects to be applied. Each condition list is formatted [ CONDITION, variables ] where CONDITION is any of the following, prepend "not " to invert:
- * "N has property PROPERTY"
+ * "N has property PROPERTY = VALUE"
* "N is hostile to N"
* "N is allied to N"
* "N wishes it to be so"
- * "N succeeds dc X ABILITY save by at least X"
- * "N fails dc X ABILITY save by at least X"
+ * "N succeeds dc X ABILITY save by at least X" (0 is a success)
+ * "N fails dc X ABILITY save by at least X" (0 is a fail)
* "N is within radius X of N"
* "N can see N"
* "N has completed >= X turns"
- * "N is at full hp"
- * "N has >= X hp"
+ * "N has COND X hp" (COND any of ">=", ">", "<=", "<", "==")
* "Damage received >= X"
* "Damage received was a critical hit"
* "Damage received was type TYPE"
@@ -108,18 +127,22 @@ CONDITIONS is a list of lists, all of which must evaluate True for effects to be
* "N has spell from school SCHOOL cast on it"
* "N is on terrain TERRAIN"
* "N is inside an object"
- * "N is in lighting LIGHTING (sunlight, dim light, darkness, magical darkness)"
+ * "N is in lighting LIGHTING" (sunlight, dim light, darkness, magical darkness)
* "N can understand >= X languages"
* "N and N share a language"
* "N has >= X heads"
* "N has X spell slots remaining"
- * "N had advantage on most recent die roll"
- * "N had disadvantage on most recent die roll"
- * "N used a weapon on most recent attack"
+ * "N had advantage"
+ * "N had disadvantage"
+ * "N used a weapon"
* "N is surprised"
* "N is bound by N"
* "N is aware of N"
* "N and N are in the same web"
+ * "N == N"
+ * "N is in AOE" where AOE is denoted in any of the following:
+ * "line LENGTH WIDTH"
+ * "cone LENGTH"
### EFFECTS
@@ -127,33 +150,42 @@ EFFECTS is a list of dictionaries containing the following:
* "target": NOUN
* "effect": [EFFECT, variables]
+ * "effect conditions": [[ CONDITION, variables ]]
* "duration": DURATION
Where EFFECT is any of the following (UNDER CONSTRUCTION DENOTED BY x):
* Terrain in X ft radius is difficult
* Set movement speed to X
+ * Move up to X ft toward N
x * Increase movement speed by X
x * Increase jump distance by X
x * Increase jump height by X
* Acquire condition CONDITION
x * End condition CONDITION
-x * Acquire/override property PROPERTY
+ * Set property PROPERTY to X
x * Death
x * Surprised
x * Pushed X feet in DIRECTION direction
x * Immune to feature FEATURE
x * Immune to spells with trait SPELL\_TRAIT
-x * Disadvantage on rolls ROLL\_CLASS
+ * Impose disadvantage
+ * "Impose disadvantage on TYPE" (any of "attack rolls", "ability checks", "saving throws")
+ * Grant advantage
+ * Grant critical hit
x * Advantage on rolls ROLL\_CLASS
x * Automatic fail on rolls ROLL\_CLASS
x * Automatic succeed on rolls ROLL\_CLASS
-x * Automatic critical hit
x * Move X distance
x * Deal X damage
+ * Inflict XdX TYPE damage
+ * Inflict XdX TYPE damage, dc X ABILITY save halves
+ * Deal +X weapon die damage
+ * Damage dealt is magical
+ * Take action ACTION
x * Disable other feature
x * Know distance/direction to creature/object within X distance
-x * Reduce incoming damage by X
+ * Reduce incoming damage by X
* Regain X hp
x * Weapon/armor corrodes
x * Ignite flammable objects
@@ -171,13 +203,15 @@ x * Learns creature's desires
x * Spell storing
x * Creates X diameter tunnel
+The conditions on an effect may be omitted if not applicable, and are the same as conditions for a trigger.
+
The duration of an effect may be omitted for instantaneous effects and is any of the following:
* "End of turn"
* "Start of next turn"
* "End of next turn"
- * Until action is taken to end
-x * TIME???
+ * "Until action is taken to end"
+ * TIME (formatted "X units", where units is any of sec, min, hr, day, month, year)
x * Repeated saves???
x * Repeated saves at advantage/disadvantage with condition???
x * Until certain spell is cast???
@@ -188,4 +222,4 @@ x * Until other effect expires???
The recharge of a feature may be omitted to indicate that it is unlimited. Otherwise, it is a list of the following two items:
* Integer indicating number of times the feature can be used
- * Any of "turn", "long rest", "short rest" indicating when spent uses are restored
+ * Any of "turn", "long rest", "short rest", "X-Y" (for integers X and Y) indicating when spent uses are restored