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>
1.4 KiB
1.4 KiB
| id | title | status | parent | labels | ||
|---|---|---|---|---|---|---|
| GAL-40 | Design intricate flight patterns for non-shooting enemies | Todo | GAL-38 |
|
GAL-40: Design and implement intricate flight patterns for enemies that do not shoot
Design and implement intricate flight patterns for enemies that do not shoot.
Acceptance criteria
- On a special stage (
is_special_stage(stage_number) == true), enemies follow scripted curved paths (e.g. spline / Bezier / Lissajous), not the formation flow. - These enemies do not call
enemy_shootand never spawnEnemyBullet. - Enemies despawn when their path reaches its end off-screen.
- At least 2 distinct path shapes used in a single special stage for visual variety.
- Difficulty / pattern parameters live in
StageConfigurations(or a new resource) so future stages can compose them.
Integration test hints
- Build a headless
AppwithCurrentStage = 3(first special stage); tick for N seconds; assert: zeroEnemyBulletentities ever spawned, all special-stage enemies eventually despawned (count returns to 0). - Snapshot the path: at fixed intervals record enemy
Transform.translation; assert curvature (e.g. y is non-monotonic to prove it isn't a straight line). - Visual smoke test via
nix run .#take-screenshots -- ./target/debug/bglga 3 6 1 ./shotsafter triggering a special stage; eyeball that paths look intentional.