R-251: measure what ddc4f99 actually did, four commits late
The baseline needed no re-recording —e5dc9b5already captured these numbers, it matches HEAD's code exactly, and it differs from 4b71859's in precisely the 26 entriesddc4f99moved. What was missing was any record of WHAT that change did, since it was folded silently into a commit about wings. Isolated by replaying322389bandddc4f99against 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:
co-authored by
Claude Opus 5
parent
4cfacd47fe
commit
e54ce9130d
@@ -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
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user