-
Notifications
You must be signed in to change notification settings - Fork 0
/
Documentation - Effects.json
178 lines (178 loc) · 9.76 KB
/
Documentation - Effects.json
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
{
"Class":"String Containing Class of Effect",
"DisplayClass":"String Containing Class of Effect as related to border color",
"ColorSubtype":"Optional extra info for choosing border color. For spells (main use), object with keys 'Source' and 'Level' for level of spell and source of magic (arcane, primal, divine, etc.)",
"DisplayName":"",
"Name":"",
"FalseName":"",
"Type":"String Containing overall type of effect",
"ParentToken":"Token causing the effect. Blank if done by 'the world'",
"ID":"Unique ID for effect",
"Targets":"Array of token IDs of all targets, or objects containing holder's tokenID and ItemID for items",
"RemainingTargets":"Same as above, with targets who have had the execution of the effect completed removed.",
"ToResolve":{
"(Not a key)":"Object containing the bulk of the information requiring adjustment of target tokens. Keys Attack, Damage, ConditionInfo, ConditionModificationInfo, CheckDC, SaveDC, Movement all contain data for their respective effects.",
"Attack":{
"d20Rolls":"Array of all d20s rolled for the final ToHit of the attack.",
"FinalRoll":"Number containing final d20 roll after accounting for adv/dis/etc.",
"Advantage":"Number containing number of sources of advantage. May need to be expanded into detailed object containing data about source of each point of advantage for easier nullification of advantage later.",
"Disadvantage":"Same as above for Disadvantage.",
"AdvantageMessageArray":"Array of strings containing mouseover text showing adv/dis sources",
"AdvantageBalance":"Number showing final outcome of adv/dis: -1 = dis; 0 = neutral; 1 = adv",
"PrimeStat":"String of Name of primary stat for feature",
"TotalBonus":"Number of total ToHit bonus",
"Value":"Number, final total ToHit value",
"RollString":"String for displaying all rolls involved",
"Formula":"String for displaying rules behind rolls",
"FormulaPrefix":"I actually have no idea why I set it up this way. TODO: Figure out why.",
"CritRange":"Number; Minimum d20 roll to trigger a crit",
"AutoCrit":"Bool; Does attack AutoCrit",
"AutoCritFail":"Bool; does attack auto fail",
"CritTest":"Bool; did attack crit",
"CritFailTest":"Bool; did attack crit fail",
"AdditionalAttackResolution":"Array of tokenIDs which need to resolve some sort of on hit/miss effect before the attack finishes"
},
"Damage":[{
"(Not a Key)":"Array of objects, each their own instance of damage.",
"IsSpell":"Bool; yes/no is source of damage a spell",
"IsWeapon":"Bool; yes/no is source a weapon",
"IsAttack":"Bool; yes/no is source from an attack (possibly redundant with presence of Attack key)",
"ScalingBase":"Number level of scaling for any AHL effects",
"PrimeStat":"String of Name of primary stat for damage",
"Array":"Array of numbers; all rolled damage dice",
"Dice":"Array of numbers; die sizes corresponding to each roll in the 'Array' key",
"Total":"Number; final damage total",
"String":"String; representation of damage rolls for output",
"MaxTotal":"Number; max possible damage (max rolls + flat damage)",
"Bonus":"Number; flat bonus to damage",
"BonusString":"String; representation of all flat damage bonuses before totaled",
"Formula":"String for displaying rules behind rolls and flat bonuses",
"CritFormula":"String; Same as above with added crit dice",
"CritDice":"Array of numbers; Same as 'Dice' key but with dice rolled on crit",
"CritArray":"Array of numbers; Same as 'Array' key but with dice rolled on crit",
"CritString":"String; same as 'String' key with dice on crit",
"CritTotal":"Number; Total damage on crit",
"CritMaxTotal":"Number; Max damage on crit",
"DamageType":"String; Damage type of this instance",
"Modifier":"Number multiplier for total damage, before res/vuln/etc.",
"NoModification":"Bool; True to prevent modification/reduction by any means (e.g. resistances, damage reduction)"
}],
"ConditionInfo":[{
"(Not a Key)":"Array of objects, each contains conditions grouped by their EndInfo (duration, triggers to end, etc.) and Aura info.",
"Conditions":[{
"(Not a Key)":"Array of objects, each object is a condition to be applied."
}],
"EndInfo":{
"EndTriggers":{
"(Not a Key)":"Keys in this object correspond to instances that may end the condition. Value of key changes depending on method of ending condition.",
"EndInstance - Bool":"Bool; yes/no does condition end when triggering instance happens. If yes, ends without further resolution",
"EndInstance - Object, Repeat Save":{
"SaveType":"String; Type of save required",
"DC":"Number; DC of save to end condition"
}
},
"Duration":"Number; numeric value for duration condition will last. Blank string for no duration",
"DurationUnits":"String; units for duration",
"AdvancePoint":"String; at what point the duration progresses. Options are EndofTurn, StartofTurn, EndofSetByTurn, StartofSetByTurn",
"UseSpellDuration":"Bool; replaces 'Duration' and 'DurationUnits' keys. Uses duration of spell if true."
},
"Aura":"TODO"
}],
"SaveDC":{
"DC":"Number; DC of save",
"SaveType":"String; Type of save required",
"DamageModifier":{
"DamageHalved":"Number; Effect on successful save: 0 = No reduction, 1 = Damage Halved, 2 = Damage completely nullified.",
"TypesInclusive":"String or Array; Names of damage types that can be reduced on success",
"TypesExclusive":"String or Array; Same as above but types NOT affected"
},
"ConditionsResisted":{
"Inclusive":"String or Array; Names of conditions resisted on success. Use string 'All' to resist all conditions.",
"Exclusive":"String or Array; Same as above for conditions not resisted, no 'All' option available."
}
},
"Resource":{
"ResourceName":"String; Name of resource",
"ResourceType":"String; Type of resource (e.g. Feature, SpellSlot, HitDie)",
"Used":"Number; Amount of resource used"
}
},
"WeaponData":{
"DisplayName": "String DisplayName of weapon (not including attack portion)",
"Name": "String Name of weapon (not including attack portion)",
"FalseName": "String FalseName of weapon (not including attack portion)",
"Type": "String type of item",
"WeaponType": "String type of weapon",
"WeaponClass": "String class of weapon (e.g. Simple, Martial, Improvised, etc.)",
"Hand": "Number; Hand in which weapon is held (index of hands array; -1 means natural weapon not held)",
"WeaponMeleeRanged": "String Melee/Ranged - inherent type of weapon, not the type of attack made (e.g. always Melee for a dagger, even if it is thrown)",
"ThrowWeapon": "Bool; If weapon is being thrown",
"MeleeRangedAttack": "String; Melee/Ranged - if attack itself is melee vs. ranged (e.g. thrown dagger = ranged)",
"Reach": "Number; value for reach in feet (melee)",
"Range": "Number; value for Range in feet (ranged)",
"LongRange": "Number; value for Long Range in feet (ranged with Disadvantage)",
"TwoWeaponFighting": "Bool; If Two-Weapon Fighting rules are being used",
"WeaponProperties": [
"Array of Strings; Name of properties on weapon (e.g. Finesse)"
],
"WeaponDamage": [
{
"(Not a Key)":"Array of objects, each their own instance of base weapon damage.",
"DamageType": "String; Damage type of this instance",
"DamageDieNumber": "Number; Base number of dice rolled",
"DamageDieSize": "Number; Base size of dice rolled",
"DamageFlatBonus": "Number; Base flat bonus to damage",
"IsModBonus": "Bool; if PrimeStat is added to damage"
}
],
"PrimeStat": "String of Name of primary stat for damage modifier",
"MagicBonus": "Number; value for bonus to attack roll and damage roll",
"CritThresh": "Number; Number over which a critical hit occurs",
"WeaponCritDiceMethod": "String; Add/Multiply - how to apply the number in the 'WeaponCritDice' key",
"WeaponCritDice": "Number; Additional dice to add/multiply on crit (based on above key)",
"Size": "String; Size of item",
"Rarity": "String; Rarity of item",
"Cost": "Number; Value for cost of item",
"CostUnits": "String; Type of currency 'Cost' key uses",
"Weight": "Number; Weight of item in pounds",
"isWearable": "Bool; If item can be worn outside of being held/donned (armor)",
"Coating": "String; Name of material coating the item",
"Integrity": "String; Resilient/Fragile",
"StateOfMatter": "String; Solid/Liquid/Gas/Plasma",
"Library": "String; Abbreviation of library containing item info",
"WeaponTags": [
"Array of Strings; Name of tags for weapon (no direct mechanical correlate to actual rules, but for marking things as Polearms, etc.)"
],
"isMagical": "Bool; If weapon is magical",
"Materials": [
"Array of Strings; Name of materials that make up weapon"
],
"MainMaterial": "Strings; Name of materials that makes up majority of weapon",
"isFlammable": "Bool; If weapon is flammable",
"isMagnetic": "Bool; If weapon is magnetic",
"isStackable": "Bool; If weapon stacks in inventory",
"isConsumable": "Bool; If weapon is consumed when used",
"ObjectTags": [
"Array of Strings; Name of tags for weapon (but more general tags that could apply to any object, weapon-specific above)"
],
"ObjectID": "String; Unique ID associated with Object",
"DonTime": {
"Value": "Number; Value for time to equip weapon",
"Units": "String; Units for time to equip weapon"
},
"DoffTime": {
"Value": "Number; Value for time to stow weapon",
"Units": "String; Units for time to stow weapon"
},
"DropTime": {
"Value": "Number; Value for time to drop weapon",
"Units": "String; Units for time to drop weapon"
},
"IsActive": "Bool; If weapon effects are active",
"ItemID": "String; Unique identifier of item (NOT shared among other objects that are the same)",
"Number": "Number; Number of items in stack",
"Location": {
"Token": "6E3DA1C530CC42A8AD0D9900FB187089"
}
}
}