ttrpg-engine-dnd 0.1.0-alpha.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.
Files changed (329) hide show
  1. package/CHANGELOG.md +69 -0
  2. package/CONTRIBUTING.md +98 -0
  3. package/DEVELOPMENT.md +70 -0
  4. package/LICENSE +21 -0
  5. package/README.md +247 -0
  6. package/VERSIONING.md +151 -0
  7. package/dist/content/index.d.ts +3 -0
  8. package/dist/content/index.d.ts.map +1 -0
  9. package/dist/content/pack.d.ts +1657 -0
  10. package/dist/content/pack.d.ts.map +1 -0
  11. package/dist/content/packs/starter.d.ts +4 -0
  12. package/dist/content/packs/starter.d.ts.map +1 -0
  13. package/dist/content/validate.d.ts +8 -0
  14. package/dist/content/validate.d.ts.map +1 -0
  15. package/dist/derive/ability-check.d.ts +26 -0
  16. package/dist/derive/ability-check.d.ts.map +1 -0
  17. package/dist/derive/ability.d.ts +9 -0
  18. package/dist/derive/ability.d.ts.map +1 -0
  19. package/dist/derive/ac.d.ts +19 -0
  20. package/dist/derive/ac.d.ts.map +1 -0
  21. package/dist/derive/action-economy.d.ts +17 -0
  22. package/dist/derive/action-economy.d.ts.map +1 -0
  23. package/dist/derive/attack.d.ts +20 -0
  24. package/dist/derive/attack.d.ts.map +1 -0
  25. package/dist/derive/character-view.d.ts +29 -0
  26. package/dist/derive/character-view.d.ts.map +1 -0
  27. package/dist/derive/damage-mitigation.d.ts +18 -0
  28. package/dist/derive/damage-mitigation.d.ts.map +1 -0
  29. package/dist/derive/effect-stack.d.ts +15 -0
  30. package/dist/derive/effect-stack.d.ts.map +1 -0
  31. package/dist/derive/encumbrance.d.ts +17 -0
  32. package/dist/derive/encumbrance.d.ts.map +1 -0
  33. package/dist/derive/index.d.ts +12 -0
  34. package/dist/derive/index.d.ts.map +1 -0
  35. package/dist/derive/save.d.ts +23 -0
  36. package/dist/derive/save.d.ts.map +1 -0
  37. package/dist/derive/spell-dc.d.ts +21 -0
  38. package/dist/derive/spell-dc.d.ts.map +1 -0
  39. package/dist/derive/spell-slots.d.ts +21 -0
  40. package/dist/derive/spell-slots.d.ts.map +1 -0
  41. package/dist/derive/terrain.d.ts +10 -0
  42. package/dist/derive/terrain.d.ts.map +1 -0
  43. package/dist/effects/builder.d.ts +66 -0
  44. package/dist/effects/builder.d.ts.map +1 -0
  45. package/dist/effects/formula.d.ts +12 -0
  46. package/dist/effects/formula.d.ts.map +1 -0
  47. package/dist/effects/index.d.ts +4 -0
  48. package/dist/effects/index.d.ts.map +1 -0
  49. package/dist/effects/predicate.d.ts +12 -0
  50. package/dist/effects/predicate.d.ts.map +1 -0
  51. package/dist/engine/apply.d.ts +5 -0
  52. package/dist/engine/apply.d.ts.map +1 -0
  53. package/dist/engine/commit.d.ts +12 -0
  54. package/dist/engine/commit.d.ts.map +1 -0
  55. package/dist/engine/conveniences.d.ts +7124 -0
  56. package/dist/engine/conveniences.d.ts.map +1 -0
  57. package/dist/engine/ids-utils.d.ts +2 -0
  58. package/dist/engine/ids-utils.d.ts.map +1 -0
  59. package/dist/engine/index.d.ts +107 -0
  60. package/dist/engine/index.d.ts.map +1 -0
  61. package/dist/engine/plan/action-surge.d.ts +10 -0
  62. package/dist/engine/plan/action-surge.d.ts.map +1 -0
  63. package/dist/engine/plan/attack.d.ts +30 -0
  64. package/dist/engine/plan/attack.d.ts.map +1 -0
  65. package/dist/engine/plan/cast-spell.d.ts +18 -0
  66. package/dist/engine/plan/cast-spell.d.ts.map +1 -0
  67. package/dist/engine/plan/checks.d.ts +26 -0
  68. package/dist/engine/plan/checks.d.ts.map +1 -0
  69. package/dist/engine/plan/concentration.d.ts +12 -0
  70. package/dist/engine/plan/concentration.d.ts.map +1 -0
  71. package/dist/engine/plan/contested.d.ts +28 -0
  72. package/dist/engine/plan/contested.d.ts.map +1 -0
  73. package/dist/engine/plan/encounter.d.ts +47 -0
  74. package/dist/engine/plan/encounter.d.ts.map +1 -0
  75. package/dist/engine/plan/falling.d.ts +11 -0
  76. package/dist/engine/plan/falling.d.ts.map +1 -0
  77. package/dist/engine/plan/index.d.ts +20 -0
  78. package/dist/engine/plan/index.d.ts.map +1 -0
  79. package/dist/engine/plan/level-up.d.ts +22 -0
  80. package/dist/engine/plan/level-up.d.ts.map +1 -0
  81. package/dist/engine/plan/movement.d.ts +25 -0
  82. package/dist/engine/plan/movement.d.ts.map +1 -0
  83. package/dist/engine/plan/multiattack.d.ts +12 -0
  84. package/dist/engine/plan/multiattack.d.ts.map +1 -0
  85. package/dist/engine/plan/npc.d.ts +21 -0
  86. package/dist/engine/plan/npc.d.ts.map +1 -0
  87. package/dist/engine/plan/offhand-attack.d.ts +13 -0
  88. package/dist/engine/plan/offhand-attack.d.ts.map +1 -0
  89. package/dist/engine/plan/opportunity-attack.d.ts +14 -0
  90. package/dist/engine/plan/opportunity-attack.d.ts.map +1 -0
  91. package/dist/engine/plan/reactive-spells.d.ts +34 -0
  92. package/dist/engine/plan/reactive-spells.d.ts.map +1 -0
  93. package/dist/engine/plan/rest.d.ts +16 -0
  94. package/dist/engine/plan/rest.d.ts.map +1 -0
  95. package/dist/engine/plan/travel.d.ts +21 -0
  96. package/dist/engine/plan/travel.d.ts.map +1 -0
  97. package/dist/engine/plan/weapon-mastery.d.ts +15 -0
  98. package/dist/engine/plan/weapon-mastery.d.ts.map +1 -0
  99. package/dist/engine/reducers/action-economy.d.ts +12 -0
  100. package/dist/engine/reducers/action-economy.d.ts.map +1 -0
  101. package/dist/engine/reducers/attack.d.ts +6 -0
  102. package/dist/engine/reducers/attack.d.ts.map +1 -0
  103. package/dist/engine/reducers/bastion.d.ts +10 -0
  104. package/dist/engine/reducers/bastion.d.ts.map +1 -0
  105. package/dist/engine/reducers/charges.d.ts +7 -0
  106. package/dist/engine/reducers/charges.d.ts.map +1 -0
  107. package/dist/engine/reducers/checks.d.ts +6 -0
  108. package/dist/engine/reducers/checks.d.ts.map +1 -0
  109. package/dist/engine/reducers/combat.d.ts +12 -0
  110. package/dist/engine/reducers/combat.d.ts.map +1 -0
  111. package/dist/engine/reducers/concentration.d.ts +6 -0
  112. package/dist/engine/reducers/concentration.d.ts.map +1 -0
  113. package/dist/engine/reducers/downtime.d.ts +5 -0
  114. package/dist/engine/reducers/downtime.d.ts.map +1 -0
  115. package/dist/engine/reducers/encounter.d.ts +11 -0
  116. package/dist/engine/reducers/encounter.d.ts.map +1 -0
  117. package/dist/engine/reducers/inventory.d.ts +9 -0
  118. package/dist/engine/reducers/inventory.d.ts.map +1 -0
  119. package/dist/engine/reducers/level-up.d.ts +7 -0
  120. package/dist/engine/reducers/level-up.d.ts.map +1 -0
  121. package/dist/engine/reducers/locations.d.ts +8 -0
  122. package/dist/engine/reducers/locations.d.ts.map +1 -0
  123. package/dist/engine/reducers/mounts-vehicles.d.ts +11 -0
  124. package/dist/engine/reducers/mounts-vehicles.d.ts.map +1 -0
  125. package/dist/engine/reducers/movement.d.ts +7 -0
  126. package/dist/engine/reducers/movement.d.ts.map +1 -0
  127. package/dist/engine/reducers/npc.d.ts +7 -0
  128. package/dist/engine/reducers/npc.d.ts.map +1 -0
  129. package/dist/engine/reducers/party.d.ts +10 -0
  130. package/dist/engine/reducers/party.d.ts.map +1 -0
  131. package/dist/engine/reducers/progression.d.ts +5 -0
  132. package/dist/engine/reducers/progression.d.ts.map +1 -0
  133. package/dist/engine/reducers/quests.d.ts +14 -0
  134. package/dist/engine/reducers/quests.d.ts.map +1 -0
  135. package/dist/engine/reducers/reactive-spells.d.ts +7 -0
  136. package/dist/engine/reducers/reactive-spells.d.ts.map +1 -0
  137. package/dist/engine/reducers/resources.d.ts +7 -0
  138. package/dist/engine/reducers/resources.d.ts.map +1 -0
  139. package/dist/engine/reducers/rest.d.ts +8 -0
  140. package/dist/engine/reducers/rest.d.ts.map +1 -0
  141. package/dist/engine/reducers/resurrection.d.ts +5 -0
  142. package/dist/engine/reducers/resurrection.d.ts.map +1 -0
  143. package/dist/engine/reducers/session.d.ts +8 -0
  144. package/dist/engine/reducers/session.d.ts.map +1 -0
  145. package/dist/engine/reducers/settings.d.ts +5 -0
  146. package/dist/engine/reducers/settings.d.ts.map +1 -0
  147. package/dist/engine/reducers/spellcasting.d.ts +7 -0
  148. package/dist/engine/reducers/spellcasting.d.ts.map +1 -0
  149. package/dist/engine/reducers/transformations.d.ts +8 -0
  150. package/dist/engine/reducers/transformations.d.ts.map +1 -0
  151. package/dist/engine/reducers/travel.d.ts +7 -0
  152. package/dist/engine/reducers/travel.d.ts.map +1 -0
  153. package/dist/engine/reducers/triggers.d.ts +9 -0
  154. package/dist/engine/reducers/triggers.d.ts.map +1 -0
  155. package/dist/engine/reducers/weapon-mastery.d.ts +5 -0
  156. package/dist/engine/reducers/weapon-mastery.d.ts.map +1 -0
  157. package/dist/engine/replay.d.ts +4 -0
  158. package/dist/engine/replay.d.ts.map +1 -0
  159. package/dist/engine/triggers/dispatch.d.ts +13 -0
  160. package/dist/engine/triggers/dispatch.d.ts.map +1 -0
  161. package/dist/engine/undo-redo.d.ts +4 -0
  162. package/dist/engine/undo-redo.d.ts.map +1 -0
  163. package/dist/handlers/context.d.ts +7 -0
  164. package/dist/handlers/context.d.ts.map +1 -0
  165. package/dist/handlers/index.d.ts +12 -0
  166. package/dist/handlers/index.d.ts.map +1 -0
  167. package/dist/ids.d.ts +64 -0
  168. package/dist/ids.d.ts.map +1 -0
  169. package/dist/index.d.ts +72 -0
  170. package/dist/index.d.ts.map +1 -0
  171. package/dist/internal/clock.d.ts +2 -0
  172. package/dist/internal/clock.d.ts.map +1 -0
  173. package/dist/internal/constants.d.ts +6 -0
  174. package/dist/internal/constants.d.ts.map +1 -0
  175. package/dist/internal/immer.d.ts +4 -0
  176. package/dist/internal/immer.d.ts.map +1 -0
  177. package/dist/internal/invariants.d.ts +5 -0
  178. package/dist/internal/invariants.d.ts.map +1 -0
  179. package/dist/migrations/index.d.ts +5 -0
  180. package/dist/migrations/index.d.ts.map +1 -0
  181. package/dist/rng/default.d.ts +6 -0
  182. package/dist/rng/default.d.ts.map +1 -0
  183. package/dist/rng/dice.d.ts +20 -0
  184. package/dist/rng/dice.d.ts.map +1 -0
  185. package/dist/rng/index.d.ts +10 -0
  186. package/dist/rng/index.d.ts.map +1 -0
  187. package/dist/rng/seeded.d.ts +9 -0
  188. package/dist/rng/seeded.d.ts.map +1 -0
  189. package/dist/rng/throw.d.ts +9 -0
  190. package/dist/rng/throw.d.ts.map +1 -0
  191. package/dist/schemas/content/background.d.ts +46 -0
  192. package/dist/schemas/content/background.d.ts.map +1 -0
  193. package/dist/schemas/content/class.d.ts +264 -0
  194. package/dist/schemas/content/class.d.ts.map +1 -0
  195. package/dist/schemas/content/condition.d.ts +90 -0
  196. package/dist/schemas/content/condition.d.ts.map +1 -0
  197. package/dist/schemas/content/feat.d.ts +25 -0
  198. package/dist/schemas/content/feat.d.ts.map +1 -0
  199. package/dist/schemas/content/index.d.ts +9 -0
  200. package/dist/schemas/content/index.d.ts.map +1 -0
  201. package/dist/schemas/content/item.d.ts +602 -0
  202. package/dist/schemas/content/item.d.ts.map +1 -0
  203. package/dist/schemas/content/monster.d.ts +203 -0
  204. package/dist/schemas/content/monster.d.ts.map +1 -0
  205. package/dist/schemas/content/species.d.ts +63 -0
  206. package/dist/schemas/content/species.d.ts.map +1 -0
  207. package/dist/schemas/content/spell.d.ts +253 -0
  208. package/dist/schemas/content/spell.d.ts.map +1 -0
  209. package/dist/schemas/effects.d.ts +175 -0
  210. package/dist/schemas/effects.d.ts.map +1 -0
  211. package/dist/schemas/events/action-economy.d.ts +38 -0
  212. package/dist/schemas/events/action-economy.d.ts.map +1 -0
  213. package/dist/schemas/events/attack.d.ts +139 -0
  214. package/dist/schemas/events/attack.d.ts.map +1 -0
  215. package/dist/schemas/events/bastion.d.ts +227 -0
  216. package/dist/schemas/events/bastion.d.ts.map +1 -0
  217. package/dist/schemas/events/charges.d.ts +110 -0
  218. package/dist/schemas/events/charges.d.ts.map +1 -0
  219. package/dist/schemas/events/checks.d.ts +103 -0
  220. package/dist/schemas/events/checks.d.ts.map +1 -0
  221. package/dist/schemas/events/combat.d.ts +308 -0
  222. package/dist/schemas/events/combat.d.ts.map +1 -0
  223. package/dist/schemas/events/concentration.d.ts +99 -0
  224. package/dist/schemas/events/concentration.d.ts.map +1 -0
  225. package/dist/schemas/events/downtime.d.ts +53 -0
  226. package/dist/schemas/events/downtime.d.ts.map +1 -0
  227. package/dist/schemas/events/encounter.d.ts +260 -0
  228. package/dist/schemas/events/encounter.d.ts.map +1 -0
  229. package/dist/schemas/events/envelope.d.ts +22 -0
  230. package/dist/schemas/events/envelope.d.ts.map +1 -0
  231. package/dist/schemas/events/index.d.ts +4594 -0
  232. package/dist/schemas/events/index.d.ts.map +1 -0
  233. package/dist/schemas/events/inventory.d.ts +253 -0
  234. package/dist/schemas/events/inventory.d.ts.map +1 -0
  235. package/dist/schemas/events/level-up.d.ts +141 -0
  236. package/dist/schemas/events/level-up.d.ts.map +1 -0
  237. package/dist/schemas/events/locations.d.ts +183 -0
  238. package/dist/schemas/events/locations.d.ts.map +1 -0
  239. package/dist/schemas/events/mounts-vehicles.d.ts +233 -0
  240. package/dist/schemas/events/mounts-vehicles.d.ts.map +1 -0
  241. package/dist/schemas/events/movement.d.ts +131 -0
  242. package/dist/schemas/events/movement.d.ts.map +1 -0
  243. package/dist/schemas/events/npc.d.ts +113 -0
  244. package/dist/schemas/events/npc.d.ts.map +1 -0
  245. package/dist/schemas/events/party.d.ts +260 -0
  246. package/dist/schemas/events/party.d.ts.map +1 -0
  247. package/dist/schemas/events/progression.d.ts +698 -0
  248. package/dist/schemas/events/progression.d.ts.map +1 -0
  249. package/dist/schemas/events/quests.d.ts +426 -0
  250. package/dist/schemas/events/quests.d.ts.map +1 -0
  251. package/dist/schemas/events/reactive-spells.d.ts +98 -0
  252. package/dist/schemas/events/reactive-spells.d.ts.map +1 -0
  253. package/dist/schemas/events/resources.d.ts +107 -0
  254. package/dist/schemas/events/resources.d.ts.map +1 -0
  255. package/dist/schemas/events/rest.d.ts +104 -0
  256. package/dist/schemas/events/rest.d.ts.map +1 -0
  257. package/dist/schemas/events/resurrection.d.ts +44 -0
  258. package/dist/schemas/events/resurrection.d.ts.map +1 -0
  259. package/dist/schemas/events/session.d.ts +144 -0
  260. package/dist/schemas/events/session.d.ts.map +1 -0
  261. package/dist/schemas/events/settings.d.ts +47 -0
  262. package/dist/schemas/events/settings.d.ts.map +1 -0
  263. package/dist/schemas/events/spellcasting.d.ts +103 -0
  264. package/dist/schemas/events/spellcasting.d.ts.map +1 -0
  265. package/dist/schemas/events/transformations.d.ts +279 -0
  266. package/dist/schemas/events/transformations.d.ts.map +1 -0
  267. package/dist/schemas/events/travel.d.ts +143 -0
  268. package/dist/schemas/events/travel.d.ts.map +1 -0
  269. package/dist/schemas/events/triggers.d.ts +60 -0
  270. package/dist/schemas/events/triggers.d.ts.map +1 -0
  271. package/dist/schemas/events/weapon-mastery.d.ts +38 -0
  272. package/dist/schemas/events/weapon-mastery.d.ts.map +1 -0
  273. package/dist/schemas/formula.d.ts +103 -0
  274. package/dist/schemas/formula.d.ts.map +1 -0
  275. package/dist/schemas/index.d.ts +8 -0
  276. package/dist/schemas/index.d.ts.map +1 -0
  277. package/dist/schemas/predicate.d.ts +72 -0
  278. package/dist/schemas/predicate.d.ts.map +1 -0
  279. package/dist/schemas/primitives.d.ts +156 -0
  280. package/dist/schemas/primitives.d.ts.map +1 -0
  281. package/dist/schemas/runtime/bastion.d.ts +130 -0
  282. package/dist/schemas/runtime/bastion.d.ts.map +1 -0
  283. package/dist/schemas/runtime/campaign.d.ts +2122 -0
  284. package/dist/schemas/runtime/campaign.d.ts.map +1 -0
  285. package/dist/schemas/runtime/character.d.ts +580 -0
  286. package/dist/schemas/runtime/character.d.ts.map +1 -0
  287. package/dist/schemas/runtime/currency.d.ts +9 -0
  288. package/dist/schemas/runtime/currency.d.ts.map +1 -0
  289. package/dist/schemas/runtime/downtime.d.ts +31 -0
  290. package/dist/schemas/runtime/downtime.d.ts.map +1 -0
  291. package/dist/schemas/runtime/effect-instance.d.ts +65 -0
  292. package/dist/schemas/runtime/effect-instance.d.ts.map +1 -0
  293. package/dist/schemas/runtime/encounter.d.ts +264 -0
  294. package/dist/schemas/runtime/encounter.d.ts.map +1 -0
  295. package/dist/schemas/runtime/in-game-time.d.ts +18 -0
  296. package/dist/schemas/runtime/in-game-time.d.ts.map +1 -0
  297. package/dist/schemas/runtime/index.d.ts +15 -0
  298. package/dist/schemas/runtime/index.d.ts.map +1 -0
  299. package/dist/schemas/runtime/item-instance.d.ts +66 -0
  300. package/dist/schemas/runtime/item-instance.d.ts.map +1 -0
  301. package/dist/schemas/runtime/location.d.ts +111 -0
  302. package/dist/schemas/runtime/location.d.ts.map +1 -0
  303. package/dist/schemas/runtime/party.d.ts +52 -0
  304. package/dist/schemas/runtime/party.d.ts.map +1 -0
  305. package/dist/schemas/runtime/pending-choice.d.ts +77 -0
  306. package/dist/schemas/runtime/pending-choice.d.ts.map +1 -0
  307. package/dist/schemas/runtime/quest.d.ts +207 -0
  308. package/dist/schemas/runtime/quest.d.ts.map +1 -0
  309. package/dist/schemas/runtime/session.d.ts +102 -0
  310. package/dist/schemas/runtime/session.d.ts.map +1 -0
  311. package/dist/schemas/runtime/settings.d.ts +26 -0
  312. package/dist/schemas/runtime/settings.d.ts.map +1 -0
  313. package/dist/schemas/runtime/travel.d.ts +34 -0
  314. package/dist/schemas/runtime/travel.d.ts.map +1 -0
  315. package/dist/schemas/runtime/vehicle.d.ts +49 -0
  316. package/dist/schemas/runtime/vehicle.d.ts.map +1 -0
  317. package/dist/ttrpg-engine-dnd.cjs +6 -0
  318. package/dist/ttrpg-engine-dnd.cjs.map +1 -0
  319. package/dist/ttrpg-engine-dnd.js +10464 -0
  320. package/dist/ttrpg-engine-dnd.js.map +1 -0
  321. package/dist/types/index.d.ts +8 -0
  322. package/dist/types/index.d.ts.map +1 -0
  323. package/dist/version.d.ts +3 -0
  324. package/dist/version.d.ts.map +1 -0
  325. package/docs/api-overview.md +111 -0
  326. package/docs/concepts.md +154 -0
  327. package/docs/getting-started.md +142 -0
  328. package/docs/recipes.md +302 -0
  329. package/package.json +83 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pack.d.ts","sourceRoot":"","sources":["../../src/content/pack.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { type ContentPack } from '../pack.js';
2
+ export declare const STARTER_PACK_RAW: unknown;
3
+ export declare const loadStarterPack: () => ContentPack;
4
+ //# sourceMappingURL=starter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"starter.d.ts","sourceRoot":"","sources":["../../../src/content/packs/starter.ts"],"names":[],"mappings":"AACA,OAAO,EAAmB,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAE/D,eAAO,MAAM,gBAAgB,EAAE,OAAyB,CAAC;AAEzD,eAAO,MAAM,eAAe,QAAO,WAA+C,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { ResolvedContent } from './pack.js';
2
+ export interface ContentValidationIssue {
3
+ readonly path: string;
4
+ readonly message: string;
5
+ readonly suggestion?: string;
6
+ }
7
+ export declare const validateCrossReferences: (content: ResolvedContent) => ReadonlyArray<ContentValidationIssue>;
8
+ //# sourceMappingURL=validate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/content/validate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAEjD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AA6CD,eAAO,MAAM,uBAAuB,GAClC,SAAS,eAAe,KACvB,aAAa,CAAC,sBAAsB,CA8BtC,CAAC"}
@@ -0,0 +1,26 @@
1
+ import type { Character } from '../schemas/runtime/character.js';
2
+ import type { ItemInstance } from '../schemas/runtime/item-instance.js';
3
+ import type { PendingChoice } from '../schemas/runtime/pending-choice.js';
4
+ import type { ResolvedContent } from '../content/pack.js';
5
+ import type { AbilityScore, Skill } from '../schemas/primitives.js';
6
+ export interface AbilityCheckBreakdownEntry {
7
+ readonly source: string;
8
+ readonly value: number;
9
+ }
10
+ export interface AbilityCheckResult {
11
+ readonly total: number;
12
+ readonly breakdown: ReadonlyArray<AbilityCheckBreakdownEntry>;
13
+ readonly hasAdvantage: boolean;
14
+ readonly hasDisadvantage: boolean;
15
+ }
16
+ export interface ComputeAbilityCheckInput {
17
+ readonly character: Character;
18
+ readonly itemInstances: Readonly<Record<string, ItemInstance>>;
19
+ readonly content: ResolvedContent;
20
+ readonly ability: AbilityScore;
21
+ readonly skill?: Skill;
22
+ readonly pendingChoices?: Readonly<Record<string, PendingChoice>>;
23
+ }
24
+ export declare const computeAbilityCheck: (input: ComputeAbilityCheckInput) => AbilityCheckResult;
25
+ export declare const computePassiveScore: (input: ComputeAbilityCheckInput) => number;
26
+ //# sourceMappingURL=ability-check.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ability-check.d.ts","sourceRoot":"","sources":["../../src/derive/ability-check.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAOpE,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,0BAA0B,CAAC,CAAC;IAC9D,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;CACnC;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;IAC/D,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;IACvB,QAAQ,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;CACnE;AAKD,eAAO,MAAM,mBAAmB,GAAI,OAAO,wBAAwB,KAAG,kBA8CrE,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,OAAO,wBAAwB,KAAG,MAKrE,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { CharacterLevel } from '../schemas/primitives.js';
2
+ export declare const ABILITY_SCORE_MIN = 1;
3
+ export declare const ABILITY_SCORE_MAX = 30;
4
+ export declare const PROFICIENCY_BONUS_LEVEL_MIN = 1;
5
+ export declare const PROFICIENCY_BONUS_LEVEL_MAX = 20;
6
+ export declare const abilityModifier: (score: number) => number;
7
+ export declare const proficiencyBonus: (level: number) => number;
8
+ export declare const proficiencyBonusForCharacterLevel: (level: CharacterLevel) => number;
9
+ //# sourceMappingURL=ability.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ability.d.ts","sourceRoot":"","sources":["../../src/derive/ability.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE/D,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAC7C,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAE9C,eAAO,MAAM,eAAe,GAAI,OAAO,MAAM,KAAG,MAU/C,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,OAAO,MAAM,KAAG,MAUhD,CAAC;AAEF,eAAO,MAAM,iCAAiC,GAAI,OAAO,cAAc,KAAG,MACjD,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type { Character } from '../schemas/runtime/character.js';
2
+ import type { ItemInstance } from '../schemas/runtime/item-instance.js';
3
+ import type { ResolvedContent } from '../content/pack.js';
4
+ export interface ACBreakdownEntry {
5
+ readonly source: string;
6
+ readonly value: number;
7
+ }
8
+ export interface ACResult {
9
+ readonly total: number;
10
+ readonly breakdown: ReadonlyArray<ACBreakdownEntry>;
11
+ }
12
+ export interface ComputeACInput {
13
+ readonly character: Character;
14
+ readonly itemInstances: Readonly<Record<string, ItemInstance>>;
15
+ readonly content: ResolvedContent;
16
+ readonly pendingChoices?: Readonly<Record<string, import('../schemas/runtime/pending-choice.js').PendingChoice>>;
17
+ }
18
+ export declare const computeAC: (input: ComputeACInput) => ACResult;
19
+ //# sourceMappingURL=ac.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ac.d.ts","sourceRoot":"","sources":["../../src/derive/ac.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAO1D,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;CACrD;AA2ED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;IAC/D,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,sCAAsC,EAAE,aAAa,CAAC,CAAC,CAAC;CAClH;AAED,eAAO,MAAM,SAAS,GAAI,OAAO,cAAc,KAAG,QAmBjD,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { Character } from '../schemas/runtime/character.js';
2
+ import type { ItemInstance } from '../schemas/runtime/item-instance.js';
3
+ import type { PendingChoice } from '../schemas/runtime/pending-choice.js';
4
+ import type { ResolvedContent } from '../content/pack.js';
5
+ export interface ComputeActionEconomyInput {
6
+ readonly character: Character;
7
+ readonly itemInstances: Readonly<Record<string, ItemInstance>>;
8
+ readonly content: ResolvedContent;
9
+ readonly pendingChoices?: Readonly<Record<string, PendingChoice>>;
10
+ }
11
+ export interface ActionEconomyBudget {
12
+ readonly maxAttacksPerAction: number;
13
+ readonly extraActionsPerTurn: number;
14
+ readonly extraBonusActionsPerTurn: number;
15
+ }
16
+ export declare const computeActionEconomyBudget: (input: ComputeActionEconomyInput) => ActionEconomyBudget;
17
+ //# sourceMappingURL=action-economy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action-economy.d.ts","sourceRoot":"","sources":["../../src/derive/action-economy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAK1D,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;IAC/D,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;CACnE;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,wBAAwB,EAAE,MAAM,CAAC;CAC3C;AAED,eAAO,MAAM,0BAA0B,GACrC,OAAO,yBAAyB,KAC/B,mBAOF,CAAC"}
@@ -0,0 +1,20 @@
1
+ import type { Character } from '../schemas/runtime/character.js';
2
+ import type { ItemInstance } from '../schemas/runtime/item-instance.js';
3
+ import type { ResolvedContent } from '../content/pack.js';
4
+ export interface AttackBreakdownEntry {
5
+ readonly source: string;
6
+ readonly value: number;
7
+ }
8
+ export interface AttackResult {
9
+ readonly total: number;
10
+ readonly breakdown: ReadonlyArray<AttackBreakdownEntry>;
11
+ }
12
+ export interface ComputeAttackInput {
13
+ readonly character: Character;
14
+ readonly itemInstances: Readonly<Record<string, ItemInstance>>;
15
+ readonly content: ResolvedContent;
16
+ readonly weaponInstanceId: string;
17
+ readonly pendingChoices?: Readonly<Record<string, import('../schemas/runtime/pending-choice.js').PendingChoice>>;
18
+ }
19
+ export declare const computeAttackBonus: (input: ComputeAttackInput) => AttackResult;
20
+ //# sourceMappingURL=attack.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attack.d.ts","sourceRoot":"","sources":["../../src/derive/attack.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAM1D,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,oBAAoB,CAAC,CAAC;CACzD;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;IAC/D,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,sCAAsC,EAAE,aAAa,CAAC,CAAC,CAAC;CAClH;AA8BD,eAAO,MAAM,kBAAkB,GAAI,OAAO,kBAAkB,KAAG,YA+B9D,CAAC"}
@@ -0,0 +1,29 @@
1
+ import type { Character, HP } from '../schemas/runtime/character.js';
2
+ import type { ItemInstance } from '../schemas/runtime/item-instance.js';
3
+ import type { PendingChoice } from '../schemas/runtime/pending-choice.js';
4
+ import type { ResolvedContent } from '../content/pack.js';
5
+ import type { AbilityScore } from '../schemas/primitives.js';
6
+ import { type ACResult } from './ac.js';
7
+ import { type SaveResult } from './save.js';
8
+ import { type SpellSlotsResult } from './spell-slots.js';
9
+ export interface DerivedCharacter {
10
+ readonly id: string;
11
+ readonly name: string;
12
+ readonly totalLevel: number;
13
+ readonly proficiencyBonus: number;
14
+ readonly abilityModifiers: Readonly<Record<AbilityScore, number>>;
15
+ readonly hp: HP;
16
+ readonly ac: ACResult;
17
+ readonly savingThrows: Readonly<Record<AbilityScore, SaveResult>>;
18
+ readonly spellSlots: SpellSlotsResult;
19
+ readonly hasPendingChoices: boolean;
20
+ readonly pendingChoiceIds: ReadonlyArray<string>;
21
+ }
22
+ export interface ComputeDerivedCharacterInput {
23
+ readonly character: Character;
24
+ readonly itemInstances: Readonly<Record<string, ItemInstance>>;
25
+ readonly content: ResolvedContent;
26
+ readonly pendingChoices?: Readonly<Record<string, PendingChoice>>;
27
+ }
28
+ export declare const computeDerivedCharacter: (input: ComputeDerivedCharacterInput) => DerivedCharacter;
29
+ //# sourceMappingURL=character-view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"character-view.d.ts","sourceRoot":"","sources":["../../src/derive/character-view.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAG7D,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAsB,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AAChE,OAAO,EAAqB,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAI5E,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;IAClE,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC;IAChB,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC;IACtB,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC;IAClE,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;IACtC,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,gBAAgB,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAClD;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;IAC/D,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;CACnE;AAED,eAAO,MAAM,uBAAuB,GAClC,OAAO,4BAA4B,KAClC,gBA0BF,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { Character } from '../schemas/runtime/character.js';
2
+ import type { ItemInstance } from '../schemas/runtime/item-instance.js';
3
+ import type { PendingChoice } from '../schemas/runtime/pending-choice.js';
4
+ import type { ResolvedContent } from '../content/pack.js';
5
+ import type { DamageComponent } from '../schemas/events/combat.js';
6
+ import type { DamageType } from '../schemas/primitives.js';
7
+ export interface MitigateDamageInput {
8
+ readonly character: Character;
9
+ readonly itemInstances: Readonly<Record<string, ItemInstance>>;
10
+ readonly content: ResolvedContent;
11
+ readonly pendingChoices?: Readonly<Record<string, PendingChoice>>;
12
+ readonly rawComponents: ReadonlyArray<{
13
+ readonly amount: number;
14
+ readonly type: DamageType;
15
+ }>;
16
+ }
17
+ export declare const mitigateDamage: (input: MitigateDamageInput) => DamageComponent[];
18
+ //# sourceMappingURL=damage-mitigation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"damage-mitigation.d.ts","sourceRoot":"","sources":["../../src/derive/damage-mitigation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAM3D,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;IAC/D,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;IAClE,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;KAAE,CAAC,CAAC;CAC/F;AAID,eAAO,MAAM,cAAc,GAAI,OAAO,mBAAmB,KAAG,eAAe,EAoC1E,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { Character } from '../schemas/runtime/character.js';
2
+ import type { ItemInstance } from '../schemas/runtime/item-instance.js';
3
+ import type { PendingChoice } from '../schemas/runtime/pending-choice.js';
4
+ import type { Effect } from '../schemas/effects.js';
5
+ import type { ResolvedContent } from '../content/pack.js';
6
+ import { EffectAccumulator } from '../effects/builder.js';
7
+ export interface BuildEffectStackInput {
8
+ readonly character: Character;
9
+ readonly content: ResolvedContent;
10
+ readonly itemInstances: Readonly<Record<string, ItemInstance>>;
11
+ readonly pendingChoices?: Readonly<Record<string, PendingChoice>>;
12
+ }
13
+ export declare const collectEffectsFromCharacter: (input: BuildEffectStackInput) => Effect[];
14
+ export declare const buildEffectStack: (input: BuildEffectStackInput) => EffectAccumulator;
15
+ //# sourceMappingURL=effect-stack.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effect-stack.d.ts","sourceRoot":"","sources":["../../src/derive/effect-stack.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAwB,MAAM,uBAAuB,CAAC;AAgFhF,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;IAC/D,QAAQ,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;CACnE;AAED,eAAO,MAAM,2BAA2B,GAAI,OAAO,qBAAqB,KAAG,MAAM,EAehF,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,OAAO,qBAAqB,KAAG,iBAqC/D,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { Character } from '../schemas/runtime/character.js';
2
+ import type { ItemInstance } from '../schemas/runtime/item-instance.js';
3
+ import type { ResolvedContent } from '../content/pack.js';
4
+ export type EncumbranceLevel = 'unencumbered' | 'encumbered' | 'heavily-encumbered';
5
+ export interface EncumbranceResult {
6
+ readonly carriedWeight: number;
7
+ readonly maxCarryingCapacity: number;
8
+ readonly level: EncumbranceLevel;
9
+ }
10
+ export interface ComputeEncumbranceInput {
11
+ readonly character: Character;
12
+ readonly itemInstances: Readonly<Record<string, ItemInstance>>;
13
+ readonly content: ResolvedContent;
14
+ }
15
+ export declare const computeCarryingCapacity: (character: Character) => number;
16
+ export declare const computeEncumbrance: (input: ComputeEncumbranceInput) => EncumbranceResult;
17
+ //# sourceMappingURL=encumbrance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encumbrance.d.ts","sourceRoot":"","sources":["../../src/derive/encumbrance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAM1D,MAAM,MAAM,gBAAgB,GAAG,cAAc,GAAG,YAAY,GAAG,oBAAoB,CAAC;AAEpF,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;CAClC;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;IAC/D,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;CACnC;AAED,eAAO,MAAM,uBAAuB,GAAI,WAAW,SAAS,KAAG,MACN,CAAC;AAE1D,eAAO,MAAM,kBAAkB,GAAI,OAAO,uBAAuB,KAAG,iBAmBnE,CAAC"}
@@ -0,0 +1,12 @@
1
+ export { abilityModifier, proficiencyBonus, proficiencyBonusForCharacterLevel, ABILITY_SCORE_MIN, ABILITY_SCORE_MAX, PROFICIENCY_BONUS_LEVEL_MIN, PROFICIENCY_BONUS_LEVEL_MAX, } from './ability.js';
2
+ export { computeAC, type ACResult, type ACBreakdownEntry, type ComputeACInput, } from './ac.js';
3
+ export { computeAttackBonus, type AttackResult, type AttackBreakdownEntry, type ComputeAttackInput, } from './attack.js';
4
+ export { computeSavingThrow, type SaveResult, type SaveBreakdownEntry, type ComputeSaveInput, } from './save.js';
5
+ export { computeSpellSaveDC, computeSpellAttackBonus, type SpellDCResult, type SpellDCBreakdownEntry, type ComputeSpellDCInput, } from './spell-dc.js';
6
+ export { computeSpellSlots, spellSlotsForLevel, type SpellSlotsResult, } from './spell-slots.js';
7
+ export { buildEffectStack, type BuildEffectStackInput } from './effect-stack.js';
8
+ export { computeDerivedCharacter, type DerivedCharacter, type ComputeDerivedCharacterInput, } from './character-view.js';
9
+ export { computeAbilityCheck, computePassiveScore, type AbilityCheckResult, type AbilityCheckBreakdownEntry, type ComputeAbilityCheckInput, } from './ability-check.js';
10
+ export { computeActionEconomyBudget, type ActionEconomyBudget, type ComputeActionEconomyInput, } from './action-economy.js';
11
+ export { terrainAt, movementCostFor, movementCostAt, chebyshevDistanceFeet, isInRangeFeet, hasLineOfSight, hasLineOfEffect, } from './terrain.js';
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/derive/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,iCAAiC,EACjC,iBAAiB,EACjB,iBAAiB,EACjB,2BAA2B,EAC3B,2BAA2B,GAC5B,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,SAAS,EACT,KAAK,QAAQ,EACb,KAAK,gBAAgB,EACrB,KAAK,cAAc,GACpB,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,kBAAkB,EAClB,KAAK,YAAY,EACjB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,GACxB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,kBAAkB,EAClB,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,GACtB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,GACzB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,KAAK,gBAAgB,GACtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AACjF,OAAO,EACL,uBAAuB,EACvB,KAAK,gBAAgB,EACrB,KAAK,4BAA4B,GAClC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,KAAK,kBAAkB,EACvB,KAAK,0BAA0B,EAC/B,KAAK,wBAAwB,GAC9B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,0BAA0B,EAC1B,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,GAC/B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,SAAS,EACT,eAAe,EACf,cAAc,EACd,qBAAqB,EACrB,aAAa,EACb,cAAc,EACd,eAAe,GAChB,MAAM,cAAc,CAAC"}
@@ -0,0 +1,23 @@
1
+ import type { Character } from '../schemas/runtime/character.js';
2
+ import type { ItemInstance } from '../schemas/runtime/item-instance.js';
3
+ import type { ResolvedContent } from '../content/pack.js';
4
+ import type { AbilityScore } from '../schemas/primitives.js';
5
+ export interface SaveBreakdownEntry {
6
+ readonly source: string;
7
+ readonly value: number;
8
+ }
9
+ export interface SaveResult {
10
+ readonly total: number;
11
+ readonly breakdown: ReadonlyArray<SaveBreakdownEntry>;
12
+ readonly hasAdvantage: boolean;
13
+ readonly hasDisadvantage: boolean;
14
+ }
15
+ export interface ComputeSaveInput {
16
+ readonly character: Character;
17
+ readonly itemInstances: Readonly<Record<string, ItemInstance>>;
18
+ readonly content: ResolvedContent;
19
+ readonly ability: AbilityScore;
20
+ readonly pendingChoices?: Readonly<Record<string, import('../schemas/runtime/pending-choice.js').PendingChoice>>;
21
+ }
22
+ export declare const computeSavingThrow: (input: ComputeSaveInput) => SaveResult;
23
+ //# sourceMappingURL=save.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"save.d.ts","sourceRoot":"","sources":["../../src/derive/save.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAM7D,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC;IACtD,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;CACnC;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;IAC/D,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,sCAAsC,EAAE,aAAa,CAAC,CAAC,CAAC;CAClH;AAUD,eAAO,MAAM,kBAAkB,GAAI,OAAO,gBAAgB,KAAG,UA8B5D,CAAC"}
@@ -0,0 +1,21 @@
1
+ import type { Character } from '../schemas/runtime/character.js';
2
+ import type { ItemInstance } from '../schemas/runtime/item-instance.js';
3
+ import type { ResolvedContent } from '../content/pack.js';
4
+ export interface SpellDCBreakdownEntry {
5
+ readonly source: string;
6
+ readonly value: number;
7
+ }
8
+ export interface SpellDCResult {
9
+ readonly total: number;
10
+ readonly breakdown: ReadonlyArray<SpellDCBreakdownEntry>;
11
+ }
12
+ export interface ComputeSpellDCInput {
13
+ readonly character: Character;
14
+ readonly itemInstances: Readonly<Record<string, ItemInstance>>;
15
+ readonly content: ResolvedContent;
16
+ readonly classId: string;
17
+ readonly pendingChoices?: Readonly<Record<string, import('../schemas/runtime/pending-choice.js').PendingChoice>>;
18
+ }
19
+ export declare const computeSpellSaveDC: (input: ComputeSpellDCInput) => SpellDCResult;
20
+ export declare const computeSpellAttackBonus: (input: ComputeSpellDCInput) => SpellDCResult;
21
+ //# sourceMappingURL=spell-dc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spell-dc.d.ts","sourceRoot":"","sources":["../../src/derive/spell-dc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAK1D,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,qBAAqB,CAAC,CAAC;CAC1D;AAID,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;IAC/D,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,sCAAsC,EAAE,aAAa,CAAC,CAAC,CAAC;CAClH;AAUD,eAAO,MAAM,kBAAkB,GAAI,OAAO,mBAAmB,KAAG,aAe/D,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,OAAO,mBAAmB,KAAG,aAcpE,CAAC"}
@@ -0,0 +1,21 @@
1
+ import type { Class } from '../schemas/content/class.js';
2
+ import type { Character } from '../schemas/runtime/character.js';
3
+ import type { SpellLevel } from '../schemas/primitives.js';
4
+ export interface SpellSlotsResult {
5
+ readonly slotsByLevel: ReadonlyArray<number>;
6
+ readonly pactSlots?: {
7
+ readonly level: number;
8
+ readonly count: number;
9
+ };
10
+ }
11
+ export declare const computeSpellSlots: (character: Character, classesById: ReadonlyMap<string, Class>) => SpellSlotsResult;
12
+ export declare const spellSlotsForLevel: (result: SpellSlotsResult, spellLevel: SpellLevel) => number;
13
+ export interface AvailableSlots {
14
+ readonly standardByLevel: ReadonlyArray<number>;
15
+ readonly pact: {
16
+ readonly level: number;
17
+ readonly count: number;
18
+ } | undefined;
19
+ }
20
+ export declare const computeAvailableSpellSlots: (character: Character, classesById: ReadonlyMap<string, Class>) => AvailableSlots;
21
+ //# sourceMappingURL=spell-slots.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spell-slots.d.ts","sourceRoot":"","sources":["../../src/derive/spell-slots.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAA2B,MAAM,6BAA6B,CAAC;AAClF,OAAO,KAAK,EAAE,SAAS,EAAmB,MAAM,iCAAiC,CAAC;AAClF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAiE3D,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC7C,QAAQ,CAAC,SAAS,CAAC,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CACzE;AAED,eAAO,MAAM,iBAAiB,GAC5B,WAAW,SAAS,EACpB,aAAa,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,KACtC,gBAuDF,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAC7B,QAAQ,gBAAgB,EACxB,YAAY,UAAU,KACrB,MAGF,CAAC;AAEF,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,eAAe,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAChD,QAAQ,CAAC,IAAI,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;CAC/E;AAED,eAAO,MAAM,0BAA0B,GACrC,WAAW,SAAS,EACpB,aAAa,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,KACtC,cAcF,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { Door, LocationMap, TerrainKind } from '../schemas/runtime/location.js';
2
+ import type { Position } from '../schemas/runtime/encounter.js';
3
+ export declare const terrainAt: (map: LocationMap, x: number, y: number) => TerrainKind | undefined;
4
+ export declare const movementCostFor: (terrain: TerrainKind) => number;
5
+ export declare const movementCostAt: (map: LocationMap, x: number, y: number) => number;
6
+ export declare const chebyshevDistanceFeet: (a: Position, b: Position, cellSizeFeet?: number) => number;
7
+ export declare const isInRangeFeet: (from: Position, to: Position, rangeFeet: number, cellSizeFeet?: number) => boolean;
8
+ export declare const hasLineOfSight: (map: LocationMap, doorsAtLocation: ReadonlyArray<Door>, from: Position, to: Position) => boolean;
9
+ export declare const hasLineOfEffect: (map: LocationMap, doorsAtLocation: ReadonlyArray<Door>, from: Position, to: Position) => boolean;
10
+ //# sourceMappingURL=terrain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terrain.d.ts","sourceRoot":"","sources":["../../src/derive/terrain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EACJ,WAAW,EACX,WAAW,EACZ,MAAM,gCAAgC,CAAC;AAMxC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAEhE,eAAO,MAAM,SAAS,GAAI,KAAK,WAAW,EAAE,GAAG,MAAM,EAAE,GAAG,MAAM,KAAG,WAAW,GAAG,SAIhF,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,SAAS,WAAW,KAAG,MAUtD,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,KAAK,WAAW,EAAE,GAAG,MAAM,EAAE,GAAG,MAAM,KAAG,MAIvE,CAAC;AAKF,eAAO,MAAM,qBAAqB,GAChC,GAAG,QAAQ,EACX,GAAG,QAAQ,EACX,eAAc,MAA+B,KAC5C,MAA6C,CAAC;AAEjD,eAAO,MAAM,aAAa,GACxB,MAAM,QAAQ,EACd,IAAI,QAAQ,EACZ,WAAW,MAAM,EACjB,eAAc,MAA+B,KAC5C,OAAqE,CAAC;AAqCzE,eAAO,MAAM,cAAc,GACzB,KAAK,WAAW,EAChB,iBAAiB,aAAa,CAAC,IAAI,CAAC,EACpC,MAAM,QAAQ,EACd,IAAI,QAAQ,KACX,OAYF,CAAC;AAEF,eAAO,MAAM,eAAe,QAlBrB,WAAW,mBACC,aAAa,CAAC,IAAI,CAAC,QAC9B,QAAQ,MACV,QAAQ,KACX,OAc0C,CAAC"}
@@ -0,0 +1,66 @@
1
+ import type { Effect, ModifierTarget, RollTarget } from '../schemas/effects.js';
2
+ import type { AbilityScore, DamageType } from '../schemas/primitives.js';
3
+ export interface ModifierContribution {
4
+ readonly source: string;
5
+ readonly value: number;
6
+ }
7
+ export interface AdvantageState {
8
+ advantage: boolean;
9
+ disadvantage: boolean;
10
+ autoCrit: boolean;
11
+ autoFail: boolean;
12
+ }
13
+ export interface ACOverride {
14
+ readonly base: number | 'dex' | 'con' | 'wis';
15
+ readonly abilityModifiers: ReadonlyArray<AbilityScore>;
16
+ readonly dexCap: number | undefined;
17
+ readonly priority: number;
18
+ readonly source: string;
19
+ }
20
+ export interface ResourceGrant {
21
+ readonly resourceId: string;
22
+ readonly max: number;
23
+ readonly recharge: string;
24
+ readonly source: string;
25
+ }
26
+ export declare class EffectAccumulator {
27
+ private readonly modifiers;
28
+ private readonly advantages;
29
+ private readonly resistances;
30
+ private readonly immunities;
31
+ private readonly vulnerabilities;
32
+ private readonly conditionImmunities;
33
+ private readonly acOverrides;
34
+ private readonly resourceGrants;
35
+ private readonly proficiencies;
36
+ private readonly actionEconomyMods;
37
+ private readonly flatDamageReductions;
38
+ addModifier(target: ModifierTarget, value: number, source: string): void;
39
+ setAdvantage(target: RollTarget, mode: 'advantage' | 'disadvantage' | 'auto-crit' | 'auto-fail'): void;
40
+ addResistance(type: DamageType | 'all'): void;
41
+ addImmunity(type: DamageType | 'all'): void;
42
+ addVulnerability(type: DamageType): void;
43
+ addConditionImmunity(id: string): void;
44
+ addACOverride(override: ACOverride): void;
45
+ addResourceGrant(grant: ResourceGrant): void;
46
+ addProficiency(target: 'skill' | 'tool' | 'weapon' | 'armor' | 'save' | 'language', id: string, level: 'half' | 'proficient' | 'expertise'): void;
47
+ modifierSum(target: ModifierTarget): number;
48
+ modifierBreakdown(target: ModifierTarget): ReadonlyArray<ModifierContribution>;
49
+ advantageFor(target: RollTarget): AdvantageState;
50
+ hasResistance(type: DamageType): boolean;
51
+ hasImmunity(type: DamageType): boolean;
52
+ hasVulnerability(type: DamageType): boolean;
53
+ hasConditionImmunity(id: string): boolean;
54
+ effectiveACOverride(): ACOverride | undefined;
55
+ resources(): ReadonlyArray<ResourceGrant>;
56
+ proficiencyLevel(target: string, id: string): 'none' | 'half' | 'proficient' | 'expertise';
57
+ addActionEconomy(op: 'extraAttack' | 'extraAction' | 'extraBonusAction', count: number): void;
58
+ actionEconomyTotal(op: 'extraAttack' | 'extraAction' | 'extraBonusAction'): number;
59
+ addFlatDamageReduction(damageType: DamageType, amount: number): void;
60
+ flatDamageReductionFor(damageType: DamageType): number;
61
+ }
62
+ export interface BuilderContext {
63
+ readonly source: string;
64
+ }
65
+ export declare const applyEffectToBuilder: (effect: Effect, acc: EffectAccumulator, ctx: BuilderContext) => void;
66
+ //# sourceMappingURL=builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/effects/builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { AbilityScore } from '../schemas/primitives.js';
2
+ import type { Formula } from '../schemas/formula.js';
3
+ export interface FormulaContext {
4
+ readonly abilityScores: Readonly<Record<AbilityScore, number>>;
5
+ readonly proficiencyBonus: number;
6
+ readonly classLevels: ReadonlyMap<string, number>;
7
+ readonly classColumns?: ReadonlyMap<string, ReadonlyMap<string, number>>;
8
+ readonly totalLevel: number;
9
+ }
10
+ export declare const abilityModifier: (score: number) => number;
11
+ export declare const evaluateFormula: (formula: Formula, ctx: FormulaContext) => number;
12
+ //# sourceMappingURL=formula.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formula.d.ts","sourceRoot":"","sources":["../../src/effects/formula.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE7D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAErD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/D,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClD,QAAQ,CAAC,YAAY,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACzE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,eAAO,MAAM,eAAe,GAAI,OAAO,MAAM,KAAG,MAAsC,CAAC;AAQvF,eAAO,MAAM,eAAe,GAAI,SAAS,OAAO,EAAE,KAAK,cAAc,KAAG,MAqCvE,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { evaluateFormula, abilityModifier as evaluateAbilityModifier, type FormulaContext, } from './formula.js';
2
+ export { evaluatePredicate, type PredicateContext } from './predicate.js';
3
+ export { EffectAccumulator, applyEffectToBuilder, type ModifierContribution, type AdvantageState, type ACOverride, type ResourceGrant, type BuilderContext, } from './builder.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/effects/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,eAAe,IAAI,uBAAuB,EAC1C,KAAK,cAAc,GACpB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,iBAAiB,EAAE,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,cAAc,GACpB,MAAM,cAAc,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { Predicate } from '../schemas/predicate.js';
2
+ import type { ConditionId } from '../ids.js';
3
+ import type { WeaponProperty, DamageType } from '../schemas/primitives.js';
4
+ export interface PredicateContext {
5
+ readonly self?: boolean;
6
+ readonly weaponProperties?: ReadonlySet<WeaponProperty>;
7
+ readonly activeConditions?: ReadonlySet<ConditionId>;
8
+ readonly damageType?: DamageType;
9
+ readonly facts?: ReadonlyMap<string, unknown>;
10
+ }
11
+ export declare const evaluatePredicate: (predicate: Predicate, ctx: PredicateContext) => boolean;
12
+ //# sourceMappingURL=predicate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"predicate.d.ts","sourceRoot":"","sources":["../../src/effects/predicate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3E,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,gBAAgB,CAAC,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC;IACxD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;IACrD,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;IACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/C;AAKD,eAAO,MAAM,iBAAiB,GAAI,WAAW,SAAS,EAAE,KAAK,gBAAgB,KAAG,OAuB/E,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { CampaignState } from '../schemas/runtime/campaign.js';
2
+ import type { Event } from '../schemas/events/index.js';
3
+ export declare const apply: (state: CampaignState, event: Event) => CampaignState;
4
+ export declare const applyAll: (state: CampaignState, events: ReadonlyArray<Event>) => CampaignState;
5
+ //# sourceMappingURL=apply.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply.d.ts","sourceRoot":"","sources":["../../src/engine/apply.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAgJxD,eAAO,MAAM,KAAK,GAAI,OAAO,aAAa,EAAE,OAAO,KAAK,KAAG,aA2TvD,CAAC;AAEL,eAAO,MAAM,QAAQ,GAAI,OAAO,aAAa,EAAE,QAAQ,aAAa,CAAC,KAAK,CAAC,KAAG,aAClC,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { CampaignState } from '../schemas/runtime/campaign.js';
2
+ import type { Event } from '../schemas/events/index.js';
3
+ export interface Campaign {
4
+ readonly id: string;
5
+ readonly name: string;
6
+ readonly state: CampaignState;
7
+ readonly events: ReadonlyArray<Event>;
8
+ readonly cursor: number;
9
+ readonly schemaVersion: number;
10
+ }
11
+ export declare const commit: (campaign: Campaign, events: ReadonlyArray<Event>) => Campaign;
12
+ //# sourceMappingURL=commit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commit.d.ts","sourceRoot":"","sources":["../../src/engine/commit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAGxD,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED,eAAO,MAAM,MAAM,GAAI,UAAU,QAAQ,EAAE,QAAQ,aAAa,CAAC,KAAK,CAAC,KAAG,QAazE,CAAC"}