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:
slaguru666
2026-08-11 10:33:04 +01:00
co-authored by Claude Opus 5
parent 3421ed4a2e
commit 6ed9ded362
118 changed files with 382 additions and 158 deletions
+44
View File
@@ -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.
+9 -1
View File
@@ -885,5 +885,13 @@
"RINGBRP.Sheet.ReadyToggle": "Ready this weapon — puts it in the strip at the top of the sheet",
"RINGBRP.Sheet.ReadyHint": "Click the fist to ready a weapon. Readied weapons appear in the strip under the characteristics, where they can be rolled without opening this tab.",
"RINGBRP.Sheet.BodyHead": "The body, and where it gets hit",
"RINGBRP.Sheet.MiniBodyHint": "Every location: damage taken, and the armour covering it."
"RINGBRP.Sheet.MiniBodyHint": "Every location: damage taken, and the armour covering it.",
"RINGBRP.Coverage.all": "all of you",
"RINGBRP.Coverage.torso": "torso",
"RINGBRP.Coverage.torsoArms": "torso and arms",
"RINGBRP.Coverage.torsoLimbs": "torso, arms and legs",
"RINGBRP.Coverage.head": "head",
"RINGBRP.Sheet.Unarmoured": "bare",
"RINGBRP.Sheet.ByLocation": "by location",
"RINGBRP.Item.Coverage": "Covers"
}
Binary file not shown.
Binary file not shown.
Binary file not shown.
View File
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000010
MANIFEST-000004
+5 -3
View File
@@ -1,3 +1,5 @@
2026/08/11-10:11:58.113964 1752cb000 Recovering log #9
2026/08/11-10:11:58.114393 1752cb000 Delete type=3 #7
2026/08/11-10:11:58.114432 1752cb000 Delete type=0 #9
2026/08/11-10:31:15.815927 175f73000 Recovering log #3
2026/08/11-10:31:15.816054 175f73000 Level-0 table #5: started
2026/08/11-10:31:15.816169 175f73000 Level-0 table #5: 3399 bytes OK
2026/08/11-10:31:15.816387 175f73000 Delete type=0 #3
2026/08/11-10:31:15.816415 175f73000 Delete type=3 #2
+1 -5
View File
@@ -1,5 +1 @@
2026/08/11-10:01:07.582527 176517000 Recovering log #6
2026/08/11-10:01:07.582663 176517000 Level-0 table #8: started
2026/08/11-10:01:07.582827 176517000 Level-0 table #8: 4335 bytes OK
2026/08/11-10:01:07.583142 176517000 Delete type=0 #6
2026/08/11-10:01:07.583300 176517000 Delete type=3 #4
2026/08/11-10:29:47.321526 1714a3000 Delete type=3 #1
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
View File
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000010
MANIFEST-000004
+5 -3
View File
@@ -1,3 +1,5 @@
2026/08/11-10:11:58.123637 174abf000 Recovering log #9
2026/08/11-10:11:58.124065 174abf000 Delete type=3 #7
2026/08/11-10:11:58.124216 174abf000 Delete type=0 #9
2026/08/11-10:31:15.827053 176f8b000 Recovering log #3
2026/08/11-10:31:15.827202 176f8b000 Level-0 table #5: started
2026/08/11-10:31:15.827356 176f8b000 Level-0 table #5: 4129 bytes OK
2026/08/11-10:31:15.827638 176f8b000 Delete type=0 #3
2026/08/11-10:31:15.827685 176f8b000 Delete type=3 #2
+1 -5
View File
@@ -1,5 +1 @@
2026/08/11-10:01:07.594977 176d23000 Recovering log #6
2026/08/11-10:01:07.595333 176d23000 Level-0 table #8: started
2026/08/11-10:01:07.595474 176d23000 Level-0 table #8: 5069 bytes OK
2026/08/11-10:01:07.595768 176d23000 Delete type=0 #6
2026/08/11-10:01:07.595810 176d23000 Delete type=3 #4
2026/08/11-10:29:47.359914 170c97000 Delete type=3 #1
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
View File
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000010
MANIFEST-000004
+5 -3
View File
@@ -1,3 +1,5 @@
2026/08/11-10:11:58.115761 175ad7000 Recovering log #9
2026/08/11-10:11:58.116061 175ad7000 Delete type=3 #7
2026/08/11-10:11:58.116179 175ad7000 Delete type=0 #9
2026/08/11-10:31:15.817069 177797000 Recovering log #3
2026/08/11-10:31:15.817858 177797000 Level-0 table #5: started
2026/08/11-10:31:15.818239 177797000 Level-0 table #5: 31614 bytes OK
2026/08/11-10:31:15.818545 177797000 Delete type=0 #3
2026/08/11-10:31:15.818601 177797000 Delete type=3 #2
+1 -5
View File
@@ -1,5 +1 @@
2026/08/11-10:01:07.584322 176d23000 Recovering log #6
2026/08/11-10:01:07.584745 176d23000 Level-0 table #8: started
2026/08/11-10:01:07.585166 176d23000 Level-0 table #8: 38366 bytes OK
2026/08/11-10:01:07.585428 176d23000 Delete type=0 #6
2026/08/11-10:01:07.585590 176d23000 Delete type=3 #4
2026/08/11-10:29:47.323743 171caf000 Delete type=3 #1
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
View File
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000010
MANIFEST-000004
+5 -3
View File
@@ -1,3 +1,5 @@
2026/08/11-10:11:58.104873 175ad7000 Recovering log #9
2026/08/11-10:11:58.105121 175ad7000 Delete type=3 #7
2026/08/11-10:11:58.105148 175ad7000 Delete type=0 #9
2026/08/11-10:31:15.803065 177797000 Recovering log #3
2026/08/11-10:31:15.804714 177797000 Level-0 table #5: started
2026/08/11-10:31:15.806503 177797000 Level-0 table #5: 223539 bytes OK
2026/08/11-10:31:15.806843 177797000 Delete type=0 #3
2026/08/11-10:31:15.806889 177797000 Delete type=3 #2
+1 -5
View File
@@ -1,5 +1 @@
2026/08/11-10:01:07.565661 176d23000 Recovering log #6
2026/08/11-10:01:07.567596 176d23000 Level-0 table #8: started
2026/08/11-10:01:07.569268 176d23000 Level-0 table #8: 286534 bytes OK
2026/08/11-10:01:07.569897 176d23000 Delete type=0 #6
2026/08/11-10:01:07.570096 176d23000 Delete type=3 #4
2026/08/11-10:29:47.341619 170c97000 Delete type=3 #1
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
View File
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000010
MANIFEST-000004
+5 -3
View File
@@ -1,3 +1,5 @@
2026/08/11-10:11:58.111179 1742b3000 Recovering log #9
2026/08/11-10:11:58.111621 1742b3000 Delete type=3 #7
2026/08/11-10:11:58.111656 1742b3000 Delete type=0 #9
2026/08/11-10:31:15.812365 175f73000 Recovering log #3
2026/08/11-10:31:15.812699 175f73000 Level-0 table #5: started
2026/08/11-10:31:15.812860 175f73000 Level-0 table #5: 3295 bytes OK
2026/08/11-10:31:15.813123 175f73000 Delete type=0 #3
2026/08/11-10:31:15.813163 175f73000 Delete type=3 #2
+1 -5
View File
@@ -1,5 +1 @@
2026/08/11-10:01:07.578452 176517000 Recovering log #6
2026/08/11-10:01:07.578743 176517000 Level-0 table #8: started
2026/08/11-10:01:07.578908 176517000 Level-0 table #8: 3619 bytes OK
2026/08/11-10:01:07.579232 176517000 Delete type=0 #6
2026/08/11-10:01:07.579267 176517000 Delete type=3 #4
2026/08/11-10:29:47.352685 170c97000 Delete type=3 #1
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
View File
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000010
MANIFEST-000004
+5 -3
View File
@@ -1,3 +1,5 @@
2026/08/11-10:11:58.102156 175ad7000 Recovering log #9
2026/08/11-10:11:58.102452 175ad7000 Delete type=3 #7
2026/08/11-10:11:58.102485 175ad7000 Delete type=0 #9
2026/08/11-10:31:15.799594 177797000 Recovering log #3
2026/08/11-10:31:15.800464 177797000 Level-0 table #5: started
2026/08/11-10:31:15.800988 177797000 Level-0 table #5: 58133 bytes OK
2026/08/11-10:31:15.801383 177797000 Delete type=0 #3
2026/08/11-10:31:15.801428 177797000 Delete type=3 #2
+1 -5
View File
@@ -1,5 +1 @@
2026/08/11-10:01:07.561384 176d23000 Recovering log #6
2026/08/11-10:01:07.562078 176d23000 Level-0 table #8: started
2026/08/11-10:01:07.562682 176d23000 Level-0 table #8: 74653 bytes OK
2026/08/11-10:01:07.563017 176d23000 Delete type=0 #6
2026/08/11-10:01:07.563204 176d23000 Delete type=3 #4
2026/08/11-10:29:47.331121 1724bb000 Delete type=3 #1
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
View File
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000010
MANIFEST-000004
+5 -3
View File
@@ -1,3 +1,5 @@
2026/08/11-10:11:58.118905 174abf000 Recovering log #9
2026/08/11-10:11:58.119473 174abf000 Delete type=3 #7
2026/08/11-10:11:58.119498 174abf000 Delete type=0 #9
2026/08/11-10:31:15.822560 176f8b000 Recovering log #3
2026/08/11-10:31:15.823036 176f8b000 Level-0 table #5: started
2026/08/11-10:31:15.823351 176f8b000 Level-0 table #5: 30975 bytes OK
2026/08/11-10:31:15.823593 176f8b000 Delete type=0 #3
2026/08/11-10:31:15.823625 176f8b000 Delete type=3 #2
+1 -5
View File
@@ -1,5 +1 @@
2026/08/11-10:01:07.588947 176d23000 Recovering log #6
2026/08/11-10:01:07.589575 176d23000 Level-0 table #8: started
2026/08/11-10:01:07.589919 176d23000 Level-0 table #8: 31649 bytes OK
2026/08/11-10:01:07.590195 176d23000 Delete type=0 #6
2026/08/11-10:01:07.590234 176d23000 Delete type=3 #4
2026/08/11-10:29:47.357907 170c97000 Delete type=3 #1
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
View File
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000010
MANIFEST-000004
+5 -3
View File
@@ -1,3 +1,5 @@
2026/08/11-10:11:58.108810 1742b3000 Recovering log #9
2026/08/11-10:11:58.109145 1742b3000 Delete type=3 #7
2026/08/11-10:11:58.109174 1742b3000 Delete type=0 #9
2026/08/11-10:31:15.809540 175f73000 Recovering log #3
2026/08/11-10:31:15.809752 175f73000 Level-0 table #5: started
2026/08/11-10:31:15.809950 175f73000 Level-0 table #5: 7486 bytes OK
2026/08/11-10:31:15.810216 175f73000 Delete type=0 #3
2026/08/11-10:31:15.810251 175f73000 Delete type=3 #2
+1 -5
View File
@@ -1,5 +1 @@
2026/08/11-10:01:07.573933 17752f000 Recovering log #6
2026/08/11-10:01:07.574377 17752f000 Level-0 table #8: started
2026/08/11-10:01:07.574672 17752f000 Level-0 table #8: 9877 bytes OK
2026/08/11-10:01:07.575009 17752f000 Delete type=0 #6
2026/08/11-10:01:07.575053 17752f000 Delete type=3 #4
2026/08/11-10:29:47.314145 1724bb000 Delete type=3 #1
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
View File
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000010
MANIFEST-000004
+5 -3
View File
@@ -1,3 +1,5 @@
2026/08/11-10:11:58.120643 1742b3000 Recovering log #9
2026/08/11-10:11:58.120895 1742b3000 Delete type=3 #7
2026/08/11-10:11:58.120916 1742b3000 Delete type=0 #9
2026/08/11-10:31:15.824364 17677f000 Recovering log #3
2026/08/11-10:31:15.824536 17677f000 Level-0 table #5: started
2026/08/11-10:31:15.824835 17677f000 Level-0 table #5: 16892 bytes OK
2026/08/11-10:31:15.825060 17677f000 Delete type=0 #3
2026/08/11-10:31:15.825097 17677f000 Delete type=3 #2
+1 -5
View File
@@ -1,5 +1 @@
2026/08/11-10:01:07.591406 175d0b000 Recovering log #6
2026/08/11-10:01:07.591579 175d0b000 Level-0 table #8: started
2026/08/11-10:01:07.591796 175d0b000 Level-0 table #8: 17462 bytes OK
2026/08/11-10:01:07.592037 175d0b000 Delete type=0 #6
2026/08/11-10:01:07.592183 175d0b000 Delete type=3 #4
2026/08/11-10:29:47.350616 1714a3000 Delete type=3 #1
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
View File
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000010
MANIFEST-000004
+5 -3
View File
@@ -1,3 +1,5 @@
2026/08/11-10:11:58.122039 1752cb000 Recovering log #9
2026/08/11-10:11:58.122569 1752cb000 Delete type=3 #7
2026/08/11-10:11:58.122614 1752cb000 Delete type=0 #9
2026/08/11-10:31:15.825859 175f73000 Recovering log #3
2026/08/11-10:31:15.825973 175f73000 Level-0 table #5: started
2026/08/11-10:31:15.826082 175f73000 Level-0 table #5: 3739 bytes OK
2026/08/11-10:31:15.826284 175f73000 Delete type=0 #3
2026/08/11-10:31:15.826314 175f73000 Delete type=3 #2
+1 -5
View File
@@ -1,5 +1 @@
2026/08/11-10:01:07.593261 17752f000 Recovering log #6
2026/08/11-10:01:07.593387 17752f000 Level-0 table #8: started
2026/08/11-10:01:07.593525 17752f000 Level-0 table #8: 4143 bytes OK
2026/08/11-10:01:07.593758 17752f000 Delete type=0 #6
2026/08/11-10:01:07.593895 17752f000 Delete type=3 #4
2026/08/11-10:29:47.347262 1714a3000 Delete type=3 #1
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
View File
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000010
MANIFEST-000004
+5 -3
View File
@@ -1,3 +1,5 @@
2026/08/11-10:11:58.110071 175ad7000 Recovering log #9
2026/08/11-10:11:58.110287 175ad7000 Delete type=3 #7
2026/08/11-10:11:58.110314 175ad7000 Delete type=0 #9
2026/08/11-10:31:15.810995 177797000 Recovering log #3
2026/08/11-10:31:15.811100 177797000 Level-0 table #5: started
2026/08/11-10:31:15.811254 177797000 Level-0 table #5: 5770 bytes OK
2026/08/11-10:31:15.811516 177797000 Delete type=0 #3
2026/08/11-10:31:15.811553 177797000 Delete type=3 #2
+1 -5
View File
@@ -1,5 +1 @@
2026/08/11-10:01:07.576370 175d0b000 Recovering log #6
2026/08/11-10:01:07.576741 175d0b000 Level-0 table #8: started
2026/08/11-10:01:07.576905 175d0b000 Level-0 table #8: 6447 bytes OK
2026/08/11-10:01:07.577157 175d0b000 Delete type=0 #6
2026/08/11-10:01:07.577191 175d0b000 Delete type=3 #4
2026/08/11-10:29:47.318325 1724bb000 Delete type=3 #1
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
View File
+1 -1
View File
@@ -1 +1 @@
MANIFEST-000010
MANIFEST-000004
+5 -3
View File
@@ -1,3 +1,5 @@
2026/08/11-10:11:58.117614 1752cb000 Recovering log #9
2026/08/11-10:11:58.117913 1752cb000 Delete type=3 #7
2026/08/11-10:11:58.117935 1752cb000 Delete type=0 #9
2026/08/11-10:31:15.819847 17677f000 Recovering log #3
2026/08/11-10:31:15.820254 17677f000 Level-0 table #5: started
2026/08/11-10:31:15.821322 17677f000 Level-0 table #5: 6939 bytes OK
2026/08/11-10:31:15.821576 17677f000 Delete type=0 #3
2026/08/11-10:31:15.821605 17677f000 Delete type=3 #2
+1 -5
View File
@@ -1,5 +1 @@
2026/08/11-10:01:07.587264 176517000 Recovering log #6
2026/08/11-10:01:07.587412 176517000 Level-0 table #8: started
2026/08/11-10:01:07.587590 176517000 Level-0 table #8: 8283 bytes OK
2026/08/11-10:01:07.587831 176517000 Delete type=0 #6
2026/08/11-10:01:07.587866 176517000 Delete type=3 #4
2026/08/11-10:29:47.325901 170c97000 Delete type=3 #1
Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More