bglga/TODO.md

4.4 KiB

TODO

1. Core Gameplay Loop & State Management

  • GAL-1: Player Lives
    • GAL-2: Add a PlayerLives resource.
    • GAL-3: Decrement lives on collision.
    • GAL-4: Implement player destruction and respawn with temporary invincibility.
  • GAL-5: Game Over State
    • GAL-6: Use Bevy's States (Playing, GameOver).
    • GAL-7: Transition to GameOver when lives reach zero.
    • GAL-8: Display a "Game Over" message.
  • GAL-9: Scoring
    • GAL-10: Add a Score resource.
    • GAL-11: Increment score when an enemy is hit.
  • GAL-12: Levels/Stages
    • GAL-13: Add CurrentStage and StageConfigurations resources.
    • GAL-14: Define criteria for clearing a stage.
    • GAL-15: Advance to the next stage with increasing difficulty.

2. Enemy Behavior - Formations & Attack Patterns

  • GAL-16: Enemy Formations
    • GAL-17: Define target positions for formations (FormationLayout).
    • GAL-18: Enemies have an Entering state to fly to their position.
    • GAL-19: Enemies have an InFormation state.
  • GAL-20: Enemy Attack Dives
    • GAL-21: Enemies have an Attacking state with different AttackPatterns (Swoop, Direct, Kamikaze).
    • GAL-22: Periodically trigger random enemies to start an attack dive.
    • GAL-23: Enemies fire bullets during their dives.
    • GAL-24: Enemies are despawned when they fly off-screen after an attack.
  • GAL-25: Enemy Variety
    • GAL-26: EnemyType enum (Grunt, Boss).
    • GAL-27: Different behaviors, points, and colors based on type.
      • Colors differ (Grunt red, Boss purple) — enemy.rs:80-83
      • Behaviors differ (Boss has CaptureBeam, distinct SwoopDive) — enemy.rs:254-318
      • Points: Boss awards 300 points (3x Grunt) — bullet.rs:13-14
        • Completed on branch GAL-27, commit 98b74a7

3. Advanced Galaga Mechanics

  • GAL-28: Boss Galaga & Capture Beam
    • GAL-29: Create a "Boss" enemy type.
    • GAL-30: Implement the tractor beam attack logic (boss_capture_attack system).
    • GAL-31: Player has a Captured component when hit by the beam.
    • 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).
      • Completed on branch gal-33-improve-tractor-beam-visual, commit 52b0919 — 2-layer glow beam with pulse animation, 8 unit tests
  • 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).
      • Comment: 2026-05-06 — Status set to In Progress.
      • Comment: 2026-05-06 — Branch: GAL-39, Commit: 9e6d538 — Special stage type implemented: every 3rd level has no enemy attacks.
    • 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

  • GAL-42: Visuals
    • GAL-43: Replace placeholder geometric shapes with actual sprites.
    • GAL-44: Add explosion animations/effects.
      • Branch: gal-44-add-explosion-effects
      • Comment: 2026-05-06 — Implementation complete with commit 2ff561e
    • 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
    • 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).
    • 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.