Fix Ink variable declarations and compile 4 dialogue files

- Fixed VAR declarations to match globalVariables pattern from Mission 1
- Fixed nested conditional blocks in director_morgan and architect_comms
- Successfully compiled 4 of 9 Ink files to JSON:
  ✓ m07_opening_briefing.json
  ✓ m07_director_morgan.json
  ✓ m07_architect_comms.json
  ✓ m07_closing_debrief.json

Remaining compilation issues:
- m07_phone_agent_0x99.ink: Missing architect_info knot, nested conditionals
- m07_crisis_*.ink files: Need conditional fixes (5 files)

Progress: 4/9 files (44%) successfully compiled
This commit is contained in:
Claude
2026-01-10 23:32:46 +00:00
parent 4ed4e6a8a4
commit fed23ad793
8 changed files with 83 additions and 141 deletions

View File

@@ -1,11 +1,15 @@
// Mission 7: The Architect's Gambit - The Architect Communications
// Time-based taunts from the mysterious ENTROPY mastermind
// Global variables (synced with scenario.json.erb)
VAR crisis_choice = ""
VAR architect_t30_shown = false
VAR architect_t20_shown = false
VAR architect_t10_shown = false
VAR architect_t05_shown = false
VAR architect_t01_shown = false
// Local variables for these communications
VAR architect_success_shown = false
VAR architect_failure_shown = false
@@ -236,59 +240,17 @@ Final message. One minute remaining.
After you neutralize the attack, one final message arrives.
{crisis_choice == "infrastructure":
"Congratulations. You saved 8.4 million people from a blackout. Zero casualties from power grid failure." #speaker:The Architect
"Meanwhile, at the targets you didn't choose:"
"* Corporate healthcare ransomware: 80-140 deaths from delayed care
* Social Fabric disinformation: Democratic trust damaged, civil unrest beginning
* Supply Chain: Prevented by Team Alpha
**Total casualties tonight: 80-140 deaths**
"You minimized death. Well done. But they still died. Was it worth it?"
}
{crisis_choice == "data":
"Impressive. You stopped both the data breach and the disinformation campaign. Democracy survives another day." #speaker:The Architect
"Meanwhile, at the targets you didn't choose:"
"* Infrastructure: 240-385 deaths from power grid blackout (Team Alpha failed)
* Corporate: Prevented by Team Bravo
* Supply Chain: Partial success by Team Charlie
**Total casualties tonight: 240-385 deaths**
"You saved democratic institutions. People died in the dark. Was that the right trade?"
}
{crisis_choice == "supply_chain":
"Well done. You prevented 47 million backdoor infections. Long-term national security preserved." #speaker:The Architect
"Meanwhile, at the targets you didn't choose:"
"* Infrastructure: Partial success by Team Bravo (80-120 deaths)
* Data: Full success by Team Alpha (zero casualties)
* Corporate: Healthcare ransomware deployed (80-140 deaths)
**Total casualties tonight: 160-260 deaths**
"You chose future security over present lives. They died while you prevented tomorrow's crisis. Utilitarian calculus."
}
{crisis_choice == "corporate":
"Outstanding. All 47 zero-days neutralized. $4.2 trillion in market value preserved." #speaker:The Architect
"Meanwhile, at the targets you didn't choose:"
"* Infrastructure: Full success by Team Alpha (zero casualties)
* Data: Both attacks succeeded (voter breach + disinformation, 20-40 deaths from civil unrest)
* Supply Chain: Partial success by Team Charlie
**Total casualties tonight: 20-40 deaths**
"You saved shareholder wealth. People died in civil unrest over a compromised election. What did you really protect?"
"Congratulations. You saved 8.4 million people from a blackout. Zero casualties from power grid failure. Meanwhile, at the targets you didn't choose: Corporate healthcare ransomware 80-140 deaths from delayed care, Social Fabric disinformation Democratic trust damaged, Supply Chain prevented by Team Alpha. Total casualties tonight: 80-140 deaths. You minimized death. Well done. But they still died. Was it worth it?" #speaker:The Architect
- else:
{crisis_choice == "data":
"Impressive. You stopped both the data breach and the disinformation campaign. Democracy survives another day. Meanwhile, at the targets you didn't choose: Infrastructure 240-385 deaths from power grid blackout (Team Alpha failed), Corporate prevented by Team Bravo, Supply Chain partial success by Team Charlie. Total casualties tonight: 240-385 deaths. You saved democratic institutions. People died in the dark. Was that the right trade?" #speaker:The Architect
- else:
{crisis_choice == "supply_chain":
"Well done. You prevented 47 million backdoor infections. Long-term national security preserved. Meanwhile, at the targets you didn't choose: Infrastructure partial success by Team Bravo (80-120 deaths), Data full success by Team Alpha (zero casualties), Corporate healthcare ransomware deployed (80-140 deaths). Total casualties tonight: 160-260 deaths. You chose future security over present lives. They died while you prevented tomorrow's crisis. Utilitarian calculus." #speaker:The Architect
- else:
"Outstanding. All 47 zero-days neutralized. 4.2 trillion in market value preserved. Meanwhile, at the targets you didn't choose: Infrastructure full success by Team Alpha (zero casualties), Data both attacks succeeded (voter breach + disinformation, 20-40 deaths from civil unrest), Supply Chain partial success by Team Charlie. Total casualties tonight: 20-40 deaths. You saved shareholder wealth. People died in civil unrest over a compromised election. What did you really protect?" #speaker:The Architect
}
}
}
The message continues:
@@ -312,35 +274,17 @@ The timer hits zero. You failed to stop the attack in time.
A final message from THE ARCHITECT arrives.
{crisis_choice == "infrastructure":
"The grid is falling. Cascading failures across the Pacific Northwest. 8.4 million people in darkness." #speaker:The Architect
"Over the next 72 hours: 240-385 deaths. Hospital generators failing. Traffic accidents. Hypothermia."
"You tried. But entropy won."
}
{crisis_choice == "data":
"The data is gone. 187 million voter records exfiltrated. Disinformation deploying across all platforms." #speaker:The Architect
"Democracy is about to shatter. Civil unrest incoming. 20-40 deaths in the first week. Constitutional crisis unfolding."
"You failed to protect the foundation of your republic."
}
{crisis_choice == "supply_chain":
"The backdoors are deployed. 47 million systems infected. Hospitals, banks, government agencies - all compromised." #speaker:The Architect
"They won't know for 90 days. But when they discover it, the damage will be catastrophic. $240-420 billion over 10 years."
"You failed to prevent the largest supply chain attack in history."
}
{crisis_choice == "corporate":
"47 zero-days deployed simultaneously. Stock market crashing. Healthcare ransomware active. Banking systems freezing." #speaker:The Architect
"$4.2 trillion in value destroyed. 80-140 deaths from delayed medical care. 140,000+ job losses incoming."
"You failed to protect the economic foundation of your country."
"The grid is falling. Cascading failures across the Pacific Northwest. 8.4 million people in darkness. Over the next 72 hours: 240-385 deaths. Hospital generators failing. Traffic accidents. Hypothermia. You tried. But entropy won." #speaker:The Architect
- else:
{crisis_choice == "data":
"The data is gone. 187 million voter records exfiltrated. Disinformation deploying across all platforms. Democracy is about to shatter. Civil unrest incoming. 20-40 deaths in the first week. Constitutional crisis unfolding. You failed to protect the foundation of your republic." #speaker:The Architect
- else:
{crisis_choice == "supply_chain":
"The backdoors are deployed. 47 million systems infected. Hospitals, banks, government agencies - all compromised. They won't know for 90 days. But when they discover it, the damage will be catastrophic. 240-420 billion over 10 years. You failed to prevent the largest supply chain attack in history." #speaker:The Architect
- else:
"47 zero-days deployed simultaneously. Stock market crashing. Healthcare ransomware active. Banking systems freezing. 4.2 trillion in value destroyed. 80-140 deaths from delayed medical care. 140,000+ job losses incoming. You failed to protect the economic foundation of your country." #speaker:The Architect
}
}
}
"And the other operations? Mixed results, as predicted. But YOUR failure made everything worse."

File diff suppressed because one or more lines are too long

View File

@@ -1,14 +1,18 @@
// Mission 7: The Architect's Gambit - Closing Debrief
// End-of-mission debrief reviewing all four operations and their outcomes
VAR crisis_choice = "" // Which operation player chose
VAR player_success = false // Did player succeed in their operation
// Global variables (synced with scenario.json.erb)
VAR crisis_choice = ""
VAR crisis_neutralized = false
VAR found_tomb_gamma = false
VAR found_mole_evidence = false
VAR total_casualties = 0
VAR player_operation_casualties = 0
VAR other_operations_casualties = 0
// Use crisis_neutralized for player success
VAR player_success = false
=== closing_debrief ===
You're back at SAFETYNET Emergency Operations Center. The crisis room is quieter now, but the tension remains.

File diff suppressed because one or more lines are too long

View File

@@ -1,9 +1,17 @@
// Mission 7: The Architect's Gambit - Director Morgan
// Supportive NPC who provides mission guidance and status updates
VAR mission_started = false
VAR flags_submitted = 0
// Global variables (synced with scenario.json.erb)
VAR crisis_choice = ""
VAR flag1_submitted = false
VAR flag2_submitted = false
VAR flag3_submitted = false
VAR flag4_submitted = false
VAR all_flags_submitted = false
VAR crisis_neutralized = false
// Local variables for this conversation
VAR mission_started = false
VAR asked_about_other_teams = false
VAR asked_about_architect = false
VAR asked_about_mole = false
@@ -30,35 +38,35 @@ VAR asked_about_mole = false
+ [Request situation update] -> mission_status
+ [Ask about other SAFETYNET teams] -> other_teams_status
+ [Ask about The Architect] -> architect_discussion
+ {flags_submitted >= 2} [Ask about intelligence findings] -> intelligence_discussion
+ {crisis_neutralized == false} [Request tactical guidance] -> tactical_guidance
+ {flag1_submitted and flag2_submitted} [Ask about intelligence findings] -> intelligence_discussion
+ {not crisis_neutralized} [Request tactical guidance] -> tactical_guidance
+ [That's all for now] -> END
}
=== mission_status ===
She brings up your mission status display.
{flags_submitted == 0:
{not flag1_submitted and not flag2_submitted and not flag3_submitted and not flag4_submitted:
"You haven't submitted any flags yet. Access the VM in the Server Room and begin exploitation. We need that intelligence to neutralize the attack." #speaker:Director Morgan
}
{flags_submitted == 1:
{flag1_submitted and not flag2_submitted:
"One flag submitted. Good progress, but we need all four to extract the shutdown codes. Keep pushing." #speaker:Director Morgan
}
{flags_submitted == 2:
{flag1_submitted and flag2_submitted and not flag3_submitted:
"Two flags down. You're halfway there. Clock is ticking, Agent." #speaker:Director Morgan
}
{flags_submitted == 3:
{flag1_submitted and flag2_submitted and flag3_submitted and not flag4_submitted:
"Three flags submitted. One more and you'll have everything you need to stop this. Final push." #speaker:Director Morgan
}
{flags_submitted == 4 and crisis_neutralized == false:
{all_flags_submitted and not crisis_neutralized:
"All flags submitted. Excellent work. Now use that intelligence to neutralize the threat. Get to the Crisis Terminal and stop this attack." #speaker:Director Morgan
}
{crisis_neutralized == true:
{crisis_neutralized:
"Crisis neutralized. Outstanding work, Agent. But the mission isn't over - search for intelligence about ENTROPY's broader operations." #speaker:Director Morgan
}
@@ -220,43 +228,17 @@ She reviews your mission profile.
"Tactical guidance for your operation:" #speaker:Director Morgan
{crisis_choice == "infrastructure":
"**Priority:** Reach the SCADA control room before the timer expires.
**Key Intel:** Marcus Chen is a true believer. He won't surrender easily, but he's not suicidal. If you present evidence of civilian casualties, he might hesitate.
**VM Challenge:** Focus on extracting shutdown codes from the NFS shares. You'll need root access to disable the attack scripts.
**Warning:** Chen has backup operatives. Expect resistance, but avoid prolonged combat - you're on a clock."
}
{crisis_choice == "data":
"**Priority:** You're facing dual threats - data exfiltration AND disinformation deployment.
**Critical Choice:** You may not be able to stop both. If forced to choose, prioritize based on your assessment of long-term vs. short-term damage.
**Key Intel:** Rachel Morrow (Social Fabric) can be recruited. Show her evidence of ENTROPY's casualty projections - she thinks she's exposing corruption, not causing deaths.
**Warning:** Specter (Ghost Protocol) will escape. Don't waste time chasing them - Ghost Protocol always has exit strategies."
}
{crisis_choice == "supply_chain":
"**Priority:** Disable backdoor injection before software updates deploy.
**Key Intel:** Adrian Cross is philosophically opposed to supply chain vulnerabilities, not actually pro-murder. He's recruitable if shown casualty evidence.
**VM Challenge:** Focus on quarantining already-modified updates AND preventing future injections.
**Strategic Value:** If you recruit Adrian, he's valuable long-term - deep knowledge of supply chain attack methods."
}
{crisis_choice == "corporate":
"**Priority:** Deploy countermeasures to all 12 target corporations before zero-days deploy.
**Key Intel:** Victoria Zhang (Digital Vanguard) is ideologically motivated, Marcus Chen (Zero Day Syndicate) is mercenary. Exploit that difference.
**VM Challenge:** Extract countermeasure codes and deploy patches via the automated system.
**Warning:** Marcus will escape. Victoria is recruitable - show her the casualty projections from the other operations."
"Priority: Reach the SCADA control room before the timer expires. Key Intel: Marcus Chen is a true believer. He won't surrender easily, but he's not suicidal. If you present evidence of civilian casualties, he might hesitate. VM Challenge: Focus on extracting shutdown codes from the NFS shares. You'll need root access to disable the attack scripts. Warning: Chen has backup operatives. Expect resistance, but avoid prolonged combat - you're on a clock."
- else:
{crisis_choice == "data":
"Priority: You're facing dual threats - data exfiltration AND disinformation deployment. Critical Choice: You may not be able to stop both. If forced to choose, prioritize based on your assessment of long-term vs. short-term damage. Key Intel: Rachel Morrow (Social Fabric) can be recruited. Show her evidence of ENTROPY's casualty projections - she thinks she's exposing corruption, not causing deaths. Warning: Specter (Ghost Protocol) will escape. Don't waste time chasing them - Ghost Protocol always has exit strategies."
- else:
{crisis_choice == "supply_chain":
"Priority: Disable backdoor injection before software updates deploy. Key Intel: Adrian Cross is philosophically opposed to supply chain vulnerabilities, not actually pro-murder. He's recruitable if shown casualty evidence. VM Challenge: Focus on quarantining already-modified updates AND preventing future injections. Strategic Value: If you recruit Adrian, he's valuable long-term - deep knowledge of supply chain attack methods."
- else:
"Priority: Deploy countermeasures to all 12 target corporations before zero-days deploy. Key Intel: Victoria Zhang (Digital Vanguard) is ideologically motivated, Marcus Chen (Zero Day Syndicate) is mercenary. Exploit that difference. VM Challenge: Extract countermeasure codes and deploy patches via the automated system. Warning: Marcus will escape. Victoria is recruitable - show her the casualty projections from the other operations."
}
}
}
"Good luck, Agent. You're our best operator for a reason."

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,11 +1,19 @@
// Mission 7: The Architect's Gambit - Agent 0x99 Phone Calls
// Your SAFETYNET handler provides tactical support and mission guidance
VAR contacted_0x99 = false
VAR flags_submitted = 0
// Global variables (synced with scenario.json.erb)
VAR crisis_choice = ""
VAR flag1_submitted = false
VAR flag2_submitted = false
VAR flag3_submitted = false
VAR flag4_submitted = false
VAR all_flags_submitted = false
VAR crisis_neutralized = false
VAR found_tomb_gamma = false
VAR found_mole_evidence = false
// Local variables for this conversation
VAR contacted_0x99 = false
VAR asked_about_architect_taunts = false
=== phone_0x99 ===
@@ -27,9 +35,9 @@ VAR asked_about_architect_taunts = false
+ [Request tactical guidance] -> tactical_support
+ [Ask about VM exploitation] -> vm_guidance
+ {flags_submitted >= 1} [Ask about intelligence analysis] -> intel_analysis
+ {asked_about_architect_taunts == false} [The Architect is sending me messages] -> architect_taunts
+ {crisis_neutralized == true} [Attack neutralized - what's next?] -> post_neutralization
+ {flag1_submitted} [Ask about intelligence analysis] -> intel_analysis
+ {not asked_about_architect_taunts} [The Architect is sending me messages] -> architect_taunts
+ {crisis_neutralized} [Attack neutralized - what's next?] -> post_neutralization
+ [That's all] -> END
}
@@ -275,23 +283,23 @@ Submit each flag as you find it - we're analyzing the intelligence in real-time.
=== intel_analysis ===
"Let me check what intelligence you've submitted so far..." #speaker:Agent 0x99
{flags_submitted == 0:
{not flag1_submitted:
"No flags submitted yet. Get on that VM, 0x00. We need that intelligence to neutralize the attack."
}
{flags_submitted == 1:
{flag1_submitted and not flag2_submitted:
"One flag received. Analysis shows: {crisis_choice} attack timeline confirmed, target systems identified. Keep going."
}
{flags_submitted == 2:
{flag1_submitted and flag2_submitted and not flag3_submitted:
"Two flags. We've extracted partial shutdown codes. Need the remaining flags for complete neutralization capability."
}
{flags_submitted == 3:
{flag1_submitted and flag2_submitted and flag3_submitted and not flag4_submitted:
"Three flags submitted. Almost there. One more and you'll have everything needed to stop this."
}
{flags_submitted == 4:
{all_flags_submitted:
"All four flags received. Analysis complete. We have full shutdown codes, deactivation sequences, and intelligence on ENTROPY methods."
"Outstanding work. Now use that intelligence to neutralize the threat."