diff options
author | jc_gargma <jc_gargma@iserlohn-fortress.net> | 2021-05-06 19:08:34 -0700 |
---|---|---|
committer | jc_gargma <jc_gargma@iserlohn-fortress.net> | 2021-05-06 19:08:34 -0700 |
commit | 0cf0e572abefec3ff0632703d44323964cf2f56e (patch) | |
tree | 46cfb0bc05e4a5a017ccbd6e90a70f2822a58de7 /npcs | |
parent | Standardize hardcase lower weapon volumes to 1250 mL (diff) | |
download | cataclysm-dda-mod_battle-maid-redone-0cf0e572abefec3ff0632703d44323964cf2f56e.tar.xz |
Port to Bright Nights
Merge in new mod data (sans the erotic stuff)
Diffstat (limited to 'npcs')
-rw-r--r-- | npcs/NC_SHOGGOTH_MAID.json | 8 | ||||
-rw-r--r-- | npcs/TALK_MAID_ALLY.json | 434 | ||||
-rw-r--r-- | npcs/classes.json | 34 | ||||
-rw-r--r-- | npcs/npcs.json | 13 |
4 files changed, 489 insertions, 0 deletions
diff --git a/npcs/NC_SHOGGOTH_MAID.json b/npcs/NC_SHOGGOTH_MAID.json new file mode 100644 index 0000000..8d0e022 --- /dev/null +++ b/npcs/NC_SHOGGOTH_MAID.json @@ -0,0 +1,8 @@ +[ + { + "type": "item_group", + "id": "NC_SHOGGOTH_MAID_worn", + "subtype": "collection", + "entries": [ { "item": "maid_dress_french_shoggoth", "prob": 100 }, { "item": "maid_cap_shoggoth", "prob": 100 } ] + } +] diff --git a/npcs/TALK_MAID_ALLY.json b/npcs/TALK_MAID_ALLY.json new file mode 100644 index 0000000..50a6025 --- /dev/null +++ b/npcs/TALK_MAID_ALLY.json @@ -0,0 +1,434 @@ +[ + { + "id": [ "TALK_MAID_ALLY" ], + "type": "talk_topic", + "dynamic_line": { + "is_by_radio": " *pshhhttt* I'm reading you Mistress, over.", + "no": { "has_reason": { "use_reason": true }, "no": "What is it, Mistress?" } + }, + "speaker_effect": { + "sentinel": "maid_init", + "condition": { "npc_rule": "allow_pick_up" }, + "effect": { "toggle_npc_rule": "allow_pick_up", "opinion": { "trust": 5, "value": 5, "anger": -5, "fear": -5 } } + }, + "responses": [ + { "text": "I want to give you some commands for combat.", "topic": "TALK_COMBAT_COMMANDS" }, + { "text": "I want to set some miscellaneous rules.", "topic": "TALK_MISC_RULES_MAID" }, + { + "text": "I'd like to know a bit more about your abilities.", + "topic": "TALK_MAID_ALLY", + "effect": "reveal_stats" + }, + { "text": "There's something I want you to do.", "topic": "TALK_MAID_ORDERS" }, + { "text": "I just wanted to talk for a bit.", "topic": "TALK_MAID_SOCIAL" }, + { "text": "I'm going to go my own way for a while.", "topic": "TALK_LEAVE" }, + { "text": "Let's go.", "topic": "TALK_DONE" } + ] + }, + { + "id": [ "TALK_MAID_SOCIAL" ], + "type": "talk_topic", + "dynamic_line": { + "is_by_radio": " *tshk* Whatever you desire, Mistress. Though perhaps we should meet up first?", + "no": "Is there something you need help with, Mistress?" + }, + "responses": [ + { + "text": "Mind if we just chat for a bit about your history?", + "topic": "TALK_MAID_CONVERSATION", + "condition": { + "and": [ "at_safe_space", { "or": [ { "npc_has_trait_flag": "BG_SURVIVAL_STORY" }, { "npc_has_trait": "NPC_STATIC_NPC" } ] } ] + }, + "//": "If the NPC already has a BG story, or started out as a static NPC (and so probably doesn't need a random bg story), then go on.", + "switch": true + }, + { + "text": "Mind if we just chat for a bit about your history?", + "topic": "TALK_MAID_CONVERSATION", + "condition": "at_safe_space", + "switch": true, + "effect": { "npc_add_trait": "BGSS_Confused_1" }, + "//": "If the NPC doesn't have a BG survival story flagged trait, and didn't start the game as a static NPC, give them a BG story.", + "//2": "This is a stand-in for some kind of better system to add a random trait." + }, + { + "text": "Mind if we just chat for a bit about your history?", + "topic": "TALK_CONVERSATION_DANGER_MAID", + "condition": { "not": "at_safe_space" }, + "switch": true + }, + { + "text": "Mind if we just chat for a bit about your history?", + "topic": "TALK_MAID_CONVERSATION", + "condition": { "not": "is_by_radio" }, + "switch": true + }, + { + "text": "Let's just chitchat for a while, I could use some relaxation.", + "topic": "TALK_FRIEND_CHAT", + "condition": { "not": { "or": [ { "npc_has_effect": "asked_to_socialize" }, { "npc_has_trait": "THRESH_SHOGGOTH" } ] } } + }, + { + "text": "Let's just chitchat for a while, I could use some relaxation.", + "topic": "TALK_SHOGGOTH_CHAT", + "condition": { "not": { "or": [ { "npc_has_effect": "asked_to_socialize" }, { "not": { "npc_has_trait": "THRESH_SHOGGOTH" } } ] } } + }, + { "text": "Can I do anything for you?", "topic": "TALK_MISSION_LIST" }, + { + "text": "I don't want to ever be apart from you.", + "topic": "TALK_SHOGGOTH_HEART", + "condition": { "npc_has_trait": "THRESH_SHOGGOTH" } + }, + { "text": "I changed my mind, wanted to ask you something else.", "topic": "TALK_MAID_ALLY" }, + { "text": "Let's go.", "topic": "TALK_DONE" } + ] + }, + { + "id": "TALK_SHOGGOTH_HEART", + "type": "talk_topic", + "dynamic_line": "Oh Mistress...♪ I feel the same way! But you know, there is a way we can be together forever, no matter how cold or cruel this world is...", + "responses": [ { "text": "Tell me more.", "topic": "TALK_SHOGGOTH_HEART2" } ] + }, + { + "id": "TALK_SHOGGOTH_HEART2", + "type": "talk_topic", + "dynamic_line": "Take my heart and eat it. Ah, don't worry♪ I won't die. My strength will become our strength, and nobody will be able to separate us then!", + "responses": [ + { "text": "This...let's do it. Now.", "topic": "TALK_SHOGGOTH_HEART3" }, + { "text": "You know what? Never mind.", "topic": "TALK_DONE" } + ] + }, + { + "id": "TALK_SHOGGOTH_HEART3", + "type": "talk_topic", + "dynamic_line": "For my beloved Mistress, I would do anything! Oh, if you ever change your mind, just put my heart back in the flask - I'll be back in no time!", + "speaker_effect": { "effect": [ { "u_buy_item": "meat_shoggoth", "count": 2 }, "npc_die" ] }, + "responses": [ { "text": "...", "topic": "TALK_DONE" } ] + }, + { + "id": [ "TALK_MAID_ORDERS" ], + "type": "talk_topic", + "dynamic_line": [ "As you command, my Mistress.", "Do you have orders for me?", "How can I serve you?", "Just say the word." ], + "responses": [ + { + "text": "Can you teach me anything?", + "condition": { "not": "is_by_radio" }, + "trial": { + "type": "CONDITION", + "condition": { + "or": [ + { "npc_need": "thirst", "amount": 80 }, + { "npc_need": "hunger", "amount": 160 }, + { "npc_need": "fatigue", "level": "TIRED" }, + { "npc_has_effect": "asked_to_train" }, + "u_driving", + "npc_driving" + ] + } + }, + "success": { "topic": "TALK_DENY_TRAIN" }, + "failure": { "topic": "TALK_TRAIN_PERSUADE_MAID" } + }, + { + "text": "Let's trade items.", + "condition": { "not": { "or": [ "is_by_radio", { "npc_has_trait": "MAID_RESTRICT" } ] } }, + "topic": "TALK_MAID_ALLY", + "effect": "start_trade", + "switch": true, + "default": true + }, + { + "text": "Let's trade items", + "topic": "TRADE_HALLU", + "condition": { "npc_has_trait": "HALLUCINATION" }, + "switch": true, + "default": false + }, + { + "text": "I want you to use this item.", + "condition": { "not": { "or": [ "is_by_radio", { "npc_has_trait": "MAID_RESTRICT" } ] } }, + "topic": "TALK_MAID_ALLY", + "effect": "npc_gets_item_to_use" + }, + { + "text": "Hold on to this item.", + "condition": { "not": { "or": [ "is_by_radio", { "npc_has_trait": "MAID_RESTRICT" } ] } }, + "topic": "TALK_MAID_ALLY", + "effect": "npc_gets_item" + }, + { + "text": "Guard this position.", + "condition": { "not": "is_by_radio" }, + "topic": "TALK_MAID_GUARD", + "effect": "assign_guard" + }, + { + "text": "I want to assign you to work at this camp.", + "condition": { "npc_at_om_location": "FACTION_CAMP_ANY" }, + "topic": "TALK_MAID_GUARD", + "effect": "assign_camp" + }, + { + "text": "Find a horse and mount up!", + "condition": { "not": "npc_is_riding" }, + "topic": "TALK_DONE", + "effect": "find_mount" + }, + { + "text": "Get off your mount, please.", + "condition": "npc_is_riding", + "topic": "TALK_DONE", + "effect": "dismount" + }, + { + "text": "Please go to this location.", + "topic": "TALK_GOTO_LOCATION", + "condition": { "or": [ "is_by_radio", "u_has_camp" ] }, + "effect": "goto_location" + }, + { + "text": "I want you to build a camp here.", + "topic": "TALK_HALLU_CAMP", + "condition": { "npc_has_trait": "HALLUCINATION" }, + "switch": true + }, + { + "text": "I want you to build a camp here.", + "topic": "TALK_DONE", + "effect": "start_camp", + "condition": { "npc_at_om_location": "FACTION_CAMP_START" }, + "switch": true, + "default": true + }, + { + "text": "Since we can't build a camp here, I want you to tell me where can we build a camp?", + "topic": "TALK_CAMP_SITES", + "condition": { "not": { "npc_at_om_location": "FACTION_CAMP_START" } }, + "switch": true, + "default": true + }, + { + "text": "We need to abandon this camp.", + "condition": { "npc_at_om_location": "FACTION_CAMP_ANY" }, + "topic": "TALK_DONE", + "effect": "abandon_camp" + }, + { + "text": "Show me what needs to be done at the camp.", + "topic": "TALK_DONE", + "effect": "basecamp_mission", + "condition": { "npc_at_om_location": "FACTION_CAMP_ANY" } + }, + { "text": "Let's talk about your current activity.", "topic": "TALK_ACTIVITIES" }, + { "text": "Let's go.", "topic": "TALK_DONE" } + ] + }, + { + "id": "TALK_MAID_GUARD", + "type": "talk_topic", + "dynamic_line": "With my life, Mistress!", + "responses": [ + { "text": "I need you to come with me.", "topic": "TALK_MAID_ALLY", "effect": "stop_guard" }, + { "text": "See you around.", "topic": "TALK_DONE" } + ] + }, + { + "id": "TALK_TRAIN_PERSUADE_MAID", + "type": "talk_topic", + "dynamic_line": "But Mistress...you can just leave everything to me!", + "responses": [ + { + "text": "Come on, we're friends.", + "trial": { "type": "PERSUADE", "difficulty": 0, "mod": [ [ "TRUST", 6 ], [ "VALUE", 2 ], [ "ANGER", -6 ] ] }, + "success": { "topic": "TALK_TRAIN" }, + "failure": { "topic": "TALK_DENY_PERSONAL", "effect": { "npc_add_effect": "asked_to_train", "duration": 3600 } } + }, + { "text": "Forget it, let's get going.", "topic": "TALK_DONE" } + ] + }, + { + "id": "TALK_CONVERSATION_DANGER_MAID", + "type": "talk_topic", + "dynamic_line": "Are you sure? This doesn't seem like a particularly safe place for small talk…", + "responses": [ + { "text": "It's fine, we've got a moment.", "topic": "TALK_MAID_CONVERSATION" }, + { "text": "You're right. Forget I said anything, let's get moving.", "topic": "TALK_DONE" } + ] + }, + { + "id": "TALK_MAID_CONVERSATION", + "type": "talk_topic", + "dynamic_line": "My history? You mean before I served you? ...I'm sorry, but...", + "responses": [ { "text": "Actually, never mind.", "topic": "TALK_DONE" } ] + }, + { + "id": "TALK_SHOGGOTH_CHAT", + "type": "talk_topic", + "dynamic_line": "<shoggoth_chat>", + "responses": [ + { + "text": "<chitchat_player_responses>", + "topic": "TALK_DONE", + "switch": true, + "effect": [ "morale_chat_activity", { "npc_add_effect": "asked_to_socialize", "duration": 7000 } ] + } + ] + }, + { + "id": "TALK_MISC_RULES_MAID", + "type": "talk_topic", + "dynamic_line": { + "and": [ + { + "and": [ + { "npc_override": "allow_pick_up", "yes": "OVERRIDE: " }, + { + "npc_rule": "allow_pick_up", + "yes": { "has_pickup_list": "<ally_rule_allow_pick_up_true_list_text>", "no": "<ally_rule_allow_pick_up_true_text>" }, + "no": "<ally_rule_allow_pick_up_false_text>" + } + ] + }, + { + "and": [ + { "npc_override": "allow_bash", "yes": " OVERRIDE: ", "no": " " }, + { + "npc_rule": "allow_bash", + "yes": "<ally_rule_allow_bash_true_text>", + "no": "<ally_rule_allow_bash_false_text>" + } + ] + }, + { + "and": [ + { "npc_override": "allow_sleep", "yes": " OVERRIDE: ", "no": " " }, + { + "npc_rule": "allow_sleep", + "yes": "<ally_rule_allow_sleep_true_text>", + "no": "<ally_rule_allow_sleep_false_text>" + } + ] + }, + { + "and": [ + { "npc_override": "allow_complain", "yes": " OVERRIDE: ", "no": " " }, + { + "npc_rule": "allow_complain", + "yes": "<ally_rule_allow_complain_true_text>", + "no": "<ally_rule_allow_complain_false_text>" + } + ] + }, + { + "and": [ + { "npc_override": "allow_pulp", "yes": " OVERRIDE: ", "no": " " }, + { + "npc_rule": "allow_pulp", + "yes": "<ally_rule_allow_pulp_true_text>", + "no": "<ally_rule_allow_pulp_false_text>" + } + ] + }, + { + "and": [ + { "npc_override": "close_doors", "yes": " OVERRIDE: ", "no": " " }, + { + "npc_rule": "close_doors", + "yes": "<ally_rule_close_doors_true_text>", + "no": "<ally_rule_close_doors_false_text>" + } + ] + }, + { + "and": [ + { "npc_override": "ignore_noise", "yes": " OVERRIDE: ", "no": " " }, + { + "npc_rule": "ignore_noise", + "yes": "<ally_rule_ignore_noise_true_text>", + "no": "<ally_rule_ignore_noise_false_text>" + } + ] + }, + { + "and": [ + { "npc_override": "avoid_doors", "yes": " OVERRIDE: ", "no": " " }, + { + "npc_rule": "avoid_doors", + "yes": "<ally_rule_avoid_doors_true_text>", + "no": "<ally_rule_avoid_doors_false_text>" + } + ] + }, + { + "and": [ + { "npc_override": "forbid_engage", "yes": " OVERRIDE: ", "no": " " }, + { + "npc_rule": "forbid_engage", + "yes": "<ally_rule_forbid_engage_true_text>", + "no": "<ally_rule_forbid_engage_false_text>" + } + ] + } + ] + }, + "responses": [ + { + "truefalsetext": { "condition": { "npc_rule": "allow_pick_up" }, "true": "Don't pick up items.", "false": "You can pick up items now." }, + "topic": "TALK_MISC_RULES_MAID", + "condition": { "not": { "npc_has_trait": "MAID_RESTRICT" } }, + "effect": { "toggle_npc_rule": "allow_pick_up" } + }, + { + "truefalsetext": { "condition": { "npc_rule": "allow_bash" }, "true": "Don't bash obstacles.", "false": "You can bash obstacles." }, + "topic": "TALK_MISC_RULES_MAID", + "effect": { "toggle_npc_rule": "allow_bash" } + }, + { + "truefalsetext": { "condition": { "npc_rule": "allow_sleep" }, "true": "Stay awake.", "false": "Sleep when you feel tired." }, + "topic": "TALK_MISC_RULES_MAID", + "effect": { "toggle_npc_rule": "allow_sleep" } + }, + { + "truefalsetext": { "condition": { "npc_rule": "allow_complain" }, "true": "Stay quiet.", "false": "Tell me when you need something." }, + "topic": "TALK_MISC_RULES_MAID", + "effect": { "toggle_npc_rule": "allow_complain" } + }, + { + "truefalsetext": { "condition": { "npc_rule": "allow_pulp" }, "true": "Leave corpses alone.", "false": "Smash zombie corpses." }, + "topic": "TALK_MISC_RULES_MAID", + "effect": { "toggle_npc_rule": "allow_pulp" } + }, + { + "truefalsetext": { "condition": { "npc_rule": "close_doors" }, "true": "Leave doors open.", "false": "Close the doors." }, + "topic": "TALK_MISC_RULES_MAID", + "effect": { "toggle_npc_rule": "close_doors" } + }, + { + "truefalsetext": { + "condition": { "npc_rule": "avoid_doors" }, + "true": "Open doors to get where you're going.", + "false": "Don't walk through closed doors." + }, + "topic": "TALK_MISC_RULES_MAID", + "effect": { "toggle_npc_rule": "avoid_doors" } + }, + { + "truefalsetext": { + "condition": { "npc_rule": "ignore_noise" }, + "true": "If you hear a noise but can't see the source, move to investigate it.", + "false": "Don't investigate noises that you can't see." + }, + "topic": "TALK_MISC_RULES_MAID", + "effect": { "toggle_npc_rule": "ignore_noise" } + }, + { + "text": "Set up pickup rules.", + "topic": "TALK_MISC_RULES_MAID", + "condition": { "not": { "npc_has_trait": "MAID_RESTRICT" } }, + "effect": "set_npc_pickup" + }, + { "text": "Clear all overrides.", "topic": "TALK_MISC_RULES_MAID", "effect": "clear_overrides" }, + { "text": "Never mind.", "topic": "TALK_DONE" } + ] + } +] diff --git a/npcs/classes.json b/npcs/classes.json new file mode 100644 index 0000000..f5a900e --- /dev/null +++ b/npcs/classes.json @@ -0,0 +1,34 @@ +[ + { + "type": "npc_class", + "id": "NC_SHOGGOTH_MAID", + "name": { "str": "shoggoth maid" }, + "job_description": "I'm your loyal slave, master!", + "common": false, + "bonus_str": { "rng": [ 4, 4 ] }, + "bonus_dex": { "rng": [ 2, 2 ] }, + "bonus_int": { "rng": [ -2, -2 ] }, + "skills": [ { "skill": "melee", "bonus": { "rng": [ 5, 7 ] } }, { "skill": "unarmed", "bonus": { "rng": [ 5, 7 ] } } ], + "traits": [ + [ "MUT_TOUGH3", 100 ], + [ "SHOGGOTH_BUFF_OK", 100 ], + [ "SHUFFLING_HORROR", 100 ], + [ "AMORPHOUS", 100 ], + [ "PER_SLIME_OK", 100 ], + [ "HUNGER", 100 ], + [ "THRESH_SHOGGOTH", 100 ], + [ "SHOGGOTH_BODY_NPC", 100 ], + [ "NOPAIN", 100 ], + [ "INFIMMUNE", 100 ], + [ "hair_black_long", 50 ], + [ "hair_red_long", 25 ], + [ "hair_blond_long", 25 ], + [ "hair_brown_long", 25 ], + [ "MAID_RESTRICT", 100 ], + [ "PRETTY", 100 ] + ], + "worn_override": "NC_SHOGGOTH_MAID_worn", + "carry_override": "naked_prisoner", + "weapon_override": "naked_prisoner" + } +] diff --git a/npcs/npcs.json b/npcs/npcs.json new file mode 100644 index 0000000..19962a9 --- /dev/null +++ b/npcs/npcs.json @@ -0,0 +1,13 @@ +[ + { + "type": "npc", + "id": "shoggoth_maid", + "name_suffix": "Shoggoth Maid", + "class": "NC_SHOGGOTH_MAID", + "gender": "female", + "attitude": 3, + "mission": 0, + "chat": "TALK_MAID_ALLY", + "faction": "no_faction" + } +] |