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.
- package/LICENSE +21 -0
- package/README.md +99 -2
- package/dist/campaign/create-campaign.d.ts +6 -0
- package/dist/campaign/create-campaign.js +71 -0
- package/dist/campaign/find-campaign.d.ts +8 -0
- package/dist/campaign/find-campaign.js +28 -0
- package/dist/campaign/host-files.d.ts +16 -0
- package/dist/campaign/host-files.js +131 -0
- package/dist/campaign/index.d.ts +5 -0
- package/dist/campaign/index.js +6 -0
- package/dist/campaign/settings.d.ts +185 -0
- package/dist/campaign/settings.js +399 -0
- package/dist/campaign/state.d.ts +15 -0
- package/dist/campaign/state.js +52 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +19 -0
- package/dist/command-line.d.ts +7 -0
- package/dist/command-line.js +140 -0
- package/dist/commands/advance.d.ts +7 -0
- package/dist/commands/advance.js +80 -0
- package/dist/commands/ask.d.ts +33 -0
- package/dist/commands/ask.js +280 -0
- package/dist/commands/change.d.ts +69 -0
- package/dist/commands/change.js +604 -0
- package/dist/commands/config.d.ts +59 -0
- package/dist/commands/config.js +512 -0
- package/dist/commands/effect-layer.d.ts +22 -0
- package/dist/commands/effect-layer.js +84 -0
- package/dist/commands/effect.d.ts +27 -0
- package/dist/commands/effect.js +369 -0
- package/dist/commands/find.d.ts +34 -0
- package/dist/commands/find.js +64 -0
- package/dist/commands/game-advance.d.ts +50 -0
- package/dist/commands/game-advance.js +103 -0
- package/dist/commands/game-effects.d.ts +68 -0
- package/dist/commands/game-effects.js +196 -0
- package/dist/commands/game-environment.d.ts +16 -0
- package/dist/commands/game-environment.js +24 -0
- package/dist/commands/game-events.d.ts +84 -0
- package/dist/commands/game-events.js +325 -0
- package/dist/commands/game-experience.d.ts +57 -0
- package/dist/commands/game-experience.js +119 -0
- package/dist/commands/game-grid-moves.d.ts +33 -0
- package/dist/commands/game-grid-moves.js +94 -0
- package/dist/commands/game-grids.d.ts +52 -0
- package/dist/commands/game-grids.js +162 -0
- package/dist/commands/game-here.d.ts +40 -0
- package/dist/commands/game-here.js +100 -0
- package/dist/commands/game-images.d.ts +31 -0
- package/dist/commands/game-images.js +87 -0
- package/dist/commands/game-journey.d.ts +62 -0
- package/dist/commands/game-journey.js +163 -0
- package/dist/commands/game-knowledge.d.ts +32 -0
- package/dist/commands/game-knowledge.js +120 -0
- package/dist/commands/game-maps.d.ts +20 -0
- package/dist/commands/game-maps.js +51 -0
- package/dist/commands/game-mode.d.ts +31 -0
- package/dist/commands/game-mode.js +128 -0
- package/dist/commands/game-money.d.ts +17 -0
- package/dist/commands/game-money.js +55 -0
- package/dist/commands/game-moods.d.ts +22 -0
- package/dist/commands/game-moods.js +32 -0
- package/dist/commands/game-moves.d.ts +14 -0
- package/dist/commands/game-moves.js +43 -0
- package/dist/commands/game-open.d.ts +18 -0
- package/dist/commands/game-open.js +47 -0
- package/dist/commands/game-outside.d.ts +14 -0
- package/dist/commands/game-outside.js +151 -0
- package/dist/commands/game-positions.d.ts +52 -0
- package/dist/commands/game-positions.js +244 -0
- package/dist/commands/game-quests.d.ts +46 -0
- package/dist/commands/game-quests.js +97 -0
- package/dist/commands/game-recipes.d.ts +34 -0
- package/dist/commands/game-recipes.js +109 -0
- package/dist/commands/game-reminders.d.ts +22 -0
- package/dist/commands/game-reminders.js +74 -0
- package/dist/commands/game-roads.d.ts +90 -0
- package/dist/commands/game-roads.js +284 -0
- package/dist/commands/game-rules.d.ts +17 -0
- package/dist/commands/game-rules.js +30 -0
- package/dist/commands/game-saves.d.ts +59 -0
- package/dist/commands/game-saves.js +249 -0
- package/dist/commands/game-scene.d.ts +69 -0
- package/dist/commands/game-scene.js +285 -0
- package/dist/commands/game-thresholds.d.ts +13 -0
- package/dist/commands/game-thresholds.js +41 -0
- package/dist/commands/game-time.d.ts +17 -0
- package/dist/commands/game-time.js +42 -0
- package/dist/commands/game-view-journal.d.ts +145 -0
- package/dist/commands/game-view-journal.js +129 -0
- package/dist/commands/game-view-map.d.ts +78 -0
- package/dist/commands/game-view-map.js +266 -0
- package/dist/commands/game-view-place.d.ts +160 -0
- package/dist/commands/game-view-place.js +388 -0
- package/dist/commands/game-world.d.ts +60 -0
- package/dist/commands/game-world.js +204 -0
- package/dist/commands/image.d.ts +19 -0
- package/dist/commands/image.js +185 -0
- package/dist/commands/index.d.ts +3 -0
- package/dist/commands/index.js +57 -0
- package/dist/commands/init.d.ts +23 -0
- package/dist/commands/init.js +44 -0
- package/dist/commands/install.d.ts +23 -0
- package/dist/commands/install.js +68 -0
- package/dist/commands/instructions.d.ts +4 -0
- package/dist/commands/instructions.js +97 -0
- package/dist/commands/mode.d.ts +23 -0
- package/dist/commands/mode.js +84 -0
- package/dist/commands/mood.d.ts +34 -0
- package/dist/commands/mood.js +113 -0
- package/dist/commands/move.d.ts +34 -0
- package/dist/commands/move.js +274 -0
- package/dist/commands/notes.d.ts +10 -0
- package/dist/commands/notes.js +37 -0
- package/dist/commands/page-counters.d.ts +24 -0
- package/dist/commands/page-counters.js +84 -0
- package/dist/commands/parts.d.ts +16 -0
- package/dist/commands/parts.js +49 -0
- package/dist/commands/problems.d.ts +5 -0
- package/dist/commands/problems.js +47 -0
- package/dist/commands/progression.d.ts +68 -0
- package/dist/commands/progression.js +206 -0
- package/dist/commands/rename.d.ts +16 -0
- package/dist/commands/rename.js +116 -0
- package/dist/commands/reveal.d.ts +25 -0
- package/dist/commands/reveal.js +193 -0
- package/dist/commands/roll.d.ts +56 -0
- package/dist/commands/roll.js +302 -0
- package/dist/commands/route.d.ts +19 -0
- package/dist/commands/route.js +110 -0
- package/dist/commands/rules.d.ts +48 -0
- package/dist/commands/rules.js +194 -0
- package/dist/commands/save.d.ts +68 -0
- package/dist/commands/save.js +141 -0
- package/dist/commands/scene.d.ts +105 -0
- package/dist/commands/scene.js +741 -0
- package/dist/commands/sheet.d.ts +136 -0
- package/dist/commands/sheet.js +445 -0
- package/dist/commands/show.d.ts +76 -0
- package/dist/commands/show.js +216 -0
- package/dist/commands/status.d.ts +54 -0
- package/dist/commands/status.js +291 -0
- package/dist/commands/translate.d.ts +23 -0
- package/dist/commands/translate.js +108 -0
- package/dist/commands/travel.d.ts +47 -0
- package/dist/commands/travel.js +457 -0
- package/dist/commands/validate.d.ts +4 -0
- package/dist/commands/validate.js +25 -0
- package/dist/commands/view.d.ts +272 -0
- package/dist/commands/view.js +623 -0
- package/dist/commands/worked-out.d.ts +116 -0
- package/dist/commands/worked-out.js +704 -0
- package/dist/commands/write.d.ts +51 -0
- package/dist/commands/write.js +1017 -0
- package/dist/core/command-reference.d.ts +6 -0
- package/dist/core/command-reference.js +47 -0
- package/dist/core/context.d.ts +140 -0
- package/dist/core/context.js +28 -0
- package/dist/core/field-kind.d.ts +6 -0
- package/dist/core/field-kind.js +5 -0
- package/dist/core/files.d.ts +4 -0
- package/dist/core/files.js +30 -0
- package/dist/core/formula.d.ts +164 -0
- package/dist/core/formula.js +590 -0
- package/dist/core/frozen.d.ts +2 -0
- package/dist/core/frozen.js +11 -0
- package/dist/core/length.d.ts +27 -0
- package/dist/core/length.js +49 -0
- package/dist/core/log.d.ts +27 -0
- package/dist/core/log.js +38 -0
- package/dist/core/memo.d.ts +2 -0
- package/dist/core/memo.js +17 -0
- package/dist/core/mood.d.ts +6 -0
- package/dist/core/mood.js +11 -0
- package/dist/core/problem.d.ts +6 -0
- package/dist/core/problem.js +1 -0
- package/dist/core/progression-rule.d.ts +21 -0
- package/dist/core/progression-rule.js +2 -0
- package/dist/core/registry.d.ts +31 -0
- package/dist/core/registry.js +25 -0
- package/dist/core/session-store.d.ts +90 -0
- package/dist/core/session-store.js +289 -0
- package/dist/core/store.d.ts +83 -0
- package/dist/core/store.js +224 -0
- package/dist/core/text.d.ts +12 -0
- package/dist/core/text.js +32 -0
- package/dist/core/version.d.ts +2 -0
- package/dist/core/version.js +6 -0
- package/dist/core/yaml-file.d.ts +10 -0
- package/dist/core/yaml-file.js +42 -0
- package/dist/counters/counter.d.ts +36 -0
- package/dist/counters/counter.js +59 -0
- package/dist/counters/index.d.ts +1 -0
- package/dist/counters/index.js +2 -0
- package/dist/dashboard/address.js +43 -0
- package/dist/dashboard/api.js +185 -0
- package/dist/dashboard/app.js +217 -0
- package/dist/dashboard/asked.js +132 -0
- package/dist/dashboard/assets/dice/dice-sharp.glb +0 -0
- package/dist/dashboard/assets/dice/dice.glb +0 -0
- package/dist/dashboard/assets/dice/dice.json +1 -0
- package/dist/dashboard/assets/dice/textures/ash.jpg +0 -0
- package/dist/dashboard/assets/dice/textures/granite.jpg +0 -0
- package/dist/dashboard/assets/dice/textures/marble.jpg +0 -0
- package/dist/dashboard/assets/dice/textures/onyx.jpg +0 -0
- package/dist/dashboard/assets/dice/textures/walnut.jpg +0 -0
- package/dist/dashboard/assets/favicon.svg +7 -0
- package/dist/dashboard/assets/icon-180.png +0 -0
- package/dist/dashboard/assets/icon-32.png +0 -0
- package/dist/dashboard/assets/master.svg +71 -0
- package/dist/dashboard/assets/sounds/dice-collision.wav +0 -0
- package/dist/dashboard/assets/sounds/dice-touch.wav +0 -0
- package/dist/dashboard/card.js +61 -0
- package/dist/dashboard/columns.js +37 -0
- package/dist/dashboard/combat.js +72 -0
- package/dist/dashboard/data.js +3 -0
- package/dist/dashboard/dice/burn.js +200 -0
- package/dist/dashboard/dice/celebration.js +199 -0
- package/dist/dashboard/dice/floor-cracks.js +149 -0
- package/dist/dashboard/dice/frost.js +51 -0
- package/dist/dashboard/dice/load.js +66 -0
- package/dist/dashboard/dice/models.js +138 -0
- package/dist/dashboard/dice/pool.js +49 -0
- package/dist/dashboard/dice/roller.js +101 -0
- package/dist/dashboard/dice/sets.js +49 -0
- package/dist/dashboard/dice/sounds.js +102 -0
- package/dist/dashboard/dice/stage.js +355 -0
- package/dist/dashboard/dice/throw.js +242 -0
- package/dist/dashboard/dice/tray.js +365 -0
- package/dist/dashboard/faces.js +16 -0
- package/dist/dashboard/footer.js +17 -0
- package/dist/dashboard/free-rolls.js +41 -0
- package/dist/dashboard/game-words.js +164 -0
- package/dist/dashboard/glass.js +12 -0
- package/dist/dashboard/guide/ar.md +306 -0
- package/dist/dashboard/guide/cs.md +306 -0
- package/dist/dashboard/guide/da.md +306 -0
- package/dist/dashboard/guide/de.md +306 -0
- package/dist/dashboard/guide/el.md +306 -0
- package/dist/dashboard/guide/en.md +305 -0
- package/dist/dashboard/guide/es.md +306 -0
- package/dist/dashboard/guide/fi.md +306 -0
- package/dist/dashboard/guide/fr.md +306 -0
- package/dist/dashboard/guide/he.md +306 -0
- package/dist/dashboard/guide/hi.md +306 -0
- package/dist/dashboard/guide/hu.md +306 -0
- package/dist/dashboard/guide/is.md +306 -0
- package/dist/dashboard/guide/it.md +306 -0
- package/dist/dashboard/guide/ja.md +306 -0
- package/dist/dashboard/guide/ko.md +306 -0
- package/dist/dashboard/guide/nb.md +306 -0
- package/dist/dashboard/guide/nl.md +306 -0
- package/dist/dashboard/guide/pl.md +306 -0
- package/dist/dashboard/guide/pt.md +306 -0
- package/dist/dashboard/guide/ro.md +306 -0
- package/dist/dashboard/guide/ru.md +306 -0
- package/dist/dashboard/guide/sv.md +306 -0
- package/dist/dashboard/guide/tr.md +306 -0
- package/dist/dashboard/guide/uk.md +306 -0
- package/dist/dashboard/guide/zh.md +306 -0
- package/dist/dashboard/guide-blocks.js +72 -0
- package/dist/dashboard/guide-markdown.js +63 -0
- package/dist/dashboard/help.js +92 -0
- package/dist/dashboard/i18n/ar.json +670 -0
- package/dist/dashboard/i18n/cs.json +670 -0
- package/dist/dashboard/i18n/da.json +670 -0
- package/dist/dashboard/i18n/de.json +670 -0
- package/dist/dashboard/i18n/el.json +670 -0
- package/dist/dashboard/i18n/es.json +670 -0
- package/dist/dashboard/i18n/fi.json +670 -0
- package/dist/dashboard/i18n/fr.json +670 -0
- package/dist/dashboard/i18n/he.json +670 -0
- package/dist/dashboard/i18n/hi.json +670 -0
- package/dist/dashboard/i18n/hu.json +670 -0
- package/dist/dashboard/i18n/is.json +670 -0
- package/dist/dashboard/i18n/it.json +670 -0
- package/dist/dashboard/i18n/ja.json +670 -0
- package/dist/dashboard/i18n/ko.json +670 -0
- package/dist/dashboard/i18n/nb.json +670 -0
- package/dist/dashboard/i18n/nl.json +670 -0
- package/dist/dashboard/i18n/pl.json +670 -0
- package/dist/dashboard/i18n/pt.json +670 -0
- package/dist/dashboard/i18n/ro.json +670 -0
- package/dist/dashboard/i18n/ru.json +670 -0
- package/dist/dashboard/i18n/sv.json +670 -0
- package/dist/dashboard/i18n/tr.json +670 -0
- package/dist/dashboard/i18n/uk.json +670 -0
- package/dist/dashboard/i18n/zh.json +670 -0
- package/dist/dashboard/icons.js +123 -0
- package/dist/dashboard/journal.js +188 -0
- package/dist/dashboard/labels.js +226 -0
- package/dist/dashboard/language-choice.js +83 -0
- package/dist/dashboard/languages.js +144 -0
- package/dist/dashboard/layout.js +93 -0
- package/dist/dashboard/map-sheet.js +32 -0
- package/dist/dashboard/map-symbols.js +79 -0
- package/dist/dashboard/markdown.js +72 -0
- package/dist/dashboard/master.js +69 -0
- package/dist/dashboard/mood-faces.js +16 -0
- package/dist/dashboard/mood.js +27 -0
- package/dist/dashboard/notes.js +203 -0
- package/dist/dashboard/notices.js +24 -0
- package/dist/dashboard/pages.js +32 -0
- package/dist/dashboard/party.js +65 -0
- package/dist/dashboard/place-map-view.js +362 -0
- package/dist/dashboard/place-map.js +204 -0
- package/dist/dashboard/prefs.js +97 -0
- package/dist/dashboard/reactions.js +28 -0
- package/dist/dashboard/requested.js +32 -0
- package/dist/dashboard/rolls.js +240 -0
- package/dist/dashboard/saves.js +154 -0
- package/dist/dashboard/scene.js +63 -0
- package/dist/dashboard/settings.js +362 -0
- package/dist/dashboard/setup.js +195 -0
- package/dist/dashboard/sheet.js +180 -0
- package/dist/dashboard/status.js +42 -0
- package/dist/dashboard/story.js +51 -0
- package/dist/dashboard/style.css +9355 -0
- package/dist/dashboard/text.js +158 -0
- package/dist/dashboard/theme.js +32 -0
- package/dist/dashboard/top.js +156 -0
- package/dist/dashboard/widgets.js +69 -0
- package/dist/dashboard/world-map.js +523 -0
- package/dist/dashboard/world.js +357 -0
- package/dist/dashboard-server.d.ts +38 -0
- package/dist/dashboard-server.js +818 -0
- package/dist/dice/evaluate.d.ts +30 -0
- package/dist/dice/evaluate.js +90 -0
- package/dist/dice/format.d.ts +3 -0
- package/dist/dice/format.js +26 -0
- package/dist/dice/index.d.ts +4 -0
- package/dist/dice/index.js +5 -0
- package/dist/dice/notation.d.ts +43 -0
- package/dist/dice/notation.js +132 -0
- package/dist/dice/proof.d.ts +4 -0
- package/dist/dice/proof.js +12 -0
- package/dist/dice/roll-dice.d.ts +29 -0
- package/dist/dice/roll-dice.js +43 -0
- package/dist/dice/words.d.ts +12 -0
- package/dist/dice/words.js +21 -0
- package/dist/effects/effect.d.ts +57 -0
- package/dist/effects/effect.js +123 -0
- package/dist/effects/index.d.ts +1 -0
- package/dist/effects/index.js +2 -0
- package/dist/grid/grid.d.ts +53 -0
- package/dist/grid/grid.js +151 -0
- package/dist/grid/index.d.ts +2 -0
- package/dist/grid/index.js +2 -0
- package/dist/grid/paths.d.ts +27 -0
- package/dist/grid/paths.js +128 -0
- package/dist/images/images.d.ts +26 -0
- package/dist/images/images.js +74 -0
- package/dist/images/index.d.ts +1 -0
- package/dist/images/index.js +2 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/instructions/index.d.ts +17 -0
- package/dist/instructions/index.js +48 -0
- package/dist/map/geometry.d.ts +22 -0
- package/dist/map/geometry.js +66 -0
- package/dist/map/index.d.ts +3 -0
- package/dist/map/index.js +5 -0
- package/dist/map/looks.d.ts +9 -0
- package/dist/map/looks.js +57 -0
- package/dist/map/ways.d.ts +36 -0
- package/dist/map/ways.js +78 -0
- package/dist/mcp-server.d.ts +22 -0
- package/dist/mcp-server.js +289 -0
- package/dist/money/index.d.ts +1 -0
- package/dist/money/index.js +2 -0
- package/dist/money/money.d.ts +48 -0
- package/dist/money/money.js +218 -0
- package/dist/page-words.d.ts +46 -0
- package/dist/page-words.js +221 -0
- package/dist/pages/check.d.ts +9 -0
- package/dist/pages/check.js +345 -0
- package/dist/pages/containers.d.ts +34 -0
- package/dist/pages/containers.js +181 -0
- package/dist/pages/environment.d.ts +26 -0
- package/dist/pages/environment.js +118 -0
- package/dist/pages/index.d.ts +15 -0
- package/dist/pages/index.js +16 -0
- package/dist/pages/inheritance.d.ts +80 -0
- package/dist/pages/inheritance.js +260 -0
- package/dist/pages/maps.d.ts +11 -0
- package/dist/pages/maps.js +14 -0
- package/dist/pages/markdown.d.ts +59 -0
- package/dist/pages/markdown.js +271 -0
- package/dist/pages/page-file.d.ts +26 -0
- package/dist/pages/page-file.js +166 -0
- package/dist/pages/page-types.d.ts +17 -0
- package/dist/pages/page-types.js +18 -0
- package/dist/pages/positions.d.ts +11 -0
- package/dist/pages/positions.js +23 -0
- package/dist/pages/rename-page.d.ts +39 -0
- package/dist/pages/rename-page.js +109 -0
- package/dist/pages/roads.d.ts +11 -0
- package/dist/pages/roads.js +40 -0
- package/dist/pages/standard-fields.d.ts +31 -0
- package/dist/pages/standard-fields.js +142 -0
- package/dist/pages/system-pages.d.ts +35 -0
- package/dist/pages/system-pages.js +98 -0
- package/dist/pages/world.d.ts +174 -0
- package/dist/pages/world.js +349 -0
- package/dist/pages/write-page.d.ts +27 -0
- package/dist/pages/write-page.js +311 -0
- package/dist/pictures/briefs.d.ts +25 -0
- package/dist/pictures/briefs.js +145 -0
- package/dist/pictures/chosen.d.ts +5 -0
- package/dist/pictures/chosen.js +21 -0
- package/dist/pictures/claude.d.ts +14 -0
- package/dist/pictures/claude.js +129 -0
- package/dist/pictures/codex.d.ts +20 -0
- package/dist/pictures/codex.js +154 -0
- package/dist/pictures/helpers.d.ts +26 -0
- package/dist/pictures/helpers.js +219 -0
- package/dist/pictures/index.d.ts +6 -0
- package/dist/pictures/index.js +8 -0
- package/dist/pictures/stop.d.ts +3 -0
- package/dist/pictures/stop.js +10 -0
- package/dist/pictures/svg.d.ts +4 -0
- package/dist/pictures/svg.js +129 -0
- package/dist/player-notes/index.d.ts +1 -0
- package/dist/player-notes/index.js +2 -0
- package/dist/player-notes/notes.d.ts +21 -0
- package/dist/player-notes/notes.js +50 -0
- package/dist/progression/index.d.ts +1 -0
- package/dist/progression/index.js +1 -0
- package/dist/progression/level-table.d.ts +41 -0
- package/dist/progression/level-table.js +123 -0
- package/dist/rules/index.d.ts +3 -0
- package/dist/rules/index.js +4 -0
- package/dist/rules/rule-book.d.ts +31 -0
- package/dist/rules/rule-book.js +157 -0
- package/dist/rules/search.d.ts +18 -0
- package/dist/rules/search.js +101 -0
- package/dist/rules/shown.d.ts +19 -0
- package/dist/rules/shown.js +44 -0
- package/dist/saves/index.d.ts +1 -0
- package/dist/saves/index.js +2 -0
- package/dist/saves/saves.d.ts +14 -0
- package/dist/saves/saves.js +27 -0
- package/dist/scene/index.d.ts +1 -0
- package/dist/scene/index.js +2 -0
- package/dist/scene/scene.d.ts +46 -0
- package/dist/scene/scene.js +44 -0
- package/dist/systems/game-system.d.ts +236 -0
- package/dist/systems/game-system.js +593 -0
- package/dist/systems/index.d.ts +2 -0
- package/dist/systems/index.js +3 -0
- package/dist/systems/words.d.ts +9 -0
- package/dist/systems/words.js +23 -0
- package/dist/time/game-date.d.ts +20 -0
- package/dist/time/game-date.js +59 -0
- package/dist/time/index.d.ts +1 -0
- package/dist/time/index.js +2 -0
- package/dist/triggers/index.d.ts +1 -0
- package/dist/triggers/index.js +2 -0
- package/dist/triggers/trigger.d.ts +43 -0
- package/dist/triggers/trigger.js +98 -0
- package/instructions/author.md +1 -0
- package/instructions/buttons-physical-dice.md +1 -0
- package/instructions/buttons.md +1 -0
- package/instructions/combat.md +3 -0
- package/instructions/core.md +54 -0
- package/instructions/dashboard.md +7 -0
- package/instructions/mentor-hints.md +1 -0
- package/instructions/mentor-tutorial.md +1 -0
- package/instructions/new-day.md +1 -0
- package/instructions/play.md +23 -0
- package/instructions/prose-literary.md +1 -0
- package/instructions/prose-pulp.md +1 -0
- package/instructions/prose-wry.md +1 -0
- package/instructions/session-zero.md +3 -0
- package/instructions/setup.md +3 -0
- package/instructions/start.md +1 -0
- package/instructions/story-arcs.md +1 -0
- package/instructions/story-episodes.md +1 -0
- package/instructions/story-mystery.md +1 -0
- package/instructions/style.md +1 -0
- package/package.json +85 -4
- package/systems/5e/LICENSE.md +25 -0
- package/systems/5e/images/acid-blob.svg +1 -0
- package/systems/5e/images/angel-outfit.svg +1 -0
- package/systems/5e/images/angler-fish.svg +1 -0
- package/systems/5e/images/angular-spider.svg +1 -0
- package/systems/5e/images/animal-skull.svg +1 -0
- package/systems/5e/images/bad-gnome.svg +1 -0
- package/systems/5e/images/badger.svg +1 -0
- package/systems/5e/images/bandit.svg +1 -0
- package/systems/5e/images/barn-owl.svg +1 -0
- package/systems/5e/images/basset-hound-head.svg +1 -0
- package/systems/5e/images/bat.svg +1 -0
- package/systems/5e/images/bear-face.svg +1 -0
- package/systems/5e/images/bear-head.svg +1 -0
- package/systems/5e/images/beetle-shell.svg +1 -0
- package/systems/5e/images/berry-bush.svg +1 -0
- package/systems/5e/images/bestial-fangs.svg +1 -0
- package/systems/5e/images/big-wave.svg +1 -0
- package/systems/5e/images/black-knight-helm.svg +1 -0
- package/systems/5e/images/boar-tusks.svg +1 -0
- package/systems/5e/images/boar.svg +1 -0
- package/systems/5e/images/bone-gnawer.svg +1 -0
- package/systems/5e/images/breastplate.svg +1 -0
- package/systems/5e/images/brute.svg +1 -0
- package/systems/5e/images/camel-head.svg +1 -0
- package/systems/5e/images/carnivore-mouth.svg +1 -0
- package/systems/5e/images/cassowary-head.svg +1 -0
- package/systems/5e/images/cat.svg +1 -0
- package/systems/5e/images/centaur.svg +1 -0
- package/systems/5e/images/centipede.svg +1 -0
- package/systems/5e/images/charging-bull.svg +1 -0
- package/systems/5e/images/closed-barbute.svg +1 -0
- package/systems/5e/images/cobra.svg +1 -0
- package/systems/5e/images/condor-emblem.svg +1 -0
- package/systems/5e/images/cowled.svg +1 -0
- package/systems/5e/images/crab-claw.svg +1 -0
- package/systems/5e/images/crab.svg +1 -0
- package/systems/5e/images/croc-jaws.svg +1 -0
- package/systems/5e/images/crow-dive.svg +1 -0
- package/systems/5e/images/crown.svg +1 -0
- package/systems/5e/images/crowned-skull.svg +1 -0
- package/systems/5e/images/cube.svg +1 -0
- package/systems/5e/images/cultist-lorc.svg +1 -0
- package/systems/5e/images/cultist-skoll.svg +1 -0
- package/systems/5e/images/curled-tentacle.svg +1 -0
- package/systems/5e/images/daemon-skull.svg +1 -0
- package/systems/5e/images/deer-head.svg +1 -0
- package/systems/5e/images/desert-skull.svg +1 -0
- package/systems/5e/images/devil-mask.svg +1 -0
- package/systems/5e/images/diablo-skull.svg +1 -0
- package/systems/5e/images/dinosaur-rex.svg +1 -0
- package/systems/5e/images/direwolf.svg +1 -0
- package/systems/5e/images/djinn.svg +1 -0
- package/systems/5e/images/donkey.svg +1 -0
- package/systems/5e/images/dragon-head-faithtoken.svg +1 -0
- package/systems/5e/images/dragon-head-lorc.svg +1 -0
- package/systems/5e/images/dragon-shield.svg +1 -0
- package/systems/5e/images/dragon-spiral.svg +1 -0
- package/systems/5e/images/dread-skull.svg +1 -0
- package/systems/5e/images/duality-mask.svg +1 -0
- package/systems/5e/images/dust-cloud.svg +1 -0
- package/systems/5e/images/dwarf-face.svg +1 -0
- package/systems/5e/images/dwarf-helmet.svg +1 -0
- package/systems/5e/images/eagle-emblem.svg +1 -0
- package/systems/5e/images/eagle-head.svg +1 -0
- package/systems/5e/images/egyptian-sphinx.svg +1 -0
- package/systems/5e/images/elephant-head.svg +1 -0
- package/systems/5e/images/elf-ear.svg +1 -0
- package/systems/5e/images/elf-helmet.svg +1 -0
- package/systems/5e/images/ent-mouth.svg +1 -0
- package/systems/5e/images/ermine.svg +1 -0
- package/systems/5e/images/eruption.svg +1 -0
- package/systems/5e/images/evil-bat.svg +1 -0
- package/systems/5e/images/evil-minion.svg +1 -0
- package/systems/5e/images/evil-tree.svg +1 -0
- package/systems/5e/images/evil-wings.svg +1 -0
- package/systems/5e/images/eyestalk.svg +1 -0
- package/systems/5e/images/fairy.svg +1 -0
- package/systems/5e/images/farmer.svg +1 -0
- package/systems/5e/images/feline.svg +1 -0
- package/systems/5e/images/fire-silhouette.svg +1 -0
- package/systems/5e/images/fish-monster.svg +1 -0
- package/systems/5e/images/fleshy-mass.svg +1 -0
- package/systems/5e/images/fluffy-flame.svg +1 -0
- package/systems/5e/images/fly.svg +1 -0
- package/systems/5e/images/fox-head.svg +1 -0
- package/systems/5e/images/frankenstein-creature.svg +1 -0
- package/systems/5e/images/frog.svg +1 -0
- package/systems/5e/images/gargoyle.svg +1 -0
- package/systems/5e/images/gecko.svg +1 -0
- package/systems/5e/images/ghost.svg +1 -0
- package/systems/5e/images/giant.svg +1 -0
- package/systems/5e/images/goat.svg +1 -0
- package/systems/5e/images/goblin-head.svg +1 -0
- package/systems/5e/images/goblin.svg +1 -0
- package/systems/5e/images/golem-head.svg +1 -0
- package/systems/5e/images/gooey-daemon.svg +1 -0
- package/systems/5e/images/gorilla.svg +1 -0
- package/systems/5e/images/greek-sphinx.svg +1 -0
- package/systems/5e/images/griffin-symbol.svg +1 -0
- package/systems/5e/images/grim-reaper.svg +1 -0
- package/systems/5e/images/hanging-spider.svg +1 -0
- package/systems/5e/images/harpy.svg +1 -0
- package/systems/5e/images/hawk-emblem.svg +1 -0
- package/systems/5e/images/hooded-assassin.svg +1 -0
- package/systems/5e/images/horned-reptile.svg +1 -0
- package/systems/5e/images/horse-head-delapouite.svg +1 -0
- package/systems/5e/images/horse-head-lorc.svg +1 -0
- package/systems/5e/images/hound.svg +1 -0
- package/systems/5e/images/hydra.svg +1 -0
- package/systems/5e/images/hyena-head.svg +1 -0
- package/systems/5e/images/icicles-aura.svg +1 -0
- package/systems/5e/images/ifrit.svg +1 -0
- package/systems/5e/images/imp-laugh.svg +1 -0
- package/systems/5e/images/imp.svg +1 -0
- package/systems/5e/images/insect-jaws.svg +1 -0
- package/systems/5e/images/invisible-face.svg +1 -0
- package/systems/5e/images/jumping-dog.svg +1 -0
- package/systems/5e/images/kraken-tentacle.svg +1 -0
- package/systems/5e/images/labrador-head.svg +1 -0
- package/systems/5e/images/lion.svg +1 -0
- package/systems/5e/images/lizard-tongue.svg +1 -0
- package/systems/5e/images/lizardman.svg +1 -0
- package/systems/5e/images/long-antennae-bug.svg +1 -0
- package/systems/5e/images/long-legged-spider.svg +1 -0
- package/systems/5e/images/mammoth.svg +1 -0
- package/systems/5e/images/mandrill-head.svg +1 -0
- package/systems/5e/images/manta-ray.svg +1 -0
- package/systems/5e/images/masked-spider.svg +1 -0
- package/systems/5e/images/medusa-head.svg +1 -0
- package/systems/5e/images/mermaid.svg +1 -0
- package/systems/5e/images/metal-golem-head.svg +1 -0
- package/systems/5e/images/mimic-chest.svg +1 -0
- package/systems/5e/images/minotaur.svg +1 -0
- package/systems/5e/images/monk-face.svg +1 -0
- package/systems/5e/images/moon-bats.svg +1 -0
- package/systems/5e/images/mucous-pillar.svg +1 -0
- package/systems/5e/images/mummy-head.svg +1 -0
- package/systems/5e/images/mushrooms-cluster.svg +1 -0
- package/systems/5e/images/octopus.svg +1 -0
- package/systems/5e/images/ogre.svg +1 -0
- package/systems/5e/images/oni.svg +1 -0
- package/systems/5e/images/orc-head.svg +1 -0
- package/systems/5e/images/owl.svg +1 -0
- package/systems/5e/images/pan-flute.svg +1 -0
- package/systems/5e/images/pegasus.svg +1 -0
- package/systems/5e/images/person.svg +1 -0
- package/systems/5e/images/piranha.svg +1 -0
- package/systems/5e/images/plesiosaurus.svg +1 -0
- package/systems/5e/images/pointy-hat.svg +1 -0
- package/systems/5e/images/polar-bear.svg +1 -0
- package/systems/5e/images/rat.svg +1 -0
- package/systems/5e/images/rattlesnake.svg +1 -0
- package/systems/5e/images/raven.svg +1 -0
- package/systems/5e/images/rhinoceros-horn.svg +1 -0
- package/systems/5e/images/robber.svg +1 -0
- package/systems/5e/images/robin-hood-hat.svg +1 -0
- package/systems/5e/images/robot-golem.svg +1 -0
- package/systems/5e/images/rock-golem.svg +1 -0
- package/systems/5e/images/rolled-cloth.svg +1 -0
- package/systems/5e/images/rooster.svg +1 -0
- package/systems/5e/images/saber-toothed-cat-head.svg +1 -0
- package/systems/5e/images/salamander.svg +1 -0
- package/systems/5e/images/school-of-fish.svg +1 -0
- package/systems/5e/images/scorpion.svg +1 -0
- package/systems/5e/images/sea-serpent.svg +1 -0
- package/systems/5e/images/seahorse.svg +1 -0
- package/systems/5e/images/seated-mouse.svg +1 -0
- package/systems/5e/images/sensuousness.svg +1 -0
- package/systems/5e/images/shadow-follower.svg +1 -0
- package/systems/5e/images/shambling-mound.svg +1 -0
- package/systems/5e/images/shambling-zombie.svg +1 -0
- package/systems/5e/images/shark-fin.svg +1 -0
- package/systems/5e/images/shark-jaws.svg +1 -0
- package/systems/5e/images/skeleton.svg +1 -0
- package/systems/5e/images/slime.svg +1 -0
- package/systems/5e/images/small-fire.svg +1 -0
- package/systems/5e/images/snake-spiral.svg +1 -0
- package/systems/5e/images/snake-tongue.svg +1 -0
- package/systems/5e/images/snake-totem.svg +1 -0
- package/systems/5e/images/snake.svg +1 -0
- package/systems/5e/images/spark-spirit.svg +1 -0
- package/systems/5e/images/spartan.svg +1 -0
- package/systems/5e/images/spectre.svg +1 -0
- package/systems/5e/images/sperm-whale.svg +1 -0
- package/systems/5e/images/spider-alt.svg +1 -0
- package/systems/5e/images/spiked-dragon-head.svg +1 -0
- package/systems/5e/images/spiked-tail.svg +1 -0
- package/systems/5e/images/spotted-mushroom.svg +1 -0
- package/systems/5e/images/spy.svg +1 -0
- package/systems/5e/images/squid.svg +1 -0
- package/systems/5e/images/stag-head.svg +1 -0
- package/systems/5e/images/steam.svg +1 -0
- package/systems/5e/images/sun-priest.svg +1 -0
- package/systems/5e/images/tick.svg +1 -0
- package/systems/5e/images/tiger-head.svg +1 -0
- package/systems/5e/images/tiger.svg +1 -0
- package/systems/5e/images/toad-teeth.svg +1 -0
- package/systems/5e/images/tornado.svg +1 -0
- package/systems/5e/images/transparent-slime.svg +1 -0
- package/systems/5e/images/tree-face.svg +1 -0
- package/systems/5e/images/tribal-mask.svg +1 -0
- package/systems/5e/images/triceratops-head.svg +1 -0
- package/systems/5e/images/triton-head.svg +1 -0
- package/systems/5e/images/troglodyte.svg +1 -0
- package/systems/5e/images/troll.svg +1 -0
- package/systems/5e/images/turtle.svg +1 -0
- package/systems/5e/images/unicorn.svg +1 -0
- package/systems/5e/images/vampire-dracula.svg +1 -0
- package/systems/5e/images/viking-head.svg +1 -0
- package/systems/5e/images/visored-helm.svg +1 -0
- package/systems/5e/images/vulture.svg +1 -0
- package/systems/5e/images/warlord-helmet.svg +1 -0
- package/systems/5e/images/wasp-sting.svg +1 -0
- package/systems/5e/images/werewolf.svg +1 -0
- package/systems/5e/images/winged-sword.svg +1 -0
- package/systems/5e/images/witch-face.svg +1 -0
- package/systems/5e/images/wizard-face.svg +1 -0
- package/systems/5e/images/wolf-head.svg +1 -0
- package/systems/5e/images/wolf-howl.svg +1 -0
- package/systems/5e/images/woman-elf-face.svg +1 -0
- package/systems/5e/images/worm-mouth.svg +1 -0
- package/systems/5e/images/wyvern.svg +1 -0
- package/systems/5e/instructions/level-up.md +1 -0
- package/systems/5e/instructions/mentor-tutorial.md +1 -0
- package/systems/5e/instructions/play.md +5 -0
- package/systems/5e/instructions/quest-ends.md +1 -0
- package/systems/5e/instructions/session-zero.md +1 -0
- package/systems/5e/rules/Adventuring.md +228 -0
- package/systems/5e/rules/Beyond 1st Level.md +241 -0
- package/systems/5e/rules/Combat.md +504 -0
- package/systems/5e/rules/Conditions.md +110 -0
- package/systems/5e/rules/Diseases.md +41 -0
- package/systems/5e/rules/Equipment.md +731 -0
- package/systems/5e/rules/Fantasy-Historical Pantheons.md +112 -0
- package/systems/5e/rules/Madness.md +72 -0
- package/systems/5e/rules/Magic Items.md +142 -0
- package/systems/5e/rules/Monsters.md +403 -0
- package/systems/5e/rules/Nonplayer Characters.md +15 -0
- package/systems/5e/rules/Objects.md +40 -0
- package/systems/5e/rules/Poisons.md +64 -0
- package/systems/5e/rules/Races.md +33 -0
- package/systems/5e/rules/Spellcasting.md +225 -0
- package/systems/5e/rules/The Planes of Existence.md +59 -0
- package/systems/5e/rules/Traps.md +170 -0
- package/systems/5e/rules/Using Ability Scores.md +394 -0
- package/systems/5e/system.yaml +602 -0
- package/systems/5e/words/ar.yaml +421 -0
- package/systems/5e/words/cs.yaml +421 -0
- package/systems/5e/words/da.yaml +421 -0
- package/systems/5e/words/de.yaml +421 -0
- package/systems/5e/words/el.yaml +421 -0
- package/systems/5e/words/es.yaml +421 -0
- package/systems/5e/words/fi.yaml +421 -0
- package/systems/5e/words/fr.yaml +421 -0
- package/systems/5e/words/he.yaml +421 -0
- package/systems/5e/words/hi.yaml +421 -0
- package/systems/5e/words/hu.yaml +421 -0
- package/systems/5e/words/is.yaml +421 -0
- package/systems/5e/words/it.yaml +453 -0
- package/systems/5e/words/ja.yaml +421 -0
- package/systems/5e/words/ko.yaml +421 -0
- package/systems/5e/words/nb.yaml +421 -0
- package/systems/5e/words/nl.yaml +421 -0
- package/systems/5e/words/pl.yaml +421 -0
- package/systems/5e/words/pt.yaml +421 -0
- package/systems/5e/words/ro.yaml +421 -0
- package/systems/5e/words/ru.yaml +421 -0
- package/systems/5e/words/sv.yaml +421 -0
- package/systems/5e/words/tr.yaml +421 -0
- package/systems/5e/words/uk.yaml +421 -0
- package/systems/5e/words/zh.yaml +421 -0
- package/systems/5e/world/creatures/Aboleth.md +65 -0
- package/systems/5e/world/creatures/Acolyte.md +37 -0
- package/systems/5e/world/creatures/Adult Black Dragon.md +69 -0
- package/systems/5e/world/creatures/Adult Blue Dragon.md +66 -0
- package/systems/5e/world/creatures/Adult Brass Dragon.md +70 -0
- package/systems/5e/world/creatures/Adult Bronze Dragon.md +78 -0
- package/systems/5e/world/creatures/Adult Copper Dragon.md +70 -0
- package/systems/5e/world/creatures/Adult Gold Dragon.md +78 -0
- package/systems/5e/world/creatures/Adult Green Dragon.md +70 -0
- package/systems/5e/world/creatures/Adult Red Dragon.md +66 -0
- package/systems/5e/world/creatures/Adult Silver Dragon.md +74 -0
- package/systems/5e/world/creatures/Adult White Dragon.md +70 -0
- package/systems/5e/world/creatures/Air Elemental.md +43 -0
- package/systems/5e/world/creatures/Ancient Black Dragon.md +69 -0
- package/systems/5e/world/creatures/Ancient Blue Dragon.md +66 -0
- package/systems/5e/world/creatures/Ancient Brass Dragon.md +75 -0
- package/systems/5e/world/creatures/Ancient Bronze Dragon.md +78 -0
- package/systems/5e/world/creatures/Ancient Copper Dragon.md +75 -0
- package/systems/5e/world/creatures/Ancient Gold Dragon.md +78 -0
- package/systems/5e/world/creatures/Ancient Green Dragon.md +70 -0
- package/systems/5e/world/creatures/Ancient Red Dragon.md +66 -0
- package/systems/5e/world/creatures/Ancient Silver Dragon.md +74 -0
- package/systems/5e/world/creatures/Ancient White Dragon.md +70 -0
- package/systems/5e/world/creatures/Androsphinx.md +82 -0
- package/systems/5e/world/creatures/Animated Armor.md +39 -0
- package/systems/5e/world/creatures/Ankheg.md +31 -0
- package/systems/5e/world/creatures/Ape.md +32 -0
- package/systems/5e/world/creatures/Archmage.md +63 -0
- package/systems/5e/world/creatures/Assassin.md +48 -0
- package/systems/5e/world/creatures/Awakened Shrub.md +34 -0
- package/systems/5e/world/creatures/Awakened Tree.md +35 -0
- package/systems/5e/world/creatures/Axe Beak.md +26 -0
- package/systems/5e/world/creatures/Azer.md +40 -0
- package/systems/5e/world/creatures/Baboon.md +30 -0
- package/systems/5e/world/creatures/Badger.md +31 -0
- package/systems/5e/world/creatures/Balor.md +55 -0
- package/systems/5e/world/creatures/Bandit Captain.md +45 -0
- package/systems/5e/world/creatures/Bandit.md +33 -0
- package/systems/5e/world/creatures/Barbed Devil.md +52 -0
- package/systems/5e/world/creatures/Basilisk.md +35 -0
- package/systems/5e/world/creatures/Bat.md +34 -0
- package/systems/5e/world/creatures/Bearded Devil.md +48 -0
- package/systems/5e/world/creatures/Behir.md +44 -0
- package/systems/5e/world/creatures/Berserker.md +33 -0
- package/systems/5e/world/creatures/Black Bear.md +38 -0
- package/systems/5e/world/creatures/Black Dragon Wyrmling.md +41 -0
- package/systems/5e/world/creatures/Black Pudding.md +46 -0
- package/systems/5e/world/creatures/Blink Dog.md +36 -0
- package/systems/5e/world/creatures/Blood Hawk.md +36 -0
- package/systems/5e/world/creatures/Blue Dragon Wyrmling.md +36 -0
- package/systems/5e/world/creatures/Boar.md +33 -0
- package/systems/5e/world/creatures/Bone Devil.md +47 -0
- package/systems/5e/world/creatures/Brass Dragon Wyrmling.md +40 -0
- package/systems/5e/world/creatures/Bronze Dragon Wyrmling.md +45 -0
- package/systems/5e/world/creatures/Brown Bear.md +38 -0
- package/systems/5e/world/creatures/Bugbear.md +39 -0
- package/systems/5e/world/creatures/Bulette.md +37 -0
- package/systems/5e/world/creatures/Camel.md +24 -0
- package/systems/5e/world/creatures/Cat.md +31 -0
- package/systems/5e/world/creatures/Centaur.md +40 -0
- package/systems/5e/world/creatures/Chain Devil.md +52 -0
- package/systems/5e/world/creatures/Chimera.md +41 -0
- package/systems/5e/world/creatures/Chuul.md +45 -0
- package/systems/5e/world/creatures/Clay Golem.md +52 -0
- package/systems/5e/world/creatures/Cloaker.md +56 -0
- package/systems/5e/world/creatures/Cloud Giant.md +46 -0
- package/systems/5e/world/creatures/Cockatrice.md +26 -0
- package/systems/5e/world/creatures/Commoner.md +27 -0
- package/systems/5e/world/creatures/Constrictor Snake.md +29 -0
- package/systems/5e/world/creatures/Copper Dragon Wyrmling.md +40 -0
- package/systems/5e/world/creatures/Couatl.md +54 -0
- package/systems/5e/world/creatures/Crab.md +33 -0
- package/systems/5e/world/creatures/Crocodile.md +32 -0
- package/systems/5e/world/creatures/Cult Fanatic.md +46 -0
- package/systems/5e/world/creatures/Cultist.md +34 -0
- package/systems/5e/world/creatures/Darkmantle.md +42 -0
- package/systems/5e/world/creatures/Death Dog.md +36 -0
- package/systems/5e/world/creatures/Deep Gnome (Svirfneblin).md +46 -0
- package/systems/5e/world/creatures/Deer.md +24 -0
- package/systems/5e/world/creatures/Deva.md +57 -0
- package/systems/5e/world/creatures/Dire Wolf.md +34 -0
- package/systems/5e/world/creatures/Djinni.md +50 -0
- package/systems/5e/world/creatures/Doppelganger.md +45 -0
- package/systems/5e/world/creatures/Draft Horse.md +24 -0
- package/systems/5e/world/creatures/Dragon Turtle.md +47 -0
- package/systems/5e/world/creatures/Dragonborn.md +58 -0
- package/systems/5e/world/creatures/Dretch.md +39 -0
- package/systems/5e/world/creatures/Drider.md +58 -0
- package/systems/5e/world/creatures/Drow Elf.md +46 -0
- package/systems/5e/world/creatures/Druid (creature).md +41 -0
- package/systems/5e/world/creatures/Dryad.md +53 -0
- package/systems/5e/world/creatures/Duergar.md +45 -0
- package/systems/5e/world/creatures/Dust Mephit.md +42 -0
- package/systems/5e/world/creatures/Dwarf.md +48 -0
- package/systems/5e/world/creatures/Eagle.md +31 -0
- package/systems/5e/world/creatures/Earth Elemental.md +44 -0
- package/systems/5e/world/creatures/Efreeti.md +48 -0
- package/systems/5e/world/creatures/Elephant.md +33 -0
- package/systems/5e/world/creatures/Elf.md +44 -0
- package/systems/5e/world/creatures/Elk.md +32 -0
- package/systems/5e/world/creatures/Erinyes.md +51 -0
- package/systems/5e/world/creatures/Ettercap.md +48 -0
- package/systems/5e/world/creatures/Ettin.md +42 -0
- package/systems/5e/world/creatures/Fire Elemental.md +43 -0
- package/systems/5e/world/creatures/Fire Giant.md +35 -0
- package/systems/5e/world/creatures/Flesh Golem.md +53 -0
- package/systems/5e/world/creatures/Flying Snake.md +34 -0
- package/systems/5e/world/creatures/Flying Sword.md +38 -0
- package/systems/5e/world/creatures/Frog.md +32 -0
- package/systems/5e/world/creatures/Frost Giant.md +35 -0
- package/systems/5e/world/creatures/Gargoyle.md +42 -0
- package/systems/5e/world/creatures/Gelatinous Cube.md +49 -0
- package/systems/5e/world/creatures/Ghast.md +40 -0
- package/systems/5e/world/creatures/Ghost.md +49 -0
- package/systems/5e/world/creatures/Ghoul.md +31 -0
- package/systems/5e/world/creatures/Giant Ape.md +32 -0
- package/systems/5e/world/creatures/Giant Badger.md +37 -0
- package/systems/5e/world/creatures/Giant Bat.md +34 -0
- package/systems/5e/world/creatures/Giant Boar.md +33 -0
- package/systems/5e/world/creatures/Giant Centipede.md +27 -0
- package/systems/5e/world/creatures/Giant Constrictor Snake.md +30 -0
- package/systems/5e/world/creatures/Giant Crab.md +33 -0
- package/systems/5e/world/creatures/Giant Crocodile.md +38 -0
- package/systems/5e/world/creatures/Giant Eagle.md +40 -0
- package/systems/5e/world/creatures/Giant Elk.md +37 -0
- package/systems/5e/world/creatures/Giant Fire Beetle.md +33 -0
- package/systems/5e/world/creatures/Giant Frog.md +40 -0
- package/systems/5e/world/creatures/Giant Goat.md +33 -0
- package/systems/5e/world/creatures/Giant Hyena.md +30 -0
- package/systems/5e/world/creatures/Giant Lizard.md +29 -0
- package/systems/5e/world/creatures/Giant Octopus.md +41 -0
- package/systems/5e/world/creatures/Giant Owl.md +38 -0
- package/systems/5e/world/creatures/Giant Poisonous Snake.md +27 -0
- package/systems/5e/world/creatures/Giant Rat.md +39 -0
- package/systems/5e/world/creatures/Giant Scorpion.md +32 -0
- package/systems/5e/world/creatures/Giant Sea Horse.md +36 -0
- package/systems/5e/world/creatures/Giant Shark.md +38 -0
- package/systems/5e/world/creatures/Giant Spider.md +45 -0
- package/systems/5e/world/creatures/Giant Toad.md +39 -0
- package/systems/5e/world/creatures/Giant Vulture.md +43 -0
- package/systems/5e/world/creatures/Giant Wasp.md +25 -0
- package/systems/5e/world/creatures/Giant Weasel.md +31 -0
- package/systems/5e/world/creatures/Giant Wolf Spider.md +41 -0
- package/systems/5e/world/creatures/Gibbering Mouther.md +41 -0
- package/systems/5e/world/creatures/Glabrezu.md +48 -0
- package/systems/5e/world/creatures/Gladiator.md +49 -0
- package/systems/5e/world/creatures/Gnoll.md +38 -0
- package/systems/5e/world/creatures/Gnome.md +37 -0
- package/systems/5e/world/creatures/Goat.md +32 -0
- package/systems/5e/world/creatures/Goblin.md +36 -0
- package/systems/5e/world/creatures/Gold Dragon Wyrmling.md +45 -0
- package/systems/5e/world/creatures/Gorgon.md +39 -0
- package/systems/5e/world/creatures/Gray Ooze.md +42 -0
- package/systems/5e/world/creatures/Green Dragon Wyrmling.md +42 -0
- package/systems/5e/world/creatures/Green Hag.md +49 -0
- package/systems/5e/world/creatures/Grick.md +39 -0
- package/systems/5e/world/creatures/Griffon.md +38 -0
- package/systems/5e/world/creatures/Grimlock.md +39 -0
- package/systems/5e/world/creatures/Guard.md +29 -0
- package/systems/5e/world/creatures/Guardian Naga.md +55 -0
- package/systems/5e/world/creatures/Gynosphinx.md +71 -0
- package/systems/5e/world/creatures/Half-Elf.md +40 -0
- package/systems/5e/world/creatures/Half-Orc.md +44 -0
- package/systems/5e/world/creatures/Half-Red Dragon Veteran.md +42 -0
- package/systems/5e/world/creatures/Halfling.md +39 -0
- package/systems/5e/world/creatures/Harpy.md +39 -0
- package/systems/5e/world/creatures/Hawk.md +31 -0
- package/systems/5e/world/creatures/Hell Hound.md +40 -0
- package/systems/5e/world/creatures/Hezrou.md +45 -0
- package/systems/5e/world/creatures/High Elf.md +22 -0
- package/systems/5e/world/creatures/Hill Dwarf.md +16 -0
- package/systems/5e/world/creatures/Hill Giant.md +33 -0
- package/systems/5e/world/creatures/Hippogriff.md +37 -0
- package/systems/5e/world/creatures/Hobgoblin.md +35 -0
- package/systems/5e/world/creatures/Homunculus.md +35 -0
- package/systems/5e/world/creatures/Horned Devil.md +49 -0
- package/systems/5e/world/creatures/Human.md +29 -0
- package/systems/5e/world/creatures/Hunter Shark.md +38 -0
- package/systems/5e/world/creatures/Hydra.md +49 -0
- package/systems/5e/world/creatures/Hyena.md +30 -0
- package/systems/5e/world/creatures/Ice Devil.md +56 -0
- package/systems/5e/world/creatures/Ice Mephit.md +45 -0
- package/systems/5e/world/creatures/Imp.md +45 -0
- package/systems/5e/world/creatures/Invisible Stalker.md +42 -0
- package/systems/5e/world/creatures/Iron Golem.md +52 -0
- package/systems/5e/world/creatures/Jackal.md +33 -0
- package/systems/5e/world/creatures/Killer Whale.md +39 -0
- package/systems/5e/world/creatures/Knight.md +48 -0
- package/systems/5e/world/creatures/Kobold.md +37 -0
- package/systems/5e/world/creatures/Kraken.md +69 -0
- package/systems/5e/world/creatures/Lamia.md +46 -0
- package/systems/5e/world/creatures/Lemure.md +37 -0
- package/systems/5e/world/creatures/Lich.md +82 -0
- package/systems/5e/world/creatures/Lightfoot Halfling.md +18 -0
- package/systems/5e/world/creatures/Lion.md +42 -0
- package/systems/5e/world/creatures/Lizard.md +26 -0
- package/systems/5e/world/creatures/Lizardfolk.md +45 -0
- package/systems/5e/world/creatures/Mage.md +47 -0
- package/systems/5e/world/creatures/Magma Mephit.md +45 -0
- package/systems/5e/world/creatures/Magmin.md +37 -0
- package/systems/5e/world/creatures/Mammoth.md +35 -0
- package/systems/5e/world/creatures/Manticore.md +42 -0
- package/systems/5e/world/creatures/Marilith.md +56 -0
- package/systems/5e/world/creatures/Mastiff.md +32 -0
- package/systems/5e/world/creatures/Medusa.md +46 -0
- package/systems/5e/world/creatures/Merfolk.md +32 -0
- package/systems/5e/world/creatures/Merrow.md +42 -0
- package/systems/5e/world/creatures/Mimic.md +46 -0
- package/systems/5e/world/creatures/Minotaur Skeleton.md +38 -0
- package/systems/5e/world/creatures/Minotaur.md +42 -0
- package/systems/5e/world/creatures/Mule.md +32 -0
- package/systems/5e/world/creatures/Mummy Lord.md +82 -0
- package/systems/5e/world/creatures/Mummy.md +38 -0
- package/systems/5e/world/creatures/Nalfeshnee.md +49 -0
- package/systems/5e/world/creatures/Night Hag.md +50 -0
- package/systems/5e/world/creatures/Nightmare.md +39 -0
- package/systems/5e/world/creatures/Noble.md +36 -0
- package/systems/5e/world/creatures/Ochre Jelly.md +42 -0
- package/systems/5e/world/creatures/Octopus.md +41 -0
- package/systems/5e/world/creatures/Ogre Zombie.md +34 -0
- package/systems/5e/world/creatures/Ogre.md +30 -0
- package/systems/5e/world/creatures/Oni.md +53 -0
- package/systems/5e/world/creatures/Orc.md +36 -0
- package/systems/5e/world/creatures/Otyugh.md +42 -0
- package/systems/5e/world/creatures/Owl.md +35 -0
- package/systems/5e/world/creatures/Owlbear.md +38 -0
- package/systems/5e/world/creatures/Panther.md +37 -0
- package/systems/5e/world/creatures/Pegasus.md +28 -0
- package/systems/5e/world/creatures/Phase Spider.md +41 -0
- package/systems/5e/world/creatures/Pit Fiend.md +61 -0
- package/systems/5e/world/creatures/Planetar.md +56 -0
- package/systems/5e/world/creatures/Plesiosaurus.md +32 -0
- package/systems/5e/world/creatures/Poisonous Snake.md +26 -0
- package/systems/5e/world/creatures/Polar Bear.md +38 -0
- package/systems/5e/world/creatures/Pony.md +24 -0
- package/systems/5e/world/creatures/Priest.md +47 -0
- package/systems/5e/world/creatures/Pseudodragon.md +44 -0
- package/systems/5e/world/creatures/Purple Worm.md +42 -0
- package/systems/5e/world/creatures/Quasit.md +44 -0
- package/systems/5e/world/creatures/Quipper.md +36 -0
- package/systems/5e/world/creatures/Rakshasa.md +45 -0
- package/systems/5e/world/creatures/Rat.md +30 -0
- package/systems/5e/world/creatures/Raven.md +31 -0
- package/systems/5e/world/creatures/Red Dragon Wyrmling.md +36 -0
- package/systems/5e/world/creatures/Reef Shark.md +38 -0
- package/systems/5e/world/creatures/Remorhaz.md +39 -0
- package/systems/5e/world/creatures/Rhinoceros.md +30 -0
- package/systems/5e/world/creatures/Riding Horse.md +24 -0
- package/systems/5e/world/creatures/Roc.md +39 -0
- package/systems/5e/world/creatures/Rock Gnome.md +27 -0
- package/systems/5e/world/creatures/Roper.md +48 -0
- package/systems/5e/world/creatures/Rug of Smothering.md +38 -0
- package/systems/5e/world/creatures/Rust Monster.md +39 -0
- package/systems/5e/world/creatures/Saber-Toothed Tiger.md +36 -0
- package/systems/5e/world/creatures/Sahuagin.md +49 -0
- package/systems/5e/world/creatures/Salamander.md +44 -0
- package/systems/5e/world/creatures/Satyr.md +38 -0
- package/systems/5e/world/creatures/Scorpion.md +26 -0
- package/systems/5e/world/creatures/Scout.md +40 -0
- package/systems/5e/world/creatures/Sea Hag.md +46 -0
- package/systems/5e/world/creatures/Sea Horse.md +25 -0
- package/systems/5e/world/creatures/Shadow.md +45 -0
- package/systems/5e/world/creatures/Shambling Mound.md +42 -0
- package/systems/5e/world/creatures/Shield Guardian.md +49 -0
- package/systems/5e/world/creatures/Shrieker.md +31 -0
- package/systems/5e/world/creatures/Silver Dragon Wyrmling.md +39 -0
- package/systems/5e/world/creatures/Skeleton.md +33 -0
- package/systems/5e/world/creatures/Solar.md +76 -0
- package/systems/5e/world/creatures/Specter.md +38 -0
- package/systems/5e/world/creatures/Spider.md +38 -0
- package/systems/5e/world/creatures/Spirit Naga.md +50 -0
- package/systems/5e/world/creatures/Sprite.md +37 -0
- package/systems/5e/world/creatures/Spy.md +42 -0
- package/systems/5e/world/creatures/Steam Mephit.md +40 -0
- package/systems/5e/world/creatures/Stirge.md +29 -0
- package/systems/5e/world/creatures/Stone Giant.md +45 -0
- package/systems/5e/world/creatures/Stone Golem.md +46 -0
- package/systems/5e/world/creatures/Storm Giant.md +51 -0
- package/systems/5e/world/creatures/Succubus-Incubus.md +50 -0
- package/systems/5e/world/creatures/Swarm of Bats.md +39 -0
- package/systems/5e/world/creatures/Swarm of Insects.md +52 -0
- package/systems/5e/world/creatures/Swarm of Poisonous Snakes.md +33 -0
- package/systems/5e/world/creatures/Swarm of Quippers.md +39 -0
- package/systems/5e/world/creatures/Swarm of Rats.md +35 -0
- package/systems/5e/world/creatures/Swarm of Ravens.md +33 -0
- package/systems/5e/world/creatures/Tarrasque.md +76 -0
- package/systems/5e/world/creatures/Thug.md +40 -0
- package/systems/5e/world/creatures/Tiefling.md +40 -0
- package/systems/5e/world/creatures/Tiger.md +37 -0
- package/systems/5e/world/creatures/Treant.md +45 -0
- package/systems/5e/world/creatures/Tribal Warrior.md +33 -0
- package/systems/5e/world/creatures/Triceratops.md +33 -0
- package/systems/5e/world/creatures/Troll.md +42 -0
- package/systems/5e/world/creatures/Tyrannosaurus Rex.md +32 -0
- package/systems/5e/world/creatures/Unicorn.md +70 -0
- package/systems/5e/world/creatures/Vampire Spawn.md +55 -0
- package/systems/5e/world/creatures/Vampire.md +91 -0
- package/systems/5e/world/creatures/Veteran.md +38 -0
- package/systems/5e/world/creatures/Violet Fungus.md +34 -0
- package/systems/5e/world/creatures/Vrock.md +49 -0
- package/systems/5e/world/creatures/Vulture.md +34 -0
- package/systems/5e/world/creatures/Warhorse Skeleton.md +29 -0
- package/systems/5e/world/creatures/Warhorse.md +29 -0
- package/systems/5e/world/creatures/Water Elemental.md +47 -0
- package/systems/5e/world/creatures/Weasel.md +30 -0
- package/systems/5e/world/creatures/Werebear.md +45 -0
- package/systems/5e/world/creatures/Wereboar.md +45 -0
- package/systems/5e/world/creatures/Wererat.md +45 -0
- package/systems/5e/world/creatures/Weretiger.md +51 -0
- package/systems/5e/world/creatures/Werewolf.md +45 -0
- package/systems/5e/world/creatures/White Dragon Wyrmling.md +37 -0
- package/systems/5e/world/creatures/Wight.md +47 -0
- package/systems/5e/world/creatures/Will-o'-Wisp.md +47 -0
- package/systems/5e/world/creatures/Winter Wolf.md +44 -0
- package/systems/5e/world/creatures/Wolf.md +34 -0
- package/systems/5e/world/creatures/Worg.md +35 -0
- package/systems/5e/world/creatures/Wraith.md +41 -0
- package/systems/5e/world/creatures/Wyvern.md +37 -0
- package/systems/5e/world/creatures/Xorn.md +48 -0
- package/systems/5e/world/creatures/Young Black Dragon.md +47 -0
- package/systems/5e/world/creatures/Young Blue Dragon.md +42 -0
- package/systems/5e/world/creatures/Young Brass Dragon.md +46 -0
- package/systems/5e/world/creatures/Young Bronze Dragon.md +51 -0
- package/systems/5e/world/creatures/Young Copper Dragon.md +46 -0
- package/systems/5e/world/creatures/Young Gold Dragon.md +51 -0
- package/systems/5e/world/creatures/Young Green Dragon.md +48 -0
- package/systems/5e/world/creatures/Young Red Dragon.md +42 -0
- package/systems/5e/world/creatures/Young Silver Dragon.md +45 -0
- package/systems/5e/world/creatures/Young White Dragon.md +48 -0
- package/systems/5e/world/creatures/Zombie.md +34 -0
- package/systems/5e/world/items/Abacus.md +5 -0
- package/systems/5e/world/items/Acid.md +8 -0
- package/systems/5e/world/items/Adamantine Armor.md +6 -0
- package/systems/5e/world/items/Alchemist's Fire.md +8 -0
- package/systems/5e/world/items/Alchemist's Supplies.md +7 -0
- package/systems/5e/world/items/Ammunition, +1, +2, or +3.md +6 -0
- package/systems/5e/world/items/Amulet of Health.md +7 -0
- package/systems/5e/world/items/Amulet of Proof against Detection and Location.md +7 -0
- package/systems/5e/world/items/Amulet of the Planes.md +7 -0
- package/systems/5e/world/items/Amulet.md +7 -0
- package/systems/5e/world/items/Animated Shield.md +7 -0
- package/systems/5e/world/items/Antitoxin.md +7 -0
- package/systems/5e/world/items/Apparatus of the Crab.md +37 -0
- package/systems/5e/world/items/Armor of Invulnerability.md +7 -0
- package/systems/5e/world/items/Armor of Resistance.md +15 -0
- package/systems/5e/world/items/Armor of Vulnerability.md +9 -0
- package/systems/5e/world/items/Armor, +1, +2, or +3.md +6 -0
- package/systems/5e/world/items/Arrow of Slaying.md +10 -0
- package/systems/5e/world/items/Arrow-Catching Shield.md +7 -0
- package/systems/5e/world/items/Arrows.md +6 -0
- package/systems/5e/world/items/Backpack.md +5 -0
- package/systems/5e/world/items/Bag of Beans.md +25 -0
- package/systems/5e/world/items/Bag of Devouring.md +12 -0
- package/systems/5e/world/items/Bag of Holding.md +10 -0
- package/systems/5e/world/items/Bag of Tricks.md +51 -0
- package/systems/5e/world/items/Bagpipes.md +7 -0
- package/systems/5e/world/items/Ball Bearings.md +8 -0
- package/systems/5e/world/items/Barding.md +7 -0
- package/systems/5e/world/items/Barrel.md +5 -0
- package/systems/5e/world/items/Basic Poison.md +7 -0
- package/systems/5e/world/items/Basket.md +5 -0
- package/systems/5e/world/items/Battleaxe.md +10 -0
- package/systems/5e/world/items/Bead of Force.md +10 -0
- package/systems/5e/world/items/Bedroll.md +5 -0
- package/systems/5e/world/items/Bell.md +4 -0
- package/systems/5e/world/items/Belt of Dwarvenkind.md +18 -0
- package/systems/5e/world/items/Belt of Giant Strength.md +17 -0
- package/systems/5e/world/items/Berserker Axe.md +11 -0
- package/systems/5e/world/items/Bit and Bridle.md +5 -0
- package/systems/5e/world/items/Blanket.md +5 -0
- package/systems/5e/world/items/Block and Tackle.md +7 -0
- package/systems/5e/world/items/Blowgun Needles.md +6 -0
- package/systems/5e/world/items/Blowgun.md +10 -0
- package/systems/5e/world/items/Book.md +7 -0
- package/systems/5e/world/items/Boots of Elvenkind.md +6 -0
- package/systems/5e/world/items/Boots of Levitation.md +7 -0
- package/systems/5e/world/items/Boots of Speed.md +9 -0
- package/systems/5e/world/items/Boots of Striding and Springing.md +7 -0
- package/systems/5e/world/items/Boots of the Winterlands.md +11 -0
- package/systems/5e/world/items/Bowl of Commanding Water Elementals.md +8 -0
- package/systems/5e/world/items/Bracers of Archery.md +7 -0
- package/systems/5e/world/items/Bracers of Defense.md +7 -0
- package/systems/5e/world/items/Brazier of Commanding Fire Elementals.md +8 -0
- package/systems/5e/world/items/Breastplate.md +9 -0
- package/systems/5e/world/items/Brewer's Supplies.md +7 -0
- package/systems/5e/world/items/Brooch of Shielding.md +7 -0
- package/systems/5e/world/items/Broom of Flying.md +8 -0
- package/systems/5e/world/items/Bucket.md +5 -0
- package/systems/5e/world/items/Bullseye Lantern.md +8 -0
- package/systems/5e/world/items/Burglar's Pack.md +6 -0
- package/systems/5e/world/items/Calligrapher's Supplies.md +7 -0
- package/systems/5e/world/items/Caltrops.md +8 -0
- package/systems/5e/world/items/Candle of Invocation.md +25 -0
- package/systems/5e/world/items/Candle.md +6 -0
- package/systems/5e/world/items/Cape of the Mountebank.md +8 -0
- package/systems/5e/world/items/Carpenter's Tools.md +7 -0
- package/systems/5e/world/items/Carpet of Flying.md +17 -0
- package/systems/5e/world/items/Carriage.md +5 -0
- package/systems/5e/world/items/Cart.md +5 -0
- package/systems/5e/world/items/Cartographer's Tools.md +7 -0
- package/systems/5e/world/items/Censer of Controlling Air Elementals.md +8 -0
- package/systems/5e/world/items/Chain Mail.md +11 -0
- package/systems/5e/world/items/Chain Shirt.md +9 -0
- package/systems/5e/world/items/Chain.md +9 -0
- package/systems/5e/world/items/Chalk.md +5 -0
- package/systems/5e/world/items/Chariot.md +5 -0
- package/systems/5e/world/items/Chest.md +5 -0
- package/systems/5e/world/items/Chime of Opening.md +8 -0
- package/systems/5e/world/items/Circlet of Blasting.md +6 -0
- package/systems/5e/world/items/Climber's Kit.md +7 -0
- package/systems/5e/world/items/Cloak of Arachnida.md +13 -0
- package/systems/5e/world/items/Cloak of Displacement.md +7 -0
- package/systems/5e/world/items/Cloak of Elvenkind.md +7 -0
- package/systems/5e/world/items/Cloak of Protection.md +7 -0
- package/systems/5e/world/items/Cloak of the Bat.md +9 -0
- package/systems/5e/world/items/Cloak of the Manta Ray.md +6 -0
- package/systems/5e/world/items/Club.md +10 -0
- package/systems/5e/world/items/Cobbler's Tools.md +7 -0
- package/systems/5e/world/items/Common Clothes.md +6 -0
- package/systems/5e/world/items/Component Pouch.md +7 -0
- package/systems/5e/world/items/Cook's Utensils.md +7 -0
- package/systems/5e/world/items/Costume Clothes.md +6 -0
- package/systems/5e/world/items/Crossbow Bolt Case.md +8 -0
- package/systems/5e/world/items/Crossbow Bolts.md +6 -0
- package/systems/5e/world/items/Crowbar.md +7 -0
- package/systems/5e/world/items/Crystal Ball.md +15 -0
- package/systems/5e/world/items/Crystal.md +7 -0
- package/systems/5e/world/items/Cube of Force.md +32 -0
- package/systems/5e/world/items/Cubic Gate.md +10 -0
- package/systems/5e/world/items/Dagger of Venom.md +8 -0
- package/systems/5e/world/items/Dagger.md +10 -0
- package/systems/5e/world/items/Dancing Sword.md +11 -0
- package/systems/5e/world/items/Dart.md +10 -0
- package/systems/5e/world/items/Decanter of Endless Water.md +12 -0
- package/systems/5e/world/items/Deck of Illusions.md +48 -0
- package/systems/5e/world/items/Deck of Many Things.md +113 -0
- package/systems/5e/world/items/Defender.md +9 -0
- package/systems/5e/world/items/Demon Armor.md +9 -0
- package/systems/5e/world/items/Dice Set.md +6 -0
- package/systems/5e/world/items/Dimensional Shackles.md +8 -0
- package/systems/5e/world/items/Diplomat's Pack.md +6 -0
- package/systems/5e/world/items/Disguise Kit.md +7 -0
- package/systems/5e/world/items/Dragon Scale Mail.md +19 -0
- package/systems/5e/world/items/Dragon Slayer.md +8 -0
- package/systems/5e/world/items/Drum.md +7 -0
- package/systems/5e/world/items/Dulcimer.md +7 -0
- package/systems/5e/world/items/Dungeoneer's Pack.md +6 -0
- package/systems/5e/world/items/Dust of Disappearance.md +6 -0
- package/systems/5e/world/items/Dust of Dryness.md +10 -0
- package/systems/5e/world/items/Dust of Sneezing and Choking.md +8 -0
- package/systems/5e/world/items/Dwarven Plate.md +6 -0
- package/systems/5e/world/items/Dwarven Thrower.md +7 -0
- package/systems/5e/world/items/Efficient Quiver.md +8 -0
- package/systems/5e/world/items/Efreeti Bottle.md +14 -0
- package/systems/5e/world/items/Elemental Gem.md +13 -0
- package/systems/5e/world/items/Elven Chain.md +6 -0
- package/systems/5e/world/items/Emblem.md +6 -0
- package/systems/5e/world/items/Entertainer's Pack.md +6 -0
- package/systems/5e/world/items/Eversmoking Bottle.md +8 -0
- package/systems/5e/world/items/Exotic Saddle.md +7 -0
- package/systems/5e/world/items/Explorer's Pack.md +6 -0
- package/systems/5e/world/items/Eyes of Charming.md +7 -0
- package/systems/5e/world/items/Eyes of Minute Seeing.md +6 -0
- package/systems/5e/world/items/Eyes of the Eagle.md +7 -0
- package/systems/5e/world/items/Feather Token.md +26 -0
- package/systems/5e/world/items/Feed.md +6 -0
- package/systems/5e/world/items/Figurine of Wondrous Power.md +52 -0
- package/systems/5e/world/items/Fine Clothes.md +6 -0
- package/systems/5e/world/items/Fishing Tackle.md +7 -0
- package/systems/5e/world/items/Flail.md +9 -0
- package/systems/5e/world/items/Flame Tongue.md +7 -0
- package/systems/5e/world/items/Flask or Tankard.md +5 -0
- package/systems/5e/world/items/Flute.md +7 -0
- package/systems/5e/world/items/Folding Boat.md +14 -0
- package/systems/5e/world/items/Forgery Kit.md +7 -0
- package/systems/5e/world/items/Frost Brand.md +11 -0
- package/systems/5e/world/items/Galley.md +5 -0
- package/systems/5e/world/items/Gauntlets of Ogre Power.md +7 -0
- package/systems/5e/world/items/Gem of Brightness.md +12 -0
- package/systems/5e/world/items/Gem of Seeing.md +9 -0
- package/systems/5e/world/items/Giant Slayer.md +8 -0
- package/systems/5e/world/items/Glaive.md +10 -0
- package/systems/5e/world/items/Glamoured Studded Leather.md +6 -0
- package/systems/5e/world/items/Glass Bottle.md +6 -0
- package/systems/5e/world/items/Glassblower's Tools.md +7 -0
- package/systems/5e/world/items/Gloves of Missile Snaring.md +7 -0
- package/systems/5e/world/items/Gloves of Swimming and Climbing.md +7 -0
- package/systems/5e/world/items/Goggles of Night.md +6 -0
- package/systems/5e/world/items/Grappling Hook.md +5 -0
- package/systems/5e/world/items/Greataxe.md +10 -0
- package/systems/5e/world/items/Greatclub.md +10 -0
- package/systems/5e/world/items/Greatsword.md +10 -0
- package/systems/5e/world/items/Halberd.md +10 -0
- package/systems/5e/world/items/Half Plate Armor.md +11 -0
- package/systems/5e/world/items/Hammer of Thunderbolts.md +10 -0
- package/systems/5e/world/items/Hammer.md +5 -0
- package/systems/5e/world/items/Hand Crossbow.md +11 -0
- package/systems/5e/world/items/Handaxe.md +10 -0
- package/systems/5e/world/items/Handy Haversack.md +12 -0
- package/systems/5e/world/items/Hat of Disguise.md +7 -0
- package/systems/5e/world/items/Headband of Intellect.md +7 -0
- package/systems/5e/world/items/Healer's Kit.md +8 -0
- package/systems/5e/world/items/Heavy Crossbow.md +11 -0
- package/systems/5e/world/items/Helm of Brilliance.md +16 -0
- package/systems/5e/world/items/Helm of Comprehending Languages.md +6 -0
- package/systems/5e/world/items/Helm of Telepathy.md +9 -0
- package/systems/5e/world/items/Helm of Teleportation.md +7 -0
- package/systems/5e/world/items/Hempen Rope.md +9 -0
- package/systems/5e/world/items/Herbalism Kit.md +7 -0
- package/systems/5e/world/items/Hide Armor.md +10 -0
- package/systems/5e/world/items/Holy Avenger.md +9 -0
- package/systems/5e/world/items/Holy Water.md +10 -0
- package/systems/5e/world/items/Hooded Lantern.md +8 -0
- package/systems/5e/world/items/Horn of Blasting.md +8 -0
- package/systems/5e/world/items/Horn of Valhalla.md +17 -0
- package/systems/5e/world/items/Horn.md +7 -0
- package/systems/5e/world/items/Horseshoes of Speed.md +6 -0
- package/systems/5e/world/items/Horseshoes of a Zephyr.md +6 -0
- package/systems/5e/world/items/Hourglass.md +5 -0
- package/systems/5e/world/items/Hunting Trap.md +7 -0
- package/systems/5e/world/items/Immovable Rod.md +6 -0
- package/systems/5e/world/items/Ink Pen.md +4 -0
- package/systems/5e/world/items/Ink.md +5 -0
- package/systems/5e/world/items/Instant Fortress.md +12 -0
- package/systems/5e/world/items/Ioun Stone.md +47 -0
- package/systems/5e/world/items/Iron Bands of Binding.md +12 -0
- package/systems/5e/world/items/Iron Flask.md +33 -0
- package/systems/5e/world/items/Iron Pot.md +6 -0
- package/systems/5e/world/items/Iron Spikes.md +6 -0
- package/systems/5e/world/items/Javelin of Lightning.md +8 -0
- package/systems/5e/world/items/Javelin.md +10 -0
- package/systems/5e/world/items/Jeweler's Tools.md +7 -0
- package/systems/5e/world/items/Jug or Pitcher.md +5 -0
- package/systems/5e/world/items/Keelboat.md +7 -0
- package/systems/5e/world/items/Ladder.md +7 -0
- package/systems/5e/world/items/Lamp.md +7 -0
- package/systems/5e/world/items/Lance.md +12 -0
- package/systems/5e/world/items/Lantern of Revealing.md +6 -0
- package/systems/5e/world/items/Leather Armor.md +10 -0
- package/systems/5e/world/items/Leatherworker's Tools.md +7 -0
- package/systems/5e/world/items/Light Crossbow.md +11 -0
- package/systems/5e/world/items/Light Hammer.md +10 -0
- package/systems/5e/world/items/Lock.md +7 -0
- package/systems/5e/world/items/Longbow.md +10 -0
- package/systems/5e/world/items/Longship.md +5 -0
- package/systems/5e/world/items/Longsword.md +10 -0
- package/systems/5e/world/items/Luck Blade.md +11 -0
- package/systems/5e/world/items/Lute.md +7 -0
- package/systems/5e/world/items/Lyre.md +7 -0
- package/systems/5e/world/items/Mace of Disruption.md +9 -0
- package/systems/5e/world/items/Mace of Smiting.md +8 -0
- package/systems/5e/world/items/Mace of Terror.md +9 -0
- package/systems/5e/world/items/Mace.md +9 -0
- package/systems/5e/world/items/Magnifying Glass.md +6 -0
- package/systems/5e/world/items/Manacles.md +7 -0
- package/systems/5e/world/items/Mantle of Spell Resistance.md +7 -0
- package/systems/5e/world/items/Manual of Bodily Health.md +6 -0
- package/systems/5e/world/items/Manual of Gainful Exercise.md +6 -0
- package/systems/5e/world/items/Manual of Golems.md +17 -0
- package/systems/5e/world/items/Manual of Quickness of Action.md +6 -0
- package/systems/5e/world/items/Map or Scroll Case.md +8 -0
- package/systems/5e/world/items/Marvelous Pigments.md +14 -0
- package/systems/5e/world/items/Mason's Tools.md +7 -0
- package/systems/5e/world/items/Maul.md +10 -0
- package/systems/5e/world/items/Medallion of Thoughts.md +7 -0
- package/systems/5e/world/items/Merchant's Scale.md +8 -0
- package/systems/5e/world/items/Mess Kit.md +7 -0
- package/systems/5e/world/items/Military Saddle.md +7 -0
- package/systems/5e/world/items/Miner's Pick.md +6 -0
- package/systems/5e/world/items/Mirror of Life Trapping.md +18 -0
- package/systems/5e/world/items/Mithral Armor.md +6 -0
- package/systems/5e/world/items/Morningstar.md +9 -0
- package/systems/5e/world/items/Navigator's Tools.md +7 -0
- package/systems/5e/world/items/Necklace of Adaptation.md +7 -0
- package/systems/5e/world/items/Necklace of Fireballs.md +8 -0
- package/systems/5e/world/items/Necklace of Prayer Beads.md +18 -0
- package/systems/5e/world/items/Net.md +12 -0
- package/systems/5e/world/items/Nine Lives Stealer.md +9 -0
- package/systems/5e/world/items/Oathbow.md +11 -0
- package/systems/5e/world/items/Oil of Etherealness.md +6 -0
- package/systems/5e/world/items/Oil of Sharpness.md +6 -0
- package/systems/5e/world/items/Oil of Slipperiness.md +8 -0
- package/systems/5e/world/items/Oil.md +8 -0
- package/systems/5e/world/items/Orb of Dragonkind.md +31 -0
- package/systems/5e/world/items/Orb.md +7 -0
- package/systems/5e/world/items/Pack Saddle.md +7 -0
- package/systems/5e/world/items/Padded Armor.md +11 -0
- package/systems/5e/world/items/Painter's Supplies.md +7 -0
- package/systems/5e/world/items/Pan Flute.md +7 -0
- package/systems/5e/world/items/Paper.md +5 -0
- package/systems/5e/world/items/Parchment.md +5 -0
- package/systems/5e/world/items/Pearl of Power.md +7 -0
- package/systems/5e/world/items/Perfume.md +5 -0
- package/systems/5e/world/items/Periapt of Health.md +6 -0
- package/systems/5e/world/items/Periapt of Proof against Poison.md +6 -0
- package/systems/5e/world/items/Periapt of Wound Closure.md +7 -0
- package/systems/5e/world/items/Philter of Love.md +6 -0
- package/systems/5e/world/items/Pike.md +10 -0
- package/systems/5e/world/items/Pipes of Haunting.md +6 -0
- package/systems/5e/world/items/Pipes of the Sewers.md +11 -0
- package/systems/5e/world/items/Piton.md +5 -0
- package/systems/5e/world/items/Plate Armor of Etherealness.md +7 -0
- package/systems/5e/world/items/Plate Armor.md +12 -0
- package/systems/5e/world/items/Playing Card Set.md +6 -0
- package/systems/5e/world/items/Poisoner's Kit.md +7 -0
- package/systems/5e/world/items/Pole.md +7 -0
- package/systems/5e/world/items/Portable Hole.md +14 -0
- package/systems/5e/world/items/Portable Ram.md +8 -0
- package/systems/5e/world/items/Potion of Animal Friendship.md +6 -0
- package/systems/5e/world/items/Potion of Clairvoyance.md +6 -0
- package/systems/5e/world/items/Potion of Climbing.md +6 -0
- package/systems/5e/world/items/Potion of Diminution.md +6 -0
- package/systems/5e/world/items/Potion of Flying.md +6 -0
- package/systems/5e/world/items/Potion of Gaseous Form.md +6 -0
- package/systems/5e/world/items/Potion of Giant Strength.md +16 -0
- package/systems/5e/world/items/Potion of Growth.md +6 -0
- package/systems/5e/world/items/Potion of Healing.md +19 -0
- package/systems/5e/world/items/Potion of Heroism.md +6 -0
- package/systems/5e/world/items/Potion of Invisibility.md +6 -0
- package/systems/5e/world/items/Potion of Mind Reading.md +6 -0
- package/systems/5e/world/items/Potion of Poison.md +8 -0
- package/systems/5e/world/items/Potion of Resistance.md +14 -0
- package/systems/5e/world/items/Potion of Speed.md +6 -0
- package/systems/5e/world/items/Potion of Water Breathing.md +6 -0
- package/systems/5e/world/items/Potter's Tools.md +7 -0
- package/systems/5e/world/items/Pouch.md +7 -0
- package/systems/5e/world/items/Priest's Pack.md +6 -0
- package/systems/5e/world/items/Quarterstaff.md +10 -0
- package/systems/5e/world/items/Quiver.md +7 -0
- package/systems/5e/world/items/Rapier.md +10 -0
- package/systems/5e/world/items/Rations.md +8 -0
- package/systems/5e/world/items/Reliquary.md +7 -0
- package/systems/5e/world/items/Restorative Ointment.md +8 -0
- package/systems/5e/world/items/Riding Saddle.md +7 -0
- package/systems/5e/world/items/Ring Mail.md +10 -0
- package/systems/5e/world/items/Ring of Animal Influence.md +10 -0
- package/systems/5e/world/items/Ring of Djinni Summoning.md +11 -0
- package/systems/5e/world/items/Ring of Elemental Command.md +41 -0
- package/systems/5e/world/items/Ring of Evasion.md +7 -0
- package/systems/5e/world/items/Ring of Feather Falling.md +7 -0
- package/systems/5e/world/items/Ring of Free Action.md +7 -0
- package/systems/5e/world/items/Ring of Invisibility.md +7 -0
- package/systems/5e/world/items/Ring of Jumping.md +7 -0
- package/systems/5e/world/items/Ring of Mind Shielding.md +11 -0
- package/systems/5e/world/items/Ring of Protection.md +7 -0
- package/systems/5e/world/items/Ring of Regeneration.md +7 -0
- package/systems/5e/world/items/Ring of Resistance.md +20 -0
- package/systems/5e/world/items/Ring of Shooting Stars.md +26 -0
- package/systems/5e/world/items/Ring of Spell Storing.md +11 -0
- package/systems/5e/world/items/Ring of Spell Turning.md +7 -0
- package/systems/5e/world/items/Ring of Swimming.md +6 -0
- package/systems/5e/world/items/Ring of Telekinesis.md +7 -0
- package/systems/5e/world/items/Ring of Three Wishes.md +6 -0
- package/systems/5e/world/items/Ring of Warmth.md +7 -0
- package/systems/5e/world/items/Ring of Water Walking.md +6 -0
- package/systems/5e/world/items/Ring of X-ray Vision.md +9 -0
- package/systems/5e/world/items/Ring of the Ram.md +9 -0
- package/systems/5e/world/items/Robe of Eyes.md +15 -0
- package/systems/5e/world/items/Robe of Scintillating Colors.md +7 -0
- package/systems/5e/world/items/Robe of Stars.md +11 -0
- package/systems/5e/world/items/Robe of Useful Items.md +33 -0
- package/systems/5e/world/items/Robe of the Archmagi.md +13 -0
- package/systems/5e/world/items/Robes.md +5 -0
- package/systems/5e/world/items/Rod of Absorption.md +13 -0
- package/systems/5e/world/items/Rod of Alertness.md +15 -0
- package/systems/5e/world/items/Rod of Lordly Might.md +27 -0
- package/systems/5e/world/items/Rod of Rulership.md +7 -0
- package/systems/5e/world/items/Rod of Security.md +10 -0
- package/systems/5e/world/items/Rod.md +7 -0
- package/systems/5e/world/items/Rope of Climbing.md +10 -0
- package/systems/5e/world/items/Rope of Entanglement.md +10 -0
- package/systems/5e/world/items/Rowboat.md +7 -0
- package/systems/5e/world/items/Sack.md +5 -0
- package/systems/5e/world/items/Saddlebags.md +5 -0
- package/systems/5e/world/items/Sailing Ship.md +5 -0
- package/systems/5e/world/items/Scale Mail.md +10 -0
- package/systems/5e/world/items/Scarab of Protection.md +10 -0
- package/systems/5e/world/items/Scholar's Pack.md +6 -0
- package/systems/5e/world/items/Scimitar of Speed.md +7 -0
- package/systems/5e/world/items/Scimitar.md +10 -0
- package/systems/5e/world/items/Sealing Wax.md +4 -0
- package/systems/5e/world/items/Shawm.md +7 -0
- package/systems/5e/world/items/Shield of Missile Attraction.md +9 -0
- package/systems/5e/world/items/Shield, +1, +2, or +3.md +6 -0
- package/systems/5e/world/items/Shield.md +9 -0
- package/systems/5e/world/items/Shortbow.md +10 -0
- package/systems/5e/world/items/Shortsword.md +10 -0
- package/systems/5e/world/items/Shovel.md +5 -0
- package/systems/5e/world/items/Sickle.md +10 -0
- package/systems/5e/world/items/Signal Whistle.md +4 -0
- package/systems/5e/world/items/Signet Ring.md +4 -0
- package/systems/5e/world/items/Silk Rope.md +9 -0
- package/systems/5e/world/items/Sled.md +5 -0
- package/systems/5e/world/items/Sledgehammer.md +6 -0
- package/systems/5e/world/items/Sling Bullets.md +6 -0
- package/systems/5e/world/items/Sling.md +9 -0
- package/systems/5e/world/items/Slippers of Spider Climbing.md +7 -0
- package/systems/5e/world/items/Smith's Tools.md +7 -0
- package/systems/5e/world/items/Soap.md +4 -0
- package/systems/5e/world/items/Sovereign Glue.md +8 -0
- package/systems/5e/world/items/Spear.md +10 -0
- package/systems/5e/world/items/Spell Scroll.md +27 -0
- package/systems/5e/world/items/Spellbook.md +7 -0
- package/systems/5e/world/items/Spellguard Shield.md +7 -0
- package/systems/5e/world/items/Sphere of Annihilation.md +20 -0
- package/systems/5e/world/items/Splint Armor.md +12 -0
- package/systems/5e/world/items/Sprig of Mistletoe.md +6 -0
- package/systems/5e/world/items/Spyglass.md +7 -0
- package/systems/5e/world/items/Staff of Charming.md +11 -0
- package/systems/5e/world/items/Staff of Fire.md +11 -0
- package/systems/5e/world/items/Staff of Frost.md +11 -0
- package/systems/5e/world/items/Staff of Healing.md +9 -0
- package/systems/5e/world/items/Staff of Power.md +23 -0
- package/systems/5e/world/items/Staff of Striking.md +9 -0
- package/systems/5e/world/items/Staff of Swarming Insects.md +11 -0
- package/systems/5e/world/items/Staff of Thunder and Lightning.md +17 -0
- package/systems/5e/world/items/Staff of Withering.md +9 -0
- package/systems/5e/world/items/Staff of the Magi.md +25 -0
- package/systems/5e/world/items/Staff of the Python.md +11 -0
- package/systems/5e/world/items/Staff of the Woodlands.md +15 -0
- package/systems/5e/world/items/Staff.md +7 -0
- package/systems/5e/world/items/Steel Mirror.md +6 -0
- package/systems/5e/world/items/Stone of Controlling Earth Elementals.md +6 -0
- package/systems/5e/world/items/Stone of Good Luck.md +8 -0
- package/systems/5e/world/items/Studded Leather Armor.md +10 -0
- package/systems/5e/world/items/Sun Blade.md +11 -0
- package/systems/5e/world/items/Sword of Life Stealing.md +7 -0
- package/systems/5e/world/items/Sword of Sharpness.md +11 -0
- package/systems/5e/world/items/Sword of Wounding.md +9 -0
- package/systems/5e/world/items/Talisman of Pure Good.md +11 -0
- package/systems/5e/world/items/Talisman of Ultimate Evil.md +11 -0
- package/systems/5e/world/items/Talisman of the Sphere.md +7 -0
- package/systems/5e/world/items/Thieves' Tools.md +7 -0
- package/systems/5e/world/items/Tinderbox.md +7 -0
- package/systems/5e/world/items/Tinker's Tools.md +7 -0
- package/systems/5e/world/items/Tome of Clear Thought.md +6 -0
- package/systems/5e/world/items/Tome of Leadership and Influence.md +6 -0
- package/systems/5e/world/items/Tome of Understanding.md +6 -0
- package/systems/5e/world/items/Torch.md +7 -0
- package/systems/5e/world/items/Totem.md +6 -0
- package/systems/5e/world/items/Traveler's Clothes.md +6 -0
- package/systems/5e/world/items/Trident of Fish Command.md +7 -0
- package/systems/5e/world/items/Trident.md +10 -0
- package/systems/5e/world/items/Two-Person Tent.md +8 -0
- package/systems/5e/world/items/Unarmed Strike.md +7 -0
- package/systems/5e/world/items/Universal Solvent.md +6 -0
- package/systems/5e/world/items/Vial.md +4 -0
- package/systems/5e/world/items/Vicious Weapon.md +6 -0
- package/systems/5e/world/items/Viol.md +7 -0
- package/systems/5e/world/items/Vorpal Sword.md +9 -0
- package/systems/5e/world/items/Wagon.md +5 -0
- package/systems/5e/world/items/Wand of Binding.md +11 -0
- package/systems/5e/world/items/Wand of Enemy Detection.md +9 -0
- package/systems/5e/world/items/Wand of Fear.md +11 -0
- package/systems/5e/world/items/Wand of Fireballs.md +9 -0
- package/systems/5e/world/items/Wand of Lightning Bolts.md +9 -0
- package/systems/5e/world/items/Wand of Magic Detection.md +6 -0
- package/systems/5e/world/items/Wand of Magic Missiles.md +8 -0
- package/systems/5e/world/items/Wand of Paralysis.md +9 -0
- package/systems/5e/world/items/Wand of Polymorph.md +9 -0
- package/systems/5e/world/items/Wand of Secrets.md +6 -0
- package/systems/5e/world/items/Wand of Web.md +9 -0
- package/systems/5e/world/items/Wand of Wonder.md +38 -0
- package/systems/5e/world/items/Wand of the War Mage, +1, +2, or +3.md +7 -0
- package/systems/5e/world/items/Wand.md +7 -0
- package/systems/5e/world/items/War Pick.md +9 -0
- package/systems/5e/world/items/Warhammer.md +10 -0
- package/systems/5e/world/items/Warship.md +5 -0
- package/systems/5e/world/items/Waterskin.md +5 -0
- package/systems/5e/world/items/Weapon, +1, +2, or +3.md +6 -0
- package/systems/5e/world/items/Weaver's Tools.md +7 -0
- package/systems/5e/world/items/Well of Many Worlds.md +8 -0
- package/systems/5e/world/items/Whetstone.md +5 -0
- package/systems/5e/world/items/Whip.md +10 -0
- package/systems/5e/world/items/Wind Fan.md +6 -0
- package/systems/5e/world/items/Winged Boots.md +9 -0
- package/systems/5e/world/items/Wings of Flying.md +7 -0
- package/systems/5e/world/items/Woodcarver's Tools.md +7 -0
- package/systems/5e/world/items/Wooden Staff.md +7 -0
- package/systems/5e/world/items/Yew Wand.md +7 -0
- package/systems/5e/world/topics/Acid Arrow.md +14 -0
- package/systems/5e/world/topics/Acid Splash.md +14 -0
- package/systems/5e/world/topics/Acolyte (background).md +103 -0
- package/systems/5e/world/topics/Aid.md +14 -0
- package/systems/5e/world/topics/Alarm.md +17 -0
- package/systems/5e/world/topics/Alter Self.md +19 -0
- package/systems/5e/world/topics/Animal Friendship.md +14 -0
- package/systems/5e/world/topics/Animal Messenger.md +17 -0
- package/systems/5e/world/topics/Animal Shapes.md +17 -0
- package/systems/5e/world/topics/Animate Dead.md +18 -0
- package/systems/5e/world/topics/Animate Objects.md +31 -0
- package/systems/5e/world/topics/Antilife Shell.md +17 -0
- package/systems/5e/world/topics/Antimagic Field.md +31 -0
- package/systems/5e/world/topics/Antipathy-Sympathy.md +23 -0
- package/systems/5e/world/topics/Arcane Eye.md +17 -0
- package/systems/5e/world/topics/Arcane Hand.md +27 -0
- package/systems/5e/world/topics/Arcane Lock.md +14 -0
- package/systems/5e/world/topics/Arcane Sword.md +15 -0
- package/systems/5e/world/topics/Arcanist's Magic Aura.md +18 -0
- package/systems/5e/world/topics/Astral Projection.md +22 -0
- package/systems/5e/world/topics/Augury.md +22 -0
- package/systems/5e/world/topics/Awaken.md +14 -0
- package/systems/5e/world/topics/Bane.md +15 -0
- package/systems/5e/world/topics/Banishment.md +19 -0
- package/systems/5e/world/topics/Barbarian.md +123 -0
- package/systems/5e/world/topics/Bard Spells.md +147 -0
- package/systems/5e/world/topics/Bard.md +139 -0
- package/systems/5e/world/topics/Barkskin.md +13 -0
- package/systems/5e/world/topics/Beacon of Hope.md +13 -0
- package/systems/5e/world/topics/Bestow Curse.md +22 -0
- package/systems/5e/world/topics/Black Tentacles.md +17 -0
- package/systems/5e/world/topics/Blade Barrier.md +15 -0
- package/systems/5e/world/topics/Bless.md +15 -0
- package/systems/5e/world/topics/Blight.md +18 -0
- package/systems/5e/world/topics/Blindness-Deafness.md +15 -0
- package/systems/5e/world/topics/Blink.md +14 -0
- package/systems/5e/world/topics/Blur.md +13 -0
- package/systems/5e/world/topics/Branding Smite.md +15 -0
- package/systems/5e/world/topics/Burning Hands.md +16 -0
- package/systems/5e/world/topics/Call Lightning.md +19 -0
- package/systems/5e/world/topics/Calm Emotions.md +17 -0
- package/systems/5e/world/topics/Chain Lightning.md +16 -0
- package/systems/5e/world/topics/Champion.md +24 -0
- package/systems/5e/world/topics/Charm Person.md +14 -0
- package/systems/5e/world/topics/Chill Touch.md +16 -0
- package/systems/5e/world/topics/Circle of Death.md +14 -0
- package/systems/5e/world/topics/Circle of the Land.md +96 -0
- package/systems/5e/world/topics/Clairvoyance.md +17 -0
- package/systems/5e/world/topics/Cleric Spells.md +140 -0
- package/systems/5e/world/topics/Cleric.md +141 -0
- package/systems/5e/world/topics/Clone.md +14 -0
- package/systems/5e/world/topics/Cloudkill.md +19 -0
- package/systems/5e/world/topics/College of Lore.md +23 -0
- package/systems/5e/world/topics/Color Spray.md +16 -0
- package/systems/5e/world/topics/Command.md +26 -0
- package/systems/5e/world/topics/Commune with Nature.md +23 -0
- package/systems/5e/world/topics/Commune.md +17 -0
- package/systems/5e/world/topics/Comprehend Languages.md +15 -0
- package/systems/5e/world/topics/Compulsion.md +15 -0
- package/systems/5e/world/topics/Cone of Cold.md +16 -0
- package/systems/5e/world/topics/Confusion.md +26 -0
- package/systems/5e/world/topics/Conjure Animals.md +26 -0
- package/systems/5e/world/topics/Conjure Celestial.md +19 -0
- package/systems/5e/world/topics/Conjure Elemental.md +21 -0
- package/systems/5e/world/topics/Conjure Fey.md +21 -0
- package/systems/5e/world/topics/Conjure Minor Elementals.md +26 -0
- package/systems/5e/world/topics/Conjure Woodland Beings.md +26 -0
- package/systems/5e/world/topics/Contact Other Plane.md +15 -0
- package/systems/5e/world/topics/Contagion.md +28 -0
- package/systems/5e/world/topics/Contingency.md +16 -0
- package/systems/5e/world/topics/Continual Flame.md +12 -0
- package/systems/5e/world/topics/Control Water.md +29 -0
- package/systems/5e/world/topics/Control Weather.md +48 -0
- package/systems/5e/world/topics/Counterspell.md +14 -0
- package/systems/5e/world/topics/Create Food and Water.md +12 -0
- package/systems/5e/world/topics/Create Undead.md +18 -0
- package/systems/5e/world/topics/Create or Destroy Water.md +18 -0
- package/systems/5e/world/topics/Creation.md +26 -0
- package/systems/5e/world/topics/Cure Wounds.md +14 -0
- package/systems/5e/world/topics/Dancing Lights.md +15 -0
- package/systems/5e/world/topics/Darkness.md +17 -0
- package/systems/5e/world/topics/Darkvision.md +12 -0
- package/systems/5e/world/topics/Daylight.md +16 -0
- package/systems/5e/world/topics/Death Ward.md +16 -0
- package/systems/5e/world/topics/Delayed Blast Fireball.md +21 -0
- package/systems/5e/world/topics/Demiplane.md +14 -0
- package/systems/5e/world/topics/Detect Evil and Good.md +15 -0
- package/systems/5e/world/topics/Detect Magic.md +16 -0
- package/systems/5e/world/topics/Detect Poison and Disease.md +16 -0
- package/systems/5e/world/topics/Detect Thoughts.md +21 -0
- package/systems/5e/world/topics/Dimension Door.md +16 -0
- package/systems/5e/world/topics/Disguise Self.md +16 -0
- package/systems/5e/world/topics/Disintegrate.md +20 -0
- package/systems/5e/world/topics/Dispel Evil and Good.md +19 -0
- package/systems/5e/world/topics/Dispel Magic.md +14 -0
- package/systems/5e/world/topics/Divination.md +17 -0
- package/systems/5e/world/topics/Divine Favor.md +13 -0
- package/systems/5e/world/topics/Divine Word.md +19 -0
- package/systems/5e/world/topics/Dominate Beast.md +21 -0
- package/systems/5e/world/topics/Dominate Monster.md +21 -0
- package/systems/5e/world/topics/Dominate Person.md +21 -0
- package/systems/5e/world/topics/Draconic Bloodline.md +43 -0
- package/systems/5e/world/topics/Dream.md +18 -0
- package/systems/5e/world/topics/Druid Spells.md +140 -0
- package/systems/5e/world/topics/Druid.md +146 -0
- package/systems/5e/world/topics/Druidcraft.md +17 -0
- package/systems/5e/world/topics/Earthquake.md +25 -0
- package/systems/5e/world/topics/Eldritch Blast.md +14 -0
- package/systems/5e/world/topics/Enhance Ability.md +27 -0
- package/systems/5e/world/topics/Enlarge-Reduce.md +20 -0
- package/systems/5e/world/topics/Entangle.md +17 -0
- package/systems/5e/world/topics/Enthrall.md +12 -0
- package/systems/5e/world/topics/Etherealness.md +22 -0
- package/systems/5e/world/topics/Expeditious Retreat.md +13 -0
- package/systems/5e/world/topics/Eyebite.md +19 -0
- package/systems/5e/world/topics/Fabricate.md +16 -0
- package/systems/5e/world/topics/Faerie Fire.md +15 -0
- package/systems/5e/world/topics/Faithful Hound.md +16 -0
- package/systems/5e/world/topics/False Life.md +14 -0
- package/systems/5e/world/topics/Fear.md +15 -0
- package/systems/5e/world/topics/Feather Fall.md +12 -0
- package/systems/5e/world/topics/Feeblemind.md +18 -0
- package/systems/5e/world/topics/Fighter.md +109 -0
- package/systems/5e/world/topics/Find Familiar.md +25 -0
- package/systems/5e/world/topics/Find Steed.md +20 -0
- package/systems/5e/world/topics/Find Traps.md +14 -0
- package/systems/5e/world/topics/Find the Path.md +15 -0
- package/systems/5e/world/topics/Finger of Death.md +14 -0
- package/systems/5e/world/topics/Fire Bolt.md +14 -0
- package/systems/5e/world/topics/Fire Shield.md +16 -0
- package/systems/5e/world/topics/Fire Storm.md +14 -0
- package/systems/5e/world/topics/Fireball.md +16 -0
- package/systems/5e/world/topics/Flame Blade.md +19 -0
- package/systems/5e/world/topics/Flame Strike.md +14 -0
- package/systems/5e/world/topics/Flaming Sphere.md +19 -0
- package/systems/5e/world/topics/Flesh to Stone.md +19 -0
- package/systems/5e/world/topics/Floating Disk.md +17 -0
- package/systems/5e/world/topics/Fly.md +15 -0
- package/systems/5e/world/topics/Fog Cloud.md +15 -0
- package/systems/5e/world/topics/Forbiddance.md +19 -0
- package/systems/5e/world/topics/Forcecage.md +22 -0
- package/systems/5e/world/topics/Foresight.md +14 -0
- package/systems/5e/world/topics/Freedom of Movement.md +14 -0
- package/systems/5e/world/topics/Freezing Sphere.md +18 -0
- package/systems/5e/world/topics/Gaseous Form.md +17 -0
- package/systems/5e/world/topics/Gate.md +19 -0
- package/systems/5e/world/topics/Geas.md +18 -0
- package/systems/5e/world/topics/Gentle Repose.md +15 -0
- package/systems/5e/world/topics/Giant Insect.md +19 -0
- package/systems/5e/world/topics/Glibness.md +12 -0
- package/systems/5e/world/topics/Globe of Invulnerability.md +17 -0
- package/systems/5e/world/topics/Glyph of Warding.md +26 -0
- package/systems/5e/world/topics/Goodberry.md +14 -0
- package/systems/5e/world/topics/Grappler.md +17 -0
- package/systems/5e/world/topics/Grease.md +14 -0
- package/systems/5e/world/topics/Greater Invisibility.md +13 -0
- package/systems/5e/world/topics/Greater Restoration.md +17 -0
- package/systems/5e/world/topics/Guardian of Faith.md +14 -0
- package/systems/5e/world/topics/Guards and Wards.md +34 -0
- package/systems/5e/world/topics/Guidance.md +13 -0
- package/systems/5e/world/topics/Guiding Bolt.md +14 -0
- package/systems/5e/world/topics/Gust of Wind.md +19 -0
- package/systems/5e/world/topics/Hallow.md +36 -0
- package/systems/5e/world/topics/Hallucinatory Terrain.md +14 -0
- package/systems/5e/world/topics/Harm.md +12 -0
- package/systems/5e/world/topics/Haste.md +15 -0
- package/systems/5e/world/topics/Heal.md +14 -0
- package/systems/5e/world/topics/Healing Word.md +14 -0
- package/systems/5e/world/topics/Heat Metal.md +17 -0
- package/systems/5e/world/topics/Hellish Rebuke.md +14 -0
- package/systems/5e/world/topics/Heroes' Feast.md +14 -0
- package/systems/5e/world/topics/Heroism.md +15 -0
- package/systems/5e/world/topics/Hideous Laughter.md +15 -0
- package/systems/5e/world/topics/Hold Monster.md +15 -0
- package/systems/5e/world/topics/Hold Person.md +15 -0
- package/systems/5e/world/topics/Holy Aura.md +13 -0
- package/systems/5e/world/topics/Hunter's Mark.md +15 -0
- package/systems/5e/world/topics/Hunter.md +41 -0
- package/systems/5e/world/topics/Hypnotic Pattern.md +15 -0
- package/systems/5e/world/topics/Ice Storm.md +16 -0
- package/systems/5e/world/topics/Identify.md +15 -0
- package/systems/5e/world/topics/Illusory Script.md +19 -0
- package/systems/5e/world/topics/Imprisonment.md +38 -0
- package/systems/5e/world/topics/Incendiary Cloud.md +17 -0
- package/systems/5e/world/topics/Inflict Wounds.md +14 -0
- package/systems/5e/world/topics/Insect Plague.md +17 -0
- package/systems/5e/world/topics/Instant Summons.md +19 -0
- package/systems/5e/world/topics/Invisibility.md +15 -0
- package/systems/5e/world/topics/Irresistible Dance.md +15 -0
- package/systems/5e/world/topics/Jump.md +12 -0
- package/systems/5e/world/topics/Knock.md +18 -0
- package/systems/5e/world/topics/Legend Lore.md +14 -0
- package/systems/5e/world/topics/Lesser Restoration.md +12 -0
- package/systems/5e/world/topics/Levitate.md +17 -0
- package/systems/5e/world/topics/Life Domain.md +38 -0
- package/systems/5e/world/topics/Light.md +14 -0
- package/systems/5e/world/topics/Lightning Bolt.md +16 -0
- package/systems/5e/world/topics/Locate Animals or Plants.md +13 -0
- package/systems/5e/world/topics/Locate Creature.md +17 -0
- package/systems/5e/world/topics/Locate Object.md +17 -0
- package/systems/5e/world/topics/Longstrider.md +14 -0
- package/systems/5e/world/topics/Mage Armor.md +12 -0
- package/systems/5e/world/topics/Mage Hand.md +16 -0
- package/systems/5e/world/topics/Magic Circle.md +22 -0
- package/systems/5e/world/topics/Magic Jar.md +24 -0
- package/systems/5e/world/topics/Magic Missile.md +14 -0
- package/systems/5e/world/topics/Magic Mouth.md +17 -0
- package/systems/5e/world/topics/Magic Weapon.md +15 -0
- package/systems/5e/world/topics/Magnificent Mansion.md +16 -0
- package/systems/5e/world/topics/Major Image.md +19 -0
- package/systems/5e/world/topics/Mass Cure Wounds.md +14 -0
- package/systems/5e/world/topics/Mass Heal.md +12 -0
- package/systems/5e/world/topics/Mass Healing Word.md +14 -0
- package/systems/5e/world/topics/Mass Suggestion.md +20 -0
- package/systems/5e/world/topics/Maze.md +17 -0
- package/systems/5e/world/topics/Meld into Stone.md +17 -0
- package/systems/5e/world/topics/Mending.md +14 -0
- package/systems/5e/world/topics/Message.md +14 -0
- package/systems/5e/world/topics/Meteor Swarm.md +14 -0
- package/systems/5e/world/topics/Mind Blank.md +12 -0
- package/systems/5e/world/topics/Minor Illusion.md +18 -0
- package/systems/5e/world/topics/Mirage Arcane.md +18 -0
- package/systems/5e/world/topics/Mirror Image.md +20 -0
- package/systems/5e/world/topics/Mislead.md +17 -0
- package/systems/5e/world/topics/Misty Step.md +12 -0
- package/systems/5e/world/topics/Modify Memory.md +23 -0
- package/systems/5e/world/topics/Monk.md +153 -0
- package/systems/5e/world/topics/Moonbeam.md +21 -0
- package/systems/5e/world/topics/Move Earth.md +21 -0
- package/systems/5e/world/topics/Nondetection.md +12 -0
- package/systems/5e/world/topics/Oath of Devotion.md +62 -0
- package/systems/5e/world/topics/Paladin Spells.md +51 -0
- package/systems/5e/world/topics/Paladin.md +173 -0
- package/systems/5e/world/topics/Pass without Trace.md +13 -0
- package/systems/5e/world/topics/Passwall.md +14 -0
- package/systems/5e/world/topics/Path of the Berserker.md +21 -0
- package/systems/5e/world/topics/Phantasmal Killer.md +15 -0
- package/systems/5e/world/topics/Phantom Steed.md +15 -0
- package/systems/5e/world/topics/Planar Ally.md +22 -0
- package/systems/5e/world/topics/Planar Binding.md +16 -0
- package/systems/5e/world/topics/Plane Shift.md +16 -0
- package/systems/5e/world/topics/Plant Growth.md +18 -0
- package/systems/5e/world/topics/Poison Spray.md +14 -0
- package/systems/5e/world/topics/Polymorph.md +21 -0
- package/systems/5e/world/topics/Power Word Kill.md +12 -0
- package/systems/5e/world/topics/Power Word Stun.md +14 -0
- package/systems/5e/world/topics/Prayer of Healing.md +14 -0
- package/systems/5e/world/topics/Prestidigitation.md +21 -0
- package/systems/5e/world/topics/Prismatic Spray.md +28 -0
- package/systems/5e/world/topics/Prismatic Wall.md +34 -0
- package/systems/5e/world/topics/Private Sanctum.md +25 -0
- package/systems/5e/world/topics/Produce Flame.md +16 -0
- package/systems/5e/world/topics/Programmed Illusion.md +18 -0
- package/systems/5e/world/topics/Project Image.md +19 -0
- package/systems/5e/world/topics/Protection from Energy.md +13 -0
- package/systems/5e/world/topics/Protection from Evil and Good.md +15 -0
- package/systems/5e/world/topics/Protection from Poison.md +14 -0
- package/systems/5e/world/topics/Purify Food and Drink.md +13 -0
- package/systems/5e/world/topics/Raise Dead.md +18 -0
- package/systems/5e/world/topics/Ranger Spells.md +57 -0
- package/systems/5e/world/topics/Ranger.md +162 -0
- package/systems/5e/world/topics/Ray of Enfeeblement.md +15 -0
- package/systems/5e/world/topics/Ray of Frost.md +14 -0
- package/systems/5e/world/topics/Regenerate.md +14 -0
- package/systems/5e/world/topics/Reincarnate.md +33 -0
- package/systems/5e/world/topics/Remove Curse.md +12 -0
- package/systems/5e/world/topics/Resilient Sphere.md +19 -0
- package/systems/5e/world/topics/Resistance.md +13 -0
- package/systems/5e/world/topics/Resurrection.md +20 -0
- package/systems/5e/world/topics/Reverse Gravity.md +17 -0
- package/systems/5e/world/topics/Revivify.md +12 -0
- package/systems/5e/world/topics/Rogue.md +114 -0
- package/systems/5e/world/topics/Rope Trick.md +18 -0
- package/systems/5e/world/topics/Sacred Flame.md +14 -0
- package/systems/5e/world/topics/Sanctuary.md +14 -0
- package/systems/5e/world/topics/School of Evocation.md +24 -0
- package/systems/5e/world/topics/Scorching Ray.md +16 -0
- package/systems/5e/world/topics/Scrying.md +31 -0
- package/systems/5e/world/topics/Secret Chest.md +16 -0
- package/systems/5e/world/topics/See Invisibility.md +12 -0
- package/systems/5e/world/topics/Seeming.md +18 -0
- package/systems/5e/world/topics/Sending.md +14 -0
- package/systems/5e/world/topics/Sequester.md +16 -0
- package/systems/5e/world/topics/Shapechange.md +23 -0
- package/systems/5e/world/topics/Shatter.md +16 -0
- package/systems/5e/world/topics/Shield (spell).md +13 -0
- package/systems/5e/world/topics/Shield of Faith.md +13 -0
- package/systems/5e/world/topics/Shillelagh.md +12 -0
- package/systems/5e/world/topics/Shocking Grasp.md +14 -0
- package/systems/5e/world/topics/Silence.md +14 -0
- package/systems/5e/world/topics/Silent Image.md +17 -0
- package/systems/5e/world/topics/Simulacrum.md +18 -0
- package/systems/5e/world/topics/Sleep.md +18 -0
- package/systems/5e/world/topics/Sleet Storm.md +17 -0
- package/systems/5e/world/topics/Slow.md +19 -0
- package/systems/5e/world/topics/Sorcerer Spells.md +155 -0
- package/systems/5e/world/topics/Sorcerer.md +166 -0
- package/systems/5e/world/topics/Spare the Dying.md +12 -0
- package/systems/5e/world/topics/Speak with Animals.md +13 -0
- package/systems/5e/world/topics/Speak with Dead.md +14 -0
- package/systems/5e/world/topics/Speak with Plants.md +20 -0
- package/systems/5e/world/topics/Spider Climb.md +13 -0
- package/systems/5e/world/topics/Spike Growth.md +15 -0
- package/systems/5e/world/topics/Spirit Guardians.md +17 -0
- package/systems/5e/world/topics/Spiritual Weapon.md +18 -0
- package/systems/5e/world/topics/Stinking Cloud.md +17 -0
- package/systems/5e/world/topics/Stone Shape.md +12 -0
- package/systems/5e/world/topics/Stoneskin.md +13 -0
- package/systems/5e/world/topics/Storm of Vengeance.md +23 -0
- package/systems/5e/world/topics/Suggestion.md +19 -0
- package/systems/5e/world/topics/Sunbeam.md +17 -0
- package/systems/5e/world/topics/Sunburst.md +16 -0
- package/systems/5e/world/topics/Symbol.md +36 -0
- package/systems/5e/world/topics/Telekinesis.md +23 -0
- package/systems/5e/world/topics/Telepathic Bond.md +15 -0
- package/systems/5e/world/topics/Teleport.md +38 -0
- package/systems/5e/world/topics/Teleportation Circle.md +16 -0
- package/systems/5e/world/topics/Thaumaturgy.md +21 -0
- package/systems/5e/world/topics/The Fiend.md +47 -0
- package/systems/5e/world/topics/Thief.md +24 -0
- package/systems/5e/world/topics/Thunderwave.md +16 -0
- package/systems/5e/world/topics/Time Stop.md +14 -0
- package/systems/5e/world/topics/Tiny Hut.md +17 -0
- package/systems/5e/world/topics/Tongues.md +12 -0
- package/systems/5e/world/topics/Transport via Plants.md +12 -0
- package/systems/5e/world/topics/Tree Stride.md +15 -0
- package/systems/5e/world/topics/True Polymorph.md +29 -0
- package/systems/5e/world/topics/True Resurrection.md +16 -0
- package/systems/5e/world/topics/True Seeing.md +12 -0
- package/systems/5e/world/topics/True Strike.md +13 -0
- package/systems/5e/world/topics/Unseen Servant.md +17 -0
- package/systems/5e/world/topics/Vampiric Touch.md +15 -0
- package/systems/5e/world/topics/Vicious Mockery.md +14 -0
- package/systems/5e/world/topics/Wall of Fire.md +19 -0
- package/systems/5e/world/topics/Wall of Force.md +15 -0
- package/systems/5e/world/topics/Wall of Ice.md +19 -0
- package/systems/5e/world/topics/Wall of Stone.md +23 -0
- package/systems/5e/world/topics/Wall of Thorns.md +19 -0
- package/systems/5e/world/topics/Warding Bond.md +14 -0
- package/systems/5e/world/topics/Warlock Spells.md +99 -0
- package/systems/5e/world/topics/Warlock.md +283 -0
- package/systems/5e/world/topics/Water Breathing.md +13 -0
- package/systems/5e/world/topics/Water Walk.md +15 -0
- package/systems/5e/world/topics/Way of the Open Hand.md +25 -0
- package/systems/5e/world/topics/Web.md +21 -0
- package/systems/5e/world/topics/Weird.md +13 -0
- package/systems/5e/world/topics/Wind Walk.md +14 -0
- package/systems/5e/world/topics/Wind Wall.md +17 -0
- package/systems/5e/world/topics/Wish.md +26 -0
- package/systems/5e/world/topics/Wizard Spells.md +239 -0
- package/systems/5e/world/topics/Wizard.md +141 -0
- package/systems/5e/world/topics/Word of Recall.md +14 -0
- package/systems/5e/world/topics/Zone of Truth.md +14 -0
|
@@ -0,0 +1,388 @@
|
|
|
1
|
+
import { formatStep } from "../core/length.js";
|
|
2
|
+
import { files } from "../core/store.js";
|
|
3
|
+
import { comparableText } from "../core/text.js";
|
|
4
|
+
import { readCounter } from "../counters/index.js";
|
|
5
|
+
import { reachable, squareName, squaresApart, withoutMapBlock } from "../grid/index.js";
|
|
6
|
+
import { hiddenImageName } from "../images/index.js";
|
|
7
|
+
import { environmentAt, locate, pagesWithName, pagesWithNameOrAlias, parsePageReference, placesAround } from "../pages/index.js";
|
|
8
|
+
import { effectsOf } from "./effect-layer.js";
|
|
9
|
+
import { conditionMark, effectParts, keptEffects } from "./game-effects.js";
|
|
10
|
+
import { isTurnOf, movedThisTurn, sideOf, walkingSpeed } from "./game-grid-moves.js";
|
|
11
|
+
import { placeGrid, placeLook, standing } from "./game-grids.js";
|
|
12
|
+
import { imageFile, ownImage, shownImage } from "./game-images.js";
|
|
13
|
+
import { knownText, knowsPage } from "./game-knowledge.js";
|
|
14
|
+
import { measuresOf } from "./game-roads.js";
|
|
15
|
+
import { copyPage, readOpenScene } from "./game-scene.js";
|
|
16
|
+
import { campaignSystem } from "./game-world.js";
|
|
17
|
+
import { pageCounters } from "./page-counters.js";
|
|
18
|
+
import { tokenIcon } from "./sheet.js";
|
|
19
|
+
/** Where the player character is, as it knows it; none when it is in no place it knows, as in the open on a journey. */
|
|
20
|
+
export function shownPlace(sight) {
|
|
21
|
+
const { world, knowledge } = sight;
|
|
22
|
+
const places = locate(world, knowledge.pc).chain.filter((holder) => holder.type === "place" && knowsPage(knowledge, holder));
|
|
23
|
+
const place = places[0];
|
|
24
|
+
if (place === undefined) {
|
|
25
|
+
return undefined;
|
|
26
|
+
}
|
|
27
|
+
const known = (holder) => (knowsPage(knowledge, holder) ? holder.name : undefined);
|
|
28
|
+
const placed = (holder) => (known(holder) === undefined ? {} : { place: holder.name });
|
|
29
|
+
const around = [
|
|
30
|
+
...environmentAt(world, place).map(({ entry, place: holder }) => ({ name: entry.name, value: entry.value, ...placed(holder) })),
|
|
31
|
+
...placesAround(world, place).flatMap((holder) => effectsOf(holder).map((effect) => ({ effect: effect.name, ...(effect.end === undefined ? {} : { end: effect.end }), ...placed(holder) }))),
|
|
32
|
+
];
|
|
33
|
+
const present = world.pages.filter((page) => page.type === "character" && page.fields.status !== "dead" && locate(world, page).chain[0] === place
|
|
34
|
+
&& (sight.party.includes(page) || knowsPage(knowledge, page)));
|
|
35
|
+
const image = picture(sight, place);
|
|
36
|
+
const grid = placeGrid(place)?.grid;
|
|
37
|
+
const text = knownText(world, knowledge, place);
|
|
38
|
+
return {
|
|
39
|
+
name: place.name,
|
|
40
|
+
...(image === undefined ? {} : { image }),
|
|
41
|
+
within: places.slice(1).map((holder) => holder.name).reverse(),
|
|
42
|
+
around,
|
|
43
|
+
// The map block is drawn, not read.
|
|
44
|
+
text: grid === undefined ? text : withoutMapBlock(text),
|
|
45
|
+
// The party first, the player character at its head.
|
|
46
|
+
here: [...sight.party.filter((page) => present.includes(page)), ...present.filter((page) => !sight.party.includes(page))].map((page) => ({
|
|
47
|
+
...person(sight, page),
|
|
48
|
+
...hostileMark(readOpenScene(sight.root).scene, page.name),
|
|
49
|
+
...stateOf(sight, page),
|
|
50
|
+
})),
|
|
51
|
+
...(grid === undefined ? {} : { map: shownGrid(sight, place, grid) }),
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* A place's map as the player sees it (GRD-6): who stands where, the party and the characters the character knows by name, the others of the open scene as
|
|
56
|
+
* someone, its copies as the scene names them; a character it does not know outside the scene is not shown, as in VIEW-6.
|
|
57
|
+
*/
|
|
58
|
+
function shownGrid(sight, place, written) {
|
|
59
|
+
const { grid, ground } = placeLook(sight.world, place, written);
|
|
60
|
+
// What is not found yet looks like what lies under it: a hidden door like the wall, anything else like the floor (GRD-6).
|
|
61
|
+
const hidden = new Map(grid.features.filter((feature) => feature.hidden).map((feature) => [feature.symbol, ["door", "open-door", "secret-door", "opening", "window"].includes(feature.kind) ? "#" : "."]));
|
|
62
|
+
const lines = grid.lines.map((line) => [...line].map((symbol) => hidden.get(symbol) ?? symbol).join(""));
|
|
63
|
+
const used = new Set(lines.join(""));
|
|
64
|
+
const scene = readOpenScene(sight.root).scene;
|
|
65
|
+
const here = scene?.place !== undefined && comparableText(parsePageReference(scene.place).name) === comparableText(place.name) ? scene : undefined;
|
|
66
|
+
const inScene = new Set((here?.with ?? []).map((link) => comparableText(parsePageReference(link).name)));
|
|
67
|
+
const system = campaignSystem(sight.root, sight.context);
|
|
68
|
+
const measures = measuresOf(sight.root, system);
|
|
69
|
+
const standings = standing(sight.world, place, here);
|
|
70
|
+
const self = standings.find((one) => one.page === sight.party[0] && one.square !== undefined);
|
|
71
|
+
const at = standings.flatMap((one) => {
|
|
72
|
+
const square = one.square === undefined ? undefined : squareName(one.square);
|
|
73
|
+
if (square === undefined) {
|
|
74
|
+
return [];
|
|
75
|
+
}
|
|
76
|
+
const measured = { square, ...(system?.grid === undefined ? {} : measuredFrom(sight, system.grid, measures, here, self, one)) };
|
|
77
|
+
if (one.copy !== undefined && here !== undefined) {
|
|
78
|
+
const copy = here.copies[one.copy];
|
|
79
|
+
const creature = knownPage(sight, copy?.creature);
|
|
80
|
+
const image = creature === undefined ? strangerPicture(sight, copy?.creature) : picture(sight, creature);
|
|
81
|
+
const state = copy === undefined ? {} : stateOf(sight, copyPage(one.copy, copy));
|
|
82
|
+
return [
|
|
83
|
+
creature === undefined
|
|
84
|
+
? { name: strangerName(here, one.copy), role: "other", stranger: true, ...(image === undefined ? {} : { image }), ...hostileMark(here, one.copy), ...state, ...measured }
|
|
85
|
+
: { name: one.copy, role: "other", ...(image === undefined ? {} : { image }), ...hostileMark(here, one.copy), ...state, ...measured },
|
|
86
|
+
];
|
|
87
|
+
}
|
|
88
|
+
const page = one.page;
|
|
89
|
+
if (page === undefined || page.type !== "character" || page.fields.status === "dead") {
|
|
90
|
+
return [];
|
|
91
|
+
}
|
|
92
|
+
if (sight.party.includes(page) || knowsPage(sight.knowledge, page)) {
|
|
93
|
+
return [{ ...person(sight, page), ...hostileMark(here, page.name), ...stateOf(sight, page), ...measured }];
|
|
94
|
+
}
|
|
95
|
+
const image = strangerPicture(sight, page.name);
|
|
96
|
+
return inScene.has(comparableText(page.name))
|
|
97
|
+
? [{ name: seenName(here, page.name), role: "other", stranger: true, ...(image === undefined ? {} : { image }), ...hostileMark(here, page.name), ...strangerState(sight, here, page), ...measured }]
|
|
98
|
+
: [];
|
|
99
|
+
});
|
|
100
|
+
const reach = system?.grid === undefined || here === undefined || self === undefined || !isTurnOf(here, self.name) ? [] : reachOf(sight, system.grid, measures, here, self, { ...grid, lines });
|
|
101
|
+
return {
|
|
102
|
+
columns: grid.columns,
|
|
103
|
+
rows: grid.rows,
|
|
104
|
+
lines,
|
|
105
|
+
legend: grid.features.filter((feature) => !feature.hidden && used.has(feature.symbol)).map((feature) => ({
|
|
106
|
+
symbol: feature.symbol,
|
|
107
|
+
name: feature.name,
|
|
108
|
+
kind: feature.kind,
|
|
109
|
+
...(feature.blocks ? { blocks: true } : {}),
|
|
110
|
+
...(feature.difficult ? { difficult: true } : {}),
|
|
111
|
+
})),
|
|
112
|
+
ground,
|
|
113
|
+
exits: grid.exits.filter((exit) => !hidden.has(grid.lines[exit.square.row]?.[exit.square.column] ?? "")).map((exit) => {
|
|
114
|
+
const to = knownPage(sight, exit.to);
|
|
115
|
+
return { square: squareName(exit.square), ...(to === undefined ? {} : { to: to.name }) };
|
|
116
|
+
}),
|
|
117
|
+
at,
|
|
118
|
+
...(reach.length === 0 ? {} : { reach }),
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
/** How big one on the map is, when more than a square, and how far from the player character, in the player's units (GRD-4, D-328). */
|
|
122
|
+
function measuredFrom(sight, rules, measures, scene, self, one) {
|
|
123
|
+
const side = sideOf(sight.world, rules, scene, one);
|
|
124
|
+
const apart = self === undefined || one === self || one.square === undefined
|
|
125
|
+
? undefined
|
|
126
|
+
: squaresApart({ square: self.square, side: sideOf(sight.world, rules, scene, self) }, { square: one.square, side }, rules);
|
|
127
|
+
// On the player character's own square no distance: the page says they are next to it.
|
|
128
|
+
return { ...(side > 1 ? { side } : {}), ...(apart === undefined || apart === 0 ? {} : { distance: formatStep(apart * rules.square, measures.units, measures.imperial) }) };
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* The squares the player character can still reach on its turn in a fight (D-328), with what is left of its speed, on the map as the player sees it: what is
|
|
132
|
+
* hidden counts as what lies under it, so that the way round a trap never gives it away (GRD-6).
|
|
133
|
+
*/
|
|
134
|
+
function reachOf(sight, rules, measures, scene, self, grid) {
|
|
135
|
+
const speed = walkingSpeed(sight.world, rules, measures, scene, self).metres;
|
|
136
|
+
const left = speed === undefined ? 0 : speed / rules.square - movedThisTurn(scene);
|
|
137
|
+
return left <= 0 ? [] : reachable(grid, self.square, left + 1e-9, rules).filter((one) => one.cost > 0).map((one) => squareName(one.square));
|
|
138
|
+
}
|
|
139
|
+
/** The open scene as the player sees it; none when no scene is open, or it cannot be read. */
|
|
140
|
+
export function shownScene(sight) {
|
|
141
|
+
const { scene } = readOpenScene(sight.root);
|
|
142
|
+
if (scene === undefined) {
|
|
143
|
+
return undefined;
|
|
144
|
+
}
|
|
145
|
+
const place = knownPage(sight, scene.place);
|
|
146
|
+
const characters = scene.with.map((link) => {
|
|
147
|
+
const name = parsePageReference(link).name;
|
|
148
|
+
const page = knownPage(sight, link);
|
|
149
|
+
const hostile = hostileMark(scene, name);
|
|
150
|
+
const written = pagesWithName(sight.world, name)[0];
|
|
151
|
+
const state = written === undefined ? {} : strangerState(sight, scene, written);
|
|
152
|
+
const image = strangerPicture(sight, name);
|
|
153
|
+
return page === undefined
|
|
154
|
+
? { name: seenName(scene, name), role: "other", stranger: true, ...(image === undefined ? {} : { image }), ...hostile, ...state }
|
|
155
|
+
: { ...person(sight, page), ...hostile, ...stateOf(sight, page) };
|
|
156
|
+
});
|
|
157
|
+
const creatures = [...new Set(Object.values(scene.copies).map((copy) => copy.creature))].map((creature) => {
|
|
158
|
+
const count = Object.values(scene.copies).filter((copy) => copy.creature === creature).length;
|
|
159
|
+
const page = knownPage(sight, creature);
|
|
160
|
+
// A kind the character does not know by the letter its copies have in the scene, as creature B, with more kinds (D-331).
|
|
161
|
+
const first = Object.keys(scene.copies).find((copy) => scene.copies[copy].creature === creature);
|
|
162
|
+
const name = first === undefined ? "creature" : strangerName(scene, first).replace(/\s*\d+$/, "");
|
|
163
|
+
// A kind is hostile when one of its copies is.
|
|
164
|
+
const hostile = Object.keys(scene.copies).some((copy) => scene.copies[copy].creature === creature && hostileMark(scene, copy).hostile === true) ? { hostile: true } : {};
|
|
165
|
+
// A kind of one copy shows its state; of more, each shows its own on the map and in Combat.
|
|
166
|
+
const state = count === 1 && first !== undefined ? stateOf(sight, copyPage(first, scene.copies[first])) : {};
|
|
167
|
+
const image = strangerPicture(sight, creature);
|
|
168
|
+
return page === undefined
|
|
169
|
+
? { name, role: "other", stranger: true, ...(image === undefined ? {} : { image }), count, ...hostile, ...state }
|
|
170
|
+
: { ...person(sight, page), count, ...hostile, ...state };
|
|
171
|
+
});
|
|
172
|
+
const turnName = (name) => shownTurn(sight, scene, name);
|
|
173
|
+
return {
|
|
174
|
+
title: scene.title,
|
|
175
|
+
type: scene.type,
|
|
176
|
+
...(scene.opened === undefined ? {} : { since: scene.opened }),
|
|
177
|
+
...(scene.now === undefined ? {} : { now: scene.now }),
|
|
178
|
+
...(place === undefined ? {} : { place: place.name }),
|
|
179
|
+
who: [...characters, ...creatures],
|
|
180
|
+
...(scene.order === undefined ? {} : { order: scene.order.map(turnName) }),
|
|
181
|
+
...(scene.turn === undefined ? {} : { turn: turnName(scene.turn) }),
|
|
182
|
+
...(scene.round === undefined ? {} : { round: scene.round }),
|
|
183
|
+
...(scene.type === "combat" ? { fighters: fightersOf(sight, scene) } : {}),
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Who is in the open scene, by the words the page gives them (D-416): a character by name when the character knows them, else by what it sees of them, else
|
|
188
|
+
* someone; a copy by its name when it knows its creature, else by what it sees of its kind and its number, else creature 1.
|
|
189
|
+
*/
|
|
190
|
+
export function sceneNames(sight) {
|
|
191
|
+
const { scene } = readOpenScene(sight.root);
|
|
192
|
+
const names = scene === undefined ? [] : [...scene.with.map((link) => parsePageReference(link).name), ...Object.keys(scene.copies)];
|
|
193
|
+
return scene === undefined ? [] : names.map((name) => shownTurn(sight, scene, name));
|
|
194
|
+
}
|
|
195
|
+
/** Everyone in a fight, in the order of the turns when there is one, else the characters then the copies; those the view cannot name are left out. */
|
|
196
|
+
function fightersOf(sight, scene) {
|
|
197
|
+
const names = scene.order ?? [...scene.with.map((link) => parsePageReference(link).name), ...Object.keys(scene.copies)];
|
|
198
|
+
return names.flatMap((name) => {
|
|
199
|
+
const fighter = fighterOf(sight, scene, name);
|
|
200
|
+
return fighter === undefined ? [] : [fighter];
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
/** One in the fight (D-314): a copy as the character knows its creature, a character as it knows them; the party in full, the others by what anyone sees. */
|
|
204
|
+
function fighterOf(sight, scene, name) {
|
|
205
|
+
const system = campaignSystem(sight.root, sight.context);
|
|
206
|
+
const copy = Object.entries(scene.copies).find(([copyName]) => comparableText(copyName) === comparableText(name));
|
|
207
|
+
const page = copy === undefined ? pagesWithName(sight.world, parsePageReference(name).name)[0] : copyPage(copy[0], copy[1]);
|
|
208
|
+
if (page === undefined) {
|
|
209
|
+
return undefined;
|
|
210
|
+
}
|
|
211
|
+
const party = sight.party.includes(page);
|
|
212
|
+
// A copy is named when the character knows its creature; a character when it knows them.
|
|
213
|
+
const creature = copy === undefined ? undefined : knownPage(sight, copy[1].creature);
|
|
214
|
+
const stranger = copy === undefined ? !party && !knowsPage(sight.knowledge, page) : creature === undefined;
|
|
215
|
+
const shown = !stranger ? page.name : copy === undefined ? seenName(scene, page.name) : strangerName(scene, copy[0]);
|
|
216
|
+
const image = stranger ? strangerPicture(sight, copy === undefined ? page.name : copy[1].creature) : picture(sight, creature ?? page);
|
|
217
|
+
const effects = shownEffects(sight, system, page, party);
|
|
218
|
+
const health = healthOf(sight.world, system, page, party);
|
|
219
|
+
const keeps = party ? keptEffects(sight.world, readOpenScene(sight.root).scene, page.name) : [];
|
|
220
|
+
const dying = party ? dyingOf(sight.world, system, page) : undefined;
|
|
221
|
+
const icon = party ? tokenIcon(sight.world, system, page) : undefined;
|
|
222
|
+
return {
|
|
223
|
+
name: shown,
|
|
224
|
+
role: page === sight.knowledge.pc ? "pc" : party ? "companion" : "other",
|
|
225
|
+
...(image === undefined ? {} : { image }),
|
|
226
|
+
...(icon === undefined ? {} : { icon }),
|
|
227
|
+
...(stranger ? { stranger: true } : {}),
|
|
228
|
+
...hostileMark(scene, name),
|
|
229
|
+
...(health === undefined ? {} : { health }),
|
|
230
|
+
effects,
|
|
231
|
+
...(keepsFromActing(system, effects) ? { inactive: true } : {}),
|
|
232
|
+
...(keeps.length === 0 ? {} : { keeps }),
|
|
233
|
+
...(dying === undefined ? {} : { dying }),
|
|
234
|
+
};
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* The panel of the dying of someone of the party (D-310 (7), D-314): at the value of the counter the system names, as hp 0, the counters it shows, with their
|
|
238
|
+
* limits; none at any other value, nor for the dead.
|
|
239
|
+
*/
|
|
240
|
+
export function dyingOf(world, system, page) {
|
|
241
|
+
const counters = pageCounters(world, page);
|
|
242
|
+
const dying = system?.dying;
|
|
243
|
+
if (dying === undefined || page.fields.status === "dead" || readCounter(counters[dying.field])?.value !== dying.value) {
|
|
244
|
+
return undefined;
|
|
245
|
+
}
|
|
246
|
+
return dying.show.map((field) => ({ field, value: readCounter(counters[field] ?? page.fields[field])?.value ?? 0, ...limitOf(system?.thresholds ?? [], field) }));
|
|
247
|
+
}
|
|
248
|
+
/** An effect on someone of the party as the player sees it: an end at someone's turn names them as the character knows them (VIEW-4), as creature 2. */
|
|
249
|
+
export function seenEffect(sight, effect) {
|
|
250
|
+
const end = effect.end;
|
|
251
|
+
const system = campaignSystem(sight.root, sight.context);
|
|
252
|
+
if (end === undefined || !("turn" in end)) {
|
|
253
|
+
return effectParts(sight.world, system, effect);
|
|
254
|
+
}
|
|
255
|
+
const scene = readOpenScene(sight.root).scene ?? { copies: {} };
|
|
256
|
+
return effectParts(sight.world, system, { ...effect, end: { ...end, turn: shownTurn(sight, scene, end.turn) } });
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* The state a token shows (D-419): what is on them, whether a condition keeps them from acting, whether they are at 0 as Combat tells it, or dead; the party in
|
|
260
|
+
* full, the others by what anyone sees (D-314).
|
|
261
|
+
*/
|
|
262
|
+
function stateOf(sight, page) {
|
|
263
|
+
const system = campaignSystem(sight.root, sight.context);
|
|
264
|
+
const party = sight.party.includes(page);
|
|
265
|
+
const effects = shownEffects(sight, system, page, party);
|
|
266
|
+
const dead = page.fields.status === "dead";
|
|
267
|
+
const down = !dead && (party ? dyingOf(sight.world, system, page) !== undefined : healthOf(sight.world, system, page, false) === "down");
|
|
268
|
+
return {
|
|
269
|
+
...(effects.length === 0 ? {} : { effects }),
|
|
270
|
+
...(keepsFromActing(system, effects) ? { inactive: true } : {}),
|
|
271
|
+
...(down ? { down: true } : {}),
|
|
272
|
+
...(dead ? { dead: true } : {}),
|
|
273
|
+
};
|
|
274
|
+
}
|
|
275
|
+
/** The state of a character in the scene the character does not know (D-419): as anyone sees it when the master said what it sees of them, none for someone. */
|
|
276
|
+
function strangerState(sight, scene, page) {
|
|
277
|
+
return scene === undefined || seenOf(scene, page.name) === undefined ? {} : stateOf(sight, page);
|
|
278
|
+
}
|
|
279
|
+
/** What is on someone as the player sees it (D-314, D-419): the party's effects as their line gives them, with their end; of the others only the conditions anyone sees. */
|
|
280
|
+
function shownEffects(sight, system, page, party) {
|
|
281
|
+
return effectsOf(page).flatMap((effect) => {
|
|
282
|
+
const mark = conditionMark(system, effect.name);
|
|
283
|
+
return party ? [seenEffect(sight, effect)] : mark.condition === true ? [{ name: effect.name, text: effect.name, ...mark }] : [];
|
|
284
|
+
});
|
|
285
|
+
}
|
|
286
|
+
/** Whether one of these effects is a condition the system says keeps from acting (D-314). */
|
|
287
|
+
function keepsFromActing(system, effects) {
|
|
288
|
+
const inactive = new Set((system?.combat?.inactive ?? []).map(comparableText));
|
|
289
|
+
return effects.some((effect) => inactive.has(comparableText(effect.name)));
|
|
290
|
+
}
|
|
291
|
+
/** Someone's counter in a fight as the player may know it (D-238, D-314): the party's as numbers, a foe's in words when the system says so, else none. */
|
|
292
|
+
function healthOf(world, system, page, party) {
|
|
293
|
+
const track = system?.combat === undefined ? undefined : readCounter(pageCounters(world, page)[system.combat.track]);
|
|
294
|
+
if (track === undefined) {
|
|
295
|
+
return undefined;
|
|
296
|
+
}
|
|
297
|
+
return party ? `${track.value}${track.max === undefined ? "" : `/${track.max}`}` : system?.combat?.inWords ? healthWord(track.value, track.max) : undefined;
|
|
298
|
+
}
|
|
299
|
+
/** A foe's counter as the player may hear it (D-238, D-314): unhurt, hurt, bloodied at half or less, down at none. */
|
|
300
|
+
function healthWord(value, most) {
|
|
301
|
+
if (value <= 0) {
|
|
302
|
+
return "down";
|
|
303
|
+
}
|
|
304
|
+
if (most === undefined || value >= most) {
|
|
305
|
+
return "unhurt";
|
|
306
|
+
}
|
|
307
|
+
return value * 2 <= most ? "bloodied" : "hurt";
|
|
308
|
+
}
|
|
309
|
+
/** The limit a threshold of the system gives a counter, as death-failures 3. */
|
|
310
|
+
function limitOf(thresholds, field) {
|
|
311
|
+
const limit = thresholds.find((threshold) => comparableText(threshold.field) === comparableText(field))?.value;
|
|
312
|
+
return limit === undefined ? {} : { limit };
|
|
313
|
+
}
|
|
314
|
+
/** The mark of one the master says attacks the party, in a fight (D-415); nothing for anyone else, or outside a fight. */
|
|
315
|
+
function hostileMark(scene, name) {
|
|
316
|
+
const hostile = scene?.type === "combat" && (scene.hostile ?? []).some((one) => comparableText(one) === comparableText(parsePageReference(name).name));
|
|
317
|
+
return hostile ? { hostile: true } : {};
|
|
318
|
+
}
|
|
319
|
+
/** Someone the character knows, with their picture and their role. */
|
|
320
|
+
function person(sight, page) {
|
|
321
|
+
const role = page === sight.knowledge.pc ? "pc" : sight.party.includes(page) ? "companion" : "other";
|
|
322
|
+
const image = picture(sight, page);
|
|
323
|
+
// Only the party's: what the others are, the character may not know.
|
|
324
|
+
const icon = role === "other" ? undefined : tokenIcon(sight.world, campaignSystem(sight.root, sight.context), page);
|
|
325
|
+
return { name: page.name, role, ...(image === undefined ? {} : { image }), ...(icon === undefined ? {} : { icon }) };
|
|
326
|
+
}
|
|
327
|
+
/** A page's picture, its own or from a base the character knows (D-267, D-277). */
|
|
328
|
+
function picture(sight, page) {
|
|
329
|
+
return shownImage(sight.root, sight.context, sight.world, page, (base) => knowsPage(sight.knowledge, base));
|
|
330
|
+
}
|
|
331
|
+
/**
|
|
332
|
+
* The picture of one the character does not know, by their name or a copy's creature (D-420): the page's own, of the campaign, made from what is seen; never
|
|
333
|
+
* one from a page it derives from, nor a game system's, which would tell what it is.
|
|
334
|
+
*/
|
|
335
|
+
function strangerPicture(sight, name) {
|
|
336
|
+
return strangerImage(sight.root, sight.context, sight.world, name);
|
|
337
|
+
}
|
|
338
|
+
/** The picture of one the character does not know, as strangerPicture gives it, for the scene and for the rolls (D-420, D-421). */
|
|
339
|
+
export function strangerImage(root, context, world, name) {
|
|
340
|
+
// A roll keeps a renamed page by its old name, among its aliases (D-417).
|
|
341
|
+
const page = name === undefined ? undefined : pagesWithNameOrAlias(world, parsePageReference(name).name)[0];
|
|
342
|
+
const file = page === undefined || page.system !== undefined ? undefined : imageFile(root, context, ownImage(page));
|
|
343
|
+
// By a name of its bytes: the file's own is the page's, which the character does not know.
|
|
344
|
+
const hidden = file === undefined ? undefined : hiddenImageName(file);
|
|
345
|
+
return file === undefined || hidden === undefined ? undefined : { file: hidden, version: Math.trunc(files().modified(file) ?? 0) };
|
|
346
|
+
}
|
|
347
|
+
/** The page the character knows by a link or a name, of the campaign or of the system. */
|
|
348
|
+
function knownPage(sight, name) {
|
|
349
|
+
if (name === undefined) {
|
|
350
|
+
return undefined;
|
|
351
|
+
}
|
|
352
|
+
const page = pagesWithName(sight.world, parsePageReference(name).name)[0];
|
|
353
|
+
return page !== undefined && knowsPage(sight.knowledge, page) ? page : undefined;
|
|
354
|
+
}
|
|
355
|
+
/** Whose turn it is, as the character knows them: a character it knows by name, a copy by its own name when it knows the creature, else creature and its number. */
|
|
356
|
+
function shownTurn(sight, scene, name) {
|
|
357
|
+
const copy = Object.entries(scene.copies).find(([copyName]) => comparableText(copyName) === comparableText(name));
|
|
358
|
+
if (copy === undefined) {
|
|
359
|
+
return knownPage(sight, name)?.name ?? seenName(scene, name);
|
|
360
|
+
}
|
|
361
|
+
return knownPage(sight, copy[1].creature) === undefined ? strangerName(scene, copy[0]) : copy[0];
|
|
362
|
+
}
|
|
363
|
+
/**
|
|
364
|
+
* The name the player hears for a copy of a creature its character does not know (D-325, D-331, D-416): what the master said the character sees of its kind and
|
|
365
|
+
* its number, brigante 2; else creature 1, and with more kinds of creature in the scene a letter for each kind, in the order of their names and counting those
|
|
366
|
+
* that left, so that it never changes: creature A1, creature B1.
|
|
367
|
+
*/
|
|
368
|
+
function strangerName(scene, copy) {
|
|
369
|
+
const all = { ...scene.gone, ...scene.copies };
|
|
370
|
+
const kindOf = (name) => (all[name] === undefined ? undefined : comparableText(parsePageReference(all[name].creature).name));
|
|
371
|
+
const kinds = [...new Set(Object.keys(all).map(kindOf).filter((kind) => kind !== undefined))].sort();
|
|
372
|
+
const kind = kindOf(copy);
|
|
373
|
+
const number = /\d+$/.exec(copy)?.[0] ?? "";
|
|
374
|
+
const seen = kind === undefined ? undefined : seenOf(scene, kind);
|
|
375
|
+
if (seen !== undefined) {
|
|
376
|
+
return `${seen} ${number}`.trim();
|
|
377
|
+
}
|
|
378
|
+
const letter = kinds.length > 1 && kind !== undefined ? String.fromCharCode(65 + kinds.indexOf(kind)) : "";
|
|
379
|
+
return `creature ${letter}${number}`.trim();
|
|
380
|
+
}
|
|
381
|
+
/** What the character sees of a character it does not know by name, as the master said (D-416); someone when the master said nothing. */
|
|
382
|
+
function seenName(scene, name) {
|
|
383
|
+
return (scene === undefined ? undefined : seenOf(scene, name)) ?? "someone";
|
|
384
|
+
}
|
|
385
|
+
/** What the master said the character sees of a character or a kind of creature, by its name. */
|
|
386
|
+
function seenOf(scene, name) {
|
|
387
|
+
return Object.entries(scene.seen ?? {}).find(([key]) => comparableText(key) === comparableText(parsePageReference(name).name))?.[1];
|
|
388
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import type { Context } from "../core/context.ts";
|
|
2
|
+
import type { Problem } from "../core/problem.ts";
|
|
3
|
+
import { type PageType, type World } from "../pages/index.ts";
|
|
4
|
+
import { type GameSystem, type SystemSetting } from "../systems/index.ts";
|
|
5
|
+
/** The world of the campaign in `root`, with the pages of its game system when campaign.yaml names one that is installed (SYS-1, SYS-3). */
|
|
6
|
+
export declare function campaignWorld(root: string, context: Context): World;
|
|
7
|
+
/**
|
|
8
|
+
* The installed game system that campaign.yaml names, with what the campaign adds to it (CAM-1, CAM-2): alone when the additions do not read (CAM-3). Undefined
|
|
9
|
+
* when it names none, or one that is not installed (SYS-1).
|
|
10
|
+
*/
|
|
11
|
+
export declare function campaignSystem(root: string, context: Context): GameSystem | undefined;
|
|
12
|
+
/** A setting the campaign's game system adds to the setup (DAT-10), by its name in any case; undefined when the system has none by that name. */
|
|
13
|
+
export declare function systemSetting(root: string, context: Context, name: string): SystemSetting | undefined;
|
|
14
|
+
/** The value campaign.yaml gives a setting of the system, when it is one the system has (DAT-10). */
|
|
15
|
+
export declare function systemSettingValue(root: string, setting: SystemSetting): string | undefined;
|
|
16
|
+
/** "xp is not kept with advancement milestones": said when a field the campaign's settings leave out is written or changed (DAT-10); undefined for any other. */
|
|
17
|
+
export declare function leftOutNote(root: string, context: Context, field: string): string | undefined;
|
|
18
|
+
/** A setting of the system written by hand with a value the system does not have (DAT-10): what it takes instead. */
|
|
19
|
+
export declare function systemSettingProblems(root: string, context: Context): Problem[];
|
|
20
|
+
/** "xp or milestones": the values of a setting of the system. */
|
|
21
|
+
export declare function valuesText(setting: SystemSetting): string;
|
|
22
|
+
/** The occasions of a game system that end effects (DAT-5): those its recipes name, such as long rest. */
|
|
23
|
+
export declare function occasionsOf(system: GameSystem | undefined): string[];
|
|
24
|
+
/** The occasions of the campaign's game system, with its name; undefined without one. */
|
|
25
|
+
export declare function systemOccasions(root: string, context: Context): {
|
|
26
|
+
system: string;
|
|
27
|
+
names: string[];
|
|
28
|
+
} | undefined;
|
|
29
|
+
/** A game system named in campaign.yaml that is not installed (SYS-1, D-167): the commands go on without its pages. */
|
|
30
|
+
export declare function systemProblems(root: string, context: Context): Problem[];
|
|
31
|
+
/** The name of an installed game system, as it is installed; refused, with those that are, when none has it (D-167). */
|
|
32
|
+
export declare function installedSystemName(name: string, context: Context, how: "init" | "config"): string;
|
|
33
|
+
/** " The campaign's system, Quinta edizione, is not installed, so none of its pages can be found: validate says how to fix it.": for a name not found (SYS-1). Empty otherwise. */
|
|
34
|
+
export declare function missingSystemHint(world: World): string;
|
|
35
|
+
/**
|
|
36
|
+
* " find looks for the pages of the system 5e in their names and fields, in English.": how a page of the game system is found, for a name that was not (SYS-3, D-165);
|
|
37
|
+
* the language only when it is not the campaign's. Empty when there is no system.
|
|
38
|
+
*/
|
|
39
|
+
export declare function systemSearchHint(world: World): string;
|
|
40
|
+
/** The language the game system names its pages in, such as English, when it is not the campaign's (D-165); undefined when it is, or there is no system. */
|
|
41
|
+
export declare function foreignSystemLanguage(world: World): string | undefined;
|
|
42
|
+
/** The language a game system writes in, such as English, when the campaign plays in another one (D-165); undefined when it is the same, or the campaign's is not set. */
|
|
43
|
+
export declare function foreignLanguage(systemLanguage: string, campaignLanguage: string | undefined): string | undefined;
|
|
44
|
+
/**
|
|
45
|
+
* " If it is a kind of one of the system 5e (named in English: find, type creature, with a text in English), set creature to it, and its numbers come from there.": for a page
|
|
46
|
+
* created without the base its type may have, when the game system has pages of that type (D-165, SYS-7). Empty otherwise.
|
|
47
|
+
*/
|
|
48
|
+
export declare function systemBaseHint(world: World, type: PageType, field: string): string;
|
|
49
|
+
/**
|
|
50
|
+
* " The system 5e has 8 more creatures, named in English: find one with find, type creature and a text in English, then give its name here.": the pages of a type
|
|
51
|
+
* the game system has, for a message that lists the campaign's (SYS-3). Empty when it has none.
|
|
52
|
+
*/
|
|
53
|
+
export declare function systemPagesHint(world: World, type: PageType): string;
|
|
54
|
+
/** The settings still missing, with the installed game systems beside system, the one to ask for among them (D-167): "system (installed: 5e)". */
|
|
55
|
+
export declare function missingWithSystems(root: string, missing: string[], context: Context): string[];
|
|
56
|
+
/**
|
|
57
|
+
* The campaign's system as status shows it, so that the master always knows which rules are played (D-173): "5e, the fifth edition from the SRD 5.1, the 2014 rules";
|
|
58
|
+
* one that is not installed says so, with the fix (D-167). Undefined when campaign.yaml names none.
|
|
59
|
+
*/
|
|
60
|
+
export declare function systemInStatus(root: string, context: Context): string | undefined;
|