Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NPCs Will Forgive the Player Over Time #75535

Draft
wants to merge 16 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
418 changes: 418 additions & 0 deletions data/json/effects_on_condition/npc_eocs/generic_npc_eocs.json

Large diffs are not rendered by default.

30 changes: 30 additions & 0 deletions data/json/mutations/npc_personality.json
Original file line number Diff line number Diff line change
Expand Up @@ -149,5 +149,35 @@
"purifiable": false,
"player_display": true,
"personality_score": { "max_altruism": -3 }
},
{
"id": "personality_forgiving",
"type": "mutation",
"name": { "str": "Forgiving" },
"description": "<npc_name> doesn't like to hold much of a grudge.",
"points": 0,
"valid": false,
"purifiable": false,
"player_display": true
},
{
"id": "personality_neg_forgiving",
"type": "mutation",
"name": { "str": "Begrudging" },
"description": "<npc_name> doesn't let go of slights easily.",
"points": 0,
"valid": false,
"purifiable": false,
"player_display": true
},
{
"id": "personality_forgiving_plus",
"type": "mutation",
"name": { "str": "Lenient" },
"description": "<npc_name> is incredibly tolerant of slights, and often turns the other cheek.",
"points": 0,
"valid": false,
"purifiable": false,
"player_display": true
}
]
4 changes: 2 additions & 2 deletions data/json/npcs/Backgrounds/no_past_4.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
{
"text": "It can't be healthy to abandon your past like that…",
"topic": "BGSS_NO_PAST_4_DROPIT",
"opinion": { "anger": 3 }
"effect": { "run_eoc_with": "EOC_NPC_FORGIVENESS", "variables": { "anger_increase": "3", "anger_type": "personal_affront" } }
},
{ "text": "<done_conversation_section>", "topic": "TALK_NONE" },
{ "text": "<end_talking>", "topic": "TALK_DONE" }
Expand All @@ -28,7 +28,7 @@
{
"text": "It can't be healthy to abandon your past like that…",
"topic": "BGSS_NO_PAST_4_DROPIT",
"opinion": { "anger": 3 }
"effect": { "run_eoc_with": "EOC_NPC_FORGIVENESS", "variables": { "anger_increase": "3", "anger_type": "personal_affront" } }
},
{ "text": "<done_conversation_section>", "topic": "TALK_FRIEND_CONVERSATION" },
{ "text": "<end_talking>", "topic": "TALK_DONE" }
Expand Down
38 changes: 29 additions & 9 deletions data/json/npcs/Backgrounds/prepper_1.json
Original file line number Diff line number Diff line change
Expand Up @@ -160,8 +160,14 @@
},
"failure": {
"topic": "BGSS_PREPPER_1_SHARELOOTFAILURE",
"effect": { "u_add_var": "mission_BGSS_prepper_1_asked_about_secrets", "value": "yes" },
"opinion": { "trust": -6, "value": -3, "anger": 5 }
"effect": [
{ "u_add_var": "mission_BGSS_prepper_1_asked_about_secrets", "value": "yes" },
{
"run_eoc_with": "EOC_NPC_FORGIVENESS",
"variables": { "anger_increase": "5", "anger_type": "personal_affront" }
}
],
"opinion": { "trust": -6, "value": -3 }
}
},
{ "text": "That's all I wanted to know.", "topic": "TALK_DONE" }
Expand Down Expand Up @@ -215,7 +221,7 @@
{
"text": "For all I know, you COULD have something to do with this. Who really knows what happened?",
"topic": "BGSS_PREPPER_1_SHARELOOTFAILURE2",
"opinion": { "anger": 2 }
"effect": { "run_eoc_with": "EOC_NPC_FORGIVENESS", "variables": { "anger_increase": "2", "anger_type": "personal_affront" } }
}
]
},
Expand All @@ -227,8 +233,14 @@
{
"text": "I just wanted the loot, I'll be honest.",
"topic": "TALK_DONE",
"opinion": { "anger": 5, "value": -5, "trust": -8, "fear": -2 },
"effect": "insult_combat"
"opinion": { "value": -5, "trust": -8, "fear": -2 },
"effect": [
"insult_combat",
{
"run_eoc_with": "EOC_NPC_FORGIVENESS",
"variables": { "anger_increase": "5", "anger_type": "personal_affront" }
}
]
},
{
"text": "Well… I'm actually a government agent sent to assassinate you. I just had to find out the location of your secret stash before I took you out!",
Expand Down Expand Up @@ -383,13 +395,15 @@
"responses": [
{
"text": "Finders, keepers.",
"effect": { "run_eoc_with": "EOC_NPC_FORGIVENESS", "variables": { "anger_increase": "4", "anger_type": "personal_affront" } },
"topic": "BGSS_PREPPER_1_FOUND_LMOE3_BEMEAN",
"opinion": { "anger": 4, "value": -5, "trust": -2 }
"opinion": { "value": -5, "trust": -2 }
},
{
"text": "C'mon, you would do the same! It's life or death out here!",
"effect": { "run_eoc_with": "EOC_NPC_FORGIVENESS", "variables": { "anger_increase": "1", "anger_type": "personal_affront" } },
"topic": "BGSS_PREPPER_1_FOUND_LMOE3_BENICE",
"opinion": { "anger": 1, "value": -1, "trust": 1 }
"opinion": { "value": -1, "trust": 1 }
}
]
},
Expand All @@ -398,7 +412,12 @@
"type": "talk_topic",
"dynamic_line": "I guess I know exactly how much to trust you now.",
"responses": [
{ "text": "You sure do.", "topic": "TALK_DONE", "opinion": { "anger": 1, "value": -1, "trust": -1 } },
{
"text": "You sure do.",
"topic": "TALK_DONE",
"effect": { "run_eoc_with": "EOC_NPC_FORGIVENESS", "variables": { "anger_increase": "1", "anger_type": "personal_affront" } },
"opinion": { "value": -1, "trust": -1 }
},
{
"text": "This is the world now. If I didn't take it, someone else would have.",
"topic": "BGSS_PREPPER_1_FOUND_LMOE3_BENICE"
Expand Down Expand Up @@ -451,7 +470,8 @@
{
"text": "Well… I did. And that's just how it goes. It wasn't even that difficult.",
"topic": "TALK_DONE",
"opinion": { "anger": 3, "trust": -2 }
"effect": { "run_eoc_with": "EOC_NPC_FORGIVENESS", "variables": { "anger_increase": "3", "anger_type": "personal_affront" } },
"opinion": { "trust": -2 }
},
{
"text": "I'm sorry. I guess I just didn't know how to tell you I needed what was in it.",
Expand Down
54 changes: 46 additions & 8 deletions data/json/npcs/TALK_CYBORG_1.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,15 +25,27 @@
"text": "That's because I saved you. Listen, I could use your help…",
"trial": { "type": "PERSUADE", "difficulty": 0 },
"success": { "topic": "TALK_CYBORG_FRIENDLY", "opinion": { "trust": 1, "value": 1 } },
"failure": { "topic": "TALK_CYBORG_WARY", "opinion": { "anger": 1, "fear": 1 } }
"failure": {
"topic": "TALK_CYBORG_WARY",
"effect": { "run_eoc_with": "EOC_NPC_FORGIVENESS", "variables": { "anger_increase": "1", "anger_type": "minor_offense" } },
"opinion": { "fear": 1 }
}
},
{
"switch": true,
"default": true,
"text": "Big fucking deal. Do what I say or I'll shove that chip back where it belongs.",
"trial": { "type": "INTIMIDATE", "difficulty": 20, "mod": [ [ "AGGRESSION", -2 ], [ "BRAVERY", -2 ] ] },
"success": { "topic": "TALK_CYBORG_FEARFUL", "opinion": { "trust": -4, "fear": 3, "value": -1, "anger": 4 } },
"failure": { "topic": "TALK_CYBORG_BREAKDOWN", "opinion": { "trust": -4, "value": -5, "anger": 10 } }
"success": {
"topic": "TALK_CYBORG_FEARFUL",
"effect": { "run_eoc_with": "EOC_NPC_FORGIVENESS", "variables": { "anger_increase": "4", "anger_type": "intimidation" } },
"opinion": { "trust": -4, "fear": 3, "value": -1 }
},
"failure": {
"topic": "TALK_CYBORG_BREAKDOWN",
"effect": { "run_eoc_with": "EOC_NPC_FORGIVENESS", "variables": { "anger_increase": "10", "anger_type": "intimidation" } },
"opinion": { "trust": -4, "value": -5 }
}
},
{
"switch": true,
Expand Down Expand Up @@ -71,8 +83,16 @@
{
"text": "For all you know, I did. I'm being nice for now. You'd better hope that it lasts.",
"trial": { "type": "INTIMIDATE", "difficulty": 20, "mod": [ [ "AGGRESSION", -2 ], [ "BRAVERY", -2 ] ] },
"success": { "topic": "TALK_CYBORG_FEARFUL", "opinion": { "trust": -4, "fear": 3, "value": -1, "anger": 4 } },
"failure": { "topic": "TALK_CYBORG_BREAKDOWN", "opinion": { "trust": -4, "value": -5, "anger": 10 } }
"success": {
"topic": "TALK_CYBORG_FEARFUL",
"effect": { "run_eoc_with": "EOC_NPC_FORGIVENESS", "variables": { "anger_increase": "4", "anger_type": "intimidation" } },
"opinion": { "trust": -4, "fear": 3, "value": -1 }
},
"failure": {
"topic": "TALK_CYBORG_BREAKDOWN",
"effect": { "run_eoc_with": "EOC_NPC_FORGIVENESS", "variables": { "anger_increase": "10", "anger_type": "intimidation" } },
"opinion": { "trust": -4, "value": -5 }
}
},
{ "text": "Forget it. Enjoy your freedom.", "topic": "TALK_DONE" }
]
Expand All @@ -85,8 +105,22 @@
{
"text": "Follow me and do my bidding, then.",
"trial": { "type": "INTIMIDATE", "difficulty": 20, "mod": [ [ "FEAR", 8 ], [ "VALUE", 2 ], [ "TRUST", 2 ], [ "BRAVERY", -2 ] ] },
"success": { "topic": "TALK_AGREE_FOLLOW", "effect": "follow", "opinion": { "trust": -4, "fear": 3, "value": -1, "anger": 4 } },
"failure": { "topic": "TALK_CYBORG_BREAKDOWN", "opinion": { "trust": 4, "value": -5, "anger": 10 } }
"success": {
"topic": "TALK_AGREE_FOLLOW",
"effect": [
"follow",
{
"run_eoc_with": "EOC_NPC_FORGIVENESS",
"variables": { "anger_increase": "4", "anger_type": "intimidation" }
}
],
"opinion": { "trust": -4, "fear": 3, "value": -1 }
},
"failure": {
"topic": "TALK_CYBORG_BREAKDOWN",
"effect": { "run_eoc_with": "EOC_NPC_FORGIVENESS", "variables": { "anger_increase": "10", "anger_type": "intimidation" } },
"opinion": { "trust": 4, "value": -5 }
}
},
{
"text": "Get out of my sight.",
Expand All @@ -98,7 +132,11 @@
"text": "No, *I'm* sorry, I didn't mean that. Go do what you want.",
"trial": { "type": "PERSUADE", "difficulty": 10 },
"success": { "topic": "TALK_DONE", "opinion": { "trust": 1, "value": 1, "anger": -1 } },
"failure": { "topic": "TALK_CYBORG_BREAKDOWN", "opinion": { "trust": 4, "value": -5, "anger": 10 } }
"failure": {
"topic": "TALK_CYBORG_BREAKDOWN",
"effect": { "run_eoc_with": "EOC_NPC_FORGIVENESS", "variables": { "anger_increase": "10", "anger_type": "intimidation" } },
"opinion": { "trust": 4, "value": -5 }
}
}
]
},
Expand Down
13 changes: 12 additions & 1 deletion data/json/npcs/common_chat/TALK_COMMON_ALLY.json
Original file line number Diff line number Diff line change
Expand Up @@ -269,7 +269,18 @@
"type": "talk_topic",
"dynamic_line": "You're really leaving?",
"responses": [
{ "text": "Yeah, I'm sure. Bye.", "topic": "TALK_DONE", "effect": "leave", "opinion": { "trust": -2, "anger": 1 } },
{
"text": "Yeah, I'm sure. Bye.",
"topic": "TALK_DONE",
"effect": [
"leave",
{
"run_eoc_with": "EOC_NPC_FORGIVENESS",
"variables": { "anger_increase": "1", "anger_type": "minor_offense" }
}
],
"opinion": { "trust": -2 }
},
{ "text": "Nah, I'm just kidding.", "topic": "TALK_NONE" }
]
},
Expand Down
12 changes: 11 additions & 1 deletion data/json/npcs/common_chat/TALK_COMMON_GREET.json
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,17 @@
"difficulty": 25,
"mod": [ [ "BRAVERY", 1 ], [ "AGGRESSION", -3 ], [ "ALTRUISM", 2 ], [ "FEAR", -2 ], [ "TRUST", 3 ] ]
},
"success": { "topic": "TALK_STRANGER_SCARED", "effect": "stranger_neutral", "opinion": { "trust": -2, "fear": 1, "anger": 1 } },
"success": {
"topic": "TALK_STRANGER_SCARED",
"effect": [
"stranger_neutral",
{
"run_eoc_with": "EOC_NPC_FORGIVENESS",
"variables": { "anger_increase": "1", "anger_type": "intimidation" }
}
],
"opinion": { "trust": -2, "fear": 1 }
},
"failure": { "topic": "TALK_DONE", "effect": "hostile" }
}
]
Expand Down
15 changes: 12 additions & 3 deletions data/json/npcs/common_chat/TALK_COMMON_MISSION.json
Original file line number Diff line number Diff line change
Expand Up @@ -114,14 +114,19 @@
"text": "I'm sorry… I failed.",
"condition": "mission_failed",
"topic": "TALK_MISSION_FAILURE",
"opinion": { "trust": -1, "value": -1, "anger": 1 }
"effect": { "run_eoc_with": "EOC_NPC_FORGIVENESS", "variables": { "anger_increase": "1", "anger_type": "mission_fail" } },
"opinion": { "trust": -1, "value": -1 }
},
{
"text": "Not yet.",
"condition": "mission_failed",
"trial": { "type": "LIE", "difficulty": 10, "mod": [ [ "TRUST", 3 ] ] },
"success": { "topic": "TALK_NONE" },
"failure": { "topic": "TALK_MISSION_FAILURE", "opinion": { "trust": -3, "value": -1, "anger": 2 } }
"failure": {
"topic": "TALK_MISSION_FAILURE",
"effect": { "run_eoc_with": "EOC_NPC_FORGIVENESS", "variables": { "anger_increase": "2", "anger_type": "mission_fail" } },
"opinion": { "trust": -3, "value": -1 }
}
},
{ "text": "Not yet.", "condition": "mission_incomplete", "topic": "TALK_NONE" },
{
Expand All @@ -141,7 +146,11 @@
},
"trial": { "type": "LIE", "difficulty": 10, "mod": [ [ "TRUST", 5 ] ] },
"success": { "topic": "TALK_MISSION_SUCCESS", "effect": "mission_success" },
"failure": { "topic": "TALK_MISSION_SUCCESS_LIE", "opinion": { "trust": -5, "value": -1, "anger": 5 } }
"failure": {
"topic": "TALK_MISSION_SUCCESS_LIE",
"effect": { "run_eoc_with": "EOC_NPC_FORGIVENESS", "variables": { "anger_increase": "5", "anger_type": "personal_affront" } },
"opinion": { "trust": -5, "value": -1 }
}
},
{ "text": "No. I'll get back to it, bye!", "condition": "mission_incomplete", "topic": "TALK_NONE" },
{
Expand Down
Loading
Loading