93 lines
3.9 KiB
Markdown
93 lines
3.9 KiB
Markdown
# Phase 9.0R9 First Company Runtime Contract
|
|
|
|
## State Map
|
|
|
|
```text
|
|
MAIN_MENU -> FIRST_MISSION
|
|
FIRST_MISSION -> FRONT_SELECTION
|
|
FRONT_SELECTION -> REAR_SELECTION
|
|
REAR_SELECTION -> FORMATION_REVIEW
|
|
FORMATION_REVIEW -> FRONT_SELECTION
|
|
FORMATION_REVIEW -> REAR_SELECTION
|
|
FORMATION_REVIEW -> BATTLE
|
|
onboarding Home/confirmed Restart -> MAIN_MENU
|
|
```
|
|
|
|
These are separate page states. The old `YARD` state may remain as a historical
|
|
enum value for regression compatibility, but New Game may not route through its
|
|
all-at-once four-Recruit dock.
|
|
|
|
## Stable Controls
|
|
|
|
| Page | Required controls |
|
|
|---|---|
|
|
| First mission | `OpenFrontSelectionButton` |
|
|
| Front selection | `Front_Hearthguard`, `Front_Wayrunner`, `ContinueRearSelectionButton` |
|
|
| Rear selection | `Rear_Farstring`, `Rear_Kindhand`, `ReviewFormationButton` |
|
|
| Formation review | `ReviseFrontButton`, `ReviseRearButton`, `CommitFormationButton` |
|
|
|
|
Every page also keeps the existing Home, Restart and sound controls. Continue,
|
|
Review and Commit are disabled until their required choices exist.
|
|
|
|
## Role Copy Authority
|
|
|
|
- **Hearthguard / shield guard:** steady front response; blocks the first heavy
|
|
hit and finishes with more health than the evasive alternative.
|
|
- **Wayrunner / runner:** evasive front response; avoids part of the strike and
|
|
counters instead of relying on a shield.
|
|
- **Farstring / archer:** rear damage; fires an early ranged hit that shortens
|
|
the enemy's remaining health.
|
|
- **Kindhand / healer:** rear recovery; restores the front after the enemy hit.
|
|
|
|
Copy must describe the visible first-battle behavior without introducing
|
|
unimplemented stats, percentages, equipment or promotion promises.
|
|
|
|
## Transaction Semantics
|
|
|
|
- `start_new_game` clears the previous transient experience once and opens
|
|
`FIRST_MISSION` with both choices empty and commit count zero.
|
|
- The mission page mutates no Recruit choice.
|
|
- Front selection rejects every non-front profession. Rear selection rejects
|
|
every non-rear profession.
|
|
- Selecting another legal profession replaces only that slot.
|
|
- Moving forward and backward does not commit or clear valid choices.
|
|
- Review has no default action and displays both chosen members.
|
|
- Commit is legal only on review with both valid choices and commit count zero.
|
|
- One legal commit increments the count once, resets first-battle runtime state
|
|
and opens the preserved automatic `BATTLE`; repeats are rejected.
|
|
- Home and confirmed Restart run full transient cleanup, including the commit
|
|
counter, and return to Main Menu.
|
|
|
|
## Formation Review
|
|
|
|
The review must answer, without requiring stat knowledge:
|
|
|
|
1. Who stands in front and what response will be visible?
|
|
2. Who stands behind and what support will be visible?
|
|
3. What happens after commit? Combat runs automatically and tests the line.
|
|
4. How can the player change the plan? Revise Front or Revise Rear before
|
|
committing.
|
|
|
|
## Presentation
|
|
|
|
- Use the accepted illustrated Guild Yard as the world surface.
|
|
- Each selection page shows only its two relevant Recruit choices, large role
|
|
portraits and one short cause-and-effect explanation.
|
|
- Selected state uses a visible gold border/check mark and never depends on
|
|
color alone.
|
|
- Review composes the two selected actors in front/rear spatial order rather
|
|
than presenting only a text form.
|
|
- Primary landscape is `844x390`, with no scrolling and 44px minimum actions.
|
|
- English at 130% must remain fully visible. Portrait keeps the rotate prompt.
|
|
|
|
## Evidence
|
|
|
|
- Domain test covers invalid professions, no preselection, replacement,
|
|
preserved Back behavior, both commit prerequisites, exactly-once commit, all
|
|
four legal formations and Home/Restart cleanup.
|
|
- Parsed-ScreenTouch test covers mission -> front -> rear -> review -> revise ->
|
|
review -> commit without direct callbacks or fallback interaction.
|
|
- Normal-render capture covers mission, both unselected/selected role pages,
|
|
review, English/130% review and Home/Restart confirmation layout.
|
|
- R8 front door and R3-R7 focused regressions remain green.
|