Commit Graph

2 Commits

Author SHA1 Message Date
Brian Fertig 1c3bed3beb feat: add door/keys system, patrol paths, and data-driven pickups
- Implement sliding door mechanics (open/close with E key, auto-close, locked doors)
- Add key system (gold/silver keys) with data-driven pickup definitions in pickups.json
- Add enemy patrol path editor in editor.html (click to select, add points, move/remove)
- Implement enemy patrol AI that follows authored paths in a loop
- Migrate pickups from hardcoded to data-driven config (effect, amount, key grants)
- Update raycaster to handle door openness for rendering and collision
- Add HUD key chips display and "door locked" messages
- Add Gold Door and Silver Door wall types with matching key pickups
- Update level1 with patrol paths and gold key pickup placement
2026-07-01 23:08:48 -06:00
Brian Fertig 724d4fd1e8 feat: data-driven content with JSON configs, textured walls, and editor overhaul
- Move walls, overlays, items, enemies, and campaigns to JSON registries in
  src/config/ (with offline fallbacks baked into registry.js)
- Upgrade level format to v2: add `overlays` and `items` arrays; migrate
  v1 `"enemy"` types to the default from enemies.json
- Raycaster: full texture mapping via baked canvas textures, overlay compositing,
  and distance/side shading
- SpriteRenderer: texture-based billboards for enemies, pickups, and decorative
  items with per-def scale and flash textures
- Editor: palette with dropdowns populated from config JSONs (wall/overlay/item/
  enemy/start/pickup/erase); paint overlays on walls, items on floors; show
  overlay triangles, item squares, enemy circles in the grid
- GameMap: overlay tracking, blocking-item collision via isBlocked, overlayAt/
  setOverlay helpers
- Player: use isBlocked so blocking items stop movement like walls
- Add MenuScene for campaign selection from campaigns.json; victory screen
  gains "Return to Menu" button
- Bump RENDER_* to 960×600 (1:1 with display canvas)
- Update levels to v2 format with specific enemy types, overlays, and items
2026-07-01 22:14:37 -06:00