rpg-engine 0.0.0-stage → 0.1.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 (1886) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +99 -2
  3. package/dist/campaign/create-campaign.d.ts +6 -0
  4. package/dist/campaign/create-campaign.js +71 -0
  5. package/dist/campaign/find-campaign.d.ts +8 -0
  6. package/dist/campaign/find-campaign.js +28 -0
  7. package/dist/campaign/host-files.d.ts +16 -0
  8. package/dist/campaign/host-files.js +131 -0
  9. package/dist/campaign/index.d.ts +5 -0
  10. package/dist/campaign/index.js +6 -0
  11. package/dist/campaign/settings.d.ts +185 -0
  12. package/dist/campaign/settings.js +399 -0
  13. package/dist/campaign/state.d.ts +15 -0
  14. package/dist/campaign/state.js +52 -0
  15. package/dist/cli.d.ts +2 -0
  16. package/dist/cli.js +19 -0
  17. package/dist/command-line.d.ts +7 -0
  18. package/dist/command-line.js +140 -0
  19. package/dist/commands/advance.d.ts +7 -0
  20. package/dist/commands/advance.js +80 -0
  21. package/dist/commands/ask.d.ts +33 -0
  22. package/dist/commands/ask.js +280 -0
  23. package/dist/commands/change.d.ts +69 -0
  24. package/dist/commands/change.js +604 -0
  25. package/dist/commands/config.d.ts +59 -0
  26. package/dist/commands/config.js +512 -0
  27. package/dist/commands/effect-layer.d.ts +22 -0
  28. package/dist/commands/effect-layer.js +84 -0
  29. package/dist/commands/effect.d.ts +27 -0
  30. package/dist/commands/effect.js +369 -0
  31. package/dist/commands/find.d.ts +34 -0
  32. package/dist/commands/find.js +64 -0
  33. package/dist/commands/game-advance.d.ts +50 -0
  34. package/dist/commands/game-advance.js +103 -0
  35. package/dist/commands/game-effects.d.ts +68 -0
  36. package/dist/commands/game-effects.js +196 -0
  37. package/dist/commands/game-environment.d.ts +16 -0
  38. package/dist/commands/game-environment.js +24 -0
  39. package/dist/commands/game-events.d.ts +84 -0
  40. package/dist/commands/game-events.js +325 -0
  41. package/dist/commands/game-experience.d.ts +57 -0
  42. package/dist/commands/game-experience.js +119 -0
  43. package/dist/commands/game-grid-moves.d.ts +33 -0
  44. package/dist/commands/game-grid-moves.js +94 -0
  45. package/dist/commands/game-grids.d.ts +52 -0
  46. package/dist/commands/game-grids.js +162 -0
  47. package/dist/commands/game-here.d.ts +40 -0
  48. package/dist/commands/game-here.js +100 -0
  49. package/dist/commands/game-images.d.ts +31 -0
  50. package/dist/commands/game-images.js +87 -0
  51. package/dist/commands/game-journey.d.ts +62 -0
  52. package/dist/commands/game-journey.js +163 -0
  53. package/dist/commands/game-knowledge.d.ts +32 -0
  54. package/dist/commands/game-knowledge.js +120 -0
  55. package/dist/commands/game-maps.d.ts +20 -0
  56. package/dist/commands/game-maps.js +51 -0
  57. package/dist/commands/game-mode.d.ts +31 -0
  58. package/dist/commands/game-mode.js +128 -0
  59. package/dist/commands/game-money.d.ts +17 -0
  60. package/dist/commands/game-money.js +55 -0
  61. package/dist/commands/game-moods.d.ts +22 -0
  62. package/dist/commands/game-moods.js +32 -0
  63. package/dist/commands/game-moves.d.ts +14 -0
  64. package/dist/commands/game-moves.js +43 -0
  65. package/dist/commands/game-open.d.ts +18 -0
  66. package/dist/commands/game-open.js +47 -0
  67. package/dist/commands/game-outside.d.ts +14 -0
  68. package/dist/commands/game-outside.js +151 -0
  69. package/dist/commands/game-positions.d.ts +52 -0
  70. package/dist/commands/game-positions.js +244 -0
  71. package/dist/commands/game-quests.d.ts +46 -0
  72. package/dist/commands/game-quests.js +97 -0
  73. package/dist/commands/game-recipes.d.ts +34 -0
  74. package/dist/commands/game-recipes.js +109 -0
  75. package/dist/commands/game-reminders.d.ts +22 -0
  76. package/dist/commands/game-reminders.js +74 -0
  77. package/dist/commands/game-roads.d.ts +90 -0
  78. package/dist/commands/game-roads.js +284 -0
  79. package/dist/commands/game-rules.d.ts +17 -0
  80. package/dist/commands/game-rules.js +30 -0
  81. package/dist/commands/game-saves.d.ts +59 -0
  82. package/dist/commands/game-saves.js +249 -0
  83. package/dist/commands/game-scene.d.ts +69 -0
  84. package/dist/commands/game-scene.js +285 -0
  85. package/dist/commands/game-thresholds.d.ts +13 -0
  86. package/dist/commands/game-thresholds.js +41 -0
  87. package/dist/commands/game-time.d.ts +17 -0
  88. package/dist/commands/game-time.js +42 -0
  89. package/dist/commands/game-view-journal.d.ts +145 -0
  90. package/dist/commands/game-view-journal.js +129 -0
  91. package/dist/commands/game-view-map.d.ts +78 -0
  92. package/dist/commands/game-view-map.js +266 -0
  93. package/dist/commands/game-view-place.d.ts +160 -0
  94. package/dist/commands/game-view-place.js +388 -0
  95. package/dist/commands/game-world.d.ts +60 -0
  96. package/dist/commands/game-world.js +204 -0
  97. package/dist/commands/image.d.ts +19 -0
  98. package/dist/commands/image.js +185 -0
  99. package/dist/commands/index.d.ts +3 -0
  100. package/dist/commands/index.js +57 -0
  101. package/dist/commands/init.d.ts +23 -0
  102. package/dist/commands/init.js +44 -0
  103. package/dist/commands/install.d.ts +23 -0
  104. package/dist/commands/install.js +68 -0
  105. package/dist/commands/instructions.d.ts +4 -0
  106. package/dist/commands/instructions.js +97 -0
  107. package/dist/commands/mode.d.ts +23 -0
  108. package/dist/commands/mode.js +84 -0
  109. package/dist/commands/mood.d.ts +34 -0
  110. package/dist/commands/mood.js +113 -0
  111. package/dist/commands/move.d.ts +34 -0
  112. package/dist/commands/move.js +274 -0
  113. package/dist/commands/notes.d.ts +10 -0
  114. package/dist/commands/notes.js +37 -0
  115. package/dist/commands/page-counters.d.ts +24 -0
  116. package/dist/commands/page-counters.js +84 -0
  117. package/dist/commands/parts.d.ts +16 -0
  118. package/dist/commands/parts.js +49 -0
  119. package/dist/commands/problems.d.ts +5 -0
  120. package/dist/commands/problems.js +47 -0
  121. package/dist/commands/progression.d.ts +68 -0
  122. package/dist/commands/progression.js +206 -0
  123. package/dist/commands/rename.d.ts +16 -0
  124. package/dist/commands/rename.js +116 -0
  125. package/dist/commands/reveal.d.ts +25 -0
  126. package/dist/commands/reveal.js +193 -0
  127. package/dist/commands/roll.d.ts +56 -0
  128. package/dist/commands/roll.js +302 -0
  129. package/dist/commands/route.d.ts +19 -0
  130. package/dist/commands/route.js +110 -0
  131. package/dist/commands/rules.d.ts +48 -0
  132. package/dist/commands/rules.js +194 -0
  133. package/dist/commands/save.d.ts +68 -0
  134. package/dist/commands/save.js +141 -0
  135. package/dist/commands/scene.d.ts +105 -0
  136. package/dist/commands/scene.js +741 -0
  137. package/dist/commands/sheet.d.ts +136 -0
  138. package/dist/commands/sheet.js +445 -0
  139. package/dist/commands/show.d.ts +76 -0
  140. package/dist/commands/show.js +216 -0
  141. package/dist/commands/status.d.ts +54 -0
  142. package/dist/commands/status.js +291 -0
  143. package/dist/commands/translate.d.ts +23 -0
  144. package/dist/commands/translate.js +108 -0
  145. package/dist/commands/travel.d.ts +47 -0
  146. package/dist/commands/travel.js +457 -0
  147. package/dist/commands/validate.d.ts +4 -0
  148. package/dist/commands/validate.js +25 -0
  149. package/dist/commands/view.d.ts +272 -0
  150. package/dist/commands/view.js +623 -0
  151. package/dist/commands/worked-out.d.ts +116 -0
  152. package/dist/commands/worked-out.js +704 -0
  153. package/dist/commands/write.d.ts +51 -0
  154. package/dist/commands/write.js +1017 -0
  155. package/dist/core/command-reference.d.ts +6 -0
  156. package/dist/core/command-reference.js +47 -0
  157. package/dist/core/context.d.ts +140 -0
  158. package/dist/core/context.js +28 -0
  159. package/dist/core/field-kind.d.ts +6 -0
  160. package/dist/core/field-kind.js +5 -0
  161. package/dist/core/files.d.ts +4 -0
  162. package/dist/core/files.js +30 -0
  163. package/dist/core/formula.d.ts +164 -0
  164. package/dist/core/formula.js +590 -0
  165. package/dist/core/frozen.d.ts +2 -0
  166. package/dist/core/frozen.js +11 -0
  167. package/dist/core/length.d.ts +27 -0
  168. package/dist/core/length.js +49 -0
  169. package/dist/core/log.d.ts +27 -0
  170. package/dist/core/log.js +38 -0
  171. package/dist/core/memo.d.ts +2 -0
  172. package/dist/core/memo.js +17 -0
  173. package/dist/core/mood.d.ts +6 -0
  174. package/dist/core/mood.js +11 -0
  175. package/dist/core/problem.d.ts +6 -0
  176. package/dist/core/problem.js +1 -0
  177. package/dist/core/progression-rule.d.ts +21 -0
  178. package/dist/core/progression-rule.js +2 -0
  179. package/dist/core/registry.d.ts +31 -0
  180. package/dist/core/registry.js +25 -0
  181. package/dist/core/session-store.d.ts +90 -0
  182. package/dist/core/session-store.js +289 -0
  183. package/dist/core/store.d.ts +83 -0
  184. package/dist/core/store.js +224 -0
  185. package/dist/core/text.d.ts +12 -0
  186. package/dist/core/text.js +32 -0
  187. package/dist/core/version.d.ts +2 -0
  188. package/dist/core/version.js +6 -0
  189. package/dist/core/yaml-file.d.ts +10 -0
  190. package/dist/core/yaml-file.js +42 -0
  191. package/dist/counters/counter.d.ts +36 -0
  192. package/dist/counters/counter.js +59 -0
  193. package/dist/counters/index.d.ts +1 -0
  194. package/dist/counters/index.js +2 -0
  195. package/dist/dashboard/address.js +43 -0
  196. package/dist/dashboard/api.js +185 -0
  197. package/dist/dashboard/app.js +217 -0
  198. package/dist/dashboard/asked.js +132 -0
  199. package/dist/dashboard/assets/dice/dice-sharp.glb +0 -0
  200. package/dist/dashboard/assets/dice/dice.glb +0 -0
  201. package/dist/dashboard/assets/dice/dice.json +1 -0
  202. package/dist/dashboard/assets/dice/textures/ash.jpg +0 -0
  203. package/dist/dashboard/assets/dice/textures/granite.jpg +0 -0
  204. package/dist/dashboard/assets/dice/textures/marble.jpg +0 -0
  205. package/dist/dashboard/assets/dice/textures/onyx.jpg +0 -0
  206. package/dist/dashboard/assets/dice/textures/walnut.jpg +0 -0
  207. package/dist/dashboard/assets/favicon.svg +7 -0
  208. package/dist/dashboard/assets/icon-180.png +0 -0
  209. package/dist/dashboard/assets/icon-32.png +0 -0
  210. package/dist/dashboard/assets/master.svg +71 -0
  211. package/dist/dashboard/assets/sounds/dice-collision.wav +0 -0
  212. package/dist/dashboard/assets/sounds/dice-touch.wav +0 -0
  213. package/dist/dashboard/card.js +61 -0
  214. package/dist/dashboard/columns.js +37 -0
  215. package/dist/dashboard/combat.js +72 -0
  216. package/dist/dashboard/data.js +3 -0
  217. package/dist/dashboard/dice/burn.js +200 -0
  218. package/dist/dashboard/dice/celebration.js +199 -0
  219. package/dist/dashboard/dice/floor-cracks.js +149 -0
  220. package/dist/dashboard/dice/frost.js +51 -0
  221. package/dist/dashboard/dice/load.js +66 -0
  222. package/dist/dashboard/dice/models.js +138 -0
  223. package/dist/dashboard/dice/pool.js +49 -0
  224. package/dist/dashboard/dice/roller.js +101 -0
  225. package/dist/dashboard/dice/sets.js +49 -0
  226. package/dist/dashboard/dice/sounds.js +102 -0
  227. package/dist/dashboard/dice/stage.js +355 -0
  228. package/dist/dashboard/dice/throw.js +242 -0
  229. package/dist/dashboard/dice/tray.js +365 -0
  230. package/dist/dashboard/faces.js +16 -0
  231. package/dist/dashboard/footer.js +17 -0
  232. package/dist/dashboard/free-rolls.js +41 -0
  233. package/dist/dashboard/game-words.js +164 -0
  234. package/dist/dashboard/glass.js +12 -0
  235. package/dist/dashboard/guide/ar.md +306 -0
  236. package/dist/dashboard/guide/cs.md +306 -0
  237. package/dist/dashboard/guide/da.md +306 -0
  238. package/dist/dashboard/guide/de.md +306 -0
  239. package/dist/dashboard/guide/el.md +306 -0
  240. package/dist/dashboard/guide/en.md +305 -0
  241. package/dist/dashboard/guide/es.md +306 -0
  242. package/dist/dashboard/guide/fi.md +306 -0
  243. package/dist/dashboard/guide/fr.md +306 -0
  244. package/dist/dashboard/guide/he.md +306 -0
  245. package/dist/dashboard/guide/hi.md +306 -0
  246. package/dist/dashboard/guide/hu.md +306 -0
  247. package/dist/dashboard/guide/is.md +306 -0
  248. package/dist/dashboard/guide/it.md +306 -0
  249. package/dist/dashboard/guide/ja.md +306 -0
  250. package/dist/dashboard/guide/ko.md +306 -0
  251. package/dist/dashboard/guide/nb.md +306 -0
  252. package/dist/dashboard/guide/nl.md +306 -0
  253. package/dist/dashboard/guide/pl.md +306 -0
  254. package/dist/dashboard/guide/pt.md +306 -0
  255. package/dist/dashboard/guide/ro.md +306 -0
  256. package/dist/dashboard/guide/ru.md +306 -0
  257. package/dist/dashboard/guide/sv.md +306 -0
  258. package/dist/dashboard/guide/tr.md +306 -0
  259. package/dist/dashboard/guide/uk.md +306 -0
  260. package/dist/dashboard/guide/zh.md +306 -0
  261. package/dist/dashboard/guide-blocks.js +72 -0
  262. package/dist/dashboard/guide-markdown.js +63 -0
  263. package/dist/dashboard/help.js +92 -0
  264. package/dist/dashboard/i18n/ar.json +670 -0
  265. package/dist/dashboard/i18n/cs.json +670 -0
  266. package/dist/dashboard/i18n/da.json +670 -0
  267. package/dist/dashboard/i18n/de.json +670 -0
  268. package/dist/dashboard/i18n/el.json +670 -0
  269. package/dist/dashboard/i18n/es.json +670 -0
  270. package/dist/dashboard/i18n/fi.json +670 -0
  271. package/dist/dashboard/i18n/fr.json +670 -0
  272. package/dist/dashboard/i18n/he.json +670 -0
  273. package/dist/dashboard/i18n/hi.json +670 -0
  274. package/dist/dashboard/i18n/hu.json +670 -0
  275. package/dist/dashboard/i18n/is.json +670 -0
  276. package/dist/dashboard/i18n/it.json +670 -0
  277. package/dist/dashboard/i18n/ja.json +670 -0
  278. package/dist/dashboard/i18n/ko.json +670 -0
  279. package/dist/dashboard/i18n/nb.json +670 -0
  280. package/dist/dashboard/i18n/nl.json +670 -0
  281. package/dist/dashboard/i18n/pl.json +670 -0
  282. package/dist/dashboard/i18n/pt.json +670 -0
  283. package/dist/dashboard/i18n/ro.json +670 -0
  284. package/dist/dashboard/i18n/ru.json +670 -0
  285. package/dist/dashboard/i18n/sv.json +670 -0
  286. package/dist/dashboard/i18n/tr.json +670 -0
  287. package/dist/dashboard/i18n/uk.json +670 -0
  288. package/dist/dashboard/i18n/zh.json +670 -0
  289. package/dist/dashboard/icons.js +123 -0
  290. package/dist/dashboard/journal.js +188 -0
  291. package/dist/dashboard/labels.js +226 -0
  292. package/dist/dashboard/language-choice.js +83 -0
  293. package/dist/dashboard/languages.js +144 -0
  294. package/dist/dashboard/layout.js +93 -0
  295. package/dist/dashboard/map-sheet.js +32 -0
  296. package/dist/dashboard/map-symbols.js +79 -0
  297. package/dist/dashboard/markdown.js +72 -0
  298. package/dist/dashboard/master.js +69 -0
  299. package/dist/dashboard/mood-faces.js +16 -0
  300. package/dist/dashboard/mood.js +27 -0
  301. package/dist/dashboard/notes.js +203 -0
  302. package/dist/dashboard/notices.js +24 -0
  303. package/dist/dashboard/pages.js +32 -0
  304. package/dist/dashboard/party.js +65 -0
  305. package/dist/dashboard/place-map-view.js +362 -0
  306. package/dist/dashboard/place-map.js +204 -0
  307. package/dist/dashboard/prefs.js +97 -0
  308. package/dist/dashboard/reactions.js +28 -0
  309. package/dist/dashboard/requested.js +32 -0
  310. package/dist/dashboard/rolls.js +240 -0
  311. package/dist/dashboard/saves.js +154 -0
  312. package/dist/dashboard/scene.js +63 -0
  313. package/dist/dashboard/settings.js +362 -0
  314. package/dist/dashboard/setup.js +195 -0
  315. package/dist/dashboard/sheet.js +180 -0
  316. package/dist/dashboard/status.js +42 -0
  317. package/dist/dashboard/story.js +51 -0
  318. package/dist/dashboard/style.css +9355 -0
  319. package/dist/dashboard/text.js +158 -0
  320. package/dist/dashboard/theme.js +32 -0
  321. package/dist/dashboard/top.js +156 -0
  322. package/dist/dashboard/widgets.js +69 -0
  323. package/dist/dashboard/world-map.js +523 -0
  324. package/dist/dashboard/world.js +357 -0
  325. package/dist/dashboard-server.d.ts +38 -0
  326. package/dist/dashboard-server.js +818 -0
  327. package/dist/dice/evaluate.d.ts +30 -0
  328. package/dist/dice/evaluate.js +90 -0
  329. package/dist/dice/format.d.ts +3 -0
  330. package/dist/dice/format.js +26 -0
  331. package/dist/dice/index.d.ts +4 -0
  332. package/dist/dice/index.js +5 -0
  333. package/dist/dice/notation.d.ts +43 -0
  334. package/dist/dice/notation.js +132 -0
  335. package/dist/dice/proof.d.ts +4 -0
  336. package/dist/dice/proof.js +12 -0
  337. package/dist/dice/roll-dice.d.ts +29 -0
  338. package/dist/dice/roll-dice.js +43 -0
  339. package/dist/dice/words.d.ts +12 -0
  340. package/dist/dice/words.js +21 -0
  341. package/dist/effects/effect.d.ts +57 -0
  342. package/dist/effects/effect.js +123 -0
  343. package/dist/effects/index.d.ts +1 -0
  344. package/dist/effects/index.js +2 -0
  345. package/dist/grid/grid.d.ts +53 -0
  346. package/dist/grid/grid.js +151 -0
  347. package/dist/grid/index.d.ts +2 -0
  348. package/dist/grid/index.js +2 -0
  349. package/dist/grid/paths.d.ts +27 -0
  350. package/dist/grid/paths.js +128 -0
  351. package/dist/images/images.d.ts +26 -0
  352. package/dist/images/images.js +74 -0
  353. package/dist/images/index.d.ts +1 -0
  354. package/dist/images/index.js +2 -0
  355. package/dist/index.d.ts +1 -0
  356. package/dist/index.js +1 -0
  357. package/dist/instructions/index.d.ts +17 -0
  358. package/dist/instructions/index.js +48 -0
  359. package/dist/map/geometry.d.ts +22 -0
  360. package/dist/map/geometry.js +66 -0
  361. package/dist/map/index.d.ts +3 -0
  362. package/dist/map/index.js +5 -0
  363. package/dist/map/looks.d.ts +9 -0
  364. package/dist/map/looks.js +57 -0
  365. package/dist/map/ways.d.ts +36 -0
  366. package/dist/map/ways.js +78 -0
  367. package/dist/mcp-server.d.ts +22 -0
  368. package/dist/mcp-server.js +289 -0
  369. package/dist/money/index.d.ts +1 -0
  370. package/dist/money/index.js +2 -0
  371. package/dist/money/money.d.ts +48 -0
  372. package/dist/money/money.js +218 -0
  373. package/dist/page-words.d.ts +46 -0
  374. package/dist/page-words.js +221 -0
  375. package/dist/pages/check.d.ts +9 -0
  376. package/dist/pages/check.js +345 -0
  377. package/dist/pages/containers.d.ts +34 -0
  378. package/dist/pages/containers.js +181 -0
  379. package/dist/pages/environment.d.ts +26 -0
  380. package/dist/pages/environment.js +118 -0
  381. package/dist/pages/index.d.ts +15 -0
  382. package/dist/pages/index.js +16 -0
  383. package/dist/pages/inheritance.d.ts +80 -0
  384. package/dist/pages/inheritance.js +260 -0
  385. package/dist/pages/maps.d.ts +11 -0
  386. package/dist/pages/maps.js +14 -0
  387. package/dist/pages/markdown.d.ts +59 -0
  388. package/dist/pages/markdown.js +271 -0
  389. package/dist/pages/page-file.d.ts +26 -0
  390. package/dist/pages/page-file.js +166 -0
  391. package/dist/pages/page-types.d.ts +17 -0
  392. package/dist/pages/page-types.js +18 -0
  393. package/dist/pages/positions.d.ts +11 -0
  394. package/dist/pages/positions.js +23 -0
  395. package/dist/pages/rename-page.d.ts +39 -0
  396. package/dist/pages/rename-page.js +109 -0
  397. package/dist/pages/roads.d.ts +11 -0
  398. package/dist/pages/roads.js +40 -0
  399. package/dist/pages/standard-fields.d.ts +31 -0
  400. package/dist/pages/standard-fields.js +142 -0
  401. package/dist/pages/system-pages.d.ts +35 -0
  402. package/dist/pages/system-pages.js +98 -0
  403. package/dist/pages/world.d.ts +174 -0
  404. package/dist/pages/world.js +349 -0
  405. package/dist/pages/write-page.d.ts +27 -0
  406. package/dist/pages/write-page.js +311 -0
  407. package/dist/pictures/briefs.d.ts +25 -0
  408. package/dist/pictures/briefs.js +145 -0
  409. package/dist/pictures/chosen.d.ts +5 -0
  410. package/dist/pictures/chosen.js +21 -0
  411. package/dist/pictures/claude.d.ts +14 -0
  412. package/dist/pictures/claude.js +129 -0
  413. package/dist/pictures/codex.d.ts +20 -0
  414. package/dist/pictures/codex.js +154 -0
  415. package/dist/pictures/helpers.d.ts +26 -0
  416. package/dist/pictures/helpers.js +219 -0
  417. package/dist/pictures/index.d.ts +6 -0
  418. package/dist/pictures/index.js +8 -0
  419. package/dist/pictures/stop.d.ts +3 -0
  420. package/dist/pictures/stop.js +10 -0
  421. package/dist/pictures/svg.d.ts +4 -0
  422. package/dist/pictures/svg.js +129 -0
  423. package/dist/player-notes/index.d.ts +1 -0
  424. package/dist/player-notes/index.js +2 -0
  425. package/dist/player-notes/notes.d.ts +21 -0
  426. package/dist/player-notes/notes.js +50 -0
  427. package/dist/progression/index.d.ts +1 -0
  428. package/dist/progression/index.js +1 -0
  429. package/dist/progression/level-table.d.ts +41 -0
  430. package/dist/progression/level-table.js +123 -0
  431. package/dist/rules/index.d.ts +3 -0
  432. package/dist/rules/index.js +4 -0
  433. package/dist/rules/rule-book.d.ts +31 -0
  434. package/dist/rules/rule-book.js +157 -0
  435. package/dist/rules/search.d.ts +18 -0
  436. package/dist/rules/search.js +101 -0
  437. package/dist/rules/shown.d.ts +19 -0
  438. package/dist/rules/shown.js +44 -0
  439. package/dist/saves/index.d.ts +1 -0
  440. package/dist/saves/index.js +2 -0
  441. package/dist/saves/saves.d.ts +14 -0
  442. package/dist/saves/saves.js +27 -0
  443. package/dist/scene/index.d.ts +1 -0
  444. package/dist/scene/index.js +2 -0
  445. package/dist/scene/scene.d.ts +46 -0
  446. package/dist/scene/scene.js +44 -0
  447. package/dist/systems/game-system.d.ts +236 -0
  448. package/dist/systems/game-system.js +593 -0
  449. package/dist/systems/index.d.ts +2 -0
  450. package/dist/systems/index.js +3 -0
  451. package/dist/systems/words.d.ts +9 -0
  452. package/dist/systems/words.js +23 -0
  453. package/dist/time/game-date.d.ts +20 -0
  454. package/dist/time/game-date.js +59 -0
  455. package/dist/time/index.d.ts +1 -0
  456. package/dist/time/index.js +2 -0
  457. package/dist/triggers/index.d.ts +1 -0
  458. package/dist/triggers/index.js +2 -0
  459. package/dist/triggers/trigger.d.ts +43 -0
  460. package/dist/triggers/trigger.js +98 -0
  461. package/instructions/author.md +1 -0
  462. package/instructions/buttons-physical-dice.md +1 -0
  463. package/instructions/buttons.md +1 -0
  464. package/instructions/combat.md +3 -0
  465. package/instructions/core.md +54 -0
  466. package/instructions/dashboard.md +7 -0
  467. package/instructions/mentor-hints.md +1 -0
  468. package/instructions/mentor-tutorial.md +1 -0
  469. package/instructions/new-day.md +1 -0
  470. package/instructions/play.md +23 -0
  471. package/instructions/prose-literary.md +1 -0
  472. package/instructions/prose-pulp.md +1 -0
  473. package/instructions/prose-wry.md +1 -0
  474. package/instructions/session-zero.md +3 -0
  475. package/instructions/setup.md +3 -0
  476. package/instructions/start.md +1 -0
  477. package/instructions/story-arcs.md +1 -0
  478. package/instructions/story-episodes.md +1 -0
  479. package/instructions/story-mystery.md +1 -0
  480. package/instructions/style.md +1 -0
  481. package/package.json +85 -4
  482. package/systems/5e/LICENSE.md +25 -0
  483. package/systems/5e/images/acid-blob.svg +1 -0
  484. package/systems/5e/images/angel-outfit.svg +1 -0
  485. package/systems/5e/images/angler-fish.svg +1 -0
  486. package/systems/5e/images/angular-spider.svg +1 -0
  487. package/systems/5e/images/animal-skull.svg +1 -0
  488. package/systems/5e/images/bad-gnome.svg +1 -0
  489. package/systems/5e/images/badger.svg +1 -0
  490. package/systems/5e/images/bandit.svg +1 -0
  491. package/systems/5e/images/barn-owl.svg +1 -0
  492. package/systems/5e/images/basset-hound-head.svg +1 -0
  493. package/systems/5e/images/bat.svg +1 -0
  494. package/systems/5e/images/bear-face.svg +1 -0
  495. package/systems/5e/images/bear-head.svg +1 -0
  496. package/systems/5e/images/beetle-shell.svg +1 -0
  497. package/systems/5e/images/berry-bush.svg +1 -0
  498. package/systems/5e/images/bestial-fangs.svg +1 -0
  499. package/systems/5e/images/big-wave.svg +1 -0
  500. package/systems/5e/images/black-knight-helm.svg +1 -0
  501. package/systems/5e/images/boar-tusks.svg +1 -0
  502. package/systems/5e/images/boar.svg +1 -0
  503. package/systems/5e/images/bone-gnawer.svg +1 -0
  504. package/systems/5e/images/breastplate.svg +1 -0
  505. package/systems/5e/images/brute.svg +1 -0
  506. package/systems/5e/images/camel-head.svg +1 -0
  507. package/systems/5e/images/carnivore-mouth.svg +1 -0
  508. package/systems/5e/images/cassowary-head.svg +1 -0
  509. package/systems/5e/images/cat.svg +1 -0
  510. package/systems/5e/images/centaur.svg +1 -0
  511. package/systems/5e/images/centipede.svg +1 -0
  512. package/systems/5e/images/charging-bull.svg +1 -0
  513. package/systems/5e/images/closed-barbute.svg +1 -0
  514. package/systems/5e/images/cobra.svg +1 -0
  515. package/systems/5e/images/condor-emblem.svg +1 -0
  516. package/systems/5e/images/cowled.svg +1 -0
  517. package/systems/5e/images/crab-claw.svg +1 -0
  518. package/systems/5e/images/crab.svg +1 -0
  519. package/systems/5e/images/croc-jaws.svg +1 -0
  520. package/systems/5e/images/crow-dive.svg +1 -0
  521. package/systems/5e/images/crown.svg +1 -0
  522. package/systems/5e/images/crowned-skull.svg +1 -0
  523. package/systems/5e/images/cube.svg +1 -0
  524. package/systems/5e/images/cultist-lorc.svg +1 -0
  525. package/systems/5e/images/cultist-skoll.svg +1 -0
  526. package/systems/5e/images/curled-tentacle.svg +1 -0
  527. package/systems/5e/images/daemon-skull.svg +1 -0
  528. package/systems/5e/images/deer-head.svg +1 -0
  529. package/systems/5e/images/desert-skull.svg +1 -0
  530. package/systems/5e/images/devil-mask.svg +1 -0
  531. package/systems/5e/images/diablo-skull.svg +1 -0
  532. package/systems/5e/images/dinosaur-rex.svg +1 -0
  533. package/systems/5e/images/direwolf.svg +1 -0
  534. package/systems/5e/images/djinn.svg +1 -0
  535. package/systems/5e/images/donkey.svg +1 -0
  536. package/systems/5e/images/dragon-head-faithtoken.svg +1 -0
  537. package/systems/5e/images/dragon-head-lorc.svg +1 -0
  538. package/systems/5e/images/dragon-shield.svg +1 -0
  539. package/systems/5e/images/dragon-spiral.svg +1 -0
  540. package/systems/5e/images/dread-skull.svg +1 -0
  541. package/systems/5e/images/duality-mask.svg +1 -0
  542. package/systems/5e/images/dust-cloud.svg +1 -0
  543. package/systems/5e/images/dwarf-face.svg +1 -0
  544. package/systems/5e/images/dwarf-helmet.svg +1 -0
  545. package/systems/5e/images/eagle-emblem.svg +1 -0
  546. package/systems/5e/images/eagle-head.svg +1 -0
  547. package/systems/5e/images/egyptian-sphinx.svg +1 -0
  548. package/systems/5e/images/elephant-head.svg +1 -0
  549. package/systems/5e/images/elf-ear.svg +1 -0
  550. package/systems/5e/images/elf-helmet.svg +1 -0
  551. package/systems/5e/images/ent-mouth.svg +1 -0
  552. package/systems/5e/images/ermine.svg +1 -0
  553. package/systems/5e/images/eruption.svg +1 -0
  554. package/systems/5e/images/evil-bat.svg +1 -0
  555. package/systems/5e/images/evil-minion.svg +1 -0
  556. package/systems/5e/images/evil-tree.svg +1 -0
  557. package/systems/5e/images/evil-wings.svg +1 -0
  558. package/systems/5e/images/eyestalk.svg +1 -0
  559. package/systems/5e/images/fairy.svg +1 -0
  560. package/systems/5e/images/farmer.svg +1 -0
  561. package/systems/5e/images/feline.svg +1 -0
  562. package/systems/5e/images/fire-silhouette.svg +1 -0
  563. package/systems/5e/images/fish-monster.svg +1 -0
  564. package/systems/5e/images/fleshy-mass.svg +1 -0
  565. package/systems/5e/images/fluffy-flame.svg +1 -0
  566. package/systems/5e/images/fly.svg +1 -0
  567. package/systems/5e/images/fox-head.svg +1 -0
  568. package/systems/5e/images/frankenstein-creature.svg +1 -0
  569. package/systems/5e/images/frog.svg +1 -0
  570. package/systems/5e/images/gargoyle.svg +1 -0
  571. package/systems/5e/images/gecko.svg +1 -0
  572. package/systems/5e/images/ghost.svg +1 -0
  573. package/systems/5e/images/giant.svg +1 -0
  574. package/systems/5e/images/goat.svg +1 -0
  575. package/systems/5e/images/goblin-head.svg +1 -0
  576. package/systems/5e/images/goblin.svg +1 -0
  577. package/systems/5e/images/golem-head.svg +1 -0
  578. package/systems/5e/images/gooey-daemon.svg +1 -0
  579. package/systems/5e/images/gorilla.svg +1 -0
  580. package/systems/5e/images/greek-sphinx.svg +1 -0
  581. package/systems/5e/images/griffin-symbol.svg +1 -0
  582. package/systems/5e/images/grim-reaper.svg +1 -0
  583. package/systems/5e/images/hanging-spider.svg +1 -0
  584. package/systems/5e/images/harpy.svg +1 -0
  585. package/systems/5e/images/hawk-emblem.svg +1 -0
  586. package/systems/5e/images/hooded-assassin.svg +1 -0
  587. package/systems/5e/images/horned-reptile.svg +1 -0
  588. package/systems/5e/images/horse-head-delapouite.svg +1 -0
  589. package/systems/5e/images/horse-head-lorc.svg +1 -0
  590. package/systems/5e/images/hound.svg +1 -0
  591. package/systems/5e/images/hydra.svg +1 -0
  592. package/systems/5e/images/hyena-head.svg +1 -0
  593. package/systems/5e/images/icicles-aura.svg +1 -0
  594. package/systems/5e/images/ifrit.svg +1 -0
  595. package/systems/5e/images/imp-laugh.svg +1 -0
  596. package/systems/5e/images/imp.svg +1 -0
  597. package/systems/5e/images/insect-jaws.svg +1 -0
  598. package/systems/5e/images/invisible-face.svg +1 -0
  599. package/systems/5e/images/jumping-dog.svg +1 -0
  600. package/systems/5e/images/kraken-tentacle.svg +1 -0
  601. package/systems/5e/images/labrador-head.svg +1 -0
  602. package/systems/5e/images/lion.svg +1 -0
  603. package/systems/5e/images/lizard-tongue.svg +1 -0
  604. package/systems/5e/images/lizardman.svg +1 -0
  605. package/systems/5e/images/long-antennae-bug.svg +1 -0
  606. package/systems/5e/images/long-legged-spider.svg +1 -0
  607. package/systems/5e/images/mammoth.svg +1 -0
  608. package/systems/5e/images/mandrill-head.svg +1 -0
  609. package/systems/5e/images/manta-ray.svg +1 -0
  610. package/systems/5e/images/masked-spider.svg +1 -0
  611. package/systems/5e/images/medusa-head.svg +1 -0
  612. package/systems/5e/images/mermaid.svg +1 -0
  613. package/systems/5e/images/metal-golem-head.svg +1 -0
  614. package/systems/5e/images/mimic-chest.svg +1 -0
  615. package/systems/5e/images/minotaur.svg +1 -0
  616. package/systems/5e/images/monk-face.svg +1 -0
  617. package/systems/5e/images/moon-bats.svg +1 -0
  618. package/systems/5e/images/mucous-pillar.svg +1 -0
  619. package/systems/5e/images/mummy-head.svg +1 -0
  620. package/systems/5e/images/mushrooms-cluster.svg +1 -0
  621. package/systems/5e/images/octopus.svg +1 -0
  622. package/systems/5e/images/ogre.svg +1 -0
  623. package/systems/5e/images/oni.svg +1 -0
  624. package/systems/5e/images/orc-head.svg +1 -0
  625. package/systems/5e/images/owl.svg +1 -0
  626. package/systems/5e/images/pan-flute.svg +1 -0
  627. package/systems/5e/images/pegasus.svg +1 -0
  628. package/systems/5e/images/person.svg +1 -0
  629. package/systems/5e/images/piranha.svg +1 -0
  630. package/systems/5e/images/plesiosaurus.svg +1 -0
  631. package/systems/5e/images/pointy-hat.svg +1 -0
  632. package/systems/5e/images/polar-bear.svg +1 -0
  633. package/systems/5e/images/rat.svg +1 -0
  634. package/systems/5e/images/rattlesnake.svg +1 -0
  635. package/systems/5e/images/raven.svg +1 -0
  636. package/systems/5e/images/rhinoceros-horn.svg +1 -0
  637. package/systems/5e/images/robber.svg +1 -0
  638. package/systems/5e/images/robin-hood-hat.svg +1 -0
  639. package/systems/5e/images/robot-golem.svg +1 -0
  640. package/systems/5e/images/rock-golem.svg +1 -0
  641. package/systems/5e/images/rolled-cloth.svg +1 -0
  642. package/systems/5e/images/rooster.svg +1 -0
  643. package/systems/5e/images/saber-toothed-cat-head.svg +1 -0
  644. package/systems/5e/images/salamander.svg +1 -0
  645. package/systems/5e/images/school-of-fish.svg +1 -0
  646. package/systems/5e/images/scorpion.svg +1 -0
  647. package/systems/5e/images/sea-serpent.svg +1 -0
  648. package/systems/5e/images/seahorse.svg +1 -0
  649. package/systems/5e/images/seated-mouse.svg +1 -0
  650. package/systems/5e/images/sensuousness.svg +1 -0
  651. package/systems/5e/images/shadow-follower.svg +1 -0
  652. package/systems/5e/images/shambling-mound.svg +1 -0
  653. package/systems/5e/images/shambling-zombie.svg +1 -0
  654. package/systems/5e/images/shark-fin.svg +1 -0
  655. package/systems/5e/images/shark-jaws.svg +1 -0
  656. package/systems/5e/images/skeleton.svg +1 -0
  657. package/systems/5e/images/slime.svg +1 -0
  658. package/systems/5e/images/small-fire.svg +1 -0
  659. package/systems/5e/images/snake-spiral.svg +1 -0
  660. package/systems/5e/images/snake-tongue.svg +1 -0
  661. package/systems/5e/images/snake-totem.svg +1 -0
  662. package/systems/5e/images/snake.svg +1 -0
  663. package/systems/5e/images/spark-spirit.svg +1 -0
  664. package/systems/5e/images/spartan.svg +1 -0
  665. package/systems/5e/images/spectre.svg +1 -0
  666. package/systems/5e/images/sperm-whale.svg +1 -0
  667. package/systems/5e/images/spider-alt.svg +1 -0
  668. package/systems/5e/images/spiked-dragon-head.svg +1 -0
  669. package/systems/5e/images/spiked-tail.svg +1 -0
  670. package/systems/5e/images/spotted-mushroom.svg +1 -0
  671. package/systems/5e/images/spy.svg +1 -0
  672. package/systems/5e/images/squid.svg +1 -0
  673. package/systems/5e/images/stag-head.svg +1 -0
  674. package/systems/5e/images/steam.svg +1 -0
  675. package/systems/5e/images/sun-priest.svg +1 -0
  676. package/systems/5e/images/tick.svg +1 -0
  677. package/systems/5e/images/tiger-head.svg +1 -0
  678. package/systems/5e/images/tiger.svg +1 -0
  679. package/systems/5e/images/toad-teeth.svg +1 -0
  680. package/systems/5e/images/tornado.svg +1 -0
  681. package/systems/5e/images/transparent-slime.svg +1 -0
  682. package/systems/5e/images/tree-face.svg +1 -0
  683. package/systems/5e/images/tribal-mask.svg +1 -0
  684. package/systems/5e/images/triceratops-head.svg +1 -0
  685. package/systems/5e/images/triton-head.svg +1 -0
  686. package/systems/5e/images/troglodyte.svg +1 -0
  687. package/systems/5e/images/troll.svg +1 -0
  688. package/systems/5e/images/turtle.svg +1 -0
  689. package/systems/5e/images/unicorn.svg +1 -0
  690. package/systems/5e/images/vampire-dracula.svg +1 -0
  691. package/systems/5e/images/viking-head.svg +1 -0
  692. package/systems/5e/images/visored-helm.svg +1 -0
  693. package/systems/5e/images/vulture.svg +1 -0
  694. package/systems/5e/images/warlord-helmet.svg +1 -0
  695. package/systems/5e/images/wasp-sting.svg +1 -0
  696. package/systems/5e/images/werewolf.svg +1 -0
  697. package/systems/5e/images/winged-sword.svg +1 -0
  698. package/systems/5e/images/witch-face.svg +1 -0
  699. package/systems/5e/images/wizard-face.svg +1 -0
  700. package/systems/5e/images/wolf-head.svg +1 -0
  701. package/systems/5e/images/wolf-howl.svg +1 -0
  702. package/systems/5e/images/woman-elf-face.svg +1 -0
  703. package/systems/5e/images/worm-mouth.svg +1 -0
  704. package/systems/5e/images/wyvern.svg +1 -0
  705. package/systems/5e/instructions/level-up.md +1 -0
  706. package/systems/5e/instructions/mentor-tutorial.md +1 -0
  707. package/systems/5e/instructions/play.md +5 -0
  708. package/systems/5e/instructions/quest-ends.md +1 -0
  709. package/systems/5e/instructions/session-zero.md +1 -0
  710. package/systems/5e/rules/Adventuring.md +228 -0
  711. package/systems/5e/rules/Beyond 1st Level.md +241 -0
  712. package/systems/5e/rules/Combat.md +504 -0
  713. package/systems/5e/rules/Conditions.md +110 -0
  714. package/systems/5e/rules/Diseases.md +41 -0
  715. package/systems/5e/rules/Equipment.md +731 -0
  716. package/systems/5e/rules/Fantasy-Historical Pantheons.md +112 -0
  717. package/systems/5e/rules/Madness.md +72 -0
  718. package/systems/5e/rules/Magic Items.md +142 -0
  719. package/systems/5e/rules/Monsters.md +403 -0
  720. package/systems/5e/rules/Nonplayer Characters.md +15 -0
  721. package/systems/5e/rules/Objects.md +40 -0
  722. package/systems/5e/rules/Poisons.md +64 -0
  723. package/systems/5e/rules/Races.md +33 -0
  724. package/systems/5e/rules/Spellcasting.md +225 -0
  725. package/systems/5e/rules/The Planes of Existence.md +59 -0
  726. package/systems/5e/rules/Traps.md +170 -0
  727. package/systems/5e/rules/Using Ability Scores.md +394 -0
  728. package/systems/5e/system.yaml +602 -0
  729. package/systems/5e/words/ar.yaml +421 -0
  730. package/systems/5e/words/cs.yaml +421 -0
  731. package/systems/5e/words/da.yaml +421 -0
  732. package/systems/5e/words/de.yaml +421 -0
  733. package/systems/5e/words/el.yaml +421 -0
  734. package/systems/5e/words/es.yaml +421 -0
  735. package/systems/5e/words/fi.yaml +421 -0
  736. package/systems/5e/words/fr.yaml +421 -0
  737. package/systems/5e/words/he.yaml +421 -0
  738. package/systems/5e/words/hi.yaml +421 -0
  739. package/systems/5e/words/hu.yaml +421 -0
  740. package/systems/5e/words/is.yaml +421 -0
  741. package/systems/5e/words/it.yaml +453 -0
  742. package/systems/5e/words/ja.yaml +421 -0
  743. package/systems/5e/words/ko.yaml +421 -0
  744. package/systems/5e/words/nb.yaml +421 -0
  745. package/systems/5e/words/nl.yaml +421 -0
  746. package/systems/5e/words/pl.yaml +421 -0
  747. package/systems/5e/words/pt.yaml +421 -0
  748. package/systems/5e/words/ro.yaml +421 -0
  749. package/systems/5e/words/ru.yaml +421 -0
  750. package/systems/5e/words/sv.yaml +421 -0
  751. package/systems/5e/words/tr.yaml +421 -0
  752. package/systems/5e/words/uk.yaml +421 -0
  753. package/systems/5e/words/zh.yaml +421 -0
  754. package/systems/5e/world/creatures/Aboleth.md +65 -0
  755. package/systems/5e/world/creatures/Acolyte.md +37 -0
  756. package/systems/5e/world/creatures/Adult Black Dragon.md +69 -0
  757. package/systems/5e/world/creatures/Adult Blue Dragon.md +66 -0
  758. package/systems/5e/world/creatures/Adult Brass Dragon.md +70 -0
  759. package/systems/5e/world/creatures/Adult Bronze Dragon.md +78 -0
  760. package/systems/5e/world/creatures/Adult Copper Dragon.md +70 -0
  761. package/systems/5e/world/creatures/Adult Gold Dragon.md +78 -0
  762. package/systems/5e/world/creatures/Adult Green Dragon.md +70 -0
  763. package/systems/5e/world/creatures/Adult Red Dragon.md +66 -0
  764. package/systems/5e/world/creatures/Adult Silver Dragon.md +74 -0
  765. package/systems/5e/world/creatures/Adult White Dragon.md +70 -0
  766. package/systems/5e/world/creatures/Air Elemental.md +43 -0
  767. package/systems/5e/world/creatures/Ancient Black Dragon.md +69 -0
  768. package/systems/5e/world/creatures/Ancient Blue Dragon.md +66 -0
  769. package/systems/5e/world/creatures/Ancient Brass Dragon.md +75 -0
  770. package/systems/5e/world/creatures/Ancient Bronze Dragon.md +78 -0
  771. package/systems/5e/world/creatures/Ancient Copper Dragon.md +75 -0
  772. package/systems/5e/world/creatures/Ancient Gold Dragon.md +78 -0
  773. package/systems/5e/world/creatures/Ancient Green Dragon.md +70 -0
  774. package/systems/5e/world/creatures/Ancient Red Dragon.md +66 -0
  775. package/systems/5e/world/creatures/Ancient Silver Dragon.md +74 -0
  776. package/systems/5e/world/creatures/Ancient White Dragon.md +70 -0
  777. package/systems/5e/world/creatures/Androsphinx.md +82 -0
  778. package/systems/5e/world/creatures/Animated Armor.md +39 -0
  779. package/systems/5e/world/creatures/Ankheg.md +31 -0
  780. package/systems/5e/world/creatures/Ape.md +32 -0
  781. package/systems/5e/world/creatures/Archmage.md +63 -0
  782. package/systems/5e/world/creatures/Assassin.md +48 -0
  783. package/systems/5e/world/creatures/Awakened Shrub.md +34 -0
  784. package/systems/5e/world/creatures/Awakened Tree.md +35 -0
  785. package/systems/5e/world/creatures/Axe Beak.md +26 -0
  786. package/systems/5e/world/creatures/Azer.md +40 -0
  787. package/systems/5e/world/creatures/Baboon.md +30 -0
  788. package/systems/5e/world/creatures/Badger.md +31 -0
  789. package/systems/5e/world/creatures/Balor.md +55 -0
  790. package/systems/5e/world/creatures/Bandit Captain.md +45 -0
  791. package/systems/5e/world/creatures/Bandit.md +33 -0
  792. package/systems/5e/world/creatures/Barbed Devil.md +52 -0
  793. package/systems/5e/world/creatures/Basilisk.md +35 -0
  794. package/systems/5e/world/creatures/Bat.md +34 -0
  795. package/systems/5e/world/creatures/Bearded Devil.md +48 -0
  796. package/systems/5e/world/creatures/Behir.md +44 -0
  797. package/systems/5e/world/creatures/Berserker.md +33 -0
  798. package/systems/5e/world/creatures/Black Bear.md +38 -0
  799. package/systems/5e/world/creatures/Black Dragon Wyrmling.md +41 -0
  800. package/systems/5e/world/creatures/Black Pudding.md +46 -0
  801. package/systems/5e/world/creatures/Blink Dog.md +36 -0
  802. package/systems/5e/world/creatures/Blood Hawk.md +36 -0
  803. package/systems/5e/world/creatures/Blue Dragon Wyrmling.md +36 -0
  804. package/systems/5e/world/creatures/Boar.md +33 -0
  805. package/systems/5e/world/creatures/Bone Devil.md +47 -0
  806. package/systems/5e/world/creatures/Brass Dragon Wyrmling.md +40 -0
  807. package/systems/5e/world/creatures/Bronze Dragon Wyrmling.md +45 -0
  808. package/systems/5e/world/creatures/Brown Bear.md +38 -0
  809. package/systems/5e/world/creatures/Bugbear.md +39 -0
  810. package/systems/5e/world/creatures/Bulette.md +37 -0
  811. package/systems/5e/world/creatures/Camel.md +24 -0
  812. package/systems/5e/world/creatures/Cat.md +31 -0
  813. package/systems/5e/world/creatures/Centaur.md +40 -0
  814. package/systems/5e/world/creatures/Chain Devil.md +52 -0
  815. package/systems/5e/world/creatures/Chimera.md +41 -0
  816. package/systems/5e/world/creatures/Chuul.md +45 -0
  817. package/systems/5e/world/creatures/Clay Golem.md +52 -0
  818. package/systems/5e/world/creatures/Cloaker.md +56 -0
  819. package/systems/5e/world/creatures/Cloud Giant.md +46 -0
  820. package/systems/5e/world/creatures/Cockatrice.md +26 -0
  821. package/systems/5e/world/creatures/Commoner.md +27 -0
  822. package/systems/5e/world/creatures/Constrictor Snake.md +29 -0
  823. package/systems/5e/world/creatures/Copper Dragon Wyrmling.md +40 -0
  824. package/systems/5e/world/creatures/Couatl.md +54 -0
  825. package/systems/5e/world/creatures/Crab.md +33 -0
  826. package/systems/5e/world/creatures/Crocodile.md +32 -0
  827. package/systems/5e/world/creatures/Cult Fanatic.md +46 -0
  828. package/systems/5e/world/creatures/Cultist.md +34 -0
  829. package/systems/5e/world/creatures/Darkmantle.md +42 -0
  830. package/systems/5e/world/creatures/Death Dog.md +36 -0
  831. package/systems/5e/world/creatures/Deep Gnome (Svirfneblin).md +46 -0
  832. package/systems/5e/world/creatures/Deer.md +24 -0
  833. package/systems/5e/world/creatures/Deva.md +57 -0
  834. package/systems/5e/world/creatures/Dire Wolf.md +34 -0
  835. package/systems/5e/world/creatures/Djinni.md +50 -0
  836. package/systems/5e/world/creatures/Doppelganger.md +45 -0
  837. package/systems/5e/world/creatures/Draft Horse.md +24 -0
  838. package/systems/5e/world/creatures/Dragon Turtle.md +47 -0
  839. package/systems/5e/world/creatures/Dragonborn.md +58 -0
  840. package/systems/5e/world/creatures/Dretch.md +39 -0
  841. package/systems/5e/world/creatures/Drider.md +58 -0
  842. package/systems/5e/world/creatures/Drow Elf.md +46 -0
  843. package/systems/5e/world/creatures/Druid (creature).md +41 -0
  844. package/systems/5e/world/creatures/Dryad.md +53 -0
  845. package/systems/5e/world/creatures/Duergar.md +45 -0
  846. package/systems/5e/world/creatures/Dust Mephit.md +42 -0
  847. package/systems/5e/world/creatures/Dwarf.md +48 -0
  848. package/systems/5e/world/creatures/Eagle.md +31 -0
  849. package/systems/5e/world/creatures/Earth Elemental.md +44 -0
  850. package/systems/5e/world/creatures/Efreeti.md +48 -0
  851. package/systems/5e/world/creatures/Elephant.md +33 -0
  852. package/systems/5e/world/creatures/Elf.md +44 -0
  853. package/systems/5e/world/creatures/Elk.md +32 -0
  854. package/systems/5e/world/creatures/Erinyes.md +51 -0
  855. package/systems/5e/world/creatures/Ettercap.md +48 -0
  856. package/systems/5e/world/creatures/Ettin.md +42 -0
  857. package/systems/5e/world/creatures/Fire Elemental.md +43 -0
  858. package/systems/5e/world/creatures/Fire Giant.md +35 -0
  859. package/systems/5e/world/creatures/Flesh Golem.md +53 -0
  860. package/systems/5e/world/creatures/Flying Snake.md +34 -0
  861. package/systems/5e/world/creatures/Flying Sword.md +38 -0
  862. package/systems/5e/world/creatures/Frog.md +32 -0
  863. package/systems/5e/world/creatures/Frost Giant.md +35 -0
  864. package/systems/5e/world/creatures/Gargoyle.md +42 -0
  865. package/systems/5e/world/creatures/Gelatinous Cube.md +49 -0
  866. package/systems/5e/world/creatures/Ghast.md +40 -0
  867. package/systems/5e/world/creatures/Ghost.md +49 -0
  868. package/systems/5e/world/creatures/Ghoul.md +31 -0
  869. package/systems/5e/world/creatures/Giant Ape.md +32 -0
  870. package/systems/5e/world/creatures/Giant Badger.md +37 -0
  871. package/systems/5e/world/creatures/Giant Bat.md +34 -0
  872. package/systems/5e/world/creatures/Giant Boar.md +33 -0
  873. package/systems/5e/world/creatures/Giant Centipede.md +27 -0
  874. package/systems/5e/world/creatures/Giant Constrictor Snake.md +30 -0
  875. package/systems/5e/world/creatures/Giant Crab.md +33 -0
  876. package/systems/5e/world/creatures/Giant Crocodile.md +38 -0
  877. package/systems/5e/world/creatures/Giant Eagle.md +40 -0
  878. package/systems/5e/world/creatures/Giant Elk.md +37 -0
  879. package/systems/5e/world/creatures/Giant Fire Beetle.md +33 -0
  880. package/systems/5e/world/creatures/Giant Frog.md +40 -0
  881. package/systems/5e/world/creatures/Giant Goat.md +33 -0
  882. package/systems/5e/world/creatures/Giant Hyena.md +30 -0
  883. package/systems/5e/world/creatures/Giant Lizard.md +29 -0
  884. package/systems/5e/world/creatures/Giant Octopus.md +41 -0
  885. package/systems/5e/world/creatures/Giant Owl.md +38 -0
  886. package/systems/5e/world/creatures/Giant Poisonous Snake.md +27 -0
  887. package/systems/5e/world/creatures/Giant Rat.md +39 -0
  888. package/systems/5e/world/creatures/Giant Scorpion.md +32 -0
  889. package/systems/5e/world/creatures/Giant Sea Horse.md +36 -0
  890. package/systems/5e/world/creatures/Giant Shark.md +38 -0
  891. package/systems/5e/world/creatures/Giant Spider.md +45 -0
  892. package/systems/5e/world/creatures/Giant Toad.md +39 -0
  893. package/systems/5e/world/creatures/Giant Vulture.md +43 -0
  894. package/systems/5e/world/creatures/Giant Wasp.md +25 -0
  895. package/systems/5e/world/creatures/Giant Weasel.md +31 -0
  896. package/systems/5e/world/creatures/Giant Wolf Spider.md +41 -0
  897. package/systems/5e/world/creatures/Gibbering Mouther.md +41 -0
  898. package/systems/5e/world/creatures/Glabrezu.md +48 -0
  899. package/systems/5e/world/creatures/Gladiator.md +49 -0
  900. package/systems/5e/world/creatures/Gnoll.md +38 -0
  901. package/systems/5e/world/creatures/Gnome.md +37 -0
  902. package/systems/5e/world/creatures/Goat.md +32 -0
  903. package/systems/5e/world/creatures/Goblin.md +36 -0
  904. package/systems/5e/world/creatures/Gold Dragon Wyrmling.md +45 -0
  905. package/systems/5e/world/creatures/Gorgon.md +39 -0
  906. package/systems/5e/world/creatures/Gray Ooze.md +42 -0
  907. package/systems/5e/world/creatures/Green Dragon Wyrmling.md +42 -0
  908. package/systems/5e/world/creatures/Green Hag.md +49 -0
  909. package/systems/5e/world/creatures/Grick.md +39 -0
  910. package/systems/5e/world/creatures/Griffon.md +38 -0
  911. package/systems/5e/world/creatures/Grimlock.md +39 -0
  912. package/systems/5e/world/creatures/Guard.md +29 -0
  913. package/systems/5e/world/creatures/Guardian Naga.md +55 -0
  914. package/systems/5e/world/creatures/Gynosphinx.md +71 -0
  915. package/systems/5e/world/creatures/Half-Elf.md +40 -0
  916. package/systems/5e/world/creatures/Half-Orc.md +44 -0
  917. package/systems/5e/world/creatures/Half-Red Dragon Veteran.md +42 -0
  918. package/systems/5e/world/creatures/Halfling.md +39 -0
  919. package/systems/5e/world/creatures/Harpy.md +39 -0
  920. package/systems/5e/world/creatures/Hawk.md +31 -0
  921. package/systems/5e/world/creatures/Hell Hound.md +40 -0
  922. package/systems/5e/world/creatures/Hezrou.md +45 -0
  923. package/systems/5e/world/creatures/High Elf.md +22 -0
  924. package/systems/5e/world/creatures/Hill Dwarf.md +16 -0
  925. package/systems/5e/world/creatures/Hill Giant.md +33 -0
  926. package/systems/5e/world/creatures/Hippogriff.md +37 -0
  927. package/systems/5e/world/creatures/Hobgoblin.md +35 -0
  928. package/systems/5e/world/creatures/Homunculus.md +35 -0
  929. package/systems/5e/world/creatures/Horned Devil.md +49 -0
  930. package/systems/5e/world/creatures/Human.md +29 -0
  931. package/systems/5e/world/creatures/Hunter Shark.md +38 -0
  932. package/systems/5e/world/creatures/Hydra.md +49 -0
  933. package/systems/5e/world/creatures/Hyena.md +30 -0
  934. package/systems/5e/world/creatures/Ice Devil.md +56 -0
  935. package/systems/5e/world/creatures/Ice Mephit.md +45 -0
  936. package/systems/5e/world/creatures/Imp.md +45 -0
  937. package/systems/5e/world/creatures/Invisible Stalker.md +42 -0
  938. package/systems/5e/world/creatures/Iron Golem.md +52 -0
  939. package/systems/5e/world/creatures/Jackal.md +33 -0
  940. package/systems/5e/world/creatures/Killer Whale.md +39 -0
  941. package/systems/5e/world/creatures/Knight.md +48 -0
  942. package/systems/5e/world/creatures/Kobold.md +37 -0
  943. package/systems/5e/world/creatures/Kraken.md +69 -0
  944. package/systems/5e/world/creatures/Lamia.md +46 -0
  945. package/systems/5e/world/creatures/Lemure.md +37 -0
  946. package/systems/5e/world/creatures/Lich.md +82 -0
  947. package/systems/5e/world/creatures/Lightfoot Halfling.md +18 -0
  948. package/systems/5e/world/creatures/Lion.md +42 -0
  949. package/systems/5e/world/creatures/Lizard.md +26 -0
  950. package/systems/5e/world/creatures/Lizardfolk.md +45 -0
  951. package/systems/5e/world/creatures/Mage.md +47 -0
  952. package/systems/5e/world/creatures/Magma Mephit.md +45 -0
  953. package/systems/5e/world/creatures/Magmin.md +37 -0
  954. package/systems/5e/world/creatures/Mammoth.md +35 -0
  955. package/systems/5e/world/creatures/Manticore.md +42 -0
  956. package/systems/5e/world/creatures/Marilith.md +56 -0
  957. package/systems/5e/world/creatures/Mastiff.md +32 -0
  958. package/systems/5e/world/creatures/Medusa.md +46 -0
  959. package/systems/5e/world/creatures/Merfolk.md +32 -0
  960. package/systems/5e/world/creatures/Merrow.md +42 -0
  961. package/systems/5e/world/creatures/Mimic.md +46 -0
  962. package/systems/5e/world/creatures/Minotaur Skeleton.md +38 -0
  963. package/systems/5e/world/creatures/Minotaur.md +42 -0
  964. package/systems/5e/world/creatures/Mule.md +32 -0
  965. package/systems/5e/world/creatures/Mummy Lord.md +82 -0
  966. package/systems/5e/world/creatures/Mummy.md +38 -0
  967. package/systems/5e/world/creatures/Nalfeshnee.md +49 -0
  968. package/systems/5e/world/creatures/Night Hag.md +50 -0
  969. package/systems/5e/world/creatures/Nightmare.md +39 -0
  970. package/systems/5e/world/creatures/Noble.md +36 -0
  971. package/systems/5e/world/creatures/Ochre Jelly.md +42 -0
  972. package/systems/5e/world/creatures/Octopus.md +41 -0
  973. package/systems/5e/world/creatures/Ogre Zombie.md +34 -0
  974. package/systems/5e/world/creatures/Ogre.md +30 -0
  975. package/systems/5e/world/creatures/Oni.md +53 -0
  976. package/systems/5e/world/creatures/Orc.md +36 -0
  977. package/systems/5e/world/creatures/Otyugh.md +42 -0
  978. package/systems/5e/world/creatures/Owl.md +35 -0
  979. package/systems/5e/world/creatures/Owlbear.md +38 -0
  980. package/systems/5e/world/creatures/Panther.md +37 -0
  981. package/systems/5e/world/creatures/Pegasus.md +28 -0
  982. package/systems/5e/world/creatures/Phase Spider.md +41 -0
  983. package/systems/5e/world/creatures/Pit Fiend.md +61 -0
  984. package/systems/5e/world/creatures/Planetar.md +56 -0
  985. package/systems/5e/world/creatures/Plesiosaurus.md +32 -0
  986. package/systems/5e/world/creatures/Poisonous Snake.md +26 -0
  987. package/systems/5e/world/creatures/Polar Bear.md +38 -0
  988. package/systems/5e/world/creatures/Pony.md +24 -0
  989. package/systems/5e/world/creatures/Priest.md +47 -0
  990. package/systems/5e/world/creatures/Pseudodragon.md +44 -0
  991. package/systems/5e/world/creatures/Purple Worm.md +42 -0
  992. package/systems/5e/world/creatures/Quasit.md +44 -0
  993. package/systems/5e/world/creatures/Quipper.md +36 -0
  994. package/systems/5e/world/creatures/Rakshasa.md +45 -0
  995. package/systems/5e/world/creatures/Rat.md +30 -0
  996. package/systems/5e/world/creatures/Raven.md +31 -0
  997. package/systems/5e/world/creatures/Red Dragon Wyrmling.md +36 -0
  998. package/systems/5e/world/creatures/Reef Shark.md +38 -0
  999. package/systems/5e/world/creatures/Remorhaz.md +39 -0
  1000. package/systems/5e/world/creatures/Rhinoceros.md +30 -0
  1001. package/systems/5e/world/creatures/Riding Horse.md +24 -0
  1002. package/systems/5e/world/creatures/Roc.md +39 -0
  1003. package/systems/5e/world/creatures/Rock Gnome.md +27 -0
  1004. package/systems/5e/world/creatures/Roper.md +48 -0
  1005. package/systems/5e/world/creatures/Rug of Smothering.md +38 -0
  1006. package/systems/5e/world/creatures/Rust Monster.md +39 -0
  1007. package/systems/5e/world/creatures/Saber-Toothed Tiger.md +36 -0
  1008. package/systems/5e/world/creatures/Sahuagin.md +49 -0
  1009. package/systems/5e/world/creatures/Salamander.md +44 -0
  1010. package/systems/5e/world/creatures/Satyr.md +38 -0
  1011. package/systems/5e/world/creatures/Scorpion.md +26 -0
  1012. package/systems/5e/world/creatures/Scout.md +40 -0
  1013. package/systems/5e/world/creatures/Sea Hag.md +46 -0
  1014. package/systems/5e/world/creatures/Sea Horse.md +25 -0
  1015. package/systems/5e/world/creatures/Shadow.md +45 -0
  1016. package/systems/5e/world/creatures/Shambling Mound.md +42 -0
  1017. package/systems/5e/world/creatures/Shield Guardian.md +49 -0
  1018. package/systems/5e/world/creatures/Shrieker.md +31 -0
  1019. package/systems/5e/world/creatures/Silver Dragon Wyrmling.md +39 -0
  1020. package/systems/5e/world/creatures/Skeleton.md +33 -0
  1021. package/systems/5e/world/creatures/Solar.md +76 -0
  1022. package/systems/5e/world/creatures/Specter.md +38 -0
  1023. package/systems/5e/world/creatures/Spider.md +38 -0
  1024. package/systems/5e/world/creatures/Spirit Naga.md +50 -0
  1025. package/systems/5e/world/creatures/Sprite.md +37 -0
  1026. package/systems/5e/world/creatures/Spy.md +42 -0
  1027. package/systems/5e/world/creatures/Steam Mephit.md +40 -0
  1028. package/systems/5e/world/creatures/Stirge.md +29 -0
  1029. package/systems/5e/world/creatures/Stone Giant.md +45 -0
  1030. package/systems/5e/world/creatures/Stone Golem.md +46 -0
  1031. package/systems/5e/world/creatures/Storm Giant.md +51 -0
  1032. package/systems/5e/world/creatures/Succubus-Incubus.md +50 -0
  1033. package/systems/5e/world/creatures/Swarm of Bats.md +39 -0
  1034. package/systems/5e/world/creatures/Swarm of Insects.md +52 -0
  1035. package/systems/5e/world/creatures/Swarm of Poisonous Snakes.md +33 -0
  1036. package/systems/5e/world/creatures/Swarm of Quippers.md +39 -0
  1037. package/systems/5e/world/creatures/Swarm of Rats.md +35 -0
  1038. package/systems/5e/world/creatures/Swarm of Ravens.md +33 -0
  1039. package/systems/5e/world/creatures/Tarrasque.md +76 -0
  1040. package/systems/5e/world/creatures/Thug.md +40 -0
  1041. package/systems/5e/world/creatures/Tiefling.md +40 -0
  1042. package/systems/5e/world/creatures/Tiger.md +37 -0
  1043. package/systems/5e/world/creatures/Treant.md +45 -0
  1044. package/systems/5e/world/creatures/Tribal Warrior.md +33 -0
  1045. package/systems/5e/world/creatures/Triceratops.md +33 -0
  1046. package/systems/5e/world/creatures/Troll.md +42 -0
  1047. package/systems/5e/world/creatures/Tyrannosaurus Rex.md +32 -0
  1048. package/systems/5e/world/creatures/Unicorn.md +70 -0
  1049. package/systems/5e/world/creatures/Vampire Spawn.md +55 -0
  1050. package/systems/5e/world/creatures/Vampire.md +91 -0
  1051. package/systems/5e/world/creatures/Veteran.md +38 -0
  1052. package/systems/5e/world/creatures/Violet Fungus.md +34 -0
  1053. package/systems/5e/world/creatures/Vrock.md +49 -0
  1054. package/systems/5e/world/creatures/Vulture.md +34 -0
  1055. package/systems/5e/world/creatures/Warhorse Skeleton.md +29 -0
  1056. package/systems/5e/world/creatures/Warhorse.md +29 -0
  1057. package/systems/5e/world/creatures/Water Elemental.md +47 -0
  1058. package/systems/5e/world/creatures/Weasel.md +30 -0
  1059. package/systems/5e/world/creatures/Werebear.md +45 -0
  1060. package/systems/5e/world/creatures/Wereboar.md +45 -0
  1061. package/systems/5e/world/creatures/Wererat.md +45 -0
  1062. package/systems/5e/world/creatures/Weretiger.md +51 -0
  1063. package/systems/5e/world/creatures/Werewolf.md +45 -0
  1064. package/systems/5e/world/creatures/White Dragon Wyrmling.md +37 -0
  1065. package/systems/5e/world/creatures/Wight.md +47 -0
  1066. package/systems/5e/world/creatures/Will-o'-Wisp.md +47 -0
  1067. package/systems/5e/world/creatures/Winter Wolf.md +44 -0
  1068. package/systems/5e/world/creatures/Wolf.md +34 -0
  1069. package/systems/5e/world/creatures/Worg.md +35 -0
  1070. package/systems/5e/world/creatures/Wraith.md +41 -0
  1071. package/systems/5e/world/creatures/Wyvern.md +37 -0
  1072. package/systems/5e/world/creatures/Xorn.md +48 -0
  1073. package/systems/5e/world/creatures/Young Black Dragon.md +47 -0
  1074. package/systems/5e/world/creatures/Young Blue Dragon.md +42 -0
  1075. package/systems/5e/world/creatures/Young Brass Dragon.md +46 -0
  1076. package/systems/5e/world/creatures/Young Bronze Dragon.md +51 -0
  1077. package/systems/5e/world/creatures/Young Copper Dragon.md +46 -0
  1078. package/systems/5e/world/creatures/Young Gold Dragon.md +51 -0
  1079. package/systems/5e/world/creatures/Young Green Dragon.md +48 -0
  1080. package/systems/5e/world/creatures/Young Red Dragon.md +42 -0
  1081. package/systems/5e/world/creatures/Young Silver Dragon.md +45 -0
  1082. package/systems/5e/world/creatures/Young White Dragon.md +48 -0
  1083. package/systems/5e/world/creatures/Zombie.md +34 -0
  1084. package/systems/5e/world/items/Abacus.md +5 -0
  1085. package/systems/5e/world/items/Acid.md +8 -0
  1086. package/systems/5e/world/items/Adamantine Armor.md +6 -0
  1087. package/systems/5e/world/items/Alchemist's Fire.md +8 -0
  1088. package/systems/5e/world/items/Alchemist's Supplies.md +7 -0
  1089. package/systems/5e/world/items/Ammunition, +1, +2, or +3.md +6 -0
  1090. package/systems/5e/world/items/Amulet of Health.md +7 -0
  1091. package/systems/5e/world/items/Amulet of Proof against Detection and Location.md +7 -0
  1092. package/systems/5e/world/items/Amulet of the Planes.md +7 -0
  1093. package/systems/5e/world/items/Amulet.md +7 -0
  1094. package/systems/5e/world/items/Animated Shield.md +7 -0
  1095. package/systems/5e/world/items/Antitoxin.md +7 -0
  1096. package/systems/5e/world/items/Apparatus of the Crab.md +37 -0
  1097. package/systems/5e/world/items/Armor of Invulnerability.md +7 -0
  1098. package/systems/5e/world/items/Armor of Resistance.md +15 -0
  1099. package/systems/5e/world/items/Armor of Vulnerability.md +9 -0
  1100. package/systems/5e/world/items/Armor, +1, +2, or +3.md +6 -0
  1101. package/systems/5e/world/items/Arrow of Slaying.md +10 -0
  1102. package/systems/5e/world/items/Arrow-Catching Shield.md +7 -0
  1103. package/systems/5e/world/items/Arrows.md +6 -0
  1104. package/systems/5e/world/items/Backpack.md +5 -0
  1105. package/systems/5e/world/items/Bag of Beans.md +25 -0
  1106. package/systems/5e/world/items/Bag of Devouring.md +12 -0
  1107. package/systems/5e/world/items/Bag of Holding.md +10 -0
  1108. package/systems/5e/world/items/Bag of Tricks.md +51 -0
  1109. package/systems/5e/world/items/Bagpipes.md +7 -0
  1110. package/systems/5e/world/items/Ball Bearings.md +8 -0
  1111. package/systems/5e/world/items/Barding.md +7 -0
  1112. package/systems/5e/world/items/Barrel.md +5 -0
  1113. package/systems/5e/world/items/Basic Poison.md +7 -0
  1114. package/systems/5e/world/items/Basket.md +5 -0
  1115. package/systems/5e/world/items/Battleaxe.md +10 -0
  1116. package/systems/5e/world/items/Bead of Force.md +10 -0
  1117. package/systems/5e/world/items/Bedroll.md +5 -0
  1118. package/systems/5e/world/items/Bell.md +4 -0
  1119. package/systems/5e/world/items/Belt of Dwarvenkind.md +18 -0
  1120. package/systems/5e/world/items/Belt of Giant Strength.md +17 -0
  1121. package/systems/5e/world/items/Berserker Axe.md +11 -0
  1122. package/systems/5e/world/items/Bit and Bridle.md +5 -0
  1123. package/systems/5e/world/items/Blanket.md +5 -0
  1124. package/systems/5e/world/items/Block and Tackle.md +7 -0
  1125. package/systems/5e/world/items/Blowgun Needles.md +6 -0
  1126. package/systems/5e/world/items/Blowgun.md +10 -0
  1127. package/systems/5e/world/items/Book.md +7 -0
  1128. package/systems/5e/world/items/Boots of Elvenkind.md +6 -0
  1129. package/systems/5e/world/items/Boots of Levitation.md +7 -0
  1130. package/systems/5e/world/items/Boots of Speed.md +9 -0
  1131. package/systems/5e/world/items/Boots of Striding and Springing.md +7 -0
  1132. package/systems/5e/world/items/Boots of the Winterlands.md +11 -0
  1133. package/systems/5e/world/items/Bowl of Commanding Water Elementals.md +8 -0
  1134. package/systems/5e/world/items/Bracers of Archery.md +7 -0
  1135. package/systems/5e/world/items/Bracers of Defense.md +7 -0
  1136. package/systems/5e/world/items/Brazier of Commanding Fire Elementals.md +8 -0
  1137. package/systems/5e/world/items/Breastplate.md +9 -0
  1138. package/systems/5e/world/items/Brewer's Supplies.md +7 -0
  1139. package/systems/5e/world/items/Brooch of Shielding.md +7 -0
  1140. package/systems/5e/world/items/Broom of Flying.md +8 -0
  1141. package/systems/5e/world/items/Bucket.md +5 -0
  1142. package/systems/5e/world/items/Bullseye Lantern.md +8 -0
  1143. package/systems/5e/world/items/Burglar's Pack.md +6 -0
  1144. package/systems/5e/world/items/Calligrapher's Supplies.md +7 -0
  1145. package/systems/5e/world/items/Caltrops.md +8 -0
  1146. package/systems/5e/world/items/Candle of Invocation.md +25 -0
  1147. package/systems/5e/world/items/Candle.md +6 -0
  1148. package/systems/5e/world/items/Cape of the Mountebank.md +8 -0
  1149. package/systems/5e/world/items/Carpenter's Tools.md +7 -0
  1150. package/systems/5e/world/items/Carpet of Flying.md +17 -0
  1151. package/systems/5e/world/items/Carriage.md +5 -0
  1152. package/systems/5e/world/items/Cart.md +5 -0
  1153. package/systems/5e/world/items/Cartographer's Tools.md +7 -0
  1154. package/systems/5e/world/items/Censer of Controlling Air Elementals.md +8 -0
  1155. package/systems/5e/world/items/Chain Mail.md +11 -0
  1156. package/systems/5e/world/items/Chain Shirt.md +9 -0
  1157. package/systems/5e/world/items/Chain.md +9 -0
  1158. package/systems/5e/world/items/Chalk.md +5 -0
  1159. package/systems/5e/world/items/Chariot.md +5 -0
  1160. package/systems/5e/world/items/Chest.md +5 -0
  1161. package/systems/5e/world/items/Chime of Opening.md +8 -0
  1162. package/systems/5e/world/items/Circlet of Blasting.md +6 -0
  1163. package/systems/5e/world/items/Climber's Kit.md +7 -0
  1164. package/systems/5e/world/items/Cloak of Arachnida.md +13 -0
  1165. package/systems/5e/world/items/Cloak of Displacement.md +7 -0
  1166. package/systems/5e/world/items/Cloak of Elvenkind.md +7 -0
  1167. package/systems/5e/world/items/Cloak of Protection.md +7 -0
  1168. package/systems/5e/world/items/Cloak of the Bat.md +9 -0
  1169. package/systems/5e/world/items/Cloak of the Manta Ray.md +6 -0
  1170. package/systems/5e/world/items/Club.md +10 -0
  1171. package/systems/5e/world/items/Cobbler's Tools.md +7 -0
  1172. package/systems/5e/world/items/Common Clothes.md +6 -0
  1173. package/systems/5e/world/items/Component Pouch.md +7 -0
  1174. package/systems/5e/world/items/Cook's Utensils.md +7 -0
  1175. package/systems/5e/world/items/Costume Clothes.md +6 -0
  1176. package/systems/5e/world/items/Crossbow Bolt Case.md +8 -0
  1177. package/systems/5e/world/items/Crossbow Bolts.md +6 -0
  1178. package/systems/5e/world/items/Crowbar.md +7 -0
  1179. package/systems/5e/world/items/Crystal Ball.md +15 -0
  1180. package/systems/5e/world/items/Crystal.md +7 -0
  1181. package/systems/5e/world/items/Cube of Force.md +32 -0
  1182. package/systems/5e/world/items/Cubic Gate.md +10 -0
  1183. package/systems/5e/world/items/Dagger of Venom.md +8 -0
  1184. package/systems/5e/world/items/Dagger.md +10 -0
  1185. package/systems/5e/world/items/Dancing Sword.md +11 -0
  1186. package/systems/5e/world/items/Dart.md +10 -0
  1187. package/systems/5e/world/items/Decanter of Endless Water.md +12 -0
  1188. package/systems/5e/world/items/Deck of Illusions.md +48 -0
  1189. package/systems/5e/world/items/Deck of Many Things.md +113 -0
  1190. package/systems/5e/world/items/Defender.md +9 -0
  1191. package/systems/5e/world/items/Demon Armor.md +9 -0
  1192. package/systems/5e/world/items/Dice Set.md +6 -0
  1193. package/systems/5e/world/items/Dimensional Shackles.md +8 -0
  1194. package/systems/5e/world/items/Diplomat's Pack.md +6 -0
  1195. package/systems/5e/world/items/Disguise Kit.md +7 -0
  1196. package/systems/5e/world/items/Dragon Scale Mail.md +19 -0
  1197. package/systems/5e/world/items/Dragon Slayer.md +8 -0
  1198. package/systems/5e/world/items/Drum.md +7 -0
  1199. package/systems/5e/world/items/Dulcimer.md +7 -0
  1200. package/systems/5e/world/items/Dungeoneer's Pack.md +6 -0
  1201. package/systems/5e/world/items/Dust of Disappearance.md +6 -0
  1202. package/systems/5e/world/items/Dust of Dryness.md +10 -0
  1203. package/systems/5e/world/items/Dust of Sneezing and Choking.md +8 -0
  1204. package/systems/5e/world/items/Dwarven Plate.md +6 -0
  1205. package/systems/5e/world/items/Dwarven Thrower.md +7 -0
  1206. package/systems/5e/world/items/Efficient Quiver.md +8 -0
  1207. package/systems/5e/world/items/Efreeti Bottle.md +14 -0
  1208. package/systems/5e/world/items/Elemental Gem.md +13 -0
  1209. package/systems/5e/world/items/Elven Chain.md +6 -0
  1210. package/systems/5e/world/items/Emblem.md +6 -0
  1211. package/systems/5e/world/items/Entertainer's Pack.md +6 -0
  1212. package/systems/5e/world/items/Eversmoking Bottle.md +8 -0
  1213. package/systems/5e/world/items/Exotic Saddle.md +7 -0
  1214. package/systems/5e/world/items/Explorer's Pack.md +6 -0
  1215. package/systems/5e/world/items/Eyes of Charming.md +7 -0
  1216. package/systems/5e/world/items/Eyes of Minute Seeing.md +6 -0
  1217. package/systems/5e/world/items/Eyes of the Eagle.md +7 -0
  1218. package/systems/5e/world/items/Feather Token.md +26 -0
  1219. package/systems/5e/world/items/Feed.md +6 -0
  1220. package/systems/5e/world/items/Figurine of Wondrous Power.md +52 -0
  1221. package/systems/5e/world/items/Fine Clothes.md +6 -0
  1222. package/systems/5e/world/items/Fishing Tackle.md +7 -0
  1223. package/systems/5e/world/items/Flail.md +9 -0
  1224. package/systems/5e/world/items/Flame Tongue.md +7 -0
  1225. package/systems/5e/world/items/Flask or Tankard.md +5 -0
  1226. package/systems/5e/world/items/Flute.md +7 -0
  1227. package/systems/5e/world/items/Folding Boat.md +14 -0
  1228. package/systems/5e/world/items/Forgery Kit.md +7 -0
  1229. package/systems/5e/world/items/Frost Brand.md +11 -0
  1230. package/systems/5e/world/items/Galley.md +5 -0
  1231. package/systems/5e/world/items/Gauntlets of Ogre Power.md +7 -0
  1232. package/systems/5e/world/items/Gem of Brightness.md +12 -0
  1233. package/systems/5e/world/items/Gem of Seeing.md +9 -0
  1234. package/systems/5e/world/items/Giant Slayer.md +8 -0
  1235. package/systems/5e/world/items/Glaive.md +10 -0
  1236. package/systems/5e/world/items/Glamoured Studded Leather.md +6 -0
  1237. package/systems/5e/world/items/Glass Bottle.md +6 -0
  1238. package/systems/5e/world/items/Glassblower's Tools.md +7 -0
  1239. package/systems/5e/world/items/Gloves of Missile Snaring.md +7 -0
  1240. package/systems/5e/world/items/Gloves of Swimming and Climbing.md +7 -0
  1241. package/systems/5e/world/items/Goggles of Night.md +6 -0
  1242. package/systems/5e/world/items/Grappling Hook.md +5 -0
  1243. package/systems/5e/world/items/Greataxe.md +10 -0
  1244. package/systems/5e/world/items/Greatclub.md +10 -0
  1245. package/systems/5e/world/items/Greatsword.md +10 -0
  1246. package/systems/5e/world/items/Halberd.md +10 -0
  1247. package/systems/5e/world/items/Half Plate Armor.md +11 -0
  1248. package/systems/5e/world/items/Hammer of Thunderbolts.md +10 -0
  1249. package/systems/5e/world/items/Hammer.md +5 -0
  1250. package/systems/5e/world/items/Hand Crossbow.md +11 -0
  1251. package/systems/5e/world/items/Handaxe.md +10 -0
  1252. package/systems/5e/world/items/Handy Haversack.md +12 -0
  1253. package/systems/5e/world/items/Hat of Disguise.md +7 -0
  1254. package/systems/5e/world/items/Headband of Intellect.md +7 -0
  1255. package/systems/5e/world/items/Healer's Kit.md +8 -0
  1256. package/systems/5e/world/items/Heavy Crossbow.md +11 -0
  1257. package/systems/5e/world/items/Helm of Brilliance.md +16 -0
  1258. package/systems/5e/world/items/Helm of Comprehending Languages.md +6 -0
  1259. package/systems/5e/world/items/Helm of Telepathy.md +9 -0
  1260. package/systems/5e/world/items/Helm of Teleportation.md +7 -0
  1261. package/systems/5e/world/items/Hempen Rope.md +9 -0
  1262. package/systems/5e/world/items/Herbalism Kit.md +7 -0
  1263. package/systems/5e/world/items/Hide Armor.md +10 -0
  1264. package/systems/5e/world/items/Holy Avenger.md +9 -0
  1265. package/systems/5e/world/items/Holy Water.md +10 -0
  1266. package/systems/5e/world/items/Hooded Lantern.md +8 -0
  1267. package/systems/5e/world/items/Horn of Blasting.md +8 -0
  1268. package/systems/5e/world/items/Horn of Valhalla.md +17 -0
  1269. package/systems/5e/world/items/Horn.md +7 -0
  1270. package/systems/5e/world/items/Horseshoes of Speed.md +6 -0
  1271. package/systems/5e/world/items/Horseshoes of a Zephyr.md +6 -0
  1272. package/systems/5e/world/items/Hourglass.md +5 -0
  1273. package/systems/5e/world/items/Hunting Trap.md +7 -0
  1274. package/systems/5e/world/items/Immovable Rod.md +6 -0
  1275. package/systems/5e/world/items/Ink Pen.md +4 -0
  1276. package/systems/5e/world/items/Ink.md +5 -0
  1277. package/systems/5e/world/items/Instant Fortress.md +12 -0
  1278. package/systems/5e/world/items/Ioun Stone.md +47 -0
  1279. package/systems/5e/world/items/Iron Bands of Binding.md +12 -0
  1280. package/systems/5e/world/items/Iron Flask.md +33 -0
  1281. package/systems/5e/world/items/Iron Pot.md +6 -0
  1282. package/systems/5e/world/items/Iron Spikes.md +6 -0
  1283. package/systems/5e/world/items/Javelin of Lightning.md +8 -0
  1284. package/systems/5e/world/items/Javelin.md +10 -0
  1285. package/systems/5e/world/items/Jeweler's Tools.md +7 -0
  1286. package/systems/5e/world/items/Jug or Pitcher.md +5 -0
  1287. package/systems/5e/world/items/Keelboat.md +7 -0
  1288. package/systems/5e/world/items/Ladder.md +7 -0
  1289. package/systems/5e/world/items/Lamp.md +7 -0
  1290. package/systems/5e/world/items/Lance.md +12 -0
  1291. package/systems/5e/world/items/Lantern of Revealing.md +6 -0
  1292. package/systems/5e/world/items/Leather Armor.md +10 -0
  1293. package/systems/5e/world/items/Leatherworker's Tools.md +7 -0
  1294. package/systems/5e/world/items/Light Crossbow.md +11 -0
  1295. package/systems/5e/world/items/Light Hammer.md +10 -0
  1296. package/systems/5e/world/items/Lock.md +7 -0
  1297. package/systems/5e/world/items/Longbow.md +10 -0
  1298. package/systems/5e/world/items/Longship.md +5 -0
  1299. package/systems/5e/world/items/Longsword.md +10 -0
  1300. package/systems/5e/world/items/Luck Blade.md +11 -0
  1301. package/systems/5e/world/items/Lute.md +7 -0
  1302. package/systems/5e/world/items/Lyre.md +7 -0
  1303. package/systems/5e/world/items/Mace of Disruption.md +9 -0
  1304. package/systems/5e/world/items/Mace of Smiting.md +8 -0
  1305. package/systems/5e/world/items/Mace of Terror.md +9 -0
  1306. package/systems/5e/world/items/Mace.md +9 -0
  1307. package/systems/5e/world/items/Magnifying Glass.md +6 -0
  1308. package/systems/5e/world/items/Manacles.md +7 -0
  1309. package/systems/5e/world/items/Mantle of Spell Resistance.md +7 -0
  1310. package/systems/5e/world/items/Manual of Bodily Health.md +6 -0
  1311. package/systems/5e/world/items/Manual of Gainful Exercise.md +6 -0
  1312. package/systems/5e/world/items/Manual of Golems.md +17 -0
  1313. package/systems/5e/world/items/Manual of Quickness of Action.md +6 -0
  1314. package/systems/5e/world/items/Map or Scroll Case.md +8 -0
  1315. package/systems/5e/world/items/Marvelous Pigments.md +14 -0
  1316. package/systems/5e/world/items/Mason's Tools.md +7 -0
  1317. package/systems/5e/world/items/Maul.md +10 -0
  1318. package/systems/5e/world/items/Medallion of Thoughts.md +7 -0
  1319. package/systems/5e/world/items/Merchant's Scale.md +8 -0
  1320. package/systems/5e/world/items/Mess Kit.md +7 -0
  1321. package/systems/5e/world/items/Military Saddle.md +7 -0
  1322. package/systems/5e/world/items/Miner's Pick.md +6 -0
  1323. package/systems/5e/world/items/Mirror of Life Trapping.md +18 -0
  1324. package/systems/5e/world/items/Mithral Armor.md +6 -0
  1325. package/systems/5e/world/items/Morningstar.md +9 -0
  1326. package/systems/5e/world/items/Navigator's Tools.md +7 -0
  1327. package/systems/5e/world/items/Necklace of Adaptation.md +7 -0
  1328. package/systems/5e/world/items/Necklace of Fireballs.md +8 -0
  1329. package/systems/5e/world/items/Necklace of Prayer Beads.md +18 -0
  1330. package/systems/5e/world/items/Net.md +12 -0
  1331. package/systems/5e/world/items/Nine Lives Stealer.md +9 -0
  1332. package/systems/5e/world/items/Oathbow.md +11 -0
  1333. package/systems/5e/world/items/Oil of Etherealness.md +6 -0
  1334. package/systems/5e/world/items/Oil of Sharpness.md +6 -0
  1335. package/systems/5e/world/items/Oil of Slipperiness.md +8 -0
  1336. package/systems/5e/world/items/Oil.md +8 -0
  1337. package/systems/5e/world/items/Orb of Dragonkind.md +31 -0
  1338. package/systems/5e/world/items/Orb.md +7 -0
  1339. package/systems/5e/world/items/Pack Saddle.md +7 -0
  1340. package/systems/5e/world/items/Padded Armor.md +11 -0
  1341. package/systems/5e/world/items/Painter's Supplies.md +7 -0
  1342. package/systems/5e/world/items/Pan Flute.md +7 -0
  1343. package/systems/5e/world/items/Paper.md +5 -0
  1344. package/systems/5e/world/items/Parchment.md +5 -0
  1345. package/systems/5e/world/items/Pearl of Power.md +7 -0
  1346. package/systems/5e/world/items/Perfume.md +5 -0
  1347. package/systems/5e/world/items/Periapt of Health.md +6 -0
  1348. package/systems/5e/world/items/Periapt of Proof against Poison.md +6 -0
  1349. package/systems/5e/world/items/Periapt of Wound Closure.md +7 -0
  1350. package/systems/5e/world/items/Philter of Love.md +6 -0
  1351. package/systems/5e/world/items/Pike.md +10 -0
  1352. package/systems/5e/world/items/Pipes of Haunting.md +6 -0
  1353. package/systems/5e/world/items/Pipes of the Sewers.md +11 -0
  1354. package/systems/5e/world/items/Piton.md +5 -0
  1355. package/systems/5e/world/items/Plate Armor of Etherealness.md +7 -0
  1356. package/systems/5e/world/items/Plate Armor.md +12 -0
  1357. package/systems/5e/world/items/Playing Card Set.md +6 -0
  1358. package/systems/5e/world/items/Poisoner's Kit.md +7 -0
  1359. package/systems/5e/world/items/Pole.md +7 -0
  1360. package/systems/5e/world/items/Portable Hole.md +14 -0
  1361. package/systems/5e/world/items/Portable Ram.md +8 -0
  1362. package/systems/5e/world/items/Potion of Animal Friendship.md +6 -0
  1363. package/systems/5e/world/items/Potion of Clairvoyance.md +6 -0
  1364. package/systems/5e/world/items/Potion of Climbing.md +6 -0
  1365. package/systems/5e/world/items/Potion of Diminution.md +6 -0
  1366. package/systems/5e/world/items/Potion of Flying.md +6 -0
  1367. package/systems/5e/world/items/Potion of Gaseous Form.md +6 -0
  1368. package/systems/5e/world/items/Potion of Giant Strength.md +16 -0
  1369. package/systems/5e/world/items/Potion of Growth.md +6 -0
  1370. package/systems/5e/world/items/Potion of Healing.md +19 -0
  1371. package/systems/5e/world/items/Potion of Heroism.md +6 -0
  1372. package/systems/5e/world/items/Potion of Invisibility.md +6 -0
  1373. package/systems/5e/world/items/Potion of Mind Reading.md +6 -0
  1374. package/systems/5e/world/items/Potion of Poison.md +8 -0
  1375. package/systems/5e/world/items/Potion of Resistance.md +14 -0
  1376. package/systems/5e/world/items/Potion of Speed.md +6 -0
  1377. package/systems/5e/world/items/Potion of Water Breathing.md +6 -0
  1378. package/systems/5e/world/items/Potter's Tools.md +7 -0
  1379. package/systems/5e/world/items/Pouch.md +7 -0
  1380. package/systems/5e/world/items/Priest's Pack.md +6 -0
  1381. package/systems/5e/world/items/Quarterstaff.md +10 -0
  1382. package/systems/5e/world/items/Quiver.md +7 -0
  1383. package/systems/5e/world/items/Rapier.md +10 -0
  1384. package/systems/5e/world/items/Rations.md +8 -0
  1385. package/systems/5e/world/items/Reliquary.md +7 -0
  1386. package/systems/5e/world/items/Restorative Ointment.md +8 -0
  1387. package/systems/5e/world/items/Riding Saddle.md +7 -0
  1388. package/systems/5e/world/items/Ring Mail.md +10 -0
  1389. package/systems/5e/world/items/Ring of Animal Influence.md +10 -0
  1390. package/systems/5e/world/items/Ring of Djinni Summoning.md +11 -0
  1391. package/systems/5e/world/items/Ring of Elemental Command.md +41 -0
  1392. package/systems/5e/world/items/Ring of Evasion.md +7 -0
  1393. package/systems/5e/world/items/Ring of Feather Falling.md +7 -0
  1394. package/systems/5e/world/items/Ring of Free Action.md +7 -0
  1395. package/systems/5e/world/items/Ring of Invisibility.md +7 -0
  1396. package/systems/5e/world/items/Ring of Jumping.md +7 -0
  1397. package/systems/5e/world/items/Ring of Mind Shielding.md +11 -0
  1398. package/systems/5e/world/items/Ring of Protection.md +7 -0
  1399. package/systems/5e/world/items/Ring of Regeneration.md +7 -0
  1400. package/systems/5e/world/items/Ring of Resistance.md +20 -0
  1401. package/systems/5e/world/items/Ring of Shooting Stars.md +26 -0
  1402. package/systems/5e/world/items/Ring of Spell Storing.md +11 -0
  1403. package/systems/5e/world/items/Ring of Spell Turning.md +7 -0
  1404. package/systems/5e/world/items/Ring of Swimming.md +6 -0
  1405. package/systems/5e/world/items/Ring of Telekinesis.md +7 -0
  1406. package/systems/5e/world/items/Ring of Three Wishes.md +6 -0
  1407. package/systems/5e/world/items/Ring of Warmth.md +7 -0
  1408. package/systems/5e/world/items/Ring of Water Walking.md +6 -0
  1409. package/systems/5e/world/items/Ring of X-ray Vision.md +9 -0
  1410. package/systems/5e/world/items/Ring of the Ram.md +9 -0
  1411. package/systems/5e/world/items/Robe of Eyes.md +15 -0
  1412. package/systems/5e/world/items/Robe of Scintillating Colors.md +7 -0
  1413. package/systems/5e/world/items/Robe of Stars.md +11 -0
  1414. package/systems/5e/world/items/Robe of Useful Items.md +33 -0
  1415. package/systems/5e/world/items/Robe of the Archmagi.md +13 -0
  1416. package/systems/5e/world/items/Robes.md +5 -0
  1417. package/systems/5e/world/items/Rod of Absorption.md +13 -0
  1418. package/systems/5e/world/items/Rod of Alertness.md +15 -0
  1419. package/systems/5e/world/items/Rod of Lordly Might.md +27 -0
  1420. package/systems/5e/world/items/Rod of Rulership.md +7 -0
  1421. package/systems/5e/world/items/Rod of Security.md +10 -0
  1422. package/systems/5e/world/items/Rod.md +7 -0
  1423. package/systems/5e/world/items/Rope of Climbing.md +10 -0
  1424. package/systems/5e/world/items/Rope of Entanglement.md +10 -0
  1425. package/systems/5e/world/items/Rowboat.md +7 -0
  1426. package/systems/5e/world/items/Sack.md +5 -0
  1427. package/systems/5e/world/items/Saddlebags.md +5 -0
  1428. package/systems/5e/world/items/Sailing Ship.md +5 -0
  1429. package/systems/5e/world/items/Scale Mail.md +10 -0
  1430. package/systems/5e/world/items/Scarab of Protection.md +10 -0
  1431. package/systems/5e/world/items/Scholar's Pack.md +6 -0
  1432. package/systems/5e/world/items/Scimitar of Speed.md +7 -0
  1433. package/systems/5e/world/items/Scimitar.md +10 -0
  1434. package/systems/5e/world/items/Sealing Wax.md +4 -0
  1435. package/systems/5e/world/items/Shawm.md +7 -0
  1436. package/systems/5e/world/items/Shield of Missile Attraction.md +9 -0
  1437. package/systems/5e/world/items/Shield, +1, +2, or +3.md +6 -0
  1438. package/systems/5e/world/items/Shield.md +9 -0
  1439. package/systems/5e/world/items/Shortbow.md +10 -0
  1440. package/systems/5e/world/items/Shortsword.md +10 -0
  1441. package/systems/5e/world/items/Shovel.md +5 -0
  1442. package/systems/5e/world/items/Sickle.md +10 -0
  1443. package/systems/5e/world/items/Signal Whistle.md +4 -0
  1444. package/systems/5e/world/items/Signet Ring.md +4 -0
  1445. package/systems/5e/world/items/Silk Rope.md +9 -0
  1446. package/systems/5e/world/items/Sled.md +5 -0
  1447. package/systems/5e/world/items/Sledgehammer.md +6 -0
  1448. package/systems/5e/world/items/Sling Bullets.md +6 -0
  1449. package/systems/5e/world/items/Sling.md +9 -0
  1450. package/systems/5e/world/items/Slippers of Spider Climbing.md +7 -0
  1451. package/systems/5e/world/items/Smith's Tools.md +7 -0
  1452. package/systems/5e/world/items/Soap.md +4 -0
  1453. package/systems/5e/world/items/Sovereign Glue.md +8 -0
  1454. package/systems/5e/world/items/Spear.md +10 -0
  1455. package/systems/5e/world/items/Spell Scroll.md +27 -0
  1456. package/systems/5e/world/items/Spellbook.md +7 -0
  1457. package/systems/5e/world/items/Spellguard Shield.md +7 -0
  1458. package/systems/5e/world/items/Sphere of Annihilation.md +20 -0
  1459. package/systems/5e/world/items/Splint Armor.md +12 -0
  1460. package/systems/5e/world/items/Sprig of Mistletoe.md +6 -0
  1461. package/systems/5e/world/items/Spyglass.md +7 -0
  1462. package/systems/5e/world/items/Staff of Charming.md +11 -0
  1463. package/systems/5e/world/items/Staff of Fire.md +11 -0
  1464. package/systems/5e/world/items/Staff of Frost.md +11 -0
  1465. package/systems/5e/world/items/Staff of Healing.md +9 -0
  1466. package/systems/5e/world/items/Staff of Power.md +23 -0
  1467. package/systems/5e/world/items/Staff of Striking.md +9 -0
  1468. package/systems/5e/world/items/Staff of Swarming Insects.md +11 -0
  1469. package/systems/5e/world/items/Staff of Thunder and Lightning.md +17 -0
  1470. package/systems/5e/world/items/Staff of Withering.md +9 -0
  1471. package/systems/5e/world/items/Staff of the Magi.md +25 -0
  1472. package/systems/5e/world/items/Staff of the Python.md +11 -0
  1473. package/systems/5e/world/items/Staff of the Woodlands.md +15 -0
  1474. package/systems/5e/world/items/Staff.md +7 -0
  1475. package/systems/5e/world/items/Steel Mirror.md +6 -0
  1476. package/systems/5e/world/items/Stone of Controlling Earth Elementals.md +6 -0
  1477. package/systems/5e/world/items/Stone of Good Luck.md +8 -0
  1478. package/systems/5e/world/items/Studded Leather Armor.md +10 -0
  1479. package/systems/5e/world/items/Sun Blade.md +11 -0
  1480. package/systems/5e/world/items/Sword of Life Stealing.md +7 -0
  1481. package/systems/5e/world/items/Sword of Sharpness.md +11 -0
  1482. package/systems/5e/world/items/Sword of Wounding.md +9 -0
  1483. package/systems/5e/world/items/Talisman of Pure Good.md +11 -0
  1484. package/systems/5e/world/items/Talisman of Ultimate Evil.md +11 -0
  1485. package/systems/5e/world/items/Talisman of the Sphere.md +7 -0
  1486. package/systems/5e/world/items/Thieves' Tools.md +7 -0
  1487. package/systems/5e/world/items/Tinderbox.md +7 -0
  1488. package/systems/5e/world/items/Tinker's Tools.md +7 -0
  1489. package/systems/5e/world/items/Tome of Clear Thought.md +6 -0
  1490. package/systems/5e/world/items/Tome of Leadership and Influence.md +6 -0
  1491. package/systems/5e/world/items/Tome of Understanding.md +6 -0
  1492. package/systems/5e/world/items/Torch.md +7 -0
  1493. package/systems/5e/world/items/Totem.md +6 -0
  1494. package/systems/5e/world/items/Traveler's Clothes.md +6 -0
  1495. package/systems/5e/world/items/Trident of Fish Command.md +7 -0
  1496. package/systems/5e/world/items/Trident.md +10 -0
  1497. package/systems/5e/world/items/Two-Person Tent.md +8 -0
  1498. package/systems/5e/world/items/Unarmed Strike.md +7 -0
  1499. package/systems/5e/world/items/Universal Solvent.md +6 -0
  1500. package/systems/5e/world/items/Vial.md +4 -0
  1501. package/systems/5e/world/items/Vicious Weapon.md +6 -0
  1502. package/systems/5e/world/items/Viol.md +7 -0
  1503. package/systems/5e/world/items/Vorpal Sword.md +9 -0
  1504. package/systems/5e/world/items/Wagon.md +5 -0
  1505. package/systems/5e/world/items/Wand of Binding.md +11 -0
  1506. package/systems/5e/world/items/Wand of Enemy Detection.md +9 -0
  1507. package/systems/5e/world/items/Wand of Fear.md +11 -0
  1508. package/systems/5e/world/items/Wand of Fireballs.md +9 -0
  1509. package/systems/5e/world/items/Wand of Lightning Bolts.md +9 -0
  1510. package/systems/5e/world/items/Wand of Magic Detection.md +6 -0
  1511. package/systems/5e/world/items/Wand of Magic Missiles.md +8 -0
  1512. package/systems/5e/world/items/Wand of Paralysis.md +9 -0
  1513. package/systems/5e/world/items/Wand of Polymorph.md +9 -0
  1514. package/systems/5e/world/items/Wand of Secrets.md +6 -0
  1515. package/systems/5e/world/items/Wand of Web.md +9 -0
  1516. package/systems/5e/world/items/Wand of Wonder.md +38 -0
  1517. package/systems/5e/world/items/Wand of the War Mage, +1, +2, or +3.md +7 -0
  1518. package/systems/5e/world/items/Wand.md +7 -0
  1519. package/systems/5e/world/items/War Pick.md +9 -0
  1520. package/systems/5e/world/items/Warhammer.md +10 -0
  1521. package/systems/5e/world/items/Warship.md +5 -0
  1522. package/systems/5e/world/items/Waterskin.md +5 -0
  1523. package/systems/5e/world/items/Weapon, +1, +2, or +3.md +6 -0
  1524. package/systems/5e/world/items/Weaver's Tools.md +7 -0
  1525. package/systems/5e/world/items/Well of Many Worlds.md +8 -0
  1526. package/systems/5e/world/items/Whetstone.md +5 -0
  1527. package/systems/5e/world/items/Whip.md +10 -0
  1528. package/systems/5e/world/items/Wind Fan.md +6 -0
  1529. package/systems/5e/world/items/Winged Boots.md +9 -0
  1530. package/systems/5e/world/items/Wings of Flying.md +7 -0
  1531. package/systems/5e/world/items/Woodcarver's Tools.md +7 -0
  1532. package/systems/5e/world/items/Wooden Staff.md +7 -0
  1533. package/systems/5e/world/items/Yew Wand.md +7 -0
  1534. package/systems/5e/world/topics/Acid Arrow.md +14 -0
  1535. package/systems/5e/world/topics/Acid Splash.md +14 -0
  1536. package/systems/5e/world/topics/Acolyte (background).md +103 -0
  1537. package/systems/5e/world/topics/Aid.md +14 -0
  1538. package/systems/5e/world/topics/Alarm.md +17 -0
  1539. package/systems/5e/world/topics/Alter Self.md +19 -0
  1540. package/systems/5e/world/topics/Animal Friendship.md +14 -0
  1541. package/systems/5e/world/topics/Animal Messenger.md +17 -0
  1542. package/systems/5e/world/topics/Animal Shapes.md +17 -0
  1543. package/systems/5e/world/topics/Animate Dead.md +18 -0
  1544. package/systems/5e/world/topics/Animate Objects.md +31 -0
  1545. package/systems/5e/world/topics/Antilife Shell.md +17 -0
  1546. package/systems/5e/world/topics/Antimagic Field.md +31 -0
  1547. package/systems/5e/world/topics/Antipathy-Sympathy.md +23 -0
  1548. package/systems/5e/world/topics/Arcane Eye.md +17 -0
  1549. package/systems/5e/world/topics/Arcane Hand.md +27 -0
  1550. package/systems/5e/world/topics/Arcane Lock.md +14 -0
  1551. package/systems/5e/world/topics/Arcane Sword.md +15 -0
  1552. package/systems/5e/world/topics/Arcanist's Magic Aura.md +18 -0
  1553. package/systems/5e/world/topics/Astral Projection.md +22 -0
  1554. package/systems/5e/world/topics/Augury.md +22 -0
  1555. package/systems/5e/world/topics/Awaken.md +14 -0
  1556. package/systems/5e/world/topics/Bane.md +15 -0
  1557. package/systems/5e/world/topics/Banishment.md +19 -0
  1558. package/systems/5e/world/topics/Barbarian.md +123 -0
  1559. package/systems/5e/world/topics/Bard Spells.md +147 -0
  1560. package/systems/5e/world/topics/Bard.md +139 -0
  1561. package/systems/5e/world/topics/Barkskin.md +13 -0
  1562. package/systems/5e/world/topics/Beacon of Hope.md +13 -0
  1563. package/systems/5e/world/topics/Bestow Curse.md +22 -0
  1564. package/systems/5e/world/topics/Black Tentacles.md +17 -0
  1565. package/systems/5e/world/topics/Blade Barrier.md +15 -0
  1566. package/systems/5e/world/topics/Bless.md +15 -0
  1567. package/systems/5e/world/topics/Blight.md +18 -0
  1568. package/systems/5e/world/topics/Blindness-Deafness.md +15 -0
  1569. package/systems/5e/world/topics/Blink.md +14 -0
  1570. package/systems/5e/world/topics/Blur.md +13 -0
  1571. package/systems/5e/world/topics/Branding Smite.md +15 -0
  1572. package/systems/5e/world/topics/Burning Hands.md +16 -0
  1573. package/systems/5e/world/topics/Call Lightning.md +19 -0
  1574. package/systems/5e/world/topics/Calm Emotions.md +17 -0
  1575. package/systems/5e/world/topics/Chain Lightning.md +16 -0
  1576. package/systems/5e/world/topics/Champion.md +24 -0
  1577. package/systems/5e/world/topics/Charm Person.md +14 -0
  1578. package/systems/5e/world/topics/Chill Touch.md +16 -0
  1579. package/systems/5e/world/topics/Circle of Death.md +14 -0
  1580. package/systems/5e/world/topics/Circle of the Land.md +96 -0
  1581. package/systems/5e/world/topics/Clairvoyance.md +17 -0
  1582. package/systems/5e/world/topics/Cleric Spells.md +140 -0
  1583. package/systems/5e/world/topics/Cleric.md +141 -0
  1584. package/systems/5e/world/topics/Clone.md +14 -0
  1585. package/systems/5e/world/topics/Cloudkill.md +19 -0
  1586. package/systems/5e/world/topics/College of Lore.md +23 -0
  1587. package/systems/5e/world/topics/Color Spray.md +16 -0
  1588. package/systems/5e/world/topics/Command.md +26 -0
  1589. package/systems/5e/world/topics/Commune with Nature.md +23 -0
  1590. package/systems/5e/world/topics/Commune.md +17 -0
  1591. package/systems/5e/world/topics/Comprehend Languages.md +15 -0
  1592. package/systems/5e/world/topics/Compulsion.md +15 -0
  1593. package/systems/5e/world/topics/Cone of Cold.md +16 -0
  1594. package/systems/5e/world/topics/Confusion.md +26 -0
  1595. package/systems/5e/world/topics/Conjure Animals.md +26 -0
  1596. package/systems/5e/world/topics/Conjure Celestial.md +19 -0
  1597. package/systems/5e/world/topics/Conjure Elemental.md +21 -0
  1598. package/systems/5e/world/topics/Conjure Fey.md +21 -0
  1599. package/systems/5e/world/topics/Conjure Minor Elementals.md +26 -0
  1600. package/systems/5e/world/topics/Conjure Woodland Beings.md +26 -0
  1601. package/systems/5e/world/topics/Contact Other Plane.md +15 -0
  1602. package/systems/5e/world/topics/Contagion.md +28 -0
  1603. package/systems/5e/world/topics/Contingency.md +16 -0
  1604. package/systems/5e/world/topics/Continual Flame.md +12 -0
  1605. package/systems/5e/world/topics/Control Water.md +29 -0
  1606. package/systems/5e/world/topics/Control Weather.md +48 -0
  1607. package/systems/5e/world/topics/Counterspell.md +14 -0
  1608. package/systems/5e/world/topics/Create Food and Water.md +12 -0
  1609. package/systems/5e/world/topics/Create Undead.md +18 -0
  1610. package/systems/5e/world/topics/Create or Destroy Water.md +18 -0
  1611. package/systems/5e/world/topics/Creation.md +26 -0
  1612. package/systems/5e/world/topics/Cure Wounds.md +14 -0
  1613. package/systems/5e/world/topics/Dancing Lights.md +15 -0
  1614. package/systems/5e/world/topics/Darkness.md +17 -0
  1615. package/systems/5e/world/topics/Darkvision.md +12 -0
  1616. package/systems/5e/world/topics/Daylight.md +16 -0
  1617. package/systems/5e/world/topics/Death Ward.md +16 -0
  1618. package/systems/5e/world/topics/Delayed Blast Fireball.md +21 -0
  1619. package/systems/5e/world/topics/Demiplane.md +14 -0
  1620. package/systems/5e/world/topics/Detect Evil and Good.md +15 -0
  1621. package/systems/5e/world/topics/Detect Magic.md +16 -0
  1622. package/systems/5e/world/topics/Detect Poison and Disease.md +16 -0
  1623. package/systems/5e/world/topics/Detect Thoughts.md +21 -0
  1624. package/systems/5e/world/topics/Dimension Door.md +16 -0
  1625. package/systems/5e/world/topics/Disguise Self.md +16 -0
  1626. package/systems/5e/world/topics/Disintegrate.md +20 -0
  1627. package/systems/5e/world/topics/Dispel Evil and Good.md +19 -0
  1628. package/systems/5e/world/topics/Dispel Magic.md +14 -0
  1629. package/systems/5e/world/topics/Divination.md +17 -0
  1630. package/systems/5e/world/topics/Divine Favor.md +13 -0
  1631. package/systems/5e/world/topics/Divine Word.md +19 -0
  1632. package/systems/5e/world/topics/Dominate Beast.md +21 -0
  1633. package/systems/5e/world/topics/Dominate Monster.md +21 -0
  1634. package/systems/5e/world/topics/Dominate Person.md +21 -0
  1635. package/systems/5e/world/topics/Draconic Bloodline.md +43 -0
  1636. package/systems/5e/world/topics/Dream.md +18 -0
  1637. package/systems/5e/world/topics/Druid Spells.md +140 -0
  1638. package/systems/5e/world/topics/Druid.md +146 -0
  1639. package/systems/5e/world/topics/Druidcraft.md +17 -0
  1640. package/systems/5e/world/topics/Earthquake.md +25 -0
  1641. package/systems/5e/world/topics/Eldritch Blast.md +14 -0
  1642. package/systems/5e/world/topics/Enhance Ability.md +27 -0
  1643. package/systems/5e/world/topics/Enlarge-Reduce.md +20 -0
  1644. package/systems/5e/world/topics/Entangle.md +17 -0
  1645. package/systems/5e/world/topics/Enthrall.md +12 -0
  1646. package/systems/5e/world/topics/Etherealness.md +22 -0
  1647. package/systems/5e/world/topics/Expeditious Retreat.md +13 -0
  1648. package/systems/5e/world/topics/Eyebite.md +19 -0
  1649. package/systems/5e/world/topics/Fabricate.md +16 -0
  1650. package/systems/5e/world/topics/Faerie Fire.md +15 -0
  1651. package/systems/5e/world/topics/Faithful Hound.md +16 -0
  1652. package/systems/5e/world/topics/False Life.md +14 -0
  1653. package/systems/5e/world/topics/Fear.md +15 -0
  1654. package/systems/5e/world/topics/Feather Fall.md +12 -0
  1655. package/systems/5e/world/topics/Feeblemind.md +18 -0
  1656. package/systems/5e/world/topics/Fighter.md +109 -0
  1657. package/systems/5e/world/topics/Find Familiar.md +25 -0
  1658. package/systems/5e/world/topics/Find Steed.md +20 -0
  1659. package/systems/5e/world/topics/Find Traps.md +14 -0
  1660. package/systems/5e/world/topics/Find the Path.md +15 -0
  1661. package/systems/5e/world/topics/Finger of Death.md +14 -0
  1662. package/systems/5e/world/topics/Fire Bolt.md +14 -0
  1663. package/systems/5e/world/topics/Fire Shield.md +16 -0
  1664. package/systems/5e/world/topics/Fire Storm.md +14 -0
  1665. package/systems/5e/world/topics/Fireball.md +16 -0
  1666. package/systems/5e/world/topics/Flame Blade.md +19 -0
  1667. package/systems/5e/world/topics/Flame Strike.md +14 -0
  1668. package/systems/5e/world/topics/Flaming Sphere.md +19 -0
  1669. package/systems/5e/world/topics/Flesh to Stone.md +19 -0
  1670. package/systems/5e/world/topics/Floating Disk.md +17 -0
  1671. package/systems/5e/world/topics/Fly.md +15 -0
  1672. package/systems/5e/world/topics/Fog Cloud.md +15 -0
  1673. package/systems/5e/world/topics/Forbiddance.md +19 -0
  1674. package/systems/5e/world/topics/Forcecage.md +22 -0
  1675. package/systems/5e/world/topics/Foresight.md +14 -0
  1676. package/systems/5e/world/topics/Freedom of Movement.md +14 -0
  1677. package/systems/5e/world/topics/Freezing Sphere.md +18 -0
  1678. package/systems/5e/world/topics/Gaseous Form.md +17 -0
  1679. package/systems/5e/world/topics/Gate.md +19 -0
  1680. package/systems/5e/world/topics/Geas.md +18 -0
  1681. package/systems/5e/world/topics/Gentle Repose.md +15 -0
  1682. package/systems/5e/world/topics/Giant Insect.md +19 -0
  1683. package/systems/5e/world/topics/Glibness.md +12 -0
  1684. package/systems/5e/world/topics/Globe of Invulnerability.md +17 -0
  1685. package/systems/5e/world/topics/Glyph of Warding.md +26 -0
  1686. package/systems/5e/world/topics/Goodberry.md +14 -0
  1687. package/systems/5e/world/topics/Grappler.md +17 -0
  1688. package/systems/5e/world/topics/Grease.md +14 -0
  1689. package/systems/5e/world/topics/Greater Invisibility.md +13 -0
  1690. package/systems/5e/world/topics/Greater Restoration.md +17 -0
  1691. package/systems/5e/world/topics/Guardian of Faith.md +14 -0
  1692. package/systems/5e/world/topics/Guards and Wards.md +34 -0
  1693. package/systems/5e/world/topics/Guidance.md +13 -0
  1694. package/systems/5e/world/topics/Guiding Bolt.md +14 -0
  1695. package/systems/5e/world/topics/Gust of Wind.md +19 -0
  1696. package/systems/5e/world/topics/Hallow.md +36 -0
  1697. package/systems/5e/world/topics/Hallucinatory Terrain.md +14 -0
  1698. package/systems/5e/world/topics/Harm.md +12 -0
  1699. package/systems/5e/world/topics/Haste.md +15 -0
  1700. package/systems/5e/world/topics/Heal.md +14 -0
  1701. package/systems/5e/world/topics/Healing Word.md +14 -0
  1702. package/systems/5e/world/topics/Heat Metal.md +17 -0
  1703. package/systems/5e/world/topics/Hellish Rebuke.md +14 -0
  1704. package/systems/5e/world/topics/Heroes' Feast.md +14 -0
  1705. package/systems/5e/world/topics/Heroism.md +15 -0
  1706. package/systems/5e/world/topics/Hideous Laughter.md +15 -0
  1707. package/systems/5e/world/topics/Hold Monster.md +15 -0
  1708. package/systems/5e/world/topics/Hold Person.md +15 -0
  1709. package/systems/5e/world/topics/Holy Aura.md +13 -0
  1710. package/systems/5e/world/topics/Hunter's Mark.md +15 -0
  1711. package/systems/5e/world/topics/Hunter.md +41 -0
  1712. package/systems/5e/world/topics/Hypnotic Pattern.md +15 -0
  1713. package/systems/5e/world/topics/Ice Storm.md +16 -0
  1714. package/systems/5e/world/topics/Identify.md +15 -0
  1715. package/systems/5e/world/topics/Illusory Script.md +19 -0
  1716. package/systems/5e/world/topics/Imprisonment.md +38 -0
  1717. package/systems/5e/world/topics/Incendiary Cloud.md +17 -0
  1718. package/systems/5e/world/topics/Inflict Wounds.md +14 -0
  1719. package/systems/5e/world/topics/Insect Plague.md +17 -0
  1720. package/systems/5e/world/topics/Instant Summons.md +19 -0
  1721. package/systems/5e/world/topics/Invisibility.md +15 -0
  1722. package/systems/5e/world/topics/Irresistible Dance.md +15 -0
  1723. package/systems/5e/world/topics/Jump.md +12 -0
  1724. package/systems/5e/world/topics/Knock.md +18 -0
  1725. package/systems/5e/world/topics/Legend Lore.md +14 -0
  1726. package/systems/5e/world/topics/Lesser Restoration.md +12 -0
  1727. package/systems/5e/world/topics/Levitate.md +17 -0
  1728. package/systems/5e/world/topics/Life Domain.md +38 -0
  1729. package/systems/5e/world/topics/Light.md +14 -0
  1730. package/systems/5e/world/topics/Lightning Bolt.md +16 -0
  1731. package/systems/5e/world/topics/Locate Animals or Plants.md +13 -0
  1732. package/systems/5e/world/topics/Locate Creature.md +17 -0
  1733. package/systems/5e/world/topics/Locate Object.md +17 -0
  1734. package/systems/5e/world/topics/Longstrider.md +14 -0
  1735. package/systems/5e/world/topics/Mage Armor.md +12 -0
  1736. package/systems/5e/world/topics/Mage Hand.md +16 -0
  1737. package/systems/5e/world/topics/Magic Circle.md +22 -0
  1738. package/systems/5e/world/topics/Magic Jar.md +24 -0
  1739. package/systems/5e/world/topics/Magic Missile.md +14 -0
  1740. package/systems/5e/world/topics/Magic Mouth.md +17 -0
  1741. package/systems/5e/world/topics/Magic Weapon.md +15 -0
  1742. package/systems/5e/world/topics/Magnificent Mansion.md +16 -0
  1743. package/systems/5e/world/topics/Major Image.md +19 -0
  1744. package/systems/5e/world/topics/Mass Cure Wounds.md +14 -0
  1745. package/systems/5e/world/topics/Mass Heal.md +12 -0
  1746. package/systems/5e/world/topics/Mass Healing Word.md +14 -0
  1747. package/systems/5e/world/topics/Mass Suggestion.md +20 -0
  1748. package/systems/5e/world/topics/Maze.md +17 -0
  1749. package/systems/5e/world/topics/Meld into Stone.md +17 -0
  1750. package/systems/5e/world/topics/Mending.md +14 -0
  1751. package/systems/5e/world/topics/Message.md +14 -0
  1752. package/systems/5e/world/topics/Meteor Swarm.md +14 -0
  1753. package/systems/5e/world/topics/Mind Blank.md +12 -0
  1754. package/systems/5e/world/topics/Minor Illusion.md +18 -0
  1755. package/systems/5e/world/topics/Mirage Arcane.md +18 -0
  1756. package/systems/5e/world/topics/Mirror Image.md +20 -0
  1757. package/systems/5e/world/topics/Mislead.md +17 -0
  1758. package/systems/5e/world/topics/Misty Step.md +12 -0
  1759. package/systems/5e/world/topics/Modify Memory.md +23 -0
  1760. package/systems/5e/world/topics/Monk.md +153 -0
  1761. package/systems/5e/world/topics/Moonbeam.md +21 -0
  1762. package/systems/5e/world/topics/Move Earth.md +21 -0
  1763. package/systems/5e/world/topics/Nondetection.md +12 -0
  1764. package/systems/5e/world/topics/Oath of Devotion.md +62 -0
  1765. package/systems/5e/world/topics/Paladin Spells.md +51 -0
  1766. package/systems/5e/world/topics/Paladin.md +173 -0
  1767. package/systems/5e/world/topics/Pass without Trace.md +13 -0
  1768. package/systems/5e/world/topics/Passwall.md +14 -0
  1769. package/systems/5e/world/topics/Path of the Berserker.md +21 -0
  1770. package/systems/5e/world/topics/Phantasmal Killer.md +15 -0
  1771. package/systems/5e/world/topics/Phantom Steed.md +15 -0
  1772. package/systems/5e/world/topics/Planar Ally.md +22 -0
  1773. package/systems/5e/world/topics/Planar Binding.md +16 -0
  1774. package/systems/5e/world/topics/Plane Shift.md +16 -0
  1775. package/systems/5e/world/topics/Plant Growth.md +18 -0
  1776. package/systems/5e/world/topics/Poison Spray.md +14 -0
  1777. package/systems/5e/world/topics/Polymorph.md +21 -0
  1778. package/systems/5e/world/topics/Power Word Kill.md +12 -0
  1779. package/systems/5e/world/topics/Power Word Stun.md +14 -0
  1780. package/systems/5e/world/topics/Prayer of Healing.md +14 -0
  1781. package/systems/5e/world/topics/Prestidigitation.md +21 -0
  1782. package/systems/5e/world/topics/Prismatic Spray.md +28 -0
  1783. package/systems/5e/world/topics/Prismatic Wall.md +34 -0
  1784. package/systems/5e/world/topics/Private Sanctum.md +25 -0
  1785. package/systems/5e/world/topics/Produce Flame.md +16 -0
  1786. package/systems/5e/world/topics/Programmed Illusion.md +18 -0
  1787. package/systems/5e/world/topics/Project Image.md +19 -0
  1788. package/systems/5e/world/topics/Protection from Energy.md +13 -0
  1789. package/systems/5e/world/topics/Protection from Evil and Good.md +15 -0
  1790. package/systems/5e/world/topics/Protection from Poison.md +14 -0
  1791. package/systems/5e/world/topics/Purify Food and Drink.md +13 -0
  1792. package/systems/5e/world/topics/Raise Dead.md +18 -0
  1793. package/systems/5e/world/topics/Ranger Spells.md +57 -0
  1794. package/systems/5e/world/topics/Ranger.md +162 -0
  1795. package/systems/5e/world/topics/Ray of Enfeeblement.md +15 -0
  1796. package/systems/5e/world/topics/Ray of Frost.md +14 -0
  1797. package/systems/5e/world/topics/Regenerate.md +14 -0
  1798. package/systems/5e/world/topics/Reincarnate.md +33 -0
  1799. package/systems/5e/world/topics/Remove Curse.md +12 -0
  1800. package/systems/5e/world/topics/Resilient Sphere.md +19 -0
  1801. package/systems/5e/world/topics/Resistance.md +13 -0
  1802. package/systems/5e/world/topics/Resurrection.md +20 -0
  1803. package/systems/5e/world/topics/Reverse Gravity.md +17 -0
  1804. package/systems/5e/world/topics/Revivify.md +12 -0
  1805. package/systems/5e/world/topics/Rogue.md +114 -0
  1806. package/systems/5e/world/topics/Rope Trick.md +18 -0
  1807. package/systems/5e/world/topics/Sacred Flame.md +14 -0
  1808. package/systems/5e/world/topics/Sanctuary.md +14 -0
  1809. package/systems/5e/world/topics/School of Evocation.md +24 -0
  1810. package/systems/5e/world/topics/Scorching Ray.md +16 -0
  1811. package/systems/5e/world/topics/Scrying.md +31 -0
  1812. package/systems/5e/world/topics/Secret Chest.md +16 -0
  1813. package/systems/5e/world/topics/See Invisibility.md +12 -0
  1814. package/systems/5e/world/topics/Seeming.md +18 -0
  1815. package/systems/5e/world/topics/Sending.md +14 -0
  1816. package/systems/5e/world/topics/Sequester.md +16 -0
  1817. package/systems/5e/world/topics/Shapechange.md +23 -0
  1818. package/systems/5e/world/topics/Shatter.md +16 -0
  1819. package/systems/5e/world/topics/Shield (spell).md +13 -0
  1820. package/systems/5e/world/topics/Shield of Faith.md +13 -0
  1821. package/systems/5e/world/topics/Shillelagh.md +12 -0
  1822. package/systems/5e/world/topics/Shocking Grasp.md +14 -0
  1823. package/systems/5e/world/topics/Silence.md +14 -0
  1824. package/systems/5e/world/topics/Silent Image.md +17 -0
  1825. package/systems/5e/world/topics/Simulacrum.md +18 -0
  1826. package/systems/5e/world/topics/Sleep.md +18 -0
  1827. package/systems/5e/world/topics/Sleet Storm.md +17 -0
  1828. package/systems/5e/world/topics/Slow.md +19 -0
  1829. package/systems/5e/world/topics/Sorcerer Spells.md +155 -0
  1830. package/systems/5e/world/topics/Sorcerer.md +166 -0
  1831. package/systems/5e/world/topics/Spare the Dying.md +12 -0
  1832. package/systems/5e/world/topics/Speak with Animals.md +13 -0
  1833. package/systems/5e/world/topics/Speak with Dead.md +14 -0
  1834. package/systems/5e/world/topics/Speak with Plants.md +20 -0
  1835. package/systems/5e/world/topics/Spider Climb.md +13 -0
  1836. package/systems/5e/world/topics/Spike Growth.md +15 -0
  1837. package/systems/5e/world/topics/Spirit Guardians.md +17 -0
  1838. package/systems/5e/world/topics/Spiritual Weapon.md +18 -0
  1839. package/systems/5e/world/topics/Stinking Cloud.md +17 -0
  1840. package/systems/5e/world/topics/Stone Shape.md +12 -0
  1841. package/systems/5e/world/topics/Stoneskin.md +13 -0
  1842. package/systems/5e/world/topics/Storm of Vengeance.md +23 -0
  1843. package/systems/5e/world/topics/Suggestion.md +19 -0
  1844. package/systems/5e/world/topics/Sunbeam.md +17 -0
  1845. package/systems/5e/world/topics/Sunburst.md +16 -0
  1846. package/systems/5e/world/topics/Symbol.md +36 -0
  1847. package/systems/5e/world/topics/Telekinesis.md +23 -0
  1848. package/systems/5e/world/topics/Telepathic Bond.md +15 -0
  1849. package/systems/5e/world/topics/Teleport.md +38 -0
  1850. package/systems/5e/world/topics/Teleportation Circle.md +16 -0
  1851. package/systems/5e/world/topics/Thaumaturgy.md +21 -0
  1852. package/systems/5e/world/topics/The Fiend.md +47 -0
  1853. package/systems/5e/world/topics/Thief.md +24 -0
  1854. package/systems/5e/world/topics/Thunderwave.md +16 -0
  1855. package/systems/5e/world/topics/Time Stop.md +14 -0
  1856. package/systems/5e/world/topics/Tiny Hut.md +17 -0
  1857. package/systems/5e/world/topics/Tongues.md +12 -0
  1858. package/systems/5e/world/topics/Transport via Plants.md +12 -0
  1859. package/systems/5e/world/topics/Tree Stride.md +15 -0
  1860. package/systems/5e/world/topics/True Polymorph.md +29 -0
  1861. package/systems/5e/world/topics/True Resurrection.md +16 -0
  1862. package/systems/5e/world/topics/True Seeing.md +12 -0
  1863. package/systems/5e/world/topics/True Strike.md +13 -0
  1864. package/systems/5e/world/topics/Unseen Servant.md +17 -0
  1865. package/systems/5e/world/topics/Vampiric Touch.md +15 -0
  1866. package/systems/5e/world/topics/Vicious Mockery.md +14 -0
  1867. package/systems/5e/world/topics/Wall of Fire.md +19 -0
  1868. package/systems/5e/world/topics/Wall of Force.md +15 -0
  1869. package/systems/5e/world/topics/Wall of Ice.md +19 -0
  1870. package/systems/5e/world/topics/Wall of Stone.md +23 -0
  1871. package/systems/5e/world/topics/Wall of Thorns.md +19 -0
  1872. package/systems/5e/world/topics/Warding Bond.md +14 -0
  1873. package/systems/5e/world/topics/Warlock Spells.md +99 -0
  1874. package/systems/5e/world/topics/Warlock.md +283 -0
  1875. package/systems/5e/world/topics/Water Breathing.md +13 -0
  1876. package/systems/5e/world/topics/Water Walk.md +15 -0
  1877. package/systems/5e/world/topics/Way of the Open Hand.md +25 -0
  1878. package/systems/5e/world/topics/Web.md +21 -0
  1879. package/systems/5e/world/topics/Weird.md +13 -0
  1880. package/systems/5e/world/topics/Wind Walk.md +14 -0
  1881. package/systems/5e/world/topics/Wind Wall.md +17 -0
  1882. package/systems/5e/world/topics/Wish.md +26 -0
  1883. package/systems/5e/world/topics/Wizard Spells.md +239 -0
  1884. package/systems/5e/world/topics/Wizard.md +141 -0
  1885. package/systems/5e/world/topics/Word of Recall.md +14 -0
  1886. package/systems/5e/world/topics/Zone of Truth.md +14 -0
@@ -0,0 +1,108 @@
1
+ import { z } from "zod";
2
+ import { readSettings, requireCampaign } from "../campaign/index.js";
3
+ import { appendLogEntry } from "../core/log.js";
4
+ import { defineCommand } from "../core/registry.js";
5
+ import { chatBatch, keepChatAnswer, languageName, shipsLanguage } from "../page-words.js";
6
+ import { newDatedLogEntry } from "./game-time.js";
7
+ import { campaignSystem } from "./game-world.js";
8
+ export const translate = defineCommand({
9
+ name: "translate",
10
+ description: "Translate the player's dashboard into the campaign's language yourself, in the chat. "
11
+ + "Once the player says yes as status offers it, or when they ask; only where the page does not ship that language and nothing here translates it in the background. "
12
+ + "Without phrases it gives the first batch and how to translate it; call it again with each batch translated until it says the page is done. "
13
+ + 'The page changes language batch by batch; tell the player only that it is being translated. Example: phrases {"p12": "Tung xúc xắc"}.',
14
+ group: "campaign",
15
+ input: z.object({
16
+ phrases: z.union([z.record(z.string(), z.string()), z.string()]).optional().describe("the last batch translated: from each id, such as p12, to its translation"),
17
+ }),
18
+ run(input, context) {
19
+ const root = requireCampaign(context.folder);
20
+ const { home, page, language } = translationPlaces(context, readSettings(root).language?.toLowerCase());
21
+ const found = campaignSystem(root, context);
22
+ const system = found === undefined ? undefined : { name: found.name, folder: found.folder };
23
+ const answer = input.phrases === undefined ? undefined : readAnswer(input.phrases);
24
+ const saved = answer === undefined ? undefined : keepChatAnswer(home, page, language, system, answer);
25
+ if (saved !== undefined && saved.kept === 0) {
26
+ throw new Error("None of these phrases was kept: give the last batch translated, from each id it gave, such as p12, to its translation, keeping every {name} as it is.");
27
+ }
28
+ // The page reads its words again when the campaign changes: this line tells it that more have come.
29
+ if (saved !== undefined) {
30
+ appendLogEntry(root, newDatedLogEntry(root, context, "page-translated", "hidden", { language, kept: saved.kept }));
31
+ }
32
+ const next = chatBatch(home, page, language, system);
33
+ const keptPart = saved === undefined ? {} : { kept: saved.kept, dropped: saved.dropped };
34
+ return next === undefined ? { kind: "done", language, ...keptPart } : { kind: "batch", language, ...(found === undefined ? {} : { system: found.name }), batch: next, ...keptPart };
35
+ },
36
+ format(result) {
37
+ const name = languageName(result.language);
38
+ const dropped = result.dropped === undefined || result.dropped.length === 0 ? "" : ` ${result.dropped.join(", ")} lost a {name} or came garbled: they come again.`;
39
+ const kept = result.kept === undefined ? "" : `Kept ${result.kept}.${dropped}\n\n`;
40
+ if (result.kind === "done") {
41
+ return `${kept}The dashboard is now in ${name} on this computer, for every campaign. Tell the player it is ready, in a few words, and go on.`;
42
+ }
43
+ const { batch } = result;
44
+ const lines = batch.entries.map((entry) => `${entry.id}${entry.kind === undefined ? "" : ` (${entry.kind})`}: ${entry.english} · it: ${entry.italian}`);
45
+ const how = batch.part === "page"
46
+ ? `Translate into ${name} (${result.language}) these phrases of the player's dashboard: its sheet, dice, quests, maps, saves and settings. Natural, concise ${name}, as a well-made game app: buttons and labels short, the player addressed informally where the language can. Keep RPG Engine, Codex, Claude and file names as they are.`
47
+ : `Translate into ${name} (${result.language}) these words the game system${result.system === undefined ? "" : ` ${result.system}`} shows on the dashboard: where the game has an official translation in ${name}, its terms exactly, else the words its players use; one concept, one term. A group is a heading of the sheet, a field a short label, a word a name of the game, the headline the line under a character's name.`;
48
+ return [
49
+ `${kept}${how} Keep every {name} in braces exactly as it is. After each id, the English, then the Italian, written for the same page, which shows what it means.`,
50
+ ...lines,
51
+ `Then call translate with phrases: from each id to its translation. ${batch.left - batch.entries.length > 0 ? `${batch.left - batch.entries.length} more after these.` : "The last ones."}`,
52
+ ].join("\n");
53
+ },
54
+ });
55
+ /**
56
+ * In the setup, with the dashboard open, the offer of status where the page lacks the campaign's language and nothing here translates it in the background
57
+ * (D-423); undefined anywhere else.
58
+ */
59
+ export function translationOffer(root, context) {
60
+ const language = readSettings(root).language?.toLowerCase();
61
+ if (context.dashboard === undefined || language === undefined || context.home === undefined || context.pageFolder === undefined) {
62
+ return undefined;
63
+ }
64
+ if (shipsLanguage(context.pageFolder, language) || context.writer?.ready() === true) {
65
+ return undefined;
66
+ }
67
+ const found = campaignSystem(root, context);
68
+ const left = chatBatch(context.home, context.pageFolder, language, found === undefined ? undefined : { name: found.name, folder: found.folder })?.left;
69
+ const lacks = `The dashboard is not in ${languageName(language)} on this computer, and nothing here translates it in the background`;
70
+ if (left === undefined) {
71
+ return undefined;
72
+ }
73
+ // Where the engine can install them, a program first, by the player's account (D-424, D-425); the chat for whoever has none.
74
+ return context.helpers === undefined
75
+ ? `${lacks}: offer the player once to translate it now, in a couple of minutes, with translate; if they say no, it stays in English until they ask.`
76
+ : `${lacks}. Ask the player once which account they have, and offer: with ChatGPT, any plan, to install Codex, with install codex (the page in the background, `
77
+ + "pictures from Plus up); with Claude Pro or Max, Claude Code, with install claude (the page, and drawn pictures); with neither, to translate it now in the chat, "
78
+ + "in a couple of minutes, with translate. If they say no, it stays in English until they ask.";
79
+ }
80
+ /** Where the translation goes and what it reads: the player's data folder and the built page, for a language the page does not ship; else why there is nothing to do. */
81
+ function translationPlaces(context, language) {
82
+ if (language === undefined) {
83
+ throw new Error("The campaign has no language yet: set it with config language, as the player confirms it, then translate.");
84
+ }
85
+ if (context.home === undefined || context.pageFolder === undefined) {
86
+ throw new Error("This computer keeps no player's data here, so the dashboard cannot be translated: it stays in English.");
87
+ }
88
+ if (shipsLanguage(context.pageFolder, language)) {
89
+ throw new Error(`The dashboard is already written in ${languageName(language)}: nothing to translate.`);
90
+ }
91
+ if (context.writer?.ready() === true) {
92
+ throw new Error(`This computer translates the dashboard into ${languageName(language)} by itself, in the background: nothing to do in the chat.`);
93
+ }
94
+ return { home: context.home, page: context.pageFolder, language };
95
+ }
96
+ /** The phrases given: an object, or its JSON text from the command line. */
97
+ function readAnswer(phrases) {
98
+ if (typeof phrases !== "string") {
99
+ return phrases;
100
+ }
101
+ try {
102
+ const parsed = JSON.parse(phrases);
103
+ return parsed !== null && typeof parsed === "object" && !Array.isArray(parsed) ? parsed : {};
104
+ }
105
+ catch {
106
+ throw new Error('Give phrases as an object from each id to its translation, such as {"p12": "Tung xúc xắc"}.');
107
+ }
108
+ }
@@ -0,0 +1,47 @@
1
+ import { z } from "zod";
2
+ import { type TimePassed } from "./game-advance.ts";
3
+ /** How a travel ended (TRV-7, TRV-12): at a place, at the end of a distance in the open, at an event, at the end of the day's travel, or before it began. */
4
+ type Ending = {
5
+ kind: "arrived";
6
+ chain: string[];
7
+ } | {
8
+ kind: "reached";
9
+ } | {
10
+ kind: "event" | "day";
11
+ where: string;
12
+ left: string;
13
+ } | {
14
+ kind: "spent";
15
+ };
16
+ /** What travel did, as its output tells it (TRV-10, TRV-13). */
17
+ interface TravelResult {
18
+ who: string;
19
+ goal: string;
20
+ call: string;
21
+ way: string;
22
+ going: string;
23
+ /** The stops passed on the way, with the date. */
24
+ reached: string[];
25
+ date: string;
26
+ travelled: number;
27
+ hours: number;
28
+ /** What is left of the day's hours, in minutes. */
29
+ hoursLeft: number;
30
+ /** The rule that says what travelling beyond the day's hours does. */
31
+ beyond?: string;
32
+ ending: Ending;
33
+ /** Off the roads, what is around where they stopped (TRV-13). */
34
+ around: string[];
35
+ time?: TimePassed;
36
+ notes: string[];
37
+ }
38
+ export declare const travel: import("../core/registry.ts").Command<z.ZodObject<{
39
+ to: z.ZodOptional<z.ZodString>;
40
+ across: z.ZodOptional<z.ZodBoolean>;
41
+ toward: z.ZodOptional<z.ZodString>;
42
+ distance: z.ZodOptional<z.ZodString>;
43
+ who: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
44
+ pace: z.ZodOptional<z.ZodString>;
45
+ hours: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
46
+ }, z.core.$strip>, TravelResult>;
47
+ export {};
@@ -0,0 +1,457 @@
1
+ import { z } from "zod";
2
+ import { requireCampaign } from "../campaign/index.js";
3
+ import { readLength } from "../core/length.js";
4
+ import { defineCommand } from "../core/registry.js";
5
+ import { directionHelp, directionName, distanceBetween, pointAlong, pointFrom, readDirection } from "../map/index.js";
6
+ import { environmentAt, locate, pageNamed, parsePageReference } from "../pages/index.js";
7
+ import { addDuration, formatGameDate, minutesBetween } from "../time/index.js";
8
+ import { aroundLead, passedLines, passTime } from "./game-advance.js";
9
+ import { journeyPoint, journeyStart, moversMap, moversNamed, moversPosition, readJourney, sameMovers, saveJourney, travelledSinceRest } from "./game-journey.js";
10
+ import { playerCharacter } from "./game-knowledge.js";
11
+ import { mapKey, mapOf } from "./game-maps.js";
12
+ import { movePages } from "./game-moves.js";
13
+ import { acrossHint, crossedRoads, openLegs } from "./game-open.js";
14
+ import { nearPlaces, pointText, positionOf, regionAt } from "./game-positions.js";
15
+ import { dayHours, durationText, goingText, hoursText, isVehicleOnly, kindOf, lengthText, measuresOf, moversOf, noWayText, paceOf, roadsOf, sameSpot, speedOf, stepEnd, stopOf, travellingParty, unknownOnRoad, wayFor, wayText, } from "./game-roads.js";
16
+ import { readOpenScene } from "./game-scene.js";
17
+ import { presentDate } from "./game-time.js";
18
+ import { campaignSystem, campaignWorld, missingSystemHint } from "./game-world.js";
19
+ // A list, or one text, as an MCP client may send it.
20
+ const textList = z.union([z.string(), z.array(z.string())]);
21
+ export const travel = defineCommand({
22
+ name: "travel",
23
+ description: "Make a journey: whenever the party goes somewhere, use it instead of advance and move. "
24
+ + "By road it takes the quickest way, in the vehicle the party is in if any; off the roads, across and toward go through the regions and their terrain. "
25
+ + "It moves the travellers and lets the time pass, stopping on arrival, at an event that comes due and at the end of the day's travel; travel again goes on from there. "
26
+ + "Name in who the mounts and hirelings who go too. "
27
+ + "Example: to Rocca; or to Torre, across; or toward west, distance 12 km.",
28
+ group: "game",
29
+ positionals: ["to"],
30
+ input: z.object({
31
+ to: z.string().optional().describe("where to: a place; by road, or straight across country with across"),
32
+ across: z.boolean().optional().describe("go to the place straight across country, off the roads; both need a position"),
33
+ toward: z.string().optional().describe("off the roads, one way to go instead of a place: a point of the compass, such as west or NNE"),
34
+ distance: z.string().optional().describe("with toward, how far, such as 12 km; if left out, until the day's travel ends"),
35
+ who: textList.optional().describe("who travels; if left out, the party where the player character is, with the vehicle they are in"),
36
+ pace: z.string().optional().describe("one of the game's paces, such as fast or slow, or a speed, such as 4.5 km; if left out, the game's usual pace, or the one the journey had"),
37
+ hours: z.union([z.number(), z.string()]).optional().describe("the hours of travel today, when they differ from the game's: more for a forced march, 24 for a ship with its crew, 8 for a boat the party rows"),
38
+ }),
39
+ run(input, context) {
40
+ const root = requireCampaign(context.folder);
41
+ let world = campaignWorld(root, context);
42
+ const system = campaignSystem(root, context);
43
+ const now = presentDate(root);
44
+ if (now === undefined) {
45
+ throw new Error('The game has no date yet: set it with advance, such as to "day 1, 08:00". Nothing changed.');
46
+ }
47
+ const { scene } = readOpenScene(root);
48
+ if (scene !== undefined && scene.type !== "travel") {
49
+ throw new Error(`A ${scene.type} scene is open, ${scene.title}: close it before the journey, or open a travel scene. Nothing changed.`);
50
+ }
51
+ const roads = roadsOf(world);
52
+ const measures = measuresOf(root, system);
53
+ const journey = readJourney(root);
54
+ const travellers = travellersOf(world, input.who, journey);
55
+ const { movers, vehicle } = moversOf(world, travellers);
56
+ const ownJourney = journey !== undefined && sameMovers(journey, movers) ? journey : undefined;
57
+ checkOtherJourney(world, roads, journey, movers);
58
+ const before = travelledSinceRest(ownJourney, now);
59
+ // Hours given hold until the next rest (TRV-8).
60
+ const given = readHours(input.hours) ?? (before > 0 ? ownJourney?.hours : undefined);
61
+ const setting = { world, system, roads, measures, movers, vehicle, journey: ownJourney, hours: given };
62
+ const plan = input.toward !== undefined || input.across === true ? openPlan(setting, input) : roadPlan(setting, input);
63
+ const goal = plan.goal.to === undefined ? `${plan.goal.heading}` : `to ${plan.goal.to.name}${plan.goal.across ? ", across" : ""}`;
64
+ const call = plan.goal.to === undefined ? `travel toward ${plan.goal.heading}` : `travel to ${plan.goal.to.name}${plan.goal.across ? ", across" : ""}`;
65
+ // A forced march is the walkers' rule, past the game's hours: a vehicle that goes only by water has none.
66
+ const marching = (vehicle === undefined || !isVehicleOnly(world, system, vehicle)) && plan.hours >= (system?.travel?.hours ?? 8);
67
+ const told = { who: namesText(travellers), goal, call, way: plan.way, going: plan.going, hours: plan.hours, beyond: marching ? system?.travel?.beyond : undefined };
68
+ if (before >= plan.hours * 60) {
69
+ return { ...told, reached: [], date: formatGameDate(now), travelled: before, hoursLeft: 0, ending: { kind: "spent" }, around: [], notes: [] };
70
+ }
71
+ const why = plan.goal.to === undefined ? `travel ${plan.goal.heading}` : `travel to ${plan.goal.to.name}`;
72
+ const walked = walk(root, context, world, movers, plan, now, plan.hours * 60 - before, why);
73
+ world = walked.world;
74
+ const { stop, here, covered, date } = walked;
75
+ const travelled = before + minutesBetween(now, date);
76
+ const kept = { movers: movers.map((page) => page.name), pace: plan.pace, last: date, travelled, hours: given };
77
+ const point = stop === undefined ? (here !== undefined && "at" in here ? here.at : undefined) : "at" in stop.spot ? stop.spot.at : undefined;
78
+ const total = { metres: plan.legs.reduce((sum, leg) => sum + leg.length, 0), minutes: plan.legs.reduce((sum, leg) => sum + leg.length / leg.metresAMinute, 0) };
79
+ const headingLeft = plan.goal.heading !== undefined && input.distance !== undefined ? total.metres - covered.metres : undefined;
80
+ const onRoad = stop !== undefined && "on" in stop.spot ? stop.spot.on : undefined;
81
+ // Where it stopped in the open, and on which map (POS-8).
82
+ const open = { at: point, map: point === undefined ? undefined : plan.map?.name };
83
+ saveJourney(root, stop === undefined ? { ...kept, ...open } : { ...kept, to: plan.goal.to?.name, heading: plan.goal.heading, left: headingLeft, on: onRoad, ...open });
84
+ const ending = stop === undefined
85
+ ? plan.goal.to === undefined ? { kind: "reached" } : { kind: "arrived", chain: [plan.goal.to, ...locate(world, plan.goal.to).chain].map((page) => page.name) }
86
+ : { kind: stop.kind, where: spotText(world, stop.spot, date, measures, plan.map?.path), left: leftText(plan, total, covered, headingLeft, measures) };
87
+ const around = point === undefined || plan.from === undefined ? [] : aroundLines(world, roads, plan.from, point, measures, plan.map?.path);
88
+ const merged = mergedTimes(walked.times);
89
+ // What holds around the player character where the journey ended, not where the last hour passed (ENV-5).
90
+ const time = merged === undefined ? undefined : { ...merged, around: merged.passed >= 60 ? aroundLead(world) : undefined };
91
+ // A passage's conditions are its page's text, the master's to judge (ROA-8).
92
+ const passages = (plan.passages ?? []).map((name) => `The way goes through ${name}, a passage to another map: read its page for when and how it opens.`);
93
+ return { ...told, reached: walked.reached, date: formatGameDate(date), travelled, hoursLeft: Math.max(0, plan.hours * 60 - travelled), ending, around, time, notes: [...passages, ...walked.notes] };
94
+ },
95
+ format(result) {
96
+ const head = `${result.who} ${result.ending.kind === "spent" ? "would travel" : "travel"} ${result.goal}, ${result.going}: ${result.way}.`;
97
+ const passed = result.reached.length === 0 ? "" : `Passed ${result.reached.join(", ")}.`;
98
+ const then = ` Then go on: ${result.call}.`;
99
+ const done = result.ending.kind === "arrived" || result.ending.kind === "reached";
100
+ return [head, passed, endingText(result), ...result.around, ...result.notes, ...(result.time === undefined ? [] : passedLines(result.time, done ? "" : then))]
101
+ .filter((line) => line !== "")
102
+ .join("\n");
103
+ },
104
+ });
105
+ /**
106
+ * Walks a plan's legs (TRV-7): the movers go into each leg's road or region, the time passes, and they go into where it leads. It stops at an event a move or the
107
+ * time made due, also one due right as a leg ends, and when the day's minutes `left` end. Minutes are counted on the whole way, so that rounding never adds up.
108
+ */
109
+ function walk(root, context, start, movers, plan, now, left, why) {
110
+ let world = start;
111
+ let date = now;
112
+ let minutesLeft = left;
113
+ let exactSoFar = 0;
114
+ let wholeSoFar = 0;
115
+ let covered = { metres: 0, minutes: 0 };
116
+ let here;
117
+ const times = [];
118
+ const notes = [];
119
+ const reached = [];
120
+ // Each move and passing of time writes pages anew: pages are found again by their file in the world as it is now.
121
+ const current = (page) => world.pages.find((other) => other.path === page.path) ?? page;
122
+ const goInto = (place) => {
123
+ const fresh = movers.map(current);
124
+ if (fresh.every((mover) => locate(world, mover).chain[0]?.path === place?.path)) {
125
+ return [];
126
+ }
127
+ const done = movePages(root, context, world, fresh, place === null ? undefined : current(place));
128
+ world = done.world;
129
+ notes.push(...done.notes);
130
+ return done.due;
131
+ };
132
+ const walked = (stop) => ({ stop, here, reached, covered, times, notes, world, date });
133
+ for (const [index, leg] of plan.legs.entries()) {
134
+ const last = index === plan.legs.length - 1;
135
+ if (minutesLeft <= 0) {
136
+ return walked({ kind: "day", spot: here ?? leg.at(0) });
137
+ }
138
+ if (leg.into !== undefined && goInto(leg.into).length > 0) {
139
+ return walked({ kind: "event", spot: leg.at(0) });
140
+ }
141
+ const exact = leg.length / leg.metresAMinute;
142
+ const planned = Math.max(0, Math.round(exactSoFar + exact) - wholeSoFar);
143
+ const wanted = Math.min(planned, minutesLeft);
144
+ const passed = wanted > 0 ? passTime(root, context, world, date, wanted, why, hoursText(wanted)) : undefined;
145
+ const minutes = passed?.passed ?? 0;
146
+ if (passed !== undefined) {
147
+ times.push(passed);
148
+ date = addDuration(date, minutes);
149
+ minutesLeft -= minutes;
150
+ world = campaignWorld(root, context);
151
+ }
152
+ if (minutes < planned) {
153
+ covered = { metres: covered.metres + leg.length * (minutes / planned), minutes: covered.minutes + exact * (minutes / planned) };
154
+ return walked({ kind: minutes < wanted ? "event" : "day", spot: leg.at(leg.length * (minutes / planned)) });
155
+ }
156
+ exactSoFar += exact;
157
+ wholeSoFar += planned;
158
+ covered = { metres: covered.metres + leg.length, minutes: covered.minutes + exact };
159
+ here = leg.then === undefined ? leg.at(leg.length) : { place: leg.then.name };
160
+ const due = leg.then === undefined ? [] : goInto(leg.then);
161
+ if (!last && (due.length > 0 || (passed?.due.length ?? 0) > 0)) {
162
+ return walked({ kind: "event", spot: here });
163
+ }
164
+ if (!last && leg.passes !== undefined) {
165
+ reached.push(`${leg.passes} (${formatGameDate(date)})`);
166
+ }
167
+ }
168
+ return walked();
169
+ }
170
+ /**
171
+ * One journey at a time (TRV-9): another group stopped between places, on a road or in the open, would lose where it is; refused, with what to do instead.
172
+ */
173
+ function checkOtherJourney(world, roads, journey, movers) {
174
+ if (journey === undefined || sameMovers(journey, movers)) {
175
+ return;
176
+ }
177
+ const others = moversNamed(world, journey);
178
+ const stopped = journeyStart(world, roads, journey, others) !== undefined || journeyPoint(world, journey, others) !== undefined;
179
+ if (stopped && (journey.to !== undefined || journey.heading !== undefined || journey.at !== undefined)) {
180
+ throw new Error(`${others.map((page) => page.name).join(", ")} stopped on a journey between places, and rpg keeps one journey at a time: move ${movers.map((page) => page.name).join(", ")} with move, or bring that journey to a place first. Nothing changed.`);
181
+ }
182
+ }
183
+ /** A journey by road (TRV-4, TRV-7): from where the journey stopped, or the nearest stop, by the quickest way, stop by stop, and into the destination at last. */
184
+ function roadPlan(setting, input) {
185
+ const { world, system, roads, measures, movers, vehicle, journey } = setting;
186
+ if (input.to === undefined || input.to.trim() === "") {
187
+ throw new Error("Give where to, a place; or, off the roads, toward with a point of the compass. Nothing changed.");
188
+ }
189
+ const destination = placeNamed(world, input.to);
190
+ const onRoad = journey === undefined ? undefined : journeyStart(world, roads, journey, movers);
191
+ const start = startOf(world, roads, movers[0], destination, onRoad);
192
+ const arrival = stopOf(world, roads, destination);
193
+ const going = { pace: paceOf(system, input.pace ?? (onRoad === undefined ? undefined : journey?.pace), vehicle), vehicle };
194
+ const way = wayFor(world, system, roads, start, arrival, going);
195
+ if (way === undefined) {
196
+ throw new Error(`${noWayText(world, system, roads, start, arrival, going)}${acrossHint(world, movers[0], destination, measures)} Nothing changed.`);
197
+ }
198
+ const speed = speedOf(world, system, roads, going);
199
+ const legs = way.steps.map((step, index) => {
200
+ const road = roads.pages.get(step.stretch.road);
201
+ const ends = { road: road.name, index: step.stretch.index, from: step.forward ? step.stretch.from : step.stretch.to, toward: stepEnd(step) };
202
+ const begin = step.stretch.length - step.length;
203
+ const last = index === way.steps.length - 1;
204
+ return {
205
+ into: road,
206
+ length: step.length,
207
+ metresAMinute: speed(step.stretch, step.forward) ?? 1,
208
+ then: last ? destination : pageNamed(world, ends.toward),
209
+ passes: last ? undefined : ends.toward,
210
+ at: (done) => ({ on: { ...ends, done: begin + done } }),
211
+ };
212
+ });
213
+ const from = "stop" in start ? start.stop : `${start.stretch.road}, ${lengthText(start.done, measures)} past ${start.stretch.from}`;
214
+ const passages = [...new Set(legs.flatMap((leg) => (leg.into !== null && leg.into !== undefined && kindOf(system, leg.into).name === "portal" ? [leg.into.name] : [])))];
215
+ return {
216
+ legs: legs.length > 0 ? legs : [{ length: 0, metresAMinute: 1, then: destination, at: () => ({ place: destination.name }) }],
217
+ goal: { to: destination, across: false },
218
+ way: wayText(way, from, measures),
219
+ going: goingText(world, system, going, measures),
220
+ pace: going.pace?.name ?? input.pace,
221
+ hours: dayHours(system, roads, way, going, setting.hours),
222
+ passages,
223
+ };
224
+ }
225
+ /**
226
+ * A journey off the roads (TRV-12): from where the movers are on the map, straight to a place with a position, or one way for a distance or until the day's
227
+ * travel ends, through the regions with their terrain, at the pace, never in a vehicle that goes only by water.
228
+ */
229
+ function openPlan(setting, input) {
230
+ const { world, system, roads, measures, movers, vehicle, journey } = setting;
231
+ if (input.toward !== undefined && input.to !== undefined) {
232
+ throw new Error("Give to, a place, or toward, a way to go, not both: to Torre with across goes straight there, toward west goes that way. Nothing changed.");
233
+ }
234
+ if (input.toward === undefined && (input.to === undefined || input.to.trim() === "")) {
235
+ throw new Error("across goes straight to a place: give to, such as to Torre, across. Nothing changed.");
236
+ }
237
+ if (vehicle !== undefined && isVehicleOnly(world, system, vehicle)) {
238
+ throw new Error(`${vehicle.name} goes only on the kinds of road made for it: off the roads they go on foot, out of it. Nothing changed.`);
239
+ }
240
+ const from = moversPosition(world, roads, journey, movers);
241
+ if (from === undefined && locate(world, movers[0]).chain.length === 0) {
242
+ throw new Error(`${movers[0].name} is in no place, and no journey says where: move them to a place first, such as the one they last left. Nothing changed.`);
243
+ }
244
+ if (from === undefined) {
245
+ throw new Error(`${movers[0].name} is where the map has no position: give one to the place they are in, such as write <place>, set position="12 km NE of [[<a place with one>]]". Nothing changed.`);
246
+ }
247
+ const pace = paceOf(system, input.pace ?? journey?.pace, undefined);
248
+ const hours = setting.hours ?? system?.travel?.hours ?? 8;
249
+ const destination = input.to === undefined ? undefined : placeNamed(world, input.to);
250
+ // Off the roads one stays on the map one is on: to another, a passage leads (POS-8, ROA-8).
251
+ const map = moversMap(world, journey, movers);
252
+ if (destination !== undefined && mapKey(world, destination) !== (map?.path ?? "")) {
253
+ const where = (root) => (root === undefined ? "the main map" : `the map of ${root.name}`);
254
+ throw new Error(`${destination.name} is on ${where(mapOf(world, destination).root)}, ${movers[0].name} on ${where(map)}: across country one stays on one map. Go through a passage, a road of kind portal, or move them. Nothing changed.`);
255
+ }
256
+ // Already there only inside the destination: a region holds places kilometres apart, so being in the region is not being at them.
257
+ if (destination !== undefined && movers[0] !== undefined && [movers[0], ...locate(world, movers[0]).chain].includes(destination)) {
258
+ throw new Error(`${movers[0].name} is already in ${destination.name}: no journey, use move for a place inside it. Nothing changed.`);
259
+ }
260
+ const { target, bounded } = destination === undefined ? headingTarget(from, input.toward ?? "", input.distance, journey, pace.speed) : { target: destinationPosition(world, destination), bounded: true };
261
+ const length = distanceBetween(from, target);
262
+ const legs = openLegs(world, system, from, target, pace.speed, map?.path);
263
+ let start = 0;
264
+ const steps = legs.map((leg, index) => {
265
+ const offset = start;
266
+ start += leg.length;
267
+ return {
268
+ into: leg.region ?? null,
269
+ length: leg.length,
270
+ metresAMinute: leg.metresAMinute,
271
+ then: index === legs.length - 1 ? destination : undefined,
272
+ at: (done) => ({ at: pointAlong(from, target, length === 0 ? 1 : (offset + done) / length) }),
273
+ };
274
+ });
275
+ const through = legs.map((leg) => `${leg.region?.name ?? "the open"} (${lengthText(leg.length, measures)})`).join(", ") || "nothing";
276
+ const time = durationText(legs.reduce((sum, leg) => sum + leg.length / leg.metresAMinute, 0), hours);
277
+ const heading = input.toward === undefined ? undefined : directionName(readDirection(input.toward) ?? 0);
278
+ const way = destination === undefined
279
+ ? `${heading} from ${pointText(world, from, measures, map?.path)}, ${bounded ? `${lengthText(length, measures)} through ${through}; ${time}` : "until the day's travel ends"}`
280
+ : `straight from ${pointText(world, from, measures, map?.path)} to ${destination.name}, ${lengthText(length, measures)} through ${through}; ${time}`;
281
+ return {
282
+ legs: steps.length > 0 ? steps : [{ length: 0, metresAMinute: 1, then: destination, at: () => ({ at: target }) }],
283
+ goal: { to: destination, heading, across: true },
284
+ way,
285
+ going: goingText(world, system, { pace }, measures),
286
+ pace: pace.name ?? input.pace,
287
+ hours,
288
+ from,
289
+ ...(map === undefined ? {} : { map }),
290
+ };
291
+ }
292
+ /**
293
+ * Where a journey one way ends (TRV-12): at the distance given, at what its journey still has to go that way, or, unbounded, past where the day's travel can
294
+ * take it.
295
+ */
296
+ function headingTarget(from, toward, distance, journey, metresAnHour) {
297
+ const degrees = readDirection(toward);
298
+ if (degrees === undefined) {
299
+ throw new Error(`"${toward}" is not a way to go: give ${directionHelp}. Nothing changed.`);
300
+ }
301
+ const given = distance === undefined ? undefined : readLength(distance);
302
+ if (distance !== undefined && given === undefined) {
303
+ throw new Error(`"${distance}" is not a distance: write it in km or m, such as 12 km. Nothing changed.`);
304
+ }
305
+ const sameWay = journey?.heading !== undefined && readDirection(journey.heading) === degrees ? journey.left : undefined;
306
+ const metres = given ?? sameWay;
307
+ // Without a distance, farther than a whole day's travel could go: the day's hours stop it.
308
+ return { target: pointFrom(from, degrees, metres ?? metresAnHour * 24), bounded: metres !== undefined };
309
+ }
310
+ /** A place's position, for a journey straight to it; refused, with how to give one, when it has none. */
311
+ function destinationPosition(world, destination) {
312
+ const position = positionOf(world, destination);
313
+ if (position === undefined) {
314
+ throw new Error(`${destination.name} has no position on the map: give it one, such as write ${destination.name}, set position="12 km NE of [[<a place with one>]]". Nothing changed.`);
315
+ }
316
+ return position;
317
+ }
318
+ /**
319
+ * What is around a point in the open of a map (TRV-13, POS-8): the region and its terrain, the places near, the roads crossed on the way, and how to make the
320
+ * spot a place.
321
+ */
322
+ function aroundLines(world, roads, from, point, measures, map = "") {
323
+ const region = regionAt(world, point, map)?.page;
324
+ const terrain = region === undefined ? undefined : environmentAt(world, region).find(({ entry }) => entry.name.toLowerCase() === "terrain")?.entry.value;
325
+ const crossed = crossedRoads(world, roads, from, point, measures, map);
326
+ return [
327
+ region === undefined ? "In the open, in no region." : `In ${region.name}${terrain === undefined ? "" : `, terrain ${terrain}`}.`,
328
+ `Near: ${nearPlaces(world, point, measures, map).join(" · ") || "no place with a position"}.`,
329
+ crossed.length === 0 ? "" : `Crossed: ${crossed.join(" · ")}.`,
330
+ "No place is written here: to make it one, such as a camp, write <name>, type place, here.",
331
+ ].filter((line) => line !== "");
332
+ }
333
+ /** The travellers (TRV-6): the characters named, or the party where the player character is; in the open, those of its journey. */
334
+ function travellersOf(world, who, journey) {
335
+ const names = (typeof who === "string" ? [who] : (who ?? [])).filter((name) => name.trim() !== "");
336
+ if (names.length === 0) {
337
+ const party = travellingParty(world, playerCharacter(world), journey?.movers ?? []);
338
+ if (party.length === 0) {
339
+ throw new Error("There is no player character to travel: give who, the characters who travel. Nothing changed.");
340
+ }
341
+ return party;
342
+ }
343
+ return names.map((name) => {
344
+ const page = pageNamed(world, parsePageReference(name).name);
345
+ if (page?.type !== "character") {
346
+ throw new Error(`${page === undefined ? `There is no page named ${name}` : `${page.name} is not a character`}: who travels are characters; a vehicle goes with those in it. Nothing changed.`);
347
+ }
348
+ return page;
349
+ }).filter((page, index, all) => all.indexOf(page) === index);
350
+ }
351
+ /** A place by name or alias, where a journey goes. */
352
+ function placeNamed(world, name) {
353
+ const page = pageNamed(world, parsePageReference(name).name);
354
+ if (page === undefined) {
355
+ throw new Error(`There is no page named ${parsePageReference(name).name}. Look for it with find.${missingSystemHint(world)} Nothing changed.`);
356
+ }
357
+ if (page.type !== "place") {
358
+ throw new Error(`${page.name} is not a place: a journey goes to a place. Nothing changed.`);
359
+ }
360
+ return page;
361
+ }
362
+ /** Where the travel starts (ROA-5, TRV-9): where the journey stopped on its road, else the nearest stop of where the movers are; refused when none, or already there. */
363
+ function startOf(world, roads, mover, destination, onRoad) {
364
+ if (onRoad !== undefined) {
365
+ return onRoad;
366
+ }
367
+ const lost = unknownOnRoad(world, roads, mover);
368
+ if (lost !== undefined) {
369
+ throw new Error(`${lost.replace("give from,", "move them to")} Nothing changed.`);
370
+ }
371
+ const departure = stopOf(world, roads, mover);
372
+ const arrival = stopOf(world, roads, destination);
373
+ for (const [page, stop] of [[mover, departure], [destination, arrival]]) {
374
+ if (stop === undefined) {
375
+ const chain = [page, ...locate(world, page).chain].filter((holder) => holder.type === "place").map((holder) => holder.name);
376
+ const where = chain.length === 0 ? `${page.name} is in the open` : `none of ${chain.join(" › ")} is a stop of a road`;
377
+ throw new Error(`No road reaches ${page.name}: ${where}. Write one, a place with stops; or go off the roads, with across or toward. Nothing changed.`);
378
+ }
379
+ }
380
+ const spot = sameSpot(world, departure, arrival);
381
+ if (spot !== undefined) {
382
+ throw new Error(`${mover.name} and ${destination.name} are one spot for a journey, in ${spot.name}: no road to travel, use move. Nothing changed.`);
383
+ }
384
+ return { stop: departure.name };
385
+ }
386
+ function readHours(value) {
387
+ if (value === undefined || (typeof value === "string" && value.trim() === "")) {
388
+ return undefined;
389
+ }
390
+ const hours = Number(typeof value === "string" ? value.trim().replace(/\s*h$/i, "") : value);
391
+ if (!Number.isFinite(hours) || hours <= 0 || hours > 24) {
392
+ throw new Error(`"${value}" is not a number of hours up to 24, such as hours 10. Nothing changed.`);
393
+ }
394
+ return hours;
395
+ }
396
+ /** "on Sentiero dei colli, 8 km past Bivio, toward Ponte, at day 3, 13:00"; "at Bivio at day 3, 10:30"; "in Brughiera Nera, 3 km west of Torre, at day 5, 16:00". */
397
+ function spotText(world, spot, date, measures, map = "") {
398
+ if ("on" in spot) {
399
+ return `on ${spot.on.road}, ${lengthText(spot.on.done, measures)} past ${spot.on.from}, toward ${spot.on.toward}, at ${formatGameDate(date)}`;
400
+ }
401
+ if ("place" in spot) {
402
+ return `at ${spot.place} at ${formatGameDate(date)}`;
403
+ }
404
+ const region = regionAt(world, spot.at, map)?.page.name;
405
+ const point = pointText(world, spot.at, measures, map);
406
+ return `${region === undefined ? "in the open" : `in ${region}`}, ${point.includes(" of ") ? point : `at ${point}`}, at ${formatGameDate(date)}`;
407
+ }
408
+ /** "16 km left to Rocca, 3h 20m of travel"; "4 km left west"; nothing for a way with no end. */
409
+ function leftText(plan, total, covered, headingLeft, measures) {
410
+ const metres = Math.max(0, total.metres - covered.metres);
411
+ if (plan.goal.to === undefined) {
412
+ return headingLeft === undefined ? "" : `${lengthText(Math.max(0, headingLeft), measures)} left ${plan.goal.heading}`;
413
+ }
414
+ return `${lengthText(metres, measures)} left to ${plan.goal.to.name}, ${durationText(Math.max(0, total.minutes - covered.minutes), plan.hours)}`;
415
+ }
416
+ /** How the travel ended (TRV-10), with what is left and how to go on. */
417
+ function endingText(result) {
418
+ const goOn = `To go on: ${result.call}.`;
419
+ const beyond = result.beyond === undefined ? "" : ` (beyond ${result.hours} h: rules ${result.beyond})`;
420
+ const camp = `camp for the night, or go on with hours, such as hours ${Math.min(24, result.hours + 2)}${beyond}`;
421
+ const left = (text) => (text === "" ? "" : ` ${text}.`);
422
+ switch (result.ending.kind) {
423
+ case "arrived":
424
+ return `Arrived at ${result.date}: now in ${result.ending.chain.join(" › ")}.`;
425
+ case "reached":
426
+ return `Went as far as asked, at ${result.date}.`;
427
+ case "spent":
428
+ return `They already travelled ${hoursText(result.travelled)} today, the day's ${result.hours} h: ${camp}. Nothing changed.`;
429
+ case "day":
430
+ return `Stopped ${result.ending.where}, after ${hoursText(result.travelled)} of travel today: ${camp}.${left(result.ending.left)} ${goOn}`;
431
+ case "event":
432
+ return `Stopped ${result.ending.where}: an event came due, below.${left(result.ending.left)} ${hoursText(result.hoursLeft)} of travel left today. ${goOn}`;
433
+ }
434
+ }
435
+ /** The times of a travel's legs as one passing of time: from the first to the last, with every event due, every effect ended and every clock of the new days. */
436
+ function mergedTimes(times) {
437
+ const [first, last] = [times[0], times.at(-1)];
438
+ if (first === undefined || last === undefined) {
439
+ return undefined;
440
+ }
441
+ return {
442
+ ...last,
443
+ from: first.from,
444
+ passed: times.reduce((sum, time) => sum + time.passed, 0),
445
+ wanted: times.reduce((sum, time) => sum + time.wanted, 0),
446
+ due: [...new Set(times.flatMap((time) => time.due))],
447
+ stillDue: first.stillDue,
448
+ ended: times.flatMap((time) => time.ended),
449
+ newDays: times.reduce((sum, time) => sum + time.newDays, 0),
450
+ clocks: [...new Set(times.flatMap((time) => time.clocks))],
451
+ newDayPart: times.map((time) => time.newDayPart).find((part) => part !== "") ?? "",
452
+ };
453
+ }
454
+ function namesText(pages) {
455
+ const names = pages.map((page) => page.name);
456
+ return names.length === 1 ? names[0] : `${names.slice(0, -1).join(", ")} and ${names.at(-1)}`;
457
+ }
@@ -0,0 +1,4 @@
1
+ import { z } from "zod";
2
+ export declare const validate: import("../core/registry.ts").Command<z.ZodObject<{}, z.core.$strip>, {
3
+ problems: import("../core/problem.ts").Problem[];
4
+ }>;
@@ -0,0 +1,25 @@
1
+ import { z } from "zod";
2
+ import { requireCampaign } from "../campaign/index.js";
3
+ import { defineCommand } from "../core/registry.js";
4
+ import { campaignWorld } from "./game-world.js";
5
+ import { campaignProblems } from "./problems.js";
6
+ export const validate = defineCommand({
7
+ name: "validate",
8
+ description: "Check the whole campaign and say how to fix each problem. "
9
+ + "It checks unreadable files, standard fields, links to missing pages, sections or secrets, missing pictures, things in two places, repeated names, the settings and the log. "
10
+ + "Use it when status reports problems, or after pages were changed by hand. Read-only, no parameters.",
11
+ group: "game",
12
+ readOnly: true,
13
+ input: z.object({}),
14
+ run(input, context) {
15
+ const root = requireCampaign(context.folder);
16
+ return { problems: campaignProblems(root, campaignWorld(root, context), context) };
17
+ },
18
+ format(result) {
19
+ if (result.problems.length === 0) {
20
+ return "No problems.";
21
+ }
22
+ const lines = result.problems.map((problem) => `- ${problem.path === undefined ? "" : `${problem.path}: `}${problem.message}${problem.fix === undefined ? "" : ` Fix: ${problem.fix}.`}`);
23
+ return `${result.problems.length} ${result.problems.length === 1 ? "problem" : "problems"}:\n${lines.join("\n")}`;
24
+ },
25
+ });