- 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
- 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
- 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.
- 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'
- 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.
- 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.
- 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.
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.
- 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).
- 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
- 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
- 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.
- 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
- 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
- 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.