fertig-classic-games/tools
Brian Fertig 08d23f9613 refactor: replace stage clear targets with clear line boundary mechanic
Restructure Tetris Attack Stage Clear from "clear all target panels" to a
multi-stage round system with a sliding boundary line.

Gameplay changes:
- Each character now has 5 stages instead of a single match
- A CLEAR line appears after a set number of rows rise, then rides the
  stack upward; the objective is to clear everything above it
- Clearing a stage advances to the next: same board, faster speed, fresh line
- Stage progress is saved to localStorage; characters unlock sequentially
- Added a stage select screen with progress squares per character

Logic changes:
- Replaced `targetsTotal` with `clearLine` tracking and `countAboveLine`
- Added `advanceStage()` to resume play on the same stack one speed level higher
- Win condition now checks `countAboveLine() === 0` instead of target count
- Removed `target` flag from panels; panels below the line are irrelevant
- Continuous speed ramp via fractional `speed` per stage

UI changes:
- Clear line drawn as a pulsing bar with "◀ CLEAR" label outside the board
- "CLEAR LINE!" announcement on appearance, "STAGE N CLEAR!" banner on win
- HUD shows stage number instead of panel count
- Game over offers "Retry Stage", "Stage Select", or "Menu"

Asset changes:
- Backgrounds renamed to `background-{hero}-r{stage}.png` (5 per character)
- Lazy-load backgrounds per round instead of preloading all 30 images
- Updated tetrisattack.json with `stagesPerRound`, `stageSpeedStep`, and
  per-character `clearLineRows`

Tests:
- Rewrote stage clear soak tests for the new mechanic
- Added stage round progression, speed ramp, and board preservation tests
2026-07-21 10:00:09 -06:00
..
buildCommonWords.js
fetchStarControlAssets.js
genDotLink.js
genJumble.js
genKatamino.js
genMiniCrossword.js
genPeggleLevels.js
genPuddingMonsters.js
genRushHour.js
genSpireClimbCreatures.js
genSuperKartTracks.js feat: add Super Kart — SNES-style Mode 7 kart racing game 2026-07-17 14:25:18 -06:00
genTetrisAttackPuzzles.js feat: add Tetris Attack (Panel de Pon) with endless, stage clear, and puzzle modes 2026-07-20 00:04:26 -06:00
genZuma.js
verifyAdvanceWars.js feat(advance-wars): add unit progression system with mission-based unlocks 2026-07-19 10:55:18 -06:00
verifyBalatro.js
verifyBejeweled.js
verifyBlockFighter.js
verifyBookwork.js
verifyCanasta.js
verifyCivilization.js refactor(civilization): pick best available land defender as city build default 2026-07-18 09:08:44 -06:00
verifyColoradoDefense.js
verifyCribbage.js
verifyDotLink.js
verifyDungeonBoss.js
verifyGinRummy.js
verifyJewelQuest.js
verifyJumble.js
verifyMahjong.js
verifyMahjongMatch.js
verifyMiniMotorways.js
verifyPaiGowPoker.js
verifyPeggle.js
verifyRisk.js
verifyRummikub.js
verifySWDBG.js
verifySlots.js
verifySpireClimb.js
verifyStarControl.js
verifySuperKart.js feat(superkart): add post-race victory cam, engine audio, and polished results screens 2026-07-18 15:24:49 -06:00
verifyTempest.js feat: add Tempest arcade game and Civilization tooltips 2026-07-16 20:05:00 -06:00
verifyTetrisAttack.js refactor: replace stage clear targets with clear line boundary mechanic 2026-07-21 10:00:09 -06:00
verifyZuma.js