import sys sys.path.insert(0, r'C:\git\bt411\scratchpad\night7') import gitea # 134: the fix landed -- close with receipts + awaiting-verification gitea.call('/issues/134/labels', method='POST', payload={'labels': [8]}) gitea.close(134, """FIXED at 91bd286 -- the panic/self-kill penalty is live. Root cause chain (from the night-12 scan): the eject charge kills you with inflictor=SELF, and the old kill-credit stand-in (BTPostKillScore) FILTERED killer==victim, so the score path never engaged for a self-kill. The fix is the authentic reconstruction, not a patch: the dark-gap report tail of Mech::TakeDamageMessageHandler (@0x4a04da-0x4a0890, raw disasm) now dispatches the binary's kill report even when killer==victim, and the score handler @0x4c02e4 does what 1995 did: negates the whole kill award (raw disasm @0x4c03ab fchs) and skips killCount++. Bench receipt (scoreself.sh, self-destruct with inflictor=SELF): ``` [score] *** KILL report *** -> shooterPlayer= tally=39 SCORE player=3:1 type=2 award=-39.00 total=0.00 kills=0 SCORE player=3:1 type=1 award=0.00 total=-39.00 kills=0 <- penalty LANDED ``` kills stays 0, score drops by the (negated) kill award. With authored roles the magnitude scales by killBonus/damageInflictedModifier/tonnage ratio exactly as a real kill would. Field verify tonight: panic-eject and watch the SCORE column drop with no kill credited.""") # 45 (closed): append the plumbing-completion note gitea.comment(45, """Follow-up at 91bd286: the deferred id-0x16 report plumbing this issue's fix worked AROUND is now reconstructed outright -- the victim's TakeDamage handler dispatches the binary's three score reports (@0x4a04da/@0x4a05d9/@0x4a06c0) and the BT-extended VehicleDead {killed-by player, kill zone}. The kill-credit reroute shape verified here (victim node -> replicant-player Dispatch -> killer's master) is unchanged and re-benched cross-node (scorekill.sh: kills=1, award=4.88, killedBy=2:1 zone=3). BTPostKillScore/BTPostDamageScore are retired; per-hit inflicted credit is gone (never existed in 1995 -- @0x4c0200 is bound in no handler-table entry).""") # 89: correct the deferred-sibling note gitea.comment(89, """Correction to the deferred-siblings note above (found while reconstructing the report tail at 91bd286): the id-0x17 0x38-byte message in the death tail is NOT a mech-table SetBurningState dispatch -- it is Player::VehicleDeadMessage (the BTPlayer handler table binds 0x17 -> @0x4c05c4), i.e. the respawn trigger, in a BT extension carrying the killed-by player + kill zone. Now reconstructed + benched. The burning-state question moves to open-questions (the mech-table 0x17 name row mismatches its handler body @0x49f674 -- likely a shifted label). Death blast re-verified un-regressed after the tail reorder (deathblast2: 72 bursts at ~9u).""") print('receipts posted')