Armour covers what it covers, and Coherence moves to the vitals
Asking for the type of armour per location turned out not to be a display request. Every equipped piece added its points to EVERY location, so a Brodie helmet protected your shins and a cuirass protected your skull — with a catalogue containing sallets, lobster-tail helmets and three cuirasses, that could not be printed without the sheet saying something visibly false. Armour now declares coverage as a named set rather than a list of locations, because a piece has to fit whatever body wears it: all, torso, torsoArms, torsoLimbs, head. The sets expand to location KINDS, so a cuirass covers a baseline torso and a vesh trunk and ridge without either knowing the other exists. Unstated coverage is `all`, so anything that does not declare behaves as everything did before. Eighteen of the twenty-five catalogue pieces are not whole-body and now say so. The trap was double counting: hitLocationRoll subtracted the global worn total PLUS the body's own armour at that location, which was right while armour was global and becomes a double count the moment a location knows its own pieces. It reads the location's total and nothing else, verified by firing fourteen hits of 10 damage across every location and asserting damage applied == 10 - that location's armour. A single ARMOUR number no longer exists, so the header shows the torso with "0-8 by location" beside it when the rest of you is not that. This is a real difficulty change: limbs are frequently bare and limbs are 12 of 20 on the melee table. Coherence moves out of the derived strip into the vitals at hit-point size, with its band under it and the box reddening as it falls. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
3421ed4a2e
commit
6ed9ded362
@@ -4425,3 +4425,47 @@ Noted while working: the mini figure inherited `.rb-body-svg { max-width: 180px
|
||||
from further down the stylesheet and blew the header out to 385px tall. Same-specificity
|
||||
selectors, later one wins; the compound `.rb-body-svg.rb-body-mini` fixes it. Worth
|
||||
remembering that this stylesheet is ordered by section rather than by specificity.
|
||||
|
||||
## R-243. A helmet was protecting your legs
|
||||
|
||||
Asking for "armour and the type of armour" on each location turned out not to be a
|
||||
display request. Every equipped piece added its points to **every** location, so a
|
||||
Brodie helmet protected your shins and a cuirass protected your skull. With a
|
||||
catalogue that contains sallets, lobster-tail helmets and three separate cuirasses
|
||||
that is not a simplification, it is wrong — and it could not be printed on the sheet
|
||||
without the sheet saying something visibly false.
|
||||
|
||||
Armour now declares **coverage**, as a named set rather than a list of locations,
|
||||
because a piece has to fit whatever body is wearing it: `all`, `torso`, `torsoArms`,
|
||||
`torsoLimbs`, `head`. The sets expand to location *kinds*, so a cuirass covers the
|
||||
torso of a baseline agent and the trunk and ridge of a vesh without either the item or
|
||||
the wearer knowing the other exists. Unstated coverage is `all`, so anything that does
|
||||
not declare behaves exactly as everything did before.
|
||||
|
||||
Eighteen of the twenty-five catalogue pieces are not whole-body and now say so.
|
||||
|
||||
**The trap was double counting.** `hitLocationRoll` subtracted `sys.armourPoints +
|
||||
loc.armour` — the global worn total plus the body's own armour at that location.
|
||||
That was correct while armour was global and becomes a double count the moment the
|
||||
location knows its own pieces. It now reads the location's total and nothing else,
|
||||
checked by firing fourteen hits of 10 damage at every location and asserting the
|
||||
damage applied equals `10 − that location's armour` each time. All fourteen matched.
|
||||
|
||||
**A single ARMOUR number no longer exists**, so the header shows the torso — which is
|
||||
what the question means, and where most hits land — with `0–8 by location` beside it
|
||||
when the rest of you is not that. Worked example from the verification: stab vest,
|
||||
cuirass and a Brodie helmet gives 8 on the torso, 3 on the head and **0 on both arms
|
||||
and both legs**, where before it was 11 everywhere.
|
||||
|
||||
**This is a real difficulty change and it is meant to be.** Agents in partial armour
|
||||
are markedly more fragile than they were an hour ago — limbs are frequently bare, and
|
||||
limbs are 12 of 20 on the melee table. Anyone who wants the old behaviour sets every
|
||||
piece to `all` on its item sheet.
|
||||
|
||||
## Coherence, promoted
|
||||
|
||||
Moved out of the derived strip and into the vitals at the top right, at the same size
|
||||
as hit points, with its band under it and the box itself changing colour as it falls —
|
||||
yellow at Adrift, red at Unmoored and Displaced. It is the number that measures whether
|
||||
an agent is still filed as themselves, and it was set in 11px grey between MOV and
|
||||
carried weight.
|
||||
|
||||
Reference in New Issue
Block a user