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>
25 lines
1.1 KiB
Markdown
25 lines
1.1 KiB
Markdown
---
|
|
id: GAL-52
|
|
title: Display Score, Lives, and Stage on screen using bevy_ui
|
|
status: Todo
|
|
parent: GAL-50
|
|
labels: [polish, ui]
|
|
---
|
|
|
|
# GAL-52: Display Score, Lives, and Stage on the screen using `bevy_ui`
|
|
|
|
Display Score, Lives, and Stage on the screen using `bevy_ui`.
|
|
|
|
## Acceptance criteria
|
|
|
|
- [ ] HUD shows `Score`, `PlayerLives`, and `CurrentStage` as on-screen `Text` nodes via `bevy_ui`.
|
|
- [ ] HUD updates each frame the underlying resource changes (use `Changed<T>` filters or run-conditions).
|
|
- [ ] HUD is hidden (or not spawned) during `StartMenu`; visible during `Playing` and `GameOver`.
|
|
- [ ] Window title is no longer the source of truth for these values (kept only as debug, or removed — pick one).
|
|
- [ ] Layout survives window resize without overlapping the play field.
|
|
|
|
## Integration test hints
|
|
|
|
- Build `App`, mutate `Score` resource, run schedule one tick, query for the score `Text` component, assert its content includes the new score string.
|
|
- Transition into `StartMenu`; assert HUD nodes have `Display::None` or are despawned.
|
|
- Visual smoke test via `nix run .#take-screenshots` after resource changes; eyeball that text positions are sensible.
|