@archivist-gg/dnd5e 0.3.13 → 0.3.19
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/dist/background/background.codec.js +5 -5
- package/dist/background/background.parser.js +4 -4
- package/dist/background/background.schema.js +3 -3
- package/dist/chunk-3LWMFYKS.js +57 -0
- package/dist/{chunk-4SLOJXJ4.js → chunk-3SFGWFVQ.js} +1 -1
- package/dist/{chunk-Q6UOHCCT.js → chunk-3SIUAFDQ.js} +1 -1
- package/dist/chunk-4J6DS3EJ.js +30 -0
- package/dist/{chunk-RLGQ5PZZ.js → chunk-5JXFJ5AU.js} +11 -1
- package/dist/{chunk-4BZ47YJ4.js → chunk-64VNLMSG.js} +59 -16
- package/dist/{chunk-XY6X2APM.js → chunk-7Q2VPKCD.js} +17 -0
- package/dist/{chunk-Q5XTEYHD.js → chunk-7XJHI5H5.js} +16 -9
- package/dist/{chunk-FPGXFD2M.js → chunk-B2QHP6UF.js} +2 -2
- package/dist/{chunk-HJQNK3J5.js → chunk-B3DP42OM.js} +1 -4
- package/dist/{chunk-MC5YJ4PB.js → chunk-BJGOSM76.js} +1 -1
- package/dist/{chunk-VDPRBUU5.js → chunk-BJWSOQUC.js} +1 -1
- package/dist/{chunk-QEO7LYTG.js → chunk-EJD47JHL.js} +181 -93
- package/dist/{chunk-X7VZY4ON.js → chunk-FJYBLXV7.js} +2 -2
- package/dist/{chunk-QSBJ6NEM.js → chunk-FMUD3LDV.js} +1 -1
- package/dist/{chunk-LVX6TQ3R.js → chunk-FMYWORTP.js} +2 -2
- package/dist/{chunk-PX25R3DK.js → chunk-FVXLP7P3.js} +1 -1
- package/dist/{chunk-XJRNEQPD.js → chunk-GVWEFECG.js} +1 -1
- package/dist/{chunk-R2V5LN3I.js → chunk-HY2SRSVM.js} +1 -1
- package/dist/{chunk-ZMJQUZQH.js → chunk-JXWNXIIZ.js} +24 -0
- package/dist/chunk-KR6JF3BF.js +14 -0
- package/dist/{chunk-DPM6V7YX.js → chunk-LICYHPI3.js} +82 -6
- package/dist/{chunk-J53ERF6K.js → chunk-LNT64X7C.js} +1 -1
- package/dist/{chunk-RQNJXADQ.js → chunk-NKZMQV2C.js} +1 -1
- package/dist/{chunk-UE6LKRXQ.js → chunk-NTU2DXNG.js} +24 -1
- package/dist/{chunk-T5GZBKIQ.js → chunk-NXUY5XQN.js} +168 -33
- package/dist/{chunk-M2OWVAZG.js → chunk-NZO7M5GV.js} +1 -1
- package/dist/{chunk-BRGLDWUP.js → chunk-OOL4KMG2.js} +7 -3
- package/dist/{chunk-MWCCGPG3.js → chunk-OOSRUJBI.js} +3 -2
- package/dist/{chunk-H5PTKYXL.js → chunk-QA3YCOML.js} +1 -1
- package/dist/{chunk-MUIU7RZ3.js → chunk-QFWQKS3M.js} +1 -1
- package/dist/chunk-RD2MID3M.js +292 -0
- package/dist/chunk-TRBGC4ZG.js +112 -0
- package/dist/{chunk-PLOSP4XQ.js → chunk-UJCK5IW4.js} +11 -2
- package/dist/{chunk-5KGV6TF7.js → chunk-UNYR5GLI.js} +1 -1
- package/dist/{chunk-JNNNBEUH.js → chunk-VN5DLURA.js} +7 -2
- package/dist/{chunk-EL6QPF6I.js → chunk-VP5TIXDK.js} +1 -1
- package/dist/chunk-WOHX7YTH.js +165 -0
- package/dist/{chunk-G7ED5H2G.js → chunk-XTEFPUSN.js} +1 -1
- package/dist/{chunk-6ZY3U6BQ.js → chunk-ZOWKWMD2.js} +1 -1
- package/dist/class/class.codec.js +6 -6
- package/dist/class/class.parser.js +5 -5
- package/dist/class/class.schema.d.ts +8 -0
- package/dist/class/class.schema.js +4 -4
- package/dist/class/class.standard-array.d.ts +16 -0
- package/dist/class/class.standard-array.js +20 -0
- package/dist/class/class.types.d.ts +3 -0
- package/dist/dnd/amount-text.d.ts +42 -0
- package/dist/dnd/amount-text.js +15 -0
- package/dist/dnd/resource-words.d.ts +4 -0
- package/dist/dnd/resource-words.js +30 -0
- package/dist/entities/registry-revision.d.ts +25 -0
- package/dist/entities/registry-revision.js +10 -0
- package/dist/feat/feat.codec.js +5 -5
- package/dist/feat/feat.parser.js +4 -4
- package/dist/feat/feat.schema.d.ts +34 -0
- package/dist/feat/feat.schema.js +3 -3
- package/dist/index.js +4027 -383
- package/dist/monster/monster.parser.js +5 -5
- package/dist/monster/monster.schema.js +4 -4
- package/dist/optional-feature/optional-feature.codec.js +5 -4
- package/dist/optional-feature/optional-feature.parser.js +4 -3
- package/dist/optional-feature/optional-feature.schema.d.ts +35 -0
- package/dist/optional-feature/optional-feature.schema.js +3 -2
- package/dist/pc/pc.additional-spells.d.ts +16 -2
- package/dist/pc/pc.additional-spells.js +5 -2
- package/dist/pc/pc.amount-bindings.d.ts +41 -0
- package/dist/pc/pc.amount-bindings.js +28 -0
- package/dist/pc/pc.decision-engine.d.ts +11 -0
- package/dist/pc/pc.decision-engine.js +20 -16
- package/dist/pc/pc.entry-overrides.js +3 -2
- package/dist/pc/pc.equipment.js +7 -5
- package/dist/pc/pc.feature-effects.d.ts +21 -2
- package/dist/pc/pc.feature-effects.js +15 -2
- package/dist/pc/pc.infusions.d.ts +9 -1
- package/dist/pc/pc.infusions.js +3 -2
- package/dist/pc/pc.member-choices.d.ts +122 -0
- package/dist/pc/pc.member-choices.js +39 -0
- package/dist/pc/pc.parser.js +1 -1
- package/dist/pc/pc.pools.d.ts +7 -0
- package/dist/pc/pc.pools.js +5 -2
- package/dist/pc/pc.proficiencies.d.ts +14 -0
- package/dist/pc/pc.proficiencies.js +72 -22
- package/dist/pc/pc.proficiency-normalize.d.ts +14 -0
- package/dist/pc/pc.proficiency-normalize.js +9 -3
- package/dist/pc/pc.proficiency-query.js +7 -1
- package/dist/pc/pc.recalc.js +212 -99
- package/dist/pc/pc.resolver.d.ts +6 -2
- package/dist/pc/pc.resolver.js +16 -14
- package/dist/pc/pc.rest.js +4 -3
- package/dist/pc/pc.schema.d.ts +48 -2
- package/dist/pc/pc.schema.js +1 -1
- package/dist/pc/pc.spell-scope.d.ts +22 -0
- package/dist/pc/pc.tool-picks.js +2 -2
- package/dist/pc/pc.types.d.ts +110 -6
- package/dist/pc/pc.weapon-grant.d.ts +15 -0
- package/dist/pc/pool-layout.d.ts +3 -9
- package/dist/pc/pool-layout.js +1 -3
- package/dist/pc/resource-equivalents.d.ts +44 -0
- package/dist/pc/spell-source.js +4 -9
- package/dist/race/race.codec.js +6 -6
- package/dist/race/race.parser.js +5 -5
- package/dist/race/race.schema.js +4 -4
- package/dist/schemas/choice-schema.js +2 -2
- package/dist/schemas/feature-effect-schema.d.ts +34 -0
- package/dist/schemas/feature-effect-schema.js +1 -1
- package/dist/schemas/feature-schema.js +3 -3
- package/dist/spell/spell.codec.js +2 -2
- package/dist/spell/spell.parser.d.ts +6 -1
- package/dist/spell/spell.parser.js +5 -3
- package/dist/spell/spell.types.d.ts +10 -0
- package/dist/subclass/subclass.codec.js +6 -6
- package/dist/subclass/subclass.parser.js +5 -5
- package/dist/subclass/subclass.schema.js +4 -4
- package/dist/types/choice.d.ts +7 -2
- package/dist/types/feature-effect.d.ts +24 -0
- package/dist/types/optional-feature.types.d.ts +6 -1
- package/dist/types/selection-pool.d.ts +2 -2
- package/package.json +1 -1
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import type { CastingOption } from "@archivist-gg/dnd5e/types/casting-option";
|
|
2
2
|
export type { CastingOption };
|
|
3
|
+
export interface SpellMaterial {
|
|
4
|
+
text: string;
|
|
5
|
+
cost?: number;
|
|
6
|
+
consume?: boolean | string;
|
|
7
|
+
}
|
|
3
8
|
export interface Spell {
|
|
4
9
|
name: string;
|
|
5
10
|
level?: number;
|
|
@@ -7,6 +12,11 @@ export interface Spell {
|
|
|
7
12
|
casting_time?: string;
|
|
8
13
|
range?: string;
|
|
9
14
|
components?: string;
|
|
15
|
+
/** D2b-B: the converter's structured material component (`components.m` as an object), kept beside the `components` string,
|
|
16
|
+
* which cannot carry its numbers: `cost` in copper pieces as authored (5etools), `consume` true or a word ("optional").
|
|
17
|
+
* Absent for a string `components`, a bare `m: true` or a string `m`. A PARSE output only, never a YAML key: the codec
|
|
18
|
+
* drops it on serialize. */
|
|
19
|
+
material?: SpellMaterial;
|
|
10
20
|
duration?: string;
|
|
11
21
|
concentration?: boolean;
|
|
12
22
|
ritual?: boolean;
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
2
|
subclassCodec
|
|
3
|
-
} from "../chunk-
|
|
4
|
-
import "../chunk-
|
|
5
|
-
import "../chunk-
|
|
3
|
+
} from "../chunk-NZO7M5GV.js";
|
|
4
|
+
import "../chunk-UNYR5GLI.js";
|
|
5
|
+
import "../chunk-LNT64X7C.js";
|
|
6
6
|
import "../chunk-4U55VNC7.js";
|
|
7
7
|
import "../chunk-G6MHJDVT.js";
|
|
8
8
|
import "../chunk-CJYCVNW2.js";
|
|
9
|
-
import "../chunk-
|
|
9
|
+
import "../chunk-B2QHP6UF.js";
|
|
10
10
|
import "../chunk-WYGD2UGN.js";
|
|
11
11
|
import "../chunk-ZJXSXVFP.js";
|
|
12
|
-
import "../chunk-
|
|
13
|
-
import "../chunk-
|
|
12
|
+
import "../chunk-OOL4KMG2.js";
|
|
13
|
+
import "../chunk-JXWNXIIZ.js";
|
|
14
14
|
import "../chunk-UA5KS2PL.js";
|
|
15
15
|
export {
|
|
16
16
|
subclassCodec
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import {
|
|
2
2
|
parseSubclass
|
|
3
|
-
} from "../chunk-
|
|
4
|
-
import "../chunk-
|
|
3
|
+
} from "../chunk-UNYR5GLI.js";
|
|
4
|
+
import "../chunk-LNT64X7C.js";
|
|
5
5
|
import "../chunk-4U55VNC7.js";
|
|
6
6
|
import "../chunk-G6MHJDVT.js";
|
|
7
7
|
import "../chunk-CJYCVNW2.js";
|
|
8
|
-
import "../chunk-
|
|
8
|
+
import "../chunk-B2QHP6UF.js";
|
|
9
9
|
import "../chunk-WYGD2UGN.js";
|
|
10
10
|
import "../chunk-ZJXSXVFP.js";
|
|
11
|
-
import "../chunk-
|
|
12
|
-
import "../chunk-
|
|
11
|
+
import "../chunk-OOL4KMG2.js";
|
|
12
|
+
import "../chunk-JXWNXIIZ.js";
|
|
13
13
|
import "../chunk-UA5KS2PL.js";
|
|
14
14
|
export {
|
|
15
15
|
parseSubclass
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
subclassEntitySchema
|
|
3
|
-
} from "../chunk-
|
|
3
|
+
} from "../chunk-LNT64X7C.js";
|
|
4
4
|
import "../chunk-G6MHJDVT.js";
|
|
5
5
|
import "../chunk-CJYCVNW2.js";
|
|
6
|
-
import "../chunk-
|
|
6
|
+
import "../chunk-B2QHP6UF.js";
|
|
7
7
|
import "../chunk-WYGD2UGN.js";
|
|
8
8
|
import "../chunk-ZJXSXVFP.js";
|
|
9
|
-
import "../chunk-
|
|
10
|
-
import "../chunk-
|
|
9
|
+
import "../chunk-OOL4KMG2.js";
|
|
10
|
+
import "../chunk-JXWNXIIZ.js";
|
|
11
11
|
import "../chunk-UA5KS2PL.js";
|
|
12
12
|
export {
|
|
13
13
|
subclassEntitySchema
|
package/dist/types/choice.d.ts
CHANGED
|
@@ -22,8 +22,8 @@ export declare const ALL_SKILL_SLUGS: SkillSlug[];
|
|
|
22
22
|
* comparison, `matchPool` — a module-level helper it shares with its other call
|
|
23
23
|
* sites, not one of its own. `computeEffectiveProficiencies` reads ALL_LANGUAGES
|
|
24
24
|
* from HERE, directly — it does not go through the generator's KNOWN_LANGUAGES.
|
|
25
|
-
* · the PLUGIN: `proficiency-
|
|
26
|
-
*
|
|
25
|
+
* · the PLUGIN: `proficiency-picker.ts` (D4 A) lists STANDARD, EXOTIC ("Rare") and
|
|
26
|
+
* SECRET_LANGUAGES as its Languages rows, plus any held or removed value they miss.
|
|
27
27
|
* Membership is also what makes two spellings of one language FOLD onto a single
|
|
28
28
|
* row: a vocabulary MISS keys on the raw string and splits the row in two. */
|
|
29
29
|
export declare const STANDARD_LANGUAGES: string[];
|
|
@@ -88,6 +88,8 @@ export interface EntityFilter {
|
|
|
88
88
|
list?: string;
|
|
89
89
|
level?: number;
|
|
90
90
|
edition?: string;
|
|
91
|
+
/** D2b-A: true keeps only spells a note marks `ritual` (Pact of the Tome's rituals). */
|
|
92
|
+
ritual?: boolean;
|
|
91
93
|
}
|
|
92
94
|
export interface InlineOption {
|
|
93
95
|
value: string;
|
|
@@ -116,6 +118,9 @@ export type Choice = {
|
|
|
116
118
|
entity_type: string;
|
|
117
119
|
from?: string[];
|
|
118
120
|
where?: EntityFilter;
|
|
121
|
+
/** D2b-A: the pick names a TARGET (the cantrip a blast invocation's rider reaches), not a grant: nothing it picks
|
|
122
|
+
* becomes the character's own (a spell, a feat, a feature). */
|
|
123
|
+
target?: true;
|
|
119
124
|
} | {
|
|
120
125
|
kind: "select-proficiency";
|
|
121
126
|
id: string;
|
|
@@ -5,6 +5,23 @@ export type SenseType = "darkvision" | "blindsight" | "tremorsense" | "truesight
|
|
|
5
5
|
* Unarmed Strike row, `finesse` and `thrown` the row's properties, and `weapon` every attack row (today's reach, the
|
|
6
6
|
* Unarmed Strike row included). A list reaches a row when ANY word matches it. */
|
|
7
7
|
export type WeaponScope = "weapon" | "melee" | "ranged" | "unarmed" | "finesse" | "thrown";
|
|
8
|
+
/** A spell damage rider's spell scope, the `damage-bonus` arm's `spell_scope` (found 2026-09-29: Potent Spellcasting,
|
|
9
|
+
* Empowered Evocation, Elemental Affinity and Radiant Soul said which spells they reach only in prose, so they reached
|
|
10
|
+
* none). The rider reaches a character's spell that DEALS DAMAGE when every word it carries matches: `list` the spell is
|
|
11
|
+
* on that class's list, `level` its exact level (0 = cantrip), `school` its school, `damage_types` it deals ANY of them,
|
|
12
|
+
* `damage_type_pick` it deals the damage type the character chose at that `select-inline` (its option value or a type
|
|
13
|
+
* named in its label, "Red (Fire)"), `spells` it is one of these (a name or a slug). `once`: the rider adds to ONE damage
|
|
14
|
+
* roll of the casting, however many rolls or targets the spell has ("one damage roll of that spell"). Read with
|
|
15
|
+
* `applies_to: spell` or `all`; `all` with no scope reaches every damaging spell. */
|
|
16
|
+
export interface SpellScope {
|
|
17
|
+
list?: string;
|
|
18
|
+
level?: number;
|
|
19
|
+
school?: string;
|
|
20
|
+
damage_types?: string[];
|
|
21
|
+
damage_type_pick?: string;
|
|
22
|
+
spells?: string[];
|
|
23
|
+
once?: boolean;
|
|
24
|
+
}
|
|
8
25
|
/** Present on every arm: whose numbers the effect changes. Absent === "self". The engine's fold readers skip
|
|
9
26
|
* every effect whose subject is present and not "self" (`foldsOnSelf` in pc.feature-effects.ts). */
|
|
10
27
|
type Subject = {
|
|
@@ -27,6 +44,12 @@ export type FeatureEffect = ({
|
|
|
27
44
|
skills: string[];
|
|
28
45
|
ability: Ability;
|
|
29
46
|
minimum?: number;
|
|
47
|
+
} & Qualified) | ({
|
|
48
|
+
kind: "save-bonus";
|
|
49
|
+
ability: Ability;
|
|
50
|
+
minimum?: number;
|
|
51
|
+
saves?: Ability[];
|
|
52
|
+
inactive_while?: "incapacitated" | "unconscious";
|
|
30
53
|
} & Qualified) | ({
|
|
31
54
|
kind: "half-proficiency";
|
|
32
55
|
skills?: string[];
|
|
@@ -75,6 +98,7 @@ export type FeatureEffect = ({
|
|
|
75
98
|
damage_type: string;
|
|
76
99
|
amount: string;
|
|
77
100
|
applies_to?: "spell" | "all" | WeaponScope | WeaponScope[];
|
|
101
|
+
spell_scope?: SpellScope;
|
|
78
102
|
} & Qualified) | ({
|
|
79
103
|
kind: "proficiency";
|
|
80
104
|
proficiency_type: "skill" | "tool" | "language" | "saving-throw" | "armor" | "weapon";
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { Choice } from "./choice.js";
|
|
1
2
|
import type { FeatureEffect } from "./feature-effect.js";
|
|
2
3
|
import type { ActionCost, ResetTrigger, ResourceConsumption } from "./resource.js";
|
|
3
4
|
import type { Duration } from "../schemas/duration-schema.js";
|
|
@@ -8,7 +9,7 @@ import type { AdditionalSpellsEntry, ProgressionEntry } from "../schemas/entity-
|
|
|
8
9
|
* `feature_type` field is now an open string (see {@link OptionalFeatureEntity})
|
|
9
10
|
* so homebrew categories parse; this union is kept purely as a reference list.
|
|
10
11
|
*/
|
|
11
|
-
export type OptionalFeatureKind = "invocation" | "fighting_style" | "metamagic" | "maneuver" | "infusion" | "artificer_plan";
|
|
12
|
+
export type OptionalFeatureKind = "invocation" | "fighting_style" | "metamagic" | "maneuver" | "infusion" | "artificer_plan" | "pact_boon";
|
|
12
13
|
/** A class/subclass named reference carried by a level prerequisite; mirrors namedRefSchema. */
|
|
13
14
|
export type OptionalFeatureNamedRef = {
|
|
14
15
|
name: string;
|
|
@@ -165,4 +166,8 @@ export interface OptionalFeatureEntity {
|
|
|
165
166
|
options?: OptionRow[];
|
|
166
167
|
/** This member infuses an existing object; its effect is an item-vocabulary overlay (spec §4.2). */
|
|
167
168
|
infuse?: InfuseBlock;
|
|
169
|
+
/** D2b-A (design §2.2 step 1): the member's OWN choices (Lessons of the First Ones' Origin feat, Superior Technique's
|
|
170
|
+
* maneuver, Pact of the Tome's cantrips and rituals), in the same `Choice` vocabulary features and feats use. Absent,
|
|
171
|
+
* the engine derives them from the raw keys the note already carries (`memberChoices`, `pc.member-choices.ts`). */
|
|
172
|
+
choices?: Choice[];
|
|
168
173
|
}
|
|
@@ -43,8 +43,8 @@ export interface PoolGrant {
|
|
|
43
43
|
* members' `rendering_hint` at resolve time onto `ResolvedPool.layout` (pc/pool-layout.ts), and that
|
|
44
44
|
* derivation is UNCONDITIONAL: it runs whether or not the declaration carries a `layout`. R4-G4 T5
|
|
45
45
|
* LANDED the precedence in the plugin: `TabsContainer`'s dynamic-pool-tab loop reads the AUTHORED
|
|
46
|
-
* value first, then `ResolvedPool.layout
|
|
47
|
-
*
|
|
46
|
+
* value first, then `ResolvedPool.layout`. Since PT (spec §9) every pool tab draws one table and the value
|
|
47
|
+
* picks only the tab's HEAD (`poolPresentation`); `spell-like` and `blocks` still parse and are ignored.
|
|
48
48
|
* R4-G5 CLOSED that list, and NOT by adding values: `pool-selection` and `stance` never get a layout value
|
|
49
49
|
* (measured, spec §10: the three `stance`-hinted documents are field-identical to three unhinted siblings, and
|
|
50
50
|
* `pool-selection`'s meaning is delivered by `spell-like` plus the §5 head), and `granted-die-to-ally` is a
|