Commit Graph

5 Commits

Author SHA1 Message Date
Brian Fertig 3cea4f10b6 feat: add Hearts card game with AI opponents
- Implement Hearts game logic (HeartsLogic.js) with classic rules: passing, trick-taking, scoring, and moon-shooting mechanics
- Add AI opponent logic (HeartsAI.js) with heuristic-based card selection for passing and playing
- Create HeartsGame.js Phaser scene with full UI: card rendering, animations, trick collection, score tracking, and game flow
- Register Hearts in game registry as a 4-player card game
- Integrate Hearts into game routing and menu dispatch
2026-05-21 21:28:31 -06:00
Brian Fertig f1fc560cd1 feat: add Mexican Train game with AI and enhanced roulette effects
- Implement Mexican Train game logic, AI opponent, and Phaser UI scene
- Register Mexican Train in server game registry and client dispatch tables
- Add roulette spin sound effect and improved win/lose animations with fireworks
- Update preload scene and sound registry to support new audio assets
2026-05-21 19:43:54 -06:00
Brian Fertig 73f50e2106 feat: add Craps AI improvements and new Roulette game
Implements a fully playable Roulette game with American double-zero rules, a spinning wheel animation, and a heuristic AI that assigns distinct betting personalities to opponents. Adds colored identity rings to player portraits in both Craps and Roulette for better visual distinction. Updates Craps to render AI bets directly on the felt with color-coded chips and names, and adjusts dice landing positions.
2026-05-20 23:59:43 -06:00
Brian Fertig 2ee763fb7a feat: add single-player Craps game with AI opponents
Introduce a complete Craps implementation featuring a Phaser-based UI,
deterministic game logic, and heuristic AI players.

Key changes:
- CrapsLogic.js: Pure-state rules engine handling Pass/Don't Pass, Place,
  Come/Don't Come, Field bets, odds, and full resolution logic.
- CrapsAI.js: Stateless AI personalities (conservative, balanced, aggressive,
  gambler) derived from player names to drive betting behavior.
- CrapsGame.js: Phaser scene with animated dice rolls, chip tray, dynamic
  bet zones, portrait-based opponents, and persistence via profile API.
- Wire Craps into the game registry, main scene loader, and GameRoom dispatcher.
2026-05-20 20:16:15 -06:00
Brian Fertig 9c3774fb1f refactor: remove multiplayer and Socket.IO in favor of single-player AI games
- Remove Socket.IO dependency, server multiplayer logic (lobby, room management), and client-side socket service
- Replace multiplayer-only flow with single-player AI gameplay; add `OpponentSelectScene` for AI configuration
- Simplify game registry to use `minOpponents`/`maxOpponents` instead of `supportsMultiplayer`/`multiplayerOnly`
- Update game registration to remove multiplayer flags and adjust `games` table schema to hardcode `supports_multiplayer = 0`
- Remove `SOCKET_IO_CORS_ORIGIN` from environment configuration
- Update documentation to reflect single-player architecture and simplified game creation process
- Fix minor UI issues: add width to buttons in auth scenes, fix auth listener cleanup in LandingScene, restore DOM layer visibility in Modal
2026-05-20 18:57:41 -06:00