60 lines
2.2 KiB
Markdown
60 lines
2.2 KiB
Markdown
# Phase 9.0R9A Automatic Formation Runtime Contract
|
|
|
|
## State Map
|
|
|
|
```text
|
|
MAIN_MENU -> FIRST_MISSION -> RECRUIT_SELECTION
|
|
RECRUIT_SELECTION -> FORMATION_REVIEW
|
|
FORMATION_REVIEW -> RECRUIT_SELECTION
|
|
FORMATION_REVIEW -> BATTLE
|
|
```
|
|
|
|
`FRONT_SELECTION` and `REAR_SELECTION` remain historical enum values only and
|
|
must not appear in the player path.
|
|
|
|
## Stable Controls
|
|
|
|
- `OpenRecruitSelectionButton`
|
|
- `Recruit_Hearthguard`
|
|
- `Recruit_Wayrunner`
|
|
- `Recruit_Farstring`
|
|
- `Recruit_Kindhand`
|
|
- `ReviewFormationButton`
|
|
- `ReviseRecruitSelectionButton`
|
|
- `CommitFormationButton`
|
|
|
|
Every Recruit button toggles that person. Review is disabled unless the count
|
|
is exactly two. When two are selected, an unselected third button is disabled
|
|
and the page says to remove one member first.
|
|
|
|
## Transaction
|
|
|
|
- New Game and mission create zero Recruit selections.
|
|
- Selection order does not determine field order.
|
|
- Duplicate selection is impossible.
|
|
- Deselection never removes the other member.
|
|
- Review calls deterministic automatic ordering once and displays the result.
|
|
- Returning to selection preserves both people but does not commit.
|
|
- Commit requires two selected, a valid automatic order and commit count zero.
|
|
- Home/confirmed Restart clear selected people, assigned order and commit count.
|
|
|
|
## Battle Compatibility
|
|
|
|
- Standard cross-role pairs preserve existing R3 first-battle values.
|
|
- Hearthguard/Wayrunner: Hearthguard leads; Wayrunner performs a second-action
|
|
flank counter rather than being mislabeled as a healer.
|
|
- Farstring/Kindhand: Farstring is the exposed lead; Kindhand performs the
|
|
existing recovery action. The result explicitly communicates the risk of a
|
|
fragile lead.
|
|
- All six pairs reach Victory without missing animation/resource errors.
|
|
|
|
## Evidence
|
|
|
|
- Domain matrix covers all six unordered pairs in both click orders and proves
|
|
identical automatic field order.
|
|
- Parsed ScreenTouch covers select, deselect, capacity, review, revise and one
|
|
commit with fallback/direct zero.
|
|
- Normal render covers zero/one/two selections, full capacity, both exceptional
|
|
reviews, English/130%, Restart and representative exceptional battle states.
|
|
- R8 front door and R1-R7 standard-pair regressions remain green.
|