Commit Graph

5 Commits

Author SHA1 Message Date
Brian Fertig dc7f18c17c Add death/explosion visual effects and impact sparks
- Implement `AlienShip.explode()` with cyan flash, shrinking spin animation and a shockwave ring.
- Enhance `Player.die()` to flash white, hide the sprite, and spawn shattering shard graphics.
- Introduce `GameScene.spawnImpactSparks()` to create brief yellow spark particles on bullet impacts.
- Update bullet‑asteroid and bullet‑alien collision handling to trigger impact sparks and use the new alien explosion.
- Minor refactor to use the new visual effects for a more polished death sequence.
2026-02-21 09:07:56 -07:00
Brian Fertig 9a40e9a23a Add BootScene and MenuScene, update game initialization and UI
- Import and register new `BootScene` and `MenuScene` in `main.js`.
- Create `BootScene` to generate all shared textures once at startup and then start the menu.
- Implement full-featured `MenuScene` with background asteroids, wandering alien, title, controls panel, and start button (including ENTER key support).
- Remove texture generation logic and helper from `GameScene`; it now relies on textures created by `BootScene`.
- Change game‑over handling to return to the menu instead of restarting the game.
2026-02-21 08:27:35 -07:00
Brian Fertig 33d340ef10 Add alien‑ship warp‑out effect and bullet ownership handling
- Added `warpOut()` to `AlienShip` with spin‑shrink animation and black‑hole ring visual.
- Modified `spawnAlienBullet` to pass the firing ship to `Bullet`.
- Extended `Bullet` constructor with `ownerEntity` to store the originating `AlienShip`.
- Updated collision callbacks in `GameScene` to trigger `warpOut()` on the owning ship when its bullet hits the player or when the player collides with an alien, and to remove the ship from the alien list.
- Fixed overlap order for alien bullets vs. player.

These changes give alien ships a dramatic disappearance animation and ensure proper cleanup after collisions.
2026-02-20 22:16:39 -07:00
Brian Fertig 9ac607d2e7 Remove unused review sub‑agent and clarify ES6 import/export usage; differentiate bullet speeds for player and alien; add `Player.die()` to hide the ship and set immediate invincibility; delay player respawn after a hit; introduce dynamic background‑color changes per level. 2026-02-20 21:51:06 -07:00
Brian Fertig 054166e5b0 initial commit 2026-02-20 21:34:27 -07:00