fertig-classic-games/tools
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
..
data Excitebike 2026-07-29 22:05:21 -06:00
lib feat(totalannihilation): add flight animation and factory production dials 2026-08-01 09:41:03 -06:00
bloxorzMap.js
…
buildCommonWords.js
…
fetchStarControlAssets.js
…
genBloxorz.js
…
genDotLink.js
…
genExcitebikeTracks.js fix(excitebike): rework throttle, heat model, and landing after playtest 2026-07-29 22:34:29 -06:00
genGooTower.js Goo Tower Levels 2026-07-26 15:23:18 -06:00
genJumble.js
…
genKatamino.js
…
genMiniCrossword.js
…
genPeggleLevels.js
…
genPuddingMonsters.js feat: pudding monsters waves 1-3, mahjong match FX, background art 2026-07-26 01:27:36 -06:00
genRushHour.js feat(rushhour): redesign level bank, procedural art, and tiered curriculum 2026-07-28 22:12:55 -06:00
genSpireClimbCreatures.js
…
genSuperKartTracks.js
…
genTACampaign.js feat(totalannihilation): overhaul flight model to strafing behavior 2026-08-01 13:15:58 -06:00
genTetrisAttackPuzzles.js
…
genZuma.js Zuma Level Refactor 2026-07-28 21:33:36 -06:00
readExcitebikeMaps.js excitebike: playtest fixes and Wave 5 polish 2026-07-29 23:06:41 -06:00
verifyAdvanceWars.js
…
verifyBalatro.js
…
verifyBejeweled.js
…
verifyBlockFighter.js
…
verifyBloxorz.js
…
verifyBookwork.js
…
verifyCanasta.js
…
verifyCivilization.js feat: add barbarian raiders system with warlord ransoms 2026-08-01 18:18:36 -06:00
verifyColoradoDefense.js
…
verifyCribbage.js
…
verifyDotLink.js
…
verifyDungeonBoss.js
…
verifyExcitebike.js feat(excitebike): add cool-zone speed boost and cooldown feedback 2026-08-01 15:44:17 -06:00
verifyGinRummy.js
…
verifyGooTower.js feat(gootower): add sleeping goo mechanic and redesign levels 2026-07-31 23:37:48 -06:00
verifyJewelQuest.js
…
verifyJumble.js
…
verifyMahjong.js
…
verifyMahjongMatch.js
…
verifyMasterOfVega.js feat(mastervega): add V2 per-ship combat prototype with continuous-time simulation 2026-08-09 12:36:01 -06:00
verifyMiniMotorways.js
…
verifyPaiGowPoker.js
…
verifyPeggle.js
…
verifyPuddingMonsters.js feat: pudding monsters waves 1-3, mahjong match FX, background art 2026-07-26 01:27:36 -06:00
verifyRisk.js
…
verifyRummikub.js
…
verifyRushHour.js feat(rushhour): redesign level bank, procedural art, and tiered curriculum 2026-07-28 22:12:55 -06:00
verifySWDBG.js
…
verifySlots.js
…
verifySpireClimb.js
…
verifyStarControl.js
…
verifySuperKart.js
…
verifyTempest.js
…
verifyTetrisAttack.js
…
verifyTotalAnnihilation.js feat: add radar detection system with jamming and contacts 2026-08-01 14:51:05 -06:00
verifyZuma.js Zuma Level Refactor 2026-07-28 21:33:36 -06:00