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.2 KiB
Markdown
25 lines
1.2 KiB
Markdown
---
|
|
id: GAL-41
|
|
title: Award bonus points for clearing the special stage
|
|
status: Todo
|
|
parent: GAL-38
|
|
labels: [gameplay, advanced-mechanics]
|
|
---
|
|
|
|
# GAL-41: Award bonus points for destroying all enemies in the stage
|
|
|
|
Award bonus points for destroying all enemies in the stage.
|
|
|
|
## Acceptance criteria
|
|
|
|
- [ ] Bonus is awarded **only** when every enemy spawned during the special stage is destroyed before the stage ends.
|
|
- [ ] Partial clears award nothing (no proportional credit).
|
|
- [ ] Bonus value is configurable per stage via `StageConfig` (or equivalent), defaulting to a Galaga-style 10000.
|
|
- [ ] Bonus applies to `Score` resource on stage transition, not on the last kill (so final HUD reads cleanly).
|
|
- [ ] Visible feedback (text overlay or window title) so player knows they earned the bonus.
|
|
|
|
## Integration test hints
|
|
|
|
- World where `is_special_stage(current) == true` with N enemies; despawn all N via simulated bullet hits; advance to next stage; assert `Score` increased by exactly the configured bonus.
|
|
- Negative case: leave 1 enemy alive; advance stage; assert `Score` unchanged by the bonus mechanism.
|
|
- Property-style: vary N in {1, 5, 20}; assert bonus paid once, regardless of N.
|