485 lines
58 KiB
Markdown
485 lines
58 KiB
Markdown
# Aetherbound Guild: Screen And State Map
|
|
|
|
> Authority: complete player-facing landscape navigation, page purposes,
|
|
> interaction states, onboarding, return paths, and endgame presentation.
|
|
>
|
|
> Product source: `.agent-taskgraph/spec.md` revision `design-spec-r3`.
|
|
>
|
|
> Stage: design-only. This document specifies intended presentation; it does
|
|
> not claim implemented behavior, device validation, or human comprehension.
|
|
|
|
## 1. Experience Contract
|
|
|
|
Aetherbound Guild is operated through a repeatable decision path:
|
|
|
|
`review pressure -> inspect offers -> recruit or dismiss when eligible -> equip
|
|
-> reorder the party line -> choose risk -> observe automatic battle ->
|
|
diagnose -> resolve losses and rewards -> adapt`
|
|
|
|
Every player-facing screen answers six questions in its first viewport:
|
|
|
|
1. Where am I in the run?
|
|
2. What changed since I arrived?
|
|
3. What decision is available now?
|
|
4. What does that decision cost or expose?
|
|
5. Can it be reversed?
|
|
6. Where will Back return me?
|
|
|
|
The interface presents one primary action per decision region. Inspection is
|
|
always reversible. Purchases, dismissal, risk commitment, retreat, reward
|
|
selection, recovery expenditure, and destructive data actions show a review
|
|
before they change authoritative state.
|
|
|
|
## 2. Integration Bindings
|
|
|
|
Presentation uses named bindings for values and rules owned by the product or
|
|
content workstreams. A binding is displayed only after its source resolves; the
|
|
UI must not substitute a guessed number, price, formula, or probability.
|
|
|
|
| Binding | Presentation use | Owning authority | Unresolved design state |
|
|
|---|---|---|---|
|
|
| `BIND:RUN_PHASE` | current loop step and legal destinations | core systems | named phase plus `Rules pending integration` in design fixtures |
|
|
| `BIND:DIFFICULTY_RULES` | run setup options, consequences, and postgame compatibility | difficulty/core systems | Begin remains disabled until resolved |
|
|
| `BIND:PROVISIONAL_RECRUIT_OFFERS` | one stable four-offer set, generated Recruit fields, selected stable IDs, and run-creation receipt | recruitment/save | `SYS-005` cannot create a run until exactly four unique complete offers resolve |
|
|
| `BIND:RUN_RESOURCES` | balances, deltas, affordability | economy | label and non-numeric placeholder |
|
|
| `BIND:SHOP_OFFERS` | available recruit and item offers | shop/content | structurally complete sample rows with no authoritative values |
|
|
| `BIND:SHOP_REFRESH` | refresh cost, limit, result policy | economy/shop | disabled action with binding name |
|
|
| `BIND:RECRUIT_TRANSACTION` | price, capacity effect, receipt | recruitment/economy | review skeleton with no commit |
|
|
| `BIND:DISMISSAL_ELIGIBILITY` | total live Recruits across deployed and reserve, operation restrictions, and disabled reason | recruitment/core systems | dismissal remains disabled until eligibility is verified |
|
|
| `BIND:DISMISSAL_OUTCOME` | retained, returned, or lost value | recruitment/economy | consequence field marked unresolved |
|
|
| `BIND:RECRUIT_SCHEMA` | name, profession, trait, attributes, equipment, level, history | content/core systems | field labels remain; missing fields show `Pending` |
|
|
| `BIND:EQUIPMENT_RULES` | slots, eligibility, conflicts, equip result | equipment/content | incompatible reason requires source data |
|
|
| `BIND:ARTIFACT_RULES` | active shared modifiers, acquisition, conflicts, and lifecycle | artifacts/core systems | ledger remains read-only until resolved |
|
|
| `BIND:PARTY_CAPACITY` | current simultaneous deployment and growth | progression/simulation | count area displays binding, never a guessed cap |
|
|
| `BIND:PARTY_ORDER_EFFECTS` | exposure, reach, protection, movement, replacement | battle/core systems | preview lists only sourced effects |
|
|
| `BIND:RISK_OPTIONS` | risk choices, entry costs, known outcomes | run/economy | choice remains unavailable until resolved |
|
|
| `BIND:BATTLE_SNAPSHOT` | actors, time, events, health, status, targets | deterministic battle | battle mock state is labeled non-authoritative |
|
|
| `BIND:BATTLE_SPEEDS` | available playback speeds and restrictions | battle/accessibility | control renders from supplied options |
|
|
| `BIND:RETREAT_OUTCOME` | timing, losses, retained state | failure/economy | review cannot commit while unresolved |
|
|
| `BIND:CASUALTY_OUTCOME` | death, survival, replacement, inventory handling | failure/recruitment | consequence list waits for receipt |
|
|
| `BIND:RESULT_CAUSALITY` | first collapse and downstream effects | battle validator | `Cause unavailable` is an error, not an empty success |
|
|
| `BIND:REWARD_OPTIONS` | choices, eligibility, claim receipt | reward/content | no generic fallback reward |
|
|
| `BIND:RECOVERY_OPTIONS` | legal recovery paths, costs, consequences | recovery/economy | disabled path explains missing rule source |
|
|
| `BIND:RUN_FAILURE` | run-ending condition and retained progression | failure/save | summary waits for authoritative transaction |
|
|
| `BIND:RUN_ABANDONMENT` | explicit voluntary run-close consequence, receipt, and destination | failure/save | destructive action remains disabled until resolved |
|
|
| `BIND:PROGRESSION` | unlocks, prerequisites, receipts | progression/content | unknown future nodes stay undisclosed |
|
|
| `BIND:POSTGAME` | postgame rules, eligibility, modifiers | difficulty/postgame | entry remains locked with sourced requirement |
|
|
| `BIND:SAVE_STATE` | slot health, resume point, migration, conflict | save | safe recovery path only |
|
|
|
|
Binding failure is a presentation error with a safe exit. It never silently
|
|
turns into zero cost, no consequence, a default target, or a successful claim.
|
|
|
|
## 3. Navigation And Shells
|
|
|
|
### 3.1 Global Navigation
|
|
|
|
```text
|
|
Boot
|
|
|- First-launch setup
|
|
`- Title
|
|
|- Continue -> Resume review -> last safe state
|
|
|- Run ledger -> New run / Open run / Save recovery
|
|
|- Records
|
|
|- Postgame (when eligible)
|
|
`- Settings / Credits / Licenses
|
|
|
|
Guild desk
|
|
|- Forecast
|
|
|- Shop -> Offer detail -> Recruit review / Item review
|
|
|- Roster -> Recruit detail -> Dismissal review
|
|
|- Equipment -> Item comparison
|
|
|- Party line -> Readiness review
|
|
|- Active artifacts / Progression / Records
|
|
|- Run abandonment review
|
|
`- Risk board -> Risk review -> Battle opening
|
|
|
|
Battle
|
|
|- Live automatic battle -> Inspect
|
|
|- Pause and speed -> Settings / Retreat review
|
|
|- Background or suspend -> Resume review
|
|
`- Result diagnosis
|
|
|- Casualty resolution (when required)
|
|
|- Reward choice (when earned)
|
|
|- Recovery (when required)
|
|
|- Run abandonment review (explicit player choice)
|
|
|- Run end summary (when ended)
|
|
`- Guild desk / next risk choice
|
|
|
|
Postgame
|
|
|- Final boss settlement -> First Chronicle decision
|
|
|- Oath Season rules review -> New generated run
|
|
|- Challenges and records
|
|
`- Oath Season result -> Oath Season hub / Final Ledger / ordinary New Run
|
|
```
|
|
|
|
### 3.2 Shell Responsibilities
|
|
|
|
| Shell | Persistent information | Primary surface | Persistent exits |
|
|
|---|---|---|---|
|
|
| Title | active language, accessibility shortcut, save health | illustrated guild threshold and current run summary | Settings, run ledger, credits |
|
|
| Guild | run phase, sourced resources, save state | current preparation decision | Shop, roster, equipment, party line, risk board |
|
|
| Battle | objective, playback state, greatest current danger | actors and event projections | Inspect, pause; retreat only through review |
|
|
| Result | outcome, earliest causal event, unresolved transactions | causal timeline and affected recruits | next required resolution only |
|
|
| Records | filter, discovery state, selected entry | readable catalog or history | previous safe screen |
|
|
| Settings | changed values and current category | live preview or setting rows | Apply/Discard and exact caller |
|
|
|
|
Back closes only the top overlay. From a base screen it returns to the named
|
|
parent in the inventory below. Back never commits, claims, purchases, equips,
|
|
reorders, dismisses, retreats, or starts a battle.
|
|
|
|
### 3.3 Overlay Order
|
|
|
|
Only the top layer owns input:
|
|
|
|
`base screen -> inspect drawer -> selection surface -> transaction review ->
|
|
confirmation`
|
|
|
|
A confirmation may not open another confirmation. A system interruption closes
|
|
no layer until the operation result is known. When focus returns, it returns to
|
|
the invoking control or the nearest still-valid sibling.
|
|
|
|
## 4. Input Profiles
|
|
|
|
Each inventory row names one profile. Mouse and keyboard use the controller
|
|
focus order plus pointer shortcuts; no workflow depends on hover.
|
|
|
|
| Profile | Touch | Controller | Focus and cancel rule |
|
|
|---|---|---|---|
|
|
| `NAV` | tap destination; horizontal swipe is optional | directional focus; shoulder buttons change top-level destination | focus enters heading then primary content; Cancel returns to parent |
|
|
| `LIST` | tap row; drag scroll; long press opens the same inspect action | vertical focus; left/right changes defined filter or comparison target | virtualization preserves logical focus by stable item ID |
|
|
| `SELECT` | tap option then explicit action | focus option, South selects, South on primary commits review | selection is not commitment; Cancel clears selection first |
|
|
| `ORDER` | tap Recruit then destination; drag is optional; left moves toward protected rear and right toward exposed front | select Recruit, move focus left/rear or right/front, confirm destination; bumpers shift one logical position | undo is available until readiness commitment; position `0` remains the rightmost exposed front |
|
|
| `BATTLE` | tap actor/event to inspect; dedicated pause and speed controls | bumpers cycle actors/events; face buttons open inspect and pause | focus never enters moving world elements; closing inspect resumes prior playback state |
|
|
| `MODAL` | tap explicit action; destructive hold duration is setting-aware | focus starts on Cancel; destructive action requires second explicit input or hold | Cancel spends nothing and returns focus to invoker |
|
|
| `SETTINGS` | native toggle, segmented control, slider, menu, remap row | predictable row navigation; left/right adjusts; South activates | uncommitted changes prompt Apply/Discard on exit |
|
|
|
|
Input-device change during selection, ordering, remapping, or confirmation
|
|
freezes the transaction and shows the equivalent controls for the new device.
|
|
No resource is spent and no selection is lost.
|
|
|
|
## 5. Complete Screen Inventory
|
|
|
|
The tables are normative. `Empty / loading`, `Error / confirmation`, and
|
|
`Interruption / return` are required for every listed screen, including pages
|
|
that are not expected to be empty during ordinary play.
|
|
|
|
### 5.1 Boot, Title, And Runs
|
|
|
|
| ID / screen / input | Purpose | Primary action and consequence | Empty / loading | Error / confirmation | Interruption / return |
|
|
|---|---|---|---|---|---|
|
|
| `SYS-001` Boot and verification / `NAV` | Verify rules, content, settings, and `BIND:SAVE_STATE` before exposing a run. | None; proceed only after all required sources are valid. | Empty install shows required local content status. Loading names the current verification step and progress. | Recoverable source failure offers Retry; unsafe mismatch offers diagnostics and Exit. No confirmation. | Suspend resumes verification from a safe checkpoint. Return exits to platform only before Title is legal. |
|
|
| `SYS-002` First-launch setup / `SETTINGS` | Establish language, safe area, 100/115/130% text, contrast, reduced motion/flashes, captions, and input prompts. | Apply settings; writes preferences only. | Missing locale falls back to sourced English text and names the missing pack. Loading renders the preview inline with text status. | Invalid safe area or unavailable output is explained. Apply review lists changed accessibility settings. | Device change refreshes prompts without reset. No Back until one usable preset has been applied; later visits return to caller. |
|
|
| `SYS-003` Title / `NAV` | Identify the game, current safe resume state, save health, and legal entry paths. | Continue; opens `SYS-006` and does not immediately advance simulation. | No run promotes New Run. Loading affects only the run summary and keeps Settings usable. | Save warning links to `SYS-007`; offline optional service warning does not block local play. No confirmation. | Suspend returns to the same selection. Back invokes platform exit review; child pages return here. |
|
|
| `SYS-004` Run ledger / `LIST` | Inspect run slots, last safe state, play time, difficulty, and health. | Open selected run; opens resume or recovery review. | No runs explains New Run. Loading uses per-slot skeletons with slot names retained. | Corrupt, incompatible, conflict, and migration states name their safe next action. Delete and overwrite require `SYS-005` or `SET-009` review. | Refresh or cloud interruption keeps the last verified local list. Back returns to Title. |
|
|
| `SYS-005` New run setup / `SELECT` | Review Contract/difficulty, then inspect and compare four stable provisional generated Recruit offers and choose exactly two at no Coin cost before run creation. | With exactly two selected, Review Company opens the creation review; Create Run commits those two stable Recruit IDs, leaves the other two unretained, creates the run, and opens the first Market. | Empty or non-four offer output is invalid, not a legal empty choice. Loading shows four fixed positions, the named operation, and no selectable identity until its stable ID and required fields resolve. | Duplicate IDs, missing Profession/Trait cost, stale offer-set revision, slot collision, unsupported ruleset, or creation failure blocks commit with retained safe setup. Review names both selected Recruits, the two unchosen offers, no-Coin cost, slot, difficulty, and `Revise Recruits`; zero, one, three, or four selected cannot open review. | Touch and controller can inspect, compare, toggle, revise, cancel, and create without drag. Suspend preserves the verified offer-set ID and selected stable IDs without creating a run; resume revalidates the same set. Back before commit returns to Run Ledger; interruption after receipt resumes at the first Market. |
|
|
| `SYS-006` Resume review / `SELECT` | Explain current phase, last committed transaction, unresolved consequence, and resume destination. | Resume; enters the exact safe state from `BIND:SAVE_STATE`. | No active run offers Run Ledger. Loading shows the saved destination name. | Invalid snapshot routes to Save Recovery. Resuming battle requires explicit review of playback state. | Suspend changes nothing. Back returns to Title or Run Ledger, whichever invoked it. |
|
|
| `SYS-007` Save recovery / `SELECT` | Compare valid save lineage, migration, conflict, and known lost interval. | Load selected valid state; changes active lineage and records a receipt. | No valid recovery offers diagnostics and safe deletion path. Loading validates and names each candidate. | Failed recovery cannot overwrite the last valid source. Selection review lists timestamp, ruleset, lost interval, and reversibility. | Suspend retains candidates but makes no choice. Back returns to Run Ledger. |
|
|
| `SYS-008` Credits, licenses, and data notice / `LIST` | Present authorship, licenses, privacy, local/offline behavior, and external-link policy. | Open section; no run consequence. | No search result offers Clear Search. Loading long text retains the current local section. | Missing license is a blocking production defect with diagnostics. External links require destination confirmation. | Suspend preserves scroll position. Back returns to the invoking Title or Settings screen. |
|
|
|
|
#### 5.1.1 `SYS-005` Staged-State Contract
|
|
|
|
`SYS-005` is one player-facing page with staged states. Stage changes preserve
|
|
the page ID, safe-area layout, offer-set ID, selected stable IDs, and focus
|
|
history; they do not create hidden pages or increment the 50-page inventory.
|
|
|
|
| Stage | First-viewport surface | Primary action | Required boundary and return |
|
|
|---|---|---|---|
|
|
| `A` Contract setup | selected Contract, enemy families, boss rule, reward breadth, difficulty consequence, target slot | Load Provisional Offers | no Recruit is selected or generated by a tutorial recommendation; Back returns to Run Ledger |
|
|
| `B` Four-offer choice | four equally weighted stable offer markers; generated name, base Profession job, Trait benefit/cost, rolled read, default equipment read, `No Coin cost`; selected count `0/2..2/2` | Review Company, enabled only at `2/2` | Inspect changes no selection; Compare accepts any two offer IDs; selecting a third is rejected until one current selection is cleared |
|
|
| `C` Creation review | the two selected Recruits together, two explicitly unchosen offer IDs, Contract/difficulty/slot, no-Coin transaction, first-Market handoff | Create Run | `Revise Recruits` returns to stage `B` with the same four offers and two selections; Cancel changes nothing |
|
|
| `D` Pending creation | stable two-Recruit summary, named creation operation, progress and Cancel only when save authority permits | none while pending | duplicate Create input is ignored; failure returns to stage `C` with no run and no changed offer set |
|
|
| `E` Receipt and handoff | created run receipt, selected two as living Company, opening Line capacity, first-Market objective | Open First Market | the two unchosen offers are not retained; first Market must expose two affordable base-Profession hire opportunities without auto-selecting either |
|
|
|
|
Every offer exposes `BIND:RECRUIT_SCHEMA` through one common comparison order:
|
|
generated name, base Profession job and target/reach responsibility, Trait
|
|
benefit, Trait cost, rolled attribute distribution, default Profession
|
|
equipment, and stable offer ID. Rarity, portrait prominence, offer position,
|
|
animation, or a tutorial highlight cannot imply a recommended opening pair.
|
|
|
|
Required invalid and interruption states:
|
|
|
|
- zero, one, two, three, or more than four returned offer rows are an invalid
|
|
source result; the page shows expected `4`, received count, Retry Same Set,
|
|
and Return to Run Ledger, with Create Run unavailable;
|
|
- duplicate stable IDs, unresolved Profession, unresolved Trait benefit/cost,
|
|
or incompatible content revision marks the affected offer and blocks all
|
|
selection commitment;
|
|
- before any stable IDs resolve, loading reserves four positions but exposes no
|
|
generated identity; after an ID resolves, sort/filter/animation cannot move
|
|
it to another position;
|
|
- suspending stages `B` or `C` stores no run creation receipt. Resume restores
|
|
the same verified offer-set ID, selections, comparison pair, and focus. If
|
|
that set cannot be verified, a recoverable error replaces the choice; the UI
|
|
never silently rolls four new offers; and
|
|
- `LOC:PROVISIONAL_SELECTED_COUNT`, `LOC:PROVISIONAL_NO_COIN_COST`,
|
|
`LOC:PROVISIONAL_UNCHOSEN_NOT_RETAINED`, `LOC:REVISE_PROVISIONAL_RECRUITS`,
|
|
and every Profession/Trait comparison require English (`en`) and Simplified
|
|
Chinese (`zh_CN`) fixtures at 100/115/130% without obscuring selection,
|
|
Inspect, Compare, Back, or Create Run.
|
|
|
|
### 5.2 Guild, Shop, And Recruits
|
|
|
|
| ID / screen / input | Purpose | Primary action and consequence | Empty / loading | Error / confirmation | Interruption / return |
|
|
|---|---|---|---|---|---|
|
|
| `HUB-001` Guild desk / `NAV` | Show current pressure, preparation readiness, latest outcome, resources, and all preparation destinations. | Open Risk Board when ready; navigation itself changes nothing. | First run uses a compact opening decision prompt. Loading each status region leaves destinations usable. | Missing mandatory binding blocks only its dependent destination and names the owner. No confirmation. | Suspend records no new transaction. Child pages return here with the changed field highlighted. |
|
|
| `HUB-002` Forecast / `LIST` | Explain upcoming known threats, opportunities, deadline, and information confidence. | Track pressure; changes the Guild desk summary only. | No optional forecast still shows the mandatory next pressure. Loading preserves last verified forecast with timestamp. | Stale or incomplete forecast labels uncertainty instead of inventing certainty. Tracking needs no confirmation. | Suspend preserves filters. Back returns to Guild desk. |
|
|
| `SHP-001` Shop / `LIST` | Compare `BIND:SHOP_OFFERS`, affordability, roster/equipment fit, and refresh consequence. | Inspect offer; purchase is never performed from the list row. | Sold out explains next sourced restock. No matching filter offers Clear Filters. Loading keeps balances visible and rows inert. | Stale, duplicate, or unavailable offers refresh before review. Refresh and any paid action require exact cost confirmation. | Suspend cancels no verified purchase and polls receipts on resume. Back returns to Guild desk. |
|
|
| `SHP-002` Recruit review / `SELECT` | Evaluate generated name, profession, trait benefit/cost, rolled attributes, equipment eligibility, level, survival history, price, and party impact. | Recruit; commits `BIND:RECRUIT_TRANSACTION` after review. | Missing roster comparison states which binding is pending. Loading shows stable recruit identity, never a substitute recruit. | Offer expired, insufficient value, invalid capacity, or duplicate receipt keeps the prior state. Confirmation states exact recruit, cost, capacity effect, and undo policy. | Suspend after commit checks receipt before retry. Cancel returns to Shop on the same stable offer ID. |
|
|
| `SHP-003` Item offer review / `SELECT` | Explain item behavior, eligible recruits, owned conflicts, price, and likely party effect. | Buy; adds the item according to sourced inventory rules. | No eligible recruit is informative, not an error. Loading retains item identity and offer price timestamp. | Expired, unaffordable, full-policy, or duplicate claim states preserve balance. Confirmation lists cost, destination, and conflict. | Suspend reconciles the transaction receipt. Cancel returns to Shop on the offer. |
|
|
| `REC-001` Roster / `LIST` | Scan all cumulative Recruits, deployed status, profession, trait, readiness, equipment issue, and survival history. | Inspect Recruit; changes nothing. | Zero live Recruits is shown only while resolving casualty recovery or Company collapse; it routes to the sourced recovery/closure state, never an ordinary Shop. No filter match offers Clear Filters. Loading uses stable roster order. | Binding failure preserves last verified summary and blocks dependent edits. No confirmation. | Suspend preserves selection and filters. Back returns to Guild desk or the required recovery/closure screen. |
|
|
| `REC-002` Recruit detail / `NAV` | Read one Recruit's sourced identity, mechanical history, current role, equipment, position, and legal actions. | Open Equip or Party Line; navigation changes nothing. Dismiss is a separate destructive action. | Missing optional history states `No recorded battles`. Loading keeps name, stable ID, and the last verified `BIND:DISMISSAL_ELIGIBILITY`. | Deleted/stale Recruit returns to Roster with explanation. When total live Recruits across deployed and reserve equals one, Dismiss remains visible but disabled with `One member must remain`; its explanation directs the player to the separate Run Abandonment Review. | Suspend preserves the selected tab. Back returns to Roster and its prior scroll position. |
|
|
| `REC-003` Dismissal review / `MODAL` | State exactly what leaves the run, what is retained, affected party/equipment references, verified eligibility, and `BIND:DISMISSAL_OUTCOME`. | Dismiss Recruit; permanently applies the sourced transaction only after eligibility is revalidated. | If dismissal is already illegal, the review does not open; Recruit Detail shows the disabled reason and abandonment route. Loading must verify current total live Recruits before the destructive action enables. | Confirmation uses generated name, stable ID, outcome, and an explicit destructive gesture. If a stale confirmation is submitted after the total live count falls to one, reject and close the review with no Recruit mutation and no rebate; Recruit Detail shows `One member must remain` and the separate abandonment action. | Suspend before commit cancels nothing; after commit verifies receipt. Cancel returns to Recruit Detail. |
|
|
|
|
### 5.3 Equipment And Party Preparation
|
|
|
|
| ID / screen / input | Purpose | Primary action and consequence | Empty / loading | Error / confirmation | Interruption / return |
|
|
|---|---|---|---|---|---|
|
|
| `EQP-001` Equipment workbench / `LIST` | Equip a selected recruit while showing eligible inventory and sourced behavior changes. | Equip selected item; changes loadout only after comparison review. | No owned items points to Shop. No eligible item explains profession/slot requirements. Loading retains current loadout. | Incompatible, already used, stale inventory, or ruleset error blocks commit with reason. Confirmation states replaced item, conflicts, and before/after behavior. | Suspend before receipt keeps the old loadout; resume reconciles receipt. Back returns to Recruit Detail or Party Line caller. |
|
|
| `EQP-002` Item comparison / `SELECT` | Compare current and candidate item in the vocabulary used by party preview, battle, and results. | Apply candidate; returns to workbench with changed effects highlighted. | Empty candidate keeps current item and offers Choose Item. Loading never clears current values. | Unknown derived effect is labeled unresolved and blocks Apply when consequence-critical. Confirmation lists all sourced changes and affected saved plan references. | Suspend keeps comparison but performs no equip. Back returns to Equipment with selection intact. |
|
|
| `ART-001` Active artifact ledger / `LIST` | Inspect run-wide artifact rules, acquisition source, interactions, conflicts, and lifecycle without treating them as recruit equipment. | Inspect artifact; changes nothing unless `BIND:ARTIFACT_RULES` supplies a separate legal action. | No active artifacts explains their sourced acquisition route. Loading retains verified active rules. | Missing or conflicting artifact references identify stable IDs and block dependent commitment. Any lifecycle-changing action requires a separate sourced confirmation. | Suspend preserves selection. Back returns to Guild desk or the Reward caller. |
|
|
| `PTY-001` Party line / `ORDER` | Select simultaneous Recruits on one visual line from protected rear at left to exposed front at right, with position `0` at the front and larger numbers extending leftward; preview sourced targeting, protection, reach, healing, movement, and replacement changes. | Save order; changes the prepared party snapshot but does not start battle. | Zero live Recruits is a casualty/Company-collapse settlement state and routes to sourced recovery or run close; ordinary dismissal never creates it. No eligible deployable Recruit explains the recovery or roster reason. Loading preserves last committed order and rear-left/front-right endpoints. | Invalid count, duplicate Recruit, incompatible state, or stale capacity identifies the exact numbered position. Confirmation is required only when removing a currently prepared Recruit has a sourced consequence. | Suspend stores only the last committed order; uncommitted moves are offered to Restore or Discard. Back returns to Guild desk. |
|
|
| `PTY-002` Readiness review / `SELECT` | Summarize the frozen rear-left/front-right order, position numbers, protection contributors toward the right/front, equipment issues, known pressure coverage, Reserve state, and `BIND:PARTY_CAPACITY`. | Accept preparation; records a reviewable battle-plan snapshot. | Empty party blocks acceptance and points to Add Recruits. Loading verifies all stable IDs without reversing visual order. | Invalid or outdated effect opens the owning edit screen. Confirmation states warnings that are allowed but does not overstate outcome prediction. | Suspend preserves the last accepted snapshot. Back returns to Party Line. |
|
|
| `RSK-001` Risk board / `SELECT` | Compare sourced risk options by known pressure, uncertainty, entry cost, reward class, recovery exposure, and current party coverage. | Review selected risk; selection alone changes nothing. | No legal option explains whether preparation, progression, or recovery is required. Loading retains accepted party summary. | Unresolved or stale option cannot be committed. No confirmation until `RSK-002`. | Suspend preserves selection only locally. Back returns to Guild desk. |
|
|
| `RSK-002` Risk commitment / `MODAL` | Present the chosen option, known threats, uncertainty, cost, reward class, retreat implication, and frozen party snapshot. | Begin battle; commits the sourced risk transaction and opens Battle Opening. | Missing party snapshot or option returns to the owning screen. Loading verifies all dependencies. | Stale resources, changed recruit state, or invalid rule reopens the changed source. Confirmation is the page's purpose and names irreversible effects. | Suspend before receipt changes nothing; after receipt resumes at Battle Opening. Cancel returns to Risk Board. |
|
|
|
|
### 5.4 Automatic Battle
|
|
|
|
| ID / screen / input | Purpose | Primary action and consequence | Empty / loading | Error / confirmation | Interruption / return |
|
|
|---|---|---|---|---|---|
|
|
| `BAT-001` Battle opening / `BATTLE` | Establish objective, the visible `No combat respawn / no Reserve auto-entry` rule, player order from protected rear at left to position `0` exposed front at right, enemy-facing direction, first known threat, playback speed, and inspection affordance. | Start observation; releases the deterministic timeline. | Missing actor data blocks start and names the binding. Loading shows verified actor silhouettes, position markers, and progress. | Snapshot mismatch returns safely to Risk Commitment or Resume Review. Start needs explicit input only on first onboarding or resumed state. | Suspend preserves an unopened snapshot. Back is disabled after risk commitment; Pause offers legal exits. |
|
|
| `BAT-002` Live battle / `BATTLE` | Make automatic resolution readable: current objective, permanent encounter casualty rule, urgent cause, actor state, target relation, event sequence, pause, speed, inspect, and retreat access. | Inspect the highlighted cause; battle decisions are diagnostic controls only. | No current event shows `Waiting for next event`, not a blank field. Loading occurs only during safe resume and the timeline does not advance. | Invalid event data pauses and offers Retry Snapshot or Safe Exit. Speed change needs no confirmation; retreat is separated. | Backgrounding or device loss freezes according to save rules and routes to `BAT-006`. Closing inspect restores the prior legal playback state. |
|
|
| `BAT-003` Actor and event inspect / `BATTLE` | Explain selected actor, action, target, status source, order interaction, equipment contribution, and causal neighbors. | Pin event or close; changes no battle result. | No related event states why. Loading pauses inspect data at the selected event ID. | Hidden information states the discovery rule; missing required cause pauses with diagnostics. No confirmation. | Suspend routes to Resume Review with the selected event remembered. Back closes inspect to Live Battle. |
|
|
| `BAT-004` Pause and speed / `BATTLE` | Freeze observation where rules allow, expose playback options, settings, event log, controls, and retreat entry. | Resume; restores the selected legal speed. | No speed alternatives shows one sourced speed. Loading settings does not resume time. | Disallowed speed explains the rule. Applying settings may require its own Apply/Discard review. | App suspend remains paused. Back resumes only when the player explicitly chooses Resume; Settings returns here. |
|
|
| `BAT-005` Retreat review / `MODAL` | State `BIND:RETREAT_OUTCOME`, timing, interruption rule, affected recruits, losses, retained state, and next destination. | Begin retreat; commits only after the full consequence is sourced. | Unavailable retreat shows exact condition and Close. Loading keeps battle paused. | Stale outcome refreshes before confirmation; duplicate input returns the original receipt. Confirmation uses explicit `Begin retreat`. | Suspend before commit returns to Pause; after commit resumes the retreat resolution snapshot. Cancel returns to Pause. |
|
|
| `BAT-006` Battle resume review / `SELECT` | Explain saved time, playback state, pending events, latest committed receipt, and whether retreat resolution is active. | Resume from verified snapshot; never resumes in motion without review. | No resumable battle routes to the last safe Result or Guild state. Loading validates the snapshot. | Invalid snapshot uses save recovery and never starts a partial simulation. Resume confirmation states current speed and pause behavior. | Repeated suspend leaves the battle frozen. Back returns to Title without discarding the snapshot. |
|
|
|
|
### 5.5 Result, Death, Reward, And Recovery
|
|
|
|
| ID / screen / input | Purpose | Primary action and consequence | Empty / loading | Error / confirmation | Interruption / return |
|
|
|---|---|---|---|---|---|
|
|
| `OUT-001` Battle result and diagnosis / `LIST` | Show outcome, first meaningful divergence, decisive interaction, downstream costs, survivor state, and available next resolution. | Continue to the earliest unresolved consequence. | No preventable cause states `No actionable divergence` and still shows decisive events. Loading preserves outcome receipt. | Missing causal data is an explicit diagnostic error; transaction remains paused. No confirmation. | Suspend preserves the result receipt and scroll position. Back does not bypass unresolved consequences. |
|
|
| `OUT-002` Death and loss review / `SELECT` | Name each dead recruit, stable identity, profession, trait, level, survival history, equipment disposition, party gap, and sourced replacement implication. | Acknowledge resolved losses; advances to Reward, Recovery, or Run End. | No deaths skips this screen. Loading renders known identities before disposition details. | Incomplete casualty receipt blocks acknowledgement and offers Retry. Confirmation is acknowledgement of an already committed result, not a reversal offer. | Suspend preserves unresolved acknowledgement. Back returns to Result diagnosis but cannot alter battle outcome. |
|
|
| `OUT-003` Reward choice / `SELECT` | Compare `BIND:REWARD_OPTIONS` by changed decision, eligible target, conflicts, and run impact. | Claim selected reward; commits one sourced receipt. | No earned reward explains the result and offers Continue. Loading preserves result context. | Expired, ineligible, duplicate, or storage-policy state returns a deterministic next action. Confirmation names reward, target, conflicts, and skip outcome. | Suspend checks receipt before retry. Cancel returns to Result only if reward choice is not mandatory. |
|
|
| `OUT-004` Recovery / `SELECT` | Compare legal recovery paths by cost, time, recruit availability, replacement opportunity, and next planning state. | Commit recovery; changes the run according to `BIND:RECOVERY_OPTIONS`. | No recovery required offers Continue. No viable path exposes the run-ending route. Loading retains casualty and resource facts. | Unaffordable, stale, or illegal paths remain inspectable with reason. Confirmation lists full transaction and next destination. | Suspend before receipt spends nothing; after receipt resumes at its destination. Back returns to Result or Death Review. |
|
|
| `OUT-005` Run end summary / `LIST` | Explain `BIND:RUN_FAILURE` or clear, retained progression, losses, discoveries, decisions unlocked, and exact next choices. | Finish run; closes the run and applies the verified progression receipt. | No progression gain is stated plainly. Loading waits for all receipts before enabling Finish. | Duplicate or failed progression application preserves the run as unresolved. Finish confirmation is needed only if viewing unresolved optional pages would be lost. | Suspend preserves the unresolved summary. Back remains within summary tabs; Finish returns to Title or Progression. |
|
|
| `OUT-006` Run abandonment review / `MODAL` | Keep explicit voluntary run closure separate from Recruit dismissal and state every consequence from `BIND:RUN_ABANDONMENT`. | Abandon run; closes the run through one sourced receipt without selecting or dismissing a Recruit. | If abandonment is not legal from the current state, show the reason and safe return. Loading verifies closure consequences before enabling the destructive action. | Confirmation names the run, cleared run-only state, retained history/progression, destination, and irreversibility; default focus is Cancel. A stale or duplicate operation returns a readable rejection or original receipt without partial closure. | Suspend before commit changes nothing; after commit verifies the closure receipt. Cancel returns to Guild desk or Result, whichever invoked it. |
|
|
|
|
### 5.6 Progression, Records, And Postgame
|
|
|
|
| ID / screen / input | Purpose | Primary action and consequence | Empty / loading | Error / confirmation | Interruption / return |
|
|
|---|---|---|---|---|---|
|
|
| `PRO-001` Run progression / `LIST` | Show current level paths, profession changes, capacity growth, prerequisites, and decisions opened within the active run. | Inspect or apply a legal sourced choice. | No pending choice shows next prerequisite. Loading retains current applied state. | Stale prerequisite or invalid choice refreshes before commit. Irreversible branch or reset uses explicit comparison confirmation. | Suspend reconciles any receipt. Back returns to Guild desk or Result caller. |
|
|
| `PRO-002` Guild Charter / `LIST` | Show current Renown, eight horizontal Region seals, prerequisite tracks, breadth-only packet cards, exact costs, future-run effects, and claimed receipts without resembling a radial power tree. | Tap a Region seal, Tap one eligible packet, then review and claim it; the receipt changes future-run catalog, trial, threat-information, or Oath-law breadth and never raw power. | First-run state explains how Renown is earned and keeps all eight seals visible. Loading reserves stable claim IDs and disables packet selection until cost, prerequisites, and effect resolve. | Unknown content stays undisclosed. Failed prerequisites and insufficient Renown preserve selection with reasons; duplicate claim returns its receipt. Confirmation shows before/after Renown, prerequisites, future-run effect, and `No permanent combat power`. | Suspend retains selected Region, packet and scroll anchor. Back before commit spends nothing; after commit it verifies the receipt and returns to Title, Guild, or Run End caller. |
|
|
| `PRO-003` Records and compendium / `LIST` | Browse professions, traits, equipment, artifacts, enemies, bosses, regions, recruit histories, and battle reports without spoilers. | Inspect entry; changes no run result. | Category empty states discovery route when allowed. No search result offers Clear Search. Loading keeps category context. | Missing referenced entry reports stable ID and diagnostics. Inspection requires no confirmation and external links do not exist here. | Suspend preserves category, filter, and scroll ID. Back returns to caller. |
|
|
| `PST-001` First Chronicle decision / `SELECT` | After the sixteenth boss and verified settlement, compare `Complete the First Chronicle` with `Open the Oath Season`; state that both archive the surviving Company and close the run. | Tap one choice, review its destination, then confirm: Chronicle shows the finite ending/Final Ledger and Title; Oath Season opens postgame rule review for a new generated run. | Before final eligibility, show the exact remaining boss requirement while ordinary New Run remains visible. Loading keeps the verified final-boss receipt and disables both commits. | Missing settlement, unresolved casualty/reward, or stale first-clear state blocks both choices. Confirmation repeats archived Company, closed Coin/Credit, retained Records/Renown, destination, and no playable Recruit carryover. | Suspend retains the uncommitted choice and final receipt. Back stays in final result. After receipt, resume at Final Ledger/Title or Oath Season hub; never reopen the cleared run. |
|
|
| `PST-002` Oath Season hub and run review / `SELECT` | Compare eligible Oath laws, conflicts, known consequences, difficulty, save slot, Guild Charter breadth, and the distinction from ordinary New Run. | Tap laws to assemble a compatible set, review the complete rules, then create a new generated run; no cleared Recruit is selectable. | No eligible law explains its Charter requirement and still offers ordinary New Run. Loading verifies modifier, profile and slot IDs before Begin. | Conflict, expired ruleset, missing eligibility, or slot collision preserves selection with reasons. Confirmation lists every active law, difficulty, generated-run promise, and irreversible setup choice. | Suspend saves the uncommitted form. Cancel returns to Title/postgame hub. Interruption after receipt opens the new run's provisional Recruit offers. |
|
|
| `PST-003` Oath Season result / `LIST` | Explain challenge outcome, laws that mattered, Record change, earned Renown, archived generated Company, and next legal attempt. | Finish result; applies verified Record/Renown receipts and returns to the Oath Season hub, Final Ledger, or ordinary New Run. | No Record or Renown change is stated plainly. Loading waits for all receipts and preserves ordinary New Run access. | Duplicate or invalid score is separated from local clear status. Finish confirmation appears only while a claim remains unresolved. | Suspend preserves the result. Back stays within result tabs; Finish never resumes the closed Company. |
|
|
|
|
### 5.7 Settings And Data
|
|
|
|
| ID / screen / input | Purpose | Primary action and consequence | Empty / loading | Error / confirmation | Interruption / return |
|
|
|---|---|---|---|---|---|
|
|
| `SET-001` Settings index / `SETTINGS` | Navigate Display/Text, Motion/Effects, Audio/Captions, Controls, Language, Gameplay Information, Save/Data, and Reset. | Open category; no run consequence. | No changed settings shows current preset. Loading categories does not block Back. | Invalid stored setting uses documented safe default and identifies it. No confirmation. | Suspend preserves selected category. Back returns to exact caller: Title, Guild, or Pause. |
|
|
| `SET-002` Display and text / `SETTINGS` | Set safe area, brightness, contrast, color-independent cues, and 100/115/130% UI/text with live preview. | Apply display settings. | Unavailable display option remains visible with reason. Preview loading shows text sample. | Unsupported combination offers nearest supported result without auto-applying. Apply/Discard review appears on exit with changes. | Output change freezes preview and retains values. Return to Settings index. |
|
|
| `SET-003` Motion, flashes, and power / `SETTINGS` | Set reduced motion, reduced flashes, shake, hit pause, particle density, and low-power behavior with a non-combat sample. | Apply effects settings. | Unsupported effect control explains platform behavior. Sample loading never flashes. | Unsafe or unavailable combination reverts preview only. Apply/Discard on exit. | Backgrounding stops sample. Return to Settings index. |
|
|
| `SET-004` Audio and captions / `SETTINGS` | Set master/music/ambience/SFX/voice-when-present levels, mute, dynamic range, captions, event labels, and mono-compatible cues. | Apply audio settings. | Missing output or absent voice category is stated. Test loading is silent with visible status. | Output failure keeps captions and visual cues active. Apply/Discard is the exit confirmation. | Output change pauses test and retains settings. Return to Settings index. |
|
|
| `SET-005` Controls / `SETTINGS` | Inspect and remap touch, keyboard/mouse, and controller actions; set hold timing and vibration. | Save mapping. | No controller attached still permits mapping inspection. Loading keeps safe Cancel binding. | Conflict names both actions and requires resolve; essential actions cannot be left unbound. Save confirmation lists changed mappings. | Device loss pauses capture and spends no input. Return to Settings index after Apply/Discard. |
|
|
| `SET-006` Language and locale / `SETTINGS` | Select English or Simplified Chinese and preview mechanics, dates, numbers, and wrapping. | Apply language; reloads localized text without changing run state. | Missing optional locale pack names the fallback. Loading uses current language until complete. | Invalid string key shows stable diagnostic ID, not raw code in player copy. Apply confirmation appears when a reload is required. | Suspend resumes the reload safely. Return to Settings index in the applied language. |
|
|
| `SET-007` Gameplay information / `SETTINGS` | Set forecast detail, tutorial reminders, battle log density, default speed, and other information assists without hiding result-changing rules. | Apply information settings. | Unavailable option states dependency. Preview loading uses a fixed non-authoritative sample. | Disallowed combination explains the rule. Apply/Discard on exit. | Suspend stops preview only. Return to Settings index. |
|
|
| `SET-008` Save and data / `SETTINGS` | Inspect local save health, optional synchronization, conflicts, backups, export, and diagnostics. | Open selected management action; routine inspection changes nothing. | Offline state keeps local status and names queued optional work. Loading shows last verified timestamp. | Conflict and recovery use `SYS-007`; export failure retains local data. Replacing a lineage requires full comparison confirmation. | Suspend pauses external work and keeps a durable receipt. Return to Settings index. |
|
|
| `SET-009` Reset and deletion / `MODAL` | Separate run deletion, profile reset, settings reset, and diagnostics clearing with exact scope and recovery policy. | Execute reviewed destructive action. | No eligible data disables the action with reason. Loading inventory must finish before review. | Write failure preserves data. Confirmation names scope, stable target, retained data, recovery window, and explicit destructive gesture. | Suspend before receipt cancels nothing; after receipt verifies outcome. Cancel returns to Settings index. |
|
|
|
|
## 6. Global State Rules
|
|
|
|
### 6.1 Loading And Empty
|
|
|
|
- Operations longer than `300 ms` show the named operation and whether input is
|
|
blocked. An apparently tappable control never sits under an unlabeled spinner.
|
|
- Lists retain stable headers, selected IDs, and known balances while rows load.
|
|
- Filter-empty and truly empty are distinct. Filter-empty always offers Clear
|
|
Filters; truly empty explains the legal way content becomes available.
|
|
- Unknown, undiscovered, unavailable, unaffordable, incompatible, full by a
|
|
sourced rule, and completed are distinct states with distinct next actions.
|
|
|
|
### 6.2 Error And Receipt
|
|
|
|
- Every commit has an operation ID and resolves to one receipt. Retry never
|
|
duplicates purchase, recruit, dismissal, equip, reward, progression, recovery,
|
|
retreat, or run completion.
|
|
- A stale review refreshes all changed values and requires a new explicit
|
|
confirmation. It never commits the old preview.
|
|
- A binding error states the affected feature and safe next action. Raw stack
|
|
traces, credentials, paths, and internal tokens are excluded from player copy.
|
|
- Offline optional services cannot block local run play.
|
|
|
|
### 6.3 Interruption And Save
|
|
|
|
- Backgrounding during battle produces or verifies a deterministic snapshot and
|
|
returns through `BAT-006`; time never advances behind an obscured app.
|
|
- Backgrounding during any transaction returns through receipt reconciliation.
|
|
- A low-memory restart returns to Title with the exact resumable state named.
|
|
- Clock rollback, cloud divergence, migration, corruption, duplicate claims,
|
|
rollback, and bounded offline behavior are presented through `SYS-007` or
|
|
`SET-008` using sourced save rules.
|
|
|
|
### 6.4 Final-Survivor Dismissal And Abandonment
|
|
|
|
- Dismissal eligibility uses the authoritative total of live Recruits across
|
|
deployed and reserve. It does not use only the current party-line count.
|
|
- When that total equals one, `REC-002` keeps Dismiss visible but disabled. The
|
|
reason says `One member must remain` and exposes a separate action to open
|
|
`OUT-006`; activating the disabled control never opens `REC-003`.
|
|
- `REC-003` revalidates eligibility at commit. If a once-valid review becomes
|
|
stale because the total is now one, confirmation is rejected and the review
|
|
closes. No Recruit is removed, no equipment ownership changes, no rebate is
|
|
granted, and focus returns to the disabled Dismiss state with the reason
|
|
announced.
|
|
- `OUT-006` is a run-close transaction, not a dismissal variant. It has no
|
|
selected Recruit target and cannot grant a dismissal rebate.
|
|
- A zero-live-Recruit state can result only from committed casualty/Company-
|
|
collapse settlement or explicit run abandonment. Casualty settlement routes
|
|
to sourced recovery or closure; abandonment routes directly to `OUT-005` and
|
|
never exposes an empty preparation or Shop state. Ordinary dismissal cannot
|
|
produce either path.
|
|
- `LOC:DISMISS_LAST_LIVE_RECRUIT` and `LOC:OPEN_RUN_ABANDONMENT_REVIEW` require
|
|
English (`en`) and Simplified Chinese (`zh_CN`) fixtures at 100/115/130%.
|
|
The first preserves `one member must remain`; the second preserves the
|
|
distinction between leaving one Recruit and ending the entire run.
|
|
|
|
## 7. Onboarding Map
|
|
|
|
Onboarding uses production screens and can be replayed from Records. It teaches
|
|
one decision at a time and never completes a build choice for the player.
|
|
|
|
| Moment | Base screen | Teaching focus | Completion evidence | Skip/return behavior |
|
|
|---|---|---|---|---|
|
|
| Before `0:00` | `SYS-002` | language, text preview, reduced motion/flashes, captions | one usable preset applied | cannot skip before usable settings; later returns to Title |
|
|
| `0:00-1:00` provisional Company | `SYS-005` stages `A-C` | inspect four stable offers, compare Profession jobs and Trait costs, choose exactly two, then review both together | player states one Profession job and one Trait cost and reaches creation review at `2/2` | skip hides teaching layers only; it never preselects, recommends, removes, or commits an offer |
|
|
| `1:00` run creation | `SYS-005` stages `D-E` | confirm selected two, unchosen-not-retained consequence, Contract/difficulty, and first-Market handoff | one run-creation receipt owns exactly the selected two and opens the first Market | `Revise Recruits` remains legal before commit; interruption resumes the same pending/receipt boundary |
|
|
| `1:00-3:00` first Market hires | `SHP-001/002` | inspect the protected affordable base-Profession opportunities and complete two separate hire reviews | two hire receipts move opening Company from two owned Recruits to filled Line capacity four; player distinguishes Line capacity from owned Company | no offer is auto-selected or labeled correct; skip removes callouts but never buys, refreshes, locks, or spends |
|
|
| `3:00-5:00` first order | `PTY-001` | swap protected rear-left and exposed front-right Recruits and read changed targets/protection/reach | tap-select/tap-destination or controller move completed; player identifies position `0` at right/front and who protects whom | drag is never required and the original order can be restored before commit |
|
|
| `5:00-7:00` first risk | `RSK-001/002` | known pressure, uncertainty, cost, and recovery exposure | player reviews and commits a legal option | no recommended option is auto-selected |
|
|
| `7:00-9:00` first battle | `BAT-001/002/003` | observe target choice, pause, inspect one cause | player opens a causal explanation | speed remains sourced; no combat action prompt |
|
|
| `9:00-12:00` first result/adaptation | `OUT-001/003` and `EQP-001/002` | locate earliest divergence, choose reward, and compare one behavior-changing equipment/order adaptation | player follows one cause chain and identifies a before/after behavior | Continue remains available after review; no build change is applied without commit |
|
|
| `12:00-16:00` first casualty | `OUT-002/004` | distinguish committed loss, equipment return, and Credit from the next recovery decision | player acknowledges receipt and inspects legal recovery | training fixture grants no persistent reward or death; no loss is silently undone |
|
|
| `16:00-20:00` independent Round | production screens | buy, order, commit, and diagnose without a pointer | one complete independent Round | one no-reward reset is available before commitment when supplied by product rules |
|
|
| First final-survivor dismissal attempt | `REC-002` | explain why ordinary dismissal is disabled and where explicit run abandonment lives | player dismisses the explanation or opens `OUT-006` | disabled action changes nothing and does not auto-open confirmation |
|
|
|
|
The `SYS-005 -> SHP-001` handoff preserves the two selected stable Recruit IDs,
|
|
shows opening Company `2` separately from Line capacity `4`, and points to the
|
|
first hire decision without choosing an offer. After each authoritative hire
|
|
receipt, the same status region updates `Company 2 | Line capacity 4` to
|
|
`Company 3 | Line capacity 4`, then `Company 4 | Line capacity 4`; the two-step
|
|
progress is never faked by a tutorial-only counter or a combined purchase.
|
|
|
|
After repeated failure, Result may offer a replayable explanation or training
|
|
surface only if supplied by product rules. It may identify the earliest
|
|
preventable event, but it does not equip, recruit, reorder, or choose risk.
|
|
|
|
## 8. Landscape, Localization, And Accessibility Matrix
|
|
|
|
Every base screen and required overlay must be captured and reviewed across
|
|
these axes before a gallery can claim coverage:
|
|
|
|
| Axis | Required design states |
|
|
|---|---|
|
|
| Landscape phone | `1280x720` reference; short-height and wide-cutout fixtures; touch-safe edges |
|
|
| Landscape tablet | `1366x1024` and `2048x1536`; world expands without stretching controls |
|
|
| Large landscape | `1920x1080` and `2560x1440`; constrained HUD with lateral world reveal |
|
|
| Language | English (`en`), Simplified Chinese (`zh_CN`), and a longest-string fixture for every action and consequence |
|
|
| Text/UI scale | 100%, 115%, and 130%; no critical value, cost, state, or action truncated |
|
|
| Input | touch-only and controller required; keyboard/mouse parity; visible focus at all times |
|
|
| Motion | normal and reduced motion; no information conveyed only by travel, parallax, shake, or speed |
|
|
| Flashes | normal and reduced flashes; event geometry and text remain sufficient |
|
|
| Audio | normal, master mute, captions-only, output loss, and mono-compatible information cues |
|
|
| Power | normal and low-power; same decisions, simulation state, event order, and receipts |
|
|
| Vision | standard and high contrast; no state depends on hue, opacity, or image detail alone |
|
|
|
|
At 130%, secondary explanation moves to an inspect drawer or full-screen detail.
|
|
Objective, current state, cost, consequence, primary action, Back, focus, and
|
|
transaction status stay in the first viewport. Battle inspection becomes a
|
|
pauseable full-screen linear view when a side drawer would make actors
|
|
unreadable.
|
|
|
|
`SYS-005` keeps all four stable offer markers, selected count, Inspect/Compare,
|
|
Back, and the disabled/enabled Review Company state visible at 130%. On a short
|
|
landscape phone the four markers use a fixed `2 x 2` arrangement and selected
|
|
detail replaces the secondary region; on tablet/reference they use one fixed
|
|
four-offer row. Text growth never hides an offer, changes offer order, or makes
|
|
Create Run appear before the review stage.
|
|
|
|
The visual Party line is not mirrored by locale: protected rear remains left,
|
|
exposed front and position `0` remain right, and larger position numbers extend
|
|
left in both `en` and `zh_CN`. Text labels, front/rear icons, protection
|
|
connectors, and screen-reader order carry the meaning without relying on
|
|
reading-direction inference.
|
|
|
|
At every text scale, the final-survivor dismissal reason and separate
|
|
abandonment action remain visible without overlap. Touch can inspect the
|
|
disabled reason and activate the separate abandonment action without precision
|
|
gestures. Controller focus reaches the disabled Dismiss state, announces its
|
|
reason, then advances to the separate action; default focus in `OUT-006` is
|
|
Cancel.
|
|
|
|
Simplified Chinese (`zh_CN`) may wrap actions to two lines. Components grow vertically
|
|
within bounded layout tracks; type never shrinks to force a one-line label.
|
|
Generated names support long Latin strings and multi-codepoint CJK without
|
|
using name length to resize surrounding controls.
|
|
|
|
## 9. Endgame And Completion States
|
|
|
|
The following are separate, player-readable states:
|
|
|
|
1. Active run with ordinary preparation available.
|
|
2. Battle victory with unresolved casualty, reward, or recovery transaction.
|
|
3. Battle loss with the run still viable.
|
|
4. Retreat resolved with a changed preparation state.
|
|
5. Run ended by sourced failure, with progression receipt pending.
|
|
6. Run closed by explicit abandonment, with no Recruit treated as ordinarily
|
|
dismissed and one closure receipt pending or applied.
|
|
7. First clear, with newly eligible persistent and postgame decisions.
|
|
8. Completed run retained for records, not resumable as active play.
|
|
9. Postgame run setup with all active modifiers reviewed.
|
|
10. Postgame result with local clear, verified record, and reward receipt shown
|
|
independently.
|
|
11. Profile completion with no unclaimed transaction and ordinary New Run still
|
|
available.
|
|
|
|
Credits, records, and postgame never trap the player. Each returns to Title or
|
|
its explicit caller, and ordinary run creation remains visible wherever legal.
|
|
|
|
## 10. Coverage Gate
|
|
|
|
The screen authority is candidate-ready only when:
|
|
|
|
- every ID in Section 5 has a canonical landscape composition;
|
|
- every row has purpose, primary action, consequence, empty, loading, error,
|
|
confirmation, interruption, and return behavior;
|
|
- Shop, recruit, dismiss, equip, compare, active artifacts, party ordering, risk commitment,
|
|
automatic battle, pause, speed, inspect, retreat, result, death, reward,
|
|
recovery, progression, Settings, and postgame form complete paths;
|
|
- all product values appear through Section 2 bindings or an integrated source;
|
|
- `SYS-005` remains one page while covering four unique stable provisional
|
|
offers, no-Coin Inspect/Compare, exactly-two selection, revision, creation
|
|
review, invalid/empty/loading/error, interruption, and first-Market handoff;
|
|
- the `0:00-3:00` onboarding path produces one provisional choose-two receipt
|
|
and two separate affordable first-Market hire receipts without recommending
|
|
or auto-selecting the opening build;
|
|
- Party-line preparation and battle stage protected rear on the left and
|
|
exposed position `0` front on the right; larger numbers extend leftward and
|
|
protection remains explicit;
|
|
- no interaction inserts a combat action into the automatic timeline;
|
|
- every destructive or costly action has a stale-preview and duplicate-receipt
|
|
path;
|
|
- ordinary dismissal is disabled at one total live Recruit across deployed and
|
|
reserve; its stale confirmation rejects with zero mutation and zero rebate;
|
|
- explicit run abandonment uses `OUT-006`, and ordinary dismissal never creates
|
|
a zero-live-Recruit preparation state;
|
|
- landscape phone/tablet, touch/controller, English/Simplified Chinese, 130%,
|
|
reduced motion/flashes, mute, high contrast, and low-power states are covered;
|
|
- onboarding uses the real screens and ends with an independent player decision;
|
|
- no screen implies authored story leads; recruits remain generated run
|
|
participants; and
|
|
- design coverage is not described as implementation, device, comprehension,
|
|
fun, packaging, store, or release acceptance.
|