From a0dabe709fd89018827a5c760e8ad43f824a6588 Mon Sep 17 00:00:00 2001 From: jc_gargma Date: Tue, 1 Jun 2021 01:34:47 -0700 Subject: Expand blood drinking dialogue to allow recruiting non-allied blood dolls --- .../NPC/v_npc_responds/blood-drinking.json | 271 ++++++++++++--------- .../NPC/v_npc_responds/embrace.json | 21 ++ .../NPC/v_npc_responds/general.json | 15 ++ .../NPC/v_npc_responds/ghoul.json | 106 ++++++++ 4 files changed, 296 insertions(+), 117 deletions(-) create mode 100644 vamp_stuff/Modification_Files/NPC/v_npc_responds/embrace.json create mode 100644 vamp_stuff/Modification_Files/NPC/v_npc_responds/general.json create mode 100644 vamp_stuff/Modification_Files/NPC/v_npc_responds/ghoul.json (limited to 'vamp_stuff/Modification_Files/NPC/v_npc_responds') diff --git a/vamp_stuff/Modification_Files/NPC/v_npc_responds/blood-drinking.json b/vamp_stuff/Modification_Files/NPC/v_npc_responds/blood-drinking.json index f2b3e70..ba47447 100644 --- a/vamp_stuff/Modification_Files/NPC/v_npc_responds/blood-drinking.json +++ b/vamp_stuff/Modification_Files/NPC/v_npc_responds/blood-drinking.json @@ -14,28 +14,6 @@ { "not": "npc_driving" } ] }, "topic": "TALK_BLOODDRINK_MENU_ALLY" - }, - { - "text": "*Consider making them a ghoul*.", - "condition": { "and": [ - { "u_has_trait": "THRESH_VAMP" }, - { "not": { "npc_has_trait": "THRESH_VAMP" } }, - { "not": "is_by_radio" }, - { "not": "u_driving" }, - { "not": "npc_driving" } - ] }, - "topic": "TALK_GHOULIFY_MENU_ALLY" - }, - { - "text": "*Consider making them a vampire*.", - "condition": { "and": [ - { "u_has_trait": "THRESH_VAMP" }, - { "not": { "npc_has_trait": "THRESH_VAMP" } }, - { "not": "is_by_radio" }, - { "not": "u_driving" }, - { "not": "npc_driving" } - ] }, - "topic": "TALK_EMBRACE_MENU_ALLY" } ] }, @@ -53,16 +31,6 @@ { "not": "npc_driving" } ] }, "topic": "TALK_BLOODDRINK_MENU_FRIENDLY" - }, - { - "text": "*Consider making them a ghoul*.", - "condition": { "and": [ - { "u_has_trait": "THRESH_VAMP" }, - { "not": "is_by_radio" }, - { "not": "u_driving" }, - { "not": "npc_driving" } - ] }, - "topic": "TALK_GHOULIFY_MENU_FRIENDLY" } ] }, @@ -71,24 +39,6 @@ "note": "Check if the player is a vampire, not busy, and in person with a wary or scared npc.", "type": "talk_topic", "responses": [ - { - "text": "We'll see who is giving orders after I enslave you!.", - "condition": { "and": [ - { "u_has_trait": "THRESH_VAMP" }, - { "not": { "npc_has_trait": "THRESH_VAMP" } }, - { "not": "is_by_radio" }, - { "not": "u_driving" }, - { "not": "npc_driving" } - ] }, - "trial": { "type": "INTIMIDATE", "difficulty": 10 }, - "success": { "topic": "TALK_GHOULIFY_BY_FORCE_SUCCESS", - "effect": [ - "follow", - { "npc_add_trait": "VAMP_GHOUL" } - ], - "opinion": { "trust": -4, "fear": 3, "value": -1, "anger": 1 } }, - "failure": { "topic": "TALK_GHOULIFY_BY_FORCE_FAILURE", "effect": "hostile" } - }, { "text": "No, these are my feeding grounds!.", "condition": { "and": [ @@ -108,24 +58,6 @@ "note": "Check if the player is a vampire, not busy, and in person with a near-hostile npc.", "type": "talk_topic", "responses": [ - { - "text": "We'll see who is giving orders after I enslave you!.", - "condition": { "and": [ - { "u_has_trait": "THRESH_VAMP" }, - { "not": { "npc_has_trait": "THRESH_VAMP" } }, - { "not": "is_by_radio" }, - { "not": "u_driving" }, - { "not": "npc_driving" } - ] }, - "trial": { "type": "INTIMIDATE", "difficulty": 20 }, - "success": { "topic": "TALK_GHOULIFY_BY_FORCE_SUCCESS", - "effect": [ - "follow", - { "npc_add_trait": "VAMP_GHOUL" } - ], - "opinion": { "trust": -4, "fear": 3, "value": -1, "anger": 1 } }, - "failure": { "topic": "TALK_GHOULIFY_BY_FORCE_FAILURE", "effect": "hostile" } - }, { "text": "No, these are my feeding grounds!.", "condition": { "and": [ @@ -139,7 +71,7 @@ ] }, { - "id": [ "TALK_BLOODDRINK_MENU_ALLY" ], + "id": [ "TALK_BLOODDRINK_MENU_ALLY", "TALK_BLOODDRINK_MENU_FRIENDLY" ], "type": "talk_topic", "dynamic_line": "What is it?", "note": "The mutually-exclusive trait queries look identical on purpose for role-playing reasons.", @@ -175,7 +107,7 @@ }, { "text": "Would you mind sharing some of your blood?", - "note": "allied humans with vampire hostile traits will refuse and possibly attack you for merely being asked to give blood.", + "note": "humans with vampire hostile traits will refuse and possibly attack you for merely being asked to give blood.", "condition": { "and": [ { "not": { "npc_has_any_trait": [ "VAMP_BLOODDOLL", @@ -208,6 +140,7 @@ { "not": "is_by_radio" }, { "not": "u_driving" }, { "not": "npc_driving" }, + "npc_following", { "not": { "npc_has_any_trait": [ "BADTEMPER", "KILLER", @@ -221,6 +154,32 @@ "success": { "topic": "TALK_BLOODDRINK_ALLY_ACCEPT" }, "failure": { "topic": "TALK_BLOODDRINK_ALLY_REFUSE" }, "opinion": { "trust": -1, "anger": 1 } }, + { + "text": "Would you mind sharing some of your blood?", + "note": "non-allied humans need to be convinced to give blood.", + "condition": { "and": [ + { "not": { "npc_has_any_trait": [ + "VAMP_BLOODDOLL", + "THRESH_VAMP", + "VAMP_GHOUL" + ] } }, + { "not": "is_by_radio" }, + { "not": "u_driving" }, + { "not": "npc_driving" }, + { "not": "npc_following" }, + { "not": { "npc_has_any_trait": [ + "BADTEMPER", + "KILLER", + "MOODSWINGS", + "SPIRITUAL", + "THRESH_LUPINE" + ] } }, + { "not": { "npc_has_trait": "vamp_given_blood" } } + ] }, + "trial": { "type": "PERSUADE", "difficulty": 20, "mod": [ [ "TRUST", 6 ], [ "VALUE", 2 ], [ "ANGER", -6 ] ] }, + "success": { "topic": "TALK_BLOODDRINK_FRIENDLY_ACCEPT" }, + "failure": { "topic": "TALK_BLOODDRINK_FRIENDLY_REFUSE" }, "opinion": { "trust": -1, "anger": 1 } + }, { "text": "Would you mind sharing some of your blood?", "note": "allied humans need to be convinced to give blood.", @@ -277,7 +236,7 @@ "id": [ "TALK_BLOODDRINK_BLOODDOLL_ACCEPT" ], "type": "talk_topic", "dynamic_line": "I would love to. Mmmm~", - "note": "a blood doll is happy to provide blood. Recover hunger and thirst and heal damage. blood doll takes damage or dies.", + "note": "A blood doll is happy to provide blood. Recover hunger and thirst and heal damage. blood doll takes damage or dies.", "responses": [ { "text": "*You bite their neck, careful not to cause permanent damage*", "topic": "TALK_BLOODDRINK_BLOODDOLL_ACCEPT_LIVE" }, { "text": "*You bite their neck, losing yourself to the hunger*", "topic": "TALK_BLOODDRINK_BLOODDOLL_ACCEPT_DIE" } @@ -286,7 +245,10 @@ { "id": [ "TALK_BLOODDRINK_BLOODDOLL_ACCEPT_LIVE" ], "type": "talk_topic", - "dynamic_line": "Ah...Ahn♪ Oh Mistress, that feels so...good...", + "dynamic_line": { + "npc_following": "Ah...Ahn♪ Oh Mistress, that feels so...good...", + "no": "Ah...Ahn♪ That feels so...good..." + }, "speaker_effect": { "effect": [ { "u_buy_item": "blood", "count": 2, "container": "bag_iv" }, @@ -294,14 +256,50 @@ ] }, "responses": [ - { "text": "*You drink of their blood until you are both sated*", "topic": "TALK_DONE" } + { + "text": "*You drink of their blood until you are both sated*", + "trial": { + "type": "CONDITION", + "condition": { + "not": "npc_following" + } + }, + "success": { "topic": "TALK_BLOODDRINK_BLOODDOLL_ACCEPT_LIVE_JOIN_OFFER" }, + "failure": { "topic": "TALK_DONE" } + } + ] + }, + { + "id": [ "TALK_BLOODDRINK_BLOODDOLL_ACCEPT_LIVE_JOIN_OFFER" ], + "type": "talk_topic", + "note": "Non-allied blood dolls desire to join any vampire that indulges their twisted pleasure.", + "dynamic_line": "Dark one, would you accept me into your care? I will obey your commands and happily give my blood myself whenever I am able.", + "responses": [ + { "text": "Very well, you shall belong to me from now on.", "topic": "TALK_BLOODDRINK_BLOODDOLL_ACCEPT_LIVE_JOIN_ACCEPT", "effect": "follow", "opinion": { "trust": 5, "value": 10 } }, + { "text": "A tempting offer, but I must decline.", "topic": "TALK_BLOODDRINK_BLOODDOLL_ACCEPT_LIVE_JOIN_REFUSE" } + ] + }, + { + "id": [ "TALK_BLOODDRINK_BLOODDOLL_ACCEPT_LIVE_JOIN_ACCEPT" ], + "type": "talk_topic", + "dynamic_line": "Yes, Mistress. I will serve you loyally.", + "responses": [ + { "text": "I am sure you will.", "topic": "TALK_DONE" } + ] + }, + { + "id": [ "TALK_BLOODDRINK_BLOODDOLL_ACCEPT_LIVE_JOIN_REFUSE" ], + "type": "talk_topic", + "dynamic_line": "You won't have me? Darn. Well, my offer stands in case you change your mind.", + "responses": [ + { "text": "Perhaps. Farewell.", "topic": "TALK_DONE" } ] }, { "id": [ "TALK_BLOODDRINK_BLOODDOLL_ACCEPT_DIE" ], "type": "talk_topic", "dynamic_line": "Ah...Ahn♪ Oh Mistress, that feels so...good...st-stop, you're h-hurting...m...", - "note": "The npc dies, and player should receive a large morale nerf for murdering a friend.", + "note": "The npc dies, and player should receive a large morale and player faction reputation nerf for murdering a follower.", "speaker_effect": { "effect": [ { "u_buy_item": "blood", "count": 2, "container": "bag_iv" }, @@ -318,7 +316,7 @@ ] }, "responses": [ - { "text": "*You drink of their blood until their heart stops*", "topic": "TALK_DONE" } + { "text": "*You drink of their blood until their heart stops*", "topic": "TALK_DONE", "effect": { "u_faction_rep": -75 } } ] }, { @@ -384,13 +382,23 @@ ] }, { - "id": [ "TALK_BLOODDRINK_ALLY_ACCEPT" ], + "id": [ "TALK_BLOODDRINK_ALLY_ACCEPT", "TALK_BLOODDRINK_FRIENDLY_ACCEPT" ], "type": "talk_topic", "dynamic_line": "Hmmm, alright. Just make certain to only take a little.", "note": "a human was convinced to provide blood. Recover hunger and thirst and heal damage. human takes damage or dies.", "responses": [ { "text": "*You bite their neck, careful not to cause permanent damage*", "topic": "TALK_BLOODDRINK_ALLY_ACCEPT_LIVE" }, - { "text": "*You bite their neck, losing yourself to the hunger*", "topic": "TALK_BLOODDRINK_ALLY_ACCEPT_DIE" } + { "text": "*You bite their neck, losing yourself to the hunger*", + "trial": { + "type": "CONDITION", + "condition": { "and": [ + "npc_following" + ] + } + }, + "success": { "topic": "TALK_BLOODDRINK_ALLY_ACCEPT_DIE" }, + "failure": { "topic": "TALK_BLOODDRINK_FRIENDLY_ACCEPT_DIE" } + } ] }, { @@ -425,19 +433,30 @@ "MASOCHIST_MED", "CENOBITE" ] }, - "effect": [ { "npc_add_trait": "VAMP_BLOODDOLL" } ], - "topic": "TALK_DONE" } + "trial": { + "type": "CONDITION", + "condition": { + "npc_has_trait": "VAMP_BLOODDOLL" + } + }, + "success": { "topic": "TALK_DONE" }, + "failure": { "topic": "TALK_DONE", "effect": [ { "npc_add_trait": "VAMP_BLOODDOLL" } ] } + } ] }, { - "id": [ "TALK_BLOODDRINK_ALLY_ACCEPT_DIE" ], + "id": [ "TALK_BLOODDRINK_ALLY_ACCEPT_DIE", "TALK_BLOODDRINK_FRIENDLY_ACCEPT_DIE" ], "type": "talk_topic", "dynamic_line": { - "npc_has_trait": "MASOCHIST", + "npc_has_any_trait": [ + "MASOCHIST", + "MASOCHIST_MED", + "CENOBITE" + ], "no": "Ah..Nnnng...st-stop, you're h-hurting...m...", "yes": "Ah...Ahn♪ Oh that feels so...good...st-stop, you're h-hurting...m..." }, - "note": "The npc dies, and player should receive a large morale nerf for murdering a friend.", + "note": "The npc dies, and player should receive a large morale nerf for murdering a follower/friend. And a large player faction reputation nerf for murdering a follower.", "speaker_effect": { "effect": [ { "u_buy_item": "blood", "count": 2, "container": "bag_iv" }, @@ -454,7 +473,17 @@ ] }, "responses": [ - { "text": "*You drink of their blood until their heart stops*", "topic": "TALK_DONE" } + { "text": "*You drink of their blood until their heart stops*", + "trial": { + "type": "CONDITION", + "condition": { "and": [ + "npc_following" + ] + } + }, + "success": { "topic": "TALK_DONE", "effect": { "u_faction_rep": -75 } }, + "failure": { "topic": "TALK_DONE" } + } ] }, { @@ -501,6 +530,47 @@ { "text": "Huh? Nothing.", "topic": "TALK_NONE" } ] }, + { + "id": [ "TALK_BLOODDRINK_BY_FORCE_ALLY_SUCCESS" ], + "type": "talk_topic", + "dynamic_line": { + "npc_has_any_trait": [ + "MASOCHIST", + "MASOCHIST_MED", + "CENOBITE" + ], + "no": "Ah..Nnnng...st-stop, you're h-hurting...m...", + "yes": "Ah...Ahn♪ Oh that feels so...good...st-stop, you're h-hurting...m..." + }, + "note": "The npc dies, and player should receive a large morale and player faction reputation nerf for murdering a follower.", + "speaker_effect": { + "effect": [ + { "u_buy_item": "blood", "count": 2, "container": "bag_iv" }, + { "u_buy_item": "blood", "count": 2, "container": "bag_iv" }, + { "u_buy_item": "blood", "count": 2, "container": "bag_iv" }, + { "u_buy_item": "blood", "count": 2, "container": "bag_iv" }, + { "u_buy_item": "blood", "count": 2, "container": "bag_iv" }, + { "u_buy_item": "blood", "count": 2, "container": "bag_iv" }, + { "u_buy_item": "blood", "count": 2, "container": "bag_iv" }, + { "u_buy_item": "blood", "count": 2, "container": "bag_iv" }, + { "u_buy_item": "blood", "count": 2, "container": "bag_iv" }, + { "u_buy_item": "blood", "count": 2, "container": "bag_iv" }, + "npc_die" + ] + }, + "responses": [ + { "text": "*You drink of their blood until their heart stops*", "topic": "TALK_DONE", "effect": { "u_faction_rep": -75 } } + ] + }, + { + "id": [ "TALK_BLOODDRINK_BY_FORCE_ALLY_FAILURE" ], + "type": "talk_topic", + "dynamic_line": "I'll never let some monster have my blood. I'll kill you, vampire!", + "note": "The player should receive a large morale and player faction reputation nerf for attempting to murder a follower.", + "responses": [ + { "text": "Not if I kill you first!", "topic": "TALK_DONE", "effect": [ "hostile", { "u_faction_rep": -50 } ] } + ] + }, { "id": [ "TALK_BLOODDRINK_BY_FORCE_VAMP" ], "type": "talk_topic", @@ -532,7 +602,7 @@ "id": [ "TALK_BLOODDRINK_BY_FORCE_VAMP_GROVEL" ], "type": "talk_topic", "dynamic_line": "I'll give you this one chance, my ungrateful progeny. Next time I won't be so forgiving!", - "note": "The sire has decided to forgice you. This one time.", + "note": "The sire has decided to forgive you. This one time.", "speaker_effect": { "effect": [ { "npc_add_trait": "vamp_sire_forgiven" } @@ -582,38 +652,5 @@ }, { "text": "Huh? Nothing.", "topic": "TALK_NONE" } ] - }, - { - "id": "TALK_GHOULIFY_BY_FORCE_SUCCESS", - "type": "talk_topic", - "dynamic_line": "I'll do whatever you say! Just don't kill me!", - "responses": [ - { - "text": "Follow me and do my bidding, then.", - "topic": "TALK_DONE" - } - ] - }, - { - "id": "TALK_GHOULIFY_BY_FORCE_FAILURE", - "type": "talk_topic", - "dynamic_line": "I'd rather die!.", - "responses": [ - { "text": "Have it your way.", "topic": "TALK_DONE", "effect": "hostile" } - ] - }, - { - "id": [ - "TALK_VAMP_PLACEHOLDER", - "TALK_GHOULIFY_MENU_ALLY", - "TALK_EMBRACE_MENU_ALLY", - "TALK_BLOODDRINK_MENU_FRIENDLY", - "TALK_GHOULIFY_MENU_FRIENDLY" - ], - "type": "talk_topic", - "dynamic_line": "The dialogue is not yet complete.", - "responses": [ - { "text": "Well ok then.", "topic": "TALK_DONE" } - ] } ] diff --git a/vamp_stuff/Modification_Files/NPC/v_npc_responds/embrace.json b/vamp_stuff/Modification_Files/NPC/v_npc_responds/embrace.json new file mode 100644 index 0000000..0a01509 --- /dev/null +++ b/vamp_stuff/Modification_Files/NPC/v_npc_responds/embrace.json @@ -0,0 +1,21 @@ +[ + { + "id": [ "TALK_FRIEND", "TALK_GIVE_ITEM", "TALK_USE_ITEM", "TALK_RADIO" ], + "note": "Check if the player is a vampire, not busy, and in person with a follower.", + "type": "talk_topic", + "responses": [ + { + "text": "*Consider making your follower into a vampire*.", + "condition": { "and": [ + { "u_has_trait": "THRESH_VAMP" }, + { "not": { "npc_has_trait": "THRESH_VAMP" } }, + { "not": "is_by_radio" }, + { "not": "u_driving" }, + { "not": "npc_driving" } + ] }, + "topic": "TALK_EMBRACE_MENU_ALLY" + } + ] + } +] + diff --git a/vamp_stuff/Modification_Files/NPC/v_npc_responds/general.json b/vamp_stuff/Modification_Files/NPC/v_npc_responds/general.json new file mode 100644 index 0000000..736e96f --- /dev/null +++ b/vamp_stuff/Modification_Files/NPC/v_npc_responds/general.json @@ -0,0 +1,15 @@ +[ + { + "id": [ + "TALK_VAMP_PLACEHOLDER", + "TALK_GHOULIFY_MENU_ALLY", + "TALK_EMBRACE_MENU_ALLY", + "TALK_GHOULIFY_MENU_FRIENDLY" + ], + "type": "talk_topic", + "dynamic_line": "The dialogue is not yet complete.", + "responses": [ + { "text": "Well ok then.", "topic": "TALK_DONE" } + ] + } +] diff --git a/vamp_stuff/Modification_Files/NPC/v_npc_responds/ghoul.json b/vamp_stuff/Modification_Files/NPC/v_npc_responds/ghoul.json new file mode 100644 index 0000000..ef9a865 --- /dev/null +++ b/vamp_stuff/Modification_Files/NPC/v_npc_responds/ghoul.json @@ -0,0 +1,106 @@ +[ + { + "id": [ "TALK_FRIEND", "TALK_GIVE_ITEM", "TALK_USE_ITEM", "TALK_RADIO" ], + "note": "Check if the player is a vampire, not busy, and in person with a follower.", + "type": "talk_topic", + "responses": [ + { + "text": "*Consider making your follower into a ghoul*.", + "condition": { "and": [ + { "u_has_trait": "THRESH_VAMP" }, + { "not": { "npc_has_trait": "THRESH_VAMP" } }, + { "not": "is_by_radio" }, + { "not": "u_driving" }, + { "not": "npc_driving" } + ] }, + "topic": "TALK_GHOULIFY_MENU_ALLY" + } + ] + }, + { + "id": [ "TALK_STRANGER_FRIENDLY", "TALK_STRANGER_NEUTRAL" ], + "note": "Check if the player is a vampire, not busy, and in person with a friendly or neutral npc.", + "type": "talk_topic", + "responses": [ + { + "text": "*Consider making the stranger into a ghoul*.", + "condition": { "and": [ + { "u_has_trait": "THRESH_VAMP" }, + { "not": "is_by_radio" }, + { "not": "u_driving" }, + { "not": "npc_driving" } + ] }, + "topic": "TALK_GHOULIFY_MENU_FRIENDLY" + } + ] + }, + { + "id": [ "TALK_STRANGER_WARY", "TALK_STRANGER_SCARED" ], + "note": "Check if the player is a vampire, not busy, and in person with a wary or scared npc.", + "type": "talk_topic", + "responses": [ + { + "text": "We'll see who is giving orders after I enslave you!.", + "condition": { "and": [ + { "u_has_trait": "THRESH_VAMP" }, + { "not": { "npc_has_trait": "THRESH_VAMP" } }, + { "not": "is_by_radio" }, + { "not": "u_driving" }, + { "not": "npc_driving" } + ] }, + "trial": { "type": "INTIMIDATE", "difficulty": 10 }, + "success": { "topic": "TALK_GHOULIFY_BY_FORCE_SUCCESS", + "effect": [ + "follow", + { "npc_add_trait": "VAMP_GHOUL" } + ], + "opinion": { "trust": -4, "fear": 3, "value": -1, "anger": 1 } }, + "failure": { "topic": "TALK_GHOULIFY_BY_FORCE_FAILURE", "effect": "hostile" } + } + ] + }, + { + "id": [ "TALK_STRANGER_AGGRESSIVE" ], + "note": "Check if the player is a vampire, not busy, and in person with a near-hostile npc.", + "type": "talk_topic", + "responses": [ + { + "text": "We'll see who is giving orders after I enslave you!.", + "condition": { "and": [ + { "u_has_trait": "THRESH_VAMP" }, + { "not": { "npc_has_trait": "THRESH_VAMP" } }, + { "not": "is_by_radio" }, + { "not": "u_driving" }, + { "not": "npc_driving" } + ] }, + "trial": { "type": "INTIMIDATE", "difficulty": 20 }, + "success": { "topic": "TALK_GHOULIFY_BY_FORCE_SUCCESS", + "effect": [ + "follow", + { "npc_add_trait": "VAMP_GHOUL" } + ], + "opinion": { "trust": -4, "fear": 3, "value": -1, "anger": 1 } }, + "failure": { "topic": "TALK_GHOULIFY_BY_FORCE_FAILURE", "effect": "hostile" } + } + ] + }, + { + "id": "TALK_GHOULIFY_BY_FORCE_SUCCESS", + "type": "talk_topic", + "dynamic_line": "I'll do whatever you say! Just don't kill me!", + "responses": [ + { + "text": "Follow me and do my bidding, then.", + "topic": "TALK_DONE" + } + ] + }, + { + "id": "TALK_GHOULIFY_BY_FORCE_FAILURE", + "type": "talk_topic", + "dynamic_line": "I'd rather die!.", + "responses": [ + { "text": "Have it your way.", "topic": "TALK_DONE", "effect": "hostile" } + ] + } +] -- cgit v1.2.1