Files
RingBRP/docs
slaguru666andClaude Opus 5 ad5fd57568 The harness was fighting a different animal (R-264)
Reading a narrated supporter fight showed it being hit on armR and head. It has wings; it
has never had arms. Three defects, all in the pipeline every published number comes from.

1. It located hits by species, not body plan — simulate.mjs read defender.species where
   the game writes spec.bodyPlan ?? spec.species ?? "baseline" into speciesProfile
   (build-packs.mjs:294). The barghest, kelpie and church grim were fought on two legs
   with arms, and the supporter with no wings, so the fight its tactics call the one the
   agents can win could not occur in a measured fight.
2. Armour was one scalar for the whole creature, and the harness's locations had no
   armour field. Bare wings, the grounded halving and the vital exemption — R-254 and
   R-255 — were invisible to every number. Worn armour was summed the same way, which put
   a stab vest on a cleaner's head.
3. Nothing was ever grounded: a wing could be ruined and the creature kept flying.

Fixed in the game's order — locate, then apply what that location carries, every term
imported from rules.mjs. A ruined wing calls groundedPlanFor and the wounds carry across
by severity through remapLocationDamage, the function _preUpdate uses.

A bug of mine no guard would have caught: remapLocationDamage returns { damage, moved,
rescaled } and my first draft passed the whole object where a damage map was expected, so
every wound a creature carried was forgiven the moment it came down. check-lethality would
have passed it — fewer wounds means a longer fight, which reads as a number moving, and
this commit moves numbers. Found by probing a landing by hand.

20 of 47 creatures moved, 18 deadlier and 2 less. The supporter goes 69.3% -> 25.1% wiped,
3.38 -> 2.16 down, second deadliest to fourth: it was being measured as a 30-hit-point
creature in uniform armour 9 that could not be grounded. The small rises elsewhere are the
party's armour no longer covering locations it never protected.

check-focus then caught the page overclaiming, which is what it is for: focus fire still
helps in all 30 but only 28 clear their own noise where 31 of 31 did. The guard was
asserting more than the page needs — the bestiary prints that count from the artifact and
cannot overstate it — so it now checks only what the page asserts outright, and the page
rewrote itself to "in 28 of them".

Both baselines re-recorded. Minor version, not a patch: the published numbers changed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-13 00:42:52 +01:00
..