- 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>
3.2 KiB
3.2 KiB
TODO
1. Core Gameplay Loop & State Management
- Player Lives
- Add a
PlayerLivesresource. - Decrement lives on collision.
- Implement player destruction and respawn with temporary invincibility.
- Add a
- Game Over State
- Use Bevy's
States(Playing,GameOver). - Transition to
GameOverwhen lives reach zero. - Display a "Game Over" message.
- Use Bevy's
- Scoring
- Add a
Scoreresource. - Increment score when an enemy is hit.
- Add a
- Levels/Stages
- Add
CurrentStageandStageConfigurationsresources. - Define criteria for clearing a stage.
- Advance to the next stage with increasing difficulty.
- Add
2. Enemy Behavior - Formations & Attack Patterns
- Enemy Formations
- Define target positions for formations (
FormationLayout). - Enemies have an
Enteringstate to fly to their position. - Enemies have an
InFormationstate.
- Define target positions for formations (
- Enemy Attack Dives
- Enemies have an
Attackingstate with differentAttackPatterns (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.
- Enemies have an
- Enemy Variety
EnemyTypeenum (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_attacksystem). - Player has a
Capturedcomponent when hit by the beam. - Boss has a
ReturningWithCaptivestate 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.
- Integrate
- 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
GameOverscreen and implement restart logic.