Commit Graph

10 Commits

Author SHA1 Message Date
Brian Fertig b7691350e8 Add zone-specific arena theming with dynamic background colors and walking shimmer effects 2026-03-08 13:59:23 -06:00
Brian Fertig 4bcbfbd9c9 Add audio assets and integrate sound effects with enhanced visual feedback 2026-03-08 11:19:16 -06:00
Brian Fertig b17cb86c55 Refactor death pulse effect to BaseEnemy with per-enemy color customization 2026-03-08 09:24:12 -06:00
Brian Fertig e0a6e6d116 Add grid-based death pulse visual effect for enemies 2026-03-07 18:53:47 -07:00
Brian Fertig 802f11430c Refactor BomberEnemy to support distinct explosion behaviors for proximity vs death triggers 2026-03-07 18:08:45 -07:00
Brian Fertig 303956ae4d Add Zones 3-6 with new enemy types (SprayerEnemy, BomberEnemy) and enhanced barrier interaction 2026-03-07 17:55:19 -07:00
Brian Fertig 0a24272c88 Add barrier system with edge traps and interior obstacles
- Introduce `BarrierManager` to handle neon cyberpunk-style barriers on screen edges and optional interior obstacles.
- Edge barriers blink in after a short delay, trap the player if they are inside when solidified (instant death + respawn), and explode when zone waves complete to allow exit.
- Interior barriers block enemies but not the player, adding tactical depth to arena layouts.
- Update `zones.json` with `interiorBarriers` config per zone.
- Adjust player/enemy sprite depths for correct rendering order relative to barriers.
- Integrate barrier collision into physics: player vs all barriers, enemies vs interior only; bullets destroyed on contact with any barrier.
- Refactor zone transitions and exit logic to coordinate barrier activation/destruction animations.
2026-03-07 16:44:05 -07:00
Brian Fertig 7da6459abe refactor(enemies): replace geometric bodies with sprite-based rendering
Replace simple circle graphics with sprite-based enemies using a shared spritesheet. This change introduces:
- A `frameOffset` config to select specific enemy types from the spritesheet.
- An animation system for walking cycles (2-frame loop) and a static death frame.
- A refined hitbox setup using `setCircle` centered within 48x48 frames.
- A visual death sequence: stop movement, show death frame, wait 2s, then fade out.
- HP bar positioning adjusted to account for the new sprite height.

Additionally:
- Added a new `Reticle` UI component that tracks the mouse cursor with rotating rings and hides the OS cursor.
- Updated `GameScene` to load the enemy spritesheet and manage the reticle lifecycle.
2026-03-07 15:55:49 -07:00
Brian Fertig ea0a95c4e5 Refactor Player entity to use sprite-based rendering with animations
- Replaced simple circle/rectangle graphics with a spritesheet-based player sprite.
- Added animation definitions for idle, walk, idle-gun, and walk-gun states.
- Implemented state tracking (`_isMoving`, `_isShooting`) to drive animation switching.
- Adjusted barrel position calculation to use `GUN_TIP_DIST` for bullet spawning.
- Updated invincibility tween and cleanup logic to target the new sprite object.
- Added sprite loading in GameScene preload phase.
2026-03-07 12:54:37 -07:00
Brian Fertig 8dc7762aba intial commit 2026-03-07 11:40:57 -07:00