bglga/TODO.md
Harald Hoyer 28e4e53da9 feat: add start menu with interactive button
- 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>
2025-06-27 09:31:03 +02:00

3.2 KiB

TODO

1. Core Gameplay Loop & State Management

  • Player Lives
    • Add a PlayerLives resource.
    • Decrement lives on collision.
    • Implement player destruction and respawn with temporary invincibility.
  • Game Over State
    • Use Bevy's States (Playing, GameOver).
    • Transition to GameOver when lives reach zero.
    • Display a "Game Over" message.
  • Scoring
    • Add a Score resource.
    • Increment score when an enemy is hit.
  • Levels/Stages
    • Add CurrentStage and StageConfigurations resources.
    • Define criteria for clearing a stage.
    • Advance to the next stage with increasing difficulty.

2. Enemy Behavior - Formations & Attack Patterns

  • Enemy Formations
    • Define target positions for formations (FormationLayout).
    • Enemies have an Entering state to fly to their position.
    • Enemies have an InFormation state.
  • Enemy Attack Dives
    • Enemies have an Attacking state with different AttackPatterns (Swoop, Direct, Kamikaze).
    • Periodically trigger random enemies to start an attack dive.
    • Enemies fire bullets during their dives.
    • Enemies are despawned when they fly off-screen after an attack.
  • Enemy Variety
    • EnemyType enum (Grunt, Boss).
    • Different behaviors, points, and colors based on type.

3. Advanced Galaga Mechanics

  • Boss Galaga & Capture Beam
    • Create a "Boss" enemy type.
    • Implement the tractor beam attack logic (boss_capture_attack system).
    • Player has a Captured component when hit by the beam.
    • 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
    • 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).
    • 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.