bglga/TODO.md
Harald Hoyer 9d80626cc6 feat: add scrolling starfield background
Add 150 stars with randomized positions, sizes, speeds, and brightness.
Stars scroll downward with parallax depth effect and wrap around at
screen edges. Also fixes Bevy 0.13 API issues in game_state.rs
(KeyCode::R → KeyR, Input → ButtonInput).
2026-05-06 15:05:32 +02:00

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.
* [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.