BT410 Phase 5.3.18a: salvo economy corrected -- one cluster hit per trigger
BT411 task-#62 truth: the arcade fires ONE cluster Missile per salvo and its zone damage lands EXACTLY ONCE (burstCount feeds only the gyro bounce + splash falloff, never the zone armor formula). The 5.3.16 per-missile delivery loop was ~6x too lethal. MISLANCH now sends a single salvo-split damage message (verified 1:1 FIRED-to-damage in the mutual fight; zero exceptions). The cluster splash joins the Missile entity wave. Also: BT_FORCE_ZONE=n dev hook (pin every hit -- the cascade verification knob) landed with 5.3.17's runs. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -150,3 +150,13 @@ cycling — the NoAmmo roach-motel holds. Zero Fail.
|
||||
Energy), ER-M 3.43 (type 3 Laser), SRM6 5.83×6 (type 2 Explosive); repeat
|
||||
hits climb linearly; zones reach 1.0 Burning/Destroyed; no-target runs hold
|
||||
fire (0 FIRED across a 65s force-fire run without a target).
|
||||
|
||||
## 5.3.18a — salvo economy CORRECTED (BT411 task #62)
|
||||
|
||||
The 5.3.16 "one message per missile" loop was ~missileCount-times too lethal.
|
||||
The arcade fires ONE cluster Missile per trigger and its zone damage lands
|
||||
EXACTLY ONCE: damageData carries the ctor's salvo-split per-missile amount
|
||||
with burstCount=missileCount (burstCount feeds only gyro bounce + splash
|
||||
falloff — never the zone formula). MISLANCH now dispatches a single
|
||||
SendDamage per salvo (verified 1:1 FIRED:[dmg]). The cluster SPLASH component
|
||||
arrives with the Missile entity wave (proximity-fuse detonation).
|
||||
|
||||
@@ -113,22 +113,20 @@ void
|
||||
}
|
||||
|
||||
//
|
||||
// The salvo delivery: ONE TakeDamageMessage per missile, each carrying
|
||||
// the salvo-split per-missile damage (the ctor split the authored amount
|
||||
// across missileCount). The zone armor formula IGNORES burstCount
|
||||
// (BT411 combat-damage: one message = one amount*scale application), so
|
||||
// a single split message would under-deliver the salvo by the round
|
||||
// count. INTERIM instant-hit with every round hitting (its own random
|
||||
// zone) -- the Missile entity flight / seeker / proximity fuse joins the
|
||||
// entity-spawn wave.
|
||||
// The salvo delivery (CORRECTED to the arcade economy, BT411 task #62):
|
||||
// the binary fires ONE cluster Missile per trigger and its zone damage
|
||||
// lands EXACTLY ONCE -- damageData carries the ctor's salvo-split
|
||||
// per-missile amount with burstCount = missileCount, and the zone armor
|
||||
// formula ignores burstCount (it feeds only the gyro bounce + the splash
|
||||
// falloff). A per-round delivery loop was ~missileCount-times too
|
||||
// lethal (the port's "2-shot kill" regression). INTERIM instant-hit --
|
||||
// the Missile entity flight / seeker / proximity fuse / cluster SPLASH
|
||||
// is the missile wave.
|
||||
//
|
||||
if (targetWithinRange && owner != NULL
|
||||
&& owner->GetTargetEntity() != NULL)
|
||||
{
|
||||
for (int mm = 0; mm < missileCount; ++mm)
|
||||
{
|
||||
SendDamage(owner->GetTargetEntity(), damageData);
|
||||
}
|
||||
SendDamage(owner->GetTargetEntity(), damageData);
|
||||
}
|
||||
|
||||
if (getenv("BT_MECH_LOG"))
|
||||
|
||||
Reference in New Issue
Block a user