From 0914d93ba50b4c4ffa4ccc602d3d60533bb97b9f Mon Sep 17 00:00:00 2001 From: "@permadeath.com" Date: Wed, 19 Aug 2026 23:21:18 -0400 Subject: [PATCH] docs(unit-rules): what the sampled damage corpus found, fixed and not --- TODO.md | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/TODO.md b/TODO.md index 6070e5d..489e302 100644 --- a/TODO.md +++ b/TODO.md @@ -309,6 +309,46 @@ The long pole, and the reason `helm-core` does no I/O. Tracked as 126 of 126 rows agree, and the undamaged library is unchanged at 4,252. + **Widened again, this time across designs.** `bridge/DumpDamaged.java` + takes `every:N` and samples the library rather than naming designs, which + is how the shapes and construction a hand-picked list never covers get + asked about. At `every:40` that is 1,638 states, and it found two more: + + - **A weapon too big for one location** has the rest of itself in the + next one, and it is one weapon. A Victor VTR-9Ka's autocannon fills + nine slots of an arm and one of the torso beside it; blowing the arm + off left helm counting a whole autocannon that was no longer there, + worth 465 points of offence. The halves are now paired - but only when + there are exactly two of them and they account for the whole item. A + Chameleon Light Polarization Shield is spread over half a design a slot + at a time *by construction*, and pairing on the name alone took a + Scarecrow's shield out with its arm. + - **An engine only runs hot when it is hit if it is a fusion or fission + plant.** An internal combustion engine takes the critical and makes no + extra heat, so a SecurityMech with its engine shot out is worth what it + was. + +- [ ] **What the sampled damage corpus still disagrees about.** Four kinds, all + found by `every:40` and none of them yet understood. Reproduce with + `DumpDamaged.java out.jsonl every:40`; the curated list is what the + committed test runs, and it passes at 154 of 154. + + - **A blown-off arm holding a big gun**, +8 to +9 defensive on a Cerberus + MR-V3, an Ebony MEB-12, a Huron Warrior and a Thunder Hawk TDK-7S. All + four carry a Gauss Rifle or a TSEMP Cannon in the arm, which suggests + an explosive penalty MegaMek keeps charging for a weapon that is gone. + - **Modular armour on a stripped design**, +97.5 on an Enforcer III + ENF-7D - exactly 39 points of plate at 2.5. MegaMek counts modular + armour as part of the location's armour, so stripping the location + takes it too; helm adds it on top of a location it has already zeroed. + - **A Devastator DVS-X10 MUSE EARTH's movement gear**, hundreds of points + out on a hip or leg actuator hit and a few points out on a gyro hit. + An XTR one-off, so it is likely a movement system helm reads and + MegaMek recomputes differently once the legs are damaged. + - **A Scarecrow UCU-F4 run dry**, 3 points of defence. The smallest of + them and probably an explosive penalty on a magazine one of us empties + and the other does not. + - [x] **A catalogue small enough to ship.** `helm catalogue` writes the fields the rules actually read and drops the rest: the bridge dumps a `namesVector`, a `techAdvancement` and several static tables on every one -- 2.51.2