mirror of
https://github.com/cliffe/BreakEscape.git
synced 2026-02-21 11:18:08 +00:00
Add Agent 0x99 phone support dialogue script for Mission 4
Created m04_phone_agent0x99.ink (510 lines) - strategic guidance system providing event-triggered phone support throughout the mission. Key features: - Handler confidence tracking (0-100) affecting dialogue tone - Event-triggered conversations (server room, attack identified) - Adaptive guidance based on player progress and choices - Player-initiated help system (priorities, intel, tactical hints) - Voltage capture vs. speed guidance for final phase - Multi-stage mission progression support Implements dialogue planning from Stage 6 for Agent 0x99 phone contact.
This commit is contained in:
509
scenarios/m04_critical_failure/ink/m04_phone_agent0x99.ink
Normal file
509
scenarios/m04_critical_failure/ink/m04_phone_agent0x99.ink
Normal file
@@ -0,0 +1,509 @@
|
||||
// ===========================================
|
||||
// AGENT 0x99 - PHONE SUPPORT (HANDLER)
|
||||
// Mission 4: Critical Failure
|
||||
// Break Escape - Strategic Guidance Throughout Mission
|
||||
// ===========================================
|
||||
|
||||
// Variables for tracking conversation state
|
||||
VAR handler_contacted = 0 // Number of times player contacted handler
|
||||
VAR handler_confidence = 50 // 0-100 handler's confidence in mission success
|
||||
VAR server_room_reached = false
|
||||
VAR attack_mechanism_known = false
|
||||
VAR voltage_priority_discussed = false
|
||||
|
||||
// External variables (set by game)
|
||||
EXTERNAL player_name()
|
||||
EXTERNAL chen_is_ally()
|
||||
EXTERNAL operatives_defeated()
|
||||
EXTERNAL urgency_stage()
|
||||
EXTERNAL flags_submitted()
|
||||
|
||||
// ===========================================
|
||||
// FIRST CALL (Initial Contact)
|
||||
// Triggered: Shortly after mission start
|
||||
// ===========================================
|
||||
|
||||
=== first_call ===
|
||||
#speaker:agent_0x99
|
||||
|
||||
{player_name()}, status check. Are you inside the facility?
|
||||
|
||||
* [Yes, I'm in. Met the facility manager]
|
||||
~ handler_contacted += 1
|
||||
You: I'm inside. Met Robert Chen, the facility manager.
|
||||
-> chen_status_inquiry
|
||||
|
||||
* [Inside. Beginning investigation]
|
||||
~ handler_contacted += 1
|
||||
You: Inside the facility. Beginning investigation now.
|
||||
-> investigation_update
|
||||
|
||||
* [Any intel updates on my end?]
|
||||
~ handler_contacted += 1
|
||||
You: I'm in. Anything new from your end?
|
||||
-> intel_update
|
||||
|
||||
=== chen_status_inquiry ===
|
||||
#speaker:agent_0x99
|
||||
|
||||
{chen_is_ally:
|
||||
~ handler_confidence += 15
|
||||
|
||||
Good. Chen's cooperation will be valuable—he knows those systems inside out.
|
||||
|
||||
Use his SCADA expertise when you need it.
|
||||
- else:
|
||||
How's he taking the cover story? Suspicious or cooperative?
|
||||
|
||||
-> chen_cover_status
|
||||
}
|
||||
|
||||
+ [Understood. Continuing investigation]
|
||||
-> first_call_objectives
|
||||
|
||||
=== chen_cover_status ===
|
||||
#speaker:agent_0x99
|
||||
|
||||
* [He's cooperative so far]
|
||||
~ handler_confidence += 5
|
||||
You: Cooperative. Providing facility access.
|
||||
-> chen_cooperation_acknowledged
|
||||
|
||||
* [Skeptical but complying]
|
||||
You: Skeptical, but he's complying with the audit cover.
|
||||
-> chen_skeptical_acknowledged
|
||||
|
||||
* [I revealed the real mission]
|
||||
~ handler_confidence += 10
|
||||
You: I told him the truth about ENTROPY. He's fully on board.
|
||||
-> chen_revealed_acknowledged
|
||||
|
||||
=== chen_cooperation_acknowledged ===
|
||||
#speaker:agent_0x99
|
||||
|
||||
Good. Maintain the cover until you have hard evidence. Then bring him in fully if needed.
|
||||
|
||||
-> first_call_objectives
|
||||
|
||||
=== chen_skeptical_acknowledged ===
|
||||
#speaker:agent_0x99
|
||||
|
||||
Keep him cooperative. If you find evidence of compromise, that'll convince him.
|
||||
|
||||
-> first_call_objectives
|
||||
|
||||
=== chen_revealed_acknowledged ===
|
||||
#speaker:agent_0x99
|
||||
|
||||
~ handler_confidence += 10
|
||||
|
||||
Bold move. But if he's committed, use him—SCADA expertise will help identify their attack vector.
|
||||
|
||||
-> first_call_objectives
|
||||
|
||||
=== investigation_update ===
|
||||
#speaker:agent_0x99
|
||||
|
||||
Copy that. Remember your objectives:
|
||||
|
||||
Identify the attack vector. Disable it. Capture operatives if possible—especially Voltage.
|
||||
|
||||
-> first_call_objectives
|
||||
|
||||
=== intel_update ===
|
||||
#speaker:agent_0x99
|
||||
|
||||
Nothing new. Signals intelligence still shows encrypted traffic between the facility and external nodes.
|
||||
|
||||
Whatever they're planning, it's scheduled for 0800. You've got time, but not much.
|
||||
|
||||
-> first_call_objectives
|
||||
|
||||
=== first_call_objectives ===
|
||||
#speaker:agent_0x99
|
||||
|
||||
Priority one: find how they're compromising the SCADA network.
|
||||
|
||||
Look for server room access, network infrastructure, anything that explains remote control.
|
||||
|
||||
{chen_is_ally:
|
||||
Chen can point you to the right systems.
|
||||
}
|
||||
|
||||
+ [Roger that. Moving to investigate]
|
||||
-> first_call_end
|
||||
|
||||
=== first_call_end ===
|
||||
#speaker:agent_0x99
|
||||
|
||||
Stay sharp. These aren't amateurs. If you encounter hostiles, defend yourself.
|
||||
|
||||
Call if you need guidance.
|
||||
|
||||
-> END
|
||||
|
||||
// ===========================================
|
||||
// EVENT: SERVER ROOM ENTERED
|
||||
// Triggered: Player enters server room
|
||||
// ===========================================
|
||||
|
||||
=== event_server_room_entered ===
|
||||
#speaker:agent_0x99
|
||||
|
||||
~ server_room_reached = true
|
||||
~ handler_confidence += 10
|
||||
|
||||
{player_name()}, good work reaching the server room.
|
||||
|
||||
That's their access point—SCADA network infrastructure runs through there.
|
||||
|
||||
* [I see a VM terminal for network investigation]
|
||||
You: There's a network investigation terminal here. SCADA backup server.
|
||||
-> vm_guidance
|
||||
|
||||
* [What am I looking for?]
|
||||
You: What specifically should I investigate?
|
||||
-> investigation_guidance
|
||||
|
||||
=== vm_guidance ===
|
||||
#speaker:agent_0x99
|
||||
|
||||
~ handler_confidence += 5
|
||||
|
||||
Perfect. Use it to scan the SCADA network topology.
|
||||
|
||||
Identify compromised systems, enumerate services, find their attack mechanism.
|
||||
|
||||
Submit flags at the drop-site terminal when you find intelligence.
|
||||
|
||||
+ [Understood. Beginning network analysis]
|
||||
-> server_room_event_end
|
||||
|
||||
=== investigation_guidance ===
|
||||
#speaker:agent_0x99
|
||||
|
||||
Look for network access points, compromised services, remote control mechanisms.
|
||||
|
||||
They had three operatives here for hours—they installed something.
|
||||
|
||||
Find it, analyze it, and we'll know how to disable their attack.
|
||||
|
||||
+ [On it]
|
||||
-> server_room_event_end
|
||||
|
||||
=== server_room_event_end ===
|
||||
#speaker:agent_0x99
|
||||
|
||||
{operatives_defeated >= 1:
|
||||
And {player_name()}—you've already encountered hostiles. Stay alert. There may be more.
|
||||
- else:
|
||||
Watch your back. Those operatives are armed and won't hesitate.
|
||||
}
|
||||
|
||||
Call when you've got intel.
|
||||
|
||||
-> END
|
||||
|
||||
// ===========================================
|
||||
// EVENT: ATTACK MECHANISM IDENTIFIED
|
||||
// Triggered: Player submits final VM flag (distcc exploit)
|
||||
// ===========================================
|
||||
|
||||
=== event_attack_mechanism_identified ===
|
||||
#speaker:agent_0x99
|
||||
|
||||
~ attack_mechanism_known = true
|
||||
~ handler_confidence += 20
|
||||
|
||||
{player_name()}, I'm seeing your flag submissions. Outstanding work.
|
||||
|
||||
You've identified their complete attack infrastructure. Three-vector approach: physical bypass devices, SCADA malware, remote trigger.
|
||||
|
||||
* [All three vectors need to be disabled]
|
||||
You: All three attack vectors need to be neutralized to stop this.
|
||||
-> three_vector_confirmation
|
||||
|
||||
* [Where's the remote trigger?]
|
||||
You: Where's the remote trigger mechanism?
|
||||
-> trigger_location_discussion
|
||||
|
||||
=== three_vector_confirmation ===
|
||||
#speaker:agent_0x99
|
||||
|
||||
~ handler_confidence += 10
|
||||
|
||||
Correct. Physical devices on the dosing stations, malicious SCADA script, and their command laptop.
|
||||
|
||||
Disable all three, and the attack is dead.
|
||||
|
||||
-> voltage_priority_update
|
||||
|
||||
=== trigger_location_discussion ===
|
||||
#speaker:agent_0x99
|
||||
|
||||
Based on your intel, the remote trigger is with Voltage—maintenance wing command center.
|
||||
|
||||
That's where you'll find him. And that's where this ends.
|
||||
|
||||
-> voltage_priority_update
|
||||
|
||||
=== voltage_priority_update ===
|
||||
#speaker:agent_0x99
|
||||
|
||||
~ voltage_priority_discussed = true
|
||||
|
||||
Listen carefully. Voltage is high-value intelligence.
|
||||
|
||||
He knows about The Architect, multi-cell coordination, future operations.
|
||||
|
||||
* [Prioritize capture over speed?]
|
||||
You: Should I prioritize capturing Voltage even if it's riskier?
|
||||
-> capture_vs_speed_guidance
|
||||
|
||||
* [Understood. I'll attempt capture]
|
||||
~ handler_confidence += 10
|
||||
You: Understood. I'll attempt to capture him.
|
||||
-> capture_attempt_acknowledged
|
||||
|
||||
* [Attack prevention comes first]
|
||||
You: Attack prevention is priority one. Capture is secondary.
|
||||
-> attack_priority_acknowledged
|
||||
|
||||
=== capture_vs_speed_guidance ===
|
||||
#speaker:agent_0x99
|
||||
|
||||
Your call on the ground. Here's the analysis:
|
||||
|
||||
Capture Voltage: High intel value, but riskier engagement. He may threaten to trigger early.
|
||||
|
||||
Prioritize attack disabling: Lower risk, guaranteed mission success, but we lose intelligence.
|
||||
|
||||
I trust your judgment. Choose based on the tactical situation.
|
||||
|
||||
+ [I'll assess when I confront him]
|
||||
~ handler_confidence += 15
|
||||
You: I'll make the call when I confront him. Tactical situation dependent.
|
||||
-> judgment_trusted
|
||||
|
||||
=== capture_attempt_acknowledged ===
|
||||
#speaker:agent_0x99
|
||||
|
||||
Good. But {player_name()}—if he threatens to trigger the attack, stop him by any means.
|
||||
|
||||
Lives first. Intelligence second.
|
||||
|
||||
-> final_phase_briefing
|
||||
|
||||
=== attack_priority_acknowledged ===
|
||||
#speaker:agent_0x99
|
||||
|
||||
~ handler_confidence += 5
|
||||
|
||||
Solid priorities. Stop the attack. If Voltage escapes but the attack fails, that's still a win.
|
||||
|
||||
-> final_phase_briefing
|
||||
|
||||
=== judgment_trusted ===
|
||||
#speaker:agent_0x99
|
||||
|
||||
That's the right approach. Adapt to what you find.
|
||||
|
||||
-> final_phase_briefing
|
||||
|
||||
=== final_phase_briefing ===
|
||||
#speaker:agent_0x99
|
||||
|
||||
Final phase objectives:
|
||||
|
||||
One—neutralize Voltage and any remaining operatives in the maintenance wing.
|
||||
|
||||
Two—secure or destroy the remote trigger laptop.
|
||||
|
||||
Three—disable physical bypass devices and SCADA malware.
|
||||
|
||||
{operatives_defeated >= 2:
|
||||
You've already taken down {operatives_defeated} operatives. You're doing this.
|
||||
- operatives_defeated == 1:
|
||||
You've neutralized one operative. Expect resistance from the others.
|
||||
- else:
|
||||
All three operatives are still active. Be ready for combat.
|
||||
}
|
||||
|
||||
* [I'm ready. Moving to maintenance wing]
|
||||
~ handler_confidence += 10
|
||||
You: Ready. Moving to the maintenance wing now.
|
||||
-> final_encouragement
|
||||
|
||||
=== final_encouragement ===
|
||||
#speaker:agent_0x99
|
||||
|
||||
{handler_confidence >= 80:
|
||||
You've got this, {player_name()}. Textbook operation so far. Finish it.
|
||||
- handler_confidence >= 60:
|
||||
Good work so far. Stay sharp for the final push.
|
||||
- else:
|
||||
Be careful. This is the most dangerous phase.
|
||||
}
|
||||
|
||||
240,000 people are counting on you. Bring it home.
|
||||
|
||||
-> END
|
||||
|
||||
// ===========================================
|
||||
// OPTIONAL: PLAYER-INITIATED CALL (GUIDANCE REQUEST)
|
||||
// Player can call for hints/support
|
||||
// ===========================================
|
||||
|
||||
=== player_guidance_request ===
|
||||
#speaker:agent_0x99
|
||||
|
||||
~ handler_contacted += 1
|
||||
|
||||
{player_name()}, go ahead. What do you need?
|
||||
|
||||
* [What's my next priority?]
|
||||
-> priority_guidance
|
||||
|
||||
* [Intel update?]
|
||||
-> intel_status_update
|
||||
|
||||
* [I'm stuck. Suggestions?]
|
||||
-> tactical_suggestions
|
||||
|
||||
=== priority_guidance ===
|
||||
#speaker:agent_0x99
|
||||
|
||||
{not server_room_reached:
|
||||
Get to the server room. That's where they accessed the SCADA network.
|
||||
|
||||
{chen_is_ally:
|
||||
Chen can tell you how to get there.
|
||||
}
|
||||
- not attack_mechanism_known:
|
||||
Use the VM terminal in the server room. Investigate the SCADA network.
|
||||
|
||||
Identify their attack mechanism. Submit flags when you find intel.
|
||||
- else:
|
||||
You know the attack mechanism. Now disable it.
|
||||
|
||||
Confront Voltage in the maintenance wing. Secure the remote trigger. Disable all attack vectors.
|
||||
}
|
||||
|
||||
+ [Understood]
|
||||
-> guidance_call_end
|
||||
|
||||
=== intel_status_update ===
|
||||
#speaker:agent_0x99
|
||||
|
||||
{flags_submitted >= 3:
|
||||
You've submitted {flags_submitted} flags. Excellent intel gathering.
|
||||
- flags_submitted >= 1:
|
||||
You've submitted {flags_submitted} flag(s) so far. Keep investigating.
|
||||
- else:
|
||||
No flags submitted yet. Find intelligence and submit at the drop-site terminal.
|
||||
}
|
||||
|
||||
{operatives_defeated >= 2:
|
||||
Two operatives neutralized. {operatives_defeated == 3: All hostiles down.| One or two remaining.}
|
||||
- operatives_defeated == 1:
|
||||
One operative neutralized. Stay alert for the others.
|
||||
- else:
|
||||
No confirmed hostile encounters yet. They're here—be ready.
|
||||
}
|
||||
|
||||
+ [Thanks]
|
||||
-> guidance_call_end
|
||||
|
||||
=== tactical_suggestions ===
|
||||
#speaker:agent_0x99
|
||||
|
||||
What's the situation?
|
||||
|
||||
* [Can't find the next area]
|
||||
You: I can't find where to go next.
|
||||
-> navigation_help
|
||||
|
||||
* [Combat encounter is difficult]
|
||||
You: Having trouble with a combat encounter.
|
||||
-> combat_help
|
||||
|
||||
* [VM challenge is confusing]
|
||||
You: The VM network challenge is confusing.
|
||||
-> vm_challenge_help
|
||||
|
||||
=== navigation_help ===
|
||||
#speaker:agent_0x99
|
||||
|
||||
{not server_room_reached:
|
||||
Server room access: through the treatment floor. You'll need Level 2 keycard.
|
||||
|
||||
{operatives_defeated >= 1:
|
||||
Check the operative you defeated—they may have had a keycard.
|
||||
- chen_is_ally:
|
||||
Chen can provide access if you ask him.
|
||||
- else:
|
||||
Find a keycard or get Chen to provide access.
|
||||
}
|
||||
- else:
|
||||
Maintenance wing: final location. Requires master keycard.
|
||||
|
||||
{operatives_defeated >= 2:
|
||||
Check the operative in chemical storage—Relay has the master keycard.
|
||||
- else:
|
||||
Defeat the operative patrolling chemical storage. They have the master keycard.
|
||||
}
|
||||
}
|
||||
|
||||
+ [That helps, thanks]
|
||||
-> guidance_call_end
|
||||
|
||||
=== combat_help ===
|
||||
#speaker:agent_0x99
|
||||
|
||||
Use cover. These operatives have training, but so do you.
|
||||
|
||||
Stealth takedowns when possible. Direct engagement if necessary.
|
||||
|
||||
{chen_is_ally:
|
||||
Chen might have intel on operative locations if you ask.
|
||||
}
|
||||
|
||||
+ [Understood]
|
||||
-> guidance_call_end
|
||||
|
||||
=== vm_challenge_help ===
|
||||
#speaker:agent_0x99
|
||||
|
||||
Start with network scanning—Nmap. Map the SCADA topology.
|
||||
|
||||
Then enumerate services—FTP and HTTP will have intelligence files.
|
||||
|
||||
Finally, exploit vulnerable services to access attack control mechanisms.
|
||||
|
||||
{chen_is_ally:
|
||||
Chen can provide SCADA context if you need technical clarification.
|
||||
}
|
||||
|
||||
+ [Got it, thanks]
|
||||
-> guidance_call_end
|
||||
|
||||
=== guidance_call_end ===
|
||||
#speaker:agent_0x99
|
||||
|
||||
~ handler_confidence += 3
|
||||
|
||||
Anything else?
|
||||
|
||||
* [No, I'm good]
|
||||
You: No, I'm good. Thanks.
|
||||
-> call_final_end
|
||||
|
||||
* [One more thing...]
|
||||
-> player_guidance_request
|
||||
|
||||
=== call_final_end ===
|
||||
#speaker:agent_0x99
|
||||
|
||||
Stay safe out there. Call if you need me.
|
||||
|
||||
-> END
|
||||
Reference in New Issue
Block a user