Commit Graph

20 Commits

Author SHA1 Message Date
Brian Fertig 1e607e5802 feat(catan): add debug mode for free roads/ships and improve fog revelation
- Add DEBUG_FREE_ROADS_AND_SHIPS flag to bypass resource costs for testing
- Extend fog hex revelation to include corner-adjacent hexes, not just edge-adjacent
- Restructure button enable logic to support debug mode in UI
- Initialize hexTileFrames map in CatanGame setup
2026-06-12 09:46:30 -06:00
Brian Fertig 2958de16ce fix(catan): correct ship placement to use edge coordinates
fix(dominion): increase Platinum cost in Prosperity expansion

- Update Catan ship placement logic to calculate destination using edge positions like roads
- Adjust Dominion Prosperity expansion Platinum card cost from 5 to 9 coins for balance
2026-05-30 06:57:10 -06:00
Brian Fertig 9dbf3feae4 feat(catan): implement Seafarers expansion features (gold hexes, ships, fog)
- Add gold hex resource picking phase with AI support
- Implement ship building mechanics and update build costs UI
- Introduce fog tiles that reveal terrain when roads/ships are built adjacent
- Replace robber token with pirate ship graphic
- Persist random tile frames for consistent hex visuals
- Update game state machine to handle gold pick queue and phase transitions
- Adjust UI layout (card positions, build panel) to accommodate Seafarers elements
2026-05-29 16:13:53 -06:00
Brian Fertig c5f34b7c28 feat(catan): implement Seafarers expansion and dynamic board architecture
- Decouple static board geometry from game state by introducing a board registry and `geoFor(state)` accessor. All AI and logic functions now dynamically resolve topology.
- Add support for Seafarers scenarios (New Shores, Four Islands, Oceania, Fog Island) with scenario-specific setup rules and victory conditions.
- Implement ship mechanics: players build maritime routes on coastal/sea edges that count toward the longest road.
- Introduce sea, gold, and fog terrain types. Update hex rendering, AI pathfinding, and placement rules to respect land vs. water constraints.
- Add pirate token rendering and logic, plus expansion scoring hooks for bonus victory points.
- Update lobby UI to allow expansion and scenario selection, passing configuration through to the game scene.
- Refactor `CatanBoard.js` geometry generation for O(1) edge lookups and dynamic port assignment.
2026-05-29 15:06:20 -06:00
Brian Fertig 17133787c1 refine wordle AI balance, add Catan tutorial, fix opponent select layout, enable word category
- Adjust Wordle AI skill profiles to lower win rates and increase blunder chances for better difficulty curve
- Center Wordle player portrait vertically with the playfield
- Add Steve's humorous tutorial for Settlers of Catan (markdown + assets)
- Update OpponentSelectScene to hide playfield options for word games and adjust scroll height
- Fix migration script to temporarily disable foreign keys to allow schema changes
- Add migration to extend games.category to include 'word'
2026-05-27 23:22:15 -06:00
Brian Fertig 6508a80c94 feat(catan): enhance AI expansion logic and polish game visuals
- Improve Catan AI to evaluate 1-hop lookahead nodes and prioritize bridge connections for better road expansion.
- Add visual feedback for opponent Monopoly plays (resource text + fireworks).
- Redesign game-over screen with dynamic winner portraits (video for AI, avatar fallback for human) and fireworks.
- Add eliminated player panel in Hold'em with animated portrait transitions.
- Export `longestRoadFor` for use in AI logic.
2026-05-25 09:46:27 -06:00
Brian Fertig 1a7decfa0e feat(catan): enhance AI trading logic and add UI tooltips/fullscreen support
- Implement intelligent AI trade initiation (proposeTrade) and response logic (respondToTrade) that adjusts willingness based on the requester's victory points.
- Add hover tooltips for harbors, Longest Road, and Largest Army cards to improve user understanding of game mechanics.
- Add a generic info tooltip system for UI elements.
- Add fullscreen toggle button to Landing and Game Menu scenes.
- Fix AI trade animation and status messages for better feedback.
2026-05-24 15:15:51 -06:00
Brian Fertig 4198dd5757 feat(catan): add animated special cards and opponent dev card reveals
- Implement visual tracking for Longest Road and Largest Army cards with
  smooth transfer animations between players and the central display.
- Add audio feedback for special card ownership changes and opponent dev card plays.
- Display opponent development card details with a zoom-in animation when played.
- Update opponent panels to remove special card badges in favor of the new visual system.
- Add necessary spritesheet and audio assets to the preload scene.
- Minor fix to restore dice state in Parchisi logic after three-doubles penalty.
2026-05-24 12:53:38 -06:00
Brian Fertig 7e022e8e9b Added Nerts 2026-05-24 00:50:46 -06:00
Brian Fertig f9e80eaedc fix(catan): improve AI resource management by prioritizing settlements over roads
The AI now waits to build a road until no settlement spots are immediately reachable. This prevents wasting resources on roads when a settlement could be built, ensuring more efficient resource accumulation for higher-cost structures.
2026-05-23 17:44:55 -06:00
Brian Fertig 58c4edf8fd feat(catan): add visual and audio feedback for card theft by robber
- Detect when the robber steals a resource from player 0 by comparing resource counts before and after the move.
- Display a temporary "CARD STOLEN" banner with the stolen resource name and robber's name.
- Play a lose sound effect to provide immediate audio feedback.
- Apply this notification logic consistently across all three locations where the robber is moved (AI turn, player turn, and initial setup).
2026-05-23 17:34:55 -06:00
Brian Fertig 67500636cb Played happy video and audio when purchasing a city or settlement 2026-05-23 17:28:14 -06:00
Brian Fertig dff196e7ed Bunch o Changes 2026-05-23 17:26:21 -06:00
Brian Fertig 10df4781ef feat(catan): add standard tile placement option and update robber voice lines
- Add `STANDARD_RESOURCES` array to `CatanBoard.js` for the classic beginner layout
- Allow users to choose between 'random' and 'standard' tile placement in `OpponentSelectScene`
- Pass `tilePlacement` config through `GameRoomScene` to `CatanGame` and `CatanLogic`
- Update robber voice clip files to new recordings
2026-05-23 15:43:45 -06:00
Brian Fertig aa5609f2f9 feat(catan): enhance robber mechanics, dice animations, and resource hand UI
- Add animated robber movement with custom sprite, sound effects, and glow
- Implement dynamic dice roll animation with arc trajectory and sound cues
- Replace static resource hand with draggable, selectable cards
- Add victory points badge above player portrait
- Expand trade panel width and button sizes for better usability
- Load new robber asset and speech clips in preload scene
2026-05-23 15:19:39 -06:00
Brian Fertig 29fb4a9b2f feat(catan): overhaul visuals and opponent UI
- Replace static sea background with a radial gradient for a richer look.
- Redesign settlement and city graphics with drop shadows and white halos.
- Enhance road rendering with a white core for better visibility.
- Add VP badges and card count fans to opponent panels.
- Support card back sprites via `data.cardBack` for accurate card rendering.
- Mark Catan as a card game in the registry.
2026-05-23 13:42:51 -06:00
Brian Fertig 7439945416 feat(catan): refine hex tile rendering with inset borders and background
- Add `background-catan-board.png` for enhanced board visuals
- Implement inset polygon logic to create layered hex borders (colored swatch, dark ring, image area)
- Adjust tile image scaling to fit within the innermost inset polygon
- Reduce outer border line width for a crisper appearance
- Add fallback resource color fill for the inner image area if texture is missing
2026-05-23 13:04:09 -06:00
Brian Fertig e562ed21b8 feat(catan): enhance visuals with custom tiles, cards, and bank panel
- Add high-resolution `catancards.png` and `catantiles.png` assets
- Replace hexagon background colors with textured tile images from spritesheet
- Redesign resource hand with card-style UI (dark background, artwork, colored borders)
- Introduce a new Bank Panel on the right side showing resource and dev card counts
- Implement resource collection animations (chit pulse, particle effects, card flight)
- Export `HEX_W` constant for use in tile sizing calculations
2026-05-23 12:59:27 -06:00
Brian Fertig 4b6593b074 refactor Catan setup: use deterministic chit placement and randomize player order
- Replace the random hex chit assignment with a fixed spiral-based sequence (`CHIT_SPIRAL` and `CHIT_SEQUENCE`) to ensure consistent board layouts.
- Randomize the initial player turn order using a shuffled seat array instead of the static snake pattern.
- Update the build costs legend UI to display colored resource swatches in a bottom panel.
2026-05-23 10:25:55 -06:00
Brian Fertig 036298227f Added Catan and multiple sound effects 2026-05-23 08:55:15 -06:00