@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/i18n/en.yaml
CHANGED
|
@@ -9,6 +9,7 @@ actions.create-character.name: Build a character
|
|
|
9
9
|
actions.create-character.steps.ancestry.prompt: Choose an ancestry
|
|
10
10
|
actions.create-character.steps.background.prompt: Choose a background
|
|
11
11
|
actions.create-character.steps.class.prompt: Choose a class
|
|
12
|
+
actions.create-character.steps.freeBoosts.prompt: Choose four free attribute boosts
|
|
12
13
|
actions.create-character.steps.heritage.prompt: Choose a heritage
|
|
13
14
|
actions.random-character.name: Build a random character
|
|
14
15
|
actions.random-character.steps.ancestry.prompt: Choose an ancestry
|
|
@@ -409,6 +410,18 @@ groups.feats.sections.skill.name: Skill feats
|
|
|
409
410
|
groups.gear.label: Gear
|
|
410
411
|
groups.heritage.label: Heritage
|
|
411
412
|
groups.consumables.label: Consumables
|
|
413
|
+
groups.consumables.sections.potion.name: Potions
|
|
414
|
+
groups.consumables.sections.elixir.name: Elixirs
|
|
415
|
+
groups.consumables.sections.mutagen.name: Mutagens
|
|
416
|
+
groups.consumables.sections.bomb.name: Bombs
|
|
417
|
+
groups.consumables.sections.poison.name: Poisons
|
|
418
|
+
groups.consumables.sections.tool.name: Tools
|
|
419
|
+
groups.consumables.sections.scroll.name: Scrolls
|
|
420
|
+
groups.consumables.sections.talisman.name: Talismans
|
|
421
|
+
groups.consumables.sections.oil.name: Oils
|
|
422
|
+
groups.consumables.sections.ammunition.name: Ammunition
|
|
423
|
+
groups.consumables.sections.snare.name: Snares
|
|
424
|
+
groups.consumables.sections.other.name: Other consumables
|
|
412
425
|
groups.rituals.label: Rituals
|
|
413
426
|
groups.variant-features.label: Variant rules
|
|
414
427
|
groups.boost-picks.label: Attribute boosts picked
|
|
@@ -418,7 +431,6 @@ groups.reactions.label: Reactions and shields
|
|
|
418
431
|
groups.saves.label: Saving throws and Perception
|
|
419
432
|
groups.shields.label: Shields
|
|
420
433
|
groups.skill-increases.label: Skill increases
|
|
421
|
-
groups.skill-ranks.label: Skill proficiency
|
|
422
434
|
groups.skills.label: Skills
|
|
423
435
|
groups.strikes.label: Strikes
|
|
424
436
|
groups.summary.label: Character
|
|
@@ -682,6 +694,11 @@ tags.feat-action.name: 'Feat action'
|
|
|
682
694
|
tags.class-dc.name: 'Class DC'
|
|
683
695
|
tags.condition.name: 'Condition'
|
|
684
696
|
tags.creation.name: 'Creation'
|
|
697
|
+
tags.creation.ancestry.name: 'Creation: ancestry'
|
|
698
|
+
tags.creation.heritage.name: 'Creation: heritage'
|
|
699
|
+
tags.creation.background.name: 'Creation: background'
|
|
700
|
+
tags.creation.class.name: 'Creation: class'
|
|
701
|
+
tags.creation.finish.name: 'Creation: finish'
|
|
685
702
|
tags.d20.name: 'd20 roll'
|
|
686
703
|
tags.damage.name: 'Damage'
|
|
687
704
|
tags.damage.acid.name: 'Acid damage'
|
|
@@ -723,6 +740,7 @@ tags.group.spear.name: 'Spear group'
|
|
|
723
740
|
tags.group.sword.name: 'Sword group'
|
|
724
741
|
tags.hunt-prey.name: 'Hunt Prey'
|
|
725
742
|
tags.level-up.name: 'Level up'
|
|
743
|
+
tags.level-up.gain.name: 'Level up: gain'
|
|
726
744
|
tags.lore.name: 'Lore'
|
|
727
745
|
tags.perception.name: 'Perception'
|
|
728
746
|
tags.persistent-damage.name: 'Persistent damage'
|
package/pack.yaml
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
id: orc-2e
|
|
2
|
-
version: 0.
|
|
3
|
-
specVersion: 0.
|
|
2
|
+
version: 0.3.0
|
|
3
|
+
specVersion: 0.3.0
|
|
4
4
|
license: ORC
|
|
5
5
|
# The ORC License's four notices (Article III): the attribution of the Licensed Material used is the
|
|
6
6
|
# credit line; the ORC Notice, the Reserved Material notice and the Expressly Designated Licensed
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opencharacter/orc-2e",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Open Character Format pack: Second Edition fantasy rules (Player Core, Player Core 2 and GM Core) under the ORC License.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"character-sheet",
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"access": "public"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
|
-
"@opencharacter/engine": "0.
|
|
54
|
+
"@opencharacter/engine": "0.3.0"
|
|
55
55
|
},
|
|
56
56
|
"engines": {
|
|
57
57
|
"node": ">=22"
|
package/rules/advancement.yaml
CHANGED
package/rules/afflictions.yaml
CHANGED
|
@@ -15,6 +15,7 @@ contentTypes:
|
|
|
15
15
|
dc: { type: integer, min: 0 }
|
|
16
16
|
stages: { type: integer, required: true, min: 1, max: 7 }
|
|
17
17
|
damageType:
|
|
18
|
+
open: true
|
|
18
19
|
type: enum
|
|
19
20
|
values:
|
|
20
21
|
[
|
|
@@ -40,6 +41,7 @@ contentTypes:
|
|
|
40
41
|
stage5Damage: { type: dice }
|
|
41
42
|
stage6Damage: { type: dice }
|
|
42
43
|
damage2Type:
|
|
44
|
+
open: true
|
|
43
45
|
type: enum
|
|
44
46
|
values: [acid, cold, electricity, fire, mental, poison, sonic, spirit, vitality, void]
|
|
45
47
|
default: poison
|
package/rules/alchemist.yaml
CHANGED
|
@@ -12,7 +12,12 @@ fields:
|
|
|
12
12
|
formula: '[[0, 0, 0, 0, 0], [0, 0, 2, 3, 4], [0, 0, 4, 6, 8]][weapons.specialization][attacks.bomb.rank]'
|
|
13
13
|
# A formula is for a family of alchemical consumables, recorded as the family's lowest item.
|
|
14
14
|
alchemist.field:
|
|
15
|
-
{
|
|
15
|
+
{
|
|
16
|
+
type: enum,
|
|
17
|
+
values: [none, bomber, chirurgeon, mutagenist, toxicologist],
|
|
18
|
+
formula: "'none'",
|
|
19
|
+
open: true,
|
|
20
|
+
}
|
|
16
21
|
alchemist.vials.max: { type: integer, formula: 'max(0, 2 + attributes.int.mod)' }
|
|
17
22
|
alchemist.vials.used: { type: integer, input: true, default: 0, min: 0, max: alchemist.vials.max }
|
|
18
23
|
alchemist.formulas: { type: set, of: consumable }
|
|
@@ -44,6 +49,7 @@ actions:
|
|
|
44
49
|
flat: { type: integer, optional: true }
|
|
45
50
|
damageType:
|
|
46
51
|
type: enum
|
|
52
|
+
open: true
|
|
47
53
|
values:
|
|
48
54
|
[
|
|
49
55
|
acid,
|
|
@@ -61,7 +67,8 @@ actions:
|
|
|
61
67
|
splash: { type: integer, optional: true, min: 0 }
|
|
62
68
|
persistent: { type: dice, optional: true }
|
|
63
69
|
persistentFlat: { type: integer, optional: true, min: 0 }
|
|
64
|
-
persistentType:
|
|
70
|
+
persistentType:
|
|
71
|
+
{ type: enum, optional: true, values: [acid, bleed, fire, poison], open: true }
|
|
65
72
|
itemBonus: { type: integer, optional: true, min: 0, max: 4 }
|
|
66
73
|
hitCondition:
|
|
67
74
|
{ type: enum, optional: true, values: [none, off-guard, enfeebled, frightened, speed] }
|
|
@@ -254,7 +261,11 @@ actions:
|
|
|
254
261
|
display:
|
|
255
262
|
fields:
|
|
256
263
|
attacks.bomb.rank:
|
|
257
|
-
{
|
|
264
|
+
{
|
|
265
|
+
groups: [proficiencies],
|
|
266
|
+
format: { bands: rank },
|
|
267
|
+
showWhen: attacks.bomb.rank > attacks.martial.rank,
|
|
268
|
+
}
|
|
258
269
|
attacks.bomb.proficiency: { hidden: true }
|
|
259
270
|
attacks.bomb.specialization: { hidden: true }
|
|
260
271
|
alchemist.field: { groups: [summary], priority: 2, showWhen: "alchemist.field != 'none'" }
|
|
@@ -350,25 +350,67 @@ effects:
|
|
|
350
350
|
|
|
351
351
|
display:
|
|
352
352
|
fields:
|
|
353
|
-
attacks.familiar: { groups: [proficiencies], priority: 2 }
|
|
353
|
+
attacks.familiar: { groups: [proficiencies], priority: 2, showWhen: size(attacks.familiar) > 0 }
|
|
354
354
|
conditions.mistChild: { hidden: true }
|
|
355
355
|
conditions.obfuscated: { hidden: true }
|
|
356
356
|
bounceBack.ready: { hidden: true }
|
|
357
|
-
skills.lore.dwarf.rank: { format: { bands: rank } }
|
|
357
|
+
skills.lore.dwarf.rank: { format: { bands: rank }, showWhen: skills.lore.dwarf.rank > 0 }
|
|
358
358
|
skills.lore.dwarf.mod:
|
|
359
|
-
{
|
|
360
|
-
|
|
359
|
+
{
|
|
360
|
+
format: signed,
|
|
361
|
+
rolls: [{ action: check, params: { check: skills.lore.dwarf.mod } }],
|
|
362
|
+
with: [{ field: skills.lore.dwarf.rank, as: detail }],
|
|
363
|
+
showWhen: skills.lore.dwarf.rank > 0,
|
|
364
|
+
}
|
|
365
|
+
skills.lore.dwarf.increases: { showWhen: skills.lore.dwarf.rank > 0 }
|
|
366
|
+
skills.lore.dwarf.trainedByIncrease: { showWhen: skills.lore.dwarf.rank > 0 }
|
|
367
|
+
skills.lore.elf.rank: { format: { bands: rank }, showWhen: skills.lore.elf.rank > 0 }
|
|
361
368
|
skills.lore.elf.mod:
|
|
362
|
-
{
|
|
363
|
-
|
|
369
|
+
{
|
|
370
|
+
format: signed,
|
|
371
|
+
rolls: [{ action: check, params: { check: skills.lore.elf.mod } }],
|
|
372
|
+
with: [{ field: skills.lore.elf.rank, as: detail }],
|
|
373
|
+
showWhen: skills.lore.elf.rank > 0,
|
|
374
|
+
}
|
|
375
|
+
skills.lore.elf.increases: { showWhen: skills.lore.elf.rank > 0 }
|
|
376
|
+
skills.lore.elf.trainedByIncrease: { showWhen: skills.lore.elf.rank > 0 }
|
|
377
|
+
skills.lore.goblin.rank: { format: { bands: rank }, showWhen: skills.lore.goblin.rank > 0 }
|
|
364
378
|
skills.lore.goblin.mod:
|
|
365
|
-
{
|
|
366
|
-
|
|
379
|
+
{
|
|
380
|
+
format: signed,
|
|
381
|
+
rolls: [{ action: check, params: { check: skills.lore.goblin.mod } }],
|
|
382
|
+
with: [{ field: skills.lore.goblin.rank, as: detail }],
|
|
383
|
+
showWhen: skills.lore.goblin.rank > 0,
|
|
384
|
+
}
|
|
385
|
+
skills.lore.goblin.increases: { showWhen: skills.lore.goblin.rank > 0 }
|
|
386
|
+
skills.lore.goblin.trainedByIncrease: { showWhen: skills.lore.goblin.rank > 0 }
|
|
387
|
+
skills.lore.halfling.rank: { format: { bands: rank }, showWhen: skills.lore.halfling.rank > 0 }
|
|
367
388
|
skills.lore.halfling.mod:
|
|
368
|
-
{
|
|
369
|
-
|
|
389
|
+
{
|
|
390
|
+
format: signed,
|
|
391
|
+
rolls: [{ action: check, params: { check: skills.lore.halfling.mod } }],
|
|
392
|
+
with: [{ field: skills.lore.halfling.rank, as: detail }],
|
|
393
|
+
showWhen: skills.lore.halfling.rank > 0,
|
|
394
|
+
}
|
|
395
|
+
skills.lore.halfling.increases: { showWhen: skills.lore.halfling.rank > 0 }
|
|
396
|
+
skills.lore.halfling.trainedByIncrease: { showWhen: skills.lore.halfling.rank > 0 }
|
|
397
|
+
skills.lore.leshy.rank: { format: { bands: rank }, showWhen: skills.lore.leshy.rank > 0 }
|
|
370
398
|
skills.lore.leshy.mod:
|
|
371
|
-
{
|
|
372
|
-
|
|
399
|
+
{
|
|
400
|
+
format: signed,
|
|
401
|
+
rolls: [{ action: check, params: { check: skills.lore.leshy.mod } }],
|
|
402
|
+
with: [{ field: skills.lore.leshy.rank, as: detail }],
|
|
403
|
+
showWhen: skills.lore.leshy.rank > 0,
|
|
404
|
+
}
|
|
405
|
+
skills.lore.leshy.increases: { showWhen: skills.lore.leshy.rank > 0 }
|
|
406
|
+
skills.lore.leshy.trainedByIncrease: { showWhen: skills.lore.leshy.rank > 0 }
|
|
407
|
+
skills.lore.orc.rank: { format: { bands: rank }, showWhen: skills.lore.orc.rank > 0 }
|
|
373
408
|
skills.lore.orc.mod:
|
|
374
|
-
{
|
|
409
|
+
{
|
|
410
|
+
format: signed,
|
|
411
|
+
rolls: [{ action: check, params: { check: skills.lore.orc.mod } }],
|
|
412
|
+
with: [{ field: skills.lore.orc.rank, as: detail }],
|
|
413
|
+
showWhen: skills.lore.orc.rank > 0,
|
|
414
|
+
}
|
|
415
|
+
skills.lore.orc.increases: { showWhen: skills.lore.orc.rank > 0 }
|
|
416
|
+
skills.lore.orc.trainedByIncrease: { showWhen: skills.lore.orc.rank > 0 }
|
package/rules/archetypes.yaml
CHANGED
package/rules/barbarian.yaml
CHANGED
|
@@ -2,16 +2,14 @@ fields:
|
|
|
2
2
|
barbarian.instinct:
|
|
3
3
|
type: enum
|
|
4
4
|
values: [none, animal, dragon, fury, giant, spirit, superstition]
|
|
5
|
-
|
|
5
|
+
open: true
|
|
6
|
+
# The class's instinct sets it (each instinct's effect); Barbarian Dedication's pick otherwise.
|
|
7
|
+
formula: >-
|
|
8
|
+
size(picksOf('feats.archetype.barbarian.barbarian-dedication', 'instinct')) > 0
|
|
9
|
+
? picksOf('feats.archetype.barbarian.barbarian-dedication', 'instinct')[0] : 'none'
|
|
6
10
|
rage.active: { type: boolean, formula: false }
|
|
7
11
|
rage.damage: { type: integer, formula: 2 }
|
|
8
12
|
rage.altDamage: { type: integer, formula: 0 }
|
|
9
|
-
rage.altType:
|
|
10
|
-
{
|
|
11
|
-
type: enum,
|
|
12
|
-
values: [none, bludgeoning, fire, force, mental, poison, spirit],
|
|
13
|
-
formula: "'none'",
|
|
14
|
-
}
|
|
15
13
|
rage.animalDamage: { type: integer, formula: 2 }
|
|
16
14
|
rage.resists:
|
|
17
15
|
{
|
|
@@ -129,22 +127,12 @@ display:
|
|
|
129
127
|
- id: rage
|
|
130
128
|
kind: actions
|
|
131
129
|
priority: 0
|
|
132
|
-
showWhen:
|
|
130
|
+
showWhen: class.has.barbarian
|
|
133
131
|
members: { type: action, where: "'rage' in item.tags" }
|
|
134
132
|
fields:
|
|
135
|
-
rage.active:
|
|
136
|
-
{
|
|
137
|
-
groups: [summary],
|
|
138
|
-
priority: 1,
|
|
139
|
-
showWhen: 'countCopies(copy.item == @classes.barbarian) > 0',
|
|
140
|
-
}
|
|
133
|
+
rage.active: { groups: [summary], priority: 1, showWhen: class.has.barbarian }
|
|
141
134
|
rage.tempHpBlocked:
|
|
142
|
-
{
|
|
143
|
-
groups: [turn],
|
|
144
|
-
priority: 2,
|
|
145
|
-
input: { widget: checkbox },
|
|
146
|
-
showWhen: 'countCopies(copy.item == @classes.barbarian) > 0',
|
|
147
|
-
}
|
|
135
|
+
{ groups: [turn], priority: 2, input: { widget: checkbox }, showWhen: class.has.barbarian }
|
|
148
136
|
rage.largerWeapon:
|
|
149
137
|
{
|
|
150
138
|
groups: [turn],
|
|
@@ -154,7 +142,6 @@ display:
|
|
|
154
142
|
}
|
|
155
143
|
rage.damage: { hidden: true }
|
|
156
144
|
rage.altDamage: { hidden: true }
|
|
157
|
-
rage.altType: { hidden: true }
|
|
158
145
|
rage.animalDamage: { hidden: true }
|
|
159
146
|
rage.resists: { groups: [defenses], priority: 2, showWhen: size(rage.resists) > 0 }
|
|
160
147
|
rage.thrown: { hidden: true }
|
package/rules/bard.yaml
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
fields:
|
|
2
|
-
bard.muse:
|
|
2
|
+
bard.muse:
|
|
3
|
+
{
|
|
4
|
+
type: enum,
|
|
5
|
+
values: [none, enigma, maestro, polymath, warrior],
|
|
6
|
+
formula: "'none'",
|
|
7
|
+
open: true,
|
|
8
|
+
}
|
|
3
9
|
bard.muses: { type: set, of: tag, members: { under: [muse] } }
|
|
4
10
|
bard.grantedFeats: { type: set, of: feat }
|
|
5
11
|
# Bardic Lore has no increases input: it is trained by the feat and becomes expert only when
|
|
@@ -42,13 +48,13 @@ situational:
|
|
|
42
48
|
|
|
43
49
|
display:
|
|
44
50
|
fields:
|
|
45
|
-
bard.muse: { groups: [summary], priority: 2 }
|
|
51
|
+
bard.muse: { groups: [summary], priority: 2, showWhen: class.has.bard }
|
|
46
52
|
bard.muses: { hidden: true }
|
|
47
53
|
bard.grantedFeats: { hidden: true }
|
|
48
|
-
skills.lore.bardic.rank:
|
|
49
|
-
{ groups: [skill-ranks], format: { bands: rank }, showWhen: skills.lore.bardic.rank > 0 }
|
|
54
|
+
skills.lore.bardic.rank: { format: { bands: rank }, showWhen: skills.lore.bardic.rank > 0 }
|
|
50
55
|
skills.lore.bardic.mod:
|
|
51
56
|
groups: [skills]
|
|
52
57
|
format: signed
|
|
53
58
|
showWhen: skills.lore.bardic.rank > 0
|
|
54
59
|
rolls: [{ action: check, params: { check: skills.lore.bardic.mod } }]
|
|
60
|
+
with: [{ field: skills.lore.bardic.rank, as: detail }]
|
package/rules/building.yaml
CHANGED
|
@@ -19,6 +19,7 @@ contentTypes:
|
|
|
19
19
|
- { target: ancestry.held, op: grant, value: { formula: item.id } }
|
|
20
20
|
|
|
21
21
|
heritage:
|
|
22
|
+
grantOnly: true
|
|
22
23
|
fields:
|
|
23
24
|
ancestry: { type: id, of: ancestry }
|
|
24
25
|
versatile: { type: boolean, default: false }
|
|
@@ -38,13 +39,18 @@ contentTypes:
|
|
|
38
39
|
- { target: hp.class, op: add, value: item.hp }
|
|
39
40
|
|
|
40
41
|
feature:
|
|
42
|
+
grantOnly: true
|
|
41
43
|
fields:
|
|
42
44
|
level: { type: integer, required: true, min: 1, max: 20 }
|
|
45
|
+
# The class option a subclass-like feature is, `<class>.<choice>`, which the class's choice
|
|
46
|
+
# offers: add-on instincts, muses and the like set it too.
|
|
47
|
+
classOption: { type: string, default: '' }
|
|
43
48
|
|
|
44
49
|
feat:
|
|
45
50
|
fields:
|
|
46
51
|
level: { type: integer, required: true, min: 1, max: 20 }
|
|
47
|
-
category:
|
|
52
|
+
category:
|
|
53
|
+
{ type: enum, values: [ancestry, class, general, skill], required: true, open: true }
|
|
48
54
|
ancestry: { type: id, of: ancestry }
|
|
49
55
|
heritage: { type: id, of: heritage }
|
|
50
56
|
class: { type: id, of: class }
|
package/rules/champion.yaml
CHANGED
|
@@ -6,6 +6,7 @@ fields:
|
|
|
6
6
|
champion.favoredCategory:
|
|
7
7
|
{ type: enum, values: [none, unarmed, simple, martial, advanced], formula: "'none'" }
|
|
8
8
|
champion.cause:
|
|
9
|
+
open: true
|
|
9
10
|
type: enum
|
|
10
11
|
values: [none, desecration, grandeur, iniquity, justice, liberation, obedience, redemption]
|
|
11
12
|
formula: "'none'"
|
|
@@ -67,8 +68,8 @@ situational:
|
|
|
67
68
|
|
|
68
69
|
display:
|
|
69
70
|
fields:
|
|
70
|
-
champion.sanctification: { groups: [summary], priority: 2 }
|
|
71
|
-
champion.cause: { groups: [summary], priority: 2 }
|
|
71
|
+
champion.sanctification: { groups: [summary], priority: 2, showWhen: class.has.champion }
|
|
72
|
+
champion.cause: { groups: [summary], priority: 2, showWhen: class.has.champion }
|
|
72
73
|
champion.font: { hidden: true }
|
|
73
74
|
champion.mercies: { hidden: true }
|
|
74
75
|
champion.favoredCategory: { hidden: true }
|
package/rules/checks.yaml
CHANGED
|
@@ -27,7 +27,7 @@ resultBands:
|
|
|
27
27
|
when: >-
|
|
28
28
|
roll.value == 3 || (roll.value == 2 && (roll.tallies.successToCrit > 0
|
|
29
29
|
|| (roll.tallies.successToCritOn19 > 0 && size(roll.kept) > 0 && roll.kept[0] == 19)))
|
|
30
|
-
- { id: success, when: roll.value == 2 }
|
|
30
|
+
- { id: success, when: roll.value == 2, success: true }
|
|
31
31
|
- id: failure
|
|
32
32
|
when: >-
|
|
33
33
|
(roll.value == 1 && roll.tallies.failToCritFail == 0)
|
package/rules/cleric.yaml
CHANGED
|
@@ -3,9 +3,19 @@ fields:
|
|
|
3
3
|
# Asked before the weapon itself, whose choice reads it.
|
|
4
4
|
cleric.favoredCategory:
|
|
5
5
|
{ type: enum, values: [none, unarmed, simple, martial, advanced], formula: "'none'" }
|
|
6
|
-
cleric.doctrine:
|
|
6
|
+
cleric.doctrine:
|
|
7
|
+
{ type: enum, values: [none, cloistered, warpriest], formula: "'none'", open: true }
|
|
7
8
|
cleric.domainSpells: { type: set, of: spell }
|
|
8
9
|
|
|
10
|
+
# A domain is picked by Domain Initiate (its initial domain spell) or Advanced Domain (its advanced
|
|
11
|
+
# one); Domain Acumen picks the initial domains of the oracle's mystery.
|
|
12
|
+
contentTypes:
|
|
13
|
+
domain:
|
|
14
|
+
grantOnly: true
|
|
15
|
+
copies: { max: 0 }
|
|
16
|
+
fields:
|
|
17
|
+
advanced: { type: boolean, default: false }
|
|
18
|
+
|
|
9
19
|
tags:
|
|
10
20
|
- trait.shadow
|
|
11
21
|
- trait.consecration
|
|
@@ -76,7 +86,7 @@ situational:
|
|
|
76
86
|
|
|
77
87
|
display:
|
|
78
88
|
fields:
|
|
79
|
-
cleric.sanctification: { groups: [summary], priority: 2 }
|
|
80
|
-
cleric.doctrine: { groups: [summary], priority: 2 }
|
|
89
|
+
cleric.sanctification: { groups: [summary], priority: 2, showWhen: class.has.cleric }
|
|
90
|
+
cleric.doctrine: { groups: [summary], priority: 2, showWhen: class.has.cleric }
|
|
81
91
|
cleric.favoredCategory: { hidden: true }
|
|
82
92
|
cleric.domainSpells: { hidden: true }
|
package/rules/conditions.yaml
CHANGED
package/rules/core.yaml
CHANGED
package/rules/creation.yaml
CHANGED
|
@@ -18,12 +18,14 @@ actions:
|
|
|
18
18
|
available: character.creating
|
|
19
19
|
steps:
|
|
20
20
|
- id: ancestry
|
|
21
|
+
tags: [creation.ancestry]
|
|
21
22
|
kind: choice
|
|
22
23
|
options: { content: { type: ancestry } }
|
|
23
24
|
changes:
|
|
24
25
|
- type: addItem
|
|
25
26
|
entry: { id: ancestry, item: picked.id }
|
|
26
27
|
- id: heritage
|
|
28
|
+
tags: [creation.heritage]
|
|
27
29
|
kind: choice
|
|
28
30
|
options:
|
|
29
31
|
content:
|
|
@@ -32,12 +34,14 @@ actions:
|
|
|
32
34
|
changes:
|
|
33
35
|
- { type: choose, path: { entry: ancestry, choice: [heritage] }, option: picked.id }
|
|
34
36
|
- id: background
|
|
37
|
+
tags: [creation.background]
|
|
35
38
|
kind: choice
|
|
36
39
|
options: { content: { type: background } }
|
|
37
40
|
changes:
|
|
38
41
|
- type: addItem
|
|
39
42
|
entry: { id: background, item: picked.id }
|
|
40
43
|
- id: class
|
|
44
|
+
tags: [creation.class]
|
|
41
45
|
kind: choice
|
|
42
46
|
options: { content: { type: class } }
|
|
43
47
|
changes:
|
|
@@ -49,6 +53,14 @@ actions:
|
|
|
49
53
|
- id: backgroundPicks
|
|
50
54
|
kind: choice
|
|
51
55
|
options: { pending: { entry: "'background'" } }
|
|
56
|
+
# The four free boosts come before the class's choices, whose trained skills count the final
|
|
57
|
+
# Intelligence modifier.
|
|
58
|
+
- id: freeBoosts
|
|
59
|
+
kind: choice
|
|
60
|
+
options: { content: { type: boost, where: picks == 0 } }
|
|
61
|
+
repeat: { max: 4, min: 4 }
|
|
62
|
+
changes:
|
|
63
|
+
- { type: choose, path: { choice: [free-boosts] }, option: picked.id }
|
|
52
64
|
- id: classPicks
|
|
53
65
|
kind: choice
|
|
54
66
|
options: { pending: { entry: "'class'" } }
|
|
@@ -56,6 +68,7 @@ actions:
|
|
|
56
68
|
kind: choice
|
|
57
69
|
options: { pending: {} }
|
|
58
70
|
- id: finish
|
|
71
|
+
tags: [creation.finish]
|
|
59
72
|
kind: changes
|
|
60
73
|
sheet: proposed
|
|
61
74
|
changes:
|
|
@@ -73,6 +86,7 @@ actions:
|
|
|
73
86
|
available: character.creating
|
|
74
87
|
steps:
|
|
75
88
|
- id: ancestry
|
|
89
|
+
tags: [creation.ancestry]
|
|
76
90
|
kind: choice
|
|
77
91
|
options: { content: { type: ancestry } }
|
|
78
92
|
random: true
|
|
@@ -80,6 +94,7 @@ actions:
|
|
|
80
94
|
- type: addItem
|
|
81
95
|
entry: { id: ancestry, item: picked.id }
|
|
82
96
|
- id: heritage
|
|
97
|
+
tags: [creation.heritage]
|
|
83
98
|
kind: choice
|
|
84
99
|
options:
|
|
85
100
|
content:
|
|
@@ -89,6 +104,7 @@ actions:
|
|
|
89
104
|
changes:
|
|
90
105
|
- { type: choose, path: { entry: ancestry, choice: [heritage] }, option: picked.id }
|
|
91
106
|
- id: background
|
|
107
|
+
tags: [creation.background]
|
|
92
108
|
kind: choice
|
|
93
109
|
options: { content: { type: background } }
|
|
94
110
|
random: true
|
|
@@ -96,6 +112,7 @@ actions:
|
|
|
96
112
|
- type: addItem
|
|
97
113
|
entry: { id: background, item: picked.id }
|
|
98
114
|
- id: class
|
|
115
|
+
tags: [creation.class]
|
|
99
116
|
kind: choice
|
|
100
117
|
options: { content: { type: class } }
|
|
101
118
|
random: true
|
|
@@ -146,6 +163,7 @@ actions:
|
|
|
146
163
|
random: *random
|
|
147
164
|
recommend: *pick
|
|
148
165
|
- id: finish
|
|
166
|
+
tags: [creation.finish]
|
|
149
167
|
kind: changes
|
|
150
168
|
sheet: proposed
|
|
151
169
|
changes:
|
package/rules/druid.yaml
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
fields:
|
|
2
|
-
druid.order:
|
|
2
|
+
druid.order:
|
|
3
|
+
{ type: enum, values: [none, animal, leaf, storm, untamed], formula: "'none'", open: true }
|
|
3
4
|
druid.orders: { type: set, of: tag }
|
|
4
5
|
druid.orderSpells: { type: set, of: spell }
|
|
5
6
|
# Granted, not picked, so the class feat choice leaves them out (grants aren't in the `feats`
|
|
@@ -15,7 +16,7 @@ tags:
|
|
|
15
16
|
|
|
16
17
|
display:
|
|
17
18
|
fields:
|
|
18
|
-
druid.order: { groups: [summary], priority: 2 }
|
|
19
|
+
druid.order: { groups: [summary], priority: 2, showWhen: class.has.druid }
|
|
19
20
|
druid.orders: { hidden: true }
|
|
20
21
|
druid.orderSpells: { hidden: true }
|
|
21
22
|
druid.grantedFeats: { hidden: true }
|
package/rules/equipment.yaml
CHANGED
|
@@ -46,7 +46,7 @@ contentTypes:
|
|
|
46
46
|
checkPenalty: { type: integer, default: 0, min: 0 }
|
|
47
47
|
speedPenalty: { type: integer, default: 0, min: 0 }
|
|
48
48
|
strength: { type: integer }
|
|
49
|
-
group: { type: enum, values: [cloth, leather, composite, chain, plate] }
|
|
49
|
+
group: { type: enum, values: [cloth, leather, composite, chain, plate], open: true }
|
|
50
50
|
bulk: { type: decimal, default: 0, min: 0 }
|
|
51
51
|
price: { type: decimal, min: 0 }
|
|
52
52
|
# The item bonus to AC works without investing; the resilient rune's bonus and property runes
|
|
@@ -202,6 +202,7 @@ contentTypes:
|
|
|
202
202
|
carried: true
|
|
203
203
|
fields:
|
|
204
204
|
category:
|
|
205
|
+
open: true
|
|
205
206
|
type: enum
|
|
206
207
|
values:
|
|
207
208
|
[
|
|
@@ -228,6 +229,7 @@ contentTypes:
|
|
|
228
229
|
damage: { type: dice }
|
|
229
230
|
damageFlat: { type: integer, default: 0, min: 0 }
|
|
230
231
|
damageType:
|
|
232
|
+
open: true
|
|
231
233
|
type: enum
|
|
232
234
|
values:
|
|
233
235
|
[
|
|
@@ -249,6 +251,7 @@ contentTypes:
|
|
|
249
251
|
persistent: { type: dice }
|
|
250
252
|
persistentFlat: { type: integer, default: 0, min: 0 }
|
|
251
253
|
persistentType:
|
|
254
|
+
open: true
|
|
252
255
|
type: enum
|
|
253
256
|
values: [none, acid, bleed, fire, poison]
|
|
254
257
|
default: none
|
|
@@ -529,6 +532,9 @@ actions:
|
|
|
529
532
|
|
|
530
533
|
# `trait.versatile` alone; the other damage type is the weapon's `versatile` field.
|
|
531
534
|
tags:
|
|
535
|
+
- tool.compass
|
|
536
|
+
- tool.crowbar
|
|
537
|
+
- shield.against-spells
|
|
532
538
|
- trait.attached
|
|
533
539
|
- trait.concealable
|
|
534
540
|
- trait.free-hand
|
package/rules/heritages.yaml
CHANGED
package/rules/investigator.yaml
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
fields:
|
|
2
2
|
investigator.leadBonus: { type: integer, formula: 0, min: 0 }
|
|
3
3
|
investigator.methodology:
|
|
4
|
+
open: true
|
|
4
5
|
type: enum
|
|
5
6
|
values: [none, alchemical-sciences, empiricism, forensic-medicine, interrogation]
|
|
6
7
|
formula: "'none'"
|
|
@@ -27,14 +28,5 @@ tags:
|
|
|
27
28
|
display:
|
|
28
29
|
fields:
|
|
29
30
|
investigator.leadBonus:
|
|
30
|
-
{
|
|
31
|
-
|
|
32
|
-
priority: 2,
|
|
33
|
-
showWhen: 'countCopies(copy.item == @classes.investigator) > 0',
|
|
34
|
-
}
|
|
35
|
-
investigator.methodology:
|
|
36
|
-
{
|
|
37
|
-
groups: [summary],
|
|
38
|
-
priority: 2,
|
|
39
|
-
showWhen: 'countCopies(copy.item == @classes.investigator) > 0',
|
|
40
|
-
}
|
|
31
|
+
{ groups: [proficiencies], priority: 2, showWhen: class.has.investigator }
|
|
32
|
+
investigator.methodology: { groups: [summary], priority: 2, showWhen: class.has.investigator }
|