@opencharacter/orc-2e 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +69 -12
- package/content/classes/alchemist/fields/bomber.yaml +1 -1
- package/content/classes/alchemist/fields/chirurgeon.yaml +1 -1
- package/content/classes/alchemist/fields/mutagenist.yaml +1 -1
- package/content/classes/alchemist/fields/toxicologist.yaml +1 -1
- package/content/classes/alchemist.yaml +2 -34
- package/content/classes/barbarian/animals/ape.yaml +1 -1
- package/content/classes/barbarian/animals/bear.yaml +1 -1
- package/content/classes/barbarian/animals/bull.yaml +1 -1
- package/content/classes/barbarian/animals/cat.yaml +1 -1
- package/content/classes/barbarian/animals/deer.yaml +1 -1
- package/content/classes/barbarian/animals/frog.yaml +1 -1
- package/content/classes/barbarian/animals/shark.yaml +1 -1
- package/content/classes/barbarian/animals/snake.yaml +1 -1
- package/content/classes/barbarian/animals/wolf.yaml +1 -1
- package/content/classes/barbarian/instincts/animal.yaml +2 -14
- package/content/classes/barbarian/instincts/dragon.yaml +1 -2
- package/content/classes/barbarian/instincts/fury.yaml +1 -1
- package/content/classes/barbarian/instincts/giant.yaml +1 -1
- package/content/classes/barbarian/instincts/spirit.yaml +1 -2
- package/content/classes/barbarian/instincts/superstition.yaml +1 -1
- package/content/classes/barbarian/raging.yaml +3 -1
- package/content/classes/barbarian.yaml +2 -36
- package/content/classes/bard/muses/enigma.yaml +1 -1
- package/content/classes/bard/muses/maestro.yaml +1 -1
- package/content/classes/bard/muses/polymath.yaml +1 -1
- package/content/classes/bard/muses/warrior.yaml +1 -1
- package/content/classes/bard.yaml +2 -34
- package/content/classes/champion/causes/desecration.yaml +1 -1
- package/content/classes/champion/causes/grandeur.yaml +1 -1
- package/content/classes/champion/causes/iniquity.yaml +1 -1
- package/content/classes/champion/causes/justice.yaml +1 -1
- package/content/classes/champion/causes/liberation.yaml +1 -1
- package/content/classes/champion/causes/obedience.yaml +1 -1
- package/content/classes/champion/causes/redemption.yaml +1 -1
- package/content/classes/champion.yaml +2 -37
- package/content/classes/cleric/doctrines/cloistered-cleric.yaml +1 -1
- package/content/classes/cleric/doctrines/warpriest.yaml +1 -1
- package/content/classes/cleric.yaml +2 -28
- package/content/classes/druid/orders/animal.yaml +1 -1
- package/content/classes/druid/orders/leaf.yaml +1 -1
- package/content/classes/druid/orders/storm.yaml +1 -1
- package/content/classes/druid/orders/untamed.yaml +1 -1
- package/content/classes/druid.yaml +2 -34
- package/content/classes/fighter.yaml +1 -26
- package/content/classes/investigator.yaml +1 -26
- package/content/classes/monk.yaml +1 -26
- package/content/classes/oracle/mysteries/ancestors.yaml +3 -1
- package/content/classes/oracle/mysteries/battle.yaml +5 -1
- package/content/classes/oracle/mysteries/bones.yaml +3 -1
- package/content/classes/oracle/mysteries/cosmos.yaml +3 -1
- package/content/classes/oracle/mysteries/flames.yaml +3 -1
- package/content/classes/oracle/mysteries/life.yaml +4 -1
- package/content/classes/oracle/mysteries/lore.yaml +5 -1
- package/content/classes/oracle/mysteries/tempest.yaml +3 -1
- package/content/classes/oracle.yaml +2 -38
- package/content/classes/ranger/edges/flurry.yaml +1 -1
- package/content/classes/ranger/edges/outwit.yaml +1 -1
- package/content/classes/ranger/edges/precision.yaml +1 -1
- package/content/classes/ranger.yaml +2 -29
- package/content/classes/rogue/rackets/mastermind.yaml +1 -1
- package/content/classes/rogue/rackets/ruffian.yaml +1 -1
- package/content/classes/rogue/rackets/scoundrel.yaml +1 -1
- package/content/classes/rogue/rackets/thief.yaml +1 -1
- package/content/classes/rogue.yaml +2 -34
- package/content/classes/sorcerer/bloodlines/aberrant.yaml +1 -1
- package/content/classes/sorcerer/bloodlines/angelic.yaml +1 -1
- package/content/classes/sorcerer/bloodlines/demonic.yaml +1 -1
- package/content/classes/sorcerer/bloodlines/diabolic.yaml +1 -1
- package/content/classes/sorcerer/bloodlines/draconic.yaml +1 -1
- package/content/classes/sorcerer/bloodlines/elemental.yaml +1 -1
- package/content/classes/sorcerer/bloodlines/fey.yaml +1 -1
- package/content/classes/sorcerer/bloodlines/hag.yaml +1 -1
- package/content/classes/sorcerer/bloodlines/imperial.yaml +1 -1
- package/content/classes/sorcerer/bloodlines/undead.yaml +1 -1
- package/content/classes/sorcerer.yaml +2 -40
- package/content/classes/swashbuckler.yaml +1 -26
- package/content/classes/witch/patrons/faiths-flamekeeper.yaml +1 -1
- package/content/classes/witch/patrons/inscribed-one.yaml +1 -1
- package/content/classes/witch/patrons/resentment.yaml +1 -1
- package/content/classes/witch/patrons/silence-in-snow.yaml +1 -1
- package/content/classes/witch/patrons/spinner-of-threads.yaml +1 -1
- package/content/classes/witch/patrons/starless-shadow.yaml +1 -1
- package/content/classes/witch/patrons/wilding-steward.yaml +1 -1
- package/content/classes/witch.yaml +2 -37
- package/content/classes/wizard/schools/ars-grammatica.yaml +1 -1
- package/content/classes/wizard/schools/battle-magic.yaml +1 -1
- package/content/classes/wizard/schools/boundary.yaml +1 -1
- package/content/classes/wizard/schools/civic-wizardry.yaml +1 -1
- package/content/classes/wizard/schools/mentalism.yaml +1 -1
- package/content/classes/wizard/schools/protean-form.yaml +1 -1
- package/content/classes/wizard/schools/unified-magical-theory.yaml +1 -1
- package/content/classes/wizard/theses/experimental-spellshaping.yaml +1 -1
- package/content/classes/wizard/theses/improved-familiar-attunement.yaml +1 -1
- package/content/classes/wizard/theses/spell-blending.yaml +1 -1
- package/content/classes/wizard/theses/spell-substitution.yaml +1 -1
- package/content/classes/wizard/theses/staff-nexus.yaml +1 -1
- package/content/classes/wizard.yaml +3 -46
- package/content/domains/advanced/air.yaml +7 -0
- package/content/domains/advanced/ambition.yaml +7 -0
- package/content/domains/advanced/cities.yaml +7 -0
- package/content/domains/advanced/confidence.yaml +7 -0
- package/content/domains/advanced/creation.yaml +7 -0
- package/content/domains/advanced/darkness.yaml +7 -0
- package/content/domains/advanced/death.yaml +7 -0
- package/content/domains/advanced/destruction.yaml +7 -0
- package/content/domains/advanced/dreams.yaml +7 -0
- package/content/domains/advanced/earth.yaml +7 -0
- package/content/domains/advanced/family.yaml +7 -0
- package/content/domains/advanced/fate.yaml +7 -0
- package/content/domains/advanced/fire.yaml +7 -0
- package/content/domains/advanced/freedom.yaml +7 -0
- package/content/domains/advanced/healing.yaml +7 -0
- package/content/domains/advanced/indulgence.yaml +7 -0
- package/content/domains/advanced/knowledge.yaml +7 -0
- package/content/domains/advanced/luck.yaml +7 -0
- package/content/domains/advanced/magic.yaml +7 -0
- package/content/domains/advanced/might.yaml +7 -0
- package/content/domains/advanced/moon.yaml +7 -0
- package/content/domains/advanced/nature.yaml +7 -0
- package/content/domains/advanced/nightmares.yaml +7 -0
- package/content/domains/advanced/pain.yaml +7 -0
- package/content/domains/advanced/passion.yaml +7 -0
- package/content/domains/advanced/perfection.yaml +7 -0
- package/content/domains/advanced/protection.yaml +7 -0
- package/content/domains/advanced/secrecy.yaml +7 -0
- package/content/domains/advanced/sun.yaml +7 -0
- package/content/domains/advanced/travel.yaml +7 -0
- package/content/domains/advanced/trickery.yaml +7 -0
- package/content/domains/advanced/truth.yaml +7 -0
- package/content/domains/advanced/tyranny.yaml +7 -0
- package/content/domains/advanced/undeath.yaml +7 -0
- package/content/domains/advanced/water.yaml +7 -0
- package/content/domains/advanced/wealth.yaml +7 -0
- package/content/domains/advanced/zeal.yaml +7 -0
- package/content/domains/air.yaml +6 -0
- package/content/domains/ambition.yaml +6 -0
- package/content/domains/cities.yaml +6 -0
- package/content/domains/confidence.yaml +6 -0
- package/content/domains/creation.yaml +6 -0
- package/content/domains/darkness.yaml +6 -0
- package/content/domains/death.yaml +6 -0
- package/content/domains/destruction.yaml +6 -0
- package/content/domains/dreams.yaml +6 -0
- package/content/domains/earth.yaml +6 -0
- package/content/domains/family.yaml +6 -0
- package/content/domains/fate.yaml +6 -0
- package/content/domains/fire.yaml +6 -0
- package/content/domains/freedom.yaml +6 -0
- package/content/domains/healing.yaml +6 -0
- package/content/domains/indulgence.yaml +6 -0
- package/content/domains/knowledge.yaml +6 -0
- package/content/domains/luck.yaml +6 -0
- package/content/domains/magic.yaml +6 -0
- package/content/domains/might.yaml +6 -0
- package/content/domains/moon.yaml +6 -0
- package/content/domains/nature.yaml +6 -0
- package/content/domains/nightmares.yaml +6 -0
- package/content/domains/pain.yaml +6 -0
- package/content/domains/passion.yaml +6 -0
- package/content/domains/perfection.yaml +6 -0
- package/content/domains/protection.yaml +6 -0
- package/content/domains/secrecy.yaml +6 -0
- package/content/domains/sun.yaml +6 -0
- package/content/domains/travel.yaml +6 -0
- package/content/domains/trickery.yaml +6 -0
- package/content/domains/truth.yaml +6 -0
- package/content/domains/tyranny.yaml +6 -0
- package/content/domains/undeath.yaml +6 -0
- package/content/domains/water.yaml +6 -0
- package/content/domains/wealth.yaml +6 -0
- package/content/domains/zeal.yaml +6 -0
- package/content/effects/treated-disease.yaml +4 -0
- package/content/effects/treated-poison.yaml +4 -0
- package/content/feats/ancestry/gnome-obsession.yaml +1 -39
- package/content/feats/ancestry/tengu-feather-fan.yaml +3 -3
- package/content/feats/archetype/barbarian/barbarian-dedication.yaml +0 -2
- package/content/feats/archetype/champion/champions-reaction.yaml +1 -11
- package/content/feats/archetype/investigator/skill-mastery.yaml +2 -58
- package/content/feats/archetype/rogue/skill-mastery.yaml +2 -58
- package/content/feats/champion/deitys-domain.yaml +1 -22
- package/content/feats/cleric/advanced-domain.yaml +1 -187
- package/content/feats/cleric/domain-initiate.yaml +1 -199
- package/content/feats/oracle/domain-acumen.yaml +4 -138
- package/content/feats/skill/skill-training.yaml +1 -55
- package/content/feats/sorcerer/arcane-evolution.yaml +1 -26
- package/content/feats/sorcerer/occult-evolution.yaml +1 -26
- package/content/gear/compass-lensatic.yaml +1 -0
- package/content/gear/compass.yaml +1 -0
- package/content/gear/crowbar-levered.yaml +1 -0
- package/content/gear/crowbar.yaml +1 -0
- package/content/shields/specific/reflecting-shield.yaml +1 -1
- package/content/shields/specific/spellguard-shield.yaml +1 -0
- package/content/spells/agile-feet.yaml +1 -0
- package/content/spells/appearance-of-wealth.yaml +1 -0
- package/content/spells/athletic-rush.yaml +1 -0
- package/content/spells/bit-of-luck.yaml +1 -0
- package/content/spells/charming-touch.yaml +1 -0
- package/content/spells/cloak-of-shadow.yaml +1 -0
- package/content/spells/creative-splash.yaml +1 -0
- package/content/spells/cry-of-destruction.yaml +1 -0
- package/content/spells/dazzling-flash.yaml +1 -0
- package/content/spells/deaths-call.yaml +1 -0
- package/content/spells/face-in-the-crowd.yaml +1 -0
- package/content/spells/fire-ray.yaml +1 -0
- package/content/spells/guidance.yaml +2 -0
- package/content/spells/healers-blessing.yaml +1 -0
- package/content/spells/hurtling-stone.yaml +1 -0
- package/content/spells/ignite-ambition.yaml +1 -0
- package/content/spells/magics-vessel.yaml +1 -0
- package/content/spells/moonbeam.yaml +1 -0
- package/content/spells/overstuff.yaml +1 -0
- package/content/spells/perfected-mind.yaml +1 -0
- package/content/spells/protectors-sacrifice.yaml +1 -0
- package/content/spells/pushing-gust.yaml +1 -0
- package/content/spells/read-fate.yaml +1 -0
- package/content/spells/savor-the-sting.yaml +1 -0
- package/content/spells/scholarly-recollection.yaml +1 -0
- package/content/spells/soothing-words.yaml +1 -0
- package/content/spells/sudden-shift.yaml +1 -0
- package/content/spells/sure-strike.yaml +2 -0
- package/content/spells/sweet-dream.yaml +1 -0
- package/content/spells/tidal-surge.yaml +1 -0
- package/content/spells/touch-of-obedience.yaml +1 -0
- package/content/spells/touch-of-undeath.yaml +1 -0
- package/content/spells/true-target.yaml +2 -0
- package/content/spells/unimpeded-stride.yaml +1 -0
- package/content/spells/veil-of-confidence.yaml +1 -0
- package/content/spells/vibrant-thorns.yaml +1 -0
- package/content/spells/waking-nightmare.yaml +1 -0
- package/content/spells/weapon-surge.yaml +3 -0
- package/content/spells/whispering-quiet.yaml +1 -0
- package/content/spells/word-of-truth.yaml +1 -0
- package/dist/i18n/en.js +1 -1
- package/dist/i18n/en.json +196 -207
- package/dist/index.js +1 -1
- package/dist/release.json +7103 -3825
- package/i18n/en/ancestry-dragonblood.yaml +2 -2
- package/i18n/en/archetypes.yaml +6 -6
- package/i18n/en/backgrounds.yaml +6 -3
- package/i18n/en/battle-forms.yaml +0 -1
- package/i18n/en/champion.yaml +1 -1
- package/i18n/en/cleric.yaml +151 -149
- package/i18n/en/equipment.yaml +4 -1
- package/i18n/en/oracle.yaml +0 -38
- package/i18n/en/rogue.yaml +3 -3
- package/i18n/en/spellcasting.yaml +2 -2
- package/i18n/en/type-fields.yaml +2 -0
- package/i18n/en.yaml +19 -1
- package/pack.yaml +2 -2
- package/package.json +2 -2
- package/rules/advancement.yaml +1 -0
- package/rules/afflictions.yaml +2 -0
- package/rules/alchemist.yaml +14 -3
- package/rules/ancestry-feats.yaml +55 -13
- package/rules/archetypes.yaml +1 -0
- package/rules/barbarian.yaml +8 -21
- package/rules/bard.yaml +10 -4
- package/rules/building.yaml +7 -1
- package/rules/champion.yaml +3 -2
- package/rules/checks.yaml +1 -1
- package/rules/cleric.yaml +13 -3
- package/rules/conditions.yaml +1 -0
- package/rules/core.yaml +1 -0
- package/rules/creation.yaml +18 -0
- package/rules/druid.yaml +3 -2
- package/rules/equipment.yaml +7 -1
- package/rules/heritages.yaml +1 -1
- package/rules/investigator.yaml +3 -11
- package/rules/layout.yaml +19 -6
- package/rules/lores-pc2.yaml +176 -38
- package/rules/lores.yaml +226 -50
- package/rules/monk.yaml +2 -5
- package/rules/oracle.yaml +5 -3
- package/rules/ranger.yaml +3 -3
- package/rules/rogue.yaml +6 -1
- package/rules/skill-actions-athletics.yaml +1 -2
- package/rules/skill-actions-stealth.yaml +1 -2
- package/rules/skills.yaml +173 -56
- package/rules/sorcerer.yaml +16 -4
- package/rules/spellcasting.yaml +94 -24
- package/rules/spells-high.yaml +3 -3
- package/rules/strikes.yaml +3 -1
- package/rules/swashbuckler.yaml +4 -17
- package/rules/tags.yaml +6 -0
- package/rules/witch.yaml +2 -1
- package/rules/wizard.yaml +5 -3
- package/upgrades/0.2.0-to-0.3.0.yaml +657 -0
package/rules/monk.yaml
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
fields:
|
|
2
2
|
stance.current:
|
|
3
|
+
open: true
|
|
3
4
|
type: enum
|
|
4
5
|
values: [none, cobra, crane, dragon, mountain, tiger, wolf, clinging-shadows, wild-winds]
|
|
5
6
|
formula: "'none'"
|
|
@@ -65,9 +66,5 @@ tags:
|
|
|
65
66
|
display:
|
|
66
67
|
fields:
|
|
67
68
|
stance.current:
|
|
68
|
-
{
|
|
69
|
-
groups: [turn],
|
|
70
|
-
priority: 1,
|
|
71
|
-
showWhen: "stance.current != 'none' || countCopies(copy.item == @classes.monk) > 0",
|
|
72
|
-
}
|
|
69
|
+
{ groups: [turn], priority: 1, showWhen: "stance.current != 'none' || class.has.monk" }
|
|
73
70
|
monk.paths: { hidden: true }
|
package/rules/oracle.yaml
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
fields:
|
|
2
2
|
oracle.mystery:
|
|
3
|
+
open: true
|
|
3
4
|
type: enum
|
|
4
5
|
values: [none, ancestors, battle, bones, cosmos, flames, life, lore, tempest]
|
|
5
6
|
formula: "'none'"
|
|
6
7
|
oracle.cursebound: { type: integer, input: true, default: 0, min: 0, max: oracle.curseMax }
|
|
7
8
|
oracle.curseMax: { type: integer, formula: 'level >= 17 ? 4 : level >= 11 ? 3 : 2' }
|
|
8
9
|
oracle.granted: { type: set, of: spell }
|
|
10
|
+
oracle.domains: { type: set, of: domain }
|
|
9
11
|
oracle.revelations: { type: set, of: spell }
|
|
10
12
|
oracle.grantedFeats: { type: set, of: feat }
|
|
11
13
|
|
|
@@ -19,8 +21,7 @@ situational:
|
|
|
19
21
|
rolls: [save]
|
|
20
22
|
available: >-
|
|
21
23
|
oracle.mystery == 'battle' || countCopies(copy.type == 'shield' && copy.equipped
|
|
22
|
-
&&
|
|
23
|
-
@shields.specific.reflecting-shield]) > 0
|
|
24
|
+
&& 'shield.against-spells' in copy.tags) > 0
|
|
24
25
|
- id: divineAegis
|
|
25
26
|
type: enum
|
|
26
27
|
values: [none, nondivine, divine]
|
|
@@ -41,7 +42,7 @@ situational:
|
|
|
41
42
|
|
|
42
43
|
display:
|
|
43
44
|
fields:
|
|
44
|
-
oracle.mystery: { groups: [summary], priority: 2 }
|
|
45
|
+
oracle.mystery: { groups: [summary], priority: 2, showWhen: class.has.oracle }
|
|
45
46
|
oracle.cursebound:
|
|
46
47
|
groups: [spellcasting]
|
|
47
48
|
priority: 0
|
|
@@ -49,5 +50,6 @@ display:
|
|
|
49
50
|
with: [{ field: oracle.curseMax, as: max }]
|
|
50
51
|
oracle.curseMax: { groups: [spellcasting], priority: 2, showWhen: "oracle.mystery != 'none'" }
|
|
51
52
|
oracle.granted: { hidden: true }
|
|
53
|
+
oracle.domains: { hidden: true }
|
|
52
54
|
oracle.revelations: { hidden: true }
|
|
53
55
|
oracle.grantedFeats: { hidden: true }
|
package/rules/ranger.yaml
CHANGED
|
@@ -2,7 +2,8 @@ fields:
|
|
|
2
2
|
# A Strike's roll effects compare it with the target's ID; checks, which have no target, use
|
|
3
3
|
# `huntedPrey`.
|
|
4
4
|
prey.target: { type: string, input: true, default: '' }
|
|
5
|
-
ranger.edge:
|
|
5
|
+
ranger.edge:
|
|
6
|
+
{ type: enum, values: [none, flurry, outwit, precision], formula: "'none'", open: true }
|
|
6
7
|
twinParry.active: { type: boolean, input: true, default: false }
|
|
7
8
|
prey.hits: { type: integer, input: true, default: 0, min: 0 }
|
|
8
9
|
|
|
@@ -59,8 +60,7 @@ tags:
|
|
|
59
60
|
|
|
60
61
|
display:
|
|
61
62
|
fields:
|
|
62
|
-
prey.target:
|
|
63
|
-
{ groups: [turn], priority: 1, showWhen: 'countCopies(copy.item == @classes.ranger) > 0' }
|
|
63
|
+
prey.target: { groups: [turn], priority: 1, showWhen: class.has.ranger }
|
|
64
64
|
twinParry.active:
|
|
65
65
|
{
|
|
66
66
|
groups: [defenses],
|
package/rules/rogue.yaml
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
fields:
|
|
2
2
|
rogue.racket:
|
|
3
|
-
{
|
|
3
|
+
{
|
|
4
|
+
type: enum,
|
|
5
|
+
values: [none, mastermind, ruffian, scoundrel, thief],
|
|
6
|
+
formula: "'none'",
|
|
7
|
+
open: true,
|
|
8
|
+
}
|
|
4
9
|
sneakAttack.dice: { type: integer, formula: 0, min: 0 }
|
|
5
10
|
nimbleDodge.active: { type: boolean, input: true, default: false }
|
|
6
11
|
|
|
@@ -273,8 +273,7 @@ actions:
|
|
|
273
273
|
flags:
|
|
274
274
|
map: '5 * min(2, has(params.attack) ? params.attack - 1 : turn.attacks)'
|
|
275
275
|
crowbar: >-
|
|
276
|
-
countCopies(copy.
|
|
277
|
-
|| copy.item == @gear.crowbar-levered) > 0
|
|
276
|
+
countCopies('tool.crowbar' in copy.tags) > 0
|
|
278
277
|
- id: check
|
|
279
278
|
kind: action
|
|
280
279
|
use: check
|
package/rules/skills.yaml
CHANGED
|
@@ -4,6 +4,34 @@
|
|
|
4
4
|
# highest rank less the training, 0 while untrained; an untrained skill's increases input carries
|
|
5
5
|
# the computed tag `untrained`, so level-up leaves it out.
|
|
6
6
|
fields:
|
|
7
|
+
# What a choice of any skill offers (class trainings, Skill Training) and of any Lore (Gnome
|
|
8
|
+
# Obsession): an add-on's Lore grants its tag into both.
|
|
9
|
+
skills.offered:
|
|
10
|
+
type: set
|
|
11
|
+
of: tag
|
|
12
|
+
members: { under: [skill], except: [skill.lore] }
|
|
13
|
+
formula: >-
|
|
14
|
+
['skill.acrobatics', 'skill.arcana', 'skill.athletics', 'skill.crafting',
|
|
15
|
+
'skill.deception', 'skill.diplomacy', 'skill.intimidation', 'skill.medicine',
|
|
16
|
+
'skill.nature', 'skill.occultism', 'skill.performance', 'skill.religion',
|
|
17
|
+
'skill.society', 'skill.stealth', 'skill.survival', 'skill.thievery',
|
|
18
|
+
'skill.lore.academia', 'skill.lore.circus', 'skill.lore.farming', 'skill.lore.legal',
|
|
19
|
+
'skill.lore.scribing', 'skill.lore.underworld', 'skill.lore.warfare']
|
|
20
|
+
skills.lores:
|
|
21
|
+
type: set
|
|
22
|
+
of: tag
|
|
23
|
+
members: { under: [skill.lore] }
|
|
24
|
+
formula: >-
|
|
25
|
+
['skill.lore.academia', 'skill.lore.circus', 'skill.lore.farming', 'skill.lore.legal',
|
|
26
|
+
'skill.lore.scribing', 'skill.lore.underworld', 'skill.lore.warfare',
|
|
27
|
+
'skill.lore.alcohol', 'skill.lore.art', 'skill.lore.cooking', 'skill.lore.engineering',
|
|
28
|
+
'skill.lore.fortune-telling', 'skill.lore.games', 'skill.lore.genealogy',
|
|
29
|
+
'skill.lore.gladiatorial', 'skill.lore.guild', 'skill.lore.heraldry',
|
|
30
|
+
'skill.lore.herbalism', 'skill.lore.labor', 'skill.lore.mercantile', 'skill.lore.mining',
|
|
31
|
+
'skill.lore.sailing', 'skill.lore.tanning', 'skill.lore.theater', 'skill.lore.cave',
|
|
32
|
+
'skill.lore.desert', 'skill.lore.forest', 'skill.lore.mountain', 'skill.lore.plains',
|
|
33
|
+
'skill.lore.swamp', 'skill.lore.dwarf', 'skill.lore.elf', 'skill.lore.goblin',
|
|
34
|
+
'skill.lore.halfling', 'skill.lore.leshy', 'skill.lore.orc']
|
|
7
35
|
# A skill trained twice counts once in the set, so the difference is trainings to spend elsewhere.
|
|
8
36
|
skills.trained: { type: set, of: tag, members: { under: [skill], except: [skill.lore] } }
|
|
9
37
|
skills.trainings: { type: integer, formula: 0 }
|
|
@@ -949,32 +977,7 @@ choices:
|
|
|
949
977
|
unique: skill-training
|
|
950
978
|
pick: max(0, skills.trainings - countList(skills.trained, !(x in skills.chosen)))
|
|
951
979
|
from:
|
|
952
|
-
values:
|
|
953
|
-
[
|
|
954
|
-
skill.acrobatics,
|
|
955
|
-
skill.arcana,
|
|
956
|
-
skill.athletics,
|
|
957
|
-
skill.crafting,
|
|
958
|
-
skill.deception,
|
|
959
|
-
skill.diplomacy,
|
|
960
|
-
skill.intimidation,
|
|
961
|
-
skill.medicine,
|
|
962
|
-
skill.nature,
|
|
963
|
-
skill.occultism,
|
|
964
|
-
skill.performance,
|
|
965
|
-
skill.religion,
|
|
966
|
-
skill.society,
|
|
967
|
-
skill.stealth,
|
|
968
|
-
skill.survival,
|
|
969
|
-
skill.thievery,
|
|
970
|
-
skill.lore.academia,
|
|
971
|
-
skill.lore.circus,
|
|
972
|
-
skill.lore.farming,
|
|
973
|
-
skill.lore.legal,
|
|
974
|
-
skill.lore.scribing,
|
|
975
|
-
skill.lore.underworld,
|
|
976
|
-
skill.lore.warfare,
|
|
977
|
-
]
|
|
980
|
+
values: { formula: skills.offered }
|
|
978
981
|
where: '!(value in skills.trained) && !(value in skills.chosen) || value in choice.picks'
|
|
979
982
|
effects:
|
|
980
983
|
- { target: skills.chosen, op: grant, value: { formula: pick.value } }
|
|
@@ -1125,92 +1128,206 @@ display:
|
|
|
1125
1128
|
skills.acrobatics.rank: { format: { bands: rank } }
|
|
1126
1129
|
skills.acrobatics.granted: { hidden: true }
|
|
1127
1130
|
skills.acrobatics.mod:
|
|
1128
|
-
{
|
|
1131
|
+
{
|
|
1132
|
+
format: signed,
|
|
1133
|
+
rolls: [{ action: check, params: { check: skills.acrobatics.mod } }],
|
|
1134
|
+
with: [{ field: skills.acrobatics.rank, as: detail }],
|
|
1135
|
+
}
|
|
1129
1136
|
skills.arcana.rank: { format: { bands: rank } }
|
|
1130
1137
|
skills.arcana.granted: { hidden: true }
|
|
1131
1138
|
skills.arcana.mod:
|
|
1132
|
-
{
|
|
1139
|
+
{
|
|
1140
|
+
format: signed,
|
|
1141
|
+
rolls: [{ action: check, params: { check: skills.arcana.mod } }],
|
|
1142
|
+
with: [{ field: skills.arcana.rank, as: detail }],
|
|
1143
|
+
}
|
|
1133
1144
|
skills.athletics.rank: { format: { bands: rank } }
|
|
1134
1145
|
skills.athletics.granted: { hidden: true }
|
|
1135
1146
|
skills.athletics.mod:
|
|
1136
|
-
{
|
|
1147
|
+
{
|
|
1148
|
+
format: signed,
|
|
1149
|
+
rolls: [{ action: check, params: { check: skills.athletics.mod } }],
|
|
1150
|
+
with: [{ field: skills.athletics.rank, as: detail }],
|
|
1151
|
+
}
|
|
1137
1152
|
skills.crafting.rank: { format: { bands: rank } }
|
|
1138
1153
|
skills.crafting.granted: { hidden: true }
|
|
1139
1154
|
skills.crafting.mod:
|
|
1140
|
-
{
|
|
1155
|
+
{
|
|
1156
|
+
format: signed,
|
|
1157
|
+
rolls: [{ action: check, params: { check: skills.crafting.mod } }],
|
|
1158
|
+
with: [{ field: skills.crafting.rank, as: detail }],
|
|
1159
|
+
}
|
|
1141
1160
|
skills.deception.rank: { format: { bands: rank } }
|
|
1142
1161
|
skills.deception.granted: { hidden: true }
|
|
1143
1162
|
skills.deception.mod:
|
|
1144
|
-
{
|
|
1163
|
+
{
|
|
1164
|
+
format: signed,
|
|
1165
|
+
rolls: [{ action: check, params: { check: skills.deception.mod } }],
|
|
1166
|
+
with: [{ field: skills.deception.rank, as: detail }],
|
|
1167
|
+
}
|
|
1145
1168
|
skills.diplomacy.rank: { format: { bands: rank } }
|
|
1146
1169
|
skills.diplomacy.granted: { hidden: true }
|
|
1147
1170
|
skills.diplomacy.mod:
|
|
1148
|
-
{
|
|
1171
|
+
{
|
|
1172
|
+
format: signed,
|
|
1173
|
+
rolls: [{ action: check, params: { check: skills.diplomacy.mod } }],
|
|
1174
|
+
with: [{ field: skills.diplomacy.rank, as: detail }],
|
|
1175
|
+
}
|
|
1149
1176
|
skills.intimidation.rank: { format: { bands: rank } }
|
|
1150
1177
|
skills.intimidation.granted: { hidden: true }
|
|
1151
1178
|
skills.intimidation.mod:
|
|
1152
|
-
{
|
|
1179
|
+
{
|
|
1180
|
+
format: signed,
|
|
1181
|
+
rolls: [{ action: check, params: { check: skills.intimidation.mod } }],
|
|
1182
|
+
with: [{ field: skills.intimidation.rank, as: detail }],
|
|
1183
|
+
}
|
|
1153
1184
|
skills.medicine.rank: { format: { bands: rank } }
|
|
1154
1185
|
skills.medicine.granted: { hidden: true }
|
|
1155
1186
|
skills.medicine.mod:
|
|
1156
|
-
{
|
|
1187
|
+
{
|
|
1188
|
+
format: signed,
|
|
1189
|
+
rolls: [{ action: check, params: { check: skills.medicine.mod } }],
|
|
1190
|
+
with: [{ field: skills.medicine.rank, as: detail }],
|
|
1191
|
+
}
|
|
1157
1192
|
skills.nature.rank: { format: { bands: rank } }
|
|
1158
1193
|
skills.nature.granted: { hidden: true }
|
|
1159
1194
|
skills.nature.mod:
|
|
1160
|
-
{
|
|
1195
|
+
{
|
|
1196
|
+
format: signed,
|
|
1197
|
+
rolls: [{ action: check, params: { check: skills.nature.mod } }],
|
|
1198
|
+
with: [{ field: skills.nature.rank, as: detail }],
|
|
1199
|
+
}
|
|
1161
1200
|
skills.occultism.rank: { format: { bands: rank } }
|
|
1162
1201
|
skills.occultism.granted: { hidden: true }
|
|
1163
1202
|
skills.occultism.mod:
|
|
1164
|
-
{
|
|
1203
|
+
{
|
|
1204
|
+
format: signed,
|
|
1205
|
+
rolls: [{ action: check, params: { check: skills.occultism.mod } }],
|
|
1206
|
+
with: [{ field: skills.occultism.rank, as: detail }],
|
|
1207
|
+
}
|
|
1165
1208
|
skills.performance.rank: { format: { bands: rank } }
|
|
1166
1209
|
skills.performance.granted: { hidden: true }
|
|
1167
1210
|
skills.performance.mod:
|
|
1168
|
-
{
|
|
1211
|
+
{
|
|
1212
|
+
format: signed,
|
|
1213
|
+
rolls: [{ action: check, params: { check: skills.performance.mod } }],
|
|
1214
|
+
with: [{ field: skills.performance.rank, as: detail }],
|
|
1215
|
+
}
|
|
1169
1216
|
skills.religion.rank: { format: { bands: rank } }
|
|
1170
1217
|
skills.religion.granted: { hidden: true }
|
|
1171
1218
|
skills.religion.mod:
|
|
1172
|
-
{
|
|
1219
|
+
{
|
|
1220
|
+
format: signed,
|
|
1221
|
+
rolls: [{ action: check, params: { check: skills.religion.mod } }],
|
|
1222
|
+
with: [{ field: skills.religion.rank, as: detail }],
|
|
1223
|
+
}
|
|
1173
1224
|
skills.society.rank: { format: { bands: rank } }
|
|
1174
1225
|
skills.society.granted: { hidden: true }
|
|
1175
1226
|
skills.society.mod:
|
|
1176
|
-
{
|
|
1227
|
+
{
|
|
1228
|
+
format: signed,
|
|
1229
|
+
rolls: [{ action: check, params: { check: skills.society.mod } }],
|
|
1230
|
+
with: [{ field: skills.society.rank, as: detail }],
|
|
1231
|
+
}
|
|
1177
1232
|
skills.stealth.rank: { format: { bands: rank } }
|
|
1178
1233
|
skills.stealth.granted: { hidden: true }
|
|
1179
1234
|
skills.stealth.mod:
|
|
1180
|
-
{
|
|
1235
|
+
{
|
|
1236
|
+
format: signed,
|
|
1237
|
+
rolls: [{ action: check, params: { check: skills.stealth.mod } }],
|
|
1238
|
+
with: [{ field: skills.stealth.rank, as: detail }],
|
|
1239
|
+
}
|
|
1181
1240
|
skills.survival.rank: { format: { bands: rank } }
|
|
1182
1241
|
skills.survival.granted: { hidden: true }
|
|
1183
1242
|
skills.survival.mod:
|
|
1184
|
-
{
|
|
1243
|
+
{
|
|
1244
|
+
format: signed,
|
|
1245
|
+
rolls: [{ action: check, params: { check: skills.survival.mod } }],
|
|
1246
|
+
with: [{ field: skills.survival.rank, as: detail }],
|
|
1247
|
+
}
|
|
1185
1248
|
skills.thievery.rank: { format: { bands: rank } }
|
|
1186
1249
|
skills.thievery.granted: { hidden: true }
|
|
1187
1250
|
skills.thievery.mod:
|
|
1188
|
-
{
|
|
1189
|
-
|
|
1251
|
+
{
|
|
1252
|
+
format: signed,
|
|
1253
|
+
rolls: [{ action: check, params: { check: skills.thievery.mod } }],
|
|
1254
|
+
with: [{ field: skills.thievery.rank, as: detail }],
|
|
1255
|
+
}
|
|
1256
|
+
skills.lore.academia.rank: { format: { bands: rank }, showWhen: skills.lore.academia.rank > 0 }
|
|
1190
1257
|
skills.lore.academia.granted: { hidden: true }
|
|
1191
1258
|
skills.lore.academia.mod:
|
|
1192
|
-
{
|
|
1193
|
-
|
|
1259
|
+
{
|
|
1260
|
+
format: signed,
|
|
1261
|
+
rolls: [{ action: check, params: { check: skills.lore.academia.mod } }],
|
|
1262
|
+
with: [{ field: skills.lore.academia.rank, as: detail }],
|
|
1263
|
+
showWhen: skills.lore.academia.rank > 0,
|
|
1264
|
+
}
|
|
1265
|
+
skills.lore.academia.increases: { showWhen: skills.lore.academia.rank > 0 }
|
|
1266
|
+
skills.lore.academia.trainedByIncrease: { showWhen: skills.lore.academia.rank > 0 }
|
|
1267
|
+
skills.lore.circus.rank: { format: { bands: rank }, showWhen: skills.lore.circus.rank > 0 }
|
|
1194
1268
|
skills.lore.circus.granted: { hidden: true }
|
|
1195
1269
|
skills.lore.circus.mod:
|
|
1196
|
-
{
|
|
1197
|
-
|
|
1270
|
+
{
|
|
1271
|
+
format: signed,
|
|
1272
|
+
rolls: [{ action: check, params: { check: skills.lore.circus.mod } }],
|
|
1273
|
+
with: [{ field: skills.lore.circus.rank, as: detail }],
|
|
1274
|
+
showWhen: skills.lore.circus.rank > 0,
|
|
1275
|
+
}
|
|
1276
|
+
skills.lore.circus.increases: { showWhen: skills.lore.circus.rank > 0 }
|
|
1277
|
+
skills.lore.circus.trainedByIncrease: { showWhen: skills.lore.circus.rank > 0 }
|
|
1278
|
+
skills.lore.farming.rank: { format: { bands: rank }, showWhen: skills.lore.farming.rank > 0 }
|
|
1198
1279
|
skills.lore.farming.granted: { hidden: true }
|
|
1199
1280
|
skills.lore.farming.mod:
|
|
1200
|
-
{
|
|
1201
|
-
|
|
1281
|
+
{
|
|
1282
|
+
format: signed,
|
|
1283
|
+
rolls: [{ action: check, params: { check: skills.lore.farming.mod } }],
|
|
1284
|
+
with: [{ field: skills.lore.farming.rank, as: detail }],
|
|
1285
|
+
showWhen: skills.lore.farming.rank > 0,
|
|
1286
|
+
}
|
|
1287
|
+
skills.lore.farming.increases: { showWhen: skills.lore.farming.rank > 0 }
|
|
1288
|
+
skills.lore.farming.trainedByIncrease: { showWhen: skills.lore.farming.rank > 0 }
|
|
1289
|
+
skills.lore.legal.rank: { format: { bands: rank }, showWhen: skills.lore.legal.rank > 0 }
|
|
1202
1290
|
skills.lore.legal.granted: { hidden: true }
|
|
1203
1291
|
skills.lore.legal.mod:
|
|
1204
|
-
{
|
|
1205
|
-
|
|
1292
|
+
{
|
|
1293
|
+
format: signed,
|
|
1294
|
+
rolls: [{ action: check, params: { check: skills.lore.legal.mod } }],
|
|
1295
|
+
with: [{ field: skills.lore.legal.rank, as: detail }],
|
|
1296
|
+
showWhen: skills.lore.legal.rank > 0,
|
|
1297
|
+
}
|
|
1298
|
+
skills.lore.legal.increases: { showWhen: skills.lore.legal.rank > 0 }
|
|
1299
|
+
skills.lore.legal.trainedByIncrease: { showWhen: skills.lore.legal.rank > 0 }
|
|
1300
|
+
skills.lore.scribing.rank: { format: { bands: rank }, showWhen: skills.lore.scribing.rank > 0 }
|
|
1206
1301
|
skills.lore.scribing.granted: { hidden: true }
|
|
1207
1302
|
skills.lore.scribing.mod:
|
|
1208
|
-
{
|
|
1209
|
-
|
|
1303
|
+
{
|
|
1304
|
+
format: signed,
|
|
1305
|
+
rolls: [{ action: check, params: { check: skills.lore.scribing.mod } }],
|
|
1306
|
+
with: [{ field: skills.lore.scribing.rank, as: detail }],
|
|
1307
|
+
showWhen: skills.lore.scribing.rank > 0,
|
|
1308
|
+
}
|
|
1309
|
+
skills.lore.scribing.increases: { showWhen: skills.lore.scribing.rank > 0 }
|
|
1310
|
+
skills.lore.scribing.trainedByIncrease: { showWhen: skills.lore.scribing.rank > 0 }
|
|
1311
|
+
skills.lore.underworld.rank:
|
|
1312
|
+
{ format: { bands: rank }, showWhen: skills.lore.underworld.rank > 0 }
|
|
1210
1313
|
skills.lore.underworld.granted: { hidden: true }
|
|
1211
1314
|
skills.lore.underworld.mod:
|
|
1212
|
-
{
|
|
1213
|
-
|
|
1315
|
+
{
|
|
1316
|
+
format: signed,
|
|
1317
|
+
rolls: [{ action: check, params: { check: skills.lore.underworld.mod } }],
|
|
1318
|
+
with: [{ field: skills.lore.underworld.rank, as: detail }],
|
|
1319
|
+
showWhen: skills.lore.underworld.rank > 0,
|
|
1320
|
+
}
|
|
1321
|
+
skills.lore.underworld.increases: { showWhen: skills.lore.underworld.rank > 0 }
|
|
1322
|
+
skills.lore.underworld.trainedByIncrease: { showWhen: skills.lore.underworld.rank > 0 }
|
|
1323
|
+
skills.lore.warfare.rank: { format: { bands: rank }, showWhen: skills.lore.warfare.rank > 0 }
|
|
1214
1324
|
skills.lore.warfare.granted: { hidden: true }
|
|
1215
1325
|
skills.lore.warfare.mod:
|
|
1216
|
-
{
|
|
1326
|
+
{
|
|
1327
|
+
format: signed,
|
|
1328
|
+
rolls: [{ action: check, params: { check: skills.lore.warfare.mod } }],
|
|
1329
|
+
with: [{ field: skills.lore.warfare.rank, as: detail }],
|
|
1330
|
+
showWhen: skills.lore.warfare.rank > 0,
|
|
1331
|
+
}
|
|
1332
|
+
skills.lore.warfare.increases: { showWhen: skills.lore.warfare.rank > 0 }
|
|
1333
|
+
skills.lore.warfare.trainedByIncrease: { showWhen: skills.lore.warfare.rank > 0 }
|
package/rules/sorcerer.yaml
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
fields:
|
|
2
2
|
sorcerer.bloodline:
|
|
3
|
+
open: true
|
|
3
4
|
type: enum
|
|
4
5
|
values:
|
|
5
6
|
[none, aberrant, angelic, demonic, diabolic, draconic, elemental, fey, hag, imperial, undead]
|
|
@@ -39,10 +40,21 @@ tags:
|
|
|
39
40
|
|
|
40
41
|
display:
|
|
41
42
|
fields:
|
|
42
|
-
sorcerer.bloodline: { groups: [summary], priority: 2 }
|
|
43
|
-
sorcerer.element:
|
|
43
|
+
sorcerer.bloodline: { groups: [summary], priority: 2, showWhen: class.has.sorcerer }
|
|
44
|
+
sorcerer.element:
|
|
45
|
+
{ groups: [summary], priority: 2, showWhen: "sorcerer.bloodline == 'elemental'" }
|
|
44
46
|
sorcerer.elementDamage: { hidden: true }
|
|
45
47
|
sorcerer.gifts: { hidden: true }
|
|
46
|
-
sorcerer.evolutionSignature:
|
|
47
|
-
|
|
48
|
+
sorcerer.evolutionSignature:
|
|
49
|
+
{
|
|
50
|
+
groups: [spellcasting],
|
|
51
|
+
priority: 2,
|
|
52
|
+
showWhen: '@feats.sorcerer.arcane-evolution in feats.held',
|
|
53
|
+
}
|
|
54
|
+
sorcerer.evolutionSpell:
|
|
55
|
+
{
|
|
56
|
+
groups: [spellcasting],
|
|
57
|
+
priority: 2,
|
|
58
|
+
showWhen: '@feats.sorcerer.occult-evolution in feats.held',
|
|
59
|
+
}
|
|
48
60
|
sorcerer.evolutionRank: { hidden: true }
|
package/rules/spellcasting.yaml
CHANGED
|
@@ -299,6 +299,8 @@ contentTypes:
|
|
|
299
299
|
spell:
|
|
300
300
|
texts: [trigger, requirements]
|
|
301
301
|
fields:
|
|
302
|
+
# An initial domain spell's domain.
|
|
303
|
+
domain: { type: id, of: domain }
|
|
302
304
|
rank: { type: integer, required: true, min: 1, max: 10 }
|
|
303
305
|
cast:
|
|
304
306
|
type: enum
|
|
@@ -347,6 +349,7 @@ contentTypes:
|
|
|
347
349
|
damage: { type: dice, default: 0d6 }
|
|
348
350
|
damageBonus: { type: integer, default: 0 }
|
|
349
351
|
damageType:
|
|
352
|
+
open: true
|
|
350
353
|
type: enum
|
|
351
354
|
values:
|
|
352
355
|
[
|
|
@@ -371,6 +374,7 @@ contentTypes:
|
|
|
371
374
|
damageTypeChoice: { type: boolean, default: false }
|
|
372
375
|
damage2: { type: dice, default: 0d6 }
|
|
373
376
|
damage2Type:
|
|
377
|
+
open: true
|
|
374
378
|
type: enum
|
|
375
379
|
values:
|
|
376
380
|
[
|
|
@@ -400,6 +404,7 @@ contentTypes:
|
|
|
400
404
|
persistent: { type: dice, default: 0d6 }
|
|
401
405
|
persistentBonus: { type: integer, default: 0, min: 0 }
|
|
402
406
|
persistentType:
|
|
407
|
+
open: true
|
|
403
408
|
type: enum
|
|
404
409
|
values:
|
|
405
410
|
[
|
|
@@ -447,7 +452,7 @@ contentTypes:
|
|
|
447
452
|
applyTo: { type: enum, values: [none, self, ally, target], default: none }
|
|
448
453
|
applyAt: { type: integer, default: 2, min: 1, max: 3 }
|
|
449
454
|
stabilizes: { type: boolean, default: false }
|
|
450
|
-
copyTemplates: { type:
|
|
455
|
+
copyTemplates: { type: list, of: string, unique: true }
|
|
451
456
|
# An applied spell's `outcome` is the target's: 1 success, 2 failure, 3 critical failure.
|
|
452
457
|
state:
|
|
453
458
|
rank: { type: integer, default: item.rank, min: 1, max: 10 }
|
|
@@ -458,6 +463,7 @@ contentTypes:
|
|
|
458
463
|
outcome: { type: integer, default: 2, min: 0, max: 3 }
|
|
459
464
|
value: { type: integer, default: 1, min: 0 }
|
|
460
465
|
damageType:
|
|
466
|
+
open: true
|
|
461
467
|
type: enum
|
|
462
468
|
values:
|
|
463
469
|
[
|
|
@@ -496,6 +502,7 @@ actions:
|
|
|
496
502
|
damageType:
|
|
497
503
|
type: enum
|
|
498
504
|
optional: true
|
|
505
|
+
open: true
|
|
499
506
|
values:
|
|
500
507
|
[
|
|
501
508
|
acid,
|
|
@@ -1887,39 +1894,102 @@ display:
|
|
|
1887
1894
|
}
|
|
1888
1895
|
spells.autoRank: { groups: [spellcasting], priority: 2 }
|
|
1889
1896
|
spellcasting.maxRank: { groups: [spell-slots], priority: 1 }
|
|
1890
|
-
spellcasting.font:
|
|
1891
|
-
|
|
1892
|
-
spellcasting.
|
|
1893
|
-
|
|
1897
|
+
spellcasting.font:
|
|
1898
|
+
{ groups: [spellcasting], priority: 1, showWhen: "spellcasting.font != 'none'" }
|
|
1899
|
+
spellcasting.fontSlots:
|
|
1900
|
+
{ groups: [spell-slots], priority: 1, showWhen: spellcasting.fontSlots > 0 }
|
|
1901
|
+
spellcasting.fontRank:
|
|
1902
|
+
{ groups: [spell-slots], priority: 1, showWhen: spellcasting.fontSlots > 0 }
|
|
1903
|
+
spellSlots.rank1.max: { groups: [spell-slots], priority: 0, showWhen: spellSlots.rank1.max > 0 }
|
|
1894
1904
|
spellSlots.rank1.used:
|
|
1895
|
-
{
|
|
1896
|
-
|
|
1905
|
+
{
|
|
1906
|
+
groups: [spell-slots],
|
|
1907
|
+
priority: 0,
|
|
1908
|
+
showWhen: spellSlots.rank1.max > 0,
|
|
1909
|
+
with: [{ field: spellSlots.rank1.max, as: max }],
|
|
1910
|
+
}
|
|
1911
|
+
spellSlots.rank2.max: { groups: [spell-slots], priority: 0, showWhen: spellSlots.rank2.max > 0 }
|
|
1897
1912
|
spellSlots.rank2.used:
|
|
1898
|
-
{
|
|
1899
|
-
|
|
1913
|
+
{
|
|
1914
|
+
groups: [spell-slots],
|
|
1915
|
+
priority: 0,
|
|
1916
|
+
showWhen: spellSlots.rank2.max > 0,
|
|
1917
|
+
with: [{ field: spellSlots.rank2.max, as: max }],
|
|
1918
|
+
}
|
|
1919
|
+
spellSlots.rank3.max: { groups: [spell-slots], priority: 0, showWhen: spellSlots.rank3.max > 0 }
|
|
1900
1920
|
spellSlots.rank3.used:
|
|
1901
|
-
{
|
|
1902
|
-
|
|
1921
|
+
{
|
|
1922
|
+
groups: [spell-slots],
|
|
1923
|
+
priority: 0,
|
|
1924
|
+
showWhen: spellSlots.rank3.max > 0,
|
|
1925
|
+
with: [{ field: spellSlots.rank3.max, as: max }],
|
|
1926
|
+
}
|
|
1927
|
+
spellSlots.rank4.max: { groups: [spell-slots], priority: 0, showWhen: spellSlots.rank4.max > 0 }
|
|
1903
1928
|
spellSlots.rank4.used:
|
|
1904
|
-
{
|
|
1905
|
-
|
|
1929
|
+
{
|
|
1930
|
+
groups: [spell-slots],
|
|
1931
|
+
priority: 0,
|
|
1932
|
+
showWhen: spellSlots.rank4.max > 0,
|
|
1933
|
+
with: [{ field: spellSlots.rank4.max, as: max }],
|
|
1934
|
+
}
|
|
1935
|
+
spellSlots.rank5.max: { groups: [spell-slots], priority: 0, showWhen: spellSlots.rank5.max > 0 }
|
|
1906
1936
|
spellSlots.rank5.used:
|
|
1907
|
-
{
|
|
1908
|
-
|
|
1937
|
+
{
|
|
1938
|
+
groups: [spell-slots],
|
|
1939
|
+
priority: 0,
|
|
1940
|
+
showWhen: spellSlots.rank5.max > 0,
|
|
1941
|
+
with: [{ field: spellSlots.rank5.max, as: max }],
|
|
1942
|
+
}
|
|
1943
|
+
spellSlots.rank6.max: { groups: [spell-slots], priority: 0, showWhen: spellSlots.rank6.max > 0 }
|
|
1909
1944
|
spellSlots.rank6.used:
|
|
1910
|
-
{
|
|
1911
|
-
|
|
1945
|
+
{
|
|
1946
|
+
groups: [spell-slots],
|
|
1947
|
+
priority: 0,
|
|
1948
|
+
showWhen: spellSlots.rank6.max > 0,
|
|
1949
|
+
with: [{ field: spellSlots.rank6.max, as: max }],
|
|
1950
|
+
}
|
|
1951
|
+
spellSlots.rank7.max: { groups: [spell-slots], priority: 0, showWhen: spellSlots.rank7.max > 0 }
|
|
1912
1952
|
spellSlots.rank7.used:
|
|
1913
|
-
{
|
|
1914
|
-
|
|
1953
|
+
{
|
|
1954
|
+
groups: [spell-slots],
|
|
1955
|
+
priority: 0,
|
|
1956
|
+
showWhen: spellSlots.rank7.max > 0,
|
|
1957
|
+
with: [{ field: spellSlots.rank7.max, as: max }],
|
|
1958
|
+
}
|
|
1959
|
+
spellSlots.rank8.max: { groups: [spell-slots], priority: 0, showWhen: spellSlots.rank8.max > 0 }
|
|
1915
1960
|
spellSlots.rank8.used:
|
|
1916
|
-
{
|
|
1917
|
-
|
|
1961
|
+
{
|
|
1962
|
+
groups: [spell-slots],
|
|
1963
|
+
priority: 0,
|
|
1964
|
+
showWhen: spellSlots.rank8.max > 0,
|
|
1965
|
+
with: [{ field: spellSlots.rank8.max, as: max }],
|
|
1966
|
+
}
|
|
1967
|
+
spellSlots.rank9.max: { groups: [spell-slots], priority: 0, showWhen: spellSlots.rank9.max > 0 }
|
|
1918
1968
|
spellSlots.rank9.used:
|
|
1919
|
-
{
|
|
1920
|
-
|
|
1969
|
+
{
|
|
1970
|
+
groups: [spell-slots],
|
|
1971
|
+
priority: 0,
|
|
1972
|
+
showWhen: spellSlots.rank9.max > 0,
|
|
1973
|
+
with: [{ field: spellSlots.rank9.max, as: max }],
|
|
1974
|
+
}
|
|
1975
|
+
spellSlots.rank10.max:
|
|
1976
|
+
{ groups: [spell-slots], priority: 0, showWhen: spellSlots.rank10.max > 0 }
|
|
1921
1977
|
spellSlots.rank10.used:
|
|
1922
|
-
{
|
|
1978
|
+
{
|
|
1979
|
+
groups: [spell-slots],
|
|
1980
|
+
priority: 0,
|
|
1981
|
+
showWhen: spellSlots.rank10.max > 0,
|
|
1982
|
+
with: [{ field: spellSlots.rank10.max, as: max }],
|
|
1983
|
+
}
|
|
1984
|
+
spellSlots.extra.max: { groups: [spell-slots], priority: 1, showWhen: spellSlots.extra.max > 0 }
|
|
1985
|
+
spellSlots.extra.used:
|
|
1986
|
+
{
|
|
1987
|
+
groups: [spell-slots],
|
|
1988
|
+
priority: 1,
|
|
1989
|
+
showWhen: spellSlots.extra.max > 0,
|
|
1990
|
+
with: [{ field: spellSlots.extra.max, as: max }, { field: spells.extraSlot, as: detail }],
|
|
1991
|
+
}
|
|
1992
|
+
spells.extraSlot: { groups: [spell-slots], priority: 1, showWhen: spellSlots.extra.max > 0 }
|
|
1923
1993
|
spellcasting.attribute: { hidden: true }
|
|
1924
1994
|
spellcasting.proficiency: { hidden: true }
|
|
1925
1995
|
spellcasting.attributeMod: { hidden: true }
|
package/rules/spells-high.yaml
CHANGED
|
@@ -11,7 +11,7 @@ tags:
|
|
|
11
11
|
|
|
12
12
|
display:
|
|
13
13
|
fields:
|
|
14
|
-
speed.fly: { groups: [summary], priority: 2, unit: ft }
|
|
15
|
-
speed.climb: { groups: [summary], priority: 2, unit: ft }
|
|
14
|
+
speed.fly: { groups: [summary], priority: 2, unit: ft, showWhen: speed.fly > 0 }
|
|
15
|
+
speed.climb: { groups: [summary], priority: 2, unit: ft, showWhen: speed.climb > 0 }
|
|
16
16
|
speed.climb.base: { hidden: true }
|
|
17
|
-
speed.burrow: { groups: [summary], priority: 2, unit: ft }
|
|
17
|
+
speed.burrow: { groups: [summary], priority: 2, unit: ft, showWhen: speed.burrow > 0 }
|
package/rules/strikes.yaml
CHANGED
|
@@ -32,6 +32,7 @@ contentTypes:
|
|
|
32
32
|
fields:
|
|
33
33
|
category: { type: enum, values: [unarmed, simple, martial, advanced], required: true }
|
|
34
34
|
group:
|
|
35
|
+
open: true
|
|
35
36
|
type: enum
|
|
36
37
|
values:
|
|
37
38
|
[
|
|
@@ -57,7 +58,8 @@ contentTypes:
|
|
|
57
58
|
ownDice: { type: boolean, default: false }
|
|
58
59
|
formAttack: { type: boolean, default: false }
|
|
59
60
|
formDamage: { type: integer, default: 0 }
|
|
60
|
-
damageType:
|
|
61
|
+
damageType:
|
|
62
|
+
{ type: enum, values: [bludgeoning, piercing, slashing, fire], required: true, open: true }
|
|
61
63
|
hands: { type: integer, default: 1, min: 1, max: 2 }
|
|
62
64
|
range: { type: integer, default: 0, min: 0 }
|
|
63
65
|
thrown: { type: integer, default: 0, min: 0 }
|