Document campaign choice rescue

This commit is contained in:
2026-05-14 01:02:06 +02:00
parent 1eb940ef15
commit fe1f46212b
2 changed files with 62 additions and 17 deletions

View File

@@ -9,6 +9,7 @@ This document is the Godot implementation blueprint for the player-facing fronte
- Keep menu flow short: splash, main menu, mode selection, level, outcome, next action.
- Treat campaign as a linear chain of handcrafted levels with names and short flavor text.
- Let players retry a lost level from its starting state and advance from a won level to the next campaign level.
- Keep one-action setups in guided tutorial content; campaign levels should present at least two plausible lengthy interventions with different pulse outcomes.
## Scene Flow
@@ -166,7 +167,7 @@ Primary controls:
- visible hazards, sprinkler water, and wet-electricity risk with safe/caution/critical bands
- forecast warnings
- `ActionBar`
- contextual action buttons: move, interact, activate sprinkler valve, repair, remedy, heat shield, activate reactor
- contextual action buttons: move, interact, toggle isolation valve, activate sprinkler valve, repair, remedy, heat shield, activate reactor
- disabled buttons must show why the action is unavailable
- `InventoryPanel`
- fuel neutralizer count
@@ -178,16 +179,18 @@ Behavior:
- 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, sprinkler valve activation, repair, remedy, and heat shield are environment-changing actions and must trigger one animated pulse when accepted.
- Interact, isolation valve toggles, sprinkler valve activation, 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.
- Before committing a lengthy action, the selected action state should expose the forecasted pulse consequence in plain terms such as isolated leak, restored pressure, downstream starvation, hazard growth, or reactor ready.
Pulse playback behavior:
- During a pulse, animate the configured steps as one short cascade of hazard motion, leak growth, quenching, evaporation, ignition, electrical conduction, and readiness updates.
- Isolation valve toggles must visibly mark the affected underground branch, show stopped or restored pressure flow, and warn when downstream consumers or reactor feed will starve.
- Sprinkler valve activation must visibly release blue sprinkler water at authored outlet cells and show the affected coolant service area losing pressure.
- Evaporation must be communicated through shrinking wet overlays and stronger steam/cooling feedback on hot cells.
- Wet cells that can spread electricity must use a distinct warning treatment so the player can distinguish helpful suppression water from dangerous electrified water.
@@ -305,15 +308,16 @@ Controls:
Behavior:
- Keep tutorial text focused on action economy, pulses, sprinkler suppression, evaporation, wet-electricity hazards, forecasts, remedies, and reactor activation.
- Keep tutorial text focused on action economy, pulses, isolation valves, sprinkler suppression, evaporation, wet-electricity hazards, forecasts, remedies, and reactor activation.
- Tutorial level can reuse `LevelScreen` with a tutorial mode flag and guided prompts.
- A tutorial level may demonstrate a single safe lengthy action. The first campaign level should not be a single-action demonstration; it should ask the player to choose between service restoration, isolation, repair, or activation timing.
## Reusable Controls
- `PrimaryButton`: consistent command button style and focus 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, sprinkler water, wet-electricity risk, prop state, underground details when available.
- `CellInspector`: selected cell details, visible hazards, sprinkler water, wet-electricity risk, prop state, isolation valve branch impact, underground details when available.
- `ForecastList`: ordered warnings from soonest to latest pulse.
- `InventoryStrip`: remedy and heat shield counts.
- `OutcomeOverlay`: shared base layout for win and loss overlays.
@@ -339,6 +343,7 @@ Keep repeated controls as separate scenes so the level screen, tutorial, and ove
- coolant/sprinkler water: blue
- electricity: yellow
- heat: orange or white-hot accent
- isolated branch: muted carrier color with a broken-flow or valve marker
- wet-electricity risk: yellow over blue or a distinct charged-water pattern
- safe: neutral or green
- caution: amber
@@ -356,6 +361,7 @@ Keep repeated controls as separate scenes so the level screen, tutorial, and ove
- Final campaign win reaches `GameWonScreen`.
- Full failure endpoint reaches `GameOverScreen`.
- The level screen distinguishes quick actions from lengthy actions.
- The level screen makes sprinkler valve outlets, evaporation, and wet-electricity risk readable before and after a pulse.
- The level screen previews selected lengthy-action pulse consequences before commitment.
- The level screen makes isolation valve branch effects, sprinkler valve outlets, evaporation, and wet-electricity risk readable before and after a pulse.
- Forecasts, inventory, selected cell inspection, and global level state have dedicated UI space.
- Documentation stays aligned with `docs/design.md` when simulation rules change.