@opencharacter/orc-2e 0.1.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 +74 -16
- package/content/backgrounds/driver.yaml +3 -3
- package/content/backgrounds/farmhand.yaml +1 -1
- package/content/backgrounds/miner.yaml +1 -1
- package/content/backgrounds/nomad.yaml +1 -1
- package/content/backgrounds/raised-by-belief.yaml +16 -16
- package/content/backgrounds/scholar.yaml +4 -4
- 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/resistance.yaml +2 -0
- 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 -52
- 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/changeling-lore.yaml +3 -1
- 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/gladiator/gladiator-dedication.yaml +1 -1
- package/content/feats/archetype/investigator/skill-mastery.yaml +2 -58
- package/content/feats/archetype/rogue/skill-mastery.yaml +2 -58
- package/content/feats/archetype/scout/terrain-scout.yaml +6 -0
- package/content/feats/archetype/viking/viking-dedication.yaml +3 -1
- 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/additional-lore.yaml +12 -0
- package/content/feats/skill/assurance.yaml +8 -30
- package/content/feats/skill/skill-training.yaml +1 -55
- package/content/feats/skill/terrain-stalker.yaml +1 -0
- package/content/feats/sorcerer/arcane-evolution.yaml +1 -26
- package/content/feats/sorcerer/occult-evolution.yaml +1 -26
- package/content/features/wizard/arcane-bond.yaml +8 -4
- 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/heritages/deep-orc.yaml +3 -1
- package/content/heritages/woodstalker-lizardfolk.yaml +3 -1
- 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/enduring-might.yaml +2 -0
- package/content/spells/energy-absorption.yaml +2 -0
- package/content/spells/face-in-the-crowd.yaml +1 -0
- package/content/spells/fire-ray.yaml +1 -0
- package/content/spells/fire-shield.yaml +31 -0
- package/content/spells/flame-barrier.yaml +2 -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/shield.yaml +2 -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 +210 -209
- package/dist/index.js +1 -1
- package/dist/release.json +8629 -4618
- package/i18n/en/ancestry-dragonblood.yaml +2 -2
- package/i18n/en/archetypes.yaml +10 -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/lores-pc2.yaml +6 -0
- package/i18n/en/oracle.yaml +0 -38
- package/i18n/en/rogue.yaml +3 -3
- package/i18n/en/spellcasting.yaml +3 -2
- package/i18n/en/spells-high.yaml +1 -0
- package/i18n/en/type-fields.yaml +2 -0
- package/i18n/en/wizard.yaml +2 -2
- 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 +221 -36
- 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 +105 -28
- 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 +6 -4
- package/upgrades/0.1.0-to-0.2.0.yaml +11 -0
- package/upgrades/0.2.0-to-0.3.0.yaml +657 -0
package/i18n/en/spells-high.yaml
CHANGED
|
@@ -498,6 +498,7 @@ spells.fiery-body.description: |-
|
|
|
498
498
|
|
|
499
499
|
**Heightened (9th)** Touching you deals 4d6 fire damage, your unarmed attacks 2d4 more fire damage, and your fly Speed is 60 feet.
|
|
500
500
|
spells.fire-shield.name: 'Fire Shield'
|
|
501
|
+
spells.fire-shield.state.blocked.name: 'Shield damage'
|
|
501
502
|
spells.fire-shield.description: |-
|
|
502
503
|
A hovering shield of fire gives you cold resistance 5 and protects you from mild and severe environmental cold. You can Raise a Shield with it for a +1 circumstance bonus to AC, and Shield Block with it: Hardness 10 (halved against water effects), 40 HP, no Broken Threshold, immune to fire. When you Shield Block an unarmed attack or an adjacent attacker's melee attack with it, the attacker takes 2d6 fire damage.
|
|
503
504
|
|
package/i18n/en/type-fields.yaml
CHANGED
|
@@ -8,6 +8,7 @@ types.heritage.fields.versatile.description: 'Open to any ancestry.'
|
|
|
8
8
|
types.class.fields.hp.name: 'Hit Points per level'
|
|
9
9
|
types.class.fields.hp.description: 'Plus the Constitution modifier.'
|
|
10
10
|
types.feature.fields.level.name: 'Level'
|
|
11
|
+
types.feature.fields.classOption.name: 'Class option'
|
|
11
12
|
types.feat.fields.level.name: 'Level'
|
|
12
13
|
types.feat.fields.category.name: 'Category'
|
|
13
14
|
types.feat.fields.ancestry.name: 'Ancestry'
|
|
@@ -92,6 +93,7 @@ types.ritual.fields.duration.name: 'Duration'
|
|
|
92
93
|
types.ritual.fields.durationAmount.name: 'Duration amount'
|
|
93
94
|
types.ritual.fields.durationAmount.description: 'How many of the duration unit.'
|
|
94
95
|
types.spell.fields.rank.name: 'Rank'
|
|
96
|
+
types.spell.fields.domain.name: 'Domain'
|
|
95
97
|
types.spell.fields.cast.name: 'Actions to cast'
|
|
96
98
|
types.spell.fields.range.name: 'Range (ft)'
|
|
97
99
|
types.spell.fields.range.description: '0 for touch.'
|
package/i18n/en/wizard.yaml
CHANGED
|
@@ -2,8 +2,6 @@
|
|
|
2
2
|
# Short rules text written for the pack.
|
|
3
3
|
classes.wizard.name: Wizard
|
|
4
4
|
classes.wizard.description: "A scholar of arcane magic who prepares spells from a spellbook. Key attribute: Intelligence. 6 Hit Points plus Constitution per level. Trained in Perception, Fortitude and Reflex, expert in Will; trained in simple weapons and unarmed attacks; trained in unarmored defense; trained in the wizard class DC, spell attack modifier and spell DC. Trained in Arcana and 2 skills plus Intelligence. Arcane prepared spellcasting with Intelligence: two spells of each rank (three from the next level) and five cantrips, prepared from your spellbook, plus your curriculum's extra cantrip and spell of each rank."
|
|
5
|
-
classes.wizard.state.bondDrained.name: Ranks drained from the bonded item today
|
|
6
|
-
classes.wizard.state.linkedFocusUsed.name: Linked Focus used today
|
|
7
5
|
classes.wizard.choices.school.prompt: Arcane school
|
|
8
6
|
classes.wizard.choices.curriculum-cantrip.prompt: 'Curriculum: a cantrip for your spellbook'
|
|
9
7
|
classes.wizard.choices.curriculum.prompt: 'Curriculum: rank {slot} spells for your spellbook'
|
|
@@ -49,6 +47,8 @@ classes.wizard.theses.staff-nexus.name: Staff Nexus
|
|
|
49
47
|
classes.wizard.theses.staff-nexus.description: 'You start with a makeshift staff holding a cantrip and a 1st-rank spell from your spellbook. At daily preparations, expend a spell to give it charges equal to its rank (two spells from 8th level, three from 16th); casting the 1st-rank spell from it costs a charge. You can merge it with another staff, adding its two spells.'
|
|
50
48
|
|
|
51
49
|
features.wizard.arcane-bond.name: Arcane Bond
|
|
50
|
+
features.wizard.arcane-bond.state.bondDrained.name: Ranks drained from the bonded item today
|
|
51
|
+
features.wizard.arcane-bond.state.linkedFocusUsed.name: Linked Focus used today
|
|
52
52
|
features.wizard.arcane-bond.description: 'Each day when you prepare spells, you designate an item you own as your bonded item. Drain Bonded Item (free action, arcane, once per day; your bonded item is on your person): this turn, you can cast one spell you prepared today and already cast, without spending a slot.'
|
|
53
53
|
features.wizard.arcane-bond.actions.drain-bonded-item.name: Drain Bonded Item
|
|
54
54
|
features.wizard.arcane-bond.actions.drain-bonded-item.steps.spell.prompt: A prepared spell you already cast today
|
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 }
|