fertig-classic-games/tools
Brian Fertig cc2461c6b5 feat(dungeonboss): mid-walk spell casting in adventure windows
Add a "Spells" button during adventure room windows allowing the human
to cast hand spells targeting the hero currently mid-crawl (not just
entrance-queued heroes). The adventure modal stays open across the cast,
narrates spell effects as banners, and correctly resumes the walk
afterward without skipping rooms.

Key changes:
- New `adventurePause` walk type and `ADV_RESUME_MARKERS` to mark the
  boundary between a cast's own effects and resumed walk events
- `findHero` now locates heroes in `adv.walking.hero`
- `showPickModal`/`showReactModal` accept custom callbacks to stay
  inside the adventure modal session
- `driveAdventureWindowDecision` routes window/react decisions to the
  modal UI instead of closing it
- AI window/react turns are computed and revealed via a "has cast:"
  overlay before applying
- `applyAdventureWindowChoice` applies choices directly to the engine,
  splits events into narration vs resumed walk, and plays banners
- New event types (`roomBoosted`, `heroHurt`, `heroHealed`, `heroFeared`,
  `heroTeleportMarked`, `heroesBlocked`, `soulBurned`, `handReset`)
  render as banners in the narration pipeline
- Two new verification tests for mid-walk targeting and fearHero safety
2026-07-06 21:55:04 -06:00
..
buildCommonWords.js
genDotLink.js
genJumble.js
genKatamino.js
genMiniCrossword.js
genPuddingMonsters.js
genRushHour.js
genSpireClimbCreatures.js
genZuma.js
verifyBejeweled.js
verifyBlockFighter.js
verifyBookwork.js
verifyCanasta.js
verifyCribbage.js
verifyDotLink.js
verifyDungeonBoss.js feat(dungeonboss): mid-walk spell casting in adventure windows 2026-07-06 21:55:04 -06:00
verifyGinRummy.js
verifyJewelQuest.js
verifyJumble.js
verifyMahjong.js
verifyMahjongMatch.js
verifyMiniMotorways.js
verifyPaiGowPoker.js
verifyRisk.js
verifyRummikub.js
verifySWDBG.js feat: add Dungeon Boss and Star Wars Deckbuilder card games 2026-07-03 07:32:41 -06:00
verifySlots.js
verifySpireClimb.js
verifyZuma.js