Document pulse-based simulation timing
This commit is contained in:
21
docs/UX.md
21
docs/UX.md
@@ -166,7 +166,7 @@ Primary controls:
|
||||
- visible hazards with safe/caution/critical bands
|
||||
- forecast warnings
|
||||
- `ActionBar`
|
||||
- contextual action buttons: move, interact, repair, remedy, heat shield, wait, activate reactor
|
||||
- contextual action buttons: move, interact, repair, remedy, heat shield, activate reactor
|
||||
- disabled buttons must show why the action is unavailable
|
||||
- `InventoryPanel`
|
||||
- fuel neutralizer count
|
||||
@@ -176,14 +176,23 @@ Primary controls:
|
||||
|
||||
Behavior:
|
||||
|
||||
- Selection and inspection are quick actions and must not advance the simulation.
|
||||
- Movement is a quick action and must update robot position without advancing the turn.
|
||||
- Interact, repair, remedy, heat shield, wait, and activate reactor are lengthy actions and must resolve one simulation step when accepted.
|
||||
- Selection and inspection are quick actions and must not trigger a pulse.
|
||||
- Movement is a quick action and must update robot position without triggering a pulse.
|
||||
- Interact, repair, remedy, and heat shield are environment-changing actions and must trigger one animated pulse when accepted.
|
||||
- Activate reactor must be visually prominent when ready and should resolve immediately without requiring a wait or extra pulse.
|
||||
- Invalid actions should produce a short refusal message and not mutate level state.
|
||||
- When the level state becomes `Lost`, show `LoseOverlay`.
|
||||
- When the level state becomes `Won`, show `WinOverlay`.
|
||||
- When the reactor is ready, make `Activate Reactor` visually prominent but keep other valid actions available.
|
||||
|
||||
Pulse playback behavior:
|
||||
|
||||
- During a pulse, animate the configured steps as one short cascade of hazard motion, leak growth, quenching, ignition, shorts, and readiness updates.
|
||||
- Disable conflicting action commands while pulse playback is running so the player cannot queue hidden actions into an unresolved environment state.
|
||||
- Present the final post-pulse state as the next decision point.
|
||||
- Do not make pulse length vary by action type, forecast outcome, or danger level.
|
||||
- Do not expose a normal campaign fast-forward loop; the player goal is to solve the cascade and activate the reactor as soon as a pulse leaves its needs fulfilled.
|
||||
|
||||
### LoseOverlay.tscn
|
||||
|
||||
Purpose: immediate failure response while preserving context.
|
||||
@@ -293,7 +302,7 @@ Controls:
|
||||
|
||||
Behavior:
|
||||
|
||||
- Keep tutorial text focused on action economy, hazards, forecasts, remedies, and reactor activation.
|
||||
- Keep tutorial text focused on action economy, pulses, hazards, forecasts, remedies, and reactor activation.
|
||||
- Tutorial level can reuse `LevelScreen` with a tutorial mode flag and guided prompts.
|
||||
|
||||
## Reusable Controls
|
||||
@@ -302,7 +311,7 @@ Behavior:
|
||||
- `StateBadge`: color-coded label for `Stable`, `Caution`, `Critical`, `Ready`, `Lost`, and `Won`.
|
||||
- `LevelHeader`: level metadata, global state, and campaign progress.
|
||||
- `CellInspector`: selected cell details, visible hazards, prop state, underground details when available.
|
||||
- `ForecastList`: ordered warnings from soonest to latest turn.
|
||||
- `ForecastList`: ordered warnings from soonest to latest pulse.
|
||||
- `InventoryStrip`: remedy and heat shield counts.
|
||||
- `OutcomeOverlay`: shared base layout for win and loss overlays.
|
||||
- `ConfirmDialog`: save overwrite, abandon run, and return-to-menu confirmations.
|
||||
|
||||
Reference in New Issue
Block a user