orbit/js/combat
Brian Fertig ecff203159 Feedback VFX pass: damage numbers, color-coded hit flashes, kill burst, down/respawn cues
All from the one shared Fx path (js/combat/Fx.js) — both contexts call
the same cues, so the read never drifts:

- Fx.damage(): floating damage numbers on every hit, cyan when the
  shields took it / orange when the armor did (both enemy + player).
- Hit flashes are now color-coded by the layer that took the hit
  (FX_COLORS.shield / .hull) instead of a flat white.
- Fx.explode() (the kill burst) gains a second delayed shockwave ring
  + a denser spark burst.
- Fx.down(): the player-DOWN cue — hot-red burst + big DOWN hold.
- Fx.respawn(): the REFORMED cue — clean cyan bloom + pop.
- Fx.text() is a graceful no-op without scene.add.text (the Node test
  stubs), and canvas text gets a CSS string (toCss) per the v4 Giedi
  fillStyle quirk.

CombatScene + CombatSystem wire every hit/kill/down/respawn site to the
shared cues. dev/combat.test.mjs stays 0 failures; CDP screenshots
(/tmp/vfx-cues-*.png) show the damage numbers, kill burst, DOWN and
REFORMED cues live in both /combat and index.html?combat.
2026-09-16 01:06:02 -06:00
..
Bullet.js
…
Combat.js
…
CombatScene.js Feedback VFX pass: damage numbers, color-coded hit flashes, kill burst, down/respawn cues 2026-09-16 01:06:02 -06:00
CombatSfx.js
…
CombatSystem.js Feedback VFX pass: damage numbers, color-coded hit flashes, kill burst, down/respawn cues 2026-09-16 01:06:02 -06:00
EnemyShip.js
…
Fx.js Feedback VFX pass: damage numbers, color-coded hit flashes, kill burst, down/respawn cues 2026-09-16 01:06:02 -06:00
StarDrift.js
…
main.js
…