# Phase 9.0R4 Second-Cycle Adaptation Runtime Contract ## State Machine ```text first_battle -> first_result_diagnosis_and_coin -> adaptation_unselected -> adaptation_selected -> second_battle -> second_result ``` `first_result_diagnosis_and_coin` commits the existing Steady `B0/R1/Q0` victory Coin exactly once. Viewing or leaving any page does not mutate Coin. The adaptation is reversible until `Begin second battle`; after that it is locked for the encounter. ## First Result The cause line is derived only from committed P9.0R3 facts: - Hearthguard: first strike `-18`, explicitly blocked; - Wayrunner: first strike `-12`, explicitly evaded/reduced; - Farstring: one rear hit `-36` opened the finish; - Kindhand: one heal `+12`, capped by current front HP. The player sees the cause before `+20 Coin`, current front HP and the next action. The result does not claim casualty, reward draft, Market or persistence. ## Adaptation Choice | Stable ID | Player-facing promise | Tradeoff | Recommended when | |---|---|---|---| | `EQ-002` | Anchor the front against the veteran's first push; first hit becomes `-10` | The next front basic resolves after the rear action | No rear healer is present or survival is preferred | | `EQ-061` | Resolve the first front basic before the veteran strikes | Full `-30` strike lands and the second front basic is delayed | Kindhand can recover the hit or speed is preferred | Recommendation is explanatory, never selection. Both buttons remain equally reachable and the selected state can be changed before commit. ## Second Battle Event Map ### `EQ-002` safer route 1. both lines enter; 2. veteran telegraphs a pushing strike; 3. Frontpin resists displacement and the front commits `100 -> 90` (`-10`); 4. Farstring commits enemy `100 -> 64` (`-36`) or Kindhand commits front `90 -> 100` (`+10`, exact capped heal); 5. delayed front/rear coordination commits enemy to `34`; 6. finisher commits enemy `34 -> 0`. ### `EQ-061` faster route 1. both lines enter; 2. Early Bell advances the first front basic and commits enemy `100 -> 72` (`-28`) before the strike; 3. the full pushing strike commits front `100 -> 70` (`-30`); 4. Farstring commits enemy `72 -> 36` (`-36`) or Kindhand commits front `70 -> 82` (`+12`); 5. the delayed second front basic commits enemy to `24`; 6. finisher commits enemy to `0`. Every HP mutation emits one matching P9.0R3 feedback payload. Non-mutating telegraph/recovery states emit no number. Existing animations may be retimed or reordered but their source frames cannot change. ## Presentation - Result and preparation remain battlefield scenes, not receipt tables or nested cards. - The two loan choices read as physical tactical plinths with a familiar shield and bell/tempo symbol, exact effect, cost `借用/Loan`, and one tradeoff. - The known threat and current two-person squad stay visible with the choice. - Second result leads with `更稳/Safer` or `更快/Faster`, then shows exact front HP and elapsed time. It never says one route is globally best. - `844x390` is the primary fast-preview viewport; content must not require scrolling. Portrait retains the rotate notice. ## Preview Evidence - Focused test covers once-only Coin, no preselection, selection revision, commit lock, both route event maps, exact HP, distinct elapsed time, Restart and Home cleanup. - One normal-render `844x390` Simplified-Chinese route captures first result, unselected adaptation, selected adaptation, second battle and second result. - Logs are scanned for script, parse/resource/import, assertion, ObjectDB and cleanup markers. - The exported H5 is labeled preview. It is not immutable candidate evidence.