aboutsummaryrefslogtreecommitdiff
path: root/features/readme.md
blob: 6c90a317d42ce439a60ae8186a22efac047bc988 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# Features Format

Many features are complex. Here we lay out the format used when writing a feature.

## Variables

Many features are very similar between creatures except for certain variables. The feature reads, as parameters, NAME as the creature's name, and V1, V2, ... VN for each numeric variable that is a parameter to the feature.

## Subfeatures

Each feature consists of a list of "subfeatures", which are treated as independent features in the game, but are grouped together for clear organization.

Each subfeature is a dictionary with the following elements:

 * "name": NAME
 * "text": TEXT
 * "nouns": NOUNS
 * "trigger": TRIGGER
 * "conditions": CONDITIONS
 * "effects": EFFECTS
 * "duration": DURATION
 * "recharge": RECHARGE

We detail the values below.

### NAME

This is the name of the feature

### TEXT

This is explanatory text. It accepts embedded variables in the form {VARNAME}. For example, the text "The {NAME}'s weapon attacks are magical. When the {NAME} hits with any weapon, the weapon deals an extra {V1}d{V2} radiant damage.", when applied with (deva, 4, 8), we get:

"The deva's weapon attacks are magical. When the deva hits with any weapon, the weapon deals an extra 4d8 radiant damage."

### NOUNS

The nouns involved are any entities this feature affects. NOUNS is a list containing any of:

 * "self"
 * "creature"
 * "object"
 * "structure"
 * "target"
 * "point in space"
 * NAME

Where NAME is interpreted by the game as a specific creature or object. These are N1, N2, etc. for all N in the array. Index starts at 1.

### TRIGGER

TRIGGER is any of the following:

 * "passive"
 * "action"
 * "bonus action"
 * "free action"
 * "{} start of turn"
 * "N takes damage"
 * "N moves"
 * "N makes check against N"
 * "N forces N to save"
 * "N rolls a d20"
 * "N targets N by a spell"
 * "N attacks N"
 * "N hits N"
 * "N touches N"