@archivist-gg/dnd5e 0.3.7 → 0.3.9

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.
Files changed (65) hide show
  1. package/dist/background/background.codec.js +5 -5
  2. package/dist/background/background.parser.js +4 -4
  3. package/dist/background/background.schema.js +3 -3
  4. package/dist/{chunk-RWZTGMSN.js → chunk-22MOUU2G.js} +1 -1
  5. package/dist/{chunk-IWRVOCT5.js → chunk-2M34FLAY.js} +1 -1
  6. package/dist/{chunk-JKLRBILX.js → chunk-3UNP3G4D.js} +1 -1
  7. package/dist/{chunk-3PZHBLFG.js → chunk-4DOMDEBZ.js} +1 -1
  8. package/dist/{chunk-CQAL67R3.js → chunk-7YU4NPKR.js} +1 -1
  9. package/dist/{chunk-BS355LND.js → chunk-BIA32MQ5.js} +1 -1
  10. package/dist/{chunk-7MRW4RTH.js → chunk-BL3VELKP.js} +1 -1
  11. package/dist/{chunk-MT4RWROQ.js → chunk-BLRW2UU6.js} +2 -2
  12. package/dist/{chunk-KPEJMNRD.js → chunk-CBEKVAX4.js} +30 -7
  13. package/dist/{chunk-A6YL53NC.js → chunk-G247QXWW.js} +1 -1
  14. package/dist/{chunk-EYZCCWG2.js → chunk-HLQAFZKQ.js} +1 -1
  15. package/dist/{chunk-ABQ6ZWAF.js → chunk-J77CKYV3.js} +1 -1
  16. package/dist/{chunk-MYW7AOUE.js → chunk-JANNRGJC.js} +1 -1
  17. package/dist/{chunk-63XQXPZL.js → chunk-JCEV7KYN.js} +1 -1
  18. package/dist/{chunk-ULCQ73LA.js → chunk-MAH6DCRI.js} +1 -1
  19. package/dist/{chunk-7WNQJAZW.js → chunk-MQ747UCR.js} +2 -2
  20. package/dist/{chunk-H4VEMVOO.js → chunk-NWDF5HG3.js} +1 -1
  21. package/dist/{chunk-BJFL4KYG.js → chunk-OYUEUKKF.js} +3 -3
  22. package/dist/{chunk-JOVMV2X5.js → chunk-PI4LLJG4.js} +3 -3
  23. package/dist/{chunk-NNAQ4KQF.js → chunk-PJMG5XV3.js} +1 -1
  24. package/dist/{chunk-3BMVVNCS.js → chunk-QHMWA3SZ.js} +1 -1
  25. package/dist/{chunk-B4TQTJVC.js → chunk-R747YKS7.js} +1 -1
  26. package/dist/{chunk-DTCR4DBF.js → chunk-S56D6B6C.js} +3 -3
  27. package/dist/{chunk-2BI5NAXK.js → chunk-V6LJFP4R.js} +2 -2
  28. package/dist/{chunk-X3D6LXUU.js → chunk-XTRDCSJB.js} +7 -0
  29. package/dist/{chunk-UA3I2YSO.js → chunk-ZJXSXVFP.js} +1 -1
  30. package/dist/class/class.codec.js +7 -7
  31. package/dist/class/class.parser.js +6 -6
  32. package/dist/class/class.schema.js +5 -5
  33. package/dist/feat/feat.codec.js +6 -6
  34. package/dist/feat/feat.parser.js +5 -5
  35. package/dist/feat/feat.schema.d.ts +23 -0
  36. package/dist/feat/feat.schema.js +4 -4
  37. package/dist/index.js +24 -24
  38. package/dist/monster/monster.parser.js +6 -6
  39. package/dist/monster/monster.schema.js +5 -5
  40. package/dist/optional-feature/optional-feature.codec.js +5 -5
  41. package/dist/optional-feature/optional-feature.parser.js +4 -4
  42. package/dist/optional-feature/optional-feature.schema.d.ts +24 -0
  43. package/dist/optional-feature/optional-feature.schema.js +3 -3
  44. package/dist/pc/pc.decision-engine.js +2 -2
  45. package/dist/pc/pc.feature-effects.d.ts +27 -0
  46. package/dist/pc/pc.feature-effects.js +1 -1
  47. package/dist/pc/pc.proficiencies.js +2 -2
  48. package/dist/pc/pc.recalc.js +58 -30
  49. package/dist/pc/pc.resolver.js +2 -2
  50. package/dist/pc/pc.types.d.ts +19 -0
  51. package/dist/race/race.codec.js +7 -7
  52. package/dist/race/race.parser.js +6 -6
  53. package/dist/race/race.schema.js +5 -5
  54. package/dist/schemas/choice-schema.js +2 -2
  55. package/dist/schemas/feature-effect-schema.d.ts +23 -0
  56. package/dist/schemas/feature-effect-schema.js +1 -1
  57. package/dist/schemas/feature-schema.js +4 -4
  58. package/dist/schemas/resource-schema.d.ts +1 -0
  59. package/dist/schemas/resource-schema.js +1 -1
  60. package/dist/subclass/subclass.codec.js +7 -7
  61. package/dist/subclass/subclass.parser.js +6 -6
  62. package/dist/subclass/subclass.schema.js +5 -5
  63. package/dist/types/feature-effect.d.ts +9 -0
  64. package/dist/types/resource.d.ts +1 -1
  65. package/package.json +1 -1
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  backgroundCodec
3
- } from "../chunk-ULCQ73LA.js";
4
- import "../chunk-3PZHBLFG.js";
5
- import "../chunk-63XQXPZL.js";
3
+ } from "../chunk-MAH6DCRI.js";
4
+ import "../chunk-4DOMDEBZ.js";
5
+ import "../chunk-JCEV7KYN.js";
6
6
  import "../chunk-IN4M4X7P.js";
7
- import "../chunk-IWRVOCT5.js";
8
- import "../chunk-X3D6LXUU.js";
7
+ import "../chunk-2M34FLAY.js";
8
+ import "../chunk-XTRDCSJB.js";
9
9
  import "../chunk-UA5KS2PL.js";
10
10
  export {
11
11
  backgroundCodec
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  parseBackground
3
- } from "../chunk-3PZHBLFG.js";
4
- import "../chunk-63XQXPZL.js";
3
+ } from "../chunk-4DOMDEBZ.js";
4
+ import "../chunk-JCEV7KYN.js";
5
5
  import "../chunk-IN4M4X7P.js";
6
- import "../chunk-IWRVOCT5.js";
7
- import "../chunk-X3D6LXUU.js";
6
+ import "../chunk-2M34FLAY.js";
7
+ import "../chunk-XTRDCSJB.js";
8
8
  import "../chunk-UA5KS2PL.js";
9
9
  export {
10
10
  parseBackground
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  backgroundEntitySchema,
3
3
  langProfSchema
4
- } from "../chunk-63XQXPZL.js";
4
+ } from "../chunk-JCEV7KYN.js";
5
5
  import "../chunk-IN4M4X7P.js";
6
- import "../chunk-IWRVOCT5.js";
7
- import "../chunk-X3D6LXUU.js";
6
+ import "../chunk-2M34FLAY.js";
7
+ import "../chunk-XTRDCSJB.js";
8
8
  import "../chunk-UA5KS2PL.js";
9
9
  export {
10
10
  backgroundEntitySchema,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  featEntitySchema
3
- } from "./chunk-BJFL4KYG.js";
3
+ } from "./chunk-OYUEUKKF.js";
4
4
 
5
5
  // src/feat/feat.parser.ts
6
6
  import { parseYaml } from "@archivist-gg/core";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  featureEffectSchema
3
- } from "./chunk-X3D6LXUU.js";
3
+ } from "./chunk-XTRDCSJB.js";
4
4
 
5
5
  // src/schemas/choice-schema.ts
6
6
  import { z } from "zod";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  parseFeat
3
- } from "./chunk-RWZTGMSN.js";
3
+ } from "./chunk-22MOUU2G.js";
4
4
 
5
5
  // src/feat/feat.codec.ts
6
6
  import yaml from "js-yaml";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  backgroundEntitySchema
3
- } from "./chunk-63XQXPZL.js";
3
+ } from "./chunk-JCEV7KYN.js";
4
4
 
5
5
  // src/background/background.parser.ts
6
6
  import { parseYaml } from "@archivist-gg/core";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  parseRace
3
- } from "./chunk-7MRW4RTH.js";
3
+ } from "./chunk-BL3VELKP.js";
4
4
 
5
5
  // src/race/race.codec.ts
6
6
  import yaml from "js-yaml";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  parseClass
3
- } from "./chunk-H4VEMVOO.js";
3
+ } from "./chunk-NWDF5HG3.js";
4
4
 
5
5
  // src/class/class.codec.ts
6
6
  import yaml from "js-yaml";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  raceEntitySchema
3
- } from "./chunk-2BI5NAXK.js";
3
+ } from "./chunk-V6LJFP4R.js";
4
4
  import {
5
5
  aliasFeatureListActionCost
6
6
  } from "./chunk-4U55VNC7.js";
@@ -8,10 +8,10 @@ import {
8
8
  } from "./chunk-CJYCVNW2.js";
9
9
  import {
10
10
  featureSchema
11
- } from "./chunk-JOVMV2X5.js";
11
+ } from "./chunk-PI4LLJG4.js";
12
12
  import {
13
13
  resourceSchema
14
- } from "./chunk-UA3I2YSO.js";
14
+ } from "./chunk-ZJXSXVFP.js";
15
15
  import {
16
16
  additionalSpellsEntrySchema,
17
17
  imageField,
@@ -18,9 +18,13 @@ import {
18
18
  function emptyFeatureEffectTotals() {
19
19
  return {
20
20
  initiative_bonus: 0,
21
+ initiative_terms: [],
22
+ skill_bonus_terms: [],
23
+ half_proficiency_terms: [],
21
24
  hp_per_level_bonus: 0,
22
25
  hp_per_level_terms: [],
23
26
  speed_walk_bonus: 0,
27
+ speed_walk_terms: [],
24
28
  speed_walk_set: 0,
25
29
  attunement_set: 0,
26
30
  ability_bonus: {},
@@ -179,10 +183,26 @@ function scaled(base, key, scalesAt, level) {
179
183
  return best;
180
184
  }
181
185
  function applyEffect(out, eff, label, level) {
182
- var _a, _b, _c, _d, _e;
186
+ var _a, _b, _c, _d, _e, _f, _g, _h;
183
187
  switch (eff.kind) {
184
188
  case "initiative-bonus":
185
189
  out.initiative_bonus += eff.value;
190
+ out.initiative_terms.push({ label, value: eff.value });
191
+ break;
192
+ case "skill-bonus":
193
+ out.skill_bonus_terms.push({
194
+ skills: eff.skills.map(toProfSlug),
195
+ ability: eff.ability,
196
+ minimum: (_a = eff.minimum) != null ? _a : 0,
197
+ label
198
+ });
199
+ break;
200
+ case "half-proficiency":
201
+ out.half_proficiency_terms.push({
202
+ skills: ((_b = eff.skills) != null ? _b : []).map(toProfSlug),
203
+ round: (_c = eff.round) != null ? _c : "down",
204
+ label
205
+ });
186
206
  break;
187
207
  case "hp-per-level-bonus":
188
208
  out.hp_per_level_bonus += eff.value;
@@ -192,7 +212,10 @@ function applyEffect(out, eff, label, level) {
192
212
  const value = scaled(eff.value, "value", eff.scales_at, level);
193
213
  if (eff.mode === "walk") {
194
214
  if (eff.set) out.speed_walk_set = Math.max(out.speed_walk_set, value);
195
- else out.speed_walk_bonus += value;
215
+ else {
216
+ out.speed_walk_bonus += value;
217
+ out.speed_walk_terms.push({ label, value });
218
+ }
196
219
  }
197
220
  break;
198
221
  }
@@ -244,7 +267,7 @@ function applyEffect(out, eff, label, level) {
244
267
  }
245
268
  case "roll-modifier": {
246
269
  const rolls = eff.roll === "any" ? ["ability-check", "saving-throw", "attack"] : [eff.roll];
247
- const scopes = (_a = normalizeRollScope(eff.scope, rolls[0])) != null ? _a : [eff.scope];
270
+ const scopes = (_d = normalizeRollScope(eff.scope, rolls[0])) != null ? _d : [eff.scope];
248
271
  for (const roll of rolls) for (const scope of scopes)
249
272
  out.rollModifiers.push({ mode: eff.mode, roll, scope, condition: eff.condition, label });
250
273
  break;
@@ -254,13 +277,13 @@ function applyEffect(out, eff, label, level) {
254
277
  ability: eff.ability === "any" ? void 0 : eff.ability,
255
278
  on_success: eff.on_success,
256
279
  on_failure: eff.on_failure,
257
- appliesTo: (_b = eff.applies_to) != null ? _b : void 0,
280
+ appliesTo: (_e = eff.applies_to) != null ? _e : void 0,
258
281
  condition: eff.condition,
259
282
  label
260
283
  });
261
284
  break;
262
285
  case "crit-range":
263
- if (((_c = eff.applies_to) != null ? _c : "weapon") !== "spell") out.critRange = Math.min(out.critRange, eff.min_roll);
286
+ if (((_f = eff.applies_to) != null ? _f : "weapon") !== "spell") out.critRange = Math.min(out.critRange, eff.min_roll);
264
287
  break;
265
288
  case "extra-attack":
266
289
  out.extraAttack = Math.max(out.extraAttack, scaled(eff.count, "count", eff.scales_at, level));
@@ -272,7 +295,7 @@ function applyEffect(out, eff, label, level) {
272
295
  if (eff.flag === "no-ranged-in-melee-disadvantage") out.attackNotes.push("No disadvantage firing in melee");
273
296
  break;
274
297
  case "damage-bonus":
275
- if (((_d = eff.applies_to) != null ? _d : "weapon") !== "spell") {
298
+ if (((_g = eff.applies_to) != null ? _g : "weapon") !== "spell") {
276
299
  out.damageBonuses.push({
277
300
  amount: eff.amount,
278
301
  damage_type: eff.damage_type,
@@ -283,7 +306,7 @@ function applyEffect(out, eff, label, level) {
283
306
  break;
284
307
  case "ability-score-increase":
285
308
  if (eff.abilities === "chosen") break;
286
- for (const ab of eff.abilities) out.ability_bonus[ab] = ((_e = out.ability_bonus[ab]) != null ? _e : 0) + eff.amount;
309
+ for (const ab of eff.abilities) out.ability_bonus[ab] = ((_h = out.ability_bonus[ab]) != null ? _h : 0) + eff.amount;
287
310
  break;
288
311
  default:
289
312
  break;
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  featureObjectSchema
3
- } from "./chunk-JOVMV2X5.js";
3
+ } from "./chunk-PI4LLJG4.js";
4
4
  import {
5
5
  imageField
6
6
  } from "./chunk-UA5KS2PL.js";
@@ -29,7 +29,7 @@ import {
29
29
  import {
30
30
  assembleEffectFeatures,
31
31
  collectProficiencyEffectGrants
32
- } from "./chunk-KPEJMNRD.js";
32
+ } from "./chunk-CBEKVAX4.js";
33
33
  import {
34
34
  ALL_LANGUAGES,
35
35
  ALL_SKILL_SLUGS,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  subclassEntitySchema
3
- } from "./chunk-MT4RWROQ.js";
3
+ } from "./chunk-BLRW2UU6.js";
4
4
  import {
5
5
  aliasFeaturesByLevelActionCost
6
6
  } from "./chunk-4U55VNC7.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  parseOptionalFeature
3
- } from "./chunk-NNAQ4KQF.js";
3
+ } from "./chunk-PJMG5XV3.js";
4
4
 
5
5
  // src/optional-feature/optional-feature.codec.ts
6
6
  import yaml from "js-yaml";
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-IN4M4X7P.js";
4
4
  import {
5
5
  choiceSchema
6
- } from "./chunk-IWRVOCT5.js";
6
+ } from "./chunk-2M34FLAY.js";
7
7
  import {
8
8
  additionalSpellsEntrySchema,
9
9
  imageField
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  parseBackground
3
- } from "./chunk-3PZHBLFG.js";
3
+ } from "./chunk-4DOMDEBZ.js";
4
4
 
5
5
  // src/background/background.codec.ts
6
6
  import yaml from "js-yaml";
@@ -5,10 +5,10 @@ import {
5
5
  actionCostEnum,
6
6
  resetTriggerEnum,
7
7
  resourceConsumptionSchema
8
- } from "./chunk-UA3I2YSO.js";
8
+ } from "./chunk-ZJXSXVFP.js";
9
9
  import {
10
10
  featureEffectSchema
11
- } from "./chunk-X3D6LXUU.js";
11
+ } from "./chunk-XTRDCSJB.js";
12
12
  import {
13
13
  additionalSpellsEntrySchema,
14
14
  imageField,
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-4U55VNC7.js";
4
4
  import {
5
5
  classEntitySchema
6
- } from "./chunk-DTCR4DBF.js";
6
+ } from "./chunk-S56D6B6C.js";
7
7
 
8
8
  // src/class/class.parser.ts
9
9
  import { parseYaml } from "@archivist-gg/core";
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  actionCostEnum,
3
3
  resourceSchema
4
- } from "./chunk-UA3I2YSO.js";
4
+ } from "./chunk-ZJXSXVFP.js";
5
5
  import {
6
6
  choiceSchema
7
- } from "./chunk-IWRVOCT5.js";
7
+ } from "./chunk-2M34FLAY.js";
8
8
  import {
9
9
  featureEffectSchema
10
- } from "./chunk-X3D6LXUU.js";
10
+ } from "./chunk-XTRDCSJB.js";
11
11
  import {
12
12
  additionalSpellsEntrySchema,
13
13
  imageField,
@@ -5,13 +5,13 @@ import {
5
5
  actionCostEnum,
6
6
  resourceConsumptionSchema,
7
7
  resourceSchema
8
- } from "./chunk-UA3I2YSO.js";
8
+ } from "./chunk-ZJXSXVFP.js";
9
9
  import {
10
10
  choiceSchema
11
- } from "./chunk-IWRVOCT5.js";
11
+ } from "./chunk-2M34FLAY.js";
12
12
  import {
13
13
  featureEffectSchema
14
- } from "./chunk-X3D6LXUU.js";
14
+ } from "./chunk-XTRDCSJB.js";
15
15
 
16
16
  // src/schemas/feature-schema.ts
17
17
  import { z as z2 } from "zod";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  optionalFeatureEntitySchema
3
- } from "./chunk-7WNQJAZW.js";
3
+ } from "./chunk-MQ747UCR.js";
4
4
 
5
5
  // src/optional-feature/optional-feature.parser.ts
6
6
  import { parseYaml } from "@archivist-gg/core";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  MONSTER_KNOWN_KEYS,
3
3
  monsterSchema
4
- } from "./chunk-A6YL53NC.js";
4
+ } from "./chunk-G247QXWW.js";
5
5
 
6
6
  // src/monster/monster.parser.ts
7
7
  import { parseYaml } from "@archivist-gg/core";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  parseSubclass
3
- } from "./chunk-ABQ6ZWAF.js";
3
+ } from "./chunk-J77CKYV3.js";
4
4
 
5
5
  // src/subclass/subclass.codec.ts
6
6
  import yaml from "js-yaml";
@@ -8,17 +8,17 @@ import {
8
8
  } from "./chunk-CJYCVNW2.js";
9
9
  import {
10
10
  featureSchema
11
- } from "./chunk-JOVMV2X5.js";
11
+ } from "./chunk-PI4LLJG4.js";
12
12
  import {
13
13
  resourceSchema
14
- } from "./chunk-UA3I2YSO.js";
14
+ } from "./chunk-ZJXSXVFP.js";
15
15
  import {
16
16
  startingEquipmentEntrySchema,
17
17
  startingGoldSchema
18
18
  } from "./chunk-IN4M4X7P.js";
19
19
  import {
20
20
  choiceSchema
21
- } from "./chunk-IWRVOCT5.js";
21
+ } from "./chunk-2M34FLAY.js";
22
22
  import {
23
23
  additionalSpellsEntrySchema,
24
24
  imageField,
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  featureSchema
3
- } from "./chunk-JOVMV2X5.js";
3
+ } from "./chunk-PI4LLJG4.js";
4
4
  import {
5
5
  choiceSchema
6
- } from "./chunk-IWRVOCT5.js";
6
+ } from "./chunk-2M34FLAY.js";
7
7
  import {
8
8
  additionalSpellsEntrySchema,
9
9
  imageField
@@ -5,6 +5,13 @@ var subjectField = z.string().min(1).optional();
5
5
  var conditionField = z.string().optional();
6
6
  var featureEffectSchema = z.discriminatedUnion("kind", [
7
7
  z.object({ kind: z.literal("initiative-bonus"), value: z.number().int(), condition: conditionField, subject: subjectField }),
8
+ z.object({ kind: z.literal("skill-bonus"), skills: z.array(z.string().min(1)).nonempty(), ability: abilityEnum, minimum: z.number().int().optional(), condition: conditionField, subject: subjectField }),
9
+ // Jack of All Trades / Remarkable Athlete: half the proficiency bonus, and ONLY on a skill the character is
10
+ // not already proficient in — the "doesn't otherwise use your Proficiency Bonus" clause is the whole mechanic,
11
+ // so it is the kind's semantics, not a field. `skills` omitted = every skill (Jack of All Trades); a list
12
+ // narrows it (Remarkable Athlete). `round` is authored because the two printed features disagree: Jack of All
13
+ // Trades rounds down, Remarkable Athlete rounds up.
14
+ z.object({ kind: z.literal("half-proficiency"), skills: z.array(z.string().min(1)).nonempty().optional(), round: z.enum(["down", "up"]).optional(), condition: conditionField, subject: subjectField }),
8
15
  // `condition` here is the condition NAME (frightened, poisoned); the qualifier is `while`.
9
16
  z.object({ kind: z.literal("immune-condition"), condition: z.string().min(1), while: z.string().optional(), subject: subjectField }),
10
17
  z.object({ kind: z.literal("resistance"), damage_type: z.string().min(1), condition: conditionField, subject: subjectField }),
@@ -34,7 +34,7 @@ var resourceSchema = z.object({
34
34
  })).optional()
35
35
  });
36
36
  var resourceConsumptionSchema = z.object({
37
- source: z.enum(["resource", "class-column", "attack-dice"]).optional(),
37
+ source: z.enum(["resource", "class-column", "attack-dice", "spell-slots"]).optional(),
38
38
  resource: z.string().optional(),
39
39
  column: z.string().optional(),
40
40
  amount: z.number().int().positive(),
@@ -1,17 +1,17 @@
1
1
  import {
2
2
  classCodec
3
- } from "../chunk-BS355LND.js";
4
- import "../chunk-H4VEMVOO.js";
3
+ } from "../chunk-BIA32MQ5.js";
4
+ import "../chunk-NWDF5HG3.js";
5
5
  import "../chunk-4U55VNC7.js";
6
- import "../chunk-DTCR4DBF.js";
6
+ import "../chunk-S56D6B6C.js";
7
7
  import "../chunk-23LZLBJK.js";
8
8
  import "../chunk-CJYCVNW2.js";
9
- import "../chunk-JOVMV2X5.js";
9
+ import "../chunk-PI4LLJG4.js";
10
10
  import "../chunk-WYGD2UGN.js";
11
- import "../chunk-UA3I2YSO.js";
11
+ import "../chunk-ZJXSXVFP.js";
12
12
  import "../chunk-IN4M4X7P.js";
13
- import "../chunk-IWRVOCT5.js";
14
- import "../chunk-X3D6LXUU.js";
13
+ import "../chunk-2M34FLAY.js";
14
+ import "../chunk-XTRDCSJB.js";
15
15
  import "../chunk-UA5KS2PL.js";
16
16
  export {
17
17
  classCodec
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  parseClass
3
- } from "../chunk-H4VEMVOO.js";
3
+ } from "../chunk-NWDF5HG3.js";
4
4
  import "../chunk-4U55VNC7.js";
5
- import "../chunk-DTCR4DBF.js";
5
+ import "../chunk-S56D6B6C.js";
6
6
  import "../chunk-23LZLBJK.js";
7
7
  import "../chunk-CJYCVNW2.js";
8
- import "../chunk-JOVMV2X5.js";
8
+ import "../chunk-PI4LLJG4.js";
9
9
  import "../chunk-WYGD2UGN.js";
10
- import "../chunk-UA3I2YSO.js";
10
+ import "../chunk-ZJXSXVFP.js";
11
11
  import "../chunk-IN4M4X7P.js";
12
- import "../chunk-IWRVOCT5.js";
13
- import "../chunk-X3D6LXUU.js";
12
+ import "../chunk-2M34FLAY.js";
13
+ import "../chunk-XTRDCSJB.js";
14
14
  import "../chunk-UA5KS2PL.js";
15
15
  export {
16
16
  parseClass
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  classEntitySchema
3
- } from "../chunk-DTCR4DBF.js";
3
+ } from "../chunk-S56D6B6C.js";
4
4
  import "../chunk-23LZLBJK.js";
5
5
  import "../chunk-CJYCVNW2.js";
6
- import "../chunk-JOVMV2X5.js";
6
+ import "../chunk-PI4LLJG4.js";
7
7
  import "../chunk-WYGD2UGN.js";
8
- import "../chunk-UA3I2YSO.js";
8
+ import "../chunk-ZJXSXVFP.js";
9
9
  import "../chunk-IN4M4X7P.js";
10
- import "../chunk-IWRVOCT5.js";
11
- import "../chunk-X3D6LXUU.js";
10
+ import "../chunk-2M34FLAY.js";
11
+ import "../chunk-XTRDCSJB.js";
12
12
  import "../chunk-UA5KS2PL.js";
13
13
  export {
14
14
  classEntitySchema
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  featCodec
3
- } from "../chunk-JKLRBILX.js";
4
- import "../chunk-RWZTGMSN.js";
5
- import "../chunk-BJFL4KYG.js";
6
- import "../chunk-UA3I2YSO.js";
7
- import "../chunk-IWRVOCT5.js";
8
- import "../chunk-X3D6LXUU.js";
3
+ } from "../chunk-3UNP3G4D.js";
4
+ import "../chunk-22MOUU2G.js";
5
+ import "../chunk-OYUEUKKF.js";
6
+ import "../chunk-ZJXSXVFP.js";
7
+ import "../chunk-2M34FLAY.js";
8
+ import "../chunk-XTRDCSJB.js";
9
9
  import "../chunk-UA5KS2PL.js";
10
10
  export {
11
11
  featCodec
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  parseFeat
3
- } from "../chunk-RWZTGMSN.js";
4
- import "../chunk-BJFL4KYG.js";
5
- import "../chunk-UA3I2YSO.js";
6
- import "../chunk-IWRVOCT5.js";
7
- import "../chunk-X3D6LXUU.js";
3
+ } from "../chunk-22MOUU2G.js";
4
+ import "../chunk-OYUEUKKF.js";
5
+ import "../chunk-ZJXSXVFP.js";
6
+ import "../chunk-2M34FLAY.js";
7
+ import "../chunk-XTRDCSJB.js";
8
8
  import "../chunk-UA5KS2PL.js";
9
9
  export {
10
10
  parseFeat
@@ -74,6 +74,29 @@ export declare const featEntitySchema: z.ZodObject<{
74
74
  value: z.ZodNumber;
75
75
  condition: z.ZodOptional<z.ZodString>;
76
76
  subject: z.ZodOptional<z.ZodString>;
77
+ }, z.core.$strip>, z.ZodObject<{
78
+ kind: z.ZodLiteral<"skill-bonus">;
79
+ skills: z.ZodArray<z.ZodString>;
80
+ ability: z.ZodEnum<{
81
+ str: "str";
82
+ dex: "dex";
83
+ con: "con";
84
+ int: "int";
85
+ wis: "wis";
86
+ cha: "cha";
87
+ }>;
88
+ minimum: z.ZodOptional<z.ZodNumber>;
89
+ condition: z.ZodOptional<z.ZodString>;
90
+ subject: z.ZodOptional<z.ZodString>;
91
+ }, z.core.$strip>, z.ZodObject<{
92
+ kind: z.ZodLiteral<"half-proficiency">;
93
+ skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
94
+ round: z.ZodOptional<z.ZodEnum<{
95
+ down: "down";
96
+ up: "up";
97
+ }>>;
98
+ condition: z.ZodOptional<z.ZodString>;
99
+ subject: z.ZodOptional<z.ZodString>;
77
100
  }, z.core.$strip>, z.ZodObject<{
78
101
  kind: z.ZodLiteral<"immune-condition">;
79
102
  condition: z.ZodString;
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  featEntitySchema
3
- } from "../chunk-BJFL4KYG.js";
4
- import "../chunk-UA3I2YSO.js";
5
- import "../chunk-IWRVOCT5.js";
6
- import "../chunk-X3D6LXUU.js";
3
+ } from "../chunk-OYUEUKKF.js";
4
+ import "../chunk-ZJXSXVFP.js";
5
+ import "../chunk-2M34FLAY.js";
6
+ import "../chunk-XTRDCSJB.js";
7
7
  import "../chunk-UA5KS2PL.js";
8
8
  export {
9
9
  featEntitySchema