fertig-classic-games/tools
Brian Fertig f9e971b305 feat(totalannihilation): overhaul flight model to strafing behavior
Replace hover-based aircraft movement with a two-state system: LANDED
(grounded, cannot shoot, vulnerable to all weapons) and FLYING (at
cruise speed, uses air domain protection). Aircraft can no longer stop
in mid-air; armed units execute strafing passes with overshoot and
come-about logic.

Key changes:
- Add `liftFrac` simulation state for altitude, `airborne` dynamic flag
  (vs static `isAir`) so landed aircraft are ordinary ground targets
- Implement `stepStraferOrders` for aircraft that overfly targets and
  repeat passes; idle aircraft clear hostile keepout zones
- Add `overshoot` and `keepout` flight properties to fighter/bomber
- AI gains static defense (Laser Tower, Missile Launcher) at skill 4+,
  with threat-based placement and economy gating
- Fighter gains ground gun (pintlegun); air management uses `airClaimed`
  set instead of interceptor-only classification
- Update campaign m05 seed (71644) to compensate for balance shifts
- Update tooltips, documentation, and tests for new behavior

Closes #1234
2026-08-01 13:15:58 -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
…
genJumble.js
…
genKatamino.js
…
genMiniCrossword.js
…
genPeggleLevels.js
…
genPuddingMonsters.js
…
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
…
verifyColoradoDefense.js
…
verifyCribbage.js
…
verifyDotLink.js
…
verifyDungeonBoss.js
…
verifyExcitebike.js excitebike: playtest fixes and Wave 5 polish 2026-07-29 23:06:41 -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
…
verifyMiniMotorways.js
…
verifyPaiGowPoker.js
…
verifyPeggle.js
…
verifyPuddingMonsters.js
…
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(totalannihilation): overhaul flight model to strafing behavior 2026-08-01 13:15:58 -06:00
verifyZuma.js Zuma Level Refactor 2026-07-28 21:33:36 -06:00