Add [ammo] fire trace (BT_AMMO_LOG); reproduces the missile FailureHeat->NoAmmo brick
Playtest: "lost missiles mid-fight, no pips, sad noise -- out of ammo?" The default build didn't trace ammo, so it couldn't be answered from the log. Added a [ammo] trace (env BT_AMMO_LOG) at the four ProjectileWeaponSimulation decision points -- FIRED+rounds-left, gate1/gate2 dry-transition edge, dry-fire blip, and denial -- plus a public AmmoBin::GetAmmoCount() const getter. Reproduced the actual cause: NOT ammo depletion. The SRM6 trips gate 1 FailureHeat (heatLvl=2) after ~5 volleys and latches into the permanent NoAmmo roach-motel with 19 rounds still in the bin: [ammo] SRM6_2 FIRED, rounds left=19 [ammo] SRM6_2 -> NoAmmo (gate1): destroyed=0 failHeat=1 heatLvl=2 mechDisabled=0 Logged as the concrete instance of the heat-economy open question (open-questions.md). Trace-only; no behavior change (all output gated on BT_AMMO_LOG). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
7052d9e5bb
commit
89ddd49283
@@ -788,3 +788,21 @@ and **"Peer motion: the 'random shakiness' is single-box packet jitter, NOT the
|
||||
`IntegrateMotion`'s 2-stage angular integrate is intended.
|
||||
- Speed model decomp-settled (`2c6db6a`): analog throttle, '5 speeds' false, `throttleState@0x4a4`
|
||||
is actually the fall-surface material (RENAME PENDING).
|
||||
|
||||
## Missile launcher trips FailureHeat -> permanent NoAmmo brick (REPRODUCED 2026-07-20)
|
||||
|
||||
Playtest: "lost the ability to fire missiles mid-fight, no pips, sad noise -- did I run out?"
|
||||
Added the `[ammo]` fire trace (env `BT_AMMO_LOG`, projweap.cpp) and reproduced it: the SRM6 is
|
||||
NOT out of ammo -- after ~5 volleys it trips **gate 1 FailureHeat** (`heatAlarm==2`) and latches
|
||||
into the NoAmmo roach-motel (weaponAlarm 7, never released) with **19 rounds still in the bin**:
|
||||
|
||||
[ammo] SRM6_2 FIRED, rounds left=19
|
||||
[ammo] SRM6_2 -> NoAmmo (gate1): destroyed=0 failHeat=1 heatLvl=2 mechDisabled=0
|
||||
|
||||
This is the heat-economy open question made concrete (gauges-hud.md "degenerate bring-up heat
|
||||
scale"; projweap.cpp:730 "whether FailureHeat is reachable at authentic play intensity"): our
|
||||
autofire test fires 60/s (extreme), but the user hit it in MANUAL play too -> either the per-shot
|
||||
heat / FailureTemperature scaling is too aggressive, or the roach-motel (no recovery when heat
|
||||
falls) is the wrong reading. NEXT: audit the SRM6 heatPerShot vs FailureTemperature vs the mech's
|
||||
dissipation, and whether the binary's gate-1 FailureHeat is a LATCH or clears when heat drops.
|
||||
Trace it live with `BT_AMMO_LOG=1` (+ `BT_PROJ_LOG=1` for per-tick heat/recoil).
|
||||
|
||||
Reference in New Issue
Block a user