@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/README.md
CHANGED
|
@@ -14,6 +14,9 @@ planes and characters) is left out.
|
|
|
14
14
|
pnpm add @opencharacter/engine @opencharacter/orc-2e
|
|
15
15
|
```
|
|
16
16
|
|
|
17
|
+
This release needs spec 0.3: `@opencharacter/engine` 0.3.0 or later. An engine for an older
|
|
18
|
+
spec refuses it (`spec-version-unsupported`).
|
|
19
|
+
|
|
17
20
|
The package's default export is the built pack (a `PackRelease`), and `i18n/en` its English
|
|
18
21
|
text:
|
|
19
22
|
|
|
@@ -28,9 +31,9 @@ const { ruleset } = loaded;
|
|
|
28
31
|
|
|
29
32
|
// A new character, made by the random creation start: every pick is drawn, so it finishes.
|
|
30
33
|
const blank = {
|
|
31
|
-
specVersion: '0.
|
|
34
|
+
specVersion: '0.3.0',
|
|
32
35
|
id: 'new-character',
|
|
33
|
-
packs: [{ id: 'orc-2e', version: '0.
|
|
36
|
+
packs: [{ id: 'orc-2e', version: '0.3.0' }],
|
|
34
37
|
creating: true,
|
|
35
38
|
};
|
|
36
39
|
const created = startAction(ruleset, blank, {
|
|
@@ -75,6 +78,54 @@ reading is listed under [Rule readings](#rule-readings).
|
|
|
75
78
|
GM Core's relics and vehicles, the setting's proper nouns, and anything from the pre-Remaster
|
|
76
79
|
(OGL) books, such as Ancestry Paragon and dual-class characters; GM Core's level 0 characters.
|
|
77
80
|
|
|
81
|
+
## Add-on packs
|
|
82
|
+
|
|
83
|
+
A pack that depends on `orc-2e` can add to what it offers:
|
|
84
|
+
|
|
85
|
+
- **Subclasses:** a feature whose `classOption` names a class's choice (`barbarian.instinct`,
|
|
86
|
+
`bard.muse`, `cleric.doctrine`, `wizard.school`, …) joins that choice, and Champion's Reaction
|
|
87
|
+
for causes.
|
|
88
|
+
- **Domains:** a `domain` item joins Domain Initiate and Domain Acumen (an advanced one, with
|
|
89
|
+
`advanced: true`, Advanced Domain); an initial domain spell names its domain in its `domain`
|
|
90
|
+
field for Deity's Domain; a mystery grants its domains into `oracle.domains`.
|
|
91
|
+
- **Gear:** tags, not IDs, mark Force Open's crowbar (`tool.crowbar`), Sense Direction's compass
|
|
92
|
+
(`tool.compass`) and shields against spells (`shield.against-spells`).
|
|
93
|
+
- **Archetypes:** a new archetype declares its own `archetypes.<name>.feats` field tagged
|
|
94
|
+
`archetype-feats`; a feat for an existing archetype adds 1 to that archetype's field.
|
|
95
|
+
- **Open enums** (`extendEnums`): the identity fields (`barbarian.instinct`, `bard.muse`,
|
|
96
|
+
`champion.cause`, `cleric.doctrine`, `druid.order`, `investigator.methodology`,
|
|
97
|
+
`oracle.mystery`, `ranger.edge`, `rogue.racket`, `sorcerer.bloodline`, `swashbuckler.style`,
|
|
98
|
+
`wizard.school`, `wizard.thesis`, `witch.patron`, `alchemist.field`, `stance.current`), which
|
|
99
|
+
a new subclass feature sets with its own effect (`{ target: barbarian.instinct, op: set,
|
|
100
|
+
value: "'thunder'" }`), as the core's do; weapon `group` and `damageType`, armor `group`,
|
|
101
|
+
consumable `category`, `damageType` and `persistentType`, spell damage types (`damageType`,
|
|
102
|
+
`damage2Type`, `persistentType` and the cast's `damageType` state), affliction and persistent
|
|
103
|
+
damage condition damage types, feat `category`, and the damage type parameters of `cast-spell`
|
|
104
|
+
(`damageType`) and `bomb-strike` (`damageType`, `persistentType`), so an added bomb or spell
|
|
105
|
+
deals its type (`orc-2e:actions.bomb-strike.params.damageType`). A new damage type or group also needs its
|
|
106
|
+
tag (`damage.sonic`, `group.firearm`), declared and named in the add-on.
|
|
107
|
+
- **Choices** (`extendChoices`): written value and inline option choices take additions: the
|
|
108
|
+
dedications' identity picks (Barbarian Dedication's `instinct`), the follow-up feats' inline
|
|
109
|
+
options (Order Explorer's `order`, Additional Lore's `lore`), and the 15- and 16-skill lists.
|
|
110
|
+
- **Naming what an add-on adds:** it names each added value, option or key in its own text,
|
|
111
|
+
under the key this pack would use, and `createText` finds it there when the app passes the
|
|
112
|
+
ruleset's `enumOrigins`, `optionOrigins` and `familyOrigins`. For example,
|
|
113
|
+
`sonic` added to `orc-2e:types.weapon.fields.damageType` is
|
|
114
|
+
`types.weapon.fields.damageType.values.sonic.name: Sonic` (through `enumOrigins`), and an
|
|
115
|
+
Order Explorer option `stone` is
|
|
116
|
+
`feats.druid.order-explorer.choices.order.options.stone.name: Stone` (through
|
|
117
|
+
`optionOrigins`).
|
|
118
|
+
- **Skills and Lores:** a choice of any skill reads `skills.offered` and one of any Lore
|
|
119
|
+
`skills.lores`; an add-on's Lore declares its fields (`skills.lore.<name>.rank`, `.mod`, …,
|
|
120
|
+
as `rules/lores.yaml` does) and grants its tag into both with a rules effect.
|
|
121
|
+
- **Step tags** for rules-level `option` and `changes` effects: `creation.ancestry`,
|
|
122
|
+
`creation.heritage`, `creation.background`, `creation.class` and `creation.finish` (guided and
|
|
123
|
+
random creation), `level-up.gain`, and the actions' own (`strike.hit`, …).
|
|
124
|
+
|
|
125
|
+
Still closed: attributes, proficiency ranks, saves, spell traditions (and a staff's
|
|
126
|
+
`tradition`), weapon and armor categories, and physical damage types for `versatile` and
|
|
127
|
+
`modular`, the game's fixed sets.
|
|
128
|
+
|
|
78
129
|
## License
|
|
79
130
|
|
|
80
131
|
- **License:** the ORC License. Its four notices (Article III) are in the manifest, which apps
|
|
@@ -271,7 +322,7 @@ reading is listed under [Rule readings](#rule-readings).
|
|
|
271
322
|
first of three Lores of the player's choice, named by the subject the player writes
|
|
272
323
|
(`skills.lore.custom1.subject`); Additional Lore offers all three. Assurance (farmhand, nomad, raised by belief, scholar) is an action for the skill it's
|
|
273
324
|
chosen for: a fixed 10 + the proficiency bonus against the DC, no dice and no other bonus or
|
|
274
|
-
penalty.
|
|
325
|
+
penalty. Its skill is a pick (any skill, or a trained Lore), which content granting Assurance for a named skill presets: each background's Assurance is for the skill the book names (the driver's Lore, the scholar's and raised by belief's chosen skill, an inline option each). Player Core 2's eight new Lores and its
|
|
275
326
|
ten ancestry Lores are `rules/lores-pc2.yaml`; the cursed background's Warding Sign is the
|
|
276
327
|
situational choice `wardingSign`, the feybound's Fey's Fortune `fortune`.
|
|
277
328
|
- **Feats:** a slot per level for ancestry (1, 5, 9, 13, 17), general (3, 7, 11, 15, 19; skill feats
|
|
@@ -307,8 +358,8 @@ reading is listed under [Rule readings](#rule-readings).
|
|
|
307
358
|
trained. Demoralize frightens, Trip knocks prone (1d6 bludgeoning on a critical success),
|
|
308
359
|
Grapple grabs or restrains, Escape frees; Treat Wounds (any DC your rank allows, an hour
|
|
309
360
|
doubling it) and Battle Medicine heal, Treat Poison and Treat Disease give the next save a
|
|
310
|
-
circumstance modifier (an applied effect), Administer First Aid stabilizes;
|
|
311
|
-
target off-guard to your melee Strikes (`feint.target`, which the Strike reads); a critical
|
|
361
|
+
circumstance modifier (an applied effect that save removes), Administer First Aid stabilizes;
|
|
362
|
+
Feint makes the target off-guard to your melee Strikes (`feint.target`, which the Strike reads); a critical
|
|
312
363
|
failure to Trip or Shove is prone, to Disarm off-guard; Subsist's failure is fatigued. Attack-
|
|
313
364
|
trait actions take and count the multiple attack penalty. Actions against several creatures
|
|
314
365
|
(Hide, Sneak, Lie, Coerce, Make an Impression, Seek, …) roll once and give each one's degree
|
|
@@ -428,8 +479,9 @@ reading is listed under [Rule readings](#rule-readings).
|
|
|
428
479
|
`prepare-spells` (inputs per rank the slot counts read); Improved Familiar Attunement
|
|
429
480
|
and Staff Nexus text). Split Slot: `prepare-spells` may put a second
|
|
430
481
|
spell in one slot below the highest rank, its copy naming the first's (`split`); casting either
|
|
431
|
-
expends both. Drain Bonded Item is an action (the ranks drained today
|
|
432
|
-
|
|
482
|
+
expends both. Drain Bonded Item is an action (the ranks drained today, `bondDrained`, and
|
|
483
|
+
Linked Focus's `linkedFocusUsed` are Arcane Bond's saved grant state, which `daily-preparations`
|
|
484
|
+
clears). Feats: Counterspell (the expending),
|
|
433
485
|
Linked Focus and twelve more, text where they shape a spell's range, area or traits.
|
|
434
486
|
- **The cleric** (Player Core): Wisdom, divine prepared, and the divine font's 4 to 6 extra slots
|
|
435
487
|
of heal or harm at the highest rank (to 9th), which `prepare-spells` fills. The deity is the
|
|
@@ -647,16 +699,19 @@ reading is listed under [Rule readings](#rule-readings).
|
|
|
647
699
|
- **Hero Points**: an input, 1 to start, at most 3; spending them is the app's.
|
|
648
700
|
- **Creation**: a guided start, `standard`, and a random one,
|
|
649
701
|
`random`. Guided: an ancestry and its heritage, a background and a class, then what each brings in the book's order: the ancestry's
|
|
650
|
-
boosts and the heritage's choices, the background's boosts (and a scholar's skill), the
|
|
651
|
-
key attribute, its skill, its trained skills (3 + Intelligence, each
|
|
652
|
-
|
|
653
|
-
skill trained twice), and full Hit Points. While being created the character needs an
|
|
702
|
+
boosts and the heritage's choices, the background's boosts (and a scholar's skill), the four
|
|
703
|
+
free boosts, the class's key attribute, its skill, its trained skills (3 + Intelligence, each
|
|
704
|
+
one not trained yet, counted with the free boosts in) and its feat; then the rest (the ancestry
|
|
705
|
+
feat, languages, a training freed by a skill trained twice), and full Hit Points. While being created the character needs an
|
|
654
706
|
ancestry, a background and a class (`creation-ancestry-background-class`); it never has more
|
|
655
707
|
than one of each (the content types' `copies: { max: 1 }`), created or not.
|
|
656
708
|
- **Random** (`random-character`): the rules have players choose, so the odds are the pack's. The same picks in the same order, each drawn by the engine uniformly among the
|
|
657
709
|
options eligible then (`random`): the ancestry, its heritage, the background
|
|
658
710
|
and the class, then every pick they bring (heritage feats, the key attribute, trained
|
|
659
|
-
skills, feats, languages, a freed training).
|
|
711
|
+
skills, feats, languages, a freed training). One difference: the four free boosts come
|
|
712
|
+
after the class's picks, so a choice that sets the key attribute (a rogue's racket) is made
|
|
713
|
+
before they're placed; a trained skill the final Intelligence adds is drawn with the rest.
|
|
714
|
+
Boosts follow a priority instead. An ancestry
|
|
660
715
|
takes its standard boosts (the book's default). The key attribute is planned with the
|
|
661
716
|
class: the class's own (a barbarian's Strength), else Strength or Dexterity, a d2 deciding;
|
|
662
717
|
the class's key attribute pick takes the planned one when it is offered (a rogue other than
|
|
@@ -743,7 +798,8 @@ Where the books leave a rule open, or the format needs a choice the books don't
|
|
|
743
798
|
reads it as below. These are the pack's provisional calls; a table may rule otherwise.
|
|
744
799
|
|
|
745
800
|
- **Random start:** the books have players choose, so the odds are the pack's. Each pick is
|
|
746
|
-
drawn uniformly among the options eligible then, in the guided start's order
|
|
801
|
+
drawn uniformly among the options eligible then, in the guided start's order, except that
|
|
802
|
+
the free boosts follow the class's picks, once the key attribute is known. Boosts follow a
|
|
747
803
|
priority instead: an ancestry takes its standard boosts; the key attribute is planned with the
|
|
748
804
|
class (its own, else Strength or Dexterity on a d2); every boost goes to the first offered of
|
|
749
805
|
the key attribute, Constitution, Dexterity, Wisdom, Strength, Intelligence and Charisma.
|
|
@@ -806,8 +862,10 @@ reads it as below. These are the pack's provisional calls; a table may rule othe
|
|
|
806
862
|
flanked or in cover (situational choices), when a condition is gained (`applyEffect`), daily
|
|
807
863
|
preparations (the pack's `daily-preparations` and `prepare-spells` say what happens), rests; a
|
|
808
864
|
spell's duration, sustaining and dismissing it, its area and who is in it (an applied spell
|
|
809
|
-
stays until the app removes it
|
|
810
|
-
|
|
865
|
+
stays until the app removes it, but one for the next roll, such as guidance, sure strike,
|
|
866
|
+
true target or weapon surge, ends on the roll it changes; a spell on "you and your allies"
|
|
867
|
+
takes the caster as an ally too); summoned creatures; onset, intervals and virulence of
|
|
868
|
+
afflictions.
|
|
811
869
|
- **Text only:** critical specialization, armor specialization, the skill feats that change
|
|
812
870
|
time, other creatures or what the GM tells you (58 of 106), the skill actions' movement,
|
|
813
871
|
attitudes and detection toward one observer, innate spells from heritages, Lunge; the rogue's,
|
|
@@ -825,7 +883,7 @@ reads it as below. These are the pack's provisional calls; a table may rule othe
|
|
|
825
883
|
any other Lore is a homebrew increases input and a trained-by-increase input (tagged
|
|
826
884
|
`skill-increase`, they join level-up) and rank and modifier fields, trained by a homebrew
|
|
827
885
|
effect granting its tag into `skills.trained`. The class's free skills and `extra-training`
|
|
828
|
-
offer the first seven Lores only:
|
|
886
|
+
offer the first seven Lores only: their lists are written out, as no formula lists fields by tag.
|
|
829
887
|
|
|
830
888
|
## Sources
|
|
831
889
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
id: backgrounds.driver
|
|
2
2
|
type: background
|
|
3
|
-
# Assurance
|
|
3
|
+
# Assurance's skill choice is preset to the picked Lore.
|
|
4
4
|
effects:
|
|
5
5
|
- target: skills.trained
|
|
6
6
|
op: grant
|
|
@@ -27,7 +27,7 @@ choices:
|
|
|
27
27
|
}
|
|
28
28
|
- { target: skills.trainings, op: add, value: 1 }
|
|
29
29
|
grants:
|
|
30
|
-
- { item: feats.skill.assurance,
|
|
30
|
+
- { item: feats.skill.assurance, choices: { skill: [{ option: skill.lore.driving }] } }
|
|
31
31
|
- id: piloting
|
|
32
32
|
effects:
|
|
33
33
|
- {
|
|
@@ -38,4 +38,4 @@ choices:
|
|
|
38
38
|
}
|
|
39
39
|
- { target: skills.trainings, op: add, value: 1 }
|
|
40
40
|
grants:
|
|
41
|
-
- { item: feats.skill.assurance,
|
|
41
|
+
- { item: feats.skill.assurance, choices: { skill: [{ option: skill.lore.piloting }] } }
|
|
@@ -15,7 +15,7 @@ effects:
|
|
|
15
15
|
}
|
|
16
16
|
- { target: skills.trainings, op: add, value: 2 }
|
|
17
17
|
grants:
|
|
18
|
-
- { item: feats.skill.assurance,
|
|
18
|
+
- { item: feats.skill.assurance, choices: { skill: [{ option: skill.athletics }] } }
|
|
19
19
|
choices:
|
|
20
20
|
- id: boost
|
|
21
21
|
unique: background-boosts
|
|
@@ -15,7 +15,7 @@ effects:
|
|
|
15
15
|
}
|
|
16
16
|
- { target: skills.trainings, op: add, value: 2 }
|
|
17
17
|
grants:
|
|
18
|
-
- item: feats.skill.terrain-expertise
|
|
18
|
+
- { item: feats.skill.terrain-expertise, choices: { terrain: [{ option: underground }] } }
|
|
19
19
|
choices:
|
|
20
20
|
- id: boost
|
|
21
21
|
unique: background-boosts
|
|
@@ -9,7 +9,7 @@ effects:
|
|
|
9
9
|
}
|
|
10
10
|
- { target: skills.trainings, op: add, value: 1 }
|
|
11
11
|
grants:
|
|
12
|
-
- { item: feats.skill.assurance,
|
|
12
|
+
- { item: feats.skill.assurance, choices: { skill: [{ option: skill.survival }] } }
|
|
13
13
|
choices:
|
|
14
14
|
- id: boost
|
|
15
15
|
unique: background-boosts
|
|
@@ -28,7 +28,7 @@ choices:
|
|
|
28
28
|
when: "!('skill.acrobatics' in skills.chosen)"
|
|
29
29
|
- { target: skills.trainings, op: add, value: 1 }
|
|
30
30
|
grants:
|
|
31
|
-
- { item: feats.skill.assurance,
|
|
31
|
+
- { item: feats.skill.assurance, choices: { skill: [{ option: skill.acrobatics }] } }
|
|
32
32
|
- id: arcana
|
|
33
33
|
effects:
|
|
34
34
|
- target: skills.trained
|
|
@@ -37,7 +37,7 @@ choices:
|
|
|
37
37
|
when: "!('skill.arcana' in skills.chosen)"
|
|
38
38
|
- { target: skills.trainings, op: add, value: 1 }
|
|
39
39
|
grants:
|
|
40
|
-
- { item: feats.skill.assurance,
|
|
40
|
+
- { item: feats.skill.assurance, choices: { skill: [{ option: skill.arcana }] } }
|
|
41
41
|
- id: athletics
|
|
42
42
|
effects:
|
|
43
43
|
- target: skills.trained
|
|
@@ -46,7 +46,7 @@ choices:
|
|
|
46
46
|
when: "!('skill.athletics' in skills.chosen)"
|
|
47
47
|
- { target: skills.trainings, op: add, value: 1 }
|
|
48
48
|
grants:
|
|
49
|
-
- { item: feats.skill.assurance,
|
|
49
|
+
- { item: feats.skill.assurance, choices: { skill: [{ option: skill.athletics }] } }
|
|
50
50
|
- id: crafting
|
|
51
51
|
effects:
|
|
52
52
|
- target: skills.trained
|
|
@@ -55,7 +55,7 @@ choices:
|
|
|
55
55
|
when: "!('skill.crafting' in skills.chosen)"
|
|
56
56
|
- { target: skills.trainings, op: add, value: 1 }
|
|
57
57
|
grants:
|
|
58
|
-
- { item: feats.skill.assurance,
|
|
58
|
+
- { item: feats.skill.assurance, choices: { skill: [{ option: skill.crafting }] } }
|
|
59
59
|
- id: deception
|
|
60
60
|
effects:
|
|
61
61
|
- target: skills.trained
|
|
@@ -64,7 +64,7 @@ choices:
|
|
|
64
64
|
when: "!('skill.deception' in skills.chosen)"
|
|
65
65
|
- { target: skills.trainings, op: add, value: 1 }
|
|
66
66
|
grants:
|
|
67
|
-
- { item: feats.skill.assurance,
|
|
67
|
+
- { item: feats.skill.assurance, choices: { skill: [{ option: skill.deception }] } }
|
|
68
68
|
- id: diplomacy
|
|
69
69
|
effects:
|
|
70
70
|
- target: skills.trained
|
|
@@ -73,7 +73,7 @@ choices:
|
|
|
73
73
|
when: "!('skill.diplomacy' in skills.chosen)"
|
|
74
74
|
- { target: skills.trainings, op: add, value: 1 }
|
|
75
75
|
grants:
|
|
76
|
-
- { item: feats.skill.assurance,
|
|
76
|
+
- { item: feats.skill.assurance, choices: { skill: [{ option: skill.diplomacy }] } }
|
|
77
77
|
- id: intimidation
|
|
78
78
|
effects:
|
|
79
79
|
- target: skills.trained
|
|
@@ -82,7 +82,7 @@ choices:
|
|
|
82
82
|
when: "!('skill.intimidation' in skills.chosen)"
|
|
83
83
|
- { target: skills.trainings, op: add, value: 1 }
|
|
84
84
|
grants:
|
|
85
|
-
- { item: feats.skill.assurance,
|
|
85
|
+
- { item: feats.skill.assurance, choices: { skill: [{ option: skill.intimidation }] } }
|
|
86
86
|
- id: medicine
|
|
87
87
|
effects:
|
|
88
88
|
- target: skills.trained
|
|
@@ -91,7 +91,7 @@ choices:
|
|
|
91
91
|
when: "!('skill.medicine' in skills.chosen)"
|
|
92
92
|
- { target: skills.trainings, op: add, value: 1 }
|
|
93
93
|
grants:
|
|
94
|
-
- { item: feats.skill.assurance,
|
|
94
|
+
- { item: feats.skill.assurance, choices: { skill: [{ option: skill.medicine }] } }
|
|
95
95
|
- id: nature
|
|
96
96
|
effects:
|
|
97
97
|
- target: skills.trained
|
|
@@ -100,7 +100,7 @@ choices:
|
|
|
100
100
|
when: "!('skill.nature' in skills.chosen)"
|
|
101
101
|
- { target: skills.trainings, op: add, value: 1 }
|
|
102
102
|
grants:
|
|
103
|
-
- { item: feats.skill.assurance,
|
|
103
|
+
- { item: feats.skill.assurance, choices: { skill: [{ option: skill.nature }] } }
|
|
104
104
|
- id: occultism
|
|
105
105
|
effects:
|
|
106
106
|
- target: skills.trained
|
|
@@ -109,7 +109,7 @@ choices:
|
|
|
109
109
|
when: "!('skill.occultism' in skills.chosen)"
|
|
110
110
|
- { target: skills.trainings, op: add, value: 1 }
|
|
111
111
|
grants:
|
|
112
|
-
- { item: feats.skill.assurance,
|
|
112
|
+
- { item: feats.skill.assurance, choices: { skill: [{ option: skill.occultism }] } }
|
|
113
113
|
- id: performance
|
|
114
114
|
effects:
|
|
115
115
|
- target: skills.trained
|
|
@@ -118,7 +118,7 @@ choices:
|
|
|
118
118
|
when: "!('skill.performance' in skills.chosen)"
|
|
119
119
|
- { target: skills.trainings, op: add, value: 1 }
|
|
120
120
|
grants:
|
|
121
|
-
- { item: feats.skill.assurance,
|
|
121
|
+
- { item: feats.skill.assurance, choices: { skill: [{ option: skill.performance }] } }
|
|
122
122
|
- id: religion
|
|
123
123
|
effects:
|
|
124
124
|
- target: skills.trained
|
|
@@ -127,7 +127,7 @@ choices:
|
|
|
127
127
|
when: "!('skill.religion' in skills.chosen)"
|
|
128
128
|
- { target: skills.trainings, op: add, value: 1 }
|
|
129
129
|
grants:
|
|
130
|
-
- { item: feats.skill.assurance,
|
|
130
|
+
- { item: feats.skill.assurance, choices: { skill: [{ option: skill.religion }] } }
|
|
131
131
|
- id: society
|
|
132
132
|
effects:
|
|
133
133
|
- target: skills.trained
|
|
@@ -136,7 +136,7 @@ choices:
|
|
|
136
136
|
when: "!('skill.society' in skills.chosen)"
|
|
137
137
|
- { target: skills.trainings, op: add, value: 1 }
|
|
138
138
|
grants:
|
|
139
|
-
- { item: feats.skill.assurance,
|
|
139
|
+
- { item: feats.skill.assurance, choices: { skill: [{ option: skill.society }] } }
|
|
140
140
|
- id: stealth
|
|
141
141
|
effects:
|
|
142
142
|
- target: skills.trained
|
|
@@ -145,7 +145,7 @@ choices:
|
|
|
145
145
|
when: "!('skill.stealth' in skills.chosen)"
|
|
146
146
|
- { target: skills.trainings, op: add, value: 1 }
|
|
147
147
|
grants:
|
|
148
|
-
- { item: feats.skill.assurance,
|
|
148
|
+
- { item: feats.skill.assurance, choices: { skill: [{ option: skill.stealth }] } }
|
|
149
149
|
- id: survival
|
|
150
150
|
effects:
|
|
151
151
|
- target: skills.trained
|
|
@@ -154,7 +154,7 @@ choices:
|
|
|
154
154
|
when: "!('skill.survival' in skills.chosen)"
|
|
155
155
|
- { target: skills.trainings, op: add, value: 1 }
|
|
156
156
|
grants:
|
|
157
|
-
- { item: feats.skill.assurance,
|
|
157
|
+
- { item: feats.skill.assurance, choices: { skill: [{ option: skill.survival }] } }
|
|
158
158
|
- id: thievery
|
|
159
159
|
effects:
|
|
160
160
|
- target: skills.trained
|
|
@@ -163,4 +163,4 @@ choices:
|
|
|
163
163
|
when: "!('skill.thievery' in skills.chosen)"
|
|
164
164
|
- { target: skills.trainings, op: add, value: 1 }
|
|
165
165
|
grants:
|
|
166
|
-
- { item: feats.skill.assurance,
|
|
166
|
+
- { item: feats.skill.assurance, choices: { skill: [{ option: skill.thievery }] } }
|
|
@@ -26,7 +26,7 @@ choices:
|
|
|
26
26
|
when: "!('skill.arcana' in skills.chosen)"
|
|
27
27
|
- { target: skills.trainings, op: add, value: 1 }
|
|
28
28
|
grants:
|
|
29
|
-
- { item: feats.skill.assurance,
|
|
29
|
+
- { item: feats.skill.assurance, choices: { skill: [{ option: skill.arcana }] } }
|
|
30
30
|
- id: nature
|
|
31
31
|
effects:
|
|
32
32
|
- target: skills.trained
|
|
@@ -35,7 +35,7 @@ choices:
|
|
|
35
35
|
when: "!('skill.nature' in skills.chosen)"
|
|
36
36
|
- { target: skills.trainings, op: add, value: 1 }
|
|
37
37
|
grants:
|
|
38
|
-
- { item: feats.skill.assurance,
|
|
38
|
+
- { item: feats.skill.assurance, choices: { skill: [{ option: skill.nature }] } }
|
|
39
39
|
- id: occultism
|
|
40
40
|
effects:
|
|
41
41
|
- target: skills.trained
|
|
@@ -44,7 +44,7 @@ choices:
|
|
|
44
44
|
when: "!('skill.occultism' in skills.chosen)"
|
|
45
45
|
- { target: skills.trainings, op: add, value: 1 }
|
|
46
46
|
grants:
|
|
47
|
-
- { item: feats.skill.assurance,
|
|
47
|
+
- { item: feats.skill.assurance, choices: { skill: [{ option: skill.occultism }] } }
|
|
48
48
|
- id: religion
|
|
49
49
|
effects:
|
|
50
50
|
- target: skills.trained
|
|
@@ -53,4 +53,4 @@ choices:
|
|
|
53
53
|
when: "!('skill.religion' in skills.chosen)"
|
|
54
54
|
- { target: skills.trainings, op: add, value: 1 }
|
|
55
55
|
grants:
|
|
56
|
-
- { item: feats.skill.assurance,
|
|
56
|
+
- { item: feats.skill.assurance, choices: { skill: [{ option: skill.religion }] } }
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
id: classes.alchemist.fields.chirurgeon
|
|
2
2
|
type: feature
|
|
3
|
-
fields: { level: 1 }
|
|
3
|
+
fields: { level: 1, classOption: alchemist.research-field }
|
|
4
4
|
# Medicine checks use Crafting's modifier through an `atLeast` on Medicine's.
|
|
5
5
|
effects:
|
|
6
6
|
- { target: alchemist.field, op: set, value: "'chirurgeon'" }
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
id: classes.alchemist.fields.toxicologist
|
|
2
2
|
type: feature
|
|
3
|
-
fields: { level: 1 }
|
|
3
|
+
fields: { level: 1, classOption: alchemist.research-field }
|
|
4
4
|
effects:
|
|
5
5
|
- { target: alchemist.field, op: set, value: "'toxicologist'" }
|
|
6
6
|
- target: { incoming: { fields: [hp.current], tags: [damage.poison] } }
|
|
@@ -45,44 +45,12 @@ grants:
|
|
|
45
45
|
- { item: features.alchemist.medium-armor-mastery, when: level >= 19 }
|
|
46
46
|
choices:
|
|
47
47
|
- id: research-field
|
|
48
|
-
from:
|
|
49
|
-
items:
|
|
50
|
-
[
|
|
51
|
-
classes.alchemist.fields.bomber,
|
|
52
|
-
classes.alchemist.fields.chirurgeon,
|
|
53
|
-
classes.alchemist.fields.mutagenist,
|
|
54
|
-
classes.alchemist.fields.toxicologist,
|
|
55
|
-
]
|
|
48
|
+
from: { type: feature, where: "item.classOption == 'alchemist.research-field'" }
|
|
56
49
|
- id: skills
|
|
57
50
|
unique: skill-training
|
|
58
51
|
pick: 3 + max(0, attributes.int.mod)
|
|
59
52
|
from:
|
|
60
|
-
values:
|
|
61
|
-
[
|
|
62
|
-
skill.acrobatics,
|
|
63
|
-
skill.arcana,
|
|
64
|
-
skill.athletics,
|
|
65
|
-
skill.crafting,
|
|
66
|
-
skill.deception,
|
|
67
|
-
skill.diplomacy,
|
|
68
|
-
skill.intimidation,
|
|
69
|
-
skill.medicine,
|
|
70
|
-
skill.nature,
|
|
71
|
-
skill.occultism,
|
|
72
|
-
skill.performance,
|
|
73
|
-
skill.religion,
|
|
74
|
-
skill.society,
|
|
75
|
-
skill.stealth,
|
|
76
|
-
skill.survival,
|
|
77
|
-
skill.thievery,
|
|
78
|
-
skill.lore.academia,
|
|
79
|
-
skill.lore.circus,
|
|
80
|
-
skill.lore.farming,
|
|
81
|
-
skill.lore.legal,
|
|
82
|
-
skill.lore.scribing,
|
|
83
|
-
skill.lore.underworld,
|
|
84
|
-
skill.lore.warfare,
|
|
85
|
-
]
|
|
53
|
+
values: { formula: skills.offered }
|
|
86
54
|
where: '!(value in skills.trained) && !(value in skills.chosen) || value in choice.picks'
|
|
87
55
|
effects:
|
|
88
56
|
- { target: skills.chosen, op: grant, value: { formula: pick.value } }
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
id: classes.barbarian.animals.ape
|
|
2
2
|
type: feature
|
|
3
|
-
fields: { level: 1 }
|
|
3
|
+
fields: { level: 1, classOption: barbarian.animal }
|
|
4
4
|
# The animal's unarmed attacks are standard copies while you have it; Rage equips them.
|
|
5
5
|
standardCopies:
|
|
6
6
|
- { type: weapon, where: "'animal.ape' in item.tags" }
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
id: classes.barbarian.animals.bear
|
|
2
2
|
type: feature
|
|
3
|
-
fields: { level: 1 }
|
|
3
|
+
fields: { level: 1, classOption: barbarian.animal }
|
|
4
4
|
# The animal's unarmed attacks are standard copies while you have it; Rage equips them.
|
|
5
5
|
standardCopies:
|
|
6
6
|
- { type: weapon, where: "'animal.bear' in item.tags" }
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
id: classes.barbarian.animals.bull
|
|
2
2
|
type: feature
|
|
3
|
-
fields: { level: 1 }
|
|
3
|
+
fields: { level: 1, classOption: barbarian.animal }
|
|
4
4
|
# The animal's unarmed attacks are standard copies while you have it; Rage equips them.
|
|
5
5
|
standardCopies:
|
|
6
6
|
- { type: weapon, where: "'animal.bull' in item.tags" }
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
id: classes.barbarian.animals.cat
|
|
2
2
|
type: feature
|
|
3
|
-
fields: { level: 1 }
|
|
3
|
+
fields: { level: 1, classOption: barbarian.animal }
|
|
4
4
|
# The animal's unarmed attacks are standard copies while you have it; Rage equips them.
|
|
5
5
|
standardCopies:
|
|
6
6
|
- { type: weapon, where: "'animal.cat' in item.tags" }
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
id: classes.barbarian.animals.deer
|
|
2
2
|
type: feature
|
|
3
|
-
fields: { level: 1 }
|
|
3
|
+
fields: { level: 1, classOption: barbarian.animal }
|
|
4
4
|
# The animal's unarmed attacks are standard copies while you have it; Rage equips them.
|
|
5
5
|
standardCopies:
|
|
6
6
|
- { type: weapon, where: "'animal.deer' in item.tags" }
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
id: classes.barbarian.animals.frog
|
|
2
2
|
type: feature
|
|
3
|
-
fields: { level: 1 }
|
|
3
|
+
fields: { level: 1, classOption: barbarian.animal }
|
|
4
4
|
# The animal's unarmed attacks are standard copies while you have it; Rage equips them.
|
|
5
5
|
standardCopies:
|
|
6
6
|
- { type: weapon, where: "'animal.frog' in item.tags" }
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
id: classes.barbarian.animals.shark
|
|
2
2
|
type: feature
|
|
3
|
-
fields: { level: 1 }
|
|
3
|
+
fields: { level: 1, classOption: barbarian.animal }
|
|
4
4
|
# The animal's unarmed attacks are standard copies while you have it; Rage equips them.
|
|
5
5
|
standardCopies:
|
|
6
6
|
- { type: weapon, where: "'animal.shark' in item.tags" }
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
id: classes.barbarian.animals.snake
|
|
2
2
|
type: feature
|
|
3
|
-
fields: { level: 1 }
|
|
3
|
+
fields: { level: 1, classOption: barbarian.animal }
|
|
4
4
|
# The animal's unarmed attacks are standard copies while you have it; Rage equips them.
|
|
5
5
|
standardCopies:
|
|
6
6
|
- { type: weapon, where: "'animal.snake' in item.tags" }
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
id: classes.barbarian.animals.wolf
|
|
2
2
|
type: feature
|
|
3
|
-
fields: { level: 1 }
|
|
3
|
+
fields: { level: 1, classOption: barbarian.animal }
|
|
4
4
|
# The animal's unarmed attacks are standard copies while you have it; Rage equips them.
|
|
5
5
|
standardCopies:
|
|
6
6
|
- { type: weapon, where: "'animal.wolf' in item.tags" }
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
id: classes.barbarian.instincts.animal
|
|
2
2
|
type: feature
|
|
3
|
-
fields: { level: 1 }
|
|
3
|
+
fields: { level: 1, classOption: barbarian.instinct }
|
|
4
4
|
effects:
|
|
5
5
|
- { target: barbarian.instinct, op: set, value: "'animal'" }
|
|
6
6
|
- { target: rage.animalDamage, op: set, value: 'level >= 15 ? 12 : level >= 7 ? 5 : 2' }
|
|
@@ -8,16 +8,4 @@ effects:
|
|
|
8
8
|
- { target: rage.resists, op: grant, value: { tag: damage.slashing }, when: level >= 9 }
|
|
9
9
|
choices:
|
|
10
10
|
- id: animal
|
|
11
|
-
from:
|
|
12
|
-
items:
|
|
13
|
-
[
|
|
14
|
-
classes.barbarian.animals.ape,
|
|
15
|
-
classes.barbarian.animals.bear,
|
|
16
|
-
classes.barbarian.animals.bull,
|
|
17
|
-
classes.barbarian.animals.cat,
|
|
18
|
-
classes.barbarian.animals.deer,
|
|
19
|
-
classes.barbarian.animals.frog,
|
|
20
|
-
classes.barbarian.animals.shark,
|
|
21
|
-
classes.barbarian.animals.snake,
|
|
22
|
-
classes.barbarian.animals.wolf,
|
|
23
|
-
]
|
|
11
|
+
from: { type: feature, where: "item.classOption == 'barbarian.animal'" }
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
id: classes.barbarian.instincts.dragon
|
|
2
2
|
type: feature
|
|
3
|
-
fields: { level: 1 }
|
|
3
|
+
fields: { level: 1, classOption: barbarian.instinct }
|
|
4
4
|
effects:
|
|
5
5
|
- { target: barbarian.instinct, op: set, value: "'dragon'" }
|
|
6
6
|
- { target: rage.altDamage, op: set, value: 'level >= 15 ? 16 : level >= 7 ? 8 : 4' }
|
|
@@ -9,7 +9,6 @@ choices:
|
|
|
9
9
|
- id: breath
|
|
10
10
|
from: { values: [bludgeoning, fire, force, mental, poison, spirit] }
|
|
11
11
|
effects:
|
|
12
|
-
- { target: rage.altType, op: set, value: pick.value }
|
|
13
12
|
- target: rage.resists
|
|
14
13
|
op: grant
|
|
15
14
|
value: { formula: "'damage.' + pick.value" }
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
id: classes.barbarian.instincts.fury
|
|
2
2
|
type: feature
|
|
3
|
-
fields: { level: 1 }
|
|
3
|
+
fields: { level: 1, classOption: barbarian.instinct }
|
|
4
4
|
effects:
|
|
5
5
|
- { target: barbarian.instinct, op: set, value: "'fury'" }
|
|
6
6
|
- { target: rage.damage, op: set, value: 'level >= 15 ? 13 : level >= 7 ? 7 : 3' }
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
id: classes.barbarian.instincts.spirit
|
|
2
2
|
type: feature
|
|
3
|
-
fields: { level: 1 }
|
|
3
|
+
fields: { level: 1, classOption: barbarian.instinct }
|
|
4
4
|
effects:
|
|
5
5
|
- { target: barbarian.instinct, op: set, value: "'spirit'" }
|
|
6
6
|
- { target: rage.altDamage, op: set, value: 'level >= 15 ? 13 : level >= 7 ? 7 : 3' }
|
|
7
|
-
- { target: rage.altType, op: set, value: "'spirit'" }
|
|
8
7
|
- { target: rage.resists, op: grant, value: { tag: damage.void }, when: level >= 9 }
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
id: classes.barbarian.instincts.superstition
|
|
2
2
|
type: feature
|
|
3
|
-
fields: { level: 1 }
|
|
3
|
+
fields: { level: 1, classOption: barbarian.instinct }
|
|
4
4
|
effects:
|
|
5
5
|
- { target: barbarian.instinct, op: set, value: "'superstition'" }
|
|
6
6
|
- { target: rage.damage, op: set, value: 'level >= 15 ? 13 : level >= 7 ? 7 : 3' }
|