- Add StartMenu as the default game state - Create StartMenuUI and StartButton components - Implement menu UI with BGLGA title and Start Game button - Add button interaction system with hover effects - Set up proper state transitions from menu to game - Update TODO.md to mark task as completed 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
68 lines
3.2 KiB
Markdown
68 lines
3.2 KiB
Markdown
# TODO
|
|
|
|
**1. Core Gameplay Loop & State Management**
|
|
|
|
* [x] **Player Lives**
|
|
* [x] Add a `PlayerLives` resource.
|
|
* [x] Decrement lives on collision.
|
|
* [x] Implement player destruction and respawn with temporary invincibility.
|
|
* [x] **Game Over State**
|
|
* [x] Use Bevy's `States` (`Playing`, `GameOver`).
|
|
* [x] Transition to `GameOver` when lives reach zero.
|
|
* [x] Display a "Game Over" message.
|
|
* [x] **Scoring**
|
|
* [x] Add a `Score` resource.
|
|
* [x] Increment score when an enemy is hit.
|
|
* [x] **Levels/Stages**
|
|
* [x] Add `CurrentStage` and `StageConfigurations` resources.
|
|
* [x] Define criteria for clearing a stage.
|
|
* [x] Advance to the next stage with increasing difficulty.
|
|
|
|
**2. Enemy Behavior - Formations & Attack Patterns**
|
|
|
|
* [x] **Enemy Formations**
|
|
* [x] Define target positions for formations (`FormationLayout`).
|
|
* [x] Enemies have an `Entering` state to fly to their position.
|
|
* [x] Enemies have an `InFormation` state.
|
|
* [x] **Enemy Attack Dives**
|
|
* [x] Enemies have an `Attacking` state with different `AttackPattern`s (Swoop, Direct, Kamikaze).
|
|
* [x] Periodically trigger random enemies to start an attack dive.
|
|
* [x] Enemies fire bullets during their dives.
|
|
* [x] Enemies are despawned when they fly off-screen after an attack.
|
|
* [x] **Enemy Variety**
|
|
* [x] `EnemyType` enum (`Grunt`, `Boss`).
|
|
* [x] Different behaviors, points, and colors based on type.
|
|
|
|
**3. Advanced Galaga Mechanics**
|
|
|
|
* [ ] **Boss Galaga & Capture Beam**
|
|
* [x] Create a "Boss" enemy type.
|
|
* [x] Implement the tractor beam attack logic (`boss_capture_attack` system).
|
|
* [x] Player has a `Captured` component when hit by the beam.
|
|
* [x] Boss has a `ReturningWithCaptive` state to go back to the formation.
|
|
* [ ] Improve the tractor beam visual effect (currently a simple rectangle).
|
|
* [ ] **Dual Fighter (Rescuing Captured Ship)**
|
|
* [ ] Allow the player to shoot a Boss that is holding a captured ship.
|
|
* [ ] Implement the logic to free the captured ship upon shooting the Boss.
|
|
* [ ] Implement the dual fighter mode (controlling two ships, firing two bullets).
|
|
* [ ] **Challenging Stages**
|
|
* [ ] Implement a special stage type (e.g., every 3-4 levels).
|
|
* [ ] Design and implement intricate flight patterns for enemies that do not shoot.
|
|
* [ ] Award bonus points for destroying all enemies in the stage.
|
|
|
|
**4. Polish and User Interface**
|
|
|
|
* [ ] **Visuals**
|
|
* [ ] Replace placeholder geometric shapes with actual sprites.
|
|
* [ ] Add explosion animations/effects.
|
|
* [ ] Implement a scrolling starfield background.
|
|
* [ ] **Audio**
|
|
* [ ] Integrate `bevy_audio`.
|
|
* [ ] Add sound effects (shooting, explosions, player death, tractor beam, etc.).
|
|
* [ ] Add background music.
|
|
* [ ] **UI**
|
|
* [x] Display Score, Lives, and Stage in the window title.
|
|
* [ ] Display Score, Lives, and Stage on the screen using `bevy_ui`.
|
|
* [ ] Implement a High Score system (saving/loading).
|
|
* [x] Create a Start Menu state with a "Start Game" button.
|
|
* [ ] Add a "Press R to Restart" message to the `GameOver` screen and implement restart logic.
|