@archivist-gg/dnd5e 0.3.10 → 0.3.13

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 (174) hide show
  1. package/LICENSES/SRD.md +38 -3
  2. package/dist/armor/armor.codec.js +3 -3
  3. package/dist/armor/armor.parser.js +2 -2
  4. package/dist/armor/armor.schema.d.ts +1 -0
  5. package/dist/armor/armor.schema.js +1 -1
  6. package/dist/armor/armor.types.d.ts +2 -0
  7. package/dist/background/background.codec.js +5 -5
  8. package/dist/background/background.parser.js +4 -4
  9. package/dist/background/background.schema.js +3 -3
  10. package/dist/chunk-2LULMQTF.js +14 -0
  11. package/dist/{chunk-CBEKVAX4.js → chunk-4BZ47YJ4.js} +10 -3
  12. package/dist/{chunk-22MOUU2G.js → chunk-4SLOJXJ4.js} +1 -1
  13. package/dist/{chunk-2DFENQIJ.js → chunk-5GKJAUMX.js} +2 -0
  14. package/dist/{chunk-J77CKYV3.js → chunk-5KGV6TF7.js} +1 -1
  15. package/dist/{chunk-3UNP3G4D.js → chunk-6ZY3U6BQ.js} +1 -1
  16. package/dist/{chunk-DNAJRMNN.js → chunk-A54HHCWW.js} +6 -7
  17. package/dist/{chunk-2M34FLAY.js → chunk-BRGLDWUP.js} +3 -1
  18. package/dist/chunk-CM5CWO4K.js +735 -0
  19. package/dist/{chunk-MI7P3NX3.js → chunk-DPM6V7YX.js} +2 -2
  20. package/dist/chunk-EJP263OP.js +186 -0
  21. package/dist/{chunk-G247QXWW.js → chunk-EL6QPF6I.js} +1 -1
  22. package/dist/{chunk-SMLXZUBH.js → chunk-EYX4JMAU.js} +4 -1
  23. package/dist/{chunk-AW3EHF3L.js → chunk-FC4IGH5Y.js} +1 -1
  24. package/dist/{chunk-PI4LLJG4.js → chunk-FPGXFD2M.js} +2 -2
  25. package/dist/{chunk-23LZLBJK.js → chunk-G6MHJDVT.js} +6 -2
  26. package/dist/{chunk-NWDF5HG3.js → chunk-G7ED5H2G.js} +1 -1
  27. package/dist/chunk-H5PTKYXL.js +101 -0
  28. package/dist/{chunk-LWFTHJIE.js → chunk-HHBD4SQ6.js} +1 -1
  29. package/dist/{chunk-PP2UHLBA.js → chunk-HJQNK3J5.js} +8 -0
  30. package/dist/{chunk-JC5UNIVM.js → chunk-HS6FIOLP.js} +2 -0
  31. package/dist/chunk-IHE6KVC3.js +13 -0
  32. package/dist/{chunk-BLRW2UU6.js → chunk-J53ERF6K.js} +2 -2
  33. package/dist/{chunk-MQ747UCR.js → chunk-JNNNBEUH.js} +65 -2
  34. package/dist/{chunk-LDDCNPHD.js → chunk-K5NJBTE2.js} +1 -1
  35. package/dist/{chunk-4ISR76DH.js → chunk-KSTV7J2U.js} +9 -3
  36. package/dist/chunk-LBEXLN6I.js +91 -0
  37. package/dist/{chunk-UBBKSYBY.js → chunk-LHZXYFBU.js} +30 -1
  38. package/dist/{chunk-OYUEUKKF.js → chunk-LVX6TQ3R.js} +12 -8
  39. package/dist/{chunk-R747YKS7.js → chunk-M2OWVAZG.js} +1 -1
  40. package/dist/{chunk-7YU4NPKR.js → chunk-MC5YJ4PB.js} +1 -1
  41. package/dist/{chunk-JCEV7KYN.js → chunk-MUIU7RZ3.js} +1 -1
  42. package/dist/{chunk-JSZ4H6AQ.js → chunk-MWCCGPG3.js} +1 -1
  43. package/dist/{chunk-R2ZV233X.js → chunk-MYY2C5MB.js} +3 -3
  44. package/dist/{chunk-S56D6B6C.js → chunk-PLOSP4XQ.js} +3 -3
  45. package/dist/{chunk-JANNRGJC.js → chunk-PX25R3DK.js} +1 -1
  46. package/dist/{chunk-V373TRJE.js → chunk-Q5XTEYHD.js} +191 -125
  47. package/dist/{chunk-MAH6DCRI.js → chunk-Q6UOHCCT.js} +1 -1
  48. package/dist/{chunk-HLQAFZKQ.js → chunk-QEO7LYTG.js} +216 -95
  49. package/dist/{chunk-PJMG5XV3.js → chunk-QSBJ6NEM.js} +1 -1
  50. package/dist/{chunk-BL3VELKP.js → chunk-R2V5LN3I.js} +1 -1
  51. package/dist/{chunk-4DOMDEBZ.js → chunk-RQNJXADQ.js} +1 -1
  52. package/dist/{chunk-GFZ7PITJ.js → chunk-S3YUXDSC.js} +6 -1
  53. package/dist/chunk-T5GZBKIQ.js +927 -0
  54. package/dist/{chunk-PZCE7DJM.js → chunk-UE6LKRXQ.js} +15 -1
  55. package/dist/{chunk-5N2GW72F.js → chunk-UZXG6QSY.js} +2 -1
  56. package/dist/{chunk-QHMWA3SZ.js → chunk-VDPRBUU5.js} +1 -1
  57. package/dist/{chunk-4XTNPNQB.js → chunk-VPYBK2MG.js} +1 -1
  58. package/dist/{chunk-V6LJFP4R.js → chunk-X7VZY4ON.js} +2 -2
  59. package/dist/{chunk-HZA7OE7N.js → chunk-XCFC7LGF.js} +2 -1
  60. package/dist/{chunk-BIA32MQ5.js → chunk-XJRNEQPD.js} +1 -1
  61. package/dist/{chunk-OZP6JFGT.js → chunk-XY6X2APM.js} +3 -1
  62. package/dist/{chunk-UIRMA5KM.js → chunk-YDGMBMYI.js} +1 -1
  63. package/dist/{chunk-6X4KUDMU.js → chunk-ZCTUYGNV.js} +7 -2
  64. package/dist/{chunk-VQAXTIBW.js → chunk-ZDAEGJH4.js} +2 -0
  65. package/dist/{chunk-XTRDCSJB.js → chunk-ZMJQUZQH.js} +4 -1
  66. package/dist/chunk-ZUQW5VBZ.js +89 -0
  67. package/dist/class/class.codec.js +7 -7
  68. package/dist/class/class.parser.js +6 -6
  69. package/dist/class/class.schema.d.ts +10 -0
  70. package/dist/class/class.schema.js +5 -5
  71. package/dist/entities/base-item-resolver.js +2 -2
  72. package/dist/entities/slug.d.ts +18 -8
  73. package/dist/entities/slug.js +3 -1
  74. package/dist/feat/feat.codec.js +5 -5
  75. package/dist/feat/feat.parser.js +4 -4
  76. package/dist/feat/feat.schema.d.ts +16 -3
  77. package/dist/feat/feat.schema.js +3 -3
  78. package/dist/index.js +5277 -2017
  79. package/dist/item/item.actions-map.d.ts +40 -5
  80. package/dist/item/item.actions-map.js +5 -84
  81. package/dist/item/item.attunement.js +3 -9
  82. package/dist/item/item.bonuses.js +5 -2
  83. package/dist/item/item.codec.js +3 -3
  84. package/dist/item/item.conditions.js +4 -1
  85. package/dist/item/item.conditions.types.d.ts +4 -0
  86. package/dist/item/item.cost.d.ts +3 -0
  87. package/dist/item/item.cost.js +29 -0
  88. package/dist/item/item.icon.d.ts +15 -0
  89. package/dist/item/item.icon.js +211 -0
  90. package/dist/item/item.parser.js +2 -2
  91. package/dist/item/item.schema.d.ts +16 -1
  92. package/dist/item/item.schema.js +3 -1
  93. package/dist/item/item.types.d.ts +9 -2
  94. package/dist/monster/monster.parser.js +5 -5
  95. package/dist/monster/monster.schema.js +4 -4
  96. package/dist/optional-feature/optional-feature.codec.js +4 -4
  97. package/dist/optional-feature/optional-feature.parser.js +3 -3
  98. package/dist/optional-feature/optional-feature.schema.d.ts +229 -3
  99. package/dist/optional-feature/optional-feature.schema.js +6 -2
  100. package/dist/pc/pc.additional-spells.js +4 -4
  101. package/dist/pc/pc.asi-flatten.d.ts +62 -1
  102. package/dist/pc/pc.asi-flatten.js +16 -0
  103. package/dist/pc/pc.conditions.js +1 -1
  104. package/dist/pc/pc.containment.d.ts +45 -0
  105. package/dist/pc/pc.containment.js +24 -0
  106. package/dist/pc/pc.decision-engine.d.ts +21 -3
  107. package/dist/pc/pc.decision-engine.js +23 -14
  108. package/dist/pc/pc.entry-overrides.d.ts +79 -0
  109. package/dist/pc/pc.entry-overrides.js +40 -0
  110. package/dist/pc/pc.equipment.d.ts +2 -2
  111. package/dist/pc/pc.equipment.js +18 -7
  112. package/dist/pc/pc.feature-effects.js +2 -2
  113. package/dist/pc/pc.infusions.d.ts +220 -0
  114. package/dist/pc/pc.infusions.js +64 -0
  115. package/dist/pc/pc.parser.js +18 -1
  116. package/dist/pc/pc.pools.d.ts +1 -1
  117. package/dist/pc/pc.pools.js +11 -3
  118. package/dist/pc/pc.proficiencies.js +21 -14
  119. package/dist/pc/pc.recalc.d.ts +39 -36
  120. package/dist/pc/pc.recalc.js +60 -32
  121. package/dist/pc/pc.resolver.js +21 -14
  122. package/dist/pc/pc.resource-seed.js +1 -1
  123. package/dist/pc/pc.resources.d.ts +6 -1
  124. package/dist/pc/pc.resources.js +3 -1
  125. package/dist/pc/pc.rest.d.ts +21 -1
  126. package/dist/pc/pc.rest.js +52 -19
  127. package/dist/pc/pc.schema.d.ts +14 -0
  128. package/dist/pc/pc.schema.js +1 -1
  129. package/dist/pc/pc.slotting.d.ts +36 -3
  130. package/dist/pc/pc.slotting.js +13 -5
  131. package/dist/pc/pc.tool-picks.d.ts +51 -0
  132. package/dist/pc/pc.tool-picks.js +18 -0
  133. package/dist/pc/pc.types.d.ts +70 -12
  134. package/dist/pc/pool-layout.d.ts +14 -0
  135. package/dist/pc/pool-layout.js +7 -3
  136. package/dist/race/race.codec.js +6 -6
  137. package/dist/race/race.parser.js +5 -5
  138. package/dist/race/race.schema.js +4 -4
  139. package/dist/schemas/attack-schema.d.ts +1 -1
  140. package/dist/schemas/choice-schema.js +2 -2
  141. package/dist/schemas/feature-effect-schema.d.ts +16 -3
  142. package/dist/schemas/feature-effect-schema.js +1 -1
  143. package/dist/schemas/feature-schema.js +3 -3
  144. package/dist/schemas/selection-pool-schema.d.ts +10 -0
  145. package/dist/schemas/selection-pool-schema.js +1 -1
  146. package/dist/spell/spell.codec.js +3 -3
  147. package/dist/spell/spell.parser.js +2 -2
  148. package/dist/spell/spell.scaling.d.ts +34 -10
  149. package/dist/spell/spell.scaling.js +36 -4
  150. package/dist/spell/spell.schema.d.ts +1 -0
  151. package/dist/spell/spell.schema.js +1 -1
  152. package/dist/spell/spell.types.d.ts +4 -0
  153. package/dist/srd/retired-items.d.ts +14 -0
  154. package/dist/srd/retired-items.js +11 -0
  155. package/dist/subclass/subclass.codec.js +7 -7
  156. package/dist/subclass/subclass.parser.js +6 -6
  157. package/dist/subclass/subclass.schema.d.ts +10 -0
  158. package/dist/subclass/subclass.schema.js +5 -5
  159. package/dist/types/choice.d.ts +8 -0
  160. package/dist/types/equipment-grant.d.ts +18 -1
  161. package/dist/types/equipment-grant.js +12 -0
  162. package/dist/types/feature-effect.d.ts +6 -1
  163. package/dist/types/optional-feature.types.d.ts +79 -1
  164. package/dist/types/selection-pool.d.ts +16 -1
  165. package/dist/weapon/weapon.classify.d.ts +10 -8
  166. package/dist/weapon/weapon.classify.js +2 -2
  167. package/dist/weapon/weapon.codec.js +3 -3
  168. package/dist/weapon/weapon.parser.js +2 -2
  169. package/dist/weapon/weapon.schema.d.ts +1 -0
  170. package/dist/weapon/weapon.schema.js +1 -1
  171. package/dist/weapon/weapon.types.d.ts +2 -0
  172. package/package.json +1 -1
  173. package/dist/chunk-O4SRD3J5.js +0 -165
  174. package/dist/chunk-WXWPK3LI.js +0 -55
@@ -0,0 +1,91 @@
1
+ import {
2
+ bareEntitySlug
3
+ } from "./chunk-ZCTUYGNV.js";
4
+ import {
5
+ ABILITY_KEYS
6
+ } from "./chunk-WELIKLZF.js";
7
+
8
+ // src/pc/pc.asi-flatten.ts
9
+ function flattenAsiOrFeat(choice) {
10
+ var _a;
11
+ if (choice.kind !== "select-inline" || choice.id !== "asi-or-feat") return choice;
12
+ const featBranches = choice.options.filter((o) => {
13
+ var _a2;
14
+ return ((_a2 = o.choices) != null ? _a2 : []).some((c) => c.kind === "select-entity" && c.entity_type === "feat");
15
+ });
16
+ if (featBranches.length !== 1) return choice;
17
+ const inner = (_a = featBranches[0].choices) != null ? _a : [];
18
+ if (inner.length !== 1) return choice;
19
+ const only = inner[0];
20
+ if (only.kind !== "select-entity" || only.entity_type !== "feat") return choice;
21
+ return only;
22
+ }
23
+ var ASI_FEAT_BARE = "ability-score-improvement";
24
+ function legacyAsiBranch(block) {
25
+ if (!block || typeof block !== "object") return null;
26
+ const b = block;
27
+ if (typeof b.feat === "string") return null;
28
+ const asi = b.asi;
29
+ if (!asi || typeof asi !== "object" || Array.isArray(asi)) return null;
30
+ const out = {};
31
+ let any = false;
32
+ for (const ab of ABILITY_KEYS) {
33
+ const v = asi[ab];
34
+ if (typeof v === "number") {
35
+ out[ab] = v;
36
+ any = true;
37
+ }
38
+ }
39
+ return any ? out : null;
40
+ }
41
+ function convertibleLegacyAsi(block) {
42
+ const alloc = legacyAsiBranch(block);
43
+ if (!alloc) return null;
44
+ const branch = block["asi-or-feat"];
45
+ return branch === void 0 || branch === "asi" ? alloc : null;
46
+ }
47
+ function resolveLegacyAsiFeat(registry, classEntity) {
48
+ if (!classEntity) return null;
49
+ const prefix = classEntity.slug.split("_")[0];
50
+ const ranked = [];
51
+ for (const e of registry.search("", "feat", Number.POSITIVE_INFINITY)) {
52
+ if (bareEntitySlug(e.slug) !== ASI_FEAT_BARE) continue;
53
+ const data = e.data;
54
+ const choices = Array.isArray(data == null ? void 0 : data.choices) ? data.choices : [];
55
+ const points = choices.find((c) => (c == null ? void 0 : c.kind) === "ability-points" && typeof c.id === "string");
56
+ if (!points) continue;
57
+ ranked.push({
58
+ slug: e.slug,
59
+ childId: points.id,
60
+ prefixHit: e.slug.split("_")[0] === prefix,
61
+ editionHit: classEntity.edition !== void 0 && (data == null ? void 0 : data.edition) === classEntity.edition
62
+ });
63
+ }
64
+ ranked.sort((a, b) => Number(b.prefixHit) - Number(a.prefixHit) || Number(b.editionHit) - Number(a.editionHit) || (a.slug < b.slug ? -1 : a.slug > b.slug ? 1 : 0));
65
+ return ranked.length ? { slug: ranked[0].slug, childId: ranked[0].childId } : null;
66
+ }
67
+ function migrateLegacyAsiLevel(block, key, value, registry, classEntity) {
68
+ if (key !== "feat" && !key.startsWith("feat:")) return null;
69
+ const alloc = convertibleLegacyAsi(block);
70
+ if (!alloc) return null;
71
+ const asi = resolveLegacyAsiFeat(registry, classEntity);
72
+ if (!asi) return null;
73
+ const childKey = `feat:${asi.childId}`;
74
+ const isSwitch = key === "feat" && value !== asi.slug;
75
+ const out = {};
76
+ for (const [k, v] of Object.entries(block)) {
77
+ if (k === "asi-or-feat" || k === "asi" || k === childKey) continue;
78
+ out[k] = v;
79
+ }
80
+ out.feat = asi.slug;
81
+ if (!isSwitch) out[childKey] = alloc;
82
+ return out;
83
+ }
84
+
85
+ export {
86
+ flattenAsiOrFeat,
87
+ legacyAsiBranch,
88
+ convertibleLegacyAsi,
89
+ resolveLegacyAsiFeat,
90
+ migrateLegacyAsiLevel
91
+ };
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  resolveBaseItem
3
- } from "./chunk-WXWPK3LI.js";
3
+ } from "./chunk-CM5CWO4K.js";
4
4
 
5
5
  // src/pc/pc.slotting.ts
6
6
  function isItemEntity(e) {
@@ -38,6 +38,31 @@ function effectiveArmor(entity, registry) {
38
38
  }
39
39
  return null;
40
40
  }
41
+ function effectiveWeapon(entity, registry) {
42
+ if (isWeaponEntity(entity)) return entity;
43
+ if (isItemEntity(entity) && typeof entity.base_item === "string") {
44
+ const base = resolveBaseItem(entity.base_item, registry);
45
+ if ((base == null ? void 0 : base.entityType) === "weapon" && isWeaponEntity(base.data)) return base.data;
46
+ }
47
+ return null;
48
+ }
49
+ function isTwoHandedWeapon(entity, registry) {
50
+ if (!entity || typeof entity !== "object") return false;
51
+ const own = entity.properties;
52
+ if (Array.isArray(own) && own.length > 0) return own.some((p) => p === "two_handed");
53
+ if (!registry) return false;
54
+ const weapon = effectiveWeapon(entity, registry);
55
+ return !!weapon && Array.isArray(weapon.properties) && weapon.properties.some((p) => p === "two_handed");
56
+ }
57
+ function armorAcTerm(armor) {
58
+ var _a;
59
+ return armor.ac.base + ((_a = armor.ac.flat) != null ? _a : 0);
60
+ }
61
+ function slotAcTerms(armor, entry) {
62
+ var _a;
63
+ const bonus = (_a = entry == null ? void 0 : entry.overrides) == null ? void 0 : _a.ac_bonus;
64
+ return { armor: armor ? armorAcTerm(armor) : null, override: typeof bonus === "number" ? bonus : 0 };
65
+ }
41
66
  function defaultSlotForType(entityType, entity, registry) {
42
67
  if (entityType === "weapon") return "mainhand";
43
68
  if (entityType === "armor") {
@@ -61,5 +86,9 @@ export {
61
86
  resolveEntityForEntry,
62
87
  isShieldArmor,
63
88
  effectiveArmor,
89
+ effectiveWeapon,
90
+ isTwoHandedWeapon,
91
+ armorAcTerm,
92
+ slotAcTerms,
64
93
  defaultSlotForType
65
94
  };
@@ -4,10 +4,10 @@ import {
4
4
  } from "./chunk-ZJXSXVFP.js";
5
5
  import {
6
6
  choiceSchema
7
- } from "./chunk-2M34FLAY.js";
7
+ } from "./chunk-BRGLDWUP.js";
8
8
  import {
9
9
  featureEffectSchema
10
- } from "./chunk-XTRDCSJB.js";
10
+ } from "./chunk-ZMJQUZQH.js";
11
11
  import {
12
12
  additionalSpellsEntrySchema,
13
13
  imageField,
@@ -69,13 +69,17 @@ var featEntitySchema = z.object({
69
69
  optionalfeature_progression: z.array(progressionSchema).optional(),
70
70
  // 4
71
71
  resources: z.array(resourceSchema).optional(),
72
- // closes the feat.types.ts `Feat.resources` schema/type asymmetry (C);
73
- // ZERO converter/bundle carriers (no census row) — the only behaviour delta is AUTHORED feats,
74
- // where the type has promised the field all along. Import resourceSchema.
72
+ // closes the feat.types.ts `Feat.resources` schema/type asymmetry (C).
73
+ // CONVERTER carriers since import-5etools cb382b6 (feat-mapper `mapFeatEconomy`): 69 of 287 feat docs,
74
+ // 72 entries (41 `prof`, 29 `1`, Lucky PHB `3`, Boon of Recovery `10` + die d10), ids owner-namespaced
75
+ // `<feat-slug-tail>:<tracker-slug>`; 0 SRD-bundle carriers. The resolver carries them onto the
76
+ // synthesized feat feature, so each draws a tracker. Import resourceSchema.
75
77
  action_cost: actionCostEnum.optional(),
76
- // ruling R-G1b-5 (gate1-r1 f1): a TOP-LEVEL bundle key on ONE
77
- // feat (`SRD 2024/Feats/Boon of the Night Spirit.md`, `action_cost: bonus-action` at entity top
78
- // level) — the ninth SRD-control non-kept row: top-level on the ENTITY, not featureSchema-shaped
78
+ // ruling R-G1b-5 (gate1-r1 f1): a TOP-LEVEL entity key. SRD bundle:
79
+ // one feat per edition (`SRD 2024/Feats/Boon of the Night Spirit.md` bonus-action; SRD 5e Grappler
80
+ // `action` through the `feat_features` overlay since 0.3.11). CONVERTER: 76 of 287 feat docs since
81
+ // import-5etools 1002a6c (31 bonus-action, 34 reaction, 11 action). Top-level at entity level
82
+ // — the ninth SRD-control non-kept row: top-level on the ENTITY, not featureSchema-shaped
79
83
  // (finding 14's nine rows split 4 featureSchema / 4 §2.8-arity / this one, which needed its own
80
84
  // declaration — gate1-r4 R4-1). `actionCostEnum` is exported from
81
85
  // `schemas/resource-schema.ts` (optionalFeatureEntitySchema already imports it). MAPPED since
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  parseSubclass
3
- } from "./chunk-J77CKYV3.js";
3
+ } from "./chunk-5KGV6TF7.js";
4
4
 
5
5
  // src/subclass/subclass.codec.ts
6
6
  import yaml from "js-yaml";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  parseRace
3
- } from "./chunk-BL3VELKP.js";
3
+ } from "./chunk-R2V5LN3I.js";
4
4
 
5
5
  // src/race/race.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-2M34FLAY.js";
6
+ } from "./chunk-BRGLDWUP.js";
7
7
  import {
8
8
  additionalSpellsEntrySchema,
9
9
  imageField
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  parseSpell
3
- } from "./chunk-OZP6JFGT.js";
3
+ } from "./chunk-XY6X2APM.js";
4
4
 
5
5
  // src/spell/spell.codec.ts
6
6
  import yaml from "js-yaml";
@@ -132,7 +132,7 @@ var CONDITION_TOOLTIPS_2014 = {
132
132
  paralyzed: [
133
133
  "Incapacitated. Speed 0.",
134
134
  "Auto-fail STR/DEX saves.",
135
- "Attacks against have advantage; melee within 5ft auto-crit."
135
+ "Attacks against have advantage; melee within 5 ft. auto-crit."
136
136
  ],
137
137
  petrified: [
138
138
  "Incapacitated. Speed 0.",
@@ -141,7 +141,7 @@ var CONDITION_TOOLTIPS_2014 = {
141
141
  ],
142
142
  poisoned: ["Disadvantage on attack rolls and ability checks."],
143
143
  prone: [
144
- "Attacks against within 5ft have advantage; beyond 5ft have disadvantage.",
144
+ "Attacks against within 5 ft. have advantage; beyond 5 ft. have disadvantage.",
145
145
  "Your attacks have disadvantage."
146
146
  ],
147
147
  restrained: [
@@ -155,7 +155,7 @@ var CONDITION_TOOLTIPS_2014 = {
155
155
  unconscious: [
156
156
  "Incapacitated, prone, dropped held items. Speed 0.",
157
157
  "Auto-fail STR/DEX saves.",
158
- "Attacks against have advantage; melee within 5ft auto-crit."
158
+ "Attacks against have advantage; melee within 5 ft. auto-crit."
159
159
  ]
160
160
  };
161
161
  var CONDITION_TOOLTIPS_2024 = {
@@ -2,13 +2,13 @@ import {
2
2
  poolGrantSchema,
3
3
  selectionPoolSchema,
4
4
  tabDeclSchema
5
- } from "./chunk-23LZLBJK.js";
5
+ } from "./chunk-G6MHJDVT.js";
6
6
  import {
7
7
  casterTypeEnum
8
8
  } from "./chunk-CJYCVNW2.js";
9
9
  import {
10
10
  featureSchema
11
- } from "./chunk-PI4LLJG4.js";
11
+ } from "./chunk-FPGXFD2M.js";
12
12
  import {
13
13
  resourceSchema
14
14
  } from "./chunk-ZJXSXVFP.js";
@@ -18,7 +18,7 @@ import {
18
18
  } from "./chunk-IN4M4X7P.js";
19
19
  import {
20
20
  choiceSchema
21
- } from "./chunk-2M34FLAY.js";
21
+ } from "./chunk-BRGLDWUP.js";
22
22
  import {
23
23
  additionalSpellsEntrySchema,
24
24
  imageField,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  parseOptionalFeature
3
- } from "./chunk-PJMG5XV3.js";
3
+ } from "./chunk-QSBJ6NEM.js";
4
4
 
5
5
  // src/optional-feature/optional-feature.codec.ts
6
6
  import yaml from "js-yaml";