- Add Tempest (Atari 1981 vector arcade clone) with full simulation logic,
Phaser rendering scene, vector font, and headless verification suite
- Register Tempest in games registry, main scene list, and game room dispatch
- Add reusable Tooltip UI component for hover-based information display
- Add Civilization unit/building tooltips in city screen and map hover
(CivilizationTooltips.js with flag and effect descriptions)
- Update Civilization click handling to distinguish hover-only from real
click targets via hoverOnly data flag
- Update civilization-units and game-icons assets
- Add bottom-right status log panel with scrollable entries, word wrap,
mask clipping, and mouse wheel scrolling; cap at 60 entries
- Replace toast popups with announceStatus() for major events (war, tech,
first contact, city founded, trade routes, huts) — centered modal with
CONTINUE button that animates into the log; supports queued popups and
custom onDismiss callbacks (e.g. first contact opens diplomacy)
- Add smooth panToTile() tween for camera movement when selecting next unit,
refactored clampPan into panBounds() reused by both clamp and tween
- Add classic city sprite sheet (civilization-cities-classic.png) and
register it in artwork JSON and asset manifest
- Replace circular civ rings and selection ring with isometric ellipses
matching the 2:1 tile ratio for better depth reading
- Paint tile neighbors in ascending c+r order during repaintTileAndNeighbors
to prevent tall features from being overwritten by lower-sum neighbors
- Stop panTween on pointer down to avoid conflict with manual dragging
- Add bottom-right status log panel with scrollable entries, word wrap,
mask clipping, and mouse wheel scrolling; cap at 60 entries
- Replace toast popups with announceStatus() for major events (war, tech,
first contact, city founded, trade routes, huts) — centered modal with
CONTINUE button that animates into the log; supports queued popups and
custom onDismiss callbacks (e.g. first contact opens diplomacy)
- Add smooth panToTile() tween for camera movement when selecting next unit,
refactored clampPan into panBounds() reused by both clamp and tween
- Add classic city sprite sheet (civilization-cities-classic.png) and
register it in artwork JSON and asset manifest
- Replace circular civ rings and selection ring with isometric ellipses
matching the 2:1 tile ratio for better depth reading
- Paint tile neighbors in ascending c+r order during repaintTileAndNeighbors
to prevent tall features from being overwritten by lower-sum neighbors
- Stop panTween on pointer down to avoid conflict with manual dragging
When a city cannot complete a build (e.g., size < 2 for settlers),
shields were accumulating past the build cost, showing confusing
values like "60/40 shields" or negative turn counts.
- Cap shieldBox at buildCost each turn in processCity
- Clamp displayed shields to min(shieldBox, cost) in city screen
- Add tests verifying shield capping and stalled build completion
- Add civilization-units.png sprite sheet (64×96 frames with 32px headroom)
- Animate unit movement along paths with smooth gliding after resolving logic
- Add city founding name prompt modal with TextInput and Enter/Escape support
- Support zoom-to-mouse-position via wheel, with extended zoom levels
- Flash-pulse End Turn button when no units have remaining movement
- Fix banner rendering with setSize instead of direct width assignment
- Adjust badge positions for taller sprite frames
- Decouple city name preview (peekCityName) from cursor consumption
- Set terrainSheet path to actual image file in artwork configuration
- Update civilization-terrain.png sprite sheet
- Reposition top-right HUD buttons 100px left for better spacing
- Hide player's fortified units inside cities on the map to reduce clutter
- Add garrison strip in city screen to view/unfortify garrisoned units
- Add "move or inspect" dialog when selecting a city with a movable unit
- Refactor moveTo into reusable method for cleaner click handling
- Make confirmDialog accept custom button labels
- Add civilization-terrain.png sprite sheet for terrain rendering