Forty-six creatures and no way to look at them. They live in content.mjs, which is source code, and in the compendium, which shows one actor at a time behind two clicks. A GM prepping a case can browse neither, so in practice the bestiary was whatever the GM happened to remember writing. docs/BESTIARY.md is generated, never hand-written, for the reason the rules journal is generated from rules.mjs: a reference that can disagree with the thing it references is worse than no reference. It opens with a one-page table sorted by how much of a party each creature puts on the floor - the part that gets printed - then an entry each with characteristics, attack, the POWER line pulled out of the tactics, and the measured figure read straight from the lethality baseline. Every number is derived, so the document cannot drift, and check-lethality already refuses the build if the measurements move. IT FOUND SOMETHING IN ITS FIRST RUN. The generic heavy natural attack is keyed `grasp` and was NAMED "Vesh grasp limb". Twenty-two creatures carry it and five are Vesh, so the at-a-glance table cheerfully printed "Vesh grasp limb" against a black dog, a kelpie, a church grim and an apple tree. Renamed to "Grasping limb"; the key is untouched, so every kit reference and every built pack still resolves. That defect was invisible for as long as nobody could see the bestiary in one place, which is the argument for the document. The caveats are given more room than the numbers, deliberately. The measured column is SOLO against ONE frozen party, and the document says so three times: encounter lethality moves with how many there are and, much harder, with who the players brought - the same fight runs 0% to 100% across party choice. It points at --spread rather than pretending a single figure is an answer. Also records the real remaining gap: 21 creatures fight with nothing but their own bodies and still carry human anatomy, so the barghest can be shot in the left arm. The machinery to fix that is built and measured; what is missing is anatomy tables for the shapes they actually are - a quadruped, an immobile object, a swarm. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
28 lines
1.0 KiB
JSON
28 lines
1.0 KiB
JSON
{
|
|
"name": "ringbrp",
|
|
"version": "0.9.0",
|
|
"description": "The Custodians — a Basic Roleplaying game of crossings, for Foundry VTT",
|
|
"main": "ringbrp.mjs",
|
|
"scripts": {
|
|
"build": "node tools/build-packs.mjs && node tools/update-readme.mjs",
|
|
"icons": "node tools/make-icons.mjs",
|
|
"portraits": "node tools/make-portraits.mjs",
|
|
"bestiary": "node tools/bestiary.mjs",
|
|
"mj": "node tools/mj-queue.mjs",
|
|
"simulate": "node tools/simulate.mjs",
|
|
"check": "node tools/check-rules.mjs && node tools/check-kits.mjs && node tools/check-lang.mjs && node tools/check-templates.mjs && node tools/check-behaviour.mjs && node tools/check-scenarios.mjs && node tools/check-creatures.mjs && node tools/check-lethality.mjs",
|
|
"test": "npm run check",
|
|
"readme": "node tools/update-readme.mjs"
|
|
},
|
|
"keywords": [],
|
|
"author": "Tim Evans (slaguru666)",
|
|
"license": "SEE LICENSE.txt",
|
|
"type": "commonjs",
|
|
"dependencies": {
|
|
"classic-level": "^3.0.0"
|
|
},
|
|
"devDependencies": {
|
|
"handlebars": "^4.7.9"
|
|
}
|
|
}
|