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":"conveniences.d.ts","sourceRoot":"","sources":["../../src/engine/conveniences.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,MAAM,EAAc,MAAM,YAAY,CAAC;AAGrD,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAGlF,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C;;;GAGG;AACH,eAAO,MAAM,aAAa,GACxB,QAAQ,MAAM,EACd,UAAU,QAAQ,EAClB,QAAQ;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC1D,QAuCF,CAAC;AAEF,QAAA,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAK5B,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,gGAAgG;AAChG,eAAO,MAAM,iBAAiB,GAAI,UAAU,QAAQ,KAAG,MAMtB,CAAC;AAElC,8EAA8E;AAC9E,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,KAAG,QAW3C,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,CAAC,eAAe,CAAC,CAAC;IACpD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC5C,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;CACtB;AAWD;;;GAGG;AACH,eAAO,MAAM,QAAQ,GAAI,MAAM,eAAe,KAAG,SAYhD,CAAC;AAEF,OAAO,EAAE,cAAc,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export type ULID = string;
2
+ //# sourceMappingURL=ids-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ids-utils.d.ts","sourceRoot":"","sources":["../../src/engine/ids-utils.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,IAAI,GAAG,MAAM,CAAC"}
@@ -0,0 +1,107 @@
1
+ import type { CampaignState } from '../schemas/runtime/campaign.js';
2
+ import type { Event } from '../schemas/events/index.js';
3
+ import type { ContentPack, ResolvedContent } from '../content/pack.js';
4
+ import type { RNG } from '../rng/index.js';
5
+ import type { HandlerRegistry } from '../handlers/index.js';
6
+ import { type Campaign } from './commit.js';
7
+ export { apply, applyAll } from './apply.js';
8
+ export { replay } from './replay.js';
9
+ export { commit } from './commit.js';
10
+ export { undo, redo } from './undo-redo.js';
11
+ export { performIntent, serializeCampaign, loadCampaign, createPC } from './conveniences.js';
12
+ export type { CreatePCOptions, SerializedCampaign } from './conveniences.js';
13
+ import { type GrappleIntent, type ShoveIntent, type HideIntent, type CounterspellIntent, type DispelMagicIntent, type IdentifyIntent, type WeaponMasteryIntent, type ForageIntent, type NavigationCheckIntent, type MoraleCheckIntent, type ReactionRollIntent, type RestIntent, type AttackIntent, type OpportunityAttackIntent, type MoveIntent, type DashIntent, type DisengageIntent, type ActionSurgeIntent, type OffHandAttackIntent, type MultiattackIntent, type FallingIntent, type CreateEncounterIntent, type RollInitiativeIntent, type StartEncounterIntent, type AdvanceTurnIntent, type BeginFirstTurnIntent, type EndEncounterIntent, type LevelUpIntent, type ResolveChoiceIntent, type SaveIntent, type AbilityCheckIntent, type CastSpellIntent, type CheckConcentrationIntent } from './plan/index.js';
14
+ import { computeAC } from '../derive/ac.js';
15
+ import { computeSavingThrow } from '../derive/save.js';
16
+ import { computeAttackBonus } from '../derive/attack.js';
17
+ import { computeSpellSaveDC, computeSpellAttackBonus } from '../derive/spell-dc.js';
18
+ import { computeDerivedCharacter } from '../derive/character-view.js';
19
+ import { computeSpellSlots } from '../derive/spell-slots.js';
20
+ import type { AbilityScore } from '../schemas/primitives.js';
21
+ export interface CreateEngineOptions {
22
+ readonly rng?: RNG;
23
+ readonly contentPacks: ReadonlyArray<ContentPack>;
24
+ readonly handlers?: HandlerRegistry;
25
+ }
26
+ export interface CampaignInit {
27
+ readonly id?: string;
28
+ readonly name: string;
29
+ }
30
+ export interface PlanResult {
31
+ readonly events: ReadonlyArray<Event>;
32
+ }
33
+ export interface Engine {
34
+ readonly content: ResolvedContent;
35
+ readonly schemaVersion: number;
36
+ readonly rng: RNG;
37
+ createCampaign(init: CampaignInit): Campaign;
38
+ apply(state: CampaignState, event: Event): CampaignState;
39
+ applyAll(state: CampaignState, events: ReadonlyArray<Event>): CampaignState;
40
+ replay(events: ReadonlyArray<Event>): CampaignState;
41
+ commit(campaign: Campaign, events: ReadonlyArray<Event>): Campaign;
42
+ undo(campaign: Campaign): Campaign;
43
+ redo(campaign: Campaign): Campaign;
44
+ do(campaign: Campaign, intent: {
45
+ readonly type: string;
46
+ } & Record<string, unknown>): Campaign;
47
+ plan: {
48
+ shortRest(state: CampaignState, intent: {
49
+ participantIds: ReadonlyArray<string>;
50
+ at?: string;
51
+ }): PlanResult;
52
+ longRest(state: CampaignState, intent: {
53
+ participantIds: ReadonlyArray<string>;
54
+ at?: string;
55
+ }): PlanResult;
56
+ rest(state: CampaignState, intent: RestIntent): PlanResult;
57
+ attack(state: CampaignState, intent: Omit<AttackIntent, 'type'>): PlanResult;
58
+ opportunityAttack(state: CampaignState, intent: Omit<OpportunityAttackIntent, 'type'>): PlanResult;
59
+ createEncounter(state: CampaignState, intent: Omit<CreateEncounterIntent, 'type'>): {
60
+ events: ReadonlyArray<Event>;
61
+ encounterId: string;
62
+ };
63
+ rollInitiative(state: CampaignState, intent: Omit<RollInitiativeIntent, 'type'>): PlanResult;
64
+ startEncounter(state: CampaignState, intent: Omit<StartEncounterIntent, 'type'>): PlanResult;
65
+ beginFirstTurn(state: CampaignState, intent: Omit<BeginFirstTurnIntent, 'type'>): PlanResult;
66
+ advanceTurn(state: CampaignState, intent: Omit<AdvanceTurnIntent, 'type'>): PlanResult;
67
+ endEncounter(state: CampaignState, intent: Omit<EndEncounterIntent, 'type'>): PlanResult;
68
+ levelUp(state: CampaignState, intent: Omit<LevelUpIntent, 'type'>): PlanResult;
69
+ resolveChoice(state: CampaignState, intent: Omit<ResolveChoiceIntent, 'type'>): PlanResult;
70
+ save(state: CampaignState, intent: Omit<SaveIntent, 'type'>): PlanResult;
71
+ abilityCheck(state: CampaignState, intent: Omit<AbilityCheckIntent, 'type'>): PlanResult;
72
+ castSpell(state: CampaignState, intent: Omit<CastSpellIntent, 'type'>): PlanResult;
73
+ checkConcentration(state: CampaignState, intent: Omit<CheckConcentrationIntent, 'type'>): PlanResult;
74
+ move(state: CampaignState, intent: Omit<MoveIntent, 'type'>): PlanResult;
75
+ dash(state: CampaignState, intent: Omit<DashIntent, 'type'>): PlanResult;
76
+ disengage(state: CampaignState, intent: Omit<DisengageIntent, 'type'>): PlanResult;
77
+ actionSurge(state: CampaignState, intent: Omit<ActionSurgeIntent, 'type'>): PlanResult;
78
+ offHandAttack(state: CampaignState, intent: Omit<OffHandAttackIntent, 'type'>): PlanResult;
79
+ multiattack(state: CampaignState, intent: Omit<MultiattackIntent, 'type'>): PlanResult;
80
+ falling(state: CampaignState, intent: Omit<FallingIntent, 'type'>): PlanResult;
81
+ grapple(state: CampaignState, intent: Omit<GrappleIntent, 'type'>): PlanResult;
82
+ shove(state: CampaignState, intent: Omit<ShoveIntent, 'type'>): PlanResult;
83
+ hide(state: CampaignState, intent: Omit<HideIntent, 'type'>): PlanResult;
84
+ counterspell(state: CampaignState, intent: Omit<CounterspellIntent, 'type'>): PlanResult;
85
+ dispelMagic(state: CampaignState, intent: Omit<DispelMagicIntent, 'type'>): PlanResult;
86
+ identify(state: CampaignState, intent: Omit<IdentifyIntent, 'type'>): PlanResult;
87
+ weaponMastery(state: CampaignState, intent: Omit<WeaponMasteryIntent, 'type'>): PlanResult;
88
+ forage(state: CampaignState, intent: Omit<ForageIntent, 'type'>): PlanResult;
89
+ navigationCheck(state: CampaignState, intent: Omit<NavigationCheckIntent, 'type'>): PlanResult;
90
+ moraleCheck(state: CampaignState, intent: Omit<MoraleCheckIntent, 'type'>): PlanResult;
91
+ reactionRoll(state: CampaignState, intent: Omit<ReactionRollIntent, 'type'>): PlanResult;
92
+ };
93
+ derive: {
94
+ character(state: CampaignState, id: string): ReturnType<typeof computeDerivedCharacter>;
95
+ ac(state: CampaignState, characterId: string): ReturnType<typeof computeAC>;
96
+ savingThrow(state: CampaignState, characterId: string, ability: AbilityScore): ReturnType<typeof computeSavingThrow>;
97
+ attackBonus(state: CampaignState, characterId: string, weaponInstanceId: string): ReturnType<typeof computeAttackBonus>;
98
+ spellSaveDC(state: CampaignState, characterId: string, classId: string): ReturnType<typeof computeSpellSaveDC>;
99
+ spellAttackBonus(state: CampaignState, characterId: string, classId: string): ReturnType<typeof computeSpellAttackBonus>;
100
+ spellSlots(state: CampaignState, characterId: string): ReturnType<typeof computeSpellSlots>;
101
+ abilityModifier(score: number): number;
102
+ proficiencyBonus(level: number): number;
103
+ };
104
+ }
105
+ export declare const createEngine: (opts: CreateEngineOptions) => Engine;
106
+ export type { Campaign } from './commit.js';
107
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/engine/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { CampaignState } from '../../schemas/runtime/campaign.js';
2
+ import type { ResolvedContent } from '../../content/pack.js';
3
+ import type { Event } from '../../schemas/events/index.js';
4
+ export interface ActionSurgeIntent {
5
+ readonly type: 'ActionSurge';
6
+ readonly combatantId: string;
7
+ readonly at?: string;
8
+ }
9
+ export declare const planActionSurge: (state: CampaignState, _content: ResolvedContent, intent: ActionSurgeIntent) => ReadonlyArray<Event>;
10
+ //# sourceMappingURL=action-surge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action-surge.d.ts","sourceRoot":"","sources":["../../../src/engine/plan/action-surge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAU3D,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;CACtB;AAqBD,eAAO,MAAM,eAAe,GAC1B,OAAO,aAAa,EACpB,UAAU,eAAe,EACzB,QAAQ,iBAAiB,KACxB,aAAa,CAAC,KAAK,CAsBrB,CAAC"}
@@ -0,0 +1,30 @@
1
+ import type { CampaignState } from '../../schemas/runtime/campaign.js';
2
+ import type { ResolvedContent } from '../../content/pack.js';
3
+ import type { Event } from '../../schemas/events/index.js';
4
+ import type { RNG } from '../../rng/index.js';
5
+ export declare const COVER_KINDS: readonly ["none", "half", "three-quarters", "total"];
6
+ export type CoverKind = (typeof COVER_KINDS)[number];
7
+ export declare const coverACBonus: (cover: CoverKind) => number;
8
+ export interface AttackIntent {
9
+ readonly type: 'Attack';
10
+ readonly attackerId: string;
11
+ readonly targetId: string;
12
+ readonly weaponInstanceId: string;
13
+ readonly advantage?: 'advantage' | 'disadvantage' | 'none';
14
+ readonly cover?: CoverKind;
15
+ readonly at?: string;
16
+ }
17
+ export interface ResolveAttackInput {
18
+ readonly state: CampaignState;
19
+ readonly content: ResolvedContent;
20
+ readonly rng: RNG;
21
+ readonly attackerId: string;
22
+ readonly targetId: string;
23
+ readonly weaponInstanceId: string;
24
+ readonly advantage?: 'advantage' | 'disadvantage' | 'none';
25
+ readonly cover?: CoverKind;
26
+ readonly at: string;
27
+ }
28
+ export declare const resolveAttack: (input: ResolveAttackInput) => ReadonlyArray<Event>;
29
+ export declare const planAttack: (state: CampaignState, content: ResolvedContent, rng: RNG, intent: AttackIntent) => ReadonlyArray<Event>;
30
+ //# sourceMappingURL=attack.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attack.d.ts","sourceRoot":"","sources":["../../../src/engine/plan/attack.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAO3D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAe9C,eAAO,MAAM,WAAW,sDAAuD,CAAC;AAChF,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAKrD,eAAO,MAAM,YAAY,GAAI,OAAO,SAAS,KAAG,MAU/C,CAAC;AAEF,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,SAAS,CAAC,EAAE,WAAW,GAAG,cAAc,GAAG,MAAM,CAAC;IAC3D,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;CACtB;AAkBD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;IAClB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,SAAS,CAAC,EAAE,WAAW,GAAG,cAAc,GAAG,MAAM,CAAC;IAC3D,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,aAAa,GAAI,OAAO,kBAAkB,KAAG,aAAa,CAAC,KAAK,CA0H5E,CAAC;AAEF,eAAO,MAAM,UAAU,GACrB,OAAO,aAAa,EACpB,SAAS,eAAe,EACxB,KAAK,GAAG,EACR,QAAQ,YAAY,KACnB,aAAa,CAAC,KAAK,CAerB,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { CampaignState } from '../../schemas/runtime/campaign.js';
2
+ import type { ResolvedContent } from '../../content/pack.js';
3
+ import type { Event } from '../../schemas/events/index.js';
4
+ import type { SpellSlotSource } from '../../schemas/events/spellcasting.js';
5
+ import type { RNG } from '../../rng/index.js';
6
+ export interface CastSpellIntent {
7
+ readonly type: 'CastSpell';
8
+ readonly characterId: string;
9
+ readonly spellId: string;
10
+ readonly slotLevel: number;
11
+ readonly slotSource?: SpellSlotSource;
12
+ readonly targetIds: ReadonlyArray<string>;
13
+ readonly castingClassId?: string;
14
+ readonly asRitual?: boolean;
15
+ readonly at?: string;
16
+ }
17
+ export declare const planCastSpell: (state: CampaignState, content: ResolvedContent, rng: RNG, intent: CastSpellIntent) => ReadonlyArray<Event>;
18
+ //# sourceMappingURL=cast-spell.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cast-spell.d.ts","sourceRoot":"","sources":["../../../src/engine/plan/cast-spell.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,KAAK,EAIV,eAAe,EAChB,MAAM,sCAAsC,CAAC;AAqB9C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAkB9C,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC1C,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;CACtB;AAgTD,eAAO,MAAM,aAAa,GACxB,OAAO,aAAa,EACpB,SAAS,eAAe,EACxB,KAAK,GAAG,EACR,QAAQ,eAAe,KACtB,aAAa,CAAC,KAAK,CA2HrB,CAAC"}
@@ -0,0 +1,26 @@
1
+ import type { CampaignState } from '../../schemas/runtime/campaign.js';
2
+ import type { ResolvedContent } from '../../content/pack.js';
3
+ import type { Event } from '../../schemas/events/index.js';
4
+ import type { CheckAdvantage } from '../../schemas/events/checks.js';
5
+ import type { AbilityScore, Skill } from '../../schemas/primitives.js';
6
+ import type { RNG } from '../../rng/index.js';
7
+ export interface SaveIntent {
8
+ readonly type: 'Save';
9
+ readonly characterId: string;
10
+ readonly ability: AbilityScore;
11
+ readonly dc: number;
12
+ readonly advantage?: CheckAdvantage;
13
+ readonly at?: string;
14
+ }
15
+ export declare const planSave: (state: CampaignState, content: ResolvedContent, rng: RNG, intent: SaveIntent) => ReadonlyArray<Event>;
16
+ export interface AbilityCheckIntent {
17
+ readonly type: 'AbilityCheck';
18
+ readonly characterId: string;
19
+ readonly ability: AbilityScore;
20
+ readonly skill?: Skill;
21
+ readonly dc?: number;
22
+ readonly advantage?: CheckAdvantage;
23
+ readonly at?: string;
24
+ }
25
+ export declare const planAbilityCheck: (state: CampaignState, content: ResolvedContent, rng: RNG, intent: AbilityCheckIntent) => ReadonlyArray<Event>;
26
+ //# sourceMappingURL=checks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checks.d.ts","sourceRoot":"","sources":["../../../src/engine/plan/checks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,KAAK,EAEV,cAAc,EAEf,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AA+B9C,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,SAAS,CAAC,EAAE,cAAc,CAAC;IACpC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,QAAQ,GACnB,OAAO,aAAa,EACpB,SAAS,eAAe,EACxB,KAAK,GAAG,EACR,QAAQ,UAAU,KACjB,aAAa,CAAC,KAAK,CA+BrB,CAAC;AAEF,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;IACvB,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,SAAS,CAAC,EAAE,cAAc,CAAC;IACpC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,gBAAgB,GAC3B,OAAO,aAAa,EACpB,SAAS,eAAe,EACxB,KAAK,GAAG,EACR,QAAQ,kBAAkB,KACzB,aAAa,CAAC,KAAK,CAgCrB,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { CampaignState } from '../../schemas/runtime/campaign.js';
2
+ import type { ResolvedContent } from '../../content/pack.js';
3
+ import type { Event } from '../../schemas/events/index.js';
4
+ import type { RNG } from '../../rng/index.js';
5
+ export interface CheckConcentrationIntent {
6
+ readonly type: 'CheckConcentration';
7
+ readonly characterId: string;
8
+ readonly damageTaken: number;
9
+ readonly at?: string;
10
+ }
11
+ export declare const planCheckConcentration: (state: CampaignState, content: ResolvedContent, rng: RNG, intent: CheckConcentrationIntent) => ReadonlyArray<Event>;
12
+ //# sourceMappingURL=concentration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"concentration.d.ts","sourceRoot":"","sources":["../../../src/engine/plan/concentration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAG3D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAW9C,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;IACpC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;CACtB;AAKD,eAAO,MAAM,sBAAsB,GACjC,OAAO,aAAa,EACpB,SAAS,eAAe,EACxB,KAAK,GAAG,EACR,QAAQ,wBAAwB,KAC/B,aAAa,CAAC,KAAK,CAkDrB,CAAC"}
@@ -0,0 +1,28 @@
1
+ import type { CampaignState } from '../../schemas/runtime/campaign.js';
2
+ import type { ResolvedContent } from '../../content/pack.js';
3
+ import type { Event } from '../../schemas/events/index.js';
4
+ import type { RNG } from '../../rng/index.js';
5
+ export interface GrappleIntent {
6
+ readonly type: 'Grapple';
7
+ readonly attackerId: string;
8
+ readonly targetId: string;
9
+ readonly targetAbility?: 'STR' | 'DEX';
10
+ readonly at?: string;
11
+ }
12
+ export declare const planGrapple: (state: CampaignState, _content: ResolvedContent, rng: RNG, intent: GrappleIntent) => ReadonlyArray<Event>;
13
+ export interface ShoveIntent {
14
+ readonly type: 'Shove';
15
+ readonly attackerId: string;
16
+ readonly targetId: string;
17
+ readonly mode: 'prone' | 'push';
18
+ readonly at?: string;
19
+ }
20
+ export declare const planShove: (state: CampaignState, _content: ResolvedContent, rng: RNG, intent: ShoveIntent) => ReadonlyArray<Event>;
21
+ export interface HideIntent {
22
+ readonly type: 'Hide';
23
+ readonly characterId: string;
24
+ readonly dc?: number;
25
+ readonly at?: string;
26
+ }
27
+ export declare const planHide: (state: CampaignState, content: ResolvedContent, rng: RNG, intent: HideIntent) => ReadonlyArray<Event>;
28
+ //# sourceMappingURL=contested.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contested.d.ts","sourceRoot":"","sources":["../../../src/engine/plan/contested.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAgD9C,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IACvC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,WAAW,GACtB,OAAO,aAAa,EACpB,UAAU,eAAe,EACzB,KAAK,GAAG,EACR,QAAQ,aAAa,KACpB,aAAa,CAAC,KAAK,CAuCrB,CAAC;AAEF,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IAChC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,SAAS,GACpB,OAAO,aAAa,EACpB,UAAU,eAAe,EACzB,KAAK,GAAG,EACR,QAAQ,WAAW,KAClB,aAAa,CAAC,KAAK,CAsErB,CAAC;AAEF,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,QAAQ,GACnB,OAAO,aAAa,EACpB,SAAS,eAAe,EACxB,KAAK,GAAG,EACR,QAAQ,UAAU,KACjB,aAAa,CAAC,KAAK,CA4CrB,CAAC"}
@@ -0,0 +1,47 @@
1
+ import type { CampaignState } from '../../schemas/runtime/campaign.js';
2
+ import type { ResolvedContent } from '../../content/pack.js';
3
+ import type { Event } from '../../schemas/events/index.js';
4
+ import type { RNG } from '../../rng/index.js';
5
+ export interface CreateEncounterIntent {
6
+ readonly type: 'CreateEncounter';
7
+ readonly combatantIds: ReadonlyArray<string>;
8
+ readonly name?: string;
9
+ readonly encounterId?: string;
10
+ readonly at?: string;
11
+ }
12
+ export declare const planCreateEncounter: (_state: CampaignState, _content: ResolvedContent, intent: CreateEncounterIntent) => {
13
+ events: ReadonlyArray<Event>;
14
+ encounterId: string;
15
+ };
16
+ export interface RollInitiativeIntent {
17
+ readonly type: 'RollInitiative';
18
+ readonly encounterId: string;
19
+ readonly at?: string;
20
+ }
21
+ export declare const planRollInitiative: (state: CampaignState, _content: ResolvedContent, rng: RNG, intent: RollInitiativeIntent) => ReadonlyArray<Event>;
22
+ export interface StartEncounterIntent {
23
+ readonly type: 'StartEncounter';
24
+ readonly encounterId: string;
25
+ readonly at?: string;
26
+ }
27
+ export declare const planStartEncounter: (_state: CampaignState, _content: ResolvedContent, intent: StartEncounterIntent) => ReadonlyArray<Event>;
28
+ export interface AdvanceTurnIntent {
29
+ readonly type: 'AdvanceTurn';
30
+ readonly encounterId: string;
31
+ readonly at?: string;
32
+ }
33
+ export declare const planAdvanceTurn: (state: CampaignState, _content: ResolvedContent, intent: AdvanceTurnIntent) => ReadonlyArray<Event>;
34
+ export interface BeginFirstTurnIntent {
35
+ readonly type: 'BeginFirstTurn';
36
+ readonly encounterId: string;
37
+ readonly at?: string;
38
+ }
39
+ export declare const planBeginFirstTurn: (state: CampaignState, _content: ResolvedContent, intent: BeginFirstTurnIntent) => ReadonlyArray<Event>;
40
+ export interface EndEncounterIntent {
41
+ readonly type: 'EndEncounter';
42
+ readonly encounterId: string;
43
+ readonly outcome: 'victory' | 'defeat' | 'fled' | 'parley';
44
+ readonly at?: string;
45
+ }
46
+ export declare const planEndEncounter: (_state: CampaignState, _content: ResolvedContent, intent: EndEncounterIntent) => ReadonlyArray<Event>;
47
+ //# sourceMappingURL=encounter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encounter.d.ts","sourceRoot":"","sources":["../../../src/engine/plan/encounter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAW3D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAQ9C,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC7C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,mBAAmB,GAC9B,QAAQ,aAAa,EACrB,UAAU,eAAe,EACzB,QAAQ,qBAAqB,KAC5B;IAAE,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAYrD,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,kBAAkB,GAC7B,OAAO,aAAa,EACpB,UAAU,eAAe,EACzB,KAAK,GAAG,EACR,QAAQ,oBAAoB,KAC3B,aAAa,CAAC,KAAK,CAuBrB,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,kBAAkB,GAC7B,QAAQ,aAAa,EACrB,UAAU,eAAe,EACzB,QAAQ,oBAAoB,KAC3B,aAAa,CAAC,KAAK,CAQrB,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,eAAe,GAC1B,OAAO,aAAa,EACpB,UAAU,eAAe,EACzB,QAAQ,iBAAiB,KACxB,aAAa,CAAC,KAAK,CA8CrB,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,kBAAkB,GAC7B,OAAO,aAAa,EACpB,UAAU,eAAe,EACzB,QAAQ,oBAAoB,KAC3B,aAAa,CAAC,KAAK,CAcrB,CAAC;AAEF,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;IAC3D,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,gBAAgB,GAC3B,QAAQ,aAAa,EACrB,UAAU,eAAe,EACzB,QAAQ,kBAAkB,KACzB,aAAa,CAAC,KAAK,CASrB,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { CampaignState } from '../../schemas/runtime/campaign.js';
2
+ import type { ResolvedContent } from '../../content/pack.js';
3
+ import type { Event } from '../../schemas/events/index.js';
4
+ export interface FallingIntent {
5
+ readonly type: 'Falling';
6
+ readonly characterId: string;
7
+ readonly distanceFeet: number;
8
+ readonly at?: string;
9
+ }
10
+ export declare const planFalling: (state: CampaignState, content: ResolvedContent, intent: FallingIntent) => ReadonlyArray<Event>;
11
+ //# sourceMappingURL=falling.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"falling.d.ts","sourceRoot":"","sources":["../../../src/engine/plan/falling.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAW3D,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;CACtB;AAUD,eAAO,MAAM,WAAW,GACtB,OAAO,aAAa,EACpB,SAAS,eAAe,EACxB,QAAQ,aAAa,KACpB,aAAa,CAAC,KAAK,CAwBrB,CAAC"}
@@ -0,0 +1,20 @@
1
+ export { planShortRest, planLongRest, type ShortRestIntent, type LongRestIntent, type RestIntent, } from './rest.js';
2
+ export { planAttack, resolveAttack, type AttackIntent, type ResolveAttackInput } from './attack.js';
3
+ export { planOpportunityAttack, type OpportunityAttackIntent, } from './opportunity-attack.js';
4
+ export { planCreateEncounter, planRollInitiative, planStartEncounter, planAdvanceTurn, planBeginFirstTurn, planEndEncounter, type CreateEncounterIntent, type RollInitiativeIntent, type StartEncounterIntent, type AdvanceTurnIntent, type BeginFirstTurnIntent, type EndEncounterIntent, } from './encounter.js';
5
+ export { planLevelUp, planResolveChoice, type LevelUpIntent, type ResolveChoiceIntent, } from './level-up.js';
6
+ export { planSave, planAbilityCheck, type SaveIntent, type AbilityCheckIntent, } from './checks.js';
7
+ export { planCastSpell, type CastSpellIntent, } from './cast-spell.js';
8
+ export { planCheckConcentration, type CheckConcentrationIntent, } from './concentration.js';
9
+ export { planMove, planDash, planDisengage, chebyshevDistance, type MoveIntent, type DashIntent, type DisengageIntent, } from './movement.js';
10
+ export { planActionSurge, type ActionSurgeIntent } from './action-surge.js';
11
+ export { planOffHandAttack, type OffHandAttackIntent } from './offhand-attack.js';
12
+ export { planMultiattack, type MultiattackIntent } from './multiattack.js';
13
+ export { planFalling, type FallingIntent } from './falling.js';
14
+ export { coverACBonus, COVER_KINDS, type CoverKind } from './attack.js';
15
+ export { planGrapple, planShove, planHide, type GrappleIntent, type ShoveIntent, type HideIntent, } from './contested.js';
16
+ export { planCounterspell, planDispelMagic, planIdentify, type CounterspellIntent, type DispelMagicIntent, type IdentifyIntent, } from './reactive-spells.js';
17
+ export { planWeaponMastery, type WeaponMasteryIntent } from './weapon-mastery.js';
18
+ export { planForage, planNavigationCheck, type ForageIntent, type NavigationCheckIntent, } from './travel.js';
19
+ export { planMoraleCheck, planReactionRoll, type MoraleCheckIntent, type ReactionRollIntent, } from './npc.js';
20
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/engine/plan/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,YAAY,EACZ,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,UAAU,GAChB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,YAAY,EAAE,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACpG,OAAO,EACL,qBAAqB,EACrB,KAAK,uBAAuB,GAC7B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,GACxB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,KAAK,aAAa,EAClB,KAAK,mBAAmB,GACzB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,QAAQ,EACR,gBAAgB,EAChB,KAAK,UAAU,EACf,KAAK,kBAAkB,GACxB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,aAAa,EACb,KAAK,eAAe,GACrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,sBAAsB,EACtB,KAAK,wBAAwB,GAC9B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,aAAa,EACb,iBAAiB,EACjB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,eAAe,GACrB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,eAAe,EAAE,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,KAAK,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAClF,OAAO,EAAE,eAAe,EAAE,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EACL,WAAW,EACX,SAAS,EACT,QAAQ,EACR,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,UAAU,GAChB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,cAAc,GACpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,iBAAiB,EAAE,KAAK,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAClF,OAAO,EACL,UAAU,EACV,mBAAmB,EACnB,KAAK,YAAY,EACjB,KAAK,qBAAqB,GAC3B,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,GACxB,MAAM,UAAU,CAAC"}
@@ -0,0 +1,22 @@
1
+ import type { CampaignState } from '../../schemas/runtime/campaign.js';
2
+ import type { ResolvedContent } from '../../content/pack.js';
3
+ import type { Event } from '../../schemas/events/index.js';
4
+ import type { HPStrategy } from '../../schemas/events/level-up.js';
5
+ import type { RNG } from '../../rng/index.js';
6
+ export interface LevelUpIntent {
7
+ readonly type: 'LevelUp';
8
+ readonly characterId: string;
9
+ readonly classId: string;
10
+ readonly hpStrategy: HPStrategy;
11
+ readonly at?: string;
12
+ }
13
+ export declare const planLevelUp: (state: CampaignState, content: ResolvedContent, rng: RNG, intent: LevelUpIntent) => ReadonlyArray<Event>;
14
+ export interface ResolveChoiceIntent {
15
+ readonly type: 'ResolveChoice';
16
+ readonly choiceId: string;
17
+ readonly characterId: string;
18
+ readonly selectedOptionIds: ReadonlyArray<string>;
19
+ readonly at?: string;
20
+ }
21
+ export declare const planResolveChoice: (state: CampaignState, _content: ResolvedContent, intent: ResolveChoiceIntent) => ReadonlyArray<Event>;
22
+ //# sourceMappingURL=level-up.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"level-up.d.ts","sourceRoot":"","sources":["../../../src/engine/plan/level-up.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,KAAK,EAGV,UAAU,EAEX,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAU9C,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,WAAW,GACtB,OAAO,aAAa,EACpB,SAAS,eAAe,EACxB,KAAK,GAAG,EACR,QAAQ,aAAa,KACpB,aAAa,CAAC,KAAK,CAuErB,CAAC;AAEF,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,iBAAiB,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAClD,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,iBAAiB,GAC5B,OAAO,aAAa,EACpB,UAAU,eAAe,EACzB,QAAQ,mBAAmB,KAC1B,aAAa,CAAC,KAAK,CA4BrB,CAAC"}
@@ -0,0 +1,25 @@
1
+ import type { CampaignState } from '../../schemas/runtime/campaign.js';
2
+ import type { ResolvedContent } from '../../content/pack.js';
3
+ import type { Event } from '../../schemas/events/index.js';
4
+ import type { Position } from '../../schemas/runtime/encounter.js';
5
+ export interface MoveIntent {
6
+ readonly type: 'Move';
7
+ readonly combatantId: string;
8
+ readonly to: Position;
9
+ readonly at?: string;
10
+ }
11
+ export interface DashIntent {
12
+ readonly type: 'Dash';
13
+ readonly combatantId: string;
14
+ readonly at?: string;
15
+ }
16
+ export interface DisengageIntent {
17
+ readonly type: 'Disengage';
18
+ readonly combatantId: string;
19
+ readonly at?: string;
20
+ }
21
+ export declare const chebyshevDistance: (a: Position, b: Position) => number;
22
+ export declare const planMove: (state: CampaignState, _content: ResolvedContent, intent: MoveIntent) => ReadonlyArray<Event>;
23
+ export declare const planDash: (state: CampaignState, _content: ResolvedContent, intent: DashIntent) => ReadonlyArray<Event>;
24
+ export declare const planDisengage: (state: CampaignState, _content: ResolvedContent, intent: DisengageIntent) => ReadonlyArray<Event>;
25
+ //# sourceMappingURL=movement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"movement.d.ts","sourceRoot":"","sources":["../../../src/engine/plan/movement.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAYnE,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,iBAAiB,GAAI,GAAG,QAAQ,EAAE,GAAG,QAAQ,KAAG,MACT,CAAC;AA2BrD,eAAO,MAAM,QAAQ,GACnB,OAAO,aAAa,EACpB,UAAU,eAAe,EACzB,QAAQ,UAAU,KACjB,aAAa,CAAC,KAAK,CA8BrB,CAAC;AAEF,eAAO,MAAM,QAAQ,GACnB,OAAO,aAAa,EACpB,UAAU,eAAe,EACzB,QAAQ,UAAU,KACjB,aAAa,CAAC,KAAK,CA4BrB,CAAC;AAEF,eAAO,MAAM,aAAa,GACxB,OAAO,aAAa,EACpB,UAAU,eAAe,EACzB,QAAQ,eAAe,KACtB,aAAa,CAAC,KAAK,CA4BrB,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { CampaignState } from '../../schemas/runtime/campaign.js';
2
+ import type { ResolvedContent } from '../../content/pack.js';
3
+ import type { Event } from '../../schemas/events/index.js';
4
+ import type { RNG } from '../../rng/index.js';
5
+ export interface MultiattackIntent {
6
+ readonly type: 'Multiattack';
7
+ readonly attackerId: string;
8
+ readonly targetId: string;
9
+ readonly at?: string;
10
+ }
11
+ export declare const planMultiattack: (state: CampaignState, content: ResolvedContent, rng: RNG, intent: MultiattackIntent) => ReadonlyArray<Event>;
12
+ //# sourceMappingURL=multiattack.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multiattack.d.ts","sourceRoot":"","sources":["../../../src/engine/plan/multiattack.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAM9C,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,eAAe,GAC1B,OAAO,aAAa,EACpB,SAAS,eAAe,EACxB,KAAK,GAAG,EACR,QAAQ,iBAAiB,KACxB,aAAa,CAAC,KAAK,CA4CrB,CAAC"}
@@ -0,0 +1,21 @@
1
+ import type { CampaignState } from '../../schemas/runtime/campaign.js';
2
+ import type { ResolvedContent } from '../../content/pack.js';
3
+ import type { Event } from '../../schemas/events/index.js';
4
+ import type { RNG } from '../../rng/index.js';
5
+ export interface MoraleCheckIntent {
6
+ readonly type: 'MoraleCheck';
7
+ readonly npcId: string;
8
+ readonly dc: number;
9
+ readonly breakAction?: 'flee' | 'surrender';
10
+ readonly at?: string;
11
+ }
12
+ export declare const planMoraleCheck: (state: CampaignState, _content: ResolvedContent, rng: RNG, intent: MoraleCheckIntent) => ReadonlyArray<Event>;
13
+ export interface ReactionRollIntent {
14
+ readonly type: 'ReactionRoll';
15
+ readonly npcId: string;
16
+ readonly presenterId: string;
17
+ readonly dc?: number;
18
+ readonly at?: string;
19
+ }
20
+ export declare const planReactionRoll: (state: CampaignState, content: ResolvedContent, rng: RNG, intent: ReactionRollIntent) => ReadonlyArray<Event>;
21
+ //# sourceMappingURL=npc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"npc.d.ts","sourceRoot":"","sources":["../../../src/engine/plan/npc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAgB9C,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;IAC5C,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,eAAe,GAC1B,OAAO,aAAa,EACpB,UAAU,eAAe,EACzB,KAAK,GAAG,EACR,QAAQ,iBAAiB,KACxB,aAAa,CAAC,KAAK,CA8BrB,CAAC;AAEF,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;CACtB;AAWD,eAAO,MAAM,gBAAgB,GAC3B,OAAO,aAAa,EACpB,SAAS,eAAe,EACxB,KAAK,GAAG,EACR,QAAQ,kBAAkB,KACzB,aAAa,CAAC,KAAK,CA2CrB,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { CampaignState } from '../../schemas/runtime/campaign.js';
2
+ import type { ResolvedContent } from '../../content/pack.js';
3
+ import type { Event } from '../../schemas/events/index.js';
4
+ import type { RNG } from '../../rng/index.js';
5
+ export interface OffHandAttackIntent {
6
+ readonly type: 'OffHandAttack';
7
+ readonly attackerId: string;
8
+ readonly targetId: string;
9
+ readonly weaponInstanceId: string;
10
+ readonly at?: string;
11
+ }
12
+ export declare const planOffHandAttack: (state: CampaignState, content: ResolvedContent, rng: RNG, intent: OffHandAttackIntent) => ReadonlyArray<Event>;
13
+ //# sourceMappingURL=offhand-attack.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"offhand-attack.d.ts","sourceRoot":"","sources":["../../../src/engine/plan/offhand-attack.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAQ3D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAW9C,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;CACtB;AAeD,eAAO,MAAM,iBAAiB,GAC5B,OAAO,aAAa,EACpB,SAAS,eAAe,EACxB,KAAK,GAAG,EACR,QAAQ,mBAAmB,KAC1B,aAAa,CAAC,KAAK,CAsHrB,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { CampaignState } from '../../schemas/runtime/campaign.js';
2
+ import type { ResolvedContent } from '../../content/pack.js';
3
+ import type { Event } from '../../schemas/events/index.js';
4
+ import type { RNG } from '../../rng/index.js';
5
+ export interface OpportunityAttackIntent {
6
+ readonly type: 'OpportunityAttack';
7
+ readonly reactorId: string;
8
+ readonly targetId: string;
9
+ readonly weaponInstanceId: string;
10
+ readonly advantage?: 'advantage' | 'disadvantage' | 'none';
11
+ readonly at?: string;
12
+ }
13
+ export declare const planOpportunityAttack: (state: CampaignState, content: ResolvedContent, rng: RNG, intent: OpportunityAttackIntent) => ReadonlyArray<Event>;
14
+ //# sourceMappingURL=opportunity-attack.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opportunity-attack.d.ts","sourceRoot":"","sources":["../../../src/engine/plan/opportunity-attack.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAM9C,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,SAAS,CAAC,EAAE,WAAW,GAAG,cAAc,GAAG,MAAM,CAAC;IAC3D,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;CACtB;AA0BD,eAAO,MAAM,qBAAqB,GAChC,OAAO,aAAa,EACpB,SAAS,eAAe,EACxB,KAAK,GAAG,EACR,QAAQ,uBAAuB,KAC9B,aAAa,CAAC,KAAK,CAuCrB,CAAC"}
@@ -0,0 +1,34 @@
1
+ import type { CampaignState } from '../../schemas/runtime/campaign.js';
2
+ import type { ResolvedContent } from '../../content/pack.js';
3
+ import type { Event } from '../../schemas/events/index.js';
4
+ import type { RNG } from '../../rng/index.js';
5
+ export interface CounterspellIntent {
6
+ readonly type: 'Counterspell';
7
+ readonly counterCasterId: string;
8
+ readonly targetCasterId: string;
9
+ readonly originalSpellEventId: string;
10
+ readonly spellId: string;
11
+ readonly castingClassId: string;
12
+ readonly slotLevelToConsume?: number;
13
+ readonly at?: string;
14
+ }
15
+ export declare const planCounterspell: (state: CampaignState, content: ResolvedContent, rng: RNG, intent: CounterspellIntent) => ReadonlyArray<Event>;
16
+ export interface DispelMagicIntent {
17
+ readonly type: 'DispelMagic';
18
+ readonly casterId: string;
19
+ readonly effectInstanceId: string;
20
+ readonly targetSpellLevel: number;
21
+ readonly slotLevel: number;
22
+ readonly castingClassId: string;
23
+ readonly at?: string;
24
+ }
25
+ export declare const planDispelMagic: (state: CampaignState, content: ResolvedContent, rng: RNG, intent: DispelMagicIntent) => ReadonlyArray<Event>;
26
+ export interface IdentifyIntent {
27
+ readonly type: 'Identify';
28
+ readonly casterId: string;
29
+ readonly itemInstanceId: string;
30
+ readonly slotLevel?: number;
31
+ readonly at?: string;
32
+ }
33
+ export declare const planIdentify: (state: CampaignState, _content: ResolvedContent, _rng: RNG, intent: IdentifyIntent) => ReadonlyArray<Event>;
34
+ //# sourceMappingURL=reactive-spells.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reactive-spells.d.ts","sourceRoot":"","sources":["../../../src/engine/plan/reactive-spells.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAiD9C,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,gBAAgB,GAC3B,OAAO,aAAa,EACpB,SAAS,eAAe,EACxB,KAAK,GAAG,EACR,QAAQ,kBAAkB,KACzB,aAAa,CAAC,KAAK,CAwDrB,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,eAAe,GAC1B,OAAO,aAAa,EACpB,SAAS,eAAe,EACxB,KAAK,GAAG,EACR,QAAQ,iBAAiB,KACxB,aAAa,CAAC,KAAK,CAwDrB,CAAC;AAEF,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,YAAY,GACvB,OAAO,aAAa,EACpB,UAAU,eAAe,EACzB,MAAM,GAAG,EACT,QAAQ,cAAc,KACrB,aAAa,CAAC,KAAK,CA0BrB,CAAC"}