fertig-classic-games/assets/fx
Brian Fertig 77e27e2a8e feat(mastervega): add V2 per-ship combat prototype with continuous-time simulation
Introduce `VegaCombatV2.js`, a parallel headless combat engine that simulates
individual ships (not stack aggregates) in continuous time rather than discrete
rounds. Ships have per-hull `sizeScale`, `sizeSpeedMult`, and `turnRateBase`
fields; every entity tracks its own cooldown, position, facing, and angular
momentum. Damage and movement are banked per-tick to preserve fairness.

Accompanying files:
- `VegaCombatViewV2.js` — zoomable/pannable Phaser view with parallax starfield
- `VegaCombatCamera.js` — cursor-anchored zoom + drag-to-pan (listener cleanup
  on destroy to avoid stacking across battles)
- `VegaFormations.js` — formation strategy plumbing (chosen per side, not yet
  read by movement/targeting)
- Hull-specific destroy audio cues and vega buildings art

Wired behind `?movsim`'s Live/V2 toggle in `VegaCombatSim.js` — the live engine
and all real player battles are untouched.

Also fixes several latent bugs discovered during the rewrite:
- Trap 26: simultaneous wipe-out now checks draw before single-side wins
- Trap 27: movement is banked (two-phase) like damage
- Trap 28: weighted-random targeting tames chaotic nearest-neighbour sensitivity
- Trap 29: fleet gap clamped to 85% world width to prevent starvation
- Trap 30: `RANGE_EPS` tolerance prevents steering-induced standoffs

See `docs/mastervega-build-plan.md` for full design notes.
2026-08-09 12:36:01 -06:00
..
tetrisattack
vega feat(mastervega): add V2 per-ship combat prototype with continuous-time simulation 2026-08-09 12:36:01 -06:00
8bit-action.mp3
8bit-activate.mp3
8bit-card.mp3
8bit-count.mp3
8bit-explode.mp3
8bit-explode2.mp3
8bit-jump.mp3
8bit-lose.mp3
8bit-move.mp3
8bit-select.mp3
8bit-win.mp3
battle-arrows.mp3
battle-cannon.mp3
battle-catapult.mp3
battle-gunfire-classic.mp3
battle-gunfire-modern.mp3
battle-helicopter.mp3
battle-missle.mp3
battle-submarine.mp3
battle-sword.mp3
battle-tank.mp3
battleship-hit.mp3
battleship-launch.mp3
battleship-miss.mp3
bingo-balls.mp3
card-deal.mp3
card-place.mp3
card-show.mp3
card-shuffle.mp3
casino-blackjack.mp3
casino-lose.mp3
casino-win.mp3
chip-bet.mp3
click.mp3
coins.mp3
countdown-01.mp3
countdown-02.mp3
dice-roll.mp3
energy-hum.mp3
engine-fast.mp3
engine-heavy.mp3
engine-medium.mp3
engine-rev.mp3
engine-start.mp3
firework.mp3
gem-01.mp3
gem-02.mp3
gem-04.mp3
gem-05.mp3
gem-big-drop.mp3
gem-chain.mp3
gem-drop.mp3
jello-monsters.mp3
kart-coin.mp3
kart-flatten.mp3
kart-hit.mp3
kart-shell.mp3
kart-shrink.mp3
kart-spin.mp3
kart-spinner.mp3
kart-star.mp3
kart-thump.mp3
laser-zap.mp3
march.mp3
mastermind-access-denied.mp3
mastermind-access-granted.mp3
mastermind-calculate.mp3
mastermind-color.mp3
mastermind-glitch-01.mp3
mastermind-glitch-02.mp3
mastermind-match.mp3
mastermind-place.mp3
monopoly-expense.mp3
monopoly-paid.mp3
monopoly-pay.mp3
monopoly-purchase.mp3
pencil-write.mp3
piece-click.mp3
purchase.mp3
rewind.mp3
roulette.mp3
scifi-explode.mp3
scifi-launch.mp3
scifi-plink.mp3
scifi-plonk.mp3
scifi-reveal.mp3
scifi-riser.mp3
scifi-woosh.mp3
squash.mp3
squish.mp3
sw-dark-1.mp3
sw-dark-2.mp3
sw-dark-3.mp3
sw-light-1.mp3
sw-light-2.mp3
sw-light-3.mp3
sword-hit.mp3
sword-slice.mp3
ta-50cal.mp3
ta-machinegun.mp3
ta-nuclear.mp3
ta-rocket-1.mp3
ta-rocket-2.mp3
ta-unit-loss.mp3
ta-vehicle-loss.mp3
ui-activate.mp3
ui-attach.mp3
ui-chime.mp3
ui-flip.mp3
ui-pick.mp3
ui-place.mp3
victory-short.mp3
water-dry.mp3
water-raise.mp3
water-sink.mp3
water-splash.mp3
woosh.mp3
zuma-explode.mp3
zuma-hit.mp3
zuma-lose.mp3
zuma-shoot.mp3
zuma-start.mp3
zuma-win.mp3