bglga/TODO/GAL-55.md
Harald Hoyer 365e3a7cc4 chore(todo): add acceptance criteria and test hints to open issues
Flesh out the 14 still-open issues (GAL-34/35/36/37, 40/41, 43, 46/47/48/49,
52/53/55) with explicit acceptance criteria and concrete integration test
hints that reference existing types and headless tooling, so future work
on these tickets has a clear definition of done.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-07 09:53:09 +02:00

1.3 KiB

id title status parent labels
GAL-55 Add Press R to Restart message and restart logic Todo GAL-50
polish
ui

GAL-55: Add a "Press R to Restart" message to the GameOver screen and implement restart logic

Add a "Press R to Restart" message to the GameOver screen and implement restart logic.

Acceptance criteria

  • "Press R to Restart" rendered as part of GameOverUI (RestartMessage component already exists in components.rs).
  • Pressing R while in GameState::GameOver transitions back to GameState::Playing.
  • On restart, these reset to defaults: Score, PlayerLives, CurrentStage, FormationState, AttackDiveTimer, EnemySpawnTimer, RestartPressed.
  • On restart, all Enemy, Bullet, EnemyBullet, Explosion, and TractorBeam entities are despawned.
  • Player respawns at default position with invincibility window.
  • R is ignored in Playing and StartMenu states.

Integration test hints

  • Build App in GameOver; insert a fake Score = 1234, CurrentStage = 4; simulate KeyCode::KeyR press via ButtonInput<KeyCode>; tick; assert state is Playing and resources reset.
  • Pre-spawn enemies/bullets/explosions before restart; after restart tick, assert their entity counts are zero.
  • Negative test: send KeyR while in Playing; assert no resource reset and no state change.