bglga/TODO/GAL-43.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

25 lines
1.2 KiB
Markdown

---
id: GAL-43
title: Replace placeholder geometric shapes with actual sprites
status: Todo
parent: GAL-42
labels: [polish, visuals]
---
# GAL-43: Replace placeholder geometric shapes with actual sprites
Replace placeholder geometric shapes with actual sprites.
## Acceptance criteria
- [ ] `Player`, `Bullet`, `EnemyBullet`, and both `EnemyType::Grunt` / `EnemyType::Boss` are rendered via `Sprite` components loaded from `assets/`, not coloured meshes.
- [ ] Asset paths centralised (e.g. constants in `constants.rs`) so swapping art is a one-line change.
- [ ] Hitbox sizes either preserved or recalibrated; existing collision tests still pass.
- [ ] Z-ordering preserved (player above starfield, bullets above enemies, beam below player).
- [ ] Falls back gracefully if an asset is missing (warn, do not panic at runtime).
## Integration test hints
- Unit-test `spawn_player` (and equivalents) inserts a `Sprite` component referencing the expected `Handle<Image>`.
- Run `nix run .#take-screenshots -- ./target/debug/bglga 3 6 1 ./shots` before and after; visually compare frames for regressions in placement.
- Existing collision tests: ensure they still pass with the new sprite-derived hitbox sizes (or update constants in `constants.rs` and the tests in lockstep).