From 3687f1c8fbbc377fb1628a8e91c7c5e8eb9fbc06 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 29 Dec 2025 14:26:29 +0000 Subject: [PATCH] Fix Ink compilation errors (part 1) - Add missing VAR declarations - Replace EXTERNAL declarations with proper VARs - Fix conditional syntax (add proper else clauses) - Replace -> END with #exit_conversation and loop to start - Add start knots to operative dialogue files Files fixed: - m04_opening_briefing.ink - m04_npc_operative_cipher.ink - m04_npc_operative_relay.ink - m04_npc_operative_static.ink - m04_npc_voltage.ink (partial) Remaining to fix: - m04_npc_robert_chen.ink - m04_phone_agent0x99.ink - m04_phone_robert_chen.ink - m04_terminal_attack_trigger.ink - m04_terminal_scada_display.ink - m04_closing_debrief.ink --- .../ink/m04_npc_operative_cipher.ink | 32 +++++++++------ .../ink/m04_npc_operative_relay.ink | 32 +++++++++------ .../ink/m04_npc_operative_static.ink | 41 +++++++++++-------- .../ink/m04_npc_voltage.ink | 22 +++++----- .../ink/m04_opening_briefing.ink | 9 ++-- 5 files changed, 82 insertions(+), 54 deletions(-) diff --git a/scenarios/m04_critical_failure/ink/m04_npc_operative_cipher.ink b/scenarios/m04_critical_failure/ink/m04_npc_operative_cipher.ink index 4eae5cd..3553e13 100644 --- a/scenarios/m04_critical_failure/ink/m04_npc_operative_cipher.ink +++ b/scenarios/m04_critical_failure/ink/m04_npc_operative_cipher.ink @@ -7,10 +7,9 @@ // Variables for tracking combat state VAR cipher_alerted_team = false VAR cipher_defeated = false - -// External variables (set by game) -EXTERNAL player_detected() -EXTERNAL radio_interrupted() +VAR radio_interrupted = false +VAR player_health_low = false +VAR player_defeated = false // =========================================== // CIPHER DETECTION @@ -18,6 +17,9 @@ EXTERNAL radio_interrupted() // Optional Task 2.9: Neutralize Operative #1 // =========================================== +=== start === +-> cipher_detection + === cipher_detection === #speaker:operative_cipher @@ -91,11 +93,14 @@ You picked the wrong facility to infiltrate. {cipher_defeated: -> cipher_defeated_outcome -- player_defeated: +} +{player_defeated: -> cipher_victory -- else: +} +{not cipher_defeated and not player_defeated: -> cipher_combat_sequence } +-> cipher_combat_sequence === cipher_defeated_outcome === #speaker:operative_cipher @@ -109,8 +114,9 @@ You won't... stop the attack... // Cipher drops Level 2 keycard, radio, intelligence document // TRIGGERS: Task 2.9 complete (optional) - --> END +#complete_task:neutralize_operative_cipher +#exit_conversation +-> start === cipher_victory === #speaker:operative_cipher @@ -120,8 +126,9 @@ You won't... stop the attack... Stay down. // Player respawns at checkpoint - --> END +#player_defeated +#exit_conversation +-> start // =========================================== // OPTIONAL: CIPHER SURRENDER/INTERROGATION @@ -172,5 +179,6 @@ You'd have to disable all three to stop it. // Cipher restrained and secured // TRIGGERS: Task 2.9 complete (optional) - --> END +#complete_task:neutralize_operative_cipher +#exit_conversation +-> start diff --git a/scenarios/m04_critical_failure/ink/m04_npc_operative_relay.ink b/scenarios/m04_critical_failure/ink/m04_npc_operative_relay.ink index 19f5ad9..26f7b69 100644 --- a/scenarios/m04_critical_failure/ink/m04_npc_operative_relay.ink +++ b/scenarios/m04_critical_failure/ink/m04_npc_operative_relay.ink @@ -7,10 +7,9 @@ // Variables for tracking combat state VAR relay_alerted_team = false VAR relay_defeated = false - -// External variables (set by game) -EXTERNAL player_detected() -EXTERNAL radio_interrupted() +VAR radio_interrupted = false +VAR player_health_low = false +VAR player_defeated = false // =========================================== // RELAY DETECTION @@ -18,6 +17,9 @@ EXTERNAL radio_interrupted() // Optional Task 2.10: Neutralize Operative #2 // =========================================== +=== start === +-> relay_patrol_alert + === relay_patrol_alert === #speaker:operative_relay @@ -80,11 +82,14 @@ Voltage, we've got company! {relay_defeated: -> relay_defeated_outcome -- player_defeated: +} +{player_defeated: -> relay_victory -- else: +} +{not relay_defeated and not player_defeated: -> relay_combat_sequence } +-> relay_combat_sequence === relay_defeated_outcome === #speaker:operative_relay @@ -98,8 +103,9 @@ The attack... will still... happen... // Relay drops Master keycard, radio, bypass device schematics // TRIGGERS: Task 2.10 complete (optional) - --> END +#complete_task:neutralize_operative_relay +#exit_conversation +-> start === relay_victory === #speaker:operative_relay @@ -109,8 +115,9 @@ The attack... will still... happen... Stay out of Critical Mass operations. // Player respawns at checkpoint - --> END +#player_defeated +#exit_conversation +-> start // =========================================== // OPTIONAL: RELAY SURRENDER/INTERROGATION @@ -164,5 +171,6 @@ You'd need to physically disconnect them. // Relay restrained and secured // TRIGGERS: Task 2.10 complete (optional) - --> END +#complete_task:neutralize_operative_relay +#exit_conversation +-> start diff --git a/scenarios/m04_critical_failure/ink/m04_npc_operative_static.ink b/scenarios/m04_critical_failure/ink/m04_npc_operative_static.ink index 4f4ecf9..3b53c2c 100644 --- a/scenarios/m04_critical_failure/ink/m04_npc_operative_static.ink +++ b/scenarios/m04_critical_failure/ink/m04_npc_operative_static.ink @@ -6,10 +6,10 @@ // Variables for tracking combat state VAR static_defeated = false - -// External variables (set by game) -EXTERNAL voltage_captured() -EXTERNAL player_priority() +VAR voltage_captured = false +VAR player_priority = "" +VAR player_health_low = false +VAR player_defeated = false // =========================================== // STATIC CONFRONTATION @@ -17,6 +17,9 @@ EXTERNAL player_priority() // Part of Task 3.1: Confront Voltage // =========================================== +=== start === +-> static_voltage_support + === static_voltage_support === #speaker:operative_static @@ -31,20 +34,21 @@ Voltage, we have company! // Fights alongside Voltage -> static_combat_support - -- player_priority == "disable": +} +{player_priority == "disable": // Player prioritizing laptop trigger Go! I'll cover you! // Covers Voltage's escape -> static_combat_delay - -- else: +} +{player_priority != "capture" and player_priority != "disable": // Default combat support -> static_combat_support } +-> static_combat_support === static_combat_support === #speaker:operative_static @@ -90,11 +94,14 @@ You're not stopping this operation! {static_defeated: -> static_defeated_outcome -- player_defeated: +} +{player_defeated: -> static_victory -- else: +} +{not static_defeated and not player_defeated: -> static_combat_sequence } +-> static_combat_sequence === static_defeated_outcome === #speaker:operative_static @@ -106,8 +113,8 @@ You're not stopping this operation! The Architect... will continue... // Static drops radio, encrypted communications device - --> END +#exit_conversation +-> start === static_victory === #speaker:operative_static @@ -118,7 +125,6 @@ The Architect... will continue... // If Voltage was captured but player lost Voltage is captured, but you're done. - - else: // Player defeated, Voltage status varies @@ -126,8 +132,9 @@ The Architect... will continue... } // Player respawns - --> END +#player_defeated +#exit_conversation +-> start // =========================================== // STATIC SURRENDER (Rare - Only if Voltage Captured) @@ -196,5 +203,5 @@ You stopped this one. How many others can you stop? // Static restrained // TRIGGERS: Part of Task 3.1 completion - --> END +#exit_conversation +-> start diff --git a/scenarios/m04_critical_failure/ink/m04_npc_voltage.ink b/scenarios/m04_critical_failure/ink/m04_npc_voltage.ink index 2f46af5..e3d8ff9 100644 --- a/scenarios/m04_critical_failure/ink/m04_npc_voltage.ink +++ b/scenarios/m04_critical_failure/ink/m04_npc_voltage.ink @@ -12,13 +12,13 @@ VAR combat_difficulty = "normal" // Combat difficulty modifier VAR voltage_defeated_before_trigger = false VAR voltage_triggered_attack = false VAR attack_partially_triggered = false +VAR operatives_defeated = 0 // Number of operatives defeated +VAR attack_trigger_secured = false // Trigger already disabled? +VAR voltage_defeated = false // Voltage defeated in combat? +VAR voltage_escaped = false // Voltage escaped? // External variables (set by game) EXTERNAL player_name() -EXTERNAL operatives_defeated() -EXTERNAL attack_trigger_secured() -EXTERNAL voltage_defeated() -EXTERNAL voltage_escaped() // =========================================== // CONFRONTATION START @@ -338,8 +338,9 @@ This attack. One facility. You stopped your battle. We're winning the war. // SAFETYNET team arrives to take custody // TRIGGERS: Task 3.1 complete (confront_voltage) - --> END +#complete_task:confront_voltage +#exit_conversation +-> start // =========================================== // ESCAPE OUTCOMES @@ -367,8 +368,8 @@ You're too late! // TRIGGERS: attack_partially_triggered event // Task 3.2 becomes emergency intervention mode - --> END +#exit_conversation +-> start === voltage_escape_route === #speaker:voltage @@ -393,8 +394,9 @@ This isn't over. You won your battle. We're winning the war. // TRIGGERS: voltage_escaped event // Task 3.1 complete (confront_voltage) - --> END +#complete_task:confront_voltage +#exit_conversation +-> start === voltage_escape_attempt === #speaker:voltage diff --git a/scenarios/m04_critical_failure/ink/m04_opening_briefing.ink b/scenarios/m04_critical_failure/ink/m04_opening_briefing.ink index d29943c..90c2016 100644 --- a/scenarios/m04_critical_failure/ink/m04_opening_briefing.ink +++ b/scenarios/m04_critical_failure/ink/m04_opening_briefing.ink @@ -11,6 +11,7 @@ VAR knows_full_threat = false // Did player ask about chemical threat? VAR knows_entropy_cell = false // Did player ask about Critical Mass? VAR mission_priority = "" // investigation, speed, stealth VAR combat_ready = false // Player acknowledged combat risk +VAR mission_briefed = false // Briefing completed // External variables (set by game) EXTERNAL player_name() @@ -33,7 +34,8 @@ This one's different from Ransomware Incorporated. More dangerous. * [Ask what makes it dangerous] You: What makes this cell more dangerous? - -> threat_level_explanation + Agent 0x99: They're infrastructure specialists. Not just disruption—they weaponize critical systems. + -> briefing_main * [Express readiness] ~ handler_trust += 10 @@ -321,5 +323,6 @@ Agent 0x99: {combat_ready: Combat may be unavoidable. Stay tactical.| Stay alert Agent 0x99: Good luck, {player_name()}. Bring those operatives down. ~ mission_briefed = true - --> END +#complete_task:opening_briefing +#exit_conversation +-> start