Retracts the "open item" claimed in 2fcce53. An ungated [deathcost] receipt
at the block settles it:
[deathcost] player 2:1 advDmg=1 role=bound penalty=500 scoreBefore=-779
-> APPLYING
It fires once, on a self-kill, exactly as it does on a combat death. There is
no combat-vs-self asymmetry.
WHY I GOT IT WRONG: the cost is dispatched by a DIRECT
Player::ScoreMessageHandler() base call, so it never reaches the BT matchlog.
I computed the total from the LAST matchlog row and found no -500 in it -- but
that row is emitted BEFORE the unlogged cost. I had noted the bypass one
message earlier and still failed to apply it to my own sum. The lesson is the
usual one: a value that cannot appear in the log you are reading is not
evidence of absence.
The receipt stays. A debit that moves the player-visible score while being
structurally invisible to the forensic log is exactly the kind of thing that
should announce itself.
Chart status after this: -500 special-case death cost VERIFIED applying. The
-1000 eject ROW remains unverified -- its components (self-damage credit,
negated self-kill award, death cost) are each verified, but no real punch-out
has ever fired in a bench, so the total is still arithmetic.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NCJQkvq6G2JNrpVbA75tVZ