Commit Graph

11 Commits

Author SHA1 Message Date
Brian Fertig 94e2152918 remove Angry Birds game; enhance Goo Tower visuals
Remove the entire Angry Birds implementation including physics solver,
game logic, Phaser scene, level data, verification tool, and registry
wiring. Also delete the build-plan documentation.

Meanwhile, upgrade Goo Tower rendering: spikes now have faceted steel
teeth with dynamic lighting, rust speckling, and twinkling glints;
lava features layered heat gradients, animated flow streaks, and
rising bubbles. Update gootower levels 6-7 and zuma level 6.
2026-07-31 16:29:49 -06:00
Brian Fertig 221f1d428a feat(gootower): replace procedural gear/pipe with sprite art and add terrain textures
- Add gear.png and pipe.png sprite assets for GooTower
- Replace procedural drawGears() with rotated sprite instances for better performance
- Replace procedural drawPipe() with sprite art and separate procedural glow overlay
- Add patchy grass strips along top-facing terrain edges with variable depth and two-tone coloring
- Add mottled dirt texture pass clipped to polygon bounds
- Introduce helper functions (hash01, topFacingEdges, pointInPoly) for texture rendering
- Update asset manifest to include new gootower images
2026-07-30 20:39:17 -06:00
Brian Fertig 4dab1ac7d5 Elongate goos for the pipe. 2026-07-30 20:01:21 -06:00
Brian Fertig d8296940e5 Suck into pipe effect for goos 2026-07-30 19:54:18 -06:00
Brian Fertig e1b1ab2bab feat(gootower): add background parallax, dynamic level bounds, ball eye animations
- Add background parallax layer that follows camera pan/zoom at a reduced
  rate for depth perception
- Replace fixed world-height Y clamping with dynamic level content bounds
  computed from terrain, pipe, and balls
- Add per-ball eye wander and desynchronized blink cycles for livelier
  ball rendering
- Reorder pickBallAt priority so direct clicks on detachable attached balls
  take precedence over loose balls, preventing accidental structure detachment
2026-07-30 19:38:37 -06:00
Brian Fertig a6573726ff Goo Tower and Zuma Changes 2026-07-29 19:50:51 -06:00
Brian Fertig 59a5d0606e refactor(gootower): draw strands as pinched goo shapes instead of lines
Replace simple line-based strand rendering with filled polygon shapes that
are thick at the ends and pinched thin in the middle, with curved edges
and perpendicular sag for a drooping arc effect. Strands now connect
smoothly to balls with tangent-aligned edges.
2026-07-26 19:26:25 -06:00
Brian Fertig b6e7d932cd feat(gootower): add edge-pan camera control, intro animation, and debug zoom
- Add edge-based camera panning when zoomed in (50px threshold from screen edges)
- Add cinematic level intro animation: zoom to pipe, pause, then pan to initial structure
- Block user input during intro animation to prevent interference
- Add optional debug zoom level display (toggled via DEBUG_ZOOM constant)
- Clean up intro animation and debug text on level reset
2026-07-26 18:43:17 -06:00
Brian Fertig 6e9cc84f6a feat(gootower): replace sky drawing with background image asset
- Add gootower-bg to asset manifest
- Replace drawSky() with drawBackground() method that renders the background texture
- Display background when entering play mode
2026-07-26 15:37:31 -06:00
Brian Fertig 5b24cc3ad0 Goo Tower Levels 2026-07-26 15:23:18 -06:00
Brian Fertig 386ad3efb7 feat: add Goo Tower game with physics engine, 12 levels, and editor
Implement Waves 0-3 of Goo Tower, a World of Goo-inspired physics
puzzle game. Includes:

- GooTowerLogic.js: Verlet integration with XPBD constraints, terrain
  collision, ball-ball collision, strand breaking, crawling agents,
  and 9 goo types (common, ivy, balloon, bomb, block, pokey, bit,
  skull, anchor)
- GooTowerGame.js: Phaser scene with procedural rendering, drag-and-
  drop placement, pipe collection, and win/OCD tracking
- GooTowerEditor.js: Level editor (/?gootower-editor=1) with terrain
  drawing, ball/pile placement, settle/test/export tools
- 12 hand-tuned levels across 2 chapters (teaching + sandbox)
- verifyGooTower.js: 303-check regression harness
- genGooTower.js: Level bank writer
- GooTowerAuto.js: Greedy reference player (winnability gate)
- Wiring into gamesRegistry, main.js, GameRoomScene, and PreloadScene
2026-07-26 10:22:25 -06:00