R-270: a rule I invented, and the coincidence that hid it

R-266 said a fighter goes down at half maximum hit points and called it one rule
in both directions. conditionFor puts someone down at hp <= 2; majorWoundFor is
ceil(hp/2) and feeds only how long the dying last; a location is disabled by
resolveLocationHit at its own locationMaxHp capacity.

The reason it survived reading: for a 10-point neighbour majorWoundFor is 5 and a
leg, abdomen or chest holds exactly 5, and for a 12-point agent both are 6. On the
locations that get hit most the invented rule returns the real one's answer, and
the narration prints MAJOR WOUND and disabled on the same line. Arms and heads are
where they part, and I had not looked at an arm.

Found by the scenario session going to rules.mjs to verify a different correction
of mine and reading the next function along. Both errors made the fight look
easier than it is.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
slaguru666
2026-09-13 10:03:34 +01:00
co-authored by Claude Opus 5
parent 6e46ad0909
commit 74e45b15e7
3 changed files with 48 additions and 7 deletions
+42 -2
View File
@@ -5825,8 +5825,13 @@ fight** — 4 points through Neil's armour. Seed 2 is the wipe, and its first tw
produce a single 3-point scratch; the column lands three blows in round 3, Kate goes 12 to
0 and Arun is disabled by a critical, and the cut is two effective attackers against three.
**Both sides disable on one good hit.** The major-wound threshold is half of max HP and it
is the same rule in both directions — the neighbours have 10, the agents 11 to 13 — so an
**Both sides disable on one good hit.** A LOCATION is disabled when the damage it has
taken reaches that location's own capacity — `locationMaxHp`, a fraction of total hit
points — which is 5 for a neighbour's leg or torso and 4 for its arms, against 6 and 5 for
an agent. (Not, as an earlier version of this entry said, at half of maximum hit points:
that is `majorWoundFor`, it feeds only how long a dying character lasts, and being taken
out of the fight is `conditionFor` at hp <= 2. See R-270 — the invented rule gave the right
answer for legs and torsos, which is why it survived being read.) So an
average blow takes a fighter out of the fight. Every disable costs its owner 30 points off
the relevant skills — `locationEffectsFor`, an arm or a leg — which for a 40% attacker is
three quarters of their hit chance, so it thins the return fire and makes the next disable
@@ -6003,3 +6008,38 @@ was possible — no guard measures the tail, because every one of them averages.
**So the reading is still doing work the measuring cannot.** Fourteen guards, and the
thing worth knowing about this fight — that it ends with one player failing three
impossible rolls in a row — is visible only by watching it happen.
## R-270 — a rule I invented, and the coincidence that hid it
R-266 said "the major-wound threshold is half of max HP and it is the same rule in both
directions". The scenario session carried the same sentence, went to `rules.mjs` to verify
my correction of a *different* error in it, read the neighbouring functions, and found this
one. It is not a rule. Verified here rather than accepted:
| what I said | what `rules.mjs` says |
|---|---|
| a fighter goes down at half maximum hit points | `conditionFor` (1623) — down at `hp <= 2` or unconscious; dying at `hp <= 0` |
| half max HP is the threshold that matters | `majorWoundFor` (32) is `ceil(hp/2)` and feeds only `dyingLimitFor` — how long the dying last |
| one rule, both directions | a LOCATION is disabled by `resolveLocationHit` (556) at `after >= locationMax`, which is `locationMaxHp` (54) — a fraction of total hit points, per location |
**The coincidence is the interesting part.** For a 10-point neighbour, `majorWoundFor` is 5
and a leg, abdomen or chest holds exactly 5. For a 12-point agent both are 6. So on the
locations that get hit most, the invented rule and the real one return the same number, and
the narration prints `MAJOR WOUND · disabled` together on the same line — two rules firing
at once, reading as one. Arms and heads are where they part (4 against 5 for a neighbour),
and I had not looked at an arm.
So the sentence was not a guess. It was a generalisation from the case where two unrelated
thresholds agree, checked against the output, and confirmed by it. That is a worse failure
than a guess, because it came with evidence.
**Neither error is neutral in the same direction.** A disable that removes a fighter, and a
down-threshold at half hit points, both make the fight easier than it is: fewer attackers
still standing, and agents falling at 6 rather than fighting to 3. A GM reading either would
have run a party-ending encounter as a survivable one.
**And this is the fourth time today that checking one claim surfaced a different one.** Not
the same claim re-examined — the neighbour of it. The pattern is worth naming: the cost of
verifying something is mostly the cost of getting to where it lives, and once you are there
the next function along is nearly free to read. Both of us have now paid that fare and come
back with something we were not looking for.
+3 -3
View File
@@ -1,9 +1,9 @@
/**
* The four-player cut turns on its first disabling blow, and it must keep doing so.
*
* R-266 found the mechanism behind CLEAN GROUND's bimodal outcome: both sides disable on
* one good hit, so whoever lands the first one thins the return fire and makes the next
* likelier. It was measured in a scratch harness, and another session declined to put it
* R-266 found the mechanism behind CLEAN GROUND's bimodal outcome: one hit meeting a
* limb's capacity disables it, and both sides are made of limbs that hold 4 or 5 points,
* so whoever lands the first one thins the return fire and makes the next likelier. It was measured in a scratch harness, and another session declined to put it
* in the scenario for that reason — correctly, and that refusal is why this guard exists.
*
* Thin on purpose. The measurement lives in first-blood.mjs, which is also the tool a
+3 -2
View File
@@ -2,8 +2,9 @@
* first-blood — who lands the first disabling blow, and what the fight does afterwards.
*
* check-lethality and check-focus record how a fight ENDS. Neither records how it TURNS,
* and the four-player cut of CLEAN GROUND turns early: both sides disable on one good
* hit, so whoever lands it first costs the other 30 points off the skills that matter,
* and the four-player cut of CLEAN GROUND turns early: one hit that meets a limb's own
* capacity disables it — 4 or 5 points either way here, `locationMaxHp` — and both sides
* are made of limbs that small, so whoever lands it first costs the other 30 points off the skills that matter,
* which thins the return fire, which
* makes the next disable likelier. Nothing pulls the fight back toward the middle once it
* has tipped, and that — not anything about round five — is where the scenario's bimodal