Clicking a Nisse opens a top-left panel showing name, AI status, energy bar, active job, job priority buttons, and a live work log (last 10 of 20 runtime-only entries). Closes via ESC, ✕, or clicking another Nisse. Dynamic parts (status/energy/job/log) refresh each frame without rebuilding the full group. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3.0 KiB
3.0 KiB
Changelog
All notable changes to this project will be documented here. Format follows Keep a Changelog.
[Unreleased]
Added
- Nisse Info Panel (Issue #9): clicking a Nisse opens a top-left panel with name, AI status, energy bar, active job, job priority buttons, and a live work log (last 10 of 20 runtime entries); closes with ESC, ✕ button, or by clicking another Nisse
- Work log tracks: walking to job, hauling to stockpile, going to sleep, waking up, chopped/mined/farmed results, deposited at stockpile
- ESC Menu (Issue #7): pressing ESC when no overlay is open shows a pause menu with Save Game, Load Game, Settings (placeholder), and New Game; New Game requires confirmation before wiping the save
- ESC key now follows a priority stack: confirmation dialog → context menu → build menu → villager panel → Nisse info panel → ESC menu → (build/farm mode handled by their systems) → open ESC menu
Added
- F3 Debug View: toggleable overlay showing FPS, tile type and contents under the cursor, Nisse count by AI state, active jobs by type, and pathfinding visualization (cyan lines in world space)
Fixed
- Nisse now clear the FOREST/ROCK tile after harvesting, opening paths to deeper resources
- Nisse no longer get stuck idle after depositing items at the stockpile
- Working Nisse now reset to idle on game load (like walking ones), preventing stale AI state
- Stale jobs with empty carry are now cleared after work completes, avoiding a false "haul to stockpile" loop
- UI elements (stockpile panel, controls hint) now reposition correctly after window resize
- Centered overlay panels (build menu, villager panel) close on resize so they reopen at the correct position
- Mouse world coordinates now use
ptr.worldX/ptr.worldYin BuildingSystem and FarmingSystem, fixing misalignment after resize or zoom
Changed
- Villagers are now called Nisse throughout the UI (panel, controls hint, stockpile display, context menu, spawn message)
Added
- Scroll wheel zooms toward the mouse cursor position (zoom-to-mouse), correctly accounting for Phaser's center-based zoom model
- Middle mouse button held: pan the camera by dragging
- Test environment at
/test.htmlwithZoomTestScene(Phaser default) andZoomMouseScene(zoom-to-mouse) for camera behaviour analysis; file-logging via Vite middleware togame-test.log
Fixed
getCenterWorld()inCameraSystemreturned wrong world coordinates at zoom ≠ 1; corrected fromscrollX + width/(2·zoom)toscrollX + width/2- Right-click context menu: suppresses browser default, shows Build and Nisse actions in the game world
- Initial project setup: Phaser 3 + TypeScript + Vite
- Core scenes:
BootScene,GameScene,UIScene - Systems:
BuildingSystem,CameraSystem,FarmingSystem,PlayerSystem,ResourceSystem,VillagerSystem,WorldSystem - Utilities: simplex-noise wrapper, pathfinding
StateManagerfor central game stateNetworkAdapterfor multiplayer/sync layer