29 KiB
Reactor Maintenance Campaign Design
This document prepares the handcrafted campaign for implementation. It references docs/design.md terminology directly; campaign text should not introduce mechanics that are absent from the design document.
Campaign Goals
- Teach one
LengthyActiongrammar at a time, then combine systems. - Keep
MoveRobot, inspection, and visible-state reading calm and free. - Make every environment-changing action trigger exactly one
Pulse. - Keep
Forecastoutput systemic and available only at an activeAllSeeingEyeTerminal. - Avoid treating missing
ReactorReadinessas a failure state; it only blocksReady. - Use
UnsafeEntryLossonly whenMoveRobotenters an unsafe destinationSurfaceHazard. - Keep the campaign small enough for a two-week game jam.
Campaign Structure
The campaign uses one tutorial plus six groups. Group 1 intentionally has two levels; Groups 2-6 have three levels each.
| Group | Levels | Networks | Main Lesson |
|---|---|---|---|
| Tutorial | 1 | Fuel |
LengthyAction triggers Pulse; Ready then ActivateReactor wins. |
| 1 | 2 | Fuel |
FlowProp, IsolationValveProp, reachable leaks, and direct ReactorReadiness. |
| 2 | 3 | Coolant |
ConsumerProp, Producing, wall-mounted CoolantSprinklerValve, SprinklerWater, pressure recovery. |
| 3 | 3 | Electricity |
wall Electricity leaks, repair faces, powered DoorProp, and AllSeeingEyeTerminal. |
| 4 | 3 | Fuel + Electricity |
first dual-system interaction: Ignite creates recurring Heat. |
| 5 | 3 | Coolant + Electricity |
SprinklerWater, Evaporation, and wet-electricity Conduct risk. |
| 6 | 3 | Fuel + Coolant + Electricity |
full startup with fire, suppression, wet conduction, and terminal-local Forecast use. |
Authoring Rules
Before AllSeeingEyeTerminal appears in 3-3, all levels must be readable from surface props and visible effects alone. Use simple branches, clear source positions, visible leak access, and obvious valve placement.
Every non-tutorial level must offer at least two plausible first LengthyAction choices. The later the group, the more those choices should require sequencing rather than a single obvious answer.
Do not author level-specific forecast strings. The campaign can require that systemic Forecast output is useful, but the level spec must describe the underlying state that fixed forecast rules can detect.
Each level below includes:
Purpose: the reason the level exists.Setup: authored starting conditions.Timeline: intended reasoning andPulseconsequences.Win: requiredReactorReadinessandActivateReactorcondition.Lose: terminal failure orUnsafeEntryLossconditions.ImplementationNotes: content constraints for level data.
Tutorial: First Pulse
T0 - Wake The Feed
Purpose: Teach that one accepted LengthyAction triggers one Pulse, after which Ready can be activated.
Setup:
- Networks:
Fuel. - One disabled
FuelFlowPropfeeds theReactorControlProp. - Required consumer counts are zero.
- No leaks, no
SurfaceHazard, noDoorProp, noAllSeeingEyeTerminal. - Robot starts a few floor cells away from the
FlowProp.
Timeline:
- Player uses
MoveRobotand inspection freely. - Player uses
InteractPropon theFuelFlowProp. - One
PulsepropagatesFuelto theReactorControlProp. - Level enters
Ready. - Player uses
ActivateReactor.
Win: ReactorControlProp has positive Fuel amount and pressure, required consumer counts are zero, and ActivateReactor changes level state to Won.
Lose: No designed loss condition beyond invalid actions; this is guided tutorial content.
ImplementationNotes:
- This is the only single-action setup.
- Do not include
Forecast; noAllSeeingEyeTerminalexists.
Group 1: Fuel
Group 1 teaches pressure-fed Fuel faults with no required ConsumerProp instances and no Forecast. Branches must be visually obvious from FlowProp, IsolationValveProp, leak access, and ReactorControlProp placement.
1-1 - Bleed Line
Purpose: Teach that an enabled FlowProp can both satisfy ReactorReadiness and feed a visible leak.
Setup:
- Networks:
Fuel. - One disabled
FuelFlowProp. - One
ReactorControlPropon the main branch. - One leaking
Fuelsegment on a short side branch with a reachable floor access cell. - One
IsolationValvePropon the side branch before the leak. - Required consumer counts are zero.
Timeline:
- First choice A: enable the
FlowProp;Pulsefeeds theReactorControlPropand injectsLeakedFuel. - First choice B: close the leak-branch
IsolationValveProp;Pulseprevents fresh leak injection but leavesReactorReadinessmissing until fuel is enabled. - Player either repairs the leak or keeps it isolated.
- Player ensures the
ReactorControlProphas positiveFuelamount and pressure. - Player uses
ActivateReactor.
Win: ReactorReadiness is true for Fuel with zero required consumers, then ActivateReactor.
Lose: Heat terminal failure is not present; UnsafeEntryLoss occurs only if the player moves into unsafe LeakedFuel.
ImplementationNotes:
- The leak branch must be visually identifiable without underground visibility.
- Surface
LeakedFuelamount should become unsafe only after a player mistake, not immediately.
1-2 - Valve Choice
Purpose: Teach branch-specific isolation versus over-isolating the main feed.
Setup:
- Networks:
Fuel. - One enabled
FuelFlowPropfeeds a fork. - One fork branch reaches the
ReactorControlProp. - The other fork branch reaches a leaking
Fuelsegment. - One main
IsolationValvePropbefore the fork. - One leak-branch
IsolationValvePropbefore the leaking segment. - Required consumer counts are zero.
Timeline:
- First choice A: close the main
IsolationValveProp;Pulsestops fresh leak injection and also removesReactorReadiness. - First choice B: close the leak-branch
IsolationValveProp;Pulsestops fresh leak injection while preserving the main feed. - First choice C: repair the leak;
Pulsepreserves current network pressure and leaves existingLeakedFuelunchanged. - Player restores direct
Fuelfeed to theReactorControlProp. - Player uses
ActivateReactor.
Win: ReactorReadiness is true for Fuel with zero required consumers, then ActivateReactor.
Lose: UnsafeEntryLoss from moving into unsafe LeakedFuel; terminal failure if fixed rules mark the level Lost.
ImplementationNotes:
- Use surface labels or prop placement to distinguish main valve and leak-branch valve.
- Describe a closed main feed as missing
ReactorReadiness.
Group 2: Coolant
Group 2 introduces ConsumerProp requirements and CoolantSprinklerValve pressure tradeoffs. Since Coolant alone is not a fire system yet, these levels focus on Producing consumers, SprinklerWater, Evaporation, and pressure recovery.
2-1 - Prime The Pump
Purpose: Introduce ConsumerProp as a required production checklist.
Setup:
- Networks:
Coolant. - One disabled
CoolantFlowProp. - Two visible
CoolantConsumerPropinstances. - One
ReactorControlProp. - Required consumers: one
Coolant. - One branch
IsolationValvePropcan cut off one consumer while leaving another consumer and the control feed available.
Timeline:
- First choice A: enable the
FlowProp;Pulseallows at least oneConsumerPropto becomeProducingand can make the levelReady. - First choice B: toggle the branch
IsolationValveProp;Pulsedemonstrates that consumer production depends on supply. - Player sets valve/source state so at least one
CoolantConsumerPropisEnabledandProducing. - Player uses
ActivateReactor.
Win: ReactorControlProp has positive Coolant amount and pressure, at least one required Coolant ConsumerProp is Enabled and Producing, then ActivateReactor.
Lose: No designed terminal pressure; only invalid actions or explicit terminal rules.
ImplementationNotes:
- This level introduces
ConsumerPropbefore anyCoolantSprinklerValve. - Use visible prop placement; no
AllSeeingEyeTerminal.
2-2 - Sprinkler Debt
Purpose: Teach that an enabled wall-mounted CoolantSprinklerValve can reduce pressure until disabled or isolated.
Setup:
- Networks:
Coolant. - One enabled
CoolantFlowProp. - One wall-mounted
CoolantSprinklerValvestartsEnabled. - The sprinkler has one adjacent floor outlet/access face and emits
SprinklerWater. - One
CoolantConsumerPropand theReactorControlPropare on the same pressure-sensitive branch. - Required consumers: one
Coolant. - One upstream
IsolationValvePropcan shut the sprinkler branch without shutting the consumer branch.
Timeline:
- First choice A: disable the
CoolantSprinklerValve;Pulsestops discharge and allows pressure recovery. - First choice B: close the sprinkler-branch
IsolationValveProp;Pulsestops discharge by cutting supply to the sprinkler. - First choice C: enable/adjust the main
FlowPropfirst if authored disabled;Pulsekeeps sprinkler debt visible. SprinklerWaterevaporates through normalSteprules during pulses caused by useful actions.- Player reaches
ReactorReadinessafterCoolantpressure and required consumer production recover. - Player uses
ActivateReactor.
Win: ReactorControlProp has positive Coolant amount and pressure, one Coolant ConsumerProp is Enabled and Producing, then ActivateReactor.
Lose: No authored Heat or fire; avoid loss pressure except explicit terminal rules.
ImplementationNotes:
- Do not author standalone
Heatin thisCoolant-only level. - Sprinkler is wall-mounted with exactly one outlet/access floor face.
- This level visually teaches
SprinklerWaterandEvaporationwithout suppression yet.
2-3 - Split Flow
Purpose: Teach JunctionProp routing and consumer requirements in a readable Coolant network.
Setup:
- Networks:
Coolant. - One enabled
CoolantFlowProp. - One
JunctionPropcontrols two consumer branches. - Three visible
CoolantConsumerPropinstances. - One wall-mounted
CoolantSprinklerValvestartsDisabled. - Required consumers: two
Coolant. - One branch has a weakened or leaking
Coolantsegment that emitsSprinklerWaterwhen fed.
Timeline:
- First choice A: cycle the
JunctionProp;Pulsechanges which consumers can becomeProducing. - First choice B: close the damaged branch
IsolationValveProp;Pulsestops freshSprinklerWaterinjection but reduces available production paths. - First choice C: repair the
Coolantleak;Pulsestops future leak injection but does not remove existingSprinklerWater. - Player configures routing so two
Coolantconsumers areEnabledandProducing. - Player uses
ActivateReactor.
Win: ReactorControlProp has positive Coolant amount and pressure, two Coolant ConsumerProp instances are Enabled and Producing, then ActivateReactor.
Lose: UnsafeEntryLoss only if the player moves into an unsafe SurfaceHazard; otherwise no designed terminal pressure.
ImplementationNotes:
- Keep all relevant branches readable from surface prop placement.
- No
Forecast; noAllSeeingEyeTerminal.
Group 3: Electricity
Group 3 introduces wall Electricity leaks, powered DoorProp behavior, and then AllSeeingEyeTerminal. Levels 3-1 and 3-2 must remain readable without underground visibility.
3-1 - Live Face
Purpose: Teach wall Electricity leak access and repair from the adjacent emission face.
Setup:
- Networks:
Electricity. - One disabled
ElectricityFlowProp. - One wall-based
Electricityleak with exactly one adjacent floor emission/repair face. - One
ElectricityConsumerProp. - One
ReactorControlProp. - Required consumers: one
Electricity. - One
IsolationValvePropcan cut voltage to the leaking wall segment.
Timeline:
- First choice A: enable the
FlowProp;Pulsepowers the consumer/control and emitsLeakedElectricity. - First choice B: close the leak
IsolationValveProp;Pulseprevents emission but leaves required electricity production missing until a valid powered path exists. - Player repairs the leak from the marked floor face or keeps it isolated if another path can satisfy readiness.
- Player achieves
Electricityconsumer production and local control feed. - Player uses
ActivateReactor.
Win: ReactorControlProp has positive Electricity amount and voltage, one Electricity ConsumerProp is Enabled and Producing, then ActivateReactor.
Lose: UnsafeEntryLoss from moving into unsafe LeakedElectricity; terminal failure if fixed rules mark Lost.
ImplementationNotes:
- Emission/repair face must be visually unambiguous.
- No
Forecast; noAllSeeingEyeTerminal.
3-2 - Powered Door
Purpose: Introduce DoorProp toggling as an electricity-dependent action.
Setup:
- Networks:
Electricity. - One
ElectricityFlowPropfeeds aDoorProplocal supply branch. - One
ElectricityConsumerPropand oneReactorControlProp. - Required consumers: one
Electricity. - One
DoorPropbeginsClosed; it can be toggled only while its localElectricityfeed is positive. - One wall
Electricityleak is positioned so the closed door blocks surface propagation across the corridor.
Timeline:
- First choice A: power the door branch, then toggle the
DoorProp;Pulsechanges surface propagation boundaries. - First choice B: isolate or repair the wall leak first;
PulsereducesLeakedElectricityrisk before opening. - First choice C: keep the door
Closedand power the required consumer path first. - Player sequences powered door operation with leak management.
- Player uses
ActivateReactor.
Win: ReactorControlProp has positive Electricity amount and voltage, one Electricity ConsumerProp is Enabled and Producing, then ActivateReactor.
Lose: UnsafeEntryLoss from entering unsafe LeakedElectricity; terminal failure if fixed rules mark Lost.
ImplementationNotes:
- Use an authored wall
Electricityleak for surface electricity risk. - The door’s electric supply should be obvious from nearby surface props before terminal access exists.
3-3 - The All-Seeing Eye
Purpose: Introduce terminal-local underground visibility and systemic Forecast.
Setup:
- Networks:
Electricity. - One
AllSeeingEyeTerminalin a side room. - One route powers the required
ElectricityConsumerProp; another route reaches a weakened high-voltage segment. - One
DoorProporIsolationValvePropcan change which route is used. - Required consumers: one
Electricity.
Timeline:
- First choice A: activate the
AllSeeingEyeTerminal;Pulseadvances the environment and enables terminal-local underground visibility plus systemicForecast. - First choice B: route power without terminal information;
Pulsemay power the correct path or expose visible consequences. - First choice C: isolate the visibly risky branch first;
Pulsemay preserve safety but delay required production. - While at the active terminal, player uses
Forecastand underground visibility to choose route state. - Player restores required production and control feed.
- Player uses
ActivateReactor.
Win: ReactorControlProp has positive Electricity amount and voltage, one Electricity ConsumerProp is Enabled and Producing, then ActivateReactor.
Lose: UnsafeEntryLoss from unsafe LeakedElectricity, terminal Heat if generated by fixed rules, or another fixed terminal rule.
ImplementationNotes:
- This is the first campaign level with
Forecast. Forecastoutput must be systemic; do not author level text.
Group 4: Fuel + Electricity
Group 4 introduces the first dual-system interaction: Fuel and Electricity can Ignite, generating recurring Heat. From this point onward, Heat is a recurring campaign problem.
4-1 - First Spark
Purpose: Teach that combining LeakedFuel and LeakedElectricity can create Heat.
Setup:
- Networks:
Fuel,Electricity. - One visible
Fuelleak emits near a corridor. - One wall
Electricityleak emits toward the same corridor. - One
FuelConsumerProp, oneElectricityConsumerProp, and oneReactorControlPropon both networks. - Required consumers: one
Fuel, oneElectricity. - One
IsolationValvePropcan isolate either damaged branch.
Timeline:
- First choice A: enable
Fuel;PulsegrowsLeakedFuel. - First choice B: enable
Electricity;PulsegrowsLeakedElectricity. - First choice C: isolate or repair one leak before both networks are active.
- If both leaked values meet, fixed surface rules can
Igniteand createHeat. - Player stabilizes at least one leak path, restores required production, and activates.
Win: ReactorReadiness is true for Fuel and Electricity, required consumers are Enabled and Producing, then ActivateReactor.
Lose: terminal Heat, UnsafeEntryLoss from unsafe LeakedFuel or LeakedElectricity, or fixed terminal failure.
ImplementationNotes:
- Use only designed interactions from the hazard pair table.
Heatappears as a consequence ofIgnite, not as an arbitrary authored patch.
4-2 - Break Before Make
Purpose: Teach source sequencing: fixing or isolating first can be safer than powering both networks.
Setup:
- Networks:
Fuel,Electricity. Fuelsource starts enabled and a small visibleLeakedFuelpatch exists.Electricitysource starts disabled.- One wall
Electricityleak is near the fuel patch. - One powered
DoorPropcan contain surface spread if operated before electricity/fuel overlap grows. - Required consumers: one
Fuel, oneElectricity.
Timeline:
- First choice A: enable
Electricity;Pulsemay createHeatif leaked values interact. - First choice B: close or open a powered
DoorPropto change surface propagation before energizing. - First choice C: isolate or repair the
Fuelleak first. - Player prevents or contains
Ignite, then restores both required services. - Player uses
ActivateReactor.
Win: ReactorReadiness is true for Fuel and Electricity, required consumers are Enabled and Producing, then ActivateReactor.
Lose: terminal Heat or UnsafeEntryLoss.
ImplementationNotes:
- Door mechanics are centered on electricity supply: the
DoorPropcan only toggle while powered. - If an
AllSeeingEyeTerminalis present, itsForecastis optional and terminal-local.
4-3 - Hot Bypass
Purpose: Combine structural integrity, route choice, and fire risk.
Setup:
- Networks:
Fuel,Electricity. - Two visible branches can satisfy each required consumer set.
- One high-voltage branch threatens structural degradation near a
Fuelleak path. - One
DoorPropcan containHeatorLeakedElectricitypropagation if powered and closed. - Required consumers: one
Fuel, oneElectricity. - One
HeatShieldsupply is available for movement safety.
Timeline:
- First choice A: route
Electricitythrough the high-voltage branch;Pulsemay create a new wall leak by fixed integrity rules. - First choice B: isolate the
Fuelbypass;Pulsereduces ignition risk but changes available production path. - First choice C: pick up
HeatShield;Pulseimproves future movement safety but does not solve the system. - Player chooses one stable production route per network.
- Player uses
ActivateReactor.
Win: ReactorReadiness is true for Fuel and Electricity, required consumers are Enabled and Producing, then ActivateReactor.
Lose: terminal Heat, UnsafeEntryLoss, or fixed terminal failure.
ImplementationNotes:
HeatShieldonly affects movement safety; it does not quenchHeat.- Avoid perfect cleanup requirements.
Group 5: Coolant + Electricity
Group 5 teaches that SprinklerWater is useful system material but dangerous with Electricity. Evaporation becomes important without adding a wait command.
5-1 - Charged Water
Purpose: Teach wet-electricity Conduct.
Setup:
- Networks:
Coolant,Electricity. - One wall-mounted
CoolantSprinklerValvecan wet a corridor. - One wall
Electricityleak emits toward that corridor. - Required consumers: one
Coolant, oneElectricity. - One
IsolationValvePropcan cut voltage to the leak branch.
Timeline:
- First choice A: enable the
CoolantSprinklerValve;PulseaddsSprinklerWater. - First choice B: isolate or repair the
Electricityleak first. - First choice C: energize electricity production first while keeping the sprinkler disabled.
- If
LeakedElectricityreaches wet cells, fixed rules useConduct. - Player restores both required services and activates.
Win: ReactorReadiness is true for Coolant and Electricity, required consumers are Enabled and Producing, then ActivateReactor.
Lose: UnsafeEntryLoss from wet-electric unsafe cells or fixed terminal failure.
ImplementationNotes:
- No authored forecast prose; terminal-local systemic
Forecastmay warn about wet conduction if a terminal exists.
5-2 - Dry Before Live
Purpose: Teach that Evaporation can be part of useful action sequencing.
Setup:
- Networks:
Coolant,Electricity. - Initial
SprinklerWaterexists on a floor route near anElectricityleak face. - A wall-mounted
CoolantSprinklerValvestartsEnabled, maintaining wetness and pressure debt. - A powered
DoorPropcan contain electrical surface propagation. - Required consumers: one
Coolant, oneElectricity.
Timeline:
- First choice A: disable the
CoolantSprinklerValve;Pulsestops newSprinklerWaterand allowsEvaporation. - First choice B: close an upstream
IsolationValveProp;Pulsecuts sprinkler supply and changes coolant pressure. - First choice C: power and operate the
DoorPropbefore energizing the leak branch. - Player uses meaningful network actions while
Evaporationreduces wetness. - Player energizes safely, restores both services, and activates.
Win: ReactorReadiness is true for Coolant and Electricity, required consumers are Enabled and Producing, then ActivateReactor.
Lose: UnsafeEntryLoss from wet-electric unsafe cells or fixed terminal failure.
ImplementationNotes:
- Do not add a wait or fast-forward action.
- Do not author standalone
Heat; drying comes fromEvaporationrules during pulses.
5-3 - Eye In The Storm
Purpose: Combine AllSeeingEyeTerminal with wet-conduction routing.
Setup:
- Networks:
Coolant,Electricity. - One
AllSeeingEyeTerminalis reachable but requires aPulseto activate. - Two wall-mounted
CoolantSprinklerValveinstances affect different outlet faces. - One
Electricityroute overlaps one wettable corridor underground. - Required consumers: one
Coolant, oneElectricity.
Timeline:
- First choice A: activate the
AllSeeingEyeTerminal;Pulseenables terminal-local visibility and systemicForecast. - First choice B: disable or isolate the nearest sprinkler without terminal information.
- First choice C: isolate electricity before changing sprinkler state.
- Player uses terminal-local information to avoid wet conduction and restore required production.
- Player uses
ActivateReactor.
Win: ReactorReadiness is true for Coolant and Electricity, required consumers are Enabled and Producing, then ActivateReactor.
Lose: UnsafeEntryLoss from wet-electric unsafe cells, or fixed terminal failure.
ImplementationNotes:
- Terminal should reveal why one sprinkler/electric route combination is riskier.
Forecastremains systemic and terminal-local.
Group 6: Full Startup
Group 6 uses Fuel, Coolant, and Electricity. Heat can arise from Fuel + Electricity; CoolantSprinklerValve and SprinklerWater provide suppression while creating pressure and wet-conduction tradeoffs.
6-1 - Three-Key Start
Purpose: First all-network level with one readable problem per network.
Setup:
- Networks:
Fuel,Coolant,Electricity. ReactorControlPropsits on all three networks.- Required consumers: one
Fuel, oneCoolant, oneElectricity. - One visible
Fuelleak, one enabled wall-mountedCoolantSprinklerValve, and one wallElectricityleak. - One optional
AllSeeingEyeTerminalis off the direct route.
Timeline:
- First choice A: isolate or repair the
Fuelleak. - First choice B: disable or isolate the
CoolantSprinklerValveto restore pressure. - First choice C: isolate or repair the
Electricityleak before wet cells conduct. - First choice D: activate the
AllSeeingEyeTerminalfor terminal-localForecast. - Player restores required production for all three carriers.
- Player uses
ActivateReactor.
Win: ReactorReadiness is true for all three carriers, one required ConsumerProp per carrier is Enabled and Producing, then ActivateReactor.
Lose: terminal Heat, UnsafeEntryLoss, wet-electric terminal failure, or other fixed terminal failure.
ImplementationNotes:
- Keep this forgiving and compact.
- Do not require hazard cleanup after
Ready.
6-2 - Cascade Lockout
Purpose: Require ordering because one fix can worsen another surface interaction.
Setup:
- Networks:
Fuel,Coolant,Electricity. - A
Fuelleak can meet anElectricityleak andIgnite. - A wall-mounted
CoolantSprinklerValvecan quench or dilute but createsSprinklerWater. - A powered
DoorPropcan contain one surface spread path. - One
AllSeeingEyeTerminalis reachable. - Required consumers: one per carrier.
Timeline:
- First choice A: use the sprinkler to suppress/dilute;
Pulsecreates wet-conduction risk. - First choice B: isolate electricity before using sprinkler;
Pulsedelays electricity production. - First choice C: power and toggle the
DoorPropto change containment. - First choice D: activate the
AllSeeingEyeTerminalfor systemicForecast. - Player chooses containment, suppression, isolation, and production order.
- Player uses
ActivateReactor.
Win: ReactorReadiness is true for all three carriers, one required ConsumerProp per carrier is Enabled and Producing, then ActivateReactor.
Lose: terminal Heat, UnsafeEntryLoss, wet-electric terminal failure, or other fixed terminal failure.
ImplementationNotes:
- This is the main test of previous group lessons in one compact level.
- Door operation must depend on local
Electricitysupply.
6-3 - Critical Path
Purpose: Final capstone with multiple valid solution orders.
Setup:
- Networks:
Fuel,Coolant,Electricity. ReactorControlPropsits on all three networks.- Two
ConsumerPropinstances per carrier exist; one per carrier is required. - One
Fuelleak, one enabled wall-mountedCoolantSprinklerValve, one wallElectricityleak, one poweredDoorProp, and one weakened structural segment. - One
AllSeeingEyeTerminal, oneHeatShield, and one relevantRemedySupplyPropare available.
Timeline:
- First choice A: activate the
AllSeeingEyeTerminal;Pulsegrants terminal-local topology andForecastwhile hazards advance. - First choice B: isolate or repair the
Fuelleak beforeIgnite. - First choice C: disable or isolate the sprinkler before energizing wet areas.
- First choice D: isolate or repair electricity before using sprinkler suppression.
- First choice E: pick up
HeatShieldor aRemedySupplyPropfor movement/access safety. - Player selects a minimum viable producing consumer set and stabilizes the most terminal interaction.
- Player uses
ActivateReactoras soon asReadyappears.
Win: ReactorReadiness is true for all three carriers, one required ConsumerProp per carrier is Enabled and Producing, then ActivateReactor.
Lose: terminal Heat, UnsafeEntryLoss, wet-electric terminal failure, or other fixed terminal failure.
ImplementationNotes:
- Winning with controlled remaining hazards is valid.
Forecastoutput should come only from fixed systemic rules while at the active terminal.
Implementation Checklist
- Add campaign manifest entries in this document order once level data exists.
- Use stable level names because save data and UI can reference them.
- Implement one tutorial level first, then one representative level from each group before filling every group.
- Prioritize mechanics in this order:
Pulseplayback andReactorReadiness.Fuelsource, leak, repair, isolation, andActivateReactor.CoolantConsumerProp, wall-mountedCoolantSprinklerValve, pressure drop, andEvaporation.Electricitywall leaks,UnsafeEntryLoss, poweredDoorProp.AllSeeingEyeTerminaland terminal-local systemicForecast.Ignite,Heat,Dilute,Quench, and wet-electricConduct.- Full campaign content pass.
- If scope tightens, ship tutorial, Group 1, one level each from Groups 2-5, and one final Group 6 level.
Test Expectations
Campaign implementation should add tests for:
- every level loading and validating,
- required consumer counts matching intended group mechanics,
- tutorial solvable with exactly one
LengthyActionbeforeActivateReactor, - every non-tutorial level exposing at least two valid first
LengthyActionchoices, - win criteria reachable for each authored level,
- no level requiring a wait or fast-forward command,
- no
Forecastvisible away from an activeAllSeeingEyeTerminal, - no pulse-only stationary robot hazard loss,
- campaign manifest order matching this document.