R-251: measure what ddc4f99 actually did, four commits late

The baseline needed no re-recording — e5dc9b5 already captured these
numbers, it matches HEAD's code exactly, and it differs from 4b71859's
in precisely the 26 entries ddc4f99 moved. What was missing was any
record of WHAT that change did, since it was folded silently into a
commit about wings.

Isolated by replaying 322389b and ddc4f99 against the same party, seed
and counts, so the figures are ddc4f99's own and not contaminated by the
four commits after it:

  creatures whose numbers moved          26 of 46
  deadlier                                3
  less deadly                             8
  unchanged wipe rate, moved elsewhere   15
  mean change in wipe rate               -0.17 points

Routing every blow through a hit location REDISTRIBUTED lethality
without raising it. Creatures with one big attack got slightly less
dangerous, because a blow that used to come off a single pool now has to
beat the armour covering wherever it landed; creatures that attack often
got slightly more dangerous, because they now accumulate damage in a
limb and disable it. Across the bestiary those cancel to within a fifth
of a point. Largest moves: the courier 6% -> 3.5%, the arrears 7.5% ->
9.5%, the stanchion 26% -> 28%, the long walker 68% -> 66.5%.

The log entry also records the two corrections I owe this thread, both
from explaining before measuring: the seeding was always per creature,
and the claim in check-lethality's header that I called untrue was true.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
slaguru666
2026-09-12 22:24:34 +01:00
co-authored by Claude Opus 5
parent 4cfacd47fe
commit e54ce9130d
2 changed files with 46 additions and 1 deletions
+45
View File
@@ -5130,3 +5130,48 @@ sheet is a grid of cards so it can be skimmed under pressure rather than read.
Version bumped to 0.9.0 — which, incidentally, is what makes Foundry re-fetch the
stylesheet for anyone updating.
### R-251. The largest combat change the system has had, measured four commits late
`ddc4f99` routed every ordinary blow through the hit location table. Until then the
locations were a hazards-only subsystem — falling, fire, explosions and automatic fire
rolled a location, and every sword and pistol did not. That commit is the reason the
rest of this work exists, and nobody measured what it did to the game until now.
`check-lethality` did not notice, and the way it failed is the useful part. Twenty-six
of forty-six creatures moved. Not one of them moved more than two points of wipe rate,
the guard allowed six, and so it reported OK for four commits while comparing against
numbers from a version of combat that no longer existed. A tolerance sized for sampling
noise, in a simulation that has none, is just a blindfold with a rationale.
Isolated by replaying `322389b` and `ddc4f99` against the same party, seed and counts:
| | |
|---|---|
| creatures whose numbers moved | 26 of 46 |
| deadlier | 3 |
| less deadly | 8 |
| unchanged wipe rate, moved elsewhere | 15 |
| mean change in wipe rate | **−0.17 points** |
The largest single moves were the courier (6% → 3.5% wipe), the arrears (7.5% → 9.5%),
the stanchion (26% → 28%) and the long walker (68% → 66.5%).
So the answer is reassuring, and it is worth having written down rather than assumed:
sending every blow through a location **redistributed** lethality without raising it.
Creatures with one big attack got slightly less dangerous, because a blow that used to
come straight off a single hit point pool now has to beat the armour covering wherever
it landed. Creatures that attack often got slightly more dangerous, because they now
accumulate damage in a limb and disable it. Across the bestiary those cancel to within
a fifth of a point.
Two corrections to the record, both mine, both from explaining before measuring:
- I reported that adding a creature shifted a shared random stream and perturbed its
neighbours' numbers. It does not. `measure()` builds its own generator per call;
inserting a creature ahead of the barghest changes 0 of 47 entries. The guard's own
claim about this was right and mine was wrong.
- I then said the file's claim was untrue in a commit message. It was true.
The baseline recorded in `e5dc9b5` already carries these numbers. What was missing was
this page.
+1 -1
View File
@@ -2,7 +2,7 @@
"id": "ringbrp",
"title": "The Custodians",
"description": "A Basic Roleplaying game of agents who cross the crossing to contain what should not be there — and who come back a little less from here each time.",
"version": "1.7.5",
"version": "1.7.6",
"compatibility": {
"minimum": 13,
"verified": "14.364"