Commit Graph

62 Commits

Author SHA1 Message Date
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
Brian Fertig 3d5c49d325 feat: add Uno card game support
- Import and register UnoGame in the frontend client
- Add Uno to the game slug dispatch mapping in GameRoomScene
- Register Uno in the server game registry with card game configuration
2026-05-19 19:21:12 -06:00
Brian Fertig d46de05b48 feat: add Go Fish card game with AI and UI
- Implement Go Fish game logic in GoFishLogic.js with state management, turn handling, and pair scoring
- Create GoFishAI.js with memory-based opponent that tracks card distribution and makes strategic decisions
- Build GoFishGame.js scene with Phaser UI including card rendering, seat layouts, animations, and game flow
- Register Go Fish in gameRegistry with 'cards' category and multiplayer support (1-4 players)
- Update GameMenuScene to display 'Cards' column for card games
- Wire up GoFishGame in GameRoomScene slug dispatch and main.js scene registry
2026-05-17 20:56:40 -06:00
Brian Fertig 356a2e98c5 feat: add Chinese Checkers game with 6-player AI and Phaser rendering
- Implement complete game logic (ChineseCheckersLogic.js) with hex board,
  move generation (steps/jump chains), and rule enforcement.
- Add single-ply heuristic AI (ChineseCheckersAI.js) that prioritizes pulling
  laggard pegs forward and entering the target triangle.
- Build Phaser-based UI (ChineseCheckersGame.js) with radial portraits,
  animated peg moves, and turn indicators.
- Register the game in the server registry and frontend routing.
2026-05-17 20:22:19 -06:00
Brian Fertig 1996e255c3 Added Skip Bo and Phase 10 and Yatzi. Updated Read Me. Added some sound effects. 2026-05-17 09:24:30 -06:00
Brian Fertig 56f1cdd752 feat: overhaul visual theme to vintage gold and update UI components
- Update color palette to warm vintage tones (gold, cream, dark brown) in config.js
- Apply 'Righteous' and 'Julius Sans One' fonts across all game scenes and UI components
- Redesign Parchisi game logic: switch to counter-clockwise movement, update entry/home positions, and add bonus chip indicator
- Improve Parchisi UI: reposition dice and buttons, add turn indicator movement with callbacks, and fix AI turn timing
- Enhance LandingScene with animated logo, avatar support, and improved layout
- Update Button component with rounded corners, shadow effects, and hover states
- Add background image and main title asset loading in PreloadScene
- Extend auth service to include displayName and avatarPath in session user data
- Update CSS to match new theme and load custom fonts
2026-05-16 21:04:16 -06:00
Brian Fertig d206cf6e5b feat: add single-player Parchisi game with AI
- Implement core Parchisi logic (ParchisiLogic.js) including board rules,
  move validation, and state management.
- Add Minimax-based AI (ParchisiAI.js) with heuristic evaluation for move
  selection, supporting up to 3 AI opponents.
- Create full Phaser game scene (ParchisiGame.js) with animated board,
  pawns, dice, and UI elements.
- Register new game assets (fonts, images, video animations).
- Update game registry to support 1-4 players with 3 AI opponents.
- Integrate Parchisi into the main scene loader and game room dispatch.
2026-05-16 18:45:41 -06:00
Brian Fertig 712956a841 feat: add Blackjack game and update game registration
- Introduce BlackjackGame as a new playable game in the client
- Register Blackjack in the server game registry with updated player limits (1-5 players, 0-4 opponents)
- Wire up Blackjack in main.js and GameRoomScene for routing
- Fix OpponentSelectScene to handle games with minOpponents=0
- Remove incomplete ParchisiLogic.js implementation
2026-05-16 15:54:39 -06:00
Brian Fertig 2c136e0567 Added several opponents and Texas Hold Em 2026-05-16 11:59:33 -06:00
Brian Fertig 96f4cedd3e First Commit 2026-05-15 19:35:16 -06:00