Commit Graph

5 Commits

Author SHA1 Message Date
Brian Fertig c067a35245 feat: add BT_level1 and new overlay types (cell, wsmi)
Add new level BT_level1.json featuring guards, enemies, and interactive elements.
Introduce "cell" and "wsmi" overlay configurations in src/config/overlays.json.
Update overlay textures (overlays.png, overlays.psd) to support the new overlay frames.
2026-07-04 22:35:52 -06:00
Brian Fertig f38e6ba299 feat: data-driven weapon system, projectiles, and enemy AI
Replace hitscan shooting with flying projectiles and introduce a
data-driven weapons.json supporting 8 weapons (melee through double
shotgun) with per-weapon stats for damage, spread, cooldown, ammo,
and explosions.

Enemies patrol authored waypoint loops and engage on sight using
line-of-sight checks, firing skill-based weapon shots with reaction
delays and accuracy scaling (skill 1–10). Each enemy now uses a
13-frame animation sheet (front/left/right/back, walk variants,
aim, fire, pain, dying, dead) with procedural placeholder art per
pose.

Player gains per-weapon ammo pools, number-key weapon switching,
melee combat, and death/restart with score carry-forward. HUD shows
weapon viewmodels, kill notifications, hurt flash, and "YOU DIED"
overlay. Explosive weapons spawn expanding fireball VFX.

New assets: per-enemy sprite sheets, expanded pickups sheet (16
frames), nerf gun HUD images.
2026-07-02 18:11:10 -06:00
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
Brian Fertig 8565ed34ec first commit 2026-06-30 22:54:04 -06:00