From 1de3653125555dd2719fe0a1fed01151cae70b8a Mon Sep 17 00:00:00 2001 From: "Z. Cliffe Schreuders" Date: Wed, 19 Nov 2025 13:44:28 +0000 Subject: [PATCH] fix: Move all NPCs to starting room in Ghost Protocol demo All three NPCs (Netherton, Dr. Chen, Haxolottle) are now positioned in the hq_briefing_room starting room so they are immediately visible when the scenario loads. Previously they were in separate rooms which caused them not to appear since the game only loads NPCs for the starting room initially. Changes: - Moved all NPC definitions from individual rooms to hq_briefing_room - Updated npc_location context to "briefing_room" for all NPCs - Positioned NPCs at (3,3), (6,5), and (7,3) respectively --- scenarios/npc-hub-demo-ghost-protocol.json | 181 ++++++++++++++++++++- 1 file changed, 179 insertions(+), 2 deletions(-) diff --git a/scenarios/npc-hub-demo-ghost-protocol.json b/scenarios/npc-hub-demo-ghost-protocol.json index e988e52..3719d06 100644 --- a/scenarios/npc-hub-demo-ghost-protocol.json +++ b/scenarios/npc-hub-demo-ghost-protocol.json @@ -38,7 +38,7 @@ "hq_briefing_room": { "type": "room_office", "name": "SAFETYNET Briefing Room", - "description": "A secure briefing room with tactical displays showing global ENTROPY activity. Doors lead to the Director's office, Tech Lab, and Handler Station.", + "description": "A secure briefing room with tactical displays showing global ENTROPY activity. Director Netherton, Dr. Chen, and Haxolottle are all present for the Ghost Protocol mission briefing.", "connections": { "north": "netherton_office", "east": "chen_lab", @@ -52,7 +52,184 @@ "observations": "A large display showing ENTROPY threat activity across multiple regions. The Ghost in the Machine operation is highlighted in red." } ], - "npcs": [] + "npcs": [ + { + "id": "netherton", + "displayName": "Director Netherton", + "npcType": "person", + "position": { "x": 3, "y": 3 }, + "spriteSheet": "hacker", + "spriteTalk": "assets/characters/hacker-talk.png", + "spriteConfig": { + "idleFrameStart": 20, + "idleFrameEnd": 23 + }, + "storyPath": "scenarios/ink/netherton_hub.json", + "currentKnot": "netherton_conversation_entry", + "externalVariables": { + "player_name": "Agent 0x00", + "current_mission_id": "ghost_in_machine", + "npc_location": "briefing_room", + "mission_phase": "planning" + }, + "persistentVariables": { + "npc_netherton_respect": 65, + "npc_netherton_serious_conversations": 2, + "npc_netherton_personal_moments": 1, + "npc_netherton_discussed_handbook": true, + "npc_netherton_discussed_leadership": true, + "npc_netherton_discussed_safetynet_history": false, + "npc_netherton_discussed_expectations": false, + "npc_netherton_discussed_difficult_decisions": false, + "npc_netherton_discussed_agent_development": false, + "npc_netherton_discussed_bureau_politics": false, + "npc_netherton_discussed_field_vs_command": false, + "npc_netherton_discussed_weight_of_command": false, + "npc_netherton_discussed_agent_losses": false, + "npc_netherton_discussed_ethical_boundaries": false, + "npc_netherton_discussed_personal_cost": false, + "npc_netherton_discussed_legacy": false, + "npc_netherton_discussed_trust": false, + "npc_netherton_discussed_rare_praise": false, + "npc_netherton_discussed_beyond_protocol": false, + "npc_netherton_shared_vulnerability": false, + "npc_netherton_earned_personal_trust": false, + "npc_netherton_received_commendation": false + }, + "itemsHeld": [ + { + "type": "notes", + "name": "Ghost Protocol Mission Packet", + "takeable": true, + "readable": true, + "text": "CLASSIFIED: OPERATION GHOST IN THE MACHINE\n\nInfiltration Route: Service entrance, elevator shaft access\nTarget System: SCADA control servers, third floor\nBackdoor Signature: ENTROPY.Ghost.v3.2\nExtraction: Three waypoints prepared\n\nRisk Assessment: HIGH\nCritical Infrastructure Impact: SEVERE\n\n- Director Netherton", + "observations": "Detailed mission briefing from Director Netherton" + } + ] + }, + { + "id": "dr_chen", + "displayName": "Dr. Chen", + "npcType": "person", + "position": { "x": 6, "y": 5 }, + "spriteSheet": "hacker-red", + "spriteTalk": "assets/characters/hacker-red-talk.png", + "spriteConfig": { + "idleFrameStart": 20, + "idleFrameEnd": 23 + }, + "storyPath": "scenarios/ink/chen_hub.json", + "currentKnot": "chen_conversation_entry", + "externalVariables": { + "player_name": "Agent 0x00", + "current_mission_id": "ghost_in_machine", + "npc_location": "briefing_room", + "mission_phase": "planning", + "equipment_status": "needs_upgrade" + }, + "persistentVariables": { + "npc_chen_rapport": 58, + "npc_chen_tech_collaboration": 3, + "npc_chen_shared_discoveries": 1, + "npc_chen_personal_conversations": 2, + "npc_chen_discussed_tech_philosophy": true, + "npc_chen_discussed_entropy_tech": true, + "npc_chen_discussed_chen_background": false, + "npc_chen_discussed_favorite_projects": false, + "npc_chen_discussed_experimental_tech": false, + "npc_chen_discussed_research_frustrations": false, + "npc_chen_discussed_field_vs_lab": false, + "npc_chen_discussed_ethical_tech": false, + "npc_chen_discussed_dream_projects": false, + "npc_chen_discussed_tech_risks": false, + "npc_chen_discussed_work_life_balance": false, + "npc_chen_discussed_mentorship": false, + "npc_chen_discussed_future_vision": false, + "npc_chen_discussed_friendship_value": false, + "npc_chen_discussed_collaborative_legacy": false, + "npc_chen_discussed_beyond_safetynet": false, + "npc_chen_shared_personal_story": false, + "npc_chen_breakthrough_together": false, + "npc_chen_earned_research_partner_status": false + }, + "itemsHeld": [ + { + "type": "workstation", + "name": "Active Network Camouflage Device", + "takeable": true, + "observations": "Experimental equipment that masks digital signatures. Dr. Chen's latest creation for Ghost Protocol." + }, + { + "type": "keycard", + "name": "Quantum-Encrypted Comm Unit", + "takeable": true, + "observations": "Prototype quantum-encrypted communications device. Still experimental but highly secure." + } + ] + }, + { + "id": "haxolottle", + "displayName": "Agent 0x99 (Haxolottle)", + "npcType": "person", + "position": { "x": 7, "y": 3 }, + "spriteSheet": "hacker", + "spriteTalk": "assets/characters/hacker-talk.png", + "spriteConfig": { + "idleFrameStart": 20, + "idleFrameEnd": 23 + }, + "storyPath": "scenarios/ink/haxolottle_hub.json", + "currentKnot": "haxolottle_conversation_entry", + "externalVariables": { + "player_name": "Agent 0x00", + "current_mission_id": "ghost_in_machine", + "npc_location": "briefing_room", + "mission_phase": "planning", + "operational_stress_level": "moderate" + }, + "persistentVariables": { + "npc_haxolottle_friendship_level": 35, + "npc_haxolottle_conversations_had": 4, + "npc_haxolottle_trust_moments": 2, + "npc_haxolottle_humor_shared": 3, + "npc_haxolottle_vulnerable_moments": 1, + "npc_haxolottle_player_shared_personal": 2, + "npc_haxolottle_talked_hobbies_general": true, + "npc_haxolottle_talked_axolotl_obsession": true, + "npc_haxolottle_talked_music_taste": true, + "npc_haxolottle_talked_coffee_preferences": false, + "npc_haxolottle_talked_stress_management": false, + "npc_haxolottle_talked_philosophy_change": false, + "npc_haxolottle_talked_handler_life": false, + "npc_haxolottle_talked_field_nostalgia": false, + "npc_haxolottle_talked_weird_habits": false, + "npc_haxolottle_talked_favorite_operations": false, + "npc_haxolottle_talked_fears_anxieties": false, + "npc_haxolottle_talked_what_if_different": false, + "npc_haxolottle_talked_meaning_work": false, + "npc_haxolottle_talked_friendship_boundaries": false, + "npc_haxolottle_talked_future_dreams": false, + "npc_haxolottle_talked_identity_burden": false, + "npc_haxolottle_talked_loneliness_secrecy": false, + "npc_haxolottle_talked_real_name_temptation": false, + "npc_haxolottle_talked_after_safetynet": false, + "npc_haxolottle_talked_genuine_friendship": false, + "npc_haxolottle_shared_loss": false, + "npc_haxolottle_shared_doubt": false, + "npc_haxolottle_shared_secret_hobby": false + }, + "itemsHeld": [ + { + "type": "notes", + "name": "Handler Support Plan", + "takeable": true, + "readable": true, + "text": "HANDLER SUPPORT PLAN: GHOST IN THE MACHINE\n\nPre-Infiltration:\n- Security feed access (85% confidence)\n- Patrol pattern analysis\n\nActive Operation:\n- Real-time guidance\n- Route adjustments\n- Emergency extraction ready\n\nRemember: Adapt and regenerate.\n- Haxolottle (0x99)", + "observations": "Handler support plan from Haxolottle" + } + ] + } + ] }, "netherton_office": {