diff --git a/TODO.md b/TODO.md index f21d7d7..ddb0b72 100644 --- a/TODO.md +++ b/TODO.md @@ -2,67 +2,67 @@ **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. +* [x] **GAL-1: Player Lives** + * [x] GAL-2: Add a `PlayerLives` resource. + * [x] GAL-3: Decrement lives on collision. + * [x] GAL-4: Implement player destruction and respawn with temporary invincibility. +* [x] **GAL-5: Game Over State** + * [x] GAL-6: Use Bevy's `States` (`Playing`, `GameOver`). + * [x] GAL-7: Transition to `GameOver` when lives reach zero. + * [x] GAL-8: Display a "Game Over" message. +* [x] **GAL-9: Scoring** + * [x] GAL-10: Add a `Score` resource. + * [x] GAL-11: Increment score when an enemy is hit. +* [x] **GAL-12: Levels/Stages** + * [x] GAL-13: Add `CurrentStage` and `StageConfigurations` resources. + * [x] GAL-14: Define criteria for clearing a stage. + * [x] GAL-15: 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. +* [x] **GAL-16: Enemy Formations** + * [x] GAL-17: Define target positions for formations (`FormationLayout`). + * [x] GAL-18: Enemies have an `Entering` state to fly to their position. + * [x] GAL-19: Enemies have an `InFormation` state. +* [x] **GAL-20: Enemy Attack Dives** + * [x] GAL-21: Enemies have an `Attacking` state with different `AttackPattern`s (Swoop, Direct, Kamikaze). + * [x] GAL-22: Periodically trigger random enemies to start an attack dive. + * [x] GAL-23: Enemies fire bullets during their dives. + * [x] GAL-24: Enemies are despawned when they fly off-screen after an attack. +* [x] **GAL-25: Enemy Variety** + * [x] GAL-26: `EnemyType` enum (`Grunt`, `Boss`). + * [x] GAL-27: 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. +* [ ] **GAL-28: Boss Galaga & Capture Beam** + * [x] GAL-29: Create a "Boss" enemy type. + * [x] GAL-30: Implement the tractor beam attack logic (`boss_capture_attack` system). + * [x] GAL-31: Player has a `Captured` component when hit by the beam. + * [x] GAL-32: Boss has a `ReturningWithCaptive` state to go back to the formation. + * [ ] GAL-33: Improve the tractor beam visual effect (currently a simple rectangle). +* [ ] **GAL-34: Dual Fighter (Rescuing Captured Ship)** + * [ ] GAL-35: Allow the player to shoot a Boss that is holding a captured ship. + * [ ] GAL-36: Implement the logic to free the captured ship upon shooting the Boss. + * [ ] GAL-37: Implement the dual fighter mode (controlling two ships, firing two bullets). +* [ ] **GAL-38: Challenging Stages** + * [ ] GAL-39: Implement a special stage type (e.g., every 3-4 levels). + * [ ] GAL-40: Design and implement intricate flight patterns for enemies that do not shoot. + * [ ] GAL-41: 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. - * [x] 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. +* [ ] **GAL-42: Visuals** + * [ ] GAL-43: Replace placeholder geometric shapes with actual sprites. + * [ ] GAL-44: Add explosion animations/effects. + * [x] GAL-45: Implement a scrolling starfield background. +* [ ] **GAL-46: Audio** + * [ ] GAL-47: Integrate `bevy_audio`. + * [ ] GAL-48: Add sound effects (shooting, explosions, player death, tractor beam, etc.). + * [ ] GAL-49: Add background music. +* [ ] **GAL-50: UI** + * [x] GAL-51: Display Score, Lives, and Stage in the window title. + * [ ] GAL-52: Display Score, Lives, and Stage on the screen using `bevy_ui`. + * [ ] GAL-53: Implement a High Score system (saving/loading). + * [x] GAL-54: Create a Start Menu state with a "Start Game" button. + * [ ] GAL-55: Add a "Press R to Restart" message to the `GameOver` screen and implement restart logic.