Commit Graph

9 Commits

Author SHA1 Message Date
Brian Fertig d51d026352 feat: add Zuma marble-shooter game with 20 levels
Implement a complete Zuma-style puzzle game featuring:

- Pure game engine (`ZumaLogic.js`) with Catmull-Rom path animation,
  segment-based chain physics, match-3 popping, and power-ups (slow,
  reverse, accuracy, explosion)
- Phaser scene (`ZumaGame.js`) with procedural textures, laser sight,
  and full UI (level select, overlays, scoring)
- 20 hand-designed levels across 6 path shapes (s-curve, horseshoe,
  spiral, zigzag, double-loop, figure-eight) with calibrated difficulty
- Level generator (`genZuma.js`) and verification suite (`verifyZuma.js`)
  for path geometry, parameter ranges, and engine correctness
- Platform integration: game registry, scene dispatch, preload asset
2026-06-12 00:15:51 -06:00
Brian Fertig d01a2917b1 feat: add Jewel Quest game and fix Portrait memory leaks
- Register new Jewel Quest game across client and server
- Update game icons spritesheet with new frame (59)
- Fix memory leaks in Portrait components by implementing proper
  cleanup with double-destruction guards and returning destroy function
2026-06-11 19:07:43 -06:00
Brian Fertig bbb9c329c7 feat: add 4-player Hong Kong style Mahjong with AI opponents
- Implement pure logic engine for tile management, shanten calculation, claim resolution, and faan scoring.
- Add heuristic AI (5 skill levels) using shanten minimization, ukeire tiebreaking, and adaptive defense.
- Build Phaser UI with tile rendering, dynamic scoreboard, claim prompts, hand-end modals, and a scoring reference panel.
- Integrate into frontend routing, opponent selection, and backend registry.
- Include headless verification script for tile catalog, scoring fixtures, and AI self-play invariant checks.
- Update game icon assets and add in-game tutorial.
2026-06-11 18:18:45 -06:00
Brian Fertig dd749bc570 feat: add Mahjong Match solitaire game with 6 layouts and guaranteed-solvable deals
- Add complete Mahjong Match game (MahjongLogic.js + MahjongMatchGame.js) with pure board model and Phaser UI
- Implement 6 layouts: Garden, Crossroads, Pyramid, Butterfly, Fortress, and classic Turtle (up to 144 tiles)
- Generate guaranteed-solvable deals by simulating reverse removal of free pairs
- Add tile matching logic using half-tile coordinate system for proper layer overlap detection
- Include 38 tile face images (bamboo, circle, pinyin characters, winds, dragons, flowers, seasons)
- Add hint system, shuffle functionality, timer, best time tracking per layout
- Register game in server registry and scene dispatch tables
- Add headless verification script for face set validation and random self-play testing
2026-06-11 16:23:17 -06:00
Brian Fertig bf47c50dfa Added Block Fighter game 2026-06-11 10:03:22 -06:00
Brian Fertig 85f0079b2c feat: overhaul Pudding Monsters scoring and add opponent videos
- Replace star collection with target-square coverage for Pudding Monsters
- New 3-star medal system: min(targets covered, par-based efficiency)
- Add "Reset Progress" buttons to Pudding Monsters and Rush Hour level select
- Add reset API endpoint for puzzle progress
- Add Beth and Blackwind opponents with idle/happy/upset animations
- Update puddingmonsters.json levels with target squares instead of stars
2026-06-08 22:24:12 -06:00
Brian Fertig ea44758f7d feat: add Jell-o Monsters (Pudding Monsters) slide-and-merge puzzle game
Introduce a new single-player logic puzzle game where players flick jelly
blobs across a grid to slide and merge them into a single monster.

- PuddingMonstersLogic.js: pure slide-and-merge model with BFS solver,
  no Phaser/DOM dependencies; shared by client and generator
- PuddingMonstersGame.js: Phaser scene with drag-to-flick, arrow keys,
  undo/reset/hint, par tracking, star collection, death on spikes
- genPuddingMonsters.js: offline level generator using seeded RNG and
  BFS solver; produces 40 levels across 5 difficulty tiers
- puddingmonsters.json: generated level data (40 levels, 5–7 grid sizes)
- Update main.js, GameRoomScene.js, PreloadScene.js, registry.js to
  wire the new game into the app
- Update game-icons assets
2026-06-08 21:58:28 -06:00
Brian Fertig 3d3d09a9fb feat: add Rush Hour puzzle game with logic category
- Register Rush Hour game in server registry (logic category, single-player)
- Add "Logic & Puzzle" tab to game menu
- Integrate RushHourGame scene in client-side main.js and GameRoomScene
- Load rushhour.json game data in PreloadScene
- Add puzzle API routes for server-side puzzle management
- Configure tab icon frame for new logic category
2026-06-08 17:57:24 -06:00
Brian Fertig 9cb05f5f44 Crossword Changes and added Tectonic 2026-06-05 23:24:11 -06:00