Victory, defeat, and the results screen #12

Open
opened 2026-08-06 21:51:50 +00:00 by icub3d · 0 comments
Owner

End the mission and report it. The minimum that makes the slice a game rather than a
sandbox.

Scope

  • Objective check: the mission ends when one side has no living units.
  • Transition to GameState::Results carrying the outcome.
  • A minimal results screen: won or lost, turns taken, units lost, and a route back to
    the main menu.

Acceptance criteria

  • The victory check is part of resolution, not a UI system, so the headless test can
    observe it.
  • Mission entities are fully torn down on leaving GameState::Mission — no leaked
    entities across a second run.
  • Starting a second mission from the menu works and is unaffected by the first.
  • The results screen is built from src/ui/widget.rs builders and theme tokens.
End the mission and report it. The minimum that makes the slice a *game* rather than a sandbox. ## Scope - Objective check: the mission ends when one side has no living units. - Transition to `GameState::Results` carrying the outcome. - A minimal results screen: won or lost, turns taken, units lost, and a route back to the main menu. ## Acceptance criteria - [ ] The victory check is part of resolution, not a UI system, so the headless test can observe it. - [ ] Mission entities are fully torn down on leaving `GameState::Mission` — no leaked entities across a second run. - [ ] Starting a second mission from the menu works and is unaffected by the first. - [ ] The results screen is built from `src/ui/widget.rs` builders and `theme` tokens.
Sign in to join this conversation.
No description provided.