Update VM launcher, flag station, and add opening briefing

- vm-launcher: Add hacktivityMode and vm object following M1 pattern
- flag-station: Add acceptsVms and flags arrays for 4 VM flags
- Add opening briefing NPC with timedConversation cutscene
- Flags: network_scan, ftp_intel, pricing_intel, distcc_exploit
- Opens with Agent 0x99 briefing in reception lobby
This commit is contained in:
Z. Cliffe Schreuders
2026-01-14 09:46:32 +00:00
parent 0ddee347b2
commit e304fffd69

View File

@@ -221,6 +221,24 @@ operational_log_content = "TRANSACTION LOG - Q3 2024\n\n[2024-09-15 14:32:11] Pr
}
],
"npcs": [
{
"id": "briefing_cutscene",
"displayName": "Agent 0x99",
"npcType": "person",
"position": {"x": 500, "y": 500},
"spriteSheet": "hacker",
"spriteConfig": {
"idleFrameStart": 20,
"idleFrameEnd": 23
},
"storyPath": "scenarios/m03_ghost_in_the_machine/ink/m03_opening_briefing.json",
"currentKnot": "start",
"timedConversation": {
"delay": 0,
"targetKnot": "start",
"background": "assets/backgrounds/hq1.png"
}
},
{
"id": "receptionist_npc",
"displayName": "Receptionist",
@@ -365,9 +383,12 @@ operational_log_content = "TRANSACTION LOG - Q3 2024\n\n[2024-09-15 14:32:11] Pr
},
{
"type": "vm-launcher",
"id": "vm_launcher_zero_day",
"name": "VM Access Terminal",
"takeable": false,
"observations": "Terminal for accessing Zero Day training network VMs"
"observations": "Terminal for accessing Zero Day training network VMs",
"hacktivityMode": <%= vm_context && vm_context['hacktivity_mode'] ? 'true' : 'false' %>,
"vm": <%= vm_object('ghost_in_machine_vm_network', {"id":1,"title":"Zero Day Training Network","ip":"192.168.100.0/24","enable_console":true}) %>
},
{
"type": "workstation",
@@ -377,9 +398,34 @@ operational_log_content = "TRANSACTION LOG - Q3 2024\n\n[2024-09-15 14:32:11] Pr
},
{
"type": "flag-station",
"id": "flag_station_dropsite",
"name": "Drop-Site Terminal",
"takeable": false,
"observations": "Terminal for submitting VM flags"
"observations": "Terminal for submitting VM flags from Zero Day training network",
"acceptsVms": ["ghost_in_machine_vm_network"],
"flags": <%= flags_for_vm('ghost_in_machine_vm_network', ['flag{network_scan_complete}', 'flag{ftp_intel_gathered}', 'flag{pricing_intel_decoded}', 'flag{distcc_legacy_compromised}']) %>,
"flagRewards": [
{
"type": "emit_event",
"event_name": "network_scan_flag_submitted",
"description": "Network scanning flag submitted"
},
{
"type": "emit_event",
"event_name": "ftp_intel_flag_submitted",
"description": "FTP intelligence flag submitted"
},
{
"type": "emit_event",
"event_name": "pricing_intel_flag_submitted",
"description": "Pricing intelligence flag submitted"
},
{
"type": "emit_event",
"event_name": "distcc_exploit_flag_submitted",
"description": "distcc exploitation flag submitted - triggers M2 revelation"
}
]
}
],
"npcs": []