Files
nissefolk/CHANGELOG.md
tekki mariani 41097b4765 add ESC menu (Issue #7)
ESC key follows priority stack: confirm dialog → context menu →
build menu → villager panel → ESC menu → open ESC menu.
Menu items: Save Game, Load Game, Settings (placeholder), New Game
(with confirmation dialog).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-21 14:13:53 +00:00

2.6 KiB

Changelog

All notable changes to this project will be documented here. Format follows Keep a Changelog.


[Unreleased]

Added

  • ESC Menu: 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 → 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.worldY in 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.html with ZoomTestScene (Phaser default) and ZoomMouseScene (zoom-to-mouse) for camera behaviour analysis; file-logging via Vite middleware to game-test.log

Fixed

  • getCenterWorld() in CameraSystem returned wrong world coordinates at zoom ≠ 1; corrected from scrollX + width/(2·zoom) to scrollX + 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
  • StateManager for central game state
  • NetworkAdapter for multiplayer/sync layer