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.
This commit is contained in:
Z. Cliffe Schreuders
2025-11-08 22:23:55 +00:00
parent 5ae0c4c54e
commit f83b2a7388
4 changed files with 68 additions and 27 deletions

File diff suppressed because one or more lines are too long

View File

@@ -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

File diff suppressed because one or more lines are too long

View File

@@ -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",