From f83b2a738831139d99bef5cd5796dd0e417f5a94 Mon Sep 17 00:00:00 2001 From: "Z. Cliffe Schreuders" Date: Sat, 8 Nov 2025 22:23:55 +0000 Subject: [PATCH] Refactor NPC trust system to influence system; add new NPCs and phone interactions - Changed trust_level variable to influence in helper-npc.ink and updated related logic. - Adjusted dialogue and conditions to reflect influence instead of trust. - Introduced new NPCs: Neye Eve and Gossip Girl, with timed messages for Gossip Girl. - Updated itemsHeld in various NPCs to include phones with specific interactions. --- scenarios/compiled/helper-npc.json | 1 + scenarios/ink/helper-npc.ink | 43 +++++++++++++++----------- scenarios/ink/helper-npc.json | 2 +- scenarios/npc-sprite-test2.json | 49 +++++++++++++++++++++++++----- 4 files changed, 68 insertions(+), 27 deletions(-) create mode 100644 scenarios/compiled/helper-npc.json diff --git a/scenarios/compiled/helper-npc.json b/scenarios/compiled/helper-npc.json new file mode 100644 index 0000000..8736c74 --- /dev/null +++ b/scenarios/compiled/helper-npc.json @@ -0,0 +1 @@ +{"inkVersion":21,"root":[[["done",{"#n":"g-0"}],null],"done",{"start":["#","^speaker:npc","/#","^Hey there! I'm here to help you out if you need it. 👋","\n","^What can I do for you?","\n","ev",true,"/ev",{"VAR=":"has_greeted","re":true},{"->":"hub"},null],"hub":[["ev",{"VAR?":"asked_about_self"},"!","/ev",[{"->":".^.b","c":true},{"b":["\n","ev","str","^Who are you?","/str","/ev",{"*":".^.c-0","flg":20},{"->":"hub.0.5"},{"c-0":["\n","ev",true,"/ev",{"VAR=":"asked_about_self","re":true},{"->":"who_are_you"},{"#f":5}]}]}],"nop","\n","ev",{"VAR?":"asked_about_self"},{"VAR?":"has_unlocked_ceo"},"!","&&","/ev",[{"->":".^.b","c":true},{"b":["\n","ev","str","^Can you help me get into the CEO's office?","/str","/ev",{"*":".^.c-0","flg":4},{"->":"hub.0.14"},{"c-0":["\n",{"->":"help_ceo_office"},null]}]}],"nop","\n","ev",{"VAR?":"has_unlocked_ceo"},"/ev",[{"->":".^.b","c":true},{"b":["\n","ev","str","^Any other doors you need help with?","/str","/ev",{"*":".^.c-0","flg":4},{"->":"hub.0.20"},{"c-0":["\n",{"->":"other_doors"},null]}]}],"nop","\n","ev",{"VAR?":"asked_about_self"},{"VAR?":"has_lockpick"},{"VAR?":"has_workstation"},"||",{"VAR?":"has_phone"},"||",{"VAR?":"has_keycard"},"||","&&","/ev",[{"->":".^.b","c":true},{"b":["\n","ev","str","^Do you have any items for me?","/str","/ev",{"*":".^.c-0","flg":4},{"->":"hub.0.34"},{"c-0":["\n",{"->":"give_items"},null]}]}],"nop","\n","ev",{"VAR?":"saw_lockpick_used"},"/ev",[{"->":".^.b","c":true},{"b":["\n","ev","str","^Thanks for the lockpick! It worked great.","/str","/ev",{"*":".^.c-0","flg":4},{"->":"hub.0.40"},{"c-0":["\n",{"->":"lockpick_feedback"},null]}]}],"nop","\n","ev",{"VAR?":"influence"},3,">=","/ev",[{"->":".^.b","c":true},{"b":["\n","ev","str","^What hints do you have for me?","/str","/ev",{"*":".^.c-0","flg":4},{"->":"hub.0.48"},{"c-0":["\n",{"->":"give_hints"},null]}]}],"nop","\n","ev","str","^Thanks, I'm good for now.","/str","/ev",{"*":".^.c-0","flg":4},{"c-0":["^ ","#","^exit_conversation","/#","\n","#","^speaker:npc","/#","^Alright then. Let me know if you need anything else!","\n",{"->":"hub"},null]}],null],"who_are_you":["^I'm a friendly NPC who can help you progress through the mission.","\n","^I can unlock doors, give you items, and provide hints when you need them.","\n","ev",{"VAR?":"influence"},1,"+","/ev",{"VAR=":"influence","re":true},"#","^influence_increased","/#","^What would you like to do?","\n",{"->":"hub"},null],"help_ceo_office":["#","^speaker:npc","/#","ev",{"VAR?":"has_unlocked_ceo"},"/ev",[{"->":".^.b","c":true},{"b":["\n","^I already unlocked the CEO's office for you! Just head on in.","\n",{"->":"hub"},{"->":".^.^.^.8"},null]}],[{"->":".^.b"},{"b":["\n","^The CEO's office? That's a tough one...","\n","ev",{"VAR?":"influence"},1,">=","/ev",[{"->":".^.b","c":true},{"b":["\n","^Alright, I trust you enough. Let me unlock that door for you.","\n","ev",true,"/ev",{"VAR=":"has_unlocked_ceo","re":true},"ev",true,"/ev",{"VAR=":"asked_about_ceo","re":true},"^There you go! The door to the CEO's office is now unlocked. ","#","^unlock_door:ceo","/#","\n","ev",{"VAR?":"influence"},2,"+","/ev",{"VAR=":"influence","re":true},"#","^influence_increased","/#","^What else can I help with?","\n",{"->":"hub"},{"->":".^.^.^.10"},null]}],[{"->":".^.b"},{"b":["\n","^I don't know you well enough yet. Ask me some questions first and we can build some trust.","\n",{"->":"hub"},{"->":".^.^.^.10"},null]}],"nop","\n",{"->":".^.^.^.8"},null]}],"nop","\n",null],"other_doors":["#","^speaker:npc","/#","^What other doors do you need help with? I can try to unlock them if you tell me which ones.","\n","ev",{"VAR?":"influence"},1,"+","/ev",{"VAR=":"influence","re":true},"#","^influence_increased","/#","^Let me know!","\n",{"->":"hub"},null],"give_items":["#","^speaker:npc","/#","ev",{"VAR?":"has_lockpick"},"!",{"VAR?":"has_workstation"},"!","&&",{"VAR?":"has_phone"},"!","&&",{"VAR?":"has_keycard"},"!","&&","/ev",[{"->":".^.b","c":true},{"b":["\n","^Sorry, I don't have any items to give you right now.","\n",{"->":"hub"},{"->":".^.^.^.18"},null]}],[{"->":".^.b"},{"b":["\n","ev",{"VAR?":"influence"},2,">=","/ev",[{"->":".^.b","c":true},{"b":["\n","^Let me see what I have available...","\n","^Here's what I can offer you:","\n","ev",{"VAR?":"has_lockpick"},"/ev",[{"->":".^.b","c":true},{"b":["\n","^• Lock Pick Kit - for opening locked doors and containers 🔓","\n",{"->":".^.^.^.9"},null]}],"nop","\n","ev",{"VAR?":"has_workstation"},"/ev",[{"->":".^.b","c":true},{"b":["\n","^• Crypto Analysis Station - for cryptographic challenges 💻","\n",{"->":".^.^.^.15"},null]}],"nop","\n","ev",{"VAR?":"has_phone"},"/ev",[{"->":".^.b","c":true},{"b":["\n","^• Phone - with interesting contacts 📱","\n",{"->":".^.^.^.21"},null]}],"nop","\n","ev",{"VAR?":"has_keycard"},"/ev",[{"->":".^.b","c":true},{"b":["\n","^• Keycard - for restricted areas 🎫","\n",{"->":".^.^.^.27"},null]}],"nop","\n","^What would you like?","\n",{"->":"give_items_choice"},{"->":".^.^.^.8"},null]}],[{"->":".^.b"},{"b":["\n","^I have some items, but I need to build more influence with you first.","\n","^Build up our relationship - ask me more questions!","\n",{"->":"hub"},{"->":".^.^.^.8"},null]}],"nop","\n",{"->":".^.^.^.18"},null]}],"nop","\n",null],"give_items_choice":["ev",{"VAR?":"has_lockpick"},{"VAR?":"has_workstation"},"||",{"VAR?":"has_phone"},"||",{"VAR?":"has_keycard"},"||","/ev",[{"->":".^.b","c":true},{"b":["\n","ev","str","^Show me everything","/str","/ev",{"*":".^.c-0","flg":20},"ev","str","^Never mind","/str","/ev",{"*":".^.c-1","flg":20},{"->":".^.^.^.11"},{"c-0":["\n","#","^give_npc_inventory_items","/#","ev",true,"/ev",{"VAR=":"asked_for_items","re":true},{"->":"hub"},"ev",{"VAR?":"has_lockpick"},"/ev",[{"->":".^.b","c":true},{"b":["\n","ev","str","^I'll take the lockpick","/str","/ev",{"*":".^.c-0","flg":20},{"->":".^.^.^.13"},{"c-0":["\n","#","^give_item:lockpick","/#","ev",true,"/ev",{"VAR=":"asked_for_items","re":true},{"->":"hub"},{"#f":5}]}]}],"nop","\n","ev",{"VAR?":"has_workstation"},"/ev",[{"->":".^.b","c":true},{"b":["\n","ev","str","^I'll take the workstation","/str","/ev",{"*":".^.c-0","flg":20},{"->":".^.^.^.19"},{"c-0":["\n","#","^give_item:workstation","/#","ev",true,"/ev",{"VAR=":"asked_for_items","re":true},{"->":"hub"},{"#f":5}]}]}],"nop","\n","ev",{"VAR?":"has_phone"},"/ev",[{"->":".^.b","c":true},{"b":["\n","ev","str","^I'll take the phone","/str","/ev",{"*":".^.c-0","flg":20},{"->":".^.^.^.25"},{"c-0":["\n","#","^give_item:phone","/#","ev",true,"/ev",{"VAR=":"asked_for_items","re":true},{"->":"hub"},{"#f":5}]}]}],"nop","\n","ev",{"VAR?":"has_keycard"},"/ev",[{"->":".^.b","c":true},{"b":["\n","ev","str","^I'll take the keycard","/str","/ev",{"*":".^.c-0","flg":20},{"->":".^.^.^.31"},{"c-0":["\n","#","^give_item:keycard","/#","ev",true,"/ev",{"VAR=":"asked_for_items","re":true},{"->":"hub"},{"#f":5}]}]}],"nop","\n",{"#f":5}],"c-1":["\n",{"->":"hub"},{"#f":5}]}]}],[{"->":".^.b"},{"b":["\n","^Sorry, I don't have any items left to give you right now.","\n",{"->":"hub"},{"->":".^.^.^.11"},null]}],"nop","\n",null],"other_items":["#","^speaker:npc","/#","^I think I gave you most of what I had. Check your inventory!","\n",{"->":"hub"},null],"lockpick_feedback":["^Great! I'm glad it helped you out. That's what I'm here for.","\n","^You're doing excellent work on this mission.","\n","ev",{"VAR?":"influence"},1,"+","/ev",{"VAR=":"influence","re":true},"#","^influence_increased","/#","ev",false,"/ev",{"VAR=":"saw_lockpick_used","re":true},"^What else do you need?","\n",{"->":"hub"},null],"give_hints":["ev",{"VAR?":"has_unlocked_ceo"},"/ev",[{"->":".^.b","c":true},{"b":["\n","^The CEO's office has evidence you're looking for. Search the desk thoroughly.","\n","^Also, check any computers for sensitive files.","\n",{"->":".^.^.^.5"},null]}],[{"->":".^.b"},{"b":["\n","ev",{"VAR?":"has_lockpick"},"/ev",[{"->":".^.b","c":true},{"b":["\n","^Try using that lockpick set on locked doors and containers around the building.","\n","^You never know what secrets people hide behind locked doors!","\n",{"->":".^.^.^.6"},null]}],[{"->":".^.b"},{"b":["\n","^Explore every room carefully. Items are often hidden in places you'd least expect.","\n",{"->":".^.^.^.6"},null]}],"nop","\n",{"->":".^.^.^.5"},null]}],"nop","\n","ev",{"VAR?":"influence"},1,"+","/ev",{"VAR=":"influence","re":true},"#","^influence_increased","/#","^Good luck!","\n",{"->":"hub"},null],"on_lockpick_pickup":["ev",{"VAR?":"has_lockpick"},"/ev",[{"->":".^.b","c":true},{"b":["\n","^Great! You found the lockpick I gave you. Try it on a locked door or container!","\n",{"->":".^.^.^.5"},null]}],[{"->":".^.b"},{"b":["\n","^Nice find! That lockpick set looks professional. Could be very useful.","\n",{"->":".^.^.^.5"},null]}],"nop","\n",{"->":"hub"},null],"on_lockpick_success":["ev",true,"/ev",{"VAR=":"saw_lockpick_used","re":true},"ev",{"VAR?":"has_lockpick"},"/ev",[{"->":".^.b","c":true},{"b":["\n","^Excellent! Glad I could help you get through that.","\n",{"->":".^.^.^.9"},null]}],[{"->":".^.b"},{"b":["\n","^Nice work getting through that lock!","\n",{"->":".^.^.^.9"},null]}],"nop","\n",{"->":"hub"},null],"on_lockpick_failed":["ev",{"VAR?":"has_lockpick"},"/ev",[{"->":".^.b","c":true},{"b":["\n","^Don't give up! Lockpicking takes practice. Try adjusting the tension.","\n","^Want me to help you with anything else?","\n",{"->":".^.^.^.5"},null]}],[{"->":".^.b"},{"b":["\n","^Tough break. Lockpicking isn't easy without the right tools...","\n","^I might be able to help with that if you ask.","\n",{"->":".^.^.^.5"},null]}],"nop","\n",{"->":"hub"},null],"on_door_unlocked":["ev",true,"/ev",{"VAR=":"saw_door_unlock","re":true},"ev",{"VAR?":"has_unlocked_ceo"},"/ev",[{"->":".^.b","c":true},{"b":["\n","^Another door open! You're making great progress.","\n",{"->":".^.^.^.9"},null]}],[{"->":".^.b"},{"b":["\n","^Nice! You found a way through that door. Keep going!","\n",{"->":".^.^.^.9"},null]}],"nop","\n",{"->":"hub"},null],"on_door_attempt":["^That door's locked tight. You'll need to find a way to unlock it.","\n","ev",{"VAR?":"influence"},2,">=","/ev",[{"->":".^.b","c":true},{"b":["\n","^Want me to help you out? Just ask!","\n",{"->":".^.^.^.9"},null]}],[{"->":".^.b"},{"b":["\n","ev",{"VAR?":"influence"},1,">=","/ev",[{"->":".^.b","c":true},{"b":["\n","^I might be able to help if you build more influence with me first.","\n",{"->":".^.^.^.7"},null]}],"nop","\n",{"->":".^.^.^.9"},null]}],"nop","\n",{"->":"hub"},null],"on_ceo_desk_interact":["ev",{"VAR?":"has_unlocked_ceo"},"/ev",[{"->":".^.b","c":true},{"b":["\n","^The CEO's desk - you made it! Nice work.","\n","^That's where the important evidence is kept.","\n",{"->":".^.^.^.5"},null]}],[{"->":".^.b"},{"b":["\n","^Trying to get into the CEO's office? I might be able to help with that...","\n",{"->":".^.^.^.5"},null]}],"nop","\n",{"->":"hub"},null],"on_item_found":["ev",{"VAR?":"influence"},1,">=","/ev",[{"->":".^.b","c":true},{"b":["\n","^Good find! Every item could be important for your mission.","\n",{"->":".^.^.^.6"},null]}],"nop","\n",{"->":"hub"},null],"on_room_entered":["ev",{"VAR?":"has_unlocked_ceo"},"/ev",[{"->":".^.b","c":true},{"b":["\n","^Keep searching for that evidence!","\n",{"->":".^.^.^.5"},null]}],[{"->":".^.b"},{"b":["\n","ev",{"VAR?":"influence"},1,">=","/ev",[{"->":".^.b","c":true},{"b":["\n","^You're making progress through the building.","\n","^Let me know if you need help with anything.","\n",{"->":".^.^.^.8"},null]}],[{"->":".^.b"},{"b":["\n","^Exploring new areas...","\n",{"->":".^.^.^.8"},null]}],"nop","\n",{"->":".^.^.^.5"},null]}],"nop","\n",{"->":"hub"},null],"on_room_discovered":["ev",{"VAR?":"influence"},2,">=","/ev",[{"->":".^.b","c":true},{"b":["\n","^Great find! This new area might have what we need.","\n","^Search it thoroughly!","\n",{"->":".^.^.^.7"},null]}],[{"->":".^.b"},{"b":["\n","ev",{"VAR?":"influence"},1,">=","/ev",[{"->":".^.b","c":true},{"b":["\n","^Interesting! You've found a new area. Be careful exploring.","\n",{"->":".^.^.^.8"},null]}],[{"->":".^.b"},{"b":["\n","^A new room... wonder what's inside.","\n",{"->":".^.^.^.8"},null]}],"nop","\n",{"->":".^.^.^.7"},null]}],"nop","\n",{"->":"hub"},null],"on_ceo_office_entered":["ev",{"VAR?":"has_unlocked_ceo"},"/ev",[{"->":".^.b","c":true},{"b":["\n","^You're in! Remember, you're looking for evidence of the data breach.","\n","^Check the desk, computer, and any drawers.","\n",{"->":".^.^.^.5"},null]}],[{"->":".^.b"},{"b":["\n","^Whoa, you got into the CEO's office! That's impressive!","\n","ev",{"VAR?":"influence"},1,"+","/ev",{"VAR=":"influence","re":true},"#","^influence_increased","/#","^Maybe I underestimated you. Impressive work!","\n",{"->":".^.^.^.5"},null]}],"nop","\n",{"->":"hub"},null],"global decl":["ev",0,{"VAR=":"influence"},false,{"VAR=":"has_unlocked_ceo"},false,{"VAR=":"has_given_lockpick"},false,{"VAR=":"saw_lockpick_used"},false,{"VAR=":"saw_door_unlock"},false,{"VAR=":"has_greeted"},false,{"VAR=":"asked_about_self"},false,{"VAR=":"asked_about_ceo"},false,{"VAR=":"asked_for_items"},false,{"VAR=":"has_lockpick"},false,{"VAR=":"has_workstation"},false,{"VAR=":"has_phone"},false,{"VAR=":"has_keycard"},"/ev","end",null]}],"listDefs":{}} \ No newline at end of file diff --git a/scenarios/ink/helper-npc.ink b/scenarios/ink/helper-npc.ink index eab4ef5..06fe280 100644 --- a/scenarios/ink/helper-npc.ink +++ b/scenarios/ink/helper-npc.ink @@ -3,7 +3,7 @@ // Uses hub-based conversation pattern with once/sticky for smart menu management // Includes event-triggered reactions using auto-mapping -VAR trust_level = 0 +VAR influence = 0 VAR has_unlocked_ceo = false VAR has_given_lockpick = false VAR saw_lockpick_used = false @@ -58,7 +58,7 @@ What can I do for you? } // Trust-based advanced options -{trust_level >= 3: +{influence >= 3: + [What hints do you have for me?] -> give_hints } @@ -72,7 +72,8 @@ What can I do for you? === who_are_you === I'm a friendly NPC who can help you progress through the mission. I can unlock doors, give you items, and provide hints when you need them. -~ trust_level = trust_level + 1 +~ influence = influence + 1 +# influence_increased What would you like to do? -> hub @@ -83,12 +84,13 @@ What would you like to do? -> hub - else: The CEO's office? That's a tough one... - {trust_level >= 1: + {influence >= 1: Alright, I trust you enough. Let me unlock that door for you. ~ has_unlocked_ceo = true ~ asked_about_ceo = true There you go! The door to the CEO's office is now unlocked. #unlock_door:ceo - ~ trust_level = trust_level + 2 + ~ influence = influence + 2 + # influence_increased What else can I help with? -> hub - else: @@ -100,7 +102,8 @@ What would you like to do? === other_doors === # speaker:npc What other doors do you need help with? I can try to unlock them if you tell me which ones. -~ trust_level = trust_level + 1 +~ influence = influence + 1 +# influence_increased Let me know! -> hub @@ -110,7 +113,7 @@ Let me know! Sorry, I don't have any items to give you right now. -> hub - else: - {trust_level >= 2: + {influence >= 2: Let me see what I have available... Here's what I can offer you: @@ -130,8 +133,8 @@ Let me know! What would you like? -> give_items_choice - else: - I have some items, but I need to trust you more first. - Build up some trust - ask me questions! + I have some items, but I need to build more influence with you first. + Build up our relationship - ask me more questions! -> hub } } @@ -181,7 +184,8 @@ I think I gave you most of what I had. Check your inventory! === lockpick_feedback === Great! I'm glad it helped you out. That's what I'm here for. You're doing excellent work on this mission. -~ trust_level = trust_level + 1 +~ influence = influence + 1 +# influence_increased ~ saw_lockpick_used = false What else do you need? -> hub @@ -198,6 +202,8 @@ What else do you need? Explore every room carefully. Items are often hidden in places you'd least expect. } } +~ influence = influence + 1 +# influence_increased Good luck! -> hub @@ -251,11 +257,11 @@ Good luck! // Triggered when player tries a locked door === on_door_attempt === That door's locked tight. You'll need to find a way to unlock it. -{trust_level >= 2: +{influence >= 2: Want me to help you out? Just ask! - else: - {trust_level >= 1: - I might be able to help if you get to know me better first. + {influence >= 1: + I might be able to help if you build more influence with me first. } } -> hub @@ -272,7 +278,7 @@ That door's locked tight. You'll need to find a way to unlock it. // Triggered when player picks up any item === on_item_found === -{trust_level >= 1: +{influence >= 1: Good find! Every item could be important for your mission. } -> hub @@ -282,7 +288,7 @@ That door's locked tight. You'll need to find a way to unlock it. {has_unlocked_ceo: Keep searching for that evidence! - else: - {trust_level >= 1: + {influence >= 1: You're making progress through the building. Let me know if you need help with anything. - else: @@ -293,11 +299,11 @@ That door's locked tight. You'll need to find a way to unlock it. // Triggered when player discovers a new room for the first time === on_room_discovered === -{trust_level >= 2: +{influence >= 2: Great find! This new area might have what we need. Search it thoroughly! - else: - {trust_level >= 1: + {influence >= 1: Interesting! You've found a new area. Be careful exploring. - else: A new room... wonder what's inside. @@ -312,7 +318,8 @@ That door's locked tight. You'll need to find a way to unlock it. Check the desk, computer, and any drawers. - else: Whoa, you got into the CEO's office! That's impressive! - ~ trust_level = trust_level + 1 + ~ influence = influence + 1 + # influence_increased Maybe I underestimated you. Impressive work! } -> hub diff --git a/scenarios/ink/helper-npc.json b/scenarios/ink/helper-npc.json index bb5014f..4a8cac6 100644 --- a/scenarios/ink/helper-npc.json +++ b/scenarios/ink/helper-npc.json @@ -1 +1 @@ -{"inkVersion":21,"root":[[["done",{"#n":"g-0"}],null],"done",{"start":["#","^speaker:npc","/#","^Hey there! I'm here to help you out if you need it. 👋","\n","^What can I do for you?","\n","ev",true,"/ev",{"VAR=":"has_greeted","re":true},{"->":"hub"},null],"hub":[["ev",{"VAR?":"asked_about_self"},"!","/ev",[{"->":".^.b","c":true},{"b":["\n","ev","str","^Who are you?","/str","/ev",{"*":".^.c-0","flg":20},{"->":"hub.0.5"},{"c-0":["\n","ev",true,"/ev",{"VAR=":"asked_about_self","re":true},{"->":"who_are_you"},{"#f":5}]}]}],"nop","\n","ev",{"VAR?":"asked_about_self"},{"VAR?":"has_unlocked_ceo"},"!","&&","/ev",[{"->":".^.b","c":true},{"b":["\n","ev","str","^Can you help me get into the CEO's office?","/str","/ev",{"*":".^.c-0","flg":4},{"->":"hub.0.14"},{"c-0":["\n",{"->":"help_ceo_office"},null]}]}],"nop","\n","ev",{"VAR?":"has_unlocked_ceo"},"/ev",[{"->":".^.b","c":true},{"b":["\n","ev","str","^Any other doors you need help with?","/str","/ev",{"*":".^.c-0","flg":4},{"->":"hub.0.20"},{"c-0":["\n",{"->":"other_doors"},null]}]}],"nop","\n","ev",{"VAR?":"asked_about_self"},{"VAR?":"has_lockpick"},{"VAR?":"has_workstation"},"||",{"VAR?":"has_phone"},"||",{"VAR?":"has_keycard"},"||","&&","/ev",[{"->":".^.b","c":true},{"b":["\n","ev","str","^Do you have any items for me?","/str","/ev",{"*":".^.c-0","flg":4},{"->":"hub.0.34"},{"c-0":["\n",{"->":"give_items"},null]}]}],"nop","\n","ev",{"VAR?":"saw_lockpick_used"},"/ev",[{"->":".^.b","c":true},{"b":["\n","ev","str","^Thanks for the lockpick! It worked great.","/str","/ev",{"*":".^.c-0","flg":4},{"->":"hub.0.40"},{"c-0":["\n",{"->":"lockpick_feedback"},null]}]}],"nop","\n","ev",{"VAR?":"trust_level"},3,">=","/ev",[{"->":".^.b","c":true},{"b":["\n","ev","str","^What hints do you have for me?","/str","/ev",{"*":".^.c-0","flg":4},{"->":"hub.0.48"},{"c-0":["\n",{"->":"give_hints"},null]}]}],"nop","\n","ev","str","^Thanks, I'm good for now.","/str","/ev",{"*":".^.c-0","flg":4},{"c-0":["^ ","#","^exit_conversation","/#","\n","#","^speaker:npc","/#","^Alright then. Let me know if you need anything else!","\n",{"->":"hub"},null]}],null],"who_are_you":["^I'm a friendly NPC who can help you progress through the mission.","\n","^I can unlock doors, give you items, and provide hints when you need them.","\n","ev",{"VAR?":"trust_level"},1,"+","/ev",{"VAR=":"trust_level","re":true},"^What would you like to do?","\n",{"->":"hub"},null],"help_ceo_office":["#","^speaker:npc","/#","ev",{"VAR?":"has_unlocked_ceo"},"/ev",[{"->":".^.b","c":true},{"b":["\n","^I already unlocked the CEO's office for you! Just head on in.","\n",{"->":"hub"},{"->":".^.^.^.8"},null]}],[{"->":".^.b"},{"b":["\n","^The CEO's office? That's a tough one...","\n","ev",{"VAR?":"trust_level"},1,">=","/ev",[{"->":".^.b","c":true},{"b":["\n","^Alright, I trust you enough. Let me unlock that door for you.","\n","ev",true,"/ev",{"VAR=":"has_unlocked_ceo","re":true},"ev",true,"/ev",{"VAR=":"asked_about_ceo","re":true},"^There you go! The door to the CEO's office is now unlocked. ","#","^unlock_door:ceo","/#","\n","ev",{"VAR?":"trust_level"},2,"+","/ev",{"VAR=":"trust_level","re":true},"^What else can I help with?","\n",{"->":"hub"},{"->":".^.^.^.10"},null]}],[{"->":".^.b"},{"b":["\n","^I don't know you well enough yet. Ask me some questions first and we can build some trust.","\n",{"->":"hub"},{"->":".^.^.^.10"},null]}],"nop","\n",{"->":".^.^.^.8"},null]}],"nop","\n",null],"other_doors":["#","^speaker:npc","/#","^What other doors do you need help with? I can try to unlock them if you tell me which ones.","\n","ev",{"VAR?":"trust_level"},1,"+","/ev",{"VAR=":"trust_level","re":true},"^Let me know!","\n",{"->":"hub"},null],"give_items":["#","^speaker:npc","/#","ev",{"VAR?":"has_lockpick"},"!",{"VAR?":"has_workstation"},"!","&&",{"VAR?":"has_phone"},"!","&&",{"VAR?":"has_keycard"},"!","&&","/ev",[{"->":".^.b","c":true},{"b":["\n","^Sorry, I don't have any items to give you right now.","\n",{"->":"hub"},{"->":".^.^.^.18"},null]}],[{"->":".^.b"},{"b":["\n","ev",{"VAR?":"trust_level"},2,">=","/ev",[{"->":".^.b","c":true},{"b":["\n","^Let me see what I have available...","\n","^Here's what I can offer you:","\n","ev",{"VAR?":"has_lockpick"},"/ev",[{"->":".^.b","c":true},{"b":["\n","^• Lock Pick Kit - for opening locked doors and containers 🔓","\n",{"->":".^.^.^.9"},null]}],"nop","\n","ev",{"VAR?":"has_workstation"},"/ev",[{"->":".^.b","c":true},{"b":["\n","^• Crypto Analysis Station - for cryptographic challenges 💻","\n",{"->":".^.^.^.15"},null]}],"nop","\n","ev",{"VAR?":"has_phone"},"/ev",[{"->":".^.b","c":true},{"b":["\n","^• Phone - with interesting contacts 📱","\n",{"->":".^.^.^.21"},null]}],"nop","\n","ev",{"VAR?":"has_keycard"},"/ev",[{"->":".^.b","c":true},{"b":["\n","^• Keycard - for restricted areas 🎫","\n",{"->":".^.^.^.27"},null]}],"nop","\n","^What would you like?","\n",{"->":"give_items_choice"},{"->":".^.^.^.8"},null]}],[{"->":".^.b"},{"b":["\n","^I have some items, but I need to trust you more first.","\n","^Build up some trust - ask me questions!","\n",{"->":"hub"},{"->":".^.^.^.8"},null]}],"nop","\n",{"->":".^.^.^.18"},null]}],"nop","\n",null],"give_items_choice":["ev",{"VAR?":"has_lockpick"},{"VAR?":"has_workstation"},"||",{"VAR?":"has_phone"},"||",{"VAR?":"has_keycard"},"||","/ev",[{"->":".^.b","c":true},{"b":["\n","ev","str","^Show me everything","/str","/ev",{"*":".^.c-0","flg":20},"ev","str","^Never mind","/str","/ev",{"*":".^.c-1","flg":20},{"->":".^.^.^.11"},{"c-0":["\n","#","^give_npc_inventory_items","/#","ev",true,"/ev",{"VAR=":"asked_for_items","re":true},{"->":"hub"},"ev",{"VAR?":"has_lockpick"},"/ev",[{"->":".^.b","c":true},{"b":["\n","ev","str","^I'll take the lockpick","/str","/ev",{"*":".^.c-0","flg":20},{"->":".^.^.^.13"},{"c-0":["\n","#","^give_item:lockpick","/#","ev",true,"/ev",{"VAR=":"asked_for_items","re":true},{"->":"hub"},{"#f":5}]}]}],"nop","\n","ev",{"VAR?":"has_workstation"},"/ev",[{"->":".^.b","c":true},{"b":["\n","ev","str","^I'll take the workstation","/str","/ev",{"*":".^.c-0","flg":20},{"->":".^.^.^.19"},{"c-0":["\n","#","^give_item:workstation","/#","ev",true,"/ev",{"VAR=":"asked_for_items","re":true},{"->":"hub"},{"#f":5}]}]}],"nop","\n","ev",{"VAR?":"has_phone"},"/ev",[{"->":".^.b","c":true},{"b":["\n","ev","str","^I'll take the phone","/str","/ev",{"*":".^.c-0","flg":20},{"->":".^.^.^.25"},{"c-0":["\n","#","^give_item:phone","/#","ev",true,"/ev",{"VAR=":"asked_for_items","re":true},{"->":"hub"},{"#f":5}]}]}],"nop","\n","ev",{"VAR?":"has_keycard"},"/ev",[{"->":".^.b","c":true},{"b":["\n","ev","str","^I'll take the keycard","/str","/ev",{"*":".^.c-0","flg":20},{"->":".^.^.^.31"},{"c-0":["\n","#","^give_item:keycard","/#","ev",true,"/ev",{"VAR=":"asked_for_items","re":true},{"->":"hub"},{"#f":5}]}]}],"nop","\n",{"#f":5}],"c-1":["\n",{"->":"hub"},{"#f":5}]}]}],[{"->":".^.b"},{"b":["\n","^Sorry, I don't have any items left to give you right now.","\n",{"->":"hub"},{"->":".^.^.^.11"},null]}],"nop","\n",null],"other_items":["#","^speaker:npc","/#","^I think I gave you most of what I had. Check your inventory!","\n",{"->":"hub"},null],"lockpick_feedback":["^Great! I'm glad it helped you out. That's what I'm here for.","\n","^You're doing excellent work on this mission.","\n","ev",{"VAR?":"trust_level"},1,"+","/ev",{"VAR=":"trust_level","re":true},"ev",false,"/ev",{"VAR=":"saw_lockpick_used","re":true},"^What else do you need?","\n",{"->":"hub"},null],"give_hints":["ev",{"VAR?":"has_unlocked_ceo"},"/ev",[{"->":".^.b","c":true},{"b":["\n","^The CEO's office has evidence you're looking for. Search the desk thoroughly.","\n","^Also, check any computers for sensitive files.","\n",{"->":".^.^.^.5"},null]}],[{"->":".^.b"},{"b":["\n","ev",{"VAR?":"has_lockpick"},"/ev",[{"->":".^.b","c":true},{"b":["\n","^Try using that lockpick set on locked doors and containers around the building.","\n","^You never know what secrets people hide behind locked doors!","\n",{"->":".^.^.^.6"},null]}],[{"->":".^.b"},{"b":["\n","^Explore every room carefully. Items are often hidden in places you'd least expect.","\n",{"->":".^.^.^.6"},null]}],"nop","\n",{"->":".^.^.^.5"},null]}],"nop","\n","^Good luck!","\n",{"->":"hub"},null],"on_lockpick_pickup":["ev",{"VAR?":"has_lockpick"},"/ev",[{"->":".^.b","c":true},{"b":["\n","^Great! You found the lockpick I gave you. Try it on a locked door or container!","\n",{"->":".^.^.^.5"},null]}],[{"->":".^.b"},{"b":["\n","^Nice find! That lockpick set looks professional. Could be very useful.","\n",{"->":".^.^.^.5"},null]}],"nop","\n",{"->":"hub"},null],"on_lockpick_success":["ev",true,"/ev",{"VAR=":"saw_lockpick_used","re":true},"ev",{"VAR?":"has_lockpick"},"/ev",[{"->":".^.b","c":true},{"b":["\n","^Excellent! Glad I could help you get through that.","\n",{"->":".^.^.^.9"},null]}],[{"->":".^.b"},{"b":["\n","^Nice work getting through that lock!","\n",{"->":".^.^.^.9"},null]}],"nop","\n",{"->":"hub"},null],"on_lockpick_failed":["ev",{"VAR?":"has_lockpick"},"/ev",[{"->":".^.b","c":true},{"b":["\n","^Don't give up! Lockpicking takes practice. Try adjusting the tension.","\n","^Want me to help you with anything else?","\n",{"->":".^.^.^.5"},null]}],[{"->":".^.b"},{"b":["\n","^Tough break. Lockpicking isn't easy without the right tools...","\n","^I might be able to help with that if you ask.","\n",{"->":".^.^.^.5"},null]}],"nop","\n",{"->":"hub"},null],"on_door_unlocked":["ev",true,"/ev",{"VAR=":"saw_door_unlock","re":true},"ev",{"VAR?":"has_unlocked_ceo"},"/ev",[{"->":".^.b","c":true},{"b":["\n","^Another door open! You're making great progress.","\n",{"->":".^.^.^.9"},null]}],[{"->":".^.b"},{"b":["\n","^Nice! You found a way through that door. Keep going!","\n",{"->":".^.^.^.9"},null]}],"nop","\n",{"->":"hub"},null],"on_door_attempt":["^That door's locked tight. You'll need to find a way to unlock it.","\n","ev",{"VAR?":"trust_level"},2,">=","/ev",[{"->":".^.b","c":true},{"b":["\n","^Want me to help you out? Just ask!","\n",{"->":".^.^.^.9"},null]}],[{"->":".^.b"},{"b":["\n","ev",{"VAR?":"trust_level"},1,">=","/ev",[{"->":".^.b","c":true},{"b":["\n","^I might be able to help if you get to know me better first.","\n",{"->":".^.^.^.7"},null]}],"nop","\n",{"->":".^.^.^.9"},null]}],"nop","\n",{"->":"hub"},null],"on_ceo_desk_interact":["ev",{"VAR?":"has_unlocked_ceo"},"/ev",[{"->":".^.b","c":true},{"b":["\n","^The CEO's desk - you made it! Nice work.","\n","^That's where the important evidence is kept.","\n",{"->":".^.^.^.5"},null]}],[{"->":".^.b"},{"b":["\n","^Trying to get into the CEO's office? I might be able to help with that...","\n",{"->":".^.^.^.5"},null]}],"nop","\n",{"->":"hub"},null],"on_item_found":["ev",{"VAR?":"trust_level"},1,">=","/ev",[{"->":".^.b","c":true},{"b":["\n","^Good find! Every item could be important for your mission.","\n",{"->":".^.^.^.6"},null]}],"nop","\n",{"->":"hub"},null],"on_room_entered":["ev",{"VAR?":"has_unlocked_ceo"},"/ev",[{"->":".^.b","c":true},{"b":["\n","^Keep searching for that evidence!","\n",{"->":".^.^.^.5"},null]}],[{"->":".^.b"},{"b":["\n","ev",{"VAR?":"trust_level"},1,">=","/ev",[{"->":".^.b","c":true},{"b":["\n","^You're making progress through the building.","\n","^Let me know if you need help with anything.","\n",{"->":".^.^.^.8"},null]}],[{"->":".^.b"},{"b":["\n","^Exploring new areas...","\n",{"->":".^.^.^.8"},null]}],"nop","\n",{"->":".^.^.^.5"},null]}],"nop","\n",{"->":"hub"},null],"on_room_discovered":["ev",{"VAR?":"trust_level"},2,">=","/ev",[{"->":".^.b","c":true},{"b":["\n","^Great find! This new area might have what we need.","\n","^Search it thoroughly!","\n",{"->":".^.^.^.7"},null]}],[{"->":".^.b"},{"b":["\n","ev",{"VAR?":"trust_level"},1,">=","/ev",[{"->":".^.b","c":true},{"b":["\n","^Interesting! You've found a new area. Be careful exploring.","\n",{"->":".^.^.^.8"},null]}],[{"->":".^.b"},{"b":["\n","^A new room... wonder what's inside.","\n",{"->":".^.^.^.8"},null]}],"nop","\n",{"->":".^.^.^.7"},null]}],"nop","\n",{"->":"hub"},null],"on_ceo_office_entered":["ev",{"VAR?":"has_unlocked_ceo"},"/ev",[{"->":".^.b","c":true},{"b":["\n","^You're in! Remember, you're looking for evidence of the data breach.","\n","^Check the desk, computer, and any drawers.","\n",{"->":".^.^.^.5"},null]}],[{"->":".^.b"},{"b":["\n","^Whoa, you got into the CEO's office! That's impressive!","\n","ev",{"VAR?":"trust_level"},1,"+","/ev",{"VAR=":"trust_level","re":true},"^Maybe I underestimated you. Impressive work!","\n",{"->":".^.^.^.5"},null]}],"nop","\n",{"->":"hub"},null],"global decl":["ev",0,{"VAR=":"trust_level"},false,{"VAR=":"has_unlocked_ceo"},false,{"VAR=":"has_given_lockpick"},false,{"VAR=":"saw_lockpick_used"},false,{"VAR=":"saw_door_unlock"},false,{"VAR=":"has_greeted"},false,{"VAR=":"asked_about_self"},false,{"VAR=":"asked_about_ceo"},false,{"VAR=":"asked_for_items"},false,{"VAR=":"has_lockpick"},false,{"VAR=":"has_workstation"},false,{"VAR=":"has_phone"},false,{"VAR=":"has_keycard"},"/ev","end",null]}],"listDefs":{}} \ No newline at end of file +{"inkVersion":21,"root":[[["done",{"#n":"g-0"}],null],"done",{"start":["#","^speaker:npc","/#","^Hey there! I'm here to help you out if you need it. 👋","\n","^What can I do for you?","\n","ev",true,"/ev",{"VAR=":"has_greeted","re":true},{"->":"hub"},null],"hub":[["ev",{"VAR?":"asked_about_self"},"!","/ev",[{"->":".^.b","c":true},{"b":["\n","ev","str","^Who are you?","/str","/ev",{"*":".^.c-0","flg":20},{"->":"hub.0.5"},{"c-0":["^ ","#","^influence_increased","/#","\n","ev",true,"/ev",{"VAR=":"asked_about_self","re":true},{"->":"who_are_you"},{"#f":5}]}]}],"nop","\n","ev",{"VAR?":"asked_about_self"},{"VAR?":"has_unlocked_ceo"},"!","&&","/ev",[{"->":".^.b","c":true},{"b":["\n","ev","str","^Can you help me get into the CEO's office?","/str","/ev",{"*":".^.c-0","flg":4},{"->":"hub.0.14"},{"c-0":["\n",{"->":"help_ceo_office"},null]}]}],"nop","\n","ev",{"VAR?":"has_unlocked_ceo"},"/ev",[{"->":".^.b","c":true},{"b":["\n","ev","str","^Any other doors you need help with?","/str","/ev",{"*":".^.c-0","flg":4},{"->":"hub.0.20"},{"c-0":["\n",{"->":"other_doors"},null]}]}],"nop","\n","ev",{"VAR?":"asked_about_self"},{"VAR?":"has_lockpick"},{"VAR?":"has_workstation"},"||",{"VAR?":"has_phone"},"||",{"VAR?":"has_keycard"},"||","&&","/ev",[{"->":".^.b","c":true},{"b":["\n","ev","str","^Do you have any items for me?","/str","/ev",{"*":".^.c-0","flg":4},{"->":"hub.0.34"},{"c-0":["\n",{"->":"give_items"},null]}]}],"nop","\n","ev",{"VAR?":"saw_lockpick_used"},"/ev",[{"->":".^.b","c":true},{"b":["\n","ev","str","^Thanks for the lockpick! It worked great.","/str","/ev",{"*":".^.c-0","flg":4},{"->":"hub.0.40"},{"c-0":["\n",{"->":"lockpick_feedback"},null]}]}],"nop","\n","ev",{"VAR?":"influence"},3,">=","/ev",[{"->":".^.b","c":true},{"b":["\n","ev","str","^What hints do you have for me?","/str","/ev",{"*":".^.c-0","flg":4},{"->":"hub.0.48"},{"c-0":["\n",{"->":"give_hints"},null]}]}],"nop","\n","ev","str","^Thanks, I'm good for now.","/str","/ev",{"*":".^.c-0","flg":4},{"c-0":["^ ","#","^exit_conversation","/#","\n","#","^speaker:npc","/#","^Alright then. Let me know if you need anything else!","\n",{"->":"hub"},null]}],null],"who_are_you":["^I'm a friendly NPC who can help you progress through the mission.","\n","^I can unlock doors, give you items, and provide hints when you need them.","\n","ev",{"VAR?":"influence"},1,"+","/ev",{"VAR=":"influence","re":true},"#","^influence_increased","/#","^What would you like to do?","\n",{"->":"hub"},null],"help_ceo_office":["#","^speaker:npc","/#","ev",{"VAR?":"has_unlocked_ceo"},"/ev",[{"->":".^.b","c":true},{"b":["\n","^I already unlocked the CEO's office for you! Just head on in.","\n",{"->":"hub"},{"->":".^.^.^.8"},null]}],[{"->":".^.b"},{"b":["\n","^The CEO's office? That's a tough one...","\n","ev",{"VAR?":"influence"},1,">=","/ev",[{"->":".^.b","c":true},{"b":["\n","^Alright, I trust you enough. Let me unlock that door for you.","\n","ev",true,"/ev",{"VAR=":"has_unlocked_ceo","re":true},"ev",true,"/ev",{"VAR=":"asked_about_ceo","re":true},"^There you go! The door to the CEO's office is now unlocked. ","#","^unlock_door:ceo","/#","\n","ev",{"VAR?":"influence"},2,"+","/ev",{"VAR=":"influence","re":true},"#","^influence_increased","/#","^What else can I help with?","\n",{"->":"hub"},{"->":".^.^.^.10"},null]}],[{"->":".^.b"},{"b":["\n","^I don't know you well enough yet. Ask me some questions first and we can build some trust.","\n",{"->":"hub"},{"->":".^.^.^.10"},null]}],"nop","\n",{"->":".^.^.^.8"},null]}],"nop","\n",null],"other_doors":["#","^speaker:npc","/#","^What other doors do you need help with? I can try to unlock them if you tell me which ones.","\n","ev",{"VAR?":"influence"},1,"+","/ev",{"VAR=":"influence","re":true},"#","^influence_increased","/#","^Let me know!","\n",{"->":"hub"},null],"give_items":["#","^speaker:npc","/#","ev",{"VAR?":"has_lockpick"},"!",{"VAR?":"has_workstation"},"!","&&",{"VAR?":"has_phone"},"!","&&",{"VAR?":"has_keycard"},"!","&&","/ev",[{"->":".^.b","c":true},{"b":["\n","^Sorry, I don't have any items to give you right now.","\n",{"->":"hub"},{"->":".^.^.^.18"},null]}],[{"->":".^.b"},{"b":["\n","ev",{"VAR?":"influence"},2,">=","/ev",[{"->":".^.b","c":true},{"b":["\n","^Let me see what I have available...","\n","^Here's what I can offer you:","\n","ev",{"VAR?":"has_lockpick"},"/ev",[{"->":".^.b","c":true},{"b":["\n","^• Lock Pick Kit - for opening locked doors and containers 🔓","\n",{"->":".^.^.^.9"},null]}],"nop","\n","ev",{"VAR?":"has_workstation"},"/ev",[{"->":".^.b","c":true},{"b":["\n","^• Crypto Analysis Station - for cryptographic challenges 💻","\n",{"->":".^.^.^.15"},null]}],"nop","\n","ev",{"VAR?":"has_phone"},"/ev",[{"->":".^.b","c":true},{"b":["\n","^• Phone - with interesting contacts 📱","\n",{"->":".^.^.^.21"},null]}],"nop","\n","ev",{"VAR?":"has_keycard"},"/ev",[{"->":".^.b","c":true},{"b":["\n","^• Keycard - for restricted areas 🎫","\n",{"->":".^.^.^.27"},null]}],"nop","\n","^What would you like?","\n",{"->":"give_items_choice"},{"->":".^.^.^.8"},null]}],[{"->":".^.b"},{"b":["\n","^I have some items, but I need to build more influence with you first.","\n","^Build up our relationship - ask me more questions!","\n",{"->":"hub"},{"->":".^.^.^.8"},null]}],"nop","\n",{"->":".^.^.^.18"},null]}],"nop","\n",null],"give_items_choice":["ev",{"VAR?":"has_lockpick"},{"VAR?":"has_workstation"},"||",{"VAR?":"has_phone"},"||",{"VAR?":"has_keycard"},"||","/ev",[{"->":".^.b","c":true},{"b":["\n","ev","str","^Show me everything","/str","/ev",{"*":".^.c-0","flg":20},"ev","str","^Never mind","/str","/ev",{"*":".^.c-1","flg":20},{"->":".^.^.^.11"},{"c-0":["\n","#","^give_npc_inventory_items","/#","ev",true,"/ev",{"VAR=":"asked_for_items","re":true},{"->":"hub"},"ev",{"VAR?":"has_lockpick"},"/ev",[{"->":".^.b","c":true},{"b":["\n","ev","str","^I'll take the lockpick","/str","/ev",{"*":".^.c-0","flg":20},{"->":".^.^.^.13"},{"c-0":["\n","#","^give_item:lockpick","/#","ev",true,"/ev",{"VAR=":"asked_for_items","re":true},{"->":"hub"},{"#f":5}]}]}],"nop","\n","ev",{"VAR?":"has_workstation"},"/ev",[{"->":".^.b","c":true},{"b":["\n","ev","str","^I'll take the workstation","/str","/ev",{"*":".^.c-0","flg":20},{"->":".^.^.^.19"},{"c-0":["\n","#","^give_item:workstation","/#","ev",true,"/ev",{"VAR=":"asked_for_items","re":true},{"->":"hub"},{"#f":5}]}]}],"nop","\n","ev",{"VAR?":"has_phone"},"/ev",[{"->":".^.b","c":true},{"b":["\n","ev","str","^I'll take the phone","/str","/ev",{"*":".^.c-0","flg":20},{"->":".^.^.^.25"},{"c-0":["\n","#","^give_item:phone","/#","ev",true,"/ev",{"VAR=":"asked_for_items","re":true},{"->":"hub"},{"#f":5}]}]}],"nop","\n","ev",{"VAR?":"has_keycard"},"/ev",[{"->":".^.b","c":true},{"b":["\n","ev","str","^I'll take the keycard","/str","/ev",{"*":".^.c-0","flg":20},{"->":".^.^.^.31"},{"c-0":["\n","#","^give_item:keycard","/#","ev",true,"/ev",{"VAR=":"asked_for_items","re":true},{"->":"hub"},{"#f":5}]}]}],"nop","\n",{"#f":5}],"c-1":["\n",{"->":"hub"},{"#f":5}]}]}],[{"->":".^.b"},{"b":["\n","^Sorry, I don't have any items left to give you right now.","\n",{"->":"hub"},{"->":".^.^.^.11"},null]}],"nop","\n",null],"other_items":["#","^speaker:npc","/#","^I think I gave you most of what I had. Check your inventory!","\n",{"->":"hub"},null],"lockpick_feedback":["^Great! I'm glad it helped you out. That's what I'm here for.","\n","^You're doing excellent work on this mission.","\n","ev",{"VAR?":"influence"},1,"+","/ev",{"VAR=":"influence","re":true},"#","^influence_increased","/#","ev",false,"/ev",{"VAR=":"saw_lockpick_used","re":true},"^What else do you need?","\n",{"->":"hub"},null],"give_hints":["ev",{"VAR?":"has_unlocked_ceo"},"/ev",[{"->":".^.b","c":true},{"b":["\n","^The CEO's office has evidence you're looking for. Search the desk thoroughly.","\n","^Also, check any computers for sensitive files.","\n",{"->":".^.^.^.5"},null]}],[{"->":".^.b"},{"b":["\n","ev",{"VAR?":"has_lockpick"},"/ev",[{"->":".^.b","c":true},{"b":["\n","^Try using that lockpick set on locked doors and containers around the building.","\n","^You never know what secrets people hide behind locked doors!","\n",{"->":".^.^.^.6"},null]}],[{"->":".^.b"},{"b":["\n","^Explore every room carefully. Items are often hidden in places you'd least expect.","\n",{"->":".^.^.^.6"},null]}],"nop","\n",{"->":".^.^.^.5"},null]}],"nop","\n","ev",{"VAR?":"influence"},1,"+","/ev",{"VAR=":"influence","re":true},"#","^influence_increased","/#","^Good luck!","\n",{"->":"hub"},null],"on_lockpick_pickup":["ev",{"VAR?":"has_lockpick"},"/ev",[{"->":".^.b","c":true},{"b":["\n","^Great! You found the lockpick I gave you. Try it on a locked door or container!","\n",{"->":".^.^.^.5"},null]}],[{"->":".^.b"},{"b":["\n","^Nice find! That lockpick set looks professional. Could be very useful.","\n",{"->":".^.^.^.5"},null]}],"nop","\n",{"->":"hub"},null],"on_lockpick_success":["ev",true,"/ev",{"VAR=":"saw_lockpick_used","re":true},"ev",{"VAR?":"has_lockpick"},"/ev",[{"->":".^.b","c":true},{"b":["\n","^Excellent! Glad I could help you get through that.","\n",{"->":".^.^.^.9"},null]}],[{"->":".^.b"},{"b":["\n","^Nice work getting through that lock!","\n",{"->":".^.^.^.9"},null]}],"nop","\n",{"->":"hub"},null],"on_lockpick_failed":["ev",{"VAR?":"has_lockpick"},"/ev",[{"->":".^.b","c":true},{"b":["\n","^Don't give up! Lockpicking takes practice. Try adjusting the tension.","\n","^Want me to help you with anything else?","\n",{"->":".^.^.^.5"},null]}],[{"->":".^.b"},{"b":["\n","^Tough break. Lockpicking isn't easy without the right tools...","\n","^I might be able to help with that if you ask.","\n",{"->":".^.^.^.5"},null]}],"nop","\n",{"->":"hub"},null],"on_door_unlocked":["ev",true,"/ev",{"VAR=":"saw_door_unlock","re":true},"ev",{"VAR?":"has_unlocked_ceo"},"/ev",[{"->":".^.b","c":true},{"b":["\n","^Another door open! You're making great progress.","\n",{"->":".^.^.^.9"},null]}],[{"->":".^.b"},{"b":["\n","^Nice! You found a way through that door. Keep going!","\n",{"->":".^.^.^.9"},null]}],"nop","\n",{"->":"hub"},null],"on_door_attempt":["^That door's locked tight. You'll need to find a way to unlock it.","\n","ev",{"VAR?":"influence"},2,">=","/ev",[{"->":".^.b","c":true},{"b":["\n","^Want me to help you out? Just ask!","\n",{"->":".^.^.^.9"},null]}],[{"->":".^.b"},{"b":["\n","ev",{"VAR?":"influence"},1,">=","/ev",[{"->":".^.b","c":true},{"b":["\n","^I might be able to help if you build more influence with me first.","\n",{"->":".^.^.^.7"},null]}],"nop","\n",{"->":".^.^.^.9"},null]}],"nop","\n",{"->":"hub"},null],"on_ceo_desk_interact":["ev",{"VAR?":"has_unlocked_ceo"},"/ev",[{"->":".^.b","c":true},{"b":["\n","^The CEO's desk - you made it! Nice work.","\n","^That's where the important evidence is kept.","\n",{"->":".^.^.^.5"},null]}],[{"->":".^.b"},{"b":["\n","^Trying to get into the CEO's office? I might be able to help with that...","\n",{"->":".^.^.^.5"},null]}],"nop","\n",{"->":"hub"},null],"on_item_found":["ev",{"VAR?":"influence"},1,">=","/ev",[{"->":".^.b","c":true},{"b":["\n","^Good find! Every item could be important for your mission.","\n",{"->":".^.^.^.6"},null]}],"nop","\n",{"->":"hub"},null],"on_room_entered":["ev",{"VAR?":"has_unlocked_ceo"},"/ev",[{"->":".^.b","c":true},{"b":["\n","^Keep searching for that evidence!","\n",{"->":".^.^.^.5"},null]}],[{"->":".^.b"},{"b":["\n","ev",{"VAR?":"influence"},1,">=","/ev",[{"->":".^.b","c":true},{"b":["\n","^You're making progress through the building.","\n","^Let me know if you need help with anything.","\n",{"->":".^.^.^.8"},null]}],[{"->":".^.b"},{"b":["\n","^Exploring new areas...","\n",{"->":".^.^.^.8"},null]}],"nop","\n",{"->":".^.^.^.5"},null]}],"nop","\n",{"->":"hub"},null],"on_room_discovered":["ev",{"VAR?":"influence"},2,">=","/ev",[{"->":".^.b","c":true},{"b":["\n","^Great find! This new area might have what we need.","\n","^Search it thoroughly!","\n",{"->":".^.^.^.7"},null]}],[{"->":".^.b"},{"b":["\n","ev",{"VAR?":"influence"},1,">=","/ev",[{"->":".^.b","c":true},{"b":["\n","^Interesting! You've found a new area. Be careful exploring.","\n",{"->":".^.^.^.8"},null]}],[{"->":".^.b"},{"b":["\n","^A new room... wonder what's inside.","\n",{"->":".^.^.^.8"},null]}],"nop","\n",{"->":".^.^.^.7"},null]}],"nop","\n",{"->":"hub"},null],"on_ceo_office_entered":["ev",{"VAR?":"has_unlocked_ceo"},"/ev",[{"->":".^.b","c":true},{"b":["\n","^You're in! Remember, you're looking for evidence of the data breach.","\n","^Check the desk, computer, and any drawers.","\n",{"->":".^.^.^.5"},null]}],[{"->":".^.b"},{"b":["\n","^Whoa, you got into the CEO's office! That's impressive!","\n","ev",{"VAR?":"influence"},1,"+","/ev",{"VAR=":"influence","re":true},"#","^influence_increased","/#","^Maybe I underestimated you. Impressive work!","\n",{"->":".^.^.^.5"},null]}],"nop","\n",{"->":"hub"},null],"global decl":["ev",0,{"VAR=":"influence"},false,{"VAR=":"has_unlocked_ceo"},false,{"VAR=":"has_given_lockpick"},false,{"VAR=":"saw_lockpick_used"},false,{"VAR=":"saw_door_unlock"},false,{"VAR=":"has_greeted"},false,{"VAR=":"asked_about_self"},false,{"VAR=":"asked_about_ceo"},false,{"VAR=":"asked_for_items"},false,{"VAR=":"has_lockpick"},false,{"VAR=":"has_workstation"},false,{"VAR=":"has_phone"},false,{"VAR=":"has_keycard"},"/ev","end",null]}],"listDefs":{}} \ No newline at end of file diff --git a/scenarios/npc-sprite-test2.json b/scenarios/npc-sprite-test2.json index c3ae140..f392711 100644 --- a/scenarios/npc-sprite-test2.json +++ b/scenarios/npc-sprite-test2.json @@ -23,6 +23,31 @@ "type": "room_office", "connections": {}, "npcs": [ + { + "id": "neye_eve", + "displayName": "Neye Eve", + "storyPath": "scenarios/ink/neye-eve.json", + "avatar": "assets/npc/avatars/npc_adversary.png", + "phoneId": "player_phone", + "currentKnot": "start", + "npcType": "phone" + }, + { + "id": "gossip_girl", + "displayName": "Gossip Girl", + "storyPath": "scenarios/ink/gossip-girl.json", + "avatar": "assets/npc/avatars/npc_neutral.png", + "phoneId": "player_phone", + "currentKnot": "start", + "npcType": "phone", + "timedMessages": [ + { + "delay": 5000, + "message": "Hey! 👋 Got any juicy gossip for me today?", + "type": "text" + } + ] + }, { "id": "test_npc_front", "displayName": "Helper NPC", @@ -37,14 +62,6 @@ "storyPath": "scenarios/ink/helper-npc.json", "currentKnot": "start", "itemsHeld": [ - { - "type": "phone", - "name": "Your Phone", - "takeable": true, - "phoneId": "player_phone", - "npcIds": ["neye_eve", "gossip_girl", "helper_npc"], - "observations": "Your personal phone with some interesting contacts" - }, { "type": "workstation", "name": "Crypto Analysis Station", @@ -104,6 +121,22 @@ "storyPath": "scenarios/ink/equipment-officer.json", "currentKnot": "start", "itemsHeld": [ + { + "type": "phone", + "name": "Your Phone 1", + "takeable": true, + "phoneId": "player_phone", + "npcIds": ["gossip_girl"], + "observations": "Your personal phone with some interesting contacts" + }, + { + "type": "phone", + "name": "Your Phone 2", + "takeable": true, + "phoneId": "player_phone", + "npcIds": ["neye_eve"], + "observations": "Your personal phone with some interesting contacts" + }, { "type": "lockpick", "name": "Basic Lock Pick Kit",